A short-term project for me to learn some new stuff about operating systems.
- Bootloader - boots in BIOS mode. No use of GRUB/any other bootloader template.
- Kernel loading in 1 stage - first sector of disk loads the kernel from the disk.
- Passing to 32 bit mode
- Enabling software & hardware interrupts
- Enabling the timer (that currently doesn't do anything)
- Reading input from keyboard
- Writing text to the screen
- Finish keyboard input (add keyboard modifiers, special characters [delete, function keys, etc.])
- Physical memory allocator
- Disk driver
- File system
- Paging in 32bit
- Separate the boot to 2 stages (second stage performs jump to 32 bit, then loads the kernel, so the kernel size is not limited)
- Moving to ring 3
- Processes
- Threads & scheduling
- Normal GUI (with windows and all)
And then we'll see what's more...
TODO: Document and add some screenshots for swag