Bootloader
- boots (you don't say!)
- BIOS compatible (also works on UEFI with CSM enabled)
- Global Descriptor Table loading
- Unreal Mode switching (to use 32bit addresses in 16bit Real Mode)
- kernel copying from disk to protected memory
- 32bit Protected Mode switching
- kernel jumping
Kernel
- Interrupt Descriptor Table loading
- CPU exceptions handler
- Programmable Interrupt Controller driver
- keyboard driver
- ATA disk driver
- FAT16 filesystem file read
- timer interrupt driven CPU scheduler
- prints system call that writes to VGA text buffer
- task manager
- round robin CPU scheduler
Shell
Available commands:
- help shows available commands
- ls lists root directory entries
- cat displays content of a file
- test tests CPU scheduler with dummy tasks
- run loads file as task and adds it to the task list
- ps lists running tasks
- rt removes specified task
libfelix (standard library)
- print! macro able to print formatted text to screen
How to run
Run it in QEMU using qemu-system-i386 -drive file=disk.img,index=0,media=disk,format=raw,if=ide