Akadata Linux · Version 0 Saphira

FHS and LSB profile

The standards contract behind Akadata’s non-usrmerged hierarchy, local administration boundary, and proposed immutable recovery topology.

Technical preview

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
Akadata hierarchy ownership
HierarchyPolicyExamples
/Essential boot, repair, configuration, and runtime foundations./bin, /sbin, /lib, /etc
/usrDistribution-managed secondary userland; it does not replace the root hierarchy.Nginx, PHP-FPM, Python 3.14.6 and managed daemons
/usr/localReserved 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/lib

Before 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.

Standards evidence under /tank/musl/docs/standards
FilePurpose
AUDIT-REPORT.mdReadable summary of the audited conformance and compatibility position.
FHS-3.0-CONFORMANCE.mdNormative Akadata FHS position and audit entry points.
LSB-5.0-COMPATIBILITY.mdQualified LSB profile and explicit binary-ABI limitations.
fhs-3.0-matrix.tsvRequirement classifications, evidence, implementation, tests, and deviations.
lsb-5.0-matrix.tsvProfile-level LSB classifications and evidence.
lsb-5.0-commands.tsvPer-command LSB compatibility classifications.
sources.tsvStandards 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.