BareMetal is a 64-bit operating system for x86-64 based computers. The OS is written entirely in Assembly, while applications can be written in Assembly or C/C++. Development of the Operating System is guided by its 3 target segments:
* High Performance Computing - Act as the base OS for a HPC cluster node. Running advanced computation workloads is ideal for a mono-tasking Operating System.
* Embedded Applications - Provide a platform for embedded applications running on commodity x86-64 hardware.
* Education - Provide an environment for learning and experimenting with programming in x86-64 Assembly as well as Operating System fundamentals.
BareMetal boots via Pure64 and has a command line interface with the ability to load programs/data from a hard drive. Current plans for v0.5.0 call for a more feature-rich C/C++ library for applications as well as general bug fixes and optimizations. The creation of BareMetal was inspired by MikeOS - A 16-bit OS written in Assembly used as a learning tool to show how simple Operating Systems work.
* Written in pure Assembly language for x86-64 based computers.
* Over 60 integrated functions to deal with keyboard input, screen output, files, networking, memory, strings, math, multi-processing, etc.
* Ethernet support with the Realtek 8139 chipset
* Read/Write support for FAT16
* System calls are provided for delegation of tasks to different processors.
* Scalable up to 128 64-bit processors
* System calls are provided for sending and receiving packets via Ethernet.
* Ring buffer that automatically stores received packets in memory.
* An Intel/AMD-based 64-bit computer
* Memory requirements are based on the number of cores in the computer. The OS itself uses 2 MiB as well as each core gets its own 2 MiB stack. A dual core computer would need at least 6 MiB (2 x 2 + 2). A quad core, 10 MiB.
* 32 MiB Hard drive minimum
* YASM to compile the source code
Here are some key features of "BareMetal OS":
· Speed Return Infinity goes back to the roots of computer programming with pure Assembly code. As we are programming at the hardware level, we can achieve a runtime speed that is not possible with higher-level languages like C/C++, VB, and Java.
· Simplicity BareMetal was written with simplicity in mind. All internal functions are lean and well documented in the source code. Seasoned programmers as well as people new to computer programming will be able to pick it up quickly.
· Open The source code for BareMetal is freely available under the 3-clause BSD license. Go ahead and add, modify, or remove whatever you want. Each OS function and all other components are well documented.
· Size Starting with a clean slate we can say goodbye to bloated code and feature creep! As of the current version with the full CLI and internal functions, the operating system binary is only 16384 bytes. A standard "Hello, World!" example compiles to a file of only 31 bytes.
One Task Per Core:
· 1 BareMetal uses an internal work queue that all CPU Cores poll. Simply add tasks to the work queue and they will be processed by any available CPU Cores in the system.
· Network Ethernet networking is supported with the Realtek 8139 10/100mbit chipset. BareMetal OS machines can communicate over the network via raw Ethernet packets. Plans are in place to support TCP/UDP protocols as well as support for more Ethernet chipsets.
What's New in This Release: [ read full changelog ]
· It includes the Ethernet and memory functions.