|Source model||Open source|
|Latest release||1.0.0 / November 13, 2017|
|Marketing target||HPCs, HTC, Cloud computing|
|Kernel type||Exokernel, SASOS|
|Default user interface||Command-line|
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 environments for cloud computing, or HPCs due to its design as a lightweight kernel (LWK). It could be used as a unikernel.
- 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 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.
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.
A Rust program demonstration was added to the programs in November 2014, demonstrating the ability to write Rust programs for BareMetal OS.
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.
- Seyler, Ian. "kernel.asm". BareMetal OS GitHub repository. Retrieved May 24, 2017.
- Voorsanger, Conrad (June 2, 2011). "Interview With Baremetal OS' Ian Seyler". OSNews. Retrieved May 26, 2014.
- Adams, David (July 14, 2010). "BareMetal OS". OSNews. Retrieved May 26, 2014.
- Benchoff, Brian (May 27, 2011). "64-bit OS written entirely in assembly". Hack A Day. Retrieved May 26, 2014.
- Seyler, Ian. "Return Infinity (home page), The BareMetal advantage". Return Infinity. Retrieved February 2, 2015.
- Smith, Jesse (July 19, 2010). "DistroWatch Weekly, Issue 363". DistroWatch. Retrieved May 26, 2014.
- "BareMetal OS Requirements". Return Infinity (archived copy at Wayback Machine). Archived from the original on September 6, 2014. Retrieved September 6, 2014.
- "BareMetal OS Queue". Retrieved April 28, 2015.
- Seyler, Ian. "API documentation". BareMetal OS GitHub repository. Retrieved June 26, 2015.
- Seyler, Ian (January 17, 2014). "Newlib build script". BeareMetal OS Google Group. Retrieved February 2, 2015.
- Seyler, Ian. "newlib.sh". Build scripts for BareMetal OS and its related utilities, GitHub repository. Retrieved February 2, 2015.
- Lodyagin, Sergei (November 17, 2013). "Bare C++ library". BeareMetal OS Google Group. Retrieved February 2, 2015.
- Lodyagin, Sergei. "The Bare C++ library". The Bare C++ library GitHub repository. Retrieved February 2, 2015.
- Seyler, Ian. "Add Rust example". BareMetal OS GitHub repository (legacy version). Retrieved March 18, 2018.
- Seyler, Ian (August 22, 2013). "TCP/IP". BeareMetal OS Google Group. Retrieved February 2, 2015.
- Seyler, Ian (October 31, 2014). "BareMetal and lwIP". BeareMetal OS Google Group. Retrieved February 2, 2015.
- Seyler, Ian. "minIP - A minimalist IP stack written in ANSI C". BareMetal OS GitHub repository. Retrieved May 24, 2017.
|This operating-system-related article is a stub. You can help Wikipedia by expanding it.|