5.3. Split /usr, a.k.a “traditional”

A distribution conforming to this profile uses all the same choices for installation directory variable values that a matching “merged /usr” distribution would. However, as a postprocessing step in its preparation of software packages, some files are moved from below /usr to top-level directories.

Files may only be moved between these pairs of directories:

Additional pairs of directories may be added to the above list by the distribution’s selected approach to support for multiple ABIs and/or cross-compilation.

If a file exists in any one of these directories, then the paired directory must not contain another file with the same name.

To be revised

Can anyone think of a clearer way to phrase the preceding sentence?

5.3.1. Compatibility considerations for split /usr

Distributions conforming to this profile must include both /bin and /usr/bin in the default PATH.

If /usr/sbin is an independent directory (see Section 5.5, “Minor variations applicable to all profiles”), it may or may not be included in the default PATH, but should be included in the PATH provided to the root account. If /sbin is also an independent directory, it must be included in PATH when (and only when) /usr/sbin is included.

In order to satisfy the requirements of Section 2.2.5, “Pathnames guaranteed to be usable as #! interpreters”, the POSIX shell interpreter sh must be one of the files moved from /usr/bin to /bin, and the utility program env must not be moved out of /usr/bin. Apart from these two constraints, the set of files that are moved is unspecified.

Rationale

In the absence of an initial ramdisk (a relatively recent invention in the history of Unix) enough programs need to be stored on the root filesystem to make it possible for the system’s boot scripts to locate and mount /usr. Therefore, the set of programs and libraries that need to be moved from /usr to the root filesystem is, abstractly, those that are required early in the boot process, before /usr can be mounted.

To facilitate repair of damaged systems, some distributions choose to place a selection of general-purpose shell utilities (e.g. ed, ls) and diagnostic and repair tools (e.g. fdisk, ping, tar) on the root filesystem as well.

Older versions of this specification attempted to enumerate the programs and libraries to be moved. Nowadays there are too many possibilities for what might and might not be needed for an enumeration to be practical.