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.

Read the source Build and run it

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

All features and ports

User space Ports bash curl tcc Lua vis X dwm st Doom Base system dash sbase runit nc aqbox C library newlib 4.6 with AquilaOS's system calls system call interface Kernel Processes threadssignals, jobs Memory COW, pagingbuddy, vmem VFS ext2, minixtmpfs, procfs Network TCP, UDPIPv4, ARP Terminals vt, ptyline discipline Drivers APIC, MSI HPET, TSC ATA e1000 fbdev PS/2 8250 x86-64 or i386 PC, or QEMU
Figure 1. The parts of AquilaOS, from the hardware up. Everything below the dashed line runs in the kernel.

Getting started

Table 1. Build targets, run from a clone of the repository on Linux.
CommandWhat it does
make toolchainBuilds GCC, binutils, newlib and Limine for AquilaOS, once (about 15 minutes)
makeBuilds the kernel, user space and the initrd
make portsBuilds the optional software: bash, curl, X, Doom and the rest
make runBoots it in QEMU, with the console on the serial port
make testRuns the test suite in QEMU

Prerequisites and the other ways to run it

From the blog