GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - ReturnInfinity/BareMetal: A very minimal, resource efficient exo-kernel

BranchesTags
Open more actions menu

Latest commit

 

History

7 Commits
7 Commits

Folders and files

NameName
Last commit message
Last commit date
api
api
 
 
doc
doc
 
 
src
src
 
 
.editorconfig
.editorconfig
 
 
.gitignore
.gitignore
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
build.sh
build.sh
 
 
clean.sh
clean.sh
 
 

Repository files navigation

BareMetal Logo

BareMetal

Just enough kernel

Assembly License

Exokernel • 100% Assembly • Virtual/Physical

Official repo of the open-source BareMetal 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.

Table of Contents

  • What it is
  • Architecture
  • Key features
  • Supported hardware
  • Try it out

What it is

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 storage access via a low-level abstraction layer.

Architecture

BareMetal is an exokernel and offers a single address space system.

It is written in assembly to achieve high-performance computing with a minimal footprint and a "just enough operating system” approach.

The kernel is primarily targeted towards physical and virtualized environments for cloud computing, or HPC clusters. It could also be used as a unikernel.

“Do not try to do everything. Do one thing well.” — Steve Jobs

The premise of the kernel is to "do one thing well" and that is to execute a program with zero overhead.

Key features

  • BIOS/UEFI: Both boot methods are supported via the companion Pure64 loader.
  • 64-bit only: 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: The kernel binary is less than 32KiB. BareMetal uses 4 MiB of RAM while running. The majority of its RAM usage is for required memory structures while operating in 64-bit mode, drivers/system buffers, and CPU stacks. All other system memory is dedicated to the running program.
  • Physical and virtual hardware 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 macOS.

Supported Hardware

  • CPU
    • Multi-core on 64-bit x86 systems (Intel/AMD)
  • Bus
    • PCIe
    • PCI
  • Network
    • Virtio-Net
  • Storage
    • Virtio-Blk
  • HID (Human Interface Devices)
    • Input
      • PS/2 Keyboard
      • Serial
    • Output
      • LFB (linear frame buffer at native screen resolution with 1024x768x32bpp as fallback)
      • VGA text mode (80x25 characters with 16 colors)
      • Serial

Try it out

See the BareMetal-OS repo for a full build environment.

// EOF

About

A very minimal, resource efficient exo-kernel

www.returninfinity.com

Topics

assemblybaremetalbaremetal-kernelkernel

Resources

Readme
MIT license
Activity
Custom properties

Stars

934 stars

Watchers

48 watching

Forks

115 forks
Report repository

Releases

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.