EquinoxOS · hobby x86_64 OS
booting…

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.

Limine boot 4-level paging Ring 3 isolation FAT32 + EXT2 RTL8139 · TCP/IP AC97 audio enGUI (Lua)
EquinoxOS commits
fetching…
enGUI commits
fetching…
Open PRs
across both repos
Stars
combined
// the stack

Written in

Languages used across EquinoxOS and enGUI, by bytes — live from GitHub Linguist.
loading…
// what's inside

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.

D

Runs DOOM

A native ELF port runs in Ring 3, talks to the kernel for input, framebuffer and audio. One desktop click away.

// the project

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

The monolithic kernel — Limine boot, paging, scheduler, drivers, FS, networking, audio, SDK and the Ring 3 ELF loader.
commits
stars
open issues
github.com/Equinox-Collective/EquinoxOS ↗

enGUI desktop · C + Lua 5.4

The Ring 3 system shell: framebuffer compositor, immediate-mode widgets, animation system. Apps are .lua files — no recompilation to change the desktop.
commits
stars
open issues
github.com/Equinox-Collective/enGUI ↗
// status

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.