Have you ever wondered why there are two bin directories, one in root /bin and one in /usr/bin?
There's actually an interesting reason behind it.
In the very early days of Unix, storage was expensive and limited. The entire root filesystem typically resided on a small, fast disk, which contained absolutely everything needed to boot a system ,including all fundamental commands and system utilities.
As Unix systems grew, more applications and user programs were developed. To accommodate this, a second larger disk was introduced, often mounted at /usr.
Thus, /usr/bin emerged as the directory for non-essential but widely used command binaries, and /usr/sbin for system binaries that weren't needed at boot.
The separation of /bin and /usr/bin was crucial by design. Tools in /bin (like ls, cp, sh) had to be available during minimal boot or system recovery, even if /usr wasn’t mounted. In contrast, /usr/bin held larger, non-essential binaries used in a full multi-user setup.
During system initialization, only /bin and /sbin are used until /usr is mounted. Modern distros(like Fedora or Arch) often merge them via symlinks, but understanding this separation reveals the Unix focus on modularity and minimalism.
Top comments (0)