Showcase reel

Video evidence.

These seven clips remain the canonical visual tour. The operating system has moved past the captures: durable causal history, proof checks, saved lenses, a browser DAG, and the scrub inspector are now part of the field surface.

The current visual artifact is wm.

This is not a mockup: the screenshot is from the SlOS framebuffer. The window manager uses fixed tiled panels for CPU state, a causal event tail, tasks, and memory/system bars. It is keyboard-driven and intentionally non-composited.

SlOS wm tiled framebuffer desktop with live system panels
wm: 1024x768x32 framebuffer, live observability panels, Tab focus, q/Esc exit.
slos:/$ wm
# 1024x768 framebuffer, fixed tiled panels
# CPU monitor | causal tail | task list | memory/system
# Tab focuses the next panel; q or Esc exits

Full showcase

Complete showcase video. Local ticks, IDs, disk state, and peer state may differ.

01 / Boot identity

The machine enters through Multiboot, brings up x86 tables, paging, heap, interrupts, filesystems, PCI/VirtIO, network services, user programs, and the shell. The clip is the baseline: before causality is interesting, the target must boot repeatably.

02 / SlFS persistence

VirtIO block I/O backs SlFS. Disk commands write, append, inspect, and re-read files from disk.img so operator state survives outside the RAM filesystem and across QEMU restarts.

03 / Productivity

The shell is a toolbench: editor, browser, wget, file filters, simple compilation, user ELFs, and diagnostics run on the same syscall and causal surface as the rest of the kernel.

04 / External ELF and HEW

ELF inspection, installation to SlFS, argument passing, and HEW SDK examples show code entering SlOS as programs rather than only as built-in kernel commands.

05 / Timeline notes

Notes are graph-native application state. Add, tag, search, export, and replay operate over timeline events, so the current note list is a reconstruction rather than an opaque file.

06 / Actors and mesh

Named actors, local mailboxes, route tables, SPIFFE identity, Noise-encrypted mesh transport, and federation commands expose SlOS as a small distributed-system laboratory.

07 / DOOM

The final chapter is deliberately prosaic proof: a larger graphical program can run through the SlOS program path while the kernel remains inspectable underneath.

A real work loop over TCP.

The current remote story is intentionally plain: telnetd on guest port 23 (host localhost:2323 under QEMU) and noiseshd on port 5200. The full-screen editor works because console cursor/clear/colour become ANSI and key input is decoded from the session stream. Files under /home persist; services that detach, such as httpd, keep running after disconnect.

host$ telnet localhost 2323
Trying 127.0.0.1...
Connected to localhost.

slos:/$ mkdir /home/day
slos:/$ edit /home/day/hello.sl
# full-screen editor over ANSI; arrows move, Ctrl-S saves, Ctrl-Q exits
slos:/$ cat /home/day/hello.sl
echo hello from a remote SlOS workstation
slos:/$ run /home/day/hello.sl
hello from a remote SlOS workstation
slos:/$ httpd
[httpd] Started (pid 35) -- http://localhost:8080/
slos:/$ exit
Connection closed.

host$ curl http://localhost:8080/
<!doctype html>...SlOS Explorer...

Confidential, not authenticated.

noiseshd carries the same shell stream through a from-scratch encrypted channel: ephemeral X25519 key exchange and ChaCha20-Poly1305 messages. It is not OpenSSH, and it does not yet authenticate the server, so active impersonation remains a known limitation.

host$ python3 scripts/noise-shell-client.py localhost 5200
# X25519 ephemeral handshake, then ChaCha20-Poly1305 frames
# Current limit: no server authentication yet; confidential, not OpenSSH.
slos:/$ termsize
80x25
slos:/$ logout

Idle APs can take opt-in kernel work.

smp offload <n> creates unpinned, AP-safe kernel tasks. The BSP may dispatch them to idle application processors and records the decision as causal scheduler events. It remains cooperative and kernel-task-only.

slos:/$ smp offload 6
created 6 AP-offloadable kernel tasks
[ap] task ran on CPU 1
[ap] task ran on CPU 2
[ap] task ran on CPU 3

slos:/$ cpu
CPU  ACTIVE  CURRENT  SWITCHES  STATE
0    yes     shell    1842      busy
1    yes     idle/1   18        idle
2    yes     idle/2   17        idle
3    yes     idle/3   17        idle

cwatch streams the graph.

The causal graph can now be watched like a log. cwatch or cwatch tail prints recent context, then appends new events until the operator presses a key.

slos:/$ cwatch tail
#8921 SHELL shell command: smp offload 6
#8922 SCHED sched offload pid=47 to=cpu1
#8923 SCHED sched offload pid=48 to=cpu2
#8924 SCHED sched offload pid=49 to=cpu3
# press any key to stop

