Standards position
FHS conformance without a compatibility fiction
Target: conformant
Filesystem Hierarchy Standard 3.0
Akadata targets FHS 3.0 conformance. The root hierarchy contains the programs required while /usr, /var, and /opt are unavailable, together with their shared-library closure under /lib.
Profile: compatible
Linux Standard Base 5.0
Akadata provides an LSB 5.0 compatibility profile for applicable source, command, shell, filesystem, and behavioural interfaces. It is not presently LSB 5.0 AMD64 binary-ABI conformant.
The AMD64 LSB ABI specifies glibc-family loader and library names. Akadata uses /lib/ld-musl-x86_64.so.1 and does not create false libc.so.6 or ld-lsb-x86-64.so.3 aliases.
The hierarchy is an interface
Root is root; /usr and /usr/local retain distinct jobs
/bin, /sbin, /lib, and /usr are real directories. None is replaced by a usrmerge symlink. Early-boot OpenRC executables remain in /sbin, and service scripts continue to use #!/sbin/openrc-run.
/ Current image: /dev/vda1, ext4, read-write
├── /bin Essential early-boot user commands
├── /sbin Essential boot and administration commands
├── /lib musl loader, essential shared libraries, kernel modules
├── /usr Secondary hierarchy for distribution-managed userland
│ ├── /usr/bin Standard user commands and applications
│ └── /usr/sbin Non-essential administration programs and daemons
└── /usr/local Local administrator and first-party hierarchy
├── /usr/local/bin
├── /usr/local/sbin
├── /usr/local/lib
└── /usr/local/src| Hierarchy | Policy | Examples |
|---|---|---|
/ | Essential boot, repair, configuration, and runtime foundations. | /bin, /sbin, /lib, /etc |
/usr | Distribution-managed secondary userland; it does not replace the root hierarchy. | Nginx, PHP-FPM, Python 3.14.6 and managed daemons |
/usr/local | Reserved for locally administered and first-party software outside the distribution package namespace. | Local automation, overrides, source and site-specific tools |
Immutable recovery topology
A planned mount design, not a Version 0 release claim
The current Stage3 image creates one ext4 partition at /dev/vda1, mounts it at /, and boots it read-write. Saphira does not yet ship separate read-only root and read-write userland partitions.
The proposed recovery topology preserves the already-enforced directory boundary while adding independent mount policy:
/ Proposed separate read-only recovery root
├── /bin Rescue shell and essential early-boot tools
├── /sbin init, OpenRC, filesystem and network recovery tools
└── /lib musl loader and complete early-boot library closure
/usr Proposed separately mounted managed userland
├── /usr/bin Applications and standard userland
└── /usr/sbin Managed non-essential daemons and administration tools
/usr/local Local administrator and first-party overrides
├── /usr/local/bin
├── /usr/local/sbin
└── /usr/local/libBefore this can become a release guarantee, the image builder must create and identify the separate filesystems; /var, runtime state, package transactions, configuration writes, upgrades, and rollback must receive an explicit writable design; and boot acceptance must prove that the complete rescue closure works with /usr unavailable.
The recovery objective is credible only after destructive boot tests demonstrate it. The documentation will not promise flawless recovery or operation without rescue media before that evidence exists.
BSD lineage
Wheel, spokes, and the local hierarchy
Akadata keeps the BSD-derived wheel administrative convention. In the Stage4 account policy, wheel is GID 1, contains root, and is accompanied by the deliberately named spokes group at GID 2. The names express the relationship between privileged administration, delegated participation, and the root hub.
/usr/local carries the same respect for local administration: distribution packages own their declared system paths, while locally maintained programs and overrides have a stable hierarchy that automated package replacement does not need to occupy.
Auditable claims
Source contracts and target-root validation
The conformance position is maintained as matrices and executable validators rather than inferred from directory names.
| File | Purpose |
|---|---|
AUDIT-REPORT.md | Readable summary of the audited conformance and compatibility position. |
FHS-3.0-CONFORMANCE.md | Normative Akadata FHS position and audit entry points. |
LSB-5.0-COMPATIBILITY.md | Qualified LSB profile and explicit binary-ABI limitations. |
fhs-3.0-matrix.tsv | Requirement classifications, evidence, implementation, tests, and deviations. |
lsb-5.0-matrix.tsv | Profile-level LSB classifications and evidence. |
lsb-5.0-commands.tsv | Per-command LSB compatibility classifications. |
sources.tsv | Standards source references used by the audit. |
./build.sh fhs-audit --source-only
./build.sh lsb-audit --source-only
./build.sh fhs-audit
./build.sh lsb-audit- The FHS validator rejects usrmerge links and root-hierarchy executables resolving below
/usr. - The LSB validator checks compatible commands while rejecting misleading glibc loader and library aliases.
- Stage4 rejects packages that replace protected root directories or move essential root-hierarchy files into
/usr.