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.
Permalink
Failed to load latest commit information.
asm
linker
obj
.gitignore
Makefile
README.md

README.md

sos

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):

sos

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.

Why?

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

License

Creative Commons 3.0