Current capabilities
What is implemented and how it is verified, subsystem by subsystem. This is a
curated overview, not the live status ledger; docs/status.md remains
canonical. Where a capability is partial or hardware-specific, the page says
so.
- Networking — raw Ethernet up through ARP, IPv4/ICMP, UDP, DHCP, DNS, and TCP (client + passive-open server,
GOHTTPD.ELF; ZigHTTPD.BINretired in M71l), plus the TCP syscall seam. - Graphics — the framebuffer, the Road Pops terminal, and the Driving Award window manager with a window syscall seam.
- Input — USB XHCI, HID enumeration, keyboard events, and pointer/click events routed to focused applications.
- Storage & filesystem — the
/hostshare over the custom-virtio channel or opt-in standard VirtioFS, a read-only FAT32 path for USB images (--usb-msd), a read/write virtio-blk driver behind the opt-in--data-diskwith the kernel's VLFS volume mounted read-only at/disk, and a userland file syscall ABI. - Processes & IPC — concurrent EL0 programs, mailboxes, wait, kill,
sys_exec/sys_kill. - User programs & demos — retained Zig seam proofs, current Go desktop apps, and dynamic
.ELFexecutables. The programs page distinguishes historical payloads from current build outputs. - SMP & memory depth — a 16-task pool, SMP scheduling, spinlocks and GICv3 IPIs; anonymous
mmapwith demand-zero faults and copy-on-write (M29), with no swap. - Dynamic linking — a freestanding
LD.SOruntime linker,LIBUI.SO/LIBFONT.SOshared libraries, anddlopen/dlsymplugin loading. - Shared services & sound — a machine-global clipboard, per-process app timers that post
TIMERevents, a virtio-snd audio pipeline from the device up to EL0 melody apps, and the opt-in bidirectional host clipboard over HMAC-signed share files (--host-clipboard, M108b). - In-guest development — the guest's own
cmd/compile/cmd/linkbuild and run Go programs (live-selfhost-go), andGOBUILD.ELFdrives them across a multi-package import graph with a bounded, named-refusal dependency closure (live-gobuild).FLINT.ELF, the agent-native SCM, signs and merges Streams and speaks FLINT-SYNC/1 (clone/pull/push/ls-remote) against a hostflintd(gatego-flint).
The headline capability: a real machine
Taken together, the live gates cover the system's end-to-end paths. This list describes capabilities across those runs, not one default boot: device modes such as display, network, and USB input are flag-gated as described in Running the VM.
- Firmware hands a UEFI app a machine; the kernel takes it over.
- A serial
virelai>shell answers commands with deterministic replies. - The screen shows a working graphical terminal (Road Pops) composited by a window manager (Driving Award).
- User programs run at EL0 as processes, with syscalls, IPC, and exit statuses.
- The machine talks Ethernet — ARP, ICMP, UDP, DHCP, DNS, TCP — and types from a real USB keyboard.
- A desktop launcher starts real applications — calculator, editor, process monitor, file browser — that paint windows, receive events, and talk to the network.
- Text moves between apps through a shared clipboard, apps wake on timers
instead of spinning, and the machine makes sound: a boot chime, a
beep, and EL0 melody apps over a virtio-snd device.
Not there yet
- Multi-display and the balloon device; accelerated 3D exists only as the opt-in M102 custom-virtio Metal device, not in the default desktop.
- Routing beyond the NAT gateway, any IPv6 stack, and TCP beyond the singleton client + bounded passive listener (two simultaneous children).
- DNS is shipped, but the resolver is bounded (A records only, no caching).
Those are honest gaps, not secrets — the Roadmap & status page and the repository's
docs/status.md track them.