Skip to content

prince776/DimOS

Repository files navigation

DimOS

A x86_64 Operating System. An OS with a future that's not quite bright.

Features

  • Limine boot
  • Long Mode (64 bit), Higher Half Kernel
  • Software and Hardware Interrupts (IDT and PIT)
  • Physical Memory Manager (Bitmap based)
  • Virtual Memory Manager (4 Level Paging support)
  • Kernel Heap (FreeList)
  • malloc/free and new/delete support
  • Minimal libc printf
  • Kernel Threads with Context Switching
  • Preemptive Multitasking using timer interupts (PIT)
  • Round Robin Scheduler
  • Concurrency primitives (Mutex, Condition Variable, and Semaphore)
  • Virtual File System
  • Custom Ramdisk file system
  • Keyboard support
  • Kernel space shell
  • Userland process and threads
  • System Calls
  • Users pace Shell
  • Actual libc
  • Network Stack
  • Basic GUI...

Here's a basic demo of the kernel space shell

Image

Build Instructions

Requirements:

  • Qemu for emulation (Ex: brew install qemu)
  • x86_64_elf gcc cross compiler (Ex: brew install x86_64-elf-gcc)
  • xorriso for iso creation (Ex: brew install xorriso)

Build and run

  • Clone the repo
  • Run git submodule update --init (or clone recursively in first step itself)
  • Run make -C limine
  • Run ./all.sh to clean + build + run.
  • Use ./build.sh for just building, ./qemu.sh for just running

About

An OS with future that's not quite bright

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published