An important aspect that often decides the success of a software is simplicity – how easily can end users understand and use it? Does it have a steep learning curve? While there are numerous Linux software which are a delight to use, the Linux filesystem probably doesn’t fall under this category because of its hierarchy and nomenclature.
The Linux filesystem structure and naming need to be simpler.
Most of the end users are not from a technical background and shouldn’t have to be ‘technically smart’ to use a solution. They shouldn’t have to bother about /usr/local/sbin, /bin and /usr/bin. While it makes perfect sense to a developer, an end-user shouldn’t have to figure out that he needs to run man hier or which/find to understand the nomenclature or quickly locate a particular program or file. It’s great to have many useful tools around to increase the number of ways to a solution but a solution needs to be complete to a certain degree of usability by itself. Microsoft Windows makes a perfect sense to end users when they see C:\Program Files but the Linux filesystem hierarchy needs a deeper understanding, at least the first hour isn’t enough for the majority. Why not something as simple as /Software? The same holds good for a user’s home directory. The root user has his files under /root and others have their corresponding home directories under /home. It probably makes more sense to have a /Users to locate home directories of all users easily.
While I don’t have a problem with this as I am using Linux for years now, I see the problems surface when I introduce Linux to a friend or someone who has heard great things about the OS and is interested in trying it out. It is quite different from what they are used to or how they store their files. Once a friend from Arts background asked me “/dev is for developers right? Linux being a highly hackable OS and all?”. I took some time to get out of the initial shock and explain that it stands for “device files”. How hard is it to name it /Devices instead?
Changing the filesystem hierarchy and nomenclature doesn’t seem to be a mammoth task. The filesystem internal structures and logic do not need to undergo any change. It has more to do with how you name the directories and where you want to place them. Of course, apps with hardcoded paths will have the overhead of changing them. Moreover, a filesystem tree with less branches definitely can simplify things further.
It would be great if the major Linux distributions consider this area and re-think the hierarchy as well as the nomenclature. After all, a common goal of all the generic distributions is to deliver the best user experience.