You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+38-6Lines changed: 38 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,24 +6,56 @@ _Just enough kernel_
6
6
7
7
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.
8
8
9
+
### Table of Contents
9
10
10
-
## What is this?
11
+
-[What it is](#what-it-is)
12
+
-[Key features](#key-features)
13
+
-[Supported hardware](#supported-hardware)
14
+
-[Try it out](#try-it-out)
15
+
16
+
## What it is
11
17
12
18
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.
13
19
14
-
BareMetal provides basic support for symmetric multiprocessing, network, and drive access via a low-level abstraction layer.
20
+
BareMetal provides basic support for symmetric multiprocessing, network, and storage access via a low-level abstraction layer.
15
21
16
22

17
23
18
24
19
-
###Key features
25
+
## Key features
20
26
***64-bit**: Make use of the extra-wide and additional registers available in 64-bit mode.
21
27
***Mono-processing, multi-core**: The system is able to execute a single program but can spread the work load amongst available CPU cores.
22
-
***Extremely tiny memory footprint**: A minimal bootable image, including boot-loader and operating system components, is currently 16K.
28
+
***Extremely tiny memory footprint**: The kernel binary is less than 32KiB. BareMetal uses 4 MiB of RAM while running. The majority of RAM usage is for required memory structures for operating in 64-bit mode, drivers, CPU stacks, and system buffers.
23
29
***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.
24
30
25
-
26
-
## Try it out!
31
+
## Supported Hardware
32
+
33
+
* CPU
34
+
* Multi-core on 64-bit x86 systems (Intel/AMD)
35
+
* Bus
36
+
* PCIe
37
+
* PCI
38
+
* xHCI (USB 3)
39
+
* Network
40
+
* Gigabit
41
+
* Intel 8254x Gigabit (e1000)
42
+
* Intel 8257x Gigabit (e1000e)
43
+
* Realtek 816x/811x Gigabit (rtl8169)
44
+
* 10 Gigabit
45
+
* Intel 8259x 10 Gigabit (ixbge)
46
+
* Virtual
47
+
* Virtio-Net
48
+
* Storage
49
+
* NVMe
50
+
* AHCI (SATA)
51
+
* IDE
52
+
* Virtio-Blk
53
+
* HID (Human Interface Devices)
54
+
* PS/2 Keyboard
55
+
* PS/2 Mouse
56
+
* USB Keyboard
57
+
58
+
## Try it out
27
59
28
60
See the [BareMetal-OS](https://github.com/ReturnInfinity/BareMetal-OS) repo for a full build environment.
0 commit comments