Real clients can talk to the kernel.

chatd is an IRC-lite TCP service on port 6667: up to eight clients, /nick, join/leave announcements, and message broadcast through the SlOS TCP stack.

slos:/$ chatd start
chatd: listening on TCP 6667

host$ nc localhost 6667
Welcome to SlOS chat. You are guest1.
/nick maple
*** guest1 is now maple
maple: hello from a real TCP client

Small filters compose at the prompt.

cmd1 | cmd2 now works for shell built-ins and kernel-proxied diagnostics. The model is honest and simple: sequential stage capture, not concurrent POSIX pipes, with a 4096-byte intermediate buffer.

slos:/$ ps | grep raft
slos:/$ events | tail -n 4
slos:/$ help | grep Network
slos:/$ wc
# sequential capture: each stage has a 4096-byte buffer

The graph can be read in a browser.

The userspace httpd serves /causal: a live SVG causal DAG fed by /api/causal/graph, with state from /api/causal/state. The page includes a time-travel scrubber and click-to-focus causes/effects. No new clip exists yet, so this page records it as a terminal plate.

slos:/$ httpd
httpd: serving SlOS pages and causal API

host$ xdg-open http://localhost:8080/causal

/causal
+----------------------------------------------------------+
| live causal DAG (SVG)                                    |
|  E418 syscall -> E419 sched -> E420 fs_op                |
|        \                    \                         |
|         +--> E421 user timeline --> E422 journal spill   |
|                                                          |
| scrub tick: [0 ------------------------------ now]        |
| selected E421: causes E418,E419 / effects E422           |
+----------------------------------------------------------+

Scrub, diff, JSON, and what-if.

scrub reconstructs state at a tick, inspects an event, emits JSON, diffs two ticks, or asks the counterfactual impact of dropping an event. It is the terminal companion to the browser slider.

slos:/$ scrub help
Causal Inspector
  scrub <tick>
  scrub event <id|last>
  scrub whatif <id|last>
  scrub diff <a> <b>
  scrub json <tick>

slos:/$ scrub event last
Event #last type=... subsystem=...
Caused by (parents): ...
Led to (effects): ...

Browse, profile, bisect, debug, triage.

The 551–558 toolkit reads the same event record and gives it an operator rhythm. triage renders a one-screen verdict, cbisect binary-searches replayable history for when a metric crossed a threshold, cdb is a stateful debugger for causes, and cprof profiles cause-to-effect flow across subsystem boundaries.

slos:/$ triage
SYSTEM TRIAGE  (tick 281)
STATUS: HEALTHY
Next action: (system healthy - no action needed)
slos:/$ cbisect events 100
FOUND: tick 276 (events=2049, crossed from 0) after 8 probes
slos:/$ cprof
sched -> sched  edges 1508   syscall -> sched *  edges 1

Seal one outcome and carry it.

attest emits a self-contained Ed25519-signed receipt for one outcome that attest verify re-checks against the node key; capsule writes a portable incident bundle to SlFS; and why -r tags each cause hop with its origin node.

slos:/$ attest verify last
RECEIPT VALID: event #528880 in signed segment 1;
  Ed25519 signature verifies against node key
slos:/$ capsule last
CAUSAL CAPSULE for event #534692 ... saved to /capsule/534692.txt
slos:/$ why -r last
[540525] syscall: syscall 51 pid=30   origin=local

The ring is no longer the whole story.

Recent events still live in the causal ring, but the CJournal spills searchable, read-through history to SlFS. Operators can use journal, events -a, cq -a, why -a, proof-health checks, and epoch/Merkle proof paths to inspect history after reboot.

slos:/$ journal spill-through last
slos:/$ events -a sched 4
source=journal ... SCHED ... switch
slos:/$ why --md last
# Why event ...
slos:/$ cq -a id=last epoch-proof --json-ish
slos:/$ journal proof-health --json-ish
proof_health{source=journal,status=PASS,...}

Validation is part of the claim.

The repository contains automated QEMU and offline checks for boot, manual command surfaces, durable journals, the web renderer, and lens persistence.

make smoke-boot
make manual-smoke
make causal-journal-check
make web-explorer-check
make lens-persist-check
SlOS boot sequence and shell orientation
Plate I -- boot services and field prompt.
SlOS causal timeline demonstration
Plate II -- causal and timeline operation.
SlOS DOOM showcase frame
Plate III -- DOOM showcase frame.
SlOS window manager screenshot with live panels
Plate IV -- wm framebuffer desktop.