Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ReturnInfinity/BareMetal
A very minimal, resource efficient exo-kernel
https://github.com/ReturnInfinity/BareMetal
assembly baremetal baremetal-kernel kernel
Last synced: 5 days ago
JSON representation
A very minimal, resource efficient exo-kernel
- Host: GitHub
- URL: https://github.com/ReturnInfinity/BareMetal
- Owner: ReturnInfinity
- License: mit
- Created: 2014-08-05T16:32:23.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2024-10-29T17:03:54.000Z (14 days ago)
- Last Synced: 2024-10-29T18:30:33.003Z (14 days ago)
- Topics: assembly, baremetal, baremetal-kernel, kernel
- Language: Assembly
- Homepage: http://www.returninfinity.com
- Size: 688 KB
- Stars: 614
- Watchers: 51
- Forks: 89
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-unikernels - BareMetal - Self described as an exokernel, it can be used as the starting point for unikernel development. (Projects / Generic)
README
# BareMetal
_Just enough kernel_
Official repo of the BareMetal [exokernel](http://en.wikipedia.org/wiki/Exokernel). It's written from scratch in Assembly, designed for x86-64 hardware, with no dependencies except for the virtual/physical hardware. An ARM and/or RISC-V rewrite would be considered once hardware is standardized.
## What is this?
BareMetal is a _very_ lean kernel. The name is a play on the phrase "bare metal" which means to run directly on physical or virtualized hardware. BareMetal also only offers the "bare essentials" required for a working operating system.
BareMetal provides basic support for symmetric multiprocessing, network, and drive access via a low-level abstraction layer.
![BareMetal Model](./doc/BareMetal-Model.png)
### Key features
* **64-bit**: Make use of the extra-wide and additional registers available in 64-bit mode.
* **Mono-processing, multi-core**: The system is able to execute a single program but can spread the work load amongst available CPU cores.
* **Extremely tiny memory footprint**: A minimal bootable image, including boot-loader and operating system components, is currently 16K.
* **Physical and virtual hardware support** with full virtualization, using [x86 hardware virtualization](https://en.wikipedia.org/wiki/X86_virtualization) whenever available (it is on most modern x86-64 CPU's). In principle BareMetal should run on any x86-64 hardware platform, even on a physical x86-64 computer, given appropriate drivers. Officially, we develop on [QEMU](http://www.qemu.org) and [VirtualBox](https://www.virtualbox.org), which means that you can run BareMetal on both Linux, Microsoft Windows, and Apple macOS.## Try it out!
See the [BareMetal-OS](https://github.com/ReturnInfinity/BareMetal-OS) repo for a full build environment.
// EOF