jzck / kernel-zig

:floppy_disk: hobby x86 kernel zig

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

About

:floppy_disk: hobby x86 kernel zig


Languages

Language:Zig 94.2%Language:Assembly 4.6%Language:Shell 1.1%Language:GDB 0.1%