Reactions to “Has modern Linux lost its way?” and the value of simplicity

Apparently I touched a nerve with my recent post about the growing complexity of issues.

There were quite a few good comments, which I’ll mention here. It’s provided me some clarity on the problem, in fact. I’ll try to distill a few more thoughts here.

The value of simplicity and predictability

The best software, whether it’s operating systems or anything else, is predictable. You read the documentation, or explore the interface, and you can make a logical prediction that “when I do action X, the result will be Y.” grep and cat are perfect examples of this.

The more complex the rules in the software, the more hard it is for us to predict. It leads to bugs, and it leads to inadvertant security holes. Worse, it leads to people being unable to fix things themselves — one of the key freedoms that Free Software is supposed to provide. The more complex software is, the fewer people will be able to fix it by themselves.

Now, I want to clarify: I hear a lot of talk about “ease of use.” Gnome removes options in my print dialog box to make it “easier to use.” (This is why I do not use Gnome. It actually makes it harder to use, because now I have to go find some obscure way to just make the darn thing print.) A lot of people conflate ease of use with ease of learning, but in reality, I am talking about neither.

I am talking about ease of analysis. The Linux command line may not have pointy-clicky icons, but — at least at one time — once you understood ls -l and how groups, users, and permission bits interacted, you could fairly easily conclude who had access to what on a system. Now we have a situation where the answer to this is quite unclear in terms of desktop environments (apparently some distros ship network-manager so that all users on the system share the wifi passwords they enter. A surprise, eh?)

I don’t mind reading a manpage to learn about something, so long as the manpage was written to inform.

With this situation of dbus/cgmanager/polkit/etc, here’s what it feels like. This, to me, is the crux of the problem:

It feels like we are in a twisty maze, every passage looks alike, and our flashlight ran out of battieries in 2013. The manpages, to the extent they exist for things like cgmanager and polkit, describe the texture of the walls in our cavern, but don’t give us a map to the cave. Therefore, we are each left to piece it together little bits at a time, but there are traps that keep moving around, so it’s slow going.

And it’s a really big cave.

Other user perceptions

There are a lot of comments on the blog about this. It is clear that the problem is not specific to Debian. For instance:

  • Christopher writes that on Fedora, “annoying, niggling problems that used to be straightforward to isolate, diagnose and resolve by virtue of the platform’s simple, logical architecture have morphed into a morass that’s worse than the Windows Registry.” Alessandro Perucchi adds that he’s been using Linux for decades, and now his wifi doesn’t work, suspend doesn’t work, etc. in Fedora and he is surprisingly unable to fix it himself.
  • Nate bargman writes, in a really insightful comment, “I do feel like as though I’m becoming less a master of and more of a slave to the computing software I use. This is not a good thing.”
  • Singh makes the valid point that this stuff is in such a state of flux that even if a person is one of the few dozen in the world that understand what goes into a session today, the knowledge will be outdated in 6 months. (Hal, anyone?)

This stuff is really important, folks. People being able to maintain their own software, work with it themselves, etc. is one of the core reasons that Free Software exists in the first place. It is a fundamental value of our community. For decades, we have been struggling for survival, for relevance. When I started using Linux, it was both a question and an accomplishment to have a useable web browser on many platforms. (Netscape Navigator was closed source back then.) Now we have succeeded. We have GPL-licensed and BSD-licensed software running on everything from our smartphones to cars.

But we are snatching defeat from the jaws of victory, because just as we are managing to remove the legal roadblocks that kept people from true mastery of their software, we are erecting technological ones that make the step into the Free Software world so much more difficult than it needs to be.

We no longer have to craft Modelines for X, or compile a kernel with just the right drivers. This is progress. Our hardware is mostly auto-detected and our USB serial dongles work properly more often on Linux than on Windows. This is progress. Even our printers and scanners work pretty darn well. This is progress, too.

But in the place of all these things, now we have userspace mucking it up. We have people with mysterious errors that can’t be easily assisted by the elders in the community, because the elders are just as mystified. We have bugs crop up that would once have been shallow, but are now non-obvious. We are going to leave a sour taste in people’s mouth, and stir repulsion instead of interest among those just checking it out.

The ways out

