Is Modern Linux Becoming Too Complex?
An anonymous reader writes: Debian developer John Goerzen asks whether Linux has become so complex that it has lost some of its defining characteristics. "I used to be able to say Linux was clean, logical, well put-together, and organized. I can’t really say this anymore. Users and groups are not really determinitive for permissions, now that we have things like polkit running around. (Yes, by the way, I am a member of plugdev.) Error messages are unhelpful (WHY was I not authorized?) and logs are nowhere to be found. Traditionally, one could twiddle who could mount devices via /etc/fstab lines and perhaps some sudo rules. Granted, you had to know where to look, but when you did, it was simple; only two pieces to fit together. I've even spent time figuring out where to look and STILL have no idea what to do."
I was reading through the article's comments and saw this thread of discussion. Well, it's hard to call it a thread of discussion because John apparently put an end to it right away. The first comment in that thread is totally right though. It is systemd and Gnome 3 that are causing so many of these problems with Linux today. I don't use Debian, but I do use another distro that switched to systemd, and it is in fact the problem here. My workstation doesn't work anywhere as well as it did a couple of years ago, before systemd got installed. So when somebody blames systemd for these kinds of problems, that person is totally correct. I don't get why John would censor the discussion like that. I also don't get why he'd label somebody who points out the real problem as being a 'troll'. John needs to admit that the real problem here is not the people who are against systemd. These people are actually the ones who are right, and who have the solution to John's problems! The comment I linked to says 'Systemd needs to be removed from Debian immediately.', and that's totally right. But I think we need to expand it to 'Systemd needs to be removed from all Linux distros immediately.' If we want Linux to be usable again, systemd does need to go. It's just as simple as that. Censoring any and all discussion of the real problem here, systemd, sure isn't going to get these problems resolved any quicker!
I think it's less the redundancy but rather the attempt to abstract away everything while at the same time including every kind of hardware and the stove into as few interfaces and scripts as you can get away with. There has to be ONE networking script, no matter whether the one actually used is wired, wireless or pigeon carrier based. And we have to include every single friggin' USB device ever built no matter whether 99% of them have at best a handful users and at worst a single user.
Linux is getting more and more similar to Windows, a huge abstraction layer crammed in between user and system in the vain attempt to make it "easy", and in this actually making everything overly complex.
Linux always had one defining strength over Windows: It is way more modular and its parts are way more easily separated and rejoined. And now various distributions try to nix this advantage by pouring their "version" into a monolithic block that "should be good for everyone". If they feel like diversifying, you'll maybe get a "server" and a "client" distri, with the main difference being that the server distri has no GUI.
Linux is getting overly convoluted, but only because we let it. Distributions are of course trying to take the easy way out, offering a system that will appeal to as many people as possible. Of course this lugs about a LOT of dead weight because what you need in your OS is useless to me and vv.
We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
>> it was simple; only two pieces to fit together
To me, the Linux experience has been based around the use of simple, command-line oriented tools that could be easily scripted together. That's the opposite of "only two pieces fit together" - just like Legos you have thousands of pieces that could fit together to make billions of different things.
.
But now Linux seems to be getting closer to fog than clarity.
One example:
Last week I installed opensuse. When I tried to send an email using the mail command, Postfix was giving me odd permission errors for maildrop. So I went to look at the Postfix log, and there was none that I could find.
One step closer to the fog of Windows, where the system is hidden behind magical portals that only a few know how to access....
Simplicity needs to be the new goal in a FOSS OS project like Linux. 20 years ago it was all about getting an alternative to systems that cost north of 100 000$ up and running to be able to do the stuff we all wanted to do but couldn't afford to.
Today leading FOSS solutions and extremely powerful hardware is available in abundance, as are network and cyperpunk-working-coding-and-collaboration resources. It is now that we need to push for simplicity and perhaps even an own hardware standard.
To be honest, putting emphasis on FOSS hardware might even provide the right incentive for exactly that simplicity. Apple won all the Unixers over a decade ago, because it offered exactly that. Zero-fuss out-of-the-box FOSS-*nix functionality. It started losing them ever since the golden cage starting to close and lock. This is a gap the FOSS community needs to fill.
It is, in my opinion, high time for FOSS hardware to move into the limelight. We need to start crowdfunding our own NixBook Airs, flashy pro desktops and servers. ... The librem 15 is a step in the right direction - we need more of that.
We suffer more in our imagination than in reality. - Seneca
- Use text whenever possible
- Performance is not paramount, so use C
- And do one thing at a time but do it well - connect small specialized tools to build complex applications
- Documentation, while terse, should cover all features
- The filesystem is a simple tree starting with /
Let's see what modern Linux does:
- Lots of binary stuff everywhere, where text would do
- You'll boot up faster with systemd, oooh yeah baby, totally rad!
- Oooh, and it's more integrated, one single process does everything!
- Look for processes with stranges names running on your machine, then try to find any documentation on them
- gphoto2://[usb:008,044]/store_00010001
The last one makes me angry. It's VMS all over again: is anyone here old enough to remember host::disk$1:[directory]file.ext;version? I can't find another way of accessing my phone data. I can't, for the life of me, mount it the way I would mount another volume.
Guys like Poettering couldn't care less. They have a vision, for sure, and they have good ideas sometimes. But there are really two issues here: a good idea is not sufficient when you engineer a system, and their vision is not Unix. To hell with simplicity, to hell with consistency.
of the tenets of UNIX. Yes, I realize we are in the modern era, and UNIX is over 40 years old, but the tenets that made UNIX great are still valid to this day.
The tenet I wanted to touch on is the tenet of UNIX that suggests we "keep it simple". Complexity is not only the enemy of this tenet, it's also the enemy of security and common sense.
I have, in the last year, begun a move of my critical machines to BSD variants, namely FreeBSD and OpenBSD. OpenBSD in particular, exemplifies the tenets of UNIX better than any other OS that is in use. Theo and team correctly understand the issues of complexity and security and their product reflects the care they take. I liken their work to that of a gardener and his bonsai trees.
FreeBSD is rapidly becoming the "go to" OS for those who are disillusioned with what Linux as become -- namely bloated, complicated, and difficult to deal with. Linux, while intentionally what it is in terms of choices, has become fractured internally what with respected long-standing developers leaving for this or that reasons. Some of this is because of systemd, some of it for other reasons.
Let's be honest for a minute. Linux is not a bad ecosystem. It's has become a difficult maze of kernel, weird and varied frameworks, too many user land utilities and DE/WMs, and the legacy stuff that Windows and Apple were accused of is there for all who have eyes to see. Nothing is perfect, obviously, but the creep is evident and obvious. I'm severely disappointed with the notion of binary blobs, something OpenBSD correctly rejects out of hand.
For me and my IT shop, we are headed towards the BSD camp because of the above and because I value stability and engineering above all else. BSD has always cared more about being "correct" than cool. BSD is engineered, while Linux seems haphazard. My .02.
Actually, I DO remember the first time I saw a Unix filesystem. It was on FreeBSD. And it DID make sense. When I switched to Debian not long later, there was this document that eventually became the Filesystem Hierarchy Standard (FHS). It clearly spelled out where things lived, and in Debian non-compliance with the FHS was a bug (and once the notion of a release-critical bug was invented in Debian, it was a release-critical bug.)
Part of the problem here is that we are in a twisty little maze and every passage looks alike, and our flashlight ran out of batteries in 2013. The manpages, to the extent they exist for things like cgmanager and polkit, describe the texture of the walls in our little 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 and it is slow going.
Add to the the fact that it's a damn big cave.
I could understand the FHS in about 10 minutes. This stuff? Would probably take weeks.
The order of magnitude of complexity is entirely different. It came out in the comments on my post that Fedora finally threw up their hands, and the reason that Wifi works out of the box there is because they just expose all wifi passwords to all users of the box. Whoops. Could you have known that by looking at the permissions with ls? Nope. You'd have to read some XML file in a location that network-manager never mentions.