The System, Running

Every image on this page is a capture of the real GodspeedOS, booted in QEMU with an emulated framebuffer and photographed straight from the guest's video memory. website/capture/fb_shot.py grabs a single boot frame; website/capture/fb_capture.py drives the shell over the COM1 serial line (where the shell reads input) and screendumps the framebuffer at a chosen state. Nothing here is a mockup.

Boot to steady state

The kernel comes up on all cores, spawns the supervisor directly, and the supervisor wires each service from its name-cap map. Here the USB stack has just enumerated a keyboard end to end, and the shell is ready. Boot output reaches the display through the kernel's own minimal framebuffer blit, which hands the screen to the console service when the kernel grants it the framebuffer at spawn; the serial line keeps the full log either way.

GodspeedOS booting to steady state

The shell, and exactly what it may do

gsh is not a Unix shell - it is a capability-broker service. It holds a console capability and a handful of others, and it can do precisely what those grant, nothing more. Here it answers date, cores, and uptime, and then caps prints its own capability table: the resource each cap targets and the rights on it (log_write, spawn, console_read, introspect, service_control, and its IPC endpoints). Authority is never ambient or inherited - it is this list, and only this list.

The gsh shell listing its own capabilities

Live introspection: observe

observe is a live, full-screen view of every service the system is running - scheduler slot, name, core, state, memory against its contract limit, restart count, IPC queue depth, CPU share, and uptime. It reads structured per-service state the kernel and supervisor already track; there is no /proc text to parse. This capture is from July 2026, when the system ran eight services, all healthy here; it runs more than twice as many now.

The observe live view

Persistent storage: drives

State that must survive a reboot lives on disk, reached only through the fs service, which reaches the disk only through the block-driver, which alone holds the hardware capability. drives lists the mounted volumes: one GSFS filesystem, 16 MiB, with its free space. Every byte crossed an IPC boundary and a capability check to get there - there is no ambient file access anywhere in the system.

The drives view showing a mounted GSFS volume

Editing a file: edit

edit is a full-screen, modeless text editor - a title bar with the filename and a dirty mark, the text area, and a status bar showing the two keys you need (Ctrl-S save, Ctrl-Q quit), the column, the byte count, and the edit-buffer fill (buf 106/32768). It opens a file of any size without loading it whole: the original stays on disk, read in fixed windows as you scroll, while edits accumulate in a bounded add-buffer and a save streams the pieces back out. Bounded, no heap, loud when the buffer fills - never a silent truncation.

An edit session, a note open in the full-screen editor

Scripting: a .gsh script via run

Commands compose into scripts. Here a small script is authored in one line (statements separated by ;), saved as /demo.gsh, and executed with run: the runner echoes each statement, shows its output, and prints a pass/fail summary - run: ran 4, failed 0. This is the same mechanism the shell's own suites use - a .gsh file, run and checked. And like everything else, a script is capability-scoped: run can do only what the shell already holds.

A gsh script authored and run via run, ending in a pass summary

Maximum carnage: chaos max-carnage

This is the fire (Commandment II). chaos max-carnage all-services storms every live service at once - kill-storms, queue floods, system-wide memory pressure, and spawn-storms - for exactly the number of rounds you type (chaos max-carnage all-services 100), or until you press q. Each round picks a random subset of the live services, the shell and the supervisor included, floods each one it can and kills every one it picked. The table counts the punishment each service has taken. This capture is from July 2026, when every round still tore down fs and shell: by round 28 they had been killed 28 times each, the supervisor itself 5 times, the drivers flooded 28 times.

And the line that is the whole point:

kernel: ALIVE

Everything above the kernel dies and is respawned - even the supervisor, which the kernel itself brings back. Only the kernel is unkillable (Commandments II and V). The abort is deliberately a serial-console q, because the storm will kill the keyboard driver too.

chaos max-carnage mid-storm, kernel still alive