A hobby x86_64 OS, written from scratch.
EquinoxOS is a monolithic kernel for x86_64 written in C and ASM. It boots via Limine, runs a compositing window manager with drop shadows and z-ordering, true preemptive multitasking, dual filesystem support (FAT32 + EXT2), a full TCP/IP stack, AC97 audio — and ships a port of DOOM.
Written in …
A real OS, end to end.
No emulator tricks, no userland VM. Every layer is implemented: bootloader handshake, paging, scheduler, drivers, network stack, filesystems, compositor.
Limine boot · HHDM
Boots through the Limine protocol in 64-bit Higher-Half mode. HHDM offset is used everywhere physical memory needs to be touched.
4-level paging
Bitmap PMM with pmm_alloc_continuous(), per-process PML4, 64 MB kernel heap (kmalloc/kfree), shared memory via shm_alloc.
Preemptive multitasking
Round-robin scheduler on IRQ0 (PIT 1 kHz). Ring 3 with isolated address spaces, ELF64 loader, GDT/TSS for kernel↔user transitions.
10+ syscalls via int 0x80
File R/W, draw buffer, mouse, keyboard, font, sleep, brk, audio, shm, vesa info, net (DNS/HTTP), pipes (60–63), message queues (64–67), exec.
Compositing WM
VESA LFB, double-buffered compositor with drop shadows (alpha blend), z-ordering, software cursor. Default desktop shipped as enGUI, scripted in Lua.
FAT32 + EXT2
Both read/write, behind a VFS abstraction. EXT2 stress-tested in 4 phases. ATA-PIO block driver, GPT parser for partition tables.
TCP/IP stack
RTL8139 driver · ARP · IPv4 · ICMP · UDP · TCP 3-way handshake · DNS resolve · HTTP GET · NTP time sync. All in-kernel.
AC97 audio
PCM playback via SYS_AUDIO_PLAY — used by the DOOM port and the niplay sample player.
Runs DOOM
A native ELF port runs in Ring 3, talks to the kernel for input, framebuffer and audio. One desktop click away.
Two repos, one OS.
The kernel and the desktop environment live in separate repos. enGUI is wired in as a git submodule under app/sysgui and loaded as the Ring 3 init process.
EquinoxOS kernel · C + ASM
enGUI desktop · C + Lua 5.4
.lua files — no recompilation to change the desktop.Where we are.
Done
In progress / next
Clone it, boot it in QEMU.
Everything is open source. Build the ISO with make, boot with qemu-system-x86_64 -cdrom equos.iso.