BareMetal Banner

The BareMetal OS - For a lean, mean, processing machine

BareMetal is a 64-bit OS for x86-64 based computers. The OS is written entirely in Assembly, while applications can be written in Assembly or C/C++. Development of the Operating System is guided by its 3 target segments:

  • High Performance Computing - Act as the base OS for a HPC cluster node. Running advanced computation workloads is ideal for a mono-tasking Operating System.
  • Embedded Applications - Provide a platform for embedded applications running on commodity x86-64 hardware.
  • Education - Provide an environment for learning and experimenting with programming in x86-64 Assembly as well as Operating System fundamentals.

Current version is 0.4.8 - released July 14, 2010.

BareMetal boots via Pure64 and has a command line interface with the ability to load programs/data from a hard drive. Current plans for v0.5.0 call for PCI access, a more feature-rich C/C++ library for applications, and network support via raw Ethernet frames. The creation of BareMetal was inspired by MikeOS - A 16-bit OS written in Assembly used as a learning tool to show how simple Operating Systems work.

MessageBareMetal OS Group @ Google Groups: Visit this group.

Speed

Speed Return Infinity goes back to the roots of computer programming with pure Assembly code. As we are programming at the hardware level, we can achieve a runtime speed that is not possible with higher-level languages like C/C++, VB, and Java.

Simplicity

Simplicity BareMetal was written with simplicity in mind. All internal functions are lean and well documented in the source code. Seasoned programmers as well as people new to computer programming will be able to pick it up quickly.

Open Source

Open The source code for BareMetal is freely available under the 3-clause BSD license. Go ahead and add, modify, or remove whatever you want. Each OS function and all other components are well documented. The source code can also be viewed online here.

Size

Size Starting with a clean slate we can say goodbye to bloated code and feature creep! As of the current version with the full CLI and internal functions, the operating system binary is only 16384 bytes. A standard "Hello, World!" example compiles to a file of only 31 bytes.

One Task Per Core

1 BareMetal uses an internal work queue that all CPU Cores poll. Simply add tasks to the work queue and they will be processed by any available CPU Cores in the system.

Looking Forward...

Arrow Future versions will call for access to PCI devices, network support, an improved C/C++ library, as well as much more documentation. All system functions constantly being updated to make sure they have the most optimal performance.

Core Features

  • Written in pure Assembly language for x86-64 based computers.
  • Over 60 integrated functions to deal with keyboard input, screen output, strings, math, multi-processing, etc.
  • Read/Write support for FAT16

Multi-processor enabled

  • System calls are provided for delegation of tasks to different processors.
  • Scalable up to 128 64-bit processors

Requirements

  • An Intel/AMD-based 64-bit computer
  • At least 4 MiB of RAM
  • 32 MiB Hard drive minimum
  • NASM to compile the source code