Machine identity
SlOS is a personal, unreleased hobby OS. Its native x86-64 and AArch64/QEMU virt targets run private ELF64 user programs through an LP64 SDK, with VirtIO block/network devices and persistent SlFS. x86-32 is retired. Follow /start for prerequisites and disposable make dev operation.
The kernel scheduler is preemptive. Kernel actors and mesh messaging are separate from the cooperative runtime subset in Slepp’s local Hew-on-SlOS offshoot; /hew records its source-to-ELF proofs and limits, not an official Hew target.
The distinguishing device is the causal graph. Scheduler actions, syscalls, filesystem work, network packets, actor messages, mesh traffic, and application changes are recorded as events with Lamport time and parent event IDs.
Recent and durable history
The hot graph is a bounded in-memory ring for immediate inspection. The persistent causal journal, cjournal, spills history to SlFS segments with event hashes, Merkle roots, and epoch proofs.
Use read-through commands when an event has aged out of the ring: events -a, cq -a, why -a, trace -a, and journal subcommands consult archived history instead of only live memory.
Time-travel operation
Replay reconstructs state by scanning causal events up to a chosen tick. The scrub program is the operator surface: a TUI for moving through ticks, focusing on events, comparing ticks, and exporting JSON.
Counterfactual analysis is explicit. whatif and scrub whatif drop an event in analysis and report the downstream effects that would disappear.
Web causal explorer
The user-space httpd program serves a live dashboard and a /causal explorer. The explorer draws an SVG causal DAG, lets the reader focus events, and mirrors the time-travel state used by scrub.
The API surface is small and inspectable: /api/causal/state, /api/causal/recent, /api/causal/graph, and /api/causal/dot.
Remote workstation
telnetd listens on guest port 23, forwarded by the default QEMU run to localhost:2323. noiseshd listens on port 5200 and uses an ephemeral X25519 exchange followed by ChaCha20-Poly1305 frames. It is a from-scratch confidential channel, not OpenSSH, and it does not yet authenticate the server.
The remote shell is more than line input. Per-task I/O hooks redirect console output and input, console cursor/clear/colour emit ANSI, SYS_TERM_GETKEY decodes arrows and Ctrl combinations from the byte stream, and telnet NAWS supplies terminal size for editor and pager sessions.
Use /home/... for persistent work and /tmp or relative paths for RAM scratch. Long-lived service commands such as httpd detach from the session, so a service started remotely can survive exit or a dropped connection.
Timelines and graph-native applications
Timelines are named chains of causal events. Notes, mail, the editor, process timeline viewing, and scheduled commands treat application state as replayable history rather than opaque mutable files.
Use tl list/show/rewind/forward/at/mark/tail as the shared manual controls, then operate note, mail, edit, proc, schedule, and scheduled for application-specific views.
Per-core and graphical operation
Native x86-64 and AArch64/QEMU virt default to SMP=1 CPUS=4. Explicitly AP-pinned kernel work is preemptive; user programs, allocation, filesystems, networking and general services remain on CPU 0. Native automatic offload and user migration are not implemented. SMP=0 CPUS=1 selects UP debugging.
The historical i386 wm demonstration turns a 1024x768 framebuffer into tiled CPU, causal-tail, task and memory panels. It is not evidence that the old desktop or DOOM has been ported to the native targets. Current CPU snapshots and concurrency checks are described on /development.
Application workbench and saved projects
The native workbench opens a private developer VM with the editor and develop client. Write C or multi-file Hew in the guest, compile through a trusted Linux worker and run the checked ELF64 in SlOS. diagnostics revisits checked feedback; edit opens its source line; status distinguishes source edits from the installed program.
A failed build leaves the last good application available. rollback changes program selection without discarding current edits or application data outside the project. The ledger and supervised job queue demonstrate that separation; the queue can start through the installed service manager at boot.
For an ordinary handoff, save, run fsck and halt. Interrupted originals are not silently resumed. Read-only rescue, recovery on a new v2 copy and checked project import provide an explicit path to a fresh session with new credentials. Unsaved buffers and unrelated application data are not included.
Installed Hew tools and services
The local Hew userland includes text, filesystem, data, system, network and causal commands, alongside base stream tools. Installed programs resolve through the selected bundle and have their own help. Familiar names describe bounded practical subsets rather than full GNU/POSIX behaviour; C rescue builtins remain separate.
The report workspace accepts canonical expense TSV inputs, publishes immutable reports and preserves working data outside versioned installations. Bundle update and rollback select checked code without erasing that data.
The distributed renderer assigns actual guest computation across x86-64 and AArch64 workers. Its durable debugger follows result, assignment, process and configuration records across boots. Remote reports, checked local state and missing evidence remain distinct.
Actors, mesh, and proofs
Actors are named message endpoints with local mailboxes and routes that can cross the mesh. Mesh and federation commands expose peer identity, routing, remote actor delivery, and causal graph exchange.
Proof commands make the archive auditable: prove, cproof, verify proof-health, journal json selfcheck, journal verify, journal proof-health, and cq -a epoch-proof inspect hash chains and epoch roots.