TL;DR

The split between /bin, /sbin and their /usr counterparts dates to early Unix on PDP hardware, where a second disk was mounted on /usr when the root disk filled. That layout became entrenched but is largely an artifact; modern boot mechanisms, shared libraries and larger disks removed the original technical need.

What happened

Early Unix development moved from a PDP-7 to a PDP-11 that used small removable RK05 disk packs. When the original root disk ran out of space the system’s files and user directories were written to a second disk mounted at /usr, and the operating-system directories (like /bin, /sbin and /lib) were replicated there. This created a requirement: anything needed to bring the system up before /usr was mounted had to remain on the root disk. Over decades that filesystem layout hardened into conventions and distro-specific rules. By the time Linux arrived the original hardware constraint no longer applied. Temporary initrd/initramfs boot systems handle early-mount needs, shared libraries tie components together so partitions must match, and inexpensive larger disks and partitioning tools eliminated the space shortage. As a result the split persists largely for historical and bureaucratic reasons, and some administrators simplify installations by symlinking /bin, /sbin and /lib to their /usr equivalents.

Why it matters

  • The layout reflects historical boot-order constraints that no longer apply on modern systems.
  • Package maintainers and distributions often follow the old split, creating compatibility expectations and complexity.
  • Shared libraries and modern boot initramfs require matching filesystem contents, reducing independence between partitions.
  • System administrators may simplify management by merging or symlinking legacy directories, but behavior varies across distros.

Key facts

  • The /usr mount originated when early Unix systems used multiple small RK05 disk packs and the second disk was mounted at /usr.
  • Developers duplicated OS directories under /usr (/bin, /sbin, /lib, /tmp, etc.) when the root disk filled.
  • Files required to bootstrap the system before /usr is mounted had to remain on the root filesystem to avoid a boot-time dependency loop.
  • Initrd and initramfs mechanisms address early-boot dependency problems on modern systems.
  • Shared libraries make it difficult to independently upgrade /lib and /usr, because the components must match.
  • Large, inexpensive disk drives and partitioning tools in the 1990s reduced the original space-driven reason for the split (Partition Magic 3.0 was mentioned as shipping in 1997).
  • Standards and distro conventions have propagated and added rules around the split long after the original technical need disappeared.
  • BusyBox tends to place or link binaries where historically expected, following established filesystem conventions.
  • Examples of distro variance: Ubuntu lacks /usr/tmp, while Gentoo often uses /usr/tmp as a symlink to /var/tmp (per the source).

What to watch next

  • not confirmed in the source
  • not confirmed in the source
  • not confirmed in the source

Quick glossary

  • /bin: A standard directory for essential user command binaries that historically had to be available on the root filesystem during early boot.
  • /sbin: A directory for essential system administration binaries, traditionally required to be present on the root filesystem at boot time.
  • /usr: Originally the mount point for a second disk used for user home directories and later for additional OS files; evolved into a location for nonessential system and user binaries.
  • initrd / initramfs: A temporary root filesystem loaded into memory during early boot to allow kernel initialization and mounting of the real root filesystem.
  • shared library: A binary library that can be used by multiple programs at runtime, which introduces dependencies among filesystem components that must be compatible.

Reader FAQ

Why were /bin and /usr/bin separated in the first place?
The split began when early Unix used a second disk mounted at /usr after the root disk filled; OS directories were duplicated there and programs needed for early boot had to stay on the root filesystem.

Is the split still technically necessary on modern systems?
No — mechanisms like initrd/initramfs, shared libraries, and much larger disks removed the original hardware-driven need for the split.

Should I merge /bin and /usr on my systems?
The source notes some administrators symlink /bin, /sbin and /lib to /usr to simplify setups, but it does not provide a general recommendation.

Does BusyBox decide placements differently?
The source indicates BusyBox generally installs binaries where historically expected, following existing conventions.

Understanding the bin, sbin, usr/bin , usr/sbin split Rob Landley rob at landley.net Thu Dec 9 15:45:39 UTC 2010 Previous message: Applet for detecting the filesystem type. Next message: Understanding…

Sources

Related posts

By

Leave a Reply

Your email address will not be published. Required fields are marked *