It’s a nasty predicament, isn’t it? What are your ways out of that cave without being eaten by a grue?

Obviously the best bet is to get rid of the traps and the grues. Somehow the people that are working on this need to understand that elegance is a feature — a darn important feature. Sadly I think this ship may have already sailed.

Software diagnosis tools like Enrico Zini’s seat-inspect idea can also help. If we have something like an “ls for polkit” that can reduce all the complexity to something more manageable, that’s great.

The next best thing is a good map — good manpages, detailed logs, good error messages. If software would be more verbose about the permission errors, people could get a good clue about where to look. If manpages for software didn’t just explain the cavern wall texture, but explain how this room relates to all the other nearby rooms, it would be tremendously helpful.

At present, I am unsure if our problem is one of very poor documentation, or is so bad that good documentation like this is impossible because the underlying design is so complex it defies being documented in something smaller than a book (in which case, our ship has not just sailed but is taking on water).

Counter-argument: progress

One theme that came up often in the comments is that this is necessary for progress. To a certain extent, I buy that. I get why udev is important. I get why we want the DE software to interact well. But here’s my thing: this already worked well in wheezy. Gnome, XFCE, and KDE software all could mount/unmount my drives. I am truly still unsure what problem all this solved.

Yes, cloud companies have demanding requirements about security. I work for one. Making security more difficult to audit doesn’t do me any favors, I can assure you.

The systemd angle

To my surprise, systemd came up quite often in the discussion, despite the fact that I mentioned I wasn’t running systemd-sysv. It seems like the new desktop environemt ecosystem is “the systemd ecosystem” in a lot of people’s minds. I’m not certain this is justified; systemd was not my first choice, but as I said in an earlier blog post, “jessie will still boot”.

A final note

I still run Debian on all my personal boxes and I’m not going to change. It does awesome things. For under $100, I built a music-playing system, with Raspberry Pis, fully synced throughout my house, using a little scripting and software. The same thing from Sonos would have cost thousands. I am passionate about this community and its values. Even when jessie releases with polkit and all the rest, I’m still going to use it, because it is still a good distro from good people.

