A x86_64 Operating System. An OS with a future that's not quite bright.
- 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 libcprintf - 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
- 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
)
- 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