HOME

TheInfoList



OR:

BareMetal is an
exokernel Exokernel is an operating system kernel developed by the MIT Parallel and Distributed Operating Systems group, and also a class of similar operating systems. Operating systems generally present hardware resources to applications through high-le ...
-based
single address space operating system In computer science, a single address space operating system (or SASOS) is an operating system that provides only one globally shared address space for all processes. In a single address space operating system, numerically identical (virtual memory) ...
(OS) created by Return Infinity. It is written in assembly to achieve high-performance computing with minimal footprint with a "just enough operating system" ( JeOS) approach. The operating system is primarily targeted towards
virtualized In computing, virtualization or virtualisation (sometimes abbreviated v12n, a numeronym) is the act of creating a virtual (rather than actual) version of something at the same abstraction level, including virtual computer hardware platforms, stor ...
environments for
cloud computing Cloud computing is the on-demand availability of computer system resources, especially data storage ( cloud storage) and computing power, without direct active management by the user. Large clouds often have functions distributed over mu ...
, or HPCs due to its design as a lightweight kernel (LWK). It could be used as a
unikernel A unikernel is a specialised, single address space machine image constructed by using library operating systems. A developer selects, from a modular stack, the minimal set of libraries which correspond to the OS constructs required for the appl ...
. 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

* AMD/Intel based 64-bit computer * Memory: 4 MB (plus 2 MB for every additional core) * Hard Disk: 32 MB


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 In computing, a context switch is the process of storing the state of a process or thread, so that it can be restored and resume execution at a later point, and then restoring a different, previously saved, state. This allows multiple processe ...
overhead.


Programming


API

An API is documented but, in line with its philosophy, the OS does not enforce entry points for
system call In computing, a system call (commonly abbreviated to syscall) is the programmatic way in which a computer program requests a service from the operating system on which it is executed. This may include hardware-related services (for example, acc ...
s (e.g.: no call gates or other safety mechanisms).


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++ C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...

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.


Rust Rust is an iron oxide, a usually reddish-brown oxide formed by the reaction of iron and oxygen in the catalytic presence of water or air moisture. Rust consists of hydrous iron(III) oxides (Fe2O3·nH2O) and iron(III) oxide-hydroxide (FeO( ...

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 The Internet protocol suite, commonly known as TCP/IP, is a framework for organizing the set of communication protocols used in the Internet and similar computer networks according to functional criteria. The foundational protocols in the su ...
stack was the #1 feature request. A port of
lwIP lwIP (lightweight IP) is a widely used open-source TCP/IP stack designed for embedded systems. lwIP was originally developed by Adam Dunkels at the Swedish Institute of Computer Science and is now developed and maintained by a worldwide network o ...
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.


References


External links

*
BareMetal OS
Google Group discussion forum Free software operating systems Hobbyist operating systems Microkernels Software using the BSD license Assembly language software {{Operating-system-stub