A UNIX-like operating system, written from the kernel up.
AquilaOS is a hobby operating system: a monolithic kernel, a C library and the tools around them, built toward POSIX. It runs on x86-64 and i386, boots in QEMU, and runs dash, bash, curl, X and Doom.
- Version
- 0.0.2
- Architectures
- x86-64, i386
- Standard
- POSIX.1-2008
- License
- Public domain (CC0)
- Updated
- October 2026
Booting
The x86-64 kernel booting in QEMU with its console on the serial port. These lines are from the kernel's log, trimmed.
x86: Welcome to AquilaOS! kernel: 255 MiB of memory, up to 0x000000000FC00000 x86_64: 256 MiB in the direct map apic: local APIC 0 at 0x00000000FEE00000, 1 I/O APIC(s), the first at 0x00000000FEC00000 (GSI 0, 24 pins) x86: interrupts through the apic vt: 6 terminals of 80x25 on VGA text mode kdev: registered blkdev 3: ata net: lo: loopback, 127.0.0.1/8 net: eth0: 52:54:00:12:34:56 e1000: 8086:100E at 0x00000000FEBC0000, irq 11, link up kernel: loading init process clock: hpet, 10000000 fs a count AquilaOS version v0.0.2 login: root Welcome to AquilaOS! # uname -a AquilaOS aquila v0.0.2 Oct 22 2026 04:32:00 gcc 15.3.0 x86_64 #
Features
Kernel
- Monolithic, with processes, threads and kernel threads
- Sessions, process groups and job control
- POSIX signals, delivered on return to user mode
- Copy-on-write, demand paging and
mmap - APIC with MSI; a clock to the nanosecond from the TSC or HPET
Storage and devices
- ext2 and minix, read and write; tmpfs, procfs, devfs, devpts
- Virtual terminals on the framebuffer or VGA text mode
- ATA disks, PS/2 input, 8250 UART, VESA framebuffer
Network
- Intel e1000 and e1000e Ethernet
- IPv4, ARP and ICMP; UDP and TCP (RFC 9293)
- DHCP client and DNS resolver
User space
- newlib 4.6, dash, sbase, runit as init
- About 45 ports: bash, curl with TLS, tcc, Lua, X with dwm and st, Doom
Getting started
| Command | What it does |
|---|---|
make toolchain | Builds GCC, binutils, newlib and Limine for AquilaOS, once (about 15 minutes) |
make | Builds the kernel, user space and the initrd |
make ports | Builds the optional software: bash, curl, X, Doom and the rest |
make run | Boots it in QEMU, with the console on the serial port |
make test | Runs the test suite in QEMU |