Skip to content

sapphiremediagroup/InstantOS

Repository files navigation

InstantOS

A rewrite of the closed source graphical x86_64 operating system

Features

  • Terminal Emulator (with ANSI)
  • Userland!
  • C/C++ and Rust Support
  • Keyboard support
  • Mouse support
  • Window Manager

Upcoming features

  • Custom FileSystem

Building

Requirements

  • clang and clang++
  • cmake
  • nasm
  • make
  • lld-link through LLVM
  • xorriso
  • mtools (mformat, mmd, mcopy)
  • qemu-system-x86_64
  • OVMF firmware files

InstantOS also expects the bundled dependencies under outside/ to be present, So clone this Repository with --recurse-submodules.

Build

Clean and configure the build directory:

rm -rf build
cmake -S . -B build

Build the bootloader, kernel, userland programs, initrd, and ISO:

cmake --build build --target iso --parallel 4

The final bootable image is written to:

build/iboot.iso

Run

Boot the generated image in QEMU with:

./run.sh

run.sh creates build/ahci.img on first run and copies OVMF_VARS.4m.fd into build/ if needed.

USB input modes are selected with USB_MODE:

USB_MODE=xhci ./run.sh   # qemu-xhci with USB keyboard and mouse
USB_MODE=ohci ./run.sh   # OHCI regression path with USB keyboard
USB_MODE=none ./run.sh   # no emulated USB controller

For headless smoke testing without KVM:

QEMU_ACCEL=tcg QEMU_DISPLAY=none USB_MODE=xhci ./run.sh

build and run

If you want the full workflow in one command, use:

./build.sh

About

The open source rewrite of InstantOS

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages