Skip to content

Commit 8aa8e46

Browse files
authored
Revise README for better organization and clarity
Updated README.md to improve clarity and structure.
1 parent e4ec9bb commit 8aa8e46

File tree

1 file changed

+18
-6
lines changed

1 file changed

+18
-6
lines changed

README.md

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,14 @@
1-
[![CI](https://github.com/ReturnInfinity/BareMetal/actions/workflows/main.yml/badge.svg)](https://github.com/ReturnInfinity/BareMetal/actions/workflows/main.yml)
1+
<div align="center">
22

33
# BareMetal
4+
**Just enough kernel**
5+
6+
[![Assembly](https://img.shields.io/badge/x86--64-Assembly-blue)]()
7+
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
8+
[![CI](https://github.com/ReturnInfinity/BareMetal/actions/workflows/main.yml/badge.svg)](https://github.com/ReturnInfinity/BareMetal/actions/workflows/main.yml)
49

5-
_Just enough kernel_
10+
<sub>Exokernel • Pure Assembly • Virtual/Physical</sub>
11+
</div>
612

713
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.
814

@@ -25,7 +31,7 @@ BareMetal provides basic support for symmetric multiprocessing, network, and sto
2531
## Key features
2632
* **64-bit**: Make use of the extra-wide and additional registers available in 64-bit mode.
2733
* **Mono-processing, multi-core**: The system is able to execute a single program but can spread the work load amongst available CPU cores.
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.
34+
* **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/system buffers, and CPU stacks.
2935
* **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.
3036

3137
## Supported Hardware
@@ -51,9 +57,15 @@ BareMetal provides basic support for symmetric multiprocessing, network, and sto
5157
* IDE
5258
* Virtio-Blk
5359
* HID (Human Interface Devices)
54-
* PS/2 Keyboard
55-
* PS/2 Mouse
56-
* USB Keyboard
60+
* Input
61+
* PS/2 Keyboard
62+
* PS/2 Mouse
63+
* USB Keyboard
64+
* Serial
65+
* Output
66+
* LFB (linear frame buffer at native screen resolution with 1024x768x32bpp as fallback)
67+
* VGA text mode (80x25 characters with 16 colors)
68+
* Serial
5769

5870
## Try it out
5971

0 commit comments

Comments
 (0)