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.

86 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.

    1. 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.

      1. > 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. :)

        1. > 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.

        2. 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.

        3. “Unless you use a computer exactly as the company that provided it to you suggests, you’re doing it wrong”

          Ok, got it. I’ll be sure to only do things the Apple way from now on.

    2. 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.

    3. 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.

      1. > 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…https://plus.google.com/+LinusTorvalds/posts/1vyfmNCYpi5

        1. >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?

          Because many times when someone has a problem with Linux or Windows there comes an Apple apologetic and recommends it as the solution for all problems. I’m not bothered that you are happy with your Mac and I can actually understand it in a way.

          But you are posting this as an answer to a post that was about “removed options in the printer dialog box” and a follow-up to a thread about problems becoming difficult to diagnose on Linux. Excuse me, ever tried to diagnose a problem under OSX? You would wish to have the Linux facilities, then. It’s about as terrible as it gets and even if you find the culprit, often times there is no workaround due to “removed options” because no one needs it.

          And funny that you mention “silly problems that should have been resolved 10 years ago”. Yes, I think selecting a standard PC-keyboard layout shouldn’t be something that I need to read threads on the internet for and install two different programs (look on the net, it’s full of threads about this). It should be under “System Preferences->Keyboard” but it isn’t since someone at Apple decided “no one will use that”.

          Or two monitors, not really a thing that became the hot shit yesterday. Why does it have so many problems with that?

          And funny that you mention automounting. Try automounting an EXT3 USB Stick under OSX. The finder will flat-out tell you it’s not possible and aks you to format the stick. That would be fine but from the command-line (you know, with becoming root and everything) it works flawlessly (and even appears in the finder afterwards). Apparently not such an easy problem to fix, eh.

          People mindlessly recommending OSX in a posting about vanishing configuration options, less options for customization and difficult to diagnose problems is probably not the right thing to do.

          But honestly, it does not bother me at all. And if I came across as rude I apologize.

        2. > Because many times when someone has a problem with Linux or Windows there comes an Apple apologetic and recommends it as the solution for all problems. I’m not bothered that you are happy with your Mac and I can actually understand it in a way.

          That’s how the internet works. Someone says they have a problem that someone else notices is easily solved with a change from technology X to Y and they mention it. I didn’t say it solved all problems everywhere, and I’m not an Apple apologist what a nice straw man. I don’t even use Apple *, I’m an Android fan and I use Linux everywhere but workstations where OS X is a better fit. There’s a reason RedHat and SuSE won’t go near the desktop market, it’s a market that doesn’t make sense for GNU/Linux.

          > But you are posting this as an answer to a post that was about “removed options in the printer dialog box” and a follow-up to a thread about problems becoming difficult to diagnose on Linux. Excuse me, ever tried to diagnose a problem under OSX? You would wish to have the Linux facilities, then. It’s about as terrible as it gets and even if you find the culprit, often times there is no workaround due to “removed options” because no one needs it.

          It’s actually about “Has modern Linux lost its way?”, my response to that is absolutely yes. I also have diagnosed problems under OSX, to a degree you probably haven’t since I toy with hackintoshing in addition to owning an rMBP.

          > And funny that you mention “silly problems that should have been resolved 10 years ago”. Yes, I think selecting a standard PC-keyboard layout shouldn’t be something that I need to read threads on the internet for and install two different programs (look on the net, it’s full of threads about this). It should be under “System Preferences->Keyboard” but it isn’t since someone at Apple decided “no one will use that”.

          System Preferences -> Keyboard -> Modifier Keys. Seems to work fine with my Logitech keyboards.

          > Or two monitors, not really a thing that became the hot shit yesterday. Why does it have so many problems with that?

          My two monitors are working fine, they aren’t even thunderbolt, they are mini display port.

          > And funny that you mention automounting. Try automounting an EXT3 USB Stick under OSX. The finder will flat-out tell you it’s not possible and aks you to format the stick. That would be fine but from the command-line (you know, with becoming root and everything) it works flawlessly (and even appears in the finder afterwards). Apparently not such an easy problem to fix, eh.

          Another straw man, taking something that doesn’t belong to the OS, making an argument that it should work (when nothing says it will) then whining that it doesn’t work. You’re welcome to buy drivers though if you need them: http://www.paragon-drivers.com/extfs-mac/

          > People mindlessly recommending OSX in a posting about vanishing configuration options, less options for customization and difficult to diagnose problems is probably not the right thing to do.

          It’s not mindless, remember what I said in my first comment. Former LONG TERM Linux user, and a distribution manager. A very technical person who decided it wasn’t worth the drama or the trouble to use it as a workstation or desktop OS. Not a n00b here to preach OSX regardless of what you might want to believe.

          > But honestly, it does not bother me at all. And if I came across as rude I apologize.

          You did, but no worries, I’m used to it. It’s status quo in the Linux community.

        3. > I didn’t say it solved all problems everywhere, and I’m not an Apple apologist what a nice straw man.

          You sure sounded like one in your original postings.

          > There’s a reason RedHat and SuSE won’t go near the desktop market, it’s a market that doesn’t make sense for GNU/Linux.

          But it makes perfect sense as a developer machine. But I guess we can agree to disagree on that.

          > It’s actually about “Has modern Linux lost its way?”, my response to that is absolutely yes.

          Look in the 5th paragraph of this article. I don’t need to argue about what was written in the posting.

          > System Preferences -> Keyboard -> Modifier Keys. Seems to work fine with my Logitech keyboards.

          Ok, so where does it allow me to remap the Home and End keys of my Microsoft Keyboard to “Go to start of line” and “Go to end of line”. Where does this allow me to move the “@”-character from the L-key to the Q-key? Where does this allow me to remap curly braces and brackets to where they are used to be on an ISO keyboard (this is probably not a problem for US-keyboard users). I never asked about re-mapping modifier keys.

          > My two monitors are working fine, they aren’t even thunderbolt, they are mini display port.

          Yep, I’m using one HDMI and one Mini Display port and everytime I attach them while the MacBook is sleeping (e.g. after coming in to work), there’s a big chance it will completely screw everything up when waking up. But of course, denying that someone even has these problems is also a solution :-)

          > Another straw man, taking something that doesn’t belong to the OS, making an argument that it should work (when nothing says it will) then whining that it doesn’t work.

          I’m sorry, I meant to say NTFS there instead of EXT3, which makes it even worse in my eyes. NTFS USB Stick, finder compalins about uninitialized disk. Using “mount -t nfs /dev/diskblabla /Volumes/blabla” works perfectly and even the finder finds it afterwards. Why? No idea!

          > Former LONG TERM Linux user, and a distribution manager. A very technical person who decided it wasn’t worth the drama or the trouble to use it as a workstation or desktop OS. Not a n00b here to preach OSX regardless of what you might want to believe.

          I respond by content of the comment and not by what the author claims to be.

          > You did, but no worries, I’m used to it. It’s status quo in the Linux community.

          Oh, you just had to bring that one, eh. But better than the Apple community where I am told that wanting to use NTFS USB Sticks with OSX is “using it wrong”…

        4. I meant to say NTFS

          http://www.paragon-drivers.com/ntfs-mac/

          5 seconds with Google, literally, or scrolling to the bottom of the page of the link I already gave you. Anything to feel like you’re right.. The white knighting is strong in you. :)

          Key remapping, why, the keyboard probably works just fine. If you must though:

          http://scripts.sil.org/cms/scripts/page.php?item_id=keylayoutmaker
          http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=ukelele
          http://www.boastr.de

          Another 5 second google. Ever need use xmodmap? Please, tell me how it’s easier.

        5. I did not remember asking for your assistance in doing those things. I found all of this stuff out long ago. My question is:

          1) Why do I need to download multiple programs just to use a non-MAC keyboard. And actually creating the layout takes much longer than the 5 seconds it takes to google the program.

          2) Why would I pay 19.95$ to automount NTFS, when, using the command line “mount”, the system is apparently capable of doing that just fine out of the box? Why can’t Finder just do it? And seriously? 19.95$ to mount a Windows USB stick? SERIOUSLY? It’s not like OSX or those machines come for free?

          But yes, I see. Apparently in the mind of a MAC-User it’s totally fine that setting a keyboard layout requires Googling, Downloading of multiple tools and then creating your own layout (which, btw, in Ukelele is everything but straightforward). It’s apparently also fine that the system does not come with the capability to auto-mount one of the most used filesystems without paying or going to the command line.

          Well then, anything you need to justify your purchase I guess :-).

        6. Read: Just more Linux white knighting, in a thread about Linux losing it’s way. 1. You need to download things on any platform to do things. Sometimes that’s hidden behind yum install, apt-get, emerge, and sometimes you click your mouse in a browser. 2. For the same reason you’d purchase a game in Steam on your Linux computer. You’re always welcome to write your own GNU NTFS driver for OS X if you have the talent, or you can rely on the work of others if you don’t..or you can pay for it. Once upon a time the best audio drivers and display drivers for Linux were not free (4OSS and SciTech SNAP).

          Yes, I also see. I see comments of the entitled who thinks everything should be free and given to them for nothing. I get it. Also, I guess you’ve never had to google anything on your precious GNU/Linux platform either. Right…

        7. Andrew, you’re the “well, it works fine for me on MY box” developer that everyone loves to hate. Who cares if you don’t have problems with multiple monitors on your machine, it doesn’t help the person who does have those problems.

    4. 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.

    5. 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.

    1. 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.

      1. 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.

        1. 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.

      2. John,

        I agree with this. There are a ton of new features that I am interested in, ZFS being one of them. This is what drew me to the BSDs. I started after the issues I ran into with a systemd-ified Debian system. Then I decided to do my due dilligence to see if I was being unfair. I read articles about it, listened to Lennart interviews, etc.

        One thing that really turned me off of systemd is when I heard Lennart say that the systemd team wanted to “own everything between the kernel and the application layer.” This kind of struck me as recreating Linux in their own image. He even said that at some point in the future, they wanted to replace all package managers with a cgroup/docker-style solution. This may be a good thing or it may not. It seems that this would change the distros into one unifiied, homogenized whole. I’m really not sure I’m onboard with this. To me, it feels like the systemd team is saying “you can have any color car you want, as long as it is red.”

        To me this seems like a forced alliance.

    2. 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.

      1. Basically, the problem is that the Windows culture has migrated into Linux with the former Windows developers.

        We need to tell them — adopt the culture, or get out.

        This is the same problem we have with 3rd world immigration to 1st world countries… people move to 1st world countries to escape 3rd world problems… and then, as seen, for example in the “suburbs” of Paris, they proceed to re-implement their dysfunctional third-world culture in their new home… basically, the equivalent of shitting in the middle of the dinner table at a fine restaurant, because even though they don’t like eating where people shit on the middle of the dinner table — they’re so used to doing it, they just can’t help themselves.

  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.

    1. 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.

    2. 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.

    1. 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 snapshot.debian.org, 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.

    1. 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: http://linuxfr.org/users/roc_pierre/journaux/sur-systemd-btrfs-co) or see the logs (example: http://linuxfr.org/users/kursus_hc/journaux/une-installation-hi-fi-de-qualitay-avec-le-raspberry-pi-arch-pulseaudio-shairport-trolls-inside) 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.

    1. With respect, this is your opinion, but my opnion is totally different about systemd.
      The problem is not that we have different opinions, the problem is that I’m beeing forced to use systemd in wheezy and jessie, the problem is that I have no choice (the reason may be a bad design, the reason being one program taking it all).
      Now I’m mounting pen-drives at hand with pmount in wheezy, and waiting form Devuan to stop this crazyness in Debian. And very frustrated because the Debian lords not respected the social contract.

      1. systemd is not in Wheezy, or you put it there yourself.

        Anyway, what I wanted to say is that there _is_ choice. Look at it this way: a distribution’s job is to choose a kernel, choose user-land software, and do something that meets its goals with all of this (the goal can be stability, performance, lightness, eye-candy…). There are many distributions. You just have to choose the distribution that most closely matches your own goals. As for Debian, they pondered a lot on this issue, and they made their choice. No one is forced to use Debian.

        Of course, you could say that you wish to use Gnome, but cannot do that anymore without some amount of systemd being there. Well, if the Gnome project did this, it must be because they saw some value in this choice. If you do not agree, you can use another desktop environment.

        systemd programs are only taking the space that miscellaneous projects and distributions are _willing_ to let them take. Are all these projects and distributions suddenly blind and incompetent? Maybe, maybe not; we probably have different opinions on the matter…

        There are efforts underway to bring some order and fiability to Linux, and I do think that systemd and wayland for example are such efforts.
        IMHO, you cannot judge the results of these efforts based on observations of an _unstable_ distribution (ie: work in progress).

        1. Lately, I tend to use one of the methods of sySTEmd fanboys, saying the same thing again and again, so here it is :

          We need to evolve the way we see things

          Yes we do.
          We also need to progress in our way to talk about them.

          There’s one barebone distro becoming bigger and bigger, this distro is the Gnome-Systemd Linux (let’s call it RHGSDL) and it has quite a lot of derivatives which will become more and more similar : RHEL, Fedora, Debian, Arch, Opensuse, Mandriva …

          The core idea of this distro is that, to ‘fix’ linux, the whole system must rely on a unique process which control every other thing and that package/software dev/maintainers will work for that distro only (by making all their softwares/packages dependant on SystemD). The developpers of systemD think that most will do that because it’s ‘easier’ than to work for themselves and the whole community with other distros.
          Maybe they are right to rely on lazyness and selfishness of those who make the strengh and diversity of GNU/Linux but, on the other hand, those who chose to give their time and skills in a free softwares unpaid work have maybe other higher motivations. Time will tell.

          Time will tell also if the technical choices, and, among them, a single point of failure were good for this distro. Also their political choices. Some of the derivatives force SYSTEMd as default and do just not support alternatives, some are pretending to support alternatives while, by playing with recursive (sometimes ‘forged’) dependencies and compatibility break, they make it installed quite silently with other packages and almost mandatory once it’s installed. And they are the first distro who openly wants to either eat or destroy any other distro by orphaning them and systematically casting a slur/talking down/dissing anyone who legitimatly criticises SYStemd.

          Still, RHGSDL is only a distro and we need to help and support the others who want to offer the choice to their users. I mean : LFS, Gentoo, Slackware, PCLinuxOS, Refracta, Crux, GNU Guix, Kali Linux, Sorcerer, Source Mage, Void Linux, Plop Linux, Pisi Linux, Bedrock Linux, GoboLinux, 0Linux, 4MLinux, Puppy Linux, Tiny Core… (plus LSD Linux, Trios and Devuan, if they ever become real forks) and all their derivatives.
          There are also other kernels and, in particular, BSD. FreeBSD/PC-BSD/MidnightBSD seem to be quite good to give it a try without knowing much of it.

          Now, there’s something I would like to say to the sysTEMd fanboys.
          You say that it ‘fixes’ Linux, it handle things ‘better’, it is the only way to use the ‘newer’ functionalities, it is ‘needed’, it is ‘The Future’, it is ‘The Progress’, there’s ‘no alternatives’, no-one is able to develop alternatives following the ‘awesome development speed’ of it, others “do not respect the LSB” when sysTemd does, others “do follow stupidly the LSB” when systeMd do correct it, the users and devs who don’t think alike are just idiots or know nothing, the unix philosophy is obsolete, those who don’t follow you are of no interest etc.
          If you’re right, then the linux kernel is not able to suit your desires and -fortunately- it doesn’t depend on SyStEmD yet. If you believe in what you’re saying, the Unix way and the linux community doesn’t suit your needs.
          Then, the best way for you, SysTemD dev and al., is to take a break with the linux world, make your own kernel, going along with your system, and your own community, according with your philosophy, and it will be really easy for you as you are the ones ‘who know and do better’. You do not need, previously, to waste GNU/linux and our time.

    2. Wrongo.

      Anything that requires a 200-page book to the man pages from a couple dozen administrative tools is NOT simplification.

      Quit being an apologist for these Redhat sleazebags.

      [I *used* to support Redhat, before they forced this crap on nearly everybody]

  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.

  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.

    1. 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.

        1. With the obvious differences that systemd is orders of magnitude smaller than win32, that the parts systemd-shim wants to emulate (i.e. not udev, journald, the init system, …) are even smaller, that the systemd is available so it’s easier to understand than the black box of win32, that the developers can be reached easily, that there are a smaller number of (or none) consumers of obscure undocumented API behavious, etc.

    1. 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).

  14. 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.

  15. > 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.

  16. 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.

  17. 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.

  18. 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.

  19. 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…)?

  20. > 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 http://debian-administration.org/, explaining inter-program tasks. Sometimes developers post really good conceptual gems, like this one: http://blog.martin-graesslin.com/blog/2015/01/why-screen-lockers-on-x11-cannot-be-secure/

    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).

    1. 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.

      1. I have recommended Chapter 1 of the Debian reference to those wanting to learn about the fundamental Unix system:

        https://www.debian.org/doc/manuals/debian-reference/index.en.html

        I find the manual to be reasonably comprehensive and descriptive. Right now the manual is written with the present Stable (Wheezy) release in mind. I presume it is being updated in a repository and will be released along with Jessie.

        To anyone interested, I would guess that Osamu would be receptive to improvements and expansions to various sections of the manual.

  21. 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.

  22. 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.

  23. 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.

  24. 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.

  25. I really like the simplicity of OpenBSD. One indication of its simplicity is that the same OS can be used for servers and desktops alike. A simple install command from the lean base install (suitable for server) makes the OS into a desktop.

    http://undeadly.org/cgi?action=article&sid=20140219085851

    The project seems think new features out well before they are introduced. This sometimes make things come a little later (like KMS support), but usually have great quality when they arrive …

    http://www.undeadly.org/cgi?action=article&sid=20130812135734

    … and support excellent features (like running X in unpriviledged mode) due to the attention to details.

    http://undeadly.org/cgi?action=article&sid=20140223112426

    It is great feeling that the same OS can be modified to anything I want, without too much effort because the system is understandable and simple from the ground and up.

  26. I think the two key phrases here are “intransparency” and “insufficient design”. These are at least the things I see causing all of the troubles.

    Examples: Gnome threw CORBA out the door in favour of dbus, because CORBA “caused problems”. Now I google for a list of those problems so I can follow the decision. No such thing. It’s probably all on the mailing lists, but nobody took the time to make a list and do an informed decision. I don’t say the decision is bad, but they way it is communicated is absymally intransparent.

    And lack of design? It is being thought again about (d)bus activation and how that is done via systemd. Where is the comparison with COM, CORBA and .NET that all do the same thing? Why is the new version better than existing technology?

    To me the decision process is horribly opaque and so are the systems that come out of it. To this day I do not know why polkit uses Javascript (you read that right) to implement access control checks. Javascript? Seriously? Why?

    End then there’s of course the fact that some of the people involved just seem really horrible programmers :-/

    1. The decision to move from CORBA to D-Bus was made quite a long time ago. This page https://wiki.gnome.org/TwoPointThirteen/Platform mentions that Gnome’s CORBA (ORBit2, libbonobo) is “heading towards planned deprecation” and was written for Gnome 2.14 released in March 2006. Wikipedia even says that Bonobo has been deprecated since Gnome 2.4 (https://en.wikipedia.org/wiki/Bonobo_%28component_model%29#Planned_deprecation ), but that might be a typo. And even at the start of D-Bus development in 2002, people from Gnome and Red Hat were involved. So the need for a “new” IPC system has been there quite early.
      Give that long span of time it’s not surprising that it’s hard to find the discussion of this change. But I suspect that you can find it somewhere in the archives of gnome-devel-list from approximately 10 years ago.
      FYI, the D-Bus FAQ contains a small comparison between D-Bus and CORBA http://dbus.freedesktop.org/doc/dbus-faq.html#corba .

      Concerning Javascript in polkit: I also find it weird that they thought they needed a Turing complete language for configuration. But if you accept that, then I don’t think Javascript is such a bad choice. It’s certaily better suited for this purpose than Python, Ruby or shell scripts.

      1. I do not doubt that there was a good reason for deprecating CORBA (and with it bonobo components). I just like to see a document where those good reasons are all written down. I just used dbus is an example for “opacity”, because the documentation I know of is still very much incomplete (after 9 years).

        But there are others. XDG_VIDEOS_DIR’s sole specification seems to be small C a library implementing the path lookup. And systemd handles it differently than that library. Erm, why?

        This makes me feel quite the opposite of “warm and fuzzy”. I’d like to have clear cut abstract concepts that are actually recognizable in the core components and that are documented somewhere so that things are at least somewhat traceable.

        And I stopped to have that for a part of my desktop system (I use xfce so it’s not to large a part). To the point where I started to mount my usb sticks manually again, because I am just sick and tired of trying to find out where to configure the privileges in the current incarnation of HAL/gvfs/fookit software.

        I’m also not quite so sure that I want to be able to encode an endless loop in my policy file ;-).

  27. You said: “Software diagnosis tools like Enrico Zini’s seat-inspect idea can also help.”

    I had to look up the definition of “seat” and found it here: http://www.freedesktop.org/wiki/Software/systemd/multiseat/

    I cannot help but wonder how many use-cases there are where people actually buy or build a computer system with two screens, two mice and two keyboards attached to them. And where the USB ports are divided so that one group is reachable from chair “seat0” and the other only from chair “seat1”. Must I imagine a classroom with one computer with 20 keyboard cables, 20 screen cables and 20 mouse cables attached to it? I’m sorry but I find it hard to think of any real practical application of having more than 1 seat.

    Classrooms, in-flight entertainment, kiosks can all be done with a client-server model with light-weight X terminals (each 1 seat).

    (Now if you only have 1 screen, you could do a three-way split-screen with three people each with his/her own keyboard typing away next to each other. Is this the use-case that multi-seat is designed for?)

    And for this, all of us Linux users and developers have to:
    “Note (and this is important!) that if a device is assigned to seat0, it will usually not carry such a tag and you need to enumerate all devices and check the “ID_SEAT” property manually.”

    Except if we write stuff like pulseaudio:
    “If you are writing user-level software interfacing directly with kernel drivers (like PulseAudio), consider ignoring seat information completely, and make available to the user all devices he/she can access.”

    It is just not very developer-friendly :-(.

  28. The practical issues of this article are in areas of GNU/Linux I never worked on. (Command line interpretation is not part of Linux, you know.)

    However, the significance of a practical issue is always based on values, and every recommendation presumes certain values.
    I noticed the person who recommended MacOS because it works”. In what sense does MacOS “work”? It won’t let users fix bugs at all. It is a nonfree system with DRM, and it transmits users’ unsaved files to Big Brother. Is that “working”?

  29. While reading your post the only thing than came to my mind…. you have problem with new things. In a way similar in complaint as might come from Windows users who have changed to Linux.

    I have been using Linux for over 10 years.. I generally welcome change. I was a bit confused with systemd at first but after using for a month or so I love it. I started using it for two years ago and the more I use it the more I like the simplicity of it. Yes, it means I have to relearn how to do some stuff but the result is much more predictive. Journald is also more competent and makes stuff easier to find.

    So… you feel it is less predictive because it is new to you and you don’t fully understand it yet. Give it time and things will fall into place.

    1. I think that is too simplistic an answer. I actually enjoy new things. But not new things that add pain for no real benefit. Please note AGAIN this post is NOT about systemd. I wasn’t even running systemd when I wrote it.

  30. Systemd may be the first step to commercialize Linux. After this, the minds behind this move will go for destroying Linux root access control/user permission set up to make it vulnerable like Windows OS’s such that they – antivirus makers, crapware sellers can make another Windows-like eco-system. Systemd alone will drive for unification of distros and later there will be a push for using a particular package management system pushed inorder to achieve this.
    What I and many old Linux users (and are not developers) want may be a Gentoo Linux with Debian package management. It’s literally 3 or 4 distributions commercializing and monopolizing Linux sphere in the future that includes Ubuntu, RedHat and other big shots literally reducing Linux into OS X and Darwin model.

    What many will want is a balance between rolling release and fixed release distros with a Debian package management system with the efficiency of Gentoo or such niche distros. Where do we fit?

    1. Apparently: commercialised Linux distros, developed by fewer people, designed only for specific needs, existed ~20 years ago and was the very reason Debian came into being:
      http://www.ibiblio.org/pub/historic-linux/distributions/debian-0.91/info/Manifesto

      That was written in 1994, way before my time, but maybe history is merely repeating itself now. A solution was proposed in that same document, which I interpret to involve:
      * saving users from having to find, compile and integrate software by themselves,
      (Debian still seems to do pretty well there)
      * supporting the widest variety of hardware configurations,
      (we’re starting to see older hardware or whole architectures dropped unfortunately)
      * being *accepting* of users’ specific needs and ideas, help them be involved in development, to produce something that will be useful to more people,
      (I think the systemd integration marks the peak of Debian’s failure to meet this goal)
      * making it as easy for others to install and use, as it is for you as a developer.
      (many parts of the OS are lacking here, not just the installer; documentation is important to this)

      I think those values are what led Debian to be called ‘the Universal OS’, but in recent times many seem to be renouncing this, in favour of creating the best possible niche OS for only themselves.

  31. Well, I’m a new Jessie user but not new to linux. I installed Jessie from a DVD just a few days ago. I am nearly 60 at this time and I did install a released version. I personally see no benefit to Jessie. I did a clean install but it needs so much more stuff done than Wheezy. I use a KDE desktop environment.

    There are MANY little things I don’t like. For one thing, the moving of items to my desktop sucks. I can’t just pull someone on my visible desktop and have it copy for rme. I have to put it in my desktop ‘folder’ and then pull my item within that folder to my visual desktop and instead of just copying the folder, it asks me if I want an icon, a folder or something else. Can’t remember right now. If you are moving a folder and you choose folder, it is an open thing on the desktop displaying all the contents. I don’t like that. So you choose icon. However, if I drag something from a usb drive to the desktop, it appears to copy it but it’s really only pasting something that can’t be read unless I leave my usb drive plugged in. This is irritating as hell.

    So all the little changes like this — are making me revert backwards. It’s not a great upgrade in my opinion. I’ll wait till Debian 9 comes out and try it out. But I think Debian 8 is a flop. I mean it’s good software but not for me. I like ease of use.

    Wheezy with KDE is perfect. I’m not a tile person so KDE tempers that for me..

    Jenn

  32. Yeah, I’m late to the party. On purpose. I’ve been working with Unix systems for over 40 years, and with FreeBSD as my desktop for 20. I started with FreeBSD because it had application management tools and no other open Unix-like system did at the time. Over the years, I’ve looked at Linux a few times, but never found a good reason to switch. And a good reason not to – the GNU tools are aptly named NOT UNIX. I wanted to stay with Unix, so I stayed with FreeBSD.

    But I found myself running Linux in a VM for the same reason I ran Windows in a VM: to use some proprietary or non-portable application I needed. This has gotten common enough that when I built a new desktop, I decided try Linux since it at least solves the worst problem of Linux: I can use a window manager with a UI that was designed this century. And I chose Ubuntu because I’m switching to make it easier to run applications, so I I wanted the distribution that would make that as easy as possible.

    And the more I use it, the more it reminds me of Windows. The system seems to start with the assumption that the user is an idiot. Failures are hidden if possible, and if not the error message are pretty much worthless for diagnosing the issue. At least they’re unique enough that google sometimes helps – just like Windows. Lots of system tools have their own security model, which almost inevitably means I can’t do simple things I ought to be able to do without a sudo. They’re trying to protect me from myself, and like those idiotic “Are you sure?” prompts that everyone just powers through, they make things worse. Either convenience or necessity forces me to do something to disable those mechanisms, which inevitably means I wind up disabling protections that really ought to be left in place.

    I don’t know that GNU/Linux has lost it’s way. To me, this feels like where Linux has been heading all along: it’s chasing Windows users, and of necessity becoming more like Windows as it does so. It’s clearly not following the Unix way, but it really never has.

    To be clear, I don’t think the issue is the linux kernel. Yeah, there are things I’d change, but those aren’t this kind of issue. It’s the utilities and applications built on top of them that are the problem. The GNU utilities don’t even pay lip service to “do one thing well”. They add features willy-nilly and duplicate functionality between each other sort of at random. Naturally, the stuff built on top of them carries this on, and it gets worse. If I could have found a distribution using the BSD userland on top of a Linx kernel, I’d have tried that. But it doesn’t seem to exist…

  33. It amazes me why no one here really seems to “get it” about why Linux is being systematically degraded with excessive complexity needlessly being built into its designs, with chaotic methods now replacing predictable methods, by changing designs to supposedly fix things that were never broken, by adding adding false requirements for new features under the guise that they are needed to protect the user’s security,.. and on and on and on it goes. This is happening now because information technology, computer companies, and government have taken over the control of Linux.
    They use it for their needs and do not care at all about the needs of
    userland. The more proprietary, rapidly evolving, and undocumented software they can get into the Linux bundle.. the more control and profits they receive in return. The more complex the software it, the easier it is to hide hacks for spying on the users, etc. It is really simple, just follow the money and soon you will “get it”.

  34. I started using Linux in 1993. I wrote multiple Linux books, thousands of online articles about Linux, transitioned multiple organizations to Linux and helped many personal acquaintances to switch in the late ’90s and early ’00s.

    By the mid-late 2000s, however, I was having the same experiences that you describe having. Things were probably breaking at the same rate as ever, but now repairing the breakages was requiring more and more time, investment, and learning.

    In the late ’00s I went back to grad school to do a Ph.D. And there came a day in 2009 when I had run the package updates on my own personal work machine in hopes of solving a couple minor problems and of course it broke boot, and then once I had fixed boot I realized it had broken some other things. I needed to triage and fix X, suspend/resume, and a few hardware drivers for user-facing accessories. I forget which ones. I further realized that yet again, file locations, formats, security models, and other infrastructure had “evolved” enough that I needed to pull out my “backup” laptop to be able to run a web browser and Google for details, since manual pages were nonexistent or out of date for some of these things.

    And it wasn’t a major version update; just the regular round of package updates from the default Fedora repo, on a fairly uninvolved personal computer.

    About four hours into things and very frustrated because I was spending a day on getting my desktop environment back (not configuring it to my liking, but just getting it to work once again) rather than on my dissertation. And I suddenly realized that I was doing this on a 3-6 month cycle, regularly these days. And that I was maintaining an entirely separate, second laptop so that when updates did “break everything” I had the ability to Google from home to be able to track down what had changed and fix things on my main machine. It seemed like madness. I had a dissertation to finish.

    My first thought was that I needed to switch distros once again, something that I’d done a couple times over the previous fifteen years running Linux. And I prepared for about an hour for the idea of downloading several other distros and trying them all out, and the prospect of an entire weekend of experimentation, followed by selection, and then configuration of my choice, and then data restoration, and then…

    it suddenly struck me that for me, an investment in Linux as a daily computing environment and in Linux knowledge as an asset was not a good investment any longer. I needed to be working on my Ph.D. To my shock, I consciously saw that for the first time, after being a Linux evangelist, coder, and professional almost from the very beginning and for the entirety of my working adult life, Linux was not helping me to do the work I needed to do. In fact, it had become an obstacle.

    I quickly discounted Windows as an alternative, as I had years and years of shell scripts and data in formats that really needed a *nix environment for an easy transition. With half a day left, I quickly hit the local Best Buy, got a blank HD to play with, got ahold of a “hackintosh” distro, and actually got an environment up and running on my laptop within an hour or so. It was actually easier than installing an average Linux distribution to get to OS boot, and about 1000% easier from there to “fully working and nice desktop environment.”

    Within days I was in Mac OS 95% of the time. Within months I’d bought a MacBook Pro.

    My environment these days is OS X + MacPorts with a lot of the old “Linux world” resources installed that way. I even understand that there are probably better alternatives (“Homebrew?”) but MacPorts works, I keep it updated, and it has never broken the environment. Even major OS updates are blissfully easy. I rarely have to resort to CLI OS configuration and even in the few cases where I do (maybe once a year?) it’s on the order of a single command entered as root that’s readily found on Google. I can’t remember the last time I had to edit the equivalent of a dotfile or an /etc file. I buy off-the-shelf accessories (printers, scanners, etc.) and don’t even think about compatibility. I plug it in and go. Usually I don’t even need to install any software to make it work—it really does “just work” about 90% of the time. When it doesn’t, I don’t spend time on it, I just return what I bought and buy the competitor instead and that one will “just work”. I have had a 100% success rate with this, and the amount of time to hop back to retail and do an exchange (say, 20-25 minutes) is far less than the time I used to spend getting things to work in Linux.

    I finished my Ph.D. as a Mac user. I’ve been MacOS only since that fateful day in 2009, now going on 9 years. I’m not actually a Mac evangelist, which is probably the biggest compliment possible to Apple; I forget about Mac OS as a factor in my life entirely. It’s just not something I even pay attention to. That never happened with Linux.

    I think there’s a cultural problem in the FOSS world that will be tough to resolve. It’s utopian. Linus included. There is an emphasis on doing things the “right way” rather than in a “resilient way.” The idea seems to be that if you need resilience, you haven’t done it “right.” Once you get it “right from the start,” there will be no need for anything else.

    So there are frequent redesigns under the “this time we’re doing it the right way” banner. This breaks API/ABI/environment all the time. Everything is re-implemented from the ground up on an ongoing basis, with major reimplementations hitting the repos on a fairly frequent cycle—or worse, appearing piecemeal in the repos on a weekly basis, creating a running “breaking things” series of events.

    They have not yet learned that in fact there is no universal “right way”—it’s tradeoffs all the way down, and they’re not technical, they’re social—mutually exclusive things are ideal for different users and use cases, and you can’t serve them all. You have to grit your teeth, choose, and serve the ones that you decide to serve well, then tweak and support the imperfect indefinitely, without starting any revolutions (as opposed to launching a revolution once a month).

    Maintainability is far more important than universality or technical perfection. But FOSS coders, who have always been largely utopian in their outlook, continue to chase the latter two, at the expense of the first.

    When computing was a much smaller universe, the costs of this choice weren’t as evident. But now the amount of infrastructure and ecosystem that need to be present for a “complete set of everyday computing resources” have multiplied as the use cases for computing in everyday life have multiplied—and the costs of poor practical maintainability for users are evident.

    But the culture still has not changed.

    Every couple of years I quickly install the latest Ubuntu or the latest Fedora in a VM, just to see how things are. I think *once* I’ve managed to actually install as far as a desktop that worked. I limit myself to about an hour on a weekend to experiment and see—and most of the time, that doesn’t get me through the host of problems that emerge during install or basic configuration.

    So every time I have that “I wonder how Linux is doing, and whether it’s worth it to switch back” feeling, which is a remnant of all those years spent with and evanglizing for Linux, it is quickly answered with “about the same as ever, plus about 25% worse since the last time I looked. Nope, not even close to being worth considering.”

    I’m old enough and experienced enough now with people and organizations and life in general to realize that given the founding ethos, assumptions, and culture of FOSS, this is unlikely to ever change.

Leave a Reply

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.