• Stars
    star
    414
  • Rank 104,550 (Top 3 %)
  • Language
    Zig
  • Created over 5 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

πŸ’Ύ hobby x86 kernel zig

hobby kernel in zig

WARNING: this project was written for zig 0.5, it doesn't compile for future versions

screenshot

features

  • 80x25 frame buffer
  • ps2 keyboard driver
  • terminal console
  • lspci
  • x86
    • MMU
    • interrupts
    • pit timer
  • scheduler
    • time slice preemption with round robin
    • sleep()
    • block()/unblock()
  • Storage
    • IDE ATA driver (in progress)

dependencies

compiling

zig build compiles and links the multiboot kernel (without a bootloader)

running

  • ./qemu.sh start
  • ./qemu.sh monitor
  • ./qemu.sh quit
  • gdb (see provided .gdbinit)

Notes

interrupt call chain

interrupt -> idt[n] -> isrN -> isrDispatch -> handlers[n] (default unhandled())

References