/tinyos

A very simple and tiny operating system targeting the x86 architecture.

Primary LanguageCMIT LicenseMIT

tinyOS

A tiny operating system for the x86 architecture.

This is a small operating system targeting the x86 architecture (32-bit) based off of various online tutorials. The aim is primarily that of learning, and is far from a useable, modern operating system(!)

Build status

Build Status

Features

  • Bootable! (using GRUB)
  • Set up basic memory segmentation
  • Set up paged virtual memory
  • Can recieve and handle basic software and hardware (IRQ) interrupts
  • Can print to the (VGA text-mode) screen
  • Heaped memory
  • File system
  • User-mode processes and executable loading

Building

  1. Install prerequisites
# Linux (Ubuntu)
$ apt install make gcc nasm genisoimage bochs-sdl

# macOS
$ brew install cdrtools bochs
  1. Restore external packages
$ ./init.sh
  1. Compile
$ make all
  1. Run in the Bochs emulator
$ make run

😊