DEV Community

Cover image for Why Linux Has Both /bin and /usr/bin: A Brief History of Unix Design
Faizan Firdousi
Faizan Firdousi

Posted on

Why Linux Has Both /bin and /usr/bin: A Brief History of Unix Design

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)