VectraOS is young. It runs under QEMU on x86_64 and aarch64, and every milestone ends with an exit test that boots both architectures headless and checks the console.
The live record, step by step with commits and known gaps, is docs/milestones.md.
The kernel boots through Limine on both architectures and reaches user space, with SMP: every CPU online, with locking and cross-CPU wake-ups.
Kernel IPC: channels, rings and handle transfer, the wake-up protocol model-checked. 9Px over rings,
bootfs, per-process namespaces, procfs, and a console driver you can kill from
the shell that svcd brings back.
ACPI tables, MSIs, DMA domains and a PCI scan. A user-space virtio network driver. netd, a
first-party TCP/IP stack with DHCP and DNS, serving /net in Plan 9's layout. 9P file servers
mounted across TCP.
musl 1.2.6 on a VectraOS back end: fork, exec, pipes, signals as notes, ptys and job control, sockets over
/net, poll and select. Lua and sbase. Notes, exit strings, namespace
groups and one process table. Breakpoints, watchpoints, crash directories, and dbg, a native
debugger with its own DWARF 5 reader. gsh remade on 9front's rc.
Done so far: a block device class and virtio-blk driver, GPT partitions, and
vx-fs, a copy-on-write file system after 9front's gefs with snapshots, branches, a checker
and a power-cut test that cuts a recorded workload at every write barrier. fsd serves it over
9Px with users, permissions and a dump view by date, and pages memory-mapped files in as the kernel's pager.
Still to come: NVMe, IOMMU enforcement, ACPICA, FAT and ISO 9660, and installing from the ISO.
vx-check, a small model checker, explores every interleaving of the ring wake-up protocol.The build's loc command publishes the line count for the
whole image, with imports such as musl, Lua, sbase and Limine counted next to our own code.