85 thoughts on “Reactions to “Has modern Linux lost its way?” and the value of simplicity

  1. As a former Linux user and FOSS project leader my advice to you is to move to a Mac, yeah it has drawbacks too but you won’t have to fight with it just to make it do basic things. It will get out of your way and allow you to work and it doesn’t have 1,000,000 little bugs that cause you to waste your life trying to perform simple operations like mounting flash drives. The GNU/Linux platform was almost perfect for everyone but nope..we’ve made it just for nerds again.


    Regis Reply:

    I’ve owned three different Macbooks (or iBooks?) over the past decade, and just recently bought a Thinkpad. I was truly amazed with how much easier it is to configure Debian (Jessie) on the Thinkpad. So amazed that I feel stupid for not getting one earlier.

    The issue John was having will be fixed when Jessie is released, so he doesn’t need the Macbook :) A clean install of Jessie on my Thinkpad (with systemd) is really, really nice, and plugging in USB drives works perfectly.


    Andrew Reply:

    > I was truly amazed with how much easier it is to configure Debian (Jessie) on the Thinkpad.

    Also a former Thinkpad owner, it’s not easier. :)


    Jono Penn Reply:

    > Also a former Thinkpad owner, it’s not easier. :)

    A current MBP (2013 Retina) and Thinkpad (T420) owner.
    It’s absolutely easier on a Thinkpad.

    Andrew Reply:

    Don’t install Debian on it…problem solved. Previously owned T400, T410, T420 all more difficult to install Debian on than OS X on an MBP. If you’re installing Debian on an MBP you’re doing it wrong which is why I ignored the “install Debian” implication in the first reply.

    Lars Reply:

    As a Linux user who also uses a Mac, I disagree with you. Mac’s tend to work unless you ever dare to upgrade the OS it was shipped with. I had a series of WiFi and other issues and with every update released by Apple the problem shifts. I actually believe that what you are seeing in Linux, is not just happening there but all across the Software Industry. It’s a combination of education (people learn how to program, but not how to design good and robust software these days), a lot of web and app programmers who don’t have experience in developing larger systems “upgrading” to systems development, and commercial pressures to develop ever more software. The effect is that increasingly software is becoming more and more complex.


    DerPoly Reply:

    Oh come on, not the old “just use a Mac” again. I’m using a Mac at work since like a year ago because this was a good compromise between Windows and Linux. While it might work if you adapt to all its peculiarities, the real nightmare begins when you try to make the system work to your own desires.

    Since I don’t switch all my machines to Mac, I don’t want to learn a new keyboard layout just for the Mac. Also I like ergonomic keyboards like the Microsoft Ergonomic Keyboard pro. So the first thing I can do now is to download Ukelele and design my own keyboard layout for OSX. Then trying to get keys like “Home” and “End” to move to the beginning and end of a line (instead of the document) consistently over all Applications (that includes Consoles, Graphical Applications, XQuartz and things like Remote Desktop or Nomachine) is a freaking nightmare. After a galore of KeyRemap4Macbook (or Keil as it is called now) I have it at a point where it works mostly acceptable. But why must it be so damn difficult?

    Other problem, I’m using two external monitors at work. When switching between mobile work and desktop work, it often totally messes up the arrangement of my Spaces, requiring me to re-arrange them. Also very often it just forgets the monitor layout, giving me the monitors in mirror mode requiring me to again and again set the layout. One of the most annoying things is that it tends to restart the user interface completely (or freezes with just black screens and a mouse cursor requiring manual hard reboot) at some occasions and after re-opening my applications leaving me with twenty console windows, neither being useful since all the SSH connections died. And that is with Yosemite, with Mavericks, the Dual-Head problems were MUCH worse.

    And that is just some of the things that really annoy me on OSX. It might be nice if you completely adapt yourself to the Mac-way of doing things. But be damned if you try to customize the workflow in a way that Apple didn’t intent. Having a global hotkey that just opens a new console (and does not activate the existing one)? Sure, just download fastscripts, build an Apple-script that roughly does that but if there is already a console in the background of the current Space, it will still be pulled to the front. Annoying as hell.

    So please, stop giving the advice of “just move to the Mac and all your problems be gone”. That is only true of you are also ready to change your habits to fit the mac-workflow.


    Andrew Reply:

    > Oh come on, not the old “just use a Mac” again. I’m using a Mac at work since like a year ago because this was a good compromise between Windows and Linux. While it might work if you adapt to all its peculiarities, the real nightmare begins when you try to make the system work to your own desires.

    It still applies, obviously, or I wouldn’t have said it.

    > blah blah blah

    > Other problem, I’m using two external monitors at work. When switching between mobile work and desktop work, it often totally messes up the arrangement of my Spaces, requiring me to re-arrange them. Also very often it just forgets the monitor layout, giving me the monitors in mirror mode requiring me to again and again set the layout. One of the most annoying things is that it tends to restart the user interface completely (or freezes with just black screens and a mouse cursor requiring manual hard reboot) at some occasions and after re-opening my applications leaving me with twenty console windows, neither being useful since all the SSH connections died. And that is with Yosemite, with Mavericks, the Dual-Head problems were MUCH worse.

    I’ve experienced none of these problems, to use your argument in reverse, your argument is invalid.

    > So please, stop giving the advice of “just move to the Mac and all your problems be gone”.

    Why does it bother you that someone is happy with something you don’t like and recommends it as a potential better experience than having to revert silly problems that should have been resolved 10 years ago like mounting devices by hand?

    Maybe you would like to read about Linus having similar stupid problems…


    Josef Reply:

    He want to know how everything works. This is still easier in debian than Osx. If he wanted a working system out of the box, just like Osx it exist a bunch of linux dist doing this. Osx is not solving the problem. They have exactly the same problem but worse.


    Anon Reply:

    Your just getting old. Realizing that all that the dicking around you used to do you no longer enjoy.
    As for mr macros it has just as many faults they just hide and obscure them more and you have even less chance of fixing them. Though having not noticed them you’re probably just a shiny ui drone anyway.


  2. Thanks, John, truly some things to ponder here, not just for distribution developers but upstream developers as well. I know there are a number a glaring flaws in Hamlib and after 14 years I’m still learning my way around some parts of it. You gave some insight that I can hopefully apply in my contributions to Hamlib.


  3. The importance of having fun —

    Over on Google+, Edward Morbius wrote “I switched from Windows (truthfully an environment I’d only briefly used) to Linux, though also from MVS and VMS to Linux, because the latter was far more fun to use. Often, these days, it’s simply not fun. I don’t know that it’s more not fun than the alternatives, but it’s absolutely not fun in many instances.”

    He’s onto something important, that I didn’t quite put my finger on: making an OS fun to use is critical. Not just for Free Software, but for everyone. I know very few (any?) that find working with polkit, etc. to be fun. That’s sad, isn’t it?


  4. Which is why the devuan project is getting rid of systemd, and making sure other subsystems within it behave even though it’;s missing. I suspect some of the problems you have are because software has been adapted to work well with systemd, but flops without it, even if it still doesn’t really crash.

    It remains to be seen if it works. I”m hoping.


  5. I’m still not convinced that what you’re describing really is a new phenomenon. The “null hypothesis” for me is that some things are just different than they were 10 or 20 years ago, so the people who grew up with the old way simply aren’t used to the current way. Add to that the effect that most people get more “conservative” as they grow older and have less free time to tinker and play with stuff, and you get an alternative explanation that, at least to me, doesn’t sound too implausible. (I think there’s a quote by Douglas Adams describing something similar.)

    But if there really is a new problem, here’s my pet theory: We in the wider Linux community traditionally have had way to little collaboration and coordination between the people and teams working on different parts of the stack.
    We don’t have a central authority that defines how things should work (like Microsoft or Apple on Windows and OSX), and at the same time we want to have a much greater modularity; the only fixed components everyone seems to agree on are the Kernel and Xorg (the latter now being slowly replaced by Wayland), while everything else should and often can be replaced by alternatives. But that’s really hard if everyone is hacking on their little corner of the system and ignoring the world around them.

    This was a smaller problem in the 90s when we were (to a large degree) rebuilding things that already existed and that could be used as points of reference. But that’s no longer the case “now” that we build our own things.

    And because no one else is building operating systems in this way, we also have to find out how to organize this collaboration. My hope is that the systemd project will improve this situation, at least in those distributions that make use of its components.


    John Goerzen Reply:

    I think this really is a new problem. There is a lot of new stuff that is exciting (btrfs, zfs for instance) and somewhat complex, but it is a sort of complexity with a nice logic to it. I have picked up both with a degree of fun and depth.

    Your pet theory has some merit indeed. I do not see systemd as the enemy here; it has some features that could reduce complexity. But I am not quite yet prepared to see it as an ally, either.


    michael Reply:

    I don’t think that the complexity of a modern Linux Desktop can be significantly reduced without losing either features or backwards compatibility. udev, polkit, dbus, logind, etc. all serve a purpose and are needed; they can only be replaced but not simply removed. And I can’t see how a replacement for any of them could be much less complex without losing features.
    Complexity could be drastically reduced, if we gave up on things like multi-seat-systems or even multi-(human)-user-systems, but I don’t think that anybody wants that.

    My hope for the systemd project improving things is related to what Emanuele Aina and Andrew Dorney wrote in other comments to this post: systemd are trying to produce large parts of the “plumbing layer” in a single project, so the solutions they produce might be expected to work together better than the bazaar of components from different developers we traditionally had. That might bring Linux closer to the BSD model where large parts of the core OS are developed by one team.


    Nate Bargmann Reply:

    Actually, I would like my single user system to be possible without polkit and logind, for example. Perhaps I am dead wrong, but other than mounting the odd flash drive I don’t need additional permissions than what user and group permissions or sudo provide. My laptop is slightly more complex as I do like the convenience of WiFi roaming. This *should* be possible, no?

    I like what udev does but writing udev rules is “fun”. It will be interesting to see what Jude Nelson’s vdev turns out like. It appears Devuan is planning to support levels of device management from psuedo static to present functionality in Jessie.

    On my single user desktop systemd is really overkill. Once the system is up and going device management is really the only necessary dynamic module I need. If the DE can recognize that a flash drive has been inserted it should be possible for the DE to handle things from there especially with a line in fstab as things used to be done. It is simple, straightforward, and repeatable.

    I simply wish to opt out of support for multi-user/multi-seat beyond that already supplied by Unix users/groups on my systems as I don’t need it. The current direction of the free desktop pretty much dictates that I must accept it. I consider that needless complexity and inflexibility based on my usage case.

    Not necessarily you, Michael, but others in various threads telling me (and others like me) that I must accept it, or calling me names is unacceptable and not a reasoned argument to convince me (or others) otherwise.

    Sanford Grayson Reply:

    I disagree, the problem is not old age or conservatism, nor is it related to the method of communication used to develop linux software.. the problem is that software developers have lost their intelligence in some very important areas. The reason Unix like systems are so old and still so powerful is because of their design philosophy.. an important but now seemlingly lost one being to keep software as simple as possible and make it perform only a well defined and specific operation. This creates highly stable systems built on small well understood blocks that work together in flexible ways to do what ever is needed. Because many key free software developers do not understand and/or refuse to follow this way of thinking, Linux systems are now degrading rather than getting better.


  6. The paragraph about Wheezy sounds a bit weird: Wheezy used essentially the same software to enable mounting USB drives in KDE, Gnome, XFCE, … There already was udev, udisks, polkit, dbus, and even an early version of logind. So “I am truly still unsure what problem all this solved.” doesn’t really make sense.


    John Goerzen Reply:

    Yes, you and I are both right, I think. Wheezy did indeed pretty much have the same software, but it always seemed to Just Work, so the complexity was a sort of sleeping beast. Now that it doesn’t Just Work, the complexity is more visible. The beast no longer slumbers, I guess.


    Digi_owl Reply:

    The older versions didn’t assume that everything was present and “just working”. Maybe that was less secure in the absolute sense. But i find myself constantly going back to the issue of the secure server encased in concrete at the bottom of the sea. Sure is secure, but also hopelessly useless…


  7. Systemd and the whole philosophy behind it is trash.

    I hope Devuan succeeds in throwing out the trash. The philosophy of previous-linux was good. The philosophy of the current crop of SJW developers is not.


  8. Amen to this post. As I said in your last one, linux has it’s issues, and even though it’s immensely frustrating at times, I’d rather have the opportunity to make what I use better, even if sometimes developers, and/or users don’t cooperate, than being dependent on microsoft or apple and, maybe to some extent, google to fix my problem. TO reiterate, this is definitely a problem that needs to be fixed. But to all those users who have given up. Giving up and switching to an alternative platform will not fix the issue. It needs people, patience and dedication to figure that out. No operating system is perfect, or perfectly secure, and this includes linux. But linux, as well as bsd, are open source, and that means it has an advantage no other operating system, not even windows or mac, have. It has the opportunity to get better. If people don’t take it, it’s going to struggle. If they do, it will reward those that use it. I’m a relatively recent convert to linux, having switched in 2011. I’ve had my share of issues with it, mostly relating to poor accessibility of applications, which have since been fixed. But the fact that I have a free, as in speech and in beer, mostly, operating system that I can improve if I want, is something that cannot be measured. I have my moments when I want to switch back to windows, I just want things to work, etc. But Every time I boot into windows, I”m reminded why I switched over. THe community just isn’t the same. That, and I’ve gotten used to the way linux works.


    Andrew Reply:

    At some point you stop trying to get hard headed developers to listen to you, and you walking away from a platform you can’t change because ‘readonly EGO=9001’. Talk all you want about walking not fixing the issues, but you can only talk to a wall for so long before you realize it’s a just wall you’re talking too and you move on.


  9. I had a similar experience. I went from sunos to linux a few months after Patrick first released Slackware. So, I guess neckbeard applies.

    I had a working setup using user namespaces for unprivileged lxc containers that broke after an update to Jessie. It really was the first time I felt completely useless to figure out what happened. I reverted the update with packages from, but that didn’t fix it, and the packages that were updated made zero sense that they would cause the issue. I setup a new (clean install) system in a VM to play with, but that was broken too. It seemed to have something to do with cgroups, but none of the similar issues people were having applied. I spend quite some time methodically going through all the things that changed (I did a search for any changed files from before /after the working point). Nothing that even made sense that it could cause the issue, but unpriv containers were definitely, and suddenly broken. Very frustrating. Root cause analysis is a main differentiator between a *nix sysadmin from a “reboot it and see if that fixes it” windows sysadmin. Unfortunately, if you can’t diagnose issues on linux, eventually linux admins will be grouped in with those reboot and see folks.

    I am less optimistic about systemd than you. I ended up purging it from my systems after several failures. One that was especially fun: systemd gets into a strange state where the only way you can run an fsck manually when fsck -a fails on startup, is to type one or two characters that are eaten, then the command you want, at the password prompt for the root login to single user mode! Better, if you type reset or stty sane (with a trash character in front of it), you get interesting things echoed back to you from the pword prompt. While playing, I got the root pword from an earlier attempt before I realized what was going on + some garbage characters echoed back to me in response to ‘ls’ at the pword prompt. Other things like not being able to run shutdown -rF if systemd is installed also annoyed me. Purged and pinned to -1.


    John Goerzen Reply:

    Yes, I’ve found lxc to be rather a mess. It seems that there is no well-documented completely secure way to configure it out of the box. There are various things that document using AppArmor, etc., but it seems like security is a bit of an afterthought on this. Plus, it’s changed significantly over time.


  10. One thing I just realised is that if you buy new hardware, you have to wait for $TESTING+1 before you can guarantee hardware support out of the box.

    While this isn’t Linux’s fault it really makes the whole experience depressing when considering new devices.


  11. Although this is not quite the subject of the article, I wish to say something for systemd, seeing how much bad things are said about it, without a single objective point being made.

    As an Arch linux user, I had the opportunity to use systemd quite early, which means I’ve had time to get used to it. At first, it was difficult because it simply was different. But it quickly became evident to me that systemd was actually simplifying things for administrators:
    — systemd brings uniformity, not only among the different daemons, but also between the different distributions, which helps capitalize on help given on the Internet for any distribution.
    — I find that getting information about the status of deamons is easier with systemd, since it keeps track of processes through the cgroups, and can relate this information with log data. The way of getting information is now more reliable and more predictable.
    — systemd ships with a number of helpful (optional) tools, such as localectl, which make configuring the system easier.
    — systemd is just as tweakable as old init systems are: you can override the default units, and create new ones. And often you can launch (example: or see the logs (example: in a more clever way.

    In my opinion, systemd is relevant to the topic at hand, because IMO systemd is a step in the right direction, for making Linux simpler again.


  12. @John Goerzen by the way, as I said in your previous post, this is IMO a problem of a missing dependency. Somewhere polkit was modified to need udisks, but that one was not pulled in as a dep.

    Has it become too complex to naively managed/develop as we used to? YES.


    John Goerzen Reply:

    Actually both udisks and udisks2 are installed on this system and something pulled them in automatically, so that’s not it.


    gdm85 Reply:

    Sorry, I checked my aptitude log and the package that did the magic was:



  13. I really agree to everything you write in bost of your posts except one thing.

    You want a simple to maintain system. Me too. I, personally, like udev and pule (partially… if it works, it works). And i have no problems with systemd-init. BUT systemd is _not_ only an init system it is a big package of code. In theory it is modulary designed. Practically it is glued together.

    So, if you want to boot with another init then systemd, you have to change your whole operating system (Gnome, udev is merged into sysd, avahi, etc…).

    If you are fine with systemd, than this dosnt matter for you. BUT you should be able to see, that a system which is so big _and_ runs as PID 1 will be a problem for us all. (e.g. freedom of choice, reliability, software upgrades.)

    Partially iam with the systemd guys and other people who wants progress. But i want to think before coding, that reminds me of me 20 years ago. I just learned to code and dont thought about design or stuff.


    sepp Reply:

    Most of that is either wrong or misleading. You can use udev, Avahi, Gnome, … without using systemd as your init system, and it’s quite easy: On Jessie, you simply have to install sysvinit-core (or upstart) and systemd-shim.
    Also, the only thing that runs as PID1 in systemd is the init system. journald, logind, udev, … all run as their own userspace processes.


    Digi_owl Reply:

    Systemd-shim is like Wine, always chasing te tail of another project…


  14. Dump DE. Tested, works.


    mirabilos Reply:

    You’re on to something there.

    I dumped KDE 4 for IceWM on my desktop at work. KDE 3 was more bearable.

    But the real reason I wanted to comment here was to note that POSIX ACLs already break being able to simply do an “ls” and see who has permissions for what. I encounter them almost exclusively on CentOS systems, true, but recently, some people around me have started using them for some esoteric tasks on Debian systems too… which is massively surprising if you want to debug that. (Especially if you’re an old BSD user and don’t even *think* of them.)

    Now at least I know why I never liked them… (plus they tend to break easily).


  15. I think someone needs to write a good old-fashioned HOWTO that explains how these things work, and keep it updated as stuff evolves.

    IMHO, 15-18 years back you really had to read a couple of HOWTOs to even install Linux, reading manpages wouldn’t get your far back then either as I remember things. Individual bigger projects like the kernel, Emacs, X, GNOME, etc. usually has good documentation coverage, what’s missing has always been the small glue things.

    Some of the information is available in the wikis of distributions that more resemble a DIY assembly kit than Debian. The problem in Debian is perhaps that these things are tacit knowledge for the responsible packagers, while it mostly just works for the rest of us.


  16. > The manpages, to the extent they exist for things like cgmanager and polkit, describe the texture of the walls in our cavern, but don’t give us a map to the cave

    That’s a pretty glaring consequence of the “linux is about choice” mindset: instead of developing things as a single, coherent and well integrated package we’re using the bazaar model even when we’re talking about design. Every piece then cannot describe its place in the grand scheme of things since somebody may choose to use it differently, so we’re full of description of the “what”, missing the “why”.

    I think that the choice of the systemd team to provide a coherent set of plumbing is a huge step forward, but you don’t have to look far to see how much pushback they have to face for developing multiple integrated tools in the same project.


  17. Thank you for the insightful article.

    I lack the intelligence to precisely state what the problem is, so I’ll attempt a joking, gnomic comment instead:

    The Linux kernel and userspace should not be designed *by* the “Golgafrincham B-ark of programmers”, but they should be designed *for* the “Golgafrincham B-ark of programmers”.

    Hubris is the enemy of discoverability or analysability or whatever I should call it.


  18. I feel the same pain. Worse in fact. I’ve lost the ability to get printers to work with Linux distros the last couple of years… No idea why, they’ll setup fine, the printer lights flash as if it’s receiving data, but no pages ever print. If I boot the same machine into Windows, the printers work perfectly fine. Sigh.


  19. The “doen’t mount USB drive automatically” is a very minor problem compared to “be careful setting up X, you can fry the monitor by a typo” and needing to read (and halfway understand) the arcana involved. Add the need to know in excruciating detail what devices were connected how to be able to compile the required custom kernel in order to be able to even use some of your devices.

    No, Linux is /much/ easier to handle today.


  20. I’m having the same class of problems with suspend/resume and system update.
    Apper, the gui update app fails to get the permissions, then some different package gets updated via apt, and it works again, then gets broken again. This is the fourth time that it’s broken in jessie, and ‘m not sure what to do.
    Personally i’ll try gentoo+debian(DomU) as soon as i have the time and see if that makes a more reliable system.
    But has anyone from debian tried to ask for a long(er) term support for this class of software(sysd/udev/plkit,etc…)?


  21. > At present, I am unsure if our problem is one of very poor documentation, or is so bad that good documentation like this is impossible because the underlying design is so complex it defies being documented in something smaller than a book (in which case, our ship has not just sailed but is taking on water).

    As a professional technical writer, I’ve written documentation for a lot of really inconsistent, hard to use software. Even when the software user experience is not easy to understand, I would argue that good documentation is possible. I think the underlying problem is the bazaar model.

    Conceptually, I group documentation into four categories. For example, in a useradd manual I might include:
    * Tasks – “Add a user”
    * Reference material – “useradd –help”, “man useradd”
    * Local scope concepts – “About local users and groups”
    * Global scope concepts – “Administrating local users”, “Administrating samba and network users”, “Enforcing Security”

    A lot of Linux software ships with only reference material. The better written man pages also include some local scope concepts and some example tasks. But usually, that’s where Linux documentation stops. Very rarely do man pages point you to information outside their realm of influence.

    On one hand, of course that’s the case, why would the useradd dev ever write about adduser? SELinux? How user groups and permissions relate to application permissions? The useradd dev’s goal is to make sure users can use his product, not teach them about the ecosystem.

    On the other hand, we have all of these programs in our distribution ecosystems that don’t always work together cleanly. A lot of the time our problems are in inter-process “global” scope: “X errors with because it received over message bus Y from program Z.”

    Yes, the software can be changed to produce less obtuse error messages. Yes, developers could write man pages with a little global scope, explaining pitfalls when their program interacts with other common programs. But really, the question we’re asking is, “Where is the inter-program documentation?”

    openSUSE used to produce gorgeous, printed user manuals and system administration manuals. Each was targeted at the types of tasks and processes their target users might need. Nowadays, system-level documentation, if it exists at all, gets dumped into an out-of-date wiki and left alone. Eventually, bloggers come along and start projects like, explaining inter-program tasks. Sometimes developers post really good conceptual gems, like this one:

    But the average users (and apparently developers!) don’t know these resources exist. The average user doesn’t even know if the tasks or concepts apply to their distribution.

    This is why I think the distribution needs to step in and manage this documentation themselves. No two distributions share the same packages, so no two distributions will have the same processes or documentation. But the devs have put together the ecosystem, now they need to explain it. With proper visibility, topic design, and topic interlinking, even a mountain of system documentation is easy to navigate (but each of those are posts in and of themselves).


    John Goerzen Reply:

    One thing I’ll say for FreeBSD — their Handbook has been consistently excellent. It actually helped me learn Linux back in the day.

    You make a good point. I tried hard, for instance, with OfflineIMAP’s manpage to make it be more than nitty-gritty.


  22. Much agreement. I’ve spent the last two nights trying to figure out why my Thinkpad T42’s suspend is all of a sudden broken after a Jessie installation. Linux is far harder to troubleshoot than it used to be, and is far less fun in the process.

    It used to be that the experience of troubleshooting a problem on Linux would produce a valuable byproduct: increased skill in troubleshooting. I’d learn to use various tools and tricks that could be extended to troubleshooting (or improving!) other software. But now I feel like when I figure out some way to stop systemd from doing something annoying, I’ve learned something about stopping systemd from annoying me, and that’s it. No valuable byproducts realized. So the time spent on it feels like a net loss to me.

    Semi-relatedly, I’ve just started picking up FreeBSD for the server and I find myself calmed by the way it does things. In particular, its jails seem to be a proven, secure, and simple alternative to LXC, which as noted elsewhere here is a bit of a mess.


  23. I’ve dabbled in Linux for a few years, and the comments about the man pages are spot on. I’ve got a similar gripe about Linux tech support people. In my experience, when answering a help request, they almost invariably give you ALMOST enough information to solve your problem, IF you’re already a Linux expert. Meanwhile, it seems they can’t resist throwing a few new curveballs at you in the form of obscure terminology and opaque instructions. The result tends to be that you’re more lost and confused than you were when you first sought help.
    It’s tempting to speculate that folks like this tend to be Linux early adopters who liked belonging to an exclusive tribe of high priests—and they don’t really like it that Linux has gone mainstream. Deep down, part of them wants to scare you away, not help you.
    Forgive amateur psychoanalysis.


  24. Just out of curiosity: What’s missing in Gnome’s (or rather GTK3’s) print dialog? I can’t remember missing anything, but my printing needs are quite basic. I’m happy as long as I can print whatever pdfTeX produces.


  25. I think systemd comes up again and again because it act as the spotlight that brings it all into view. Before you had differing pieces that could either be aboided or disabled, but with systemd the whole pile comes crashing through the door, where before you had a minimal kit that talked to udev to deal with power management, you now have logind that is part of systemd (that also has udev as a sub system) and polkit. In essence systemd has become a shoggoth sitting at the center of what we used to know as linux distros, but may well be called systemd distros these days.


Leave a Reply

Your email address will not be published. Required fields are marked *