Purpose
This Specification defines Boot, the process by which a compatible Platform establishes the environment required to make a selected OS Artifact the root filesystem of the Base OS runtime and transfers execution to axisd as PID 1.
Boot defines the transition from Platform-specific system startup to the Platform-independent Base OS runtime.
Scope
This Specification defines the relationship between the Platform boot chain, Linux kernel, optional Platform early userspace, OS Artifact, and axisd; the establishment of the OS Artifact as the Base OS root filesystem; and the transition to axisd as PID 1.
This Specification does not define how a particular Platform implements its firmware, boot loaders, early userspace, storage layout, boot-state management, Operating System selection policy, or physical placement of Artifacts. It also does not define initialization performed by axisd after the Base OS runtime begins.
Boot Model
Boot begins with a Platform-specific boot chain. The boot chain is responsible for starting a compatible Linux kernel and for establishing whatever Platform-specific environment is required to locate and use the selected OS Artifact.
A Platform MAY establish the OS Artifact as the root filesystem directly from the kernel, or it MAY execute Platform-specific early userspace to perform the work required before the Base OS begins.
Both boot paths converge when the selected OS Artifact has become the root filesystem and /sbin/axisd begins execution as PID 1.
flowchart TB
Platform["Platform"]
Boot["firmware / boot loader"]
Kernel["Linux kernel"]
OS["Operating System"]
Axisd["axisd"]
Platform -->|defines| Boot
Boot -->|starts| Kernel
Kernel -->|establishes as /| OS
OS -->|contains| Axisd
Kernel -->|executes /sbin/axisd as PID 1| Axisd
class Axisd program
flowchart TB
Platform["Platform"]
Boot["firmware / boot loader"]
Kernel["Linux kernel"]
Early["Platform early userspace"]
OS["Operating System"]
Axisd["axisd"]
Platform -->|defines| Boot
Boot -->|starts| Kernel
Kernel -->|starts as PID 1| Early
Early -->|establishes as /| OS
OS -->|contains| Axisd
Early -->|execs /sbin/axisd as PID 1| Axisd
class Axisd program
Platform Boot Chain
A Platform MUST define a boot chain capable of starting a Linux kernel compatible with the Platform and the selected Operating System.
A Platform MAY use firmware, one or more boot loaders, direct kernel boot, an initramfs, other early userspace, or another Platform-specific boot mechanism.
Firmware, boot loaders, kernel images, initramfs images, device trees, boot configuration, early firmware, and other components required before the Base OS runtime begins are Platform concerns. They are not part of the OS Artifact.
The Base OS does not require or define any particular firmware interface, boot loader, initramfs implementation, or early userspace environment.
The Platform boot chain MUST ultimately establish the selected OS Artifact as the root filesystem and transfer execution to /sbin/axisd as PID 1.
Kernel Requirements
The Linux kernel and Platform boot environment collectively MUST provide all functionality required to establish the selected OS Artifact as the root filesystem.
Functionality required before Platform early userspace can execute MUST be available to the kernel at that stage.
Functionality required to start Platform early userspace MUST be available before that early userspace begins execution.
Once Platform early userspace is running, it MAY load additional kernel modules, firmware, storage driver, or other Platform-specific components required to establish the Operating System Artifact as the root filesystem.
Boot-critical Platform components MUST NOT depend on files contained only within the OS Artifact before that Artifact has become accessible.
A Platform MAY supply kernel command-line parameters, device-tree data, firmware data, initramfs contents, or equivalent Platform-specific information used during Boot.
Such information and components are not part of the identity or contents of the OS Artifact.
Early Userspace
A Platform MAY execute Platform-specific early userspace before the OS Artifact becomes the root filesystem.
Platform early userspace MAY be provided through an initramfs, initrd, or another Platform-specific mechanism.
Platform early userspace is part of the Platform and MUST NOT form part of the OS Artifact.
Platform early userspace MAY locate, select, verify, prepare, or expose the selected OS Artifact; load Platform-specific kernel modules or firmware; create block-device mappings; and perform other operations required to establish the Artifact as the root filesystem.
Platform early userspace MUST NOT modify the contents of the selected OS Artifact.
A Platform is not required to use early userspace when its kernel and boot chain can establish the selected OS Artifact as the root filesystem directly.
Operating System Discovery
The Platform boot environment MUST be able to identify and access the selected OS Artifact.
The mechanism used to identify, locate, or expose the Artifact is Platform-specific.
A Platform MAY expose the Artifact through a physical block device, a logical block-device mapping, virtual storage, or another mechanism capable of presenting the exact Artifact bytes as a mountable EROFS filesystem.
Device names, partition identifiers, storage paths, physical extent layouts, and other Platform-specific discovery information MUST NOT form part of the OS Artifact.
Root Filesystem
Before the Base OS runtime begins, the Platform boot environment MUST establish the selected OS Artifact as /.
The root filesystem MUST be the EROFS filesystem represented by the selected OS Artifact and MUST be mounted read-only.
The filesystem exposed as the Base OS root MUST consist of the exact filesystem bytes represented by the OS Artifact.
The Artifact MUST NOT be unpacked, copied into another root filesystem, converted, reconstructed, wrapped, or modified as part of Boot.
Platform-specific block-device mappings or storage views MAY be used to expose the Artifact, provided that the resulting block device presents the exact Artifact bytes without transformation.
Starting axisd
After the OS Artifact has become the root filesystem, the Platform boot environment MUST execute /sbin/axisd as PID 1.
If Platform early userspace is already executing as PID 1, it MUST transfer PID 1 to /sbin/axisd by replacing itself rather than by starting axisd as a child process.
If no Platform early userspace is used, the Linux kernel MAY execute /sbin/axisd directly as its initial userspace process.
No Base OS userspace process may execute before axisd.
The responsibilities of axisd after execution begins are defined by the axisd Specifications and are outside the scope of this Specification.
Failure
Boot MUST fail if the OS Artifact selected for the current boot attempt cannot be located, accessed, verified when verification is required, established as the root filesystem, or used to execute /sbin/axisd according to this Specification.
The Platform MAY select a different OS Artifact or boot generation according to an explicit Platform boot, fallback, or recovery policy.
Selecting a fallback or recovery Operating System constitutes a distinct boot attempt and MUST NOT modify the failed OS Artifact.
A conforming Boot implementation MUST NOT silently replace the selected Operating System with an unrelated mutable root filesystem.
Fundamental Invariants
- The Platform boot environment is separate from the OS Artifact.
- Boot loaders, kernels, initramfs images, early userspace, and other Platform-specific boot components are Platform concerns.
- The OS Artifact contains neither the kernel, an initramfs, nor a boot loader.
- A Platform MAY execute Platform-specific early userspace before the Base OS runtime begins.
- The selected OS Artifact becomes the root filesystem of the Base OS runtime without being transformed or modified.
- The root filesystem is the exact EROFS filesystem represented by the OS Artifact and is mounted read-only.
- No Base OS userspace process executes before
axisd. axisdruns as PID 1 of the Base OS runtime.