CorcovadoMing / BareMetal-kernel

A very minimal, resource efficient exo-kernel

Home Page:http://www.returninfinity.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

BareMetal-kernel

Official repo of the BareMetal exokernel. It's written from scratch in Assembly, designed for x86-64 hardware, with no dependencies except for the virtual/physical hardware. A 64-bit ARMv8 version is also planned.

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 symetric multiprocessing, network, and disk access via a low-level abstraction layer.

BareMetal Model

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 bootloader and operating system components, is currently 16K.
  • Standard C library using newlib from Red Hat
  • Real hardware and VirtualBox support with full virtualization, using x86 hardware 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 and VirtualBox, which means that you can run BareMetal on both Linux, Microsoft Windows, and Apple OS X.

Try it out!

Prerequisites for building BareMetal

  • NASM (The Netwide Assembler) - At least version 2.07
  • That's it!

Editing BareMetal

ATOM is highly recommended. Make sure to install the language-x86-64-assembly package for proper syntax highlighting.

Building BareMetal

Execute the build script:

./build_x86-64.sh

Running BareMetal

The easiest way to get started is with QEMU:

qemu-system-x86_64 -machine q35 -cpu core2duo -smp 2 -m 1024 -kernel ./boot.bin -s

// EOF

About

A very minimal, resource efficient exo-kernel

http://www.returninfinity.com

License:BSD 2-Clause "Simplified" License


Languages

Language:Assembly 97.0%Language:C 2.9%Language:Shell 0.2%