Skip to content

ZeunO8/dzOS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

70 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

dzOS

dzOS (DirectZ OS) is my attempt at building an operating system kernel.

It uses the Limine bootloader.

Features

  • 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 dzFS filesystem
  • syscall and interrupt support
  • Basic serial IO support
  • Uses the Limine provided framebuffer, and flanterm terminal, to print kernel init to the framebuffer

Building and Running

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 build

If you want to simply run, use

cmake --build build --target qemu

Or if you want to debug via GDB

In a terminal, run:

cmake --build build --target qemu-debug

Then in another terminal, run:

gdb build/isoroot/boot/kernel.elf
(gdb) b kmain
(gdb) target remote localhost:1234
(gdb) continue

Host support

As of latest master branch, only unix-like OS can build dzOS, so, if your host is Windows, it is recommended to use WSL.

Resources used for development

  • 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

Project Goals

  • 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)

About

An operating system built using Limine and CMake

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published