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
- Understanding the bin, sbin, usr/bin, usr/sbin split (2010)
- Understanding the /bin, /sbin, /usr/bin, /usr/sbin Split
- Why we have /bin/ and /usr/bin/ – DJ Adams
Related posts
- Cold-Blooded Software: How to Build Projects That Survive Long Pauses
- Nike’s Crisis and the Economics of Brand Decay: How Advantage Erodes
- How a Last-Minute Typo in Street Fighter II’s ‘World Warrior’ Logo Was Fixed