BareMetal

From Infogalactic: the planetary knowledge core
Jump to: navigation, search

<templatestyles src="Module:Hatnote/styles.css"></templatestyles>

BareMetal
Developer Return Infinity
Written in Assembly
Working state Current
Source model Open source
Initial release 2008; 16 years ago (2008)
Latest release 0.6.0 / April 30, 2013; 10 years ago (2013-04-30)
Marketing target HPCs, HTC, Cloud computing
Available in English
Platforms x86-64
Kernel type Exokernel, SASOS
Userland Unknown
Default user interface Command-line
License BSD License[1]
Official website www.returninfinity.com/baremetal.html

BareMetal is an exokernel-based single address space operating system (OS) created by Return Infinity.

It is written in assembly to achieve high-performance computing with minimal footprint[2][3] with a JeOS approach.[4] The operating system is primarily targeted towards virtualized environments for cloud computing, or HPCs due to its design as a lightweight kernel (LWK). It could be used as a unikernel.

It was inspired by another OS written in assembly, MikeOS,[1] and it is a current-day example of an operating system that is not written in C or C++, nor based on Unix-like kernels.[5]

Overview

Hardware requirements[6]

  • Intel/AMD-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 operating systems in this day and age. 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.[7]

Programming

API

An API is documented[8] but, in line with its philosophy, the OS does not enforce entry points for system calls (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[9] the Newlib C standard library.[10]

C++

A mostly-complete C++11 Standard Library was designed and developed for working in ring 0.[11] 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.[12]

Rust

A Rust program demonstration was added to the programs in November 2014, demonstrating the ability to write Rust programs for BareMetal OS.[13]

Networking

TCP/IP stack

A TCP/IP stack was the #1 feature request.[14] A port of lwIP written in C was announced in October 2014.[15]

References

  1. 1.0 1.1 Lua error in package.lua at line 80: module 'strict' not found.
  2. Lua error in package.lua at line 80: module 'strict' not found.
  3. Lua error in package.lua at line 80: module 'strict' not found.
  4. Lua error in package.lua at line 80: module 'strict' not found.
  5. Lua error in package.lua at line 80: module 'strict' not found.
  6. Lua error in package.lua at line 80: module 'strict' not found.
  7. Lua error in package.lua at line 80: module 'strict' not found.
  8. Lua error in package.lua at line 80: module 'strict' not found.
  9. Lua error in package.lua at line 80: module 'strict' not found.
  10. Lua error in package.lua at line 80: module 'strict' not found.
  11. Lua error in package.lua at line 80: module 'strict' not found.
  12. Lua error in package.lua at line 80: module 'strict' not found.
  13. Lua error in package.lua at line 80: module 'strict' not found.
  14. Lua error in package.lua at line 80: module 'strict' not found.
  15. Lua error in package.lua at line 80: module 'strict' not found.

External links

<templatestyles src="Asbox/styles.css"></templatestyles>