BareMetal
BareMetal is an exokernel-based single address space operating system created by Return Infinity.
It is written in assembly to achieve high-performance computing with minimal footprint with a "just enough operating system" approach. The operating system is primarily targeted towards virtualized environments for cloud computing, or HPCs due to its design as a lightweight kernel. It could be used as a unikernel.
It was inspired by another OS written in assembly, MikeOS, and it is a recent example of an operating system that is not written in C or C++, nor based on Unix-like kernels.
Overview
Hardware requirements
Source:- AMD/Intel based 64-bit computer
- Memory: 4 MB
- Hard Disk: 32 MB
Supported devices
Source:- Bus - PCIe, PCI, xHCI
- Non-volatile storage - NVMe, AHCI, ATA, Virtio-Blk
- Ethernet - Intel 8259x 10-gigabit, Intel 8254x/8257x Gigabit, Realtek 816x/811x Gigabit, Virtio-Net
One task per core
Multitasking on BareMetal is unusual for modern operating systems. BareMetal uses an internal work queue that all CPU cores poll. A task added to the work queue will be processed by any available CPU core in the system and will execute until completion, which results in no context switch overhead.Programming
[API]
An API is documented but, in line with its philosophy, the OS does not enforce entry points for system calls.C">C (programming language)">C
BareMetal OS has a build script to pull the latest code, make the needed changes, and then compile C code using the Newlib C standard library.[C++]
A mostly-complete C++11 Standard Library was designed and developed for working in ring 0. The main goal of such library is providing, on a library level, an alternative to hardware memory protection used in classical OSes, with help of carefully designed classes.K">K (programming language)">K
k for BareMetal: a port of k edu from shakti by Jack Andrews. At this stage, it is just a proof of concept and doesn't integrate the BareMetal file system.Rust">Rust (programming language)">Rust
A Rust program demonstration was added to the programs in November 2014, demonstrating the ability to write Rust programs for BareMetal OS.Networking
TCP/IP stack
A TCP/IP stack was the #1 feature request. A port of lwIP written in C was announced in October 2014.minIP, a minimalist IP stack in ANSI C able to provide enough functionalities to serve a simple static webpage, is being developed as a proof of concept to learn the fundamentals in preparation for an x86-64 assembly re-write planned for the future.