GithubHelp home page GithubHelp logo

torres-x86-64 / baremetal-os Goto Github PK

View Code? Open in Web Editor NEW

This project forked from returninfinity/baremetal-os

0.0 0.0 0.0 277 KB

Build scripts for BareMetal OS and its related utilities

License: MIT License

Shell 100.00%

baremetal-os's Introduction

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

baremetal-os's People

Contributors

tay10r avatar ianseyler avatar giulioz avatar scherrey avatar not-nik avatar coditva avatar vilhelmgray avatar gil0mendes avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.