dzOS (DirectZ OS) is my attempt at building an operating system kernel.
It uses the Limine bootloader.
- Instruction support
- RTC (Real-Time-Clock) - Fast ASM PIT Calibrate
- FPU (Floating Point Unit)
- SSE
- GDT (Global Descriptor Table)
- IDT (Interrupt Descriptor Table)
- IOAPIC/LAPIC support
- Interrupts
- Virtual Memory mapping (4KB Page Size)
- dynamic kernel memory allocation (
kmalloc/kfree) that manages space efficiently - ELF binary loader
- Kernelspace + Userspace
- Device detection + Driver registration
- PS/2
- PCI
- Basic NVMe support
- simple
dzFSfilesystem - syscall and interrupt support
- Basic serial IO support
- Uses the Limine provided framebuffer, and flanterm terminal, to print kernel init to the framebuffer
To get started with dzOS, make sure you have the following tools in your PATH
- clang/clang++
- xxd
- xorriso
- qemu
- ninja-build
Then to configure and build..
cmake -GNinja -B build -DCMAKE_BUILD_TYPE=[Debug/Release]
cmake --build buildcmake --build build --target qemuIn a terminal, run:
cmake --build build --target qemu-debugThen in another terminal, run:
gdb build/isoroot/boot/kernel.elf
(gdb) b kmain
(gdb) target remote localhost:1234
(gdb) continueAs of latest master branch, only unix-like OS can build dzOS, so, if your host is Windows, it is recommended to use WSL.
- OSDev wiki
- CrowOS - Great starting reference; dzOS has changed significantly since starting with code from CrowOS
- Limine Bootloader
- Intel Software Developers Manual
- Various other developers via Discord
- AI tools such as ChatGPT/Claude/Gemini for information gathering and help with problem solving
- Myself and many years experience programming the full stack
- Unix-like Kernel that is secure.
- Data is kept private and free from tamper (peace)
- Custom Windowing interface that may mirror many protocols
- Userspace apps
- Filesystem permissions
- Embedded DirectZ Editor (a userspace program)