• Stars
    star
    343
  • Rank 123,371 (Top 3 %)
  • Language
    Shell
  • License
    MIT License
  • Created over 11 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Build scripts for BareMetal OS and its related utilities

BareMetal OS

Build scripts for BareMetal OS and its related utilities - The easiest way to create a BareMetal OS environment. These scripts will download and compile all of the components needed for using BareMetal OS.

Prerequisites

The scripts in this repo depend on a Debian-based Linux system like Ubuntu or Elementary. macOS is also supported to build and test the OS and Assembly applications if you are using Homebrew.

  • NASM - Assembly compiler to build the loader and kernel, as well as the apps written in Assembly.
  • QEMU - Computer emulator if you plan on running the OS for quick testing.
  • GCC - C compiler for building C/C++ applications.
  • Git - Version control software for pulling the source code from GitHub.

Optional:

  • mtools - Utilities to access DOS disks in Unix. This is only required if you plan on using UEFI.

In Linux this can be completed with the following command:

sudo apt install nasm qemu-system-x86 gcc git

Summary

BareMetal OS consists of several different projects:

  • Pure64 - The boot sector and software loader. Pure64 is responsible for getting the computer into a clean 64-bit state on boot up.
  • BareMetal - The kernel.
  • Monitor - A simple command line interface.
  • BMFS - The BareMetal File System utility.
  • BareMetal-Demo - Various test/example programs.

Initial configuration

git clone https://github.com/ReturnInfinity/BareMetal-OS.git
cd BareMetal-OS
./setup.sh

setup.sh automatically runs the build and install scripts. Once the setup is complete you can execute the run.sh script to verify that everything installed correctly.

Rebuilding the source code

./build.sh

Installing the system to the disk image

./install.sh

This command installs the boot sector, loader (Pure64), kernel, and simple command line interface (Monitor) to the disk image. If you want to attach your own binary to the end of the kernel you can use ./install.sh mybinary.bin

Installing the demos to the disk image

./add-demos.sh

This command installs the various test/example programs to the disk image.

Test the install with QEMU

./run.sh

Test the install with QEMU via UEFI (Experimental)

./uefi-run.sh

This command relies on mtools to create a disk image formatted with FAT.

Build a VMDK disk image for VMware

./vmdk.sh

Build a VDI disk image for VirtualBox

./vdi.sh

The VDI script rewrites the disk ID of the VDI file to avoid the disk warning in VirtualBox.

// EOF