the helplessly useless operating system
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


sos is a protected mode, multiboot compliant, x86 (32 bit), completely useless operating system written in nasm-flavoured assembly. As of now, it boots using GRUB2, sets up the interrupt descriptor table with some test/dummy callbacks for interrupt handling and shows the following screen (here emulated with qemu):


Some parts of it (namely asm/boot.asm and linker/linker.ld) are highly influencied - or even a carbon copy - from OSDev Wiki, which provides a great number of resources for learning about operating systems development.

When booting with GRUB2, it takes us from a 16 bit real mode and leaves us in a 32 bit protected mode. Among other things, being in protected mode does not allow the use of bios functions, which greatly ease some of the input/ouput handling. It means that we need to write and read memory locations directly, such as was done in asm/term.asm.


To learn low-level stuff and understand how an operating system deals with the underlying hardware, as well as using a libc-free development enviroment.

Next steps

  • Implement keyboard interrupts
  • Implement a simple filesystem


Creative Commons 3.0