ABSD — An experimental operating system.

ABSD is a small operating system, written in Rust, built to find out what a system looks like when isolation, authority, and failure are stated explicitly and checked. It boots, runs isolated processes, keeps files across reboots, runs some unmodified Rust programs, and is administered over stock OpenSSH.

Current qualification: single-operator system under QEMU (a machine emulator). It is not production-ready, and no physical hardware is supported.

ABSD was built largely by AI coding agents directed by one developer, and has had no independent human review. How it is developed.

Start here

What it is
A research operating system, not a Unix and not a product: no fork, no user IDs, and existing Unix or Linux software does not run without porting. About says what it is for; below is what distinguishes it.
What you can run today
On an Ubuntu 24.04 x86-64 host: clone the source, build the operator image, boot it under QEMU, and log in over SSH. The build and the smoke test need no KVM. Follow the repository's README; status says what that does and does not show.
Where the source is
github.com/unpingable/absd: the kernel and the platform, under Apache-2.0. Source release absd-preview-20261010, 2026-10-10.

What distinguishes it

Isolation
Every program is a separate process in its own address space, started by spawn; there is no fork. A process can act only on itself and its own children; a few whole-system counts are readable by any process. SSH sessions are separate process trees with private scratch space; they belong to one operator and share that operator's files, so they are not a boundary between users. Design: spawn, not fork.
Explicit authority
A process can touch only what it was handed: handles to kernel objects, each carrying rights that can be dropped and never added. There are no user IDs and no ambient privilege. This is the capability model of earlier systems, not a new invention. Design: handles and rights.
Bounded scheduling and recovery
Bounded here means fixed, stated limits, not timing guarantees: 16 processes in the whole system, four SSH connections by default. Processes are preempted by a timer; a fixed-priority periodic scheduling class exists as an experiment, with no real-time guarantee. On the development line and in the source release (not in the qualified release absd-20261003.1), a failure of the SSH or file server after the system has come up is answered by a whole-machine reset at most three times; the fourth stops the machine and names the reason. That budget is demonstrated by its own test, not by the platform gate. A restart is never counted as a recovery. Design: replacement is not recovery.
Evidence-oriented engineering
Claims on the status, design, hardware, and evidence pages carry a label saying how strongly each is supported, in which environment, and where the claim stops. Failed runs stay on record. How statements are labelled.

Status

Milestone
General usability under QEMU, 2026-09-27 MILESTONE-QUALIFIED
Runs on
QEMU, x86-64, one CPU, e1000 network and IDE disk models MILESTONE-QUALIFIED
Physical hardware
Physical hardware qualification: not yet established PLANNED. First read-only boots on one machine have been observed EXPERIMENTAL-INTEGRATION
Since the milestone
Release absd-20261003.1: the same system under TCG or KVM, with host-staged update and rollback RELEASE-QUALIFIED. Several-CPU scheduling, a 64-bit ARM kernel port, and a boot-time probe that enumerates one USB device on an emulated controller (not USB support, not merged), each in virtual machines only and as research VALIDATED. A seven-day unattended observation of a development build started 2026-10-10, runs until 2026-10-17, and has no result yet; publishing the source says nothing about it. See status.
Access
Stock OpenSSH, public-key login, one operator, several isolated sessions MILESTONE-QUALIFIED
Userspace
A small shell, 27 commands, 17 manual pages; 55 Rust programs built reproducibly MILESTONE-QUALIFIED
Source
EXPERIMENTAL-INTEGRATION Public at github.com/unpingable/absd, source release absd-preview-20261010. Preview: built, booted and smoke-tested from a clean clone; the qualification suites have not yet been run on these revisions and are scheduled after 2026-10-17. The milestone and the release above were qualified on earlier revisions, not on this one. See status.
Development
One developer directs the work; AI coding agents did most of the implementation and the review. No independent human audit has been done. See how it is developed.

Details, limits, and what is deliberately absent: status. The recorded qualification runs: evidence.

A session

An SSH session to the operator image, booted under QEMU from the milestone commits. The output below was captured, not written.

absd$ uname -a
ABSD x86_64 x86_64-unknown-absd pid=5
absd$ man afterboot | head
AFTERBOOT(8)                System Manager's Manual               AFTERBOOT(8)

NAME
       afterboot -- building, booting, and checking the operator image

DESCRIPTION
       This page is for the operator of an ABSD system: how to get the
       operator image, boot it, check it, and look after it, and what it
       cannot do yet.  It describes the qualified system (see intro(1),
       "QUALIFICATION"): a served `net fsd' boot under QEMU, whose file server
absd$ ps
session 1 (this session), terminal, connected 2 s
  PID PROGRAM
    4 /bin/absd-sh
other holders: input 0, file server channels 0
absd$ cd /home/operator
absd$ echo hello > notes.txt
absd$ cat notes.txt
hello
absd$ shutdown
ABSD is going down for halt: sessions are told and end, the file server commits and stops, then the machine halts.
absd$ 
sshd: the system is going down for halt; this session ends
MILESTONE-QUALIFIED Captured 2026-09-27 with OpenSSH on the build host against the operator image built from milestone/general-usability-qemu-20260927 (kernel 1983172, platform ff025b1), QEMU TCG. Text after absd$ was typed; everything else is the system's output. A session starts in /, which sessions see read-only, hence the cd.

Further reading