1

I genuinely feel that the Linux directory system presents an obstacle for users migrating from other systems as well as being a bottleneck for the evolution of Linux itself. Rest assured I am not here to start trolling. I am a huge fan of Linux as an alternative to increasingly bloated and expensive competitive operating systems, but rarely have I seen such stranded evolution in the core of an operating system.

I realize that Linux and Unix professionals are firmly focused on providing stability and reliability, and abandoning working solutions in favor of new ideas isn't always the way to go. However, even as a computer professional with considerable experience using windows, I find that the cryptic and repetitive nature of the Linux directory structure constrains my efforts to use the OS in earnest.

Windows finally shed its 8.3 names a few years ago, and few users would argue that things were better before. Instead we have seen a steady evolution towards less ambiguous file and folder names and improved structure (at least in some parts of the overall hierarchy). Of course Windows takes it too far by constantly changing storage location for all kinds of things. A windows user profile is a moving target if ever there was one. Nobody wants to keep up with something like that.

My question is this. Would it harm Linux if the folder structure would evolve towards the human side of things by starting to remove some of its ambiguity and cryptical nature so that advanced users from other worlds could start to wrap their brains around the excellence of Linux.

Is it really harmful if we would start to see:

  • Binaries
  • Libraries
  • Drivers
  • Users
    • User1
      • Binaries
      • Libraries
    • User2
      • Binaries
      • Libraries
  • Devices
  • Help

In my world I prefer even more catagorized top level folders:

  • Applications
  • System
  • User Data

Don't take the above directory outlines too literally. They are just meant to illustrate a point.

  • 13
    My tastes hate system directories which contain spaces and/or uppercase letters. – tshepang Jun 09 '11 at 22:57
  • 1
    I am from the outside looking in on the Linux community and the Linux system. I find the lack of evolution of this core OS feature quite baffling. I don't ask to raise a fight or be argumentative, but because I genuinely wonder why this is the case. When I see people ask where to store "shared scripts" and 3 different users answer: /usr/bin, /usr/local/bin/ and /usr/local/share respectively, I feel that the directory structure isn't so obvious. This makes me question why it isn't questioned more. – Stein Åsmul Jun 10 '11 at 02:33
  • 1
    That's because each distro's philosophy is different and what people perceive as a "shared script" also varies. The answer would also vary depending on if you were creating an package to be installed or adding a local hack to just one system. Hence there is a reason you get three different answers. It's not that it isn't questioned intensely, it's that making it "more obvious to a newbie" at the cost of less power isn't considered an objective in the general linux community. If you want more consistency in this area, consider the BSD communities, they are a little more rigorous. – Caleb Jun 10 '11 at 07:47
  • 2
    I am not talking about making things "more obvious to a newbie" as much as about making things vibrate more intuitive sense for technically experienced people trying to incorporate Linux in their skillset. The Unix and Linux directory structure has served its purpose well, but when I look around here I see an increasing amount of questions directed at "what goes where". I read somewhere on this board that "Unix is an expert friendly, user antagonistic operating system". Nicely put, but is this really the way forward? – Stein Åsmul Jun 11 '11 at 18:07
  • Modern MS-Windows has an etc directory (can't remember where), it has configuration files in it, like Unix/Gnu-Linux, and no one can even remember where the name etc comes from. I am just glad that the stuff I learned at college in 1991 is still useful, and that there has been a ton of innovation on top of it. – ctrl-alt-delor Dec 13 '13 at 21:21
  • 2
    Looks like you're looking for GoboLinux Disclaimer: never used it myself. – depquid Jun 19 '14 at 21:29
  • The system is well documented, so don't change it. – ctrl-alt-delor Oct 24 '16 at 16:28

2 Answers2

10

Who do you propose is going to enforce the migration a thousands of commonly used applications and utilities?

Unix is an ecosystem, not a product (despite the Open Group controlling the IP), and there is no one with the power to make this happen. There are important utilities that are defined by historical documentation and don't have a single reference implementation.

Nor is there a pressing need to change that stuff: what is needed are front-ends that hide it from the unsophisticated user. It's not like Joe User actually knows what is in his Window's system folders or his Mac OS Libraries directory. Indeed modern Window OSs have those special system places defaulting to invisible.

  • 1
    In an ecosystems certain entities die off because they were never fit for fight. This is the core of evolving towards something better, I'd say. We don't need to manage anything, rather encourage the survival of GOOD tools instead of thinking nothing can be changed because obsolete products won't get migrated. – Stein Åsmul Jun 11 '11 at 17:09
3

I agree with dmckee that the issue is having a layer of "friendly" apps for anybody that wants it. For the rest of us unix is an ecosystem and the directory structure is VERY well thought out. It is still evolving. Note the recent addition of a /run top level directory to the generally accepted directory layout.

Of course there are differences of opinion, and you will even find differences from distro to distro. Which brings us to the next point, which is if you think it needs fixing, fix it! It actually isn't that hard to hack any current distribution with your own set of patches and use different directories.

I think if you did so you would quickly find out why the current structure makes sense. It's not that it's hard to move this stuff around. Even writing automated patches for gazillions of programs to know where to put and expect things isn't that hard. The problem is that there are good reasons for the separations and categorizations that are in place. They each serve a purpose.

The FHS docs are one place to start learning about why, but following distro developer mailing lists is probably the most useful way to learn.

Edit: The question of directory layouts is intensely scrutinized, but in a sense the linux solutions have grown organically as needs have arisen. If you want something a little bit more rigorously structured and stuck to, you might find the BSD communities like FreeBSD interesting.

Caleb
  • 70,105
  • Thanks for the suggestions. I actually will follow this. I am a deployment specialist on Windows, and I know my way around a directory structure. Windows is total chaos, but at least evolving towards something new all the time. Linux's structure seems rigid and inflexible to me. It's a matter of opinion, and I am here to learn how it really works. I am actually disappointed that this thread was closed. I feel my questions are ignored rather than answered, though I got some solid initial answers. – Stein Åsmul Jun 11 '11 at 17:20