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.
- Implement keyboard interrupts
- Implement a simple filesystem