Why we have /bin/ and /usr/bin/
There's a simple, historic reason why we have /bin/ and /usr/bin/
I'd half wondered for a while why many of the directories in the root filesystem (/
) of a Linux installation are also to be found in /usr
. Recent convention implies that 'usr' stands for "User System Resources" but this is really only a sort of backronym.
There are executable files and libraries in /bin/
and /lib/
, for example, but also in /usr/bin/
and /usr/lib/
. Why? Regardless of what people might tell you today, the answer lies in the history of Unix (upon which Linux is based, of course). Created in the late 1960s / early 1970s on Digital PDP machines with limited disk space, the original Unix operating system binaries were placed on the root filesystem (mounted at /
), with e.g. executables, libraries and configuration files split across /bin/
, /lib/
and /etc/
directories respectively.
Separate from the root filesystem was another filesystem (on a separate disk) for users' home directories. This was /usr/
- yes, short for "user(s)".
As the Unix system grew, the space on the root filesystem disk eventually ran out, and a decision was made to move some of the executable and library content over to the other disk that was mounted on /usr/
. It made sense to replicate the names of the directories on that other disk, names which therefore became /usr/bin/
and /usr/lib/
because of the relation to where that filesystem was mounted.
Over time the place for the users' home directories moved from /usr/
to /home/
, meaning /usr/
content eventually lost any semblance of user-specific focus.
A bonus, related thing I learned fairly recently is that the "s" in sbin
(which also can be found in both the filesystems mounted on root (/
) and /usr/
) stands for "system" denoting that the content is only executable by the root user.