A hobby 32-bit x86 kernel written in C and assembly.
- Protected mode with ring 0/3 separation
- Preemptive multitasking with round-robin scheduling
- Keyboard input via PS/2 interrupt handler
- ATA disk driver for loading tasks at runtime
- Simple shell with command execution
- VGA text mode console
A step-by-step guide to building this kernel from scratch is available in the tutorial folder.
Requires an i686-elf cross-compiler toolchain (GCC, LD) and NASM.
make
make run # curses mode (in terminal)
make run-window # graphical window
Sector 0 Boot sector
Sector 1 File table (generated at build time)
Sector 2+ Kernel
... Tasks, fonts
The file table maps task names to their disk sectors, so the loader can find them at runtime without hardcoded offsets.
help- list commandsabout- version infotasks- show running taskstask_a,task_b- load sample tasks from diskquit- shutdown
MIT
