Skip to content

0xbigshaq/GenesisOS

Repository files navigation

GenesisOS


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:

genesis-gif

More info:

References

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.