Axis / Base OS

Base OS

The Base OS is the common contract for an immutable Linux userspace and the transition into its runtime. It defines what a conforming system image contains and how a machine starts that userspace without changing the image.

Parts of the contract

These specifications define independent input/output boundaries. Their relationship is owned here: Boot consumes the OS image without converting it, exposes that same filesystem as /, and transfers process identity 1 to the executable supplied by the image.

flowchart LR
    Image["OS image"] -->|exact bytes| Boot["Boot"]
    Boot --> Root["Read-only root filesystem"]
    Boot --> Init["Initial process, PID 1"]
    Root --> Runtime["Runtime entry"]
    Init --> Runtime

Runtime boundary

The initial executable path is /sbin/axisd. At entry it is PID 1 and the selected filesystem is already mounted read-only as /. The runtime establishes writable ephemeral state outside that root. Detailed behavior of an implementation is not part of this format-and-entry contract.

The image contains the immutable userspace needed for its intended runtime. Boot-specific kernels, firmware, boot loaders, early userspace and machine support remain external. The same bytes may be used in several compatible machine configurations. Their physical storage layout and discovery mechanism do not become properties of the image.

Lifetime and conformance

Normal operation never modifies the root image. Volatile runtime state and persistent state are separate from it; this specification does not yet define a persistent-state or update protocol. Booting the image does not imply that persistent state, networking or higher-level services are ready.

Conformance requires both a valid image and a boot implementation satisfying the corresponding entry contract. A successful filesystem check is not evidence that the machine can boot or that its runtime requirements are satisfied. Construction tools and system-manager implementations can change independently while preserving these boundaries.

The reference declarations in axis.lua supply the common filesystem layout for the shipped distribution. The source definitions implement one composition policy; they do not redefine this runtime contract.