Boots on x86_64 + aarch64 · C23

VectraOS

The future we were promised took a wrong turn somewhere around 1992. We went back for it.

Plan 9 evolved for modern computing: a capability micro-kernel where every resource is a file server and every fast path is a shared-memory ring.

The road not taken

There was a moment when computing could have gone another way. Plan 9 made every resource a file and every machine part of one namespace. The Amiga ran a whole multitasking desktop out of a few hundred kilobytes. Micro-kernels promised systems small enough to understand and too modular to bring down.

Then the industry took the other road: bigger kernels, deeper stacks, layers wrapped round layers, and machines their owners can no longer read.

The road we're taking

VectraOS rebuilds the clarity of those lost systems from the ground up for the hardware of now: many-core SoCs, unified memory, GPUs and NPUs, and a swarm of your own machines on the desk and in the rack.

The goal is a system one hacker can hold in their head. Any service explorable with ls and cat. Any action a person can take, scriptable through the same interface.

Jack in

Neon on chrome. Small enough to read.

01Everything is a file. Still. Again. Further.

Windows, sensors, accelerators, AI contexts, the network and the process table are all file trees. Every service describes itself with .help and .schema files, so people, scripts and agents discover it the same way.

02Your machines are one machine.

Plan 9's terminal/CPU-server split, rebuilt for heterogeneous swarms. A laptop mounts a workstation's GPU or a server's NPU into its namespace and uses it as if it were local.

03A kernel with four jobs.

Address spaces, threads, capabilities, notification. Nothing else. Drivers, filesystems, the network stack and the window server are ordinary processes talking over lock-free rings.

04Your namespace is your perimeter.

No ambient authority. A process names only what it was given. Sandboxes, containers, agent permissions and remote sessions are one mechanism: a namespace built for the purpose.

05Local-first AI.

Models are a system resource like storage or audio, served under /ai. Nothing leaves your machine, or your own swarm, unless a policy says so.

06No legacy sprawl.

One mechanism per job. No compatibility shims, no portability layers. The one exception is a POSIX personality, so LLVM, Python and Git come along without growing the kernel.

Not a whitepaper

It boots.

Under QEMU on x86_64 and aarch64, VectraOS boots through Limine into a capability micro-kernel, starts its services, and drops you at gsh, a shell built on 9front's rc.

The network is a mount. The process table is a directory. A file server on another machine joins your namespace with one command.

See what runs today →

gsh · tests/qemu/mount.ndb
# the network, Plan 9 style
vx% cat /net/ipifc/0/status
dev=ether0 addr=10.0.2.15/24 gw=10.0.2.2 dhcp lease=86400s
# a 9P file server across TCP, into the namespace
vx% mount tcp!10.0.2.100!5640 /n/host
vx% ls /n/host
hello.txt
vx% cat /n/host/hello.txt
hello from the host
vx% echo hi > /n/host/out.txt
vx% cat /n/host/out.txt
hi
By the numbers
2architectures, x86_64 and aarch64
4/15milestones done; storage under way
~58klines of first-party C23
0package registries

If the first-party base system cannot be understood by one person, it is too big.

— Design rule 13