Mercury OS is a simple operating system used to learn about the different concepts of OS design. It is written using C and Assembly and compiled using GCC. The kernel is loaded using GRUB. The objective is to make a lightweight, extensible platform that can run simple applications at high speeds.
32-bit Processor or higher
1GB of RAM
GCC configured toolchain
LD linker
Nasm
QEMU or Bochs
Build a tool chain as described by the OSDev wiki: OSDev Wiki.
To get nasm on linux systems use
sudo apt-get install nasm
Windows and MacOS sources and binaries are avaliable at Nasm.
To build use the makefile at the root directory.
Qemu can be used by executing
make run-qemu
Bochs is recommended for debugging and can be used with
make run-bochs
Bootable image
Basic terminal output
GDT implementation
IRS implementation
IRQ implementation
Basic keyboard driver
Basic Timer
Refine keyboard driver
Extend and refine I/O drivers (Centralized Input and Output Function)
Userland shell
Filesystem support
Load ELF Executable