Small project I made because I wanted to learn about kernels and how they work.
This operating system have the following features:
- Kernel allocator
- Virtual Memory
- Interrupts / IRQs
- Disk: ATA PIO
- Syscalls
- Scheduler (Round-Robin algorithm)
- Serial/UART driver
- Filesystem: Support FAT32
- ELF Loader
- Userland shell/init binary
- Devices/File descriptors
- VGA Driver
- BMP Renderer
All this work, just to load a userland ELF binary that echoes back whatever you write to it by calling SYS_read
and SYS_write
:
More info:
To write this project, I used:
- Intel SDM Vol 3(
325384-sdm-vol-3abcd.pdf
) - OSDev Discord community(link)
- OSDev: https://wiki.osdev.org/
- "The little book about OS development": https://littleosbook.github.io/
- SerenityOS and Academic projects such as JOS and xv6 (to get inspiration for design ideas)
- nanobyte-dev YT channel to get introduction on FAT filesystems.