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."
Just like Linus did.
Yes, yes it is. We have too many redundant frameworks. Sadly, systemd is the only effort to unify them that seems to have traction.
There should be one facility for each function on the system. I don't need my network interfaces being diddled by bizarre and obscure programs. Example, libvirt doesn't use /etc/network/interfaces, this is stupid and complicates firewalling scripts and so on. And it insists on running its own copies of dnsmasq, rather than just dropping some files in /etc/dnsmasq.d. What a PITA. Use the goddamned operating system, that's what it's there for.
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
No problems here. Slackware seems to keep things simple. Granted, I haven't tried to mount a camera with DigiKam in a couple of years.
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!
Linux is starting to get the "feature creep" crud that is making it a mess. the nice part is we still have some choices to avoid the things we dont like and it will create a split like Linux and BSD but inside linux it's self.
Do not look at laser with remaining good eye.
Look, you can joke all about how I'm just too stupid to use it but the fact is I am an IT professional and I'm not incompetent at what I do. Which means that technical concepts do not leave me in the dust by default.
And yet, every few years when I try to get into the swing of all things Linux, it ends in utter frustration.
Make of that what you will. And when you tell me I am at fault because I am unwilling or incapable of hurdling that learning curve, I will throw back in your face that a good product is also defined by usability considerations.
Linux is a pain in the ass. It is good at a broad variety of tasks, but so are other OSs that make my life less of a living hell.
>> 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.
You can always tell when lines like "it used to be", "there was a time", and "I remember when" are used. Things change, and when software changes it typically gets more complex. Just take REO Speedwagon's advice and roll with the changes!
The answer is BSD. Try it, you'll love it. Great documentation, testing before features go live, UNIX philosophy still alive, the list goes on...
Only the State obtains its revenue by coercion. - Murray Rothbard
After 15 years of Linux only, I went Windows 8.1 PRO with Cygwin for bash, ssh, some python, and Vagrant for my development needs. Maybe overkill but I can assure that this combination is FASTER than Ubuntu 14.04 on the same box (14.10 is a complete disaster, at least from the virtualization point of view).
On the other hands, mounting USB storage "just works" now on Linux.
Oblig. XKCD: http://xkcd.com/927/
The more complex the system, the more potentially undesirable states you have.
Undesirable states take work to remove.
Human efforts being imperfect, undesirable states appear spontaneously and accumulate over time, requiring further work.
Haha! He used 'Modern' and 'Linux' in the same sentence without a 'not'...
.
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....
It's just Fluffeh Unix
Build a Man a Fire, and He'll Be Warm for a Day. Set a Man on Fire, and He'll Be Warm for the Rest of His Life.
That's all user space.
Honestly, I thought this was going to be a kernel rant, and I came loaded for bear: there's a lot that needs fixed about the Linux kernel and the processes and relationships between stakeholders.
But let's address the subject of the blog post instead, because there's a lot of fodder there too.
Everything complained about in the blog post is not a Linux problem, it's a Linux distribution problem, since the distributions are what add the user space components that are doing things like automatically mounting his phone so that something else in user space can't talk to the second control channel on the USB interface (because the phone uses the primary command channel to switch to the second command channel, and it's in use by the mount).
This is basically the problem you are going to face on a distribution without an overall architectural design for the user/kernel interaction, and interaction between user space components that allow for layered access.
For the "It's a camera! It's a phone! It's a mass storage device!" problem, I don't have a specific answer; I'll note that uugetty solved the contention for typed use of a resource problem for modems ("It's an inbound modem! It's an outbound modem!") in the 1980's in HoneyDanBer UUCP. And they did it by having an integrated model that all the consumers used. IT's called a layered approach to software development.
I think the big driver for user space problems is that a lot of Open Source people believe that *their* program is the most important thing your computer can possibly be running, and if it interferes with someone else's use of something, so what? The computer is still performing it's *most* important function, which is to run *their* work product.
Even Apple is not immune from these problems; there are third party phone tools that can do nifty things with pretty much any cell phone and come with all sorts of USB cable ends that plug into this USB cable adapter, but the OS grabs the phones out from under the software, and you have to hack the device ID list in a plist to get it to work like it's supposed to (then iPhoto, etc., can no longer see the phone). But at least on Apple systems, there's one place to go to to fix it, the fix is well known, and when Apple is informed of the problem, they generally fix their software to "get out of the way" (or tell the third party how to do it temporarily so their software will work).
What's really missing for Linux distributions, honestly is...
(1) An architect with a holistic vision ...in other words, if you want it to look like a commercial OS distribution, you have to approach it as one. And that's not happening.
(2) A project manager for the components
(3) Productization - people in Open Source only want to work on fun stuff, not on boring stuff that makes stuff actually usable
(4) Usability engineering
(5) Interface contracts which don't change over time
(6) A way to shunt third party installed software (i.e. "apt get", etc. stuff) off into an isolated hierarchy so it doesn't screw with normal operation
(7) Documentation that doesn't have to change over time
In case you're recently joining us in Linux after a long hiatus, or are coming from the sanity that is BSD, its worth clarifying a few points and I as a formal neckbeard am here to help
The kids: this has been a problem since Subversion but it rears its ugly head now and again with the sun mircosystems crowd that insists the network is the system. These kids dont want to be bothered by man pages or perldoc, so instead they ship a stub with a reference to their CSS/HTML5/Web 5.0 project discovery special snowflake site. The page includes a full colour mascot, links to all the social sites for the project, and videos of the latest con/talk/pep speech the kid with the most pogs/pokemon badges for the project gave with ample references to cats, cheeseburgers, and memes. Loading it up in links gets you a neat scrabble game. Let me be clear: linking your webpage in the absence of man is a waste of time. it is literally the Unix ethos equivalent of "check out my mixtape"
2. The god damn pottering man:
Hes controversially steamrolled most major distros into giving up everything from competent init scripts to non binary logs and even the bootloader in favour of 1 single process capable of doing everything, forever. The backlash was delayed but as of recent, its been pretty consistent. The root of the problem is new developers with a raging hardon for Apple design philosophy. At its peak, this madness turned gnome into a screaming hell-mouth of fades, pans, jiggles, wiggles, and performance tests for even the beefiest video cards. Everything comes with a widget now, and even the console eats 30 megs of ram. configuring gnome or kde with simple text files is now totally impossible, because modern developers have created a MacOS UI managed by a Windows XP system of registry values and control touples. What we gained from this is a frustrating ecosystem of security-questionable user switching and a network stack thats controlled by the user with the mouse. Perfect if you're about to load up team fortress, but crazier than a shithouse rat if you need to, say, run a production firewall.
that having been said ive had enough and you should too. Come join Gentoo, or Arch, or any BSD with more sanity than Unity (Ubuntu.) Gain back that big goose egg we all remember as freedom 0: to run the application the way you want. And on behalf of the POSIX community, the Unix geezers and the hackers, get these goddamned kids off my lawn.
Good people go to bed earlier.
With developer choice, comes complexity. End of story.
You want everything to be the same, write in Python, where they enforce a coding style.
If you want to do things the best way for you, you'll have to support a variety of duplicating libraries and APIs. The thing is, one once library becomes a clear winner over all the others, development often stops on the others, which means everyone stops using those libraries.
So while yes, things may be complex now, but only because of the rapid amount of development and progress. As things calm down, the lesser ones will be depreciated. Give it time. You can't control an entire community spanning the globe as if it had a single leader, as if we could predict the right answer 30 years from now. Moreover, we shouldn't. To say things should be less complex means people should be restricted from doing what they think is best. And that mentality is the opposite of what attracts people to Linux.
The problem is modern operating systems have taken on too much of the operating environment role leading to excessive complexity. Our modern opening systems are hypervisors like like xen or vmware. The OS has become a mess of other things that aren't related to security and suability of a system. The Operating Environment is where the rapid changes and R&D should be so features can progress and mistakes can be quickly removed.
I disagree with your analogy in that when the Internet goes down, Ham radio keeps on working,.
"Do the Right Thing. It will gratify some people and astound the rest." - Mark Twain
Replacing 100 shell scripts with a single binary is a simplification.
Probably SELinux's fault.
Reminds me of this e-mail from Bill Gates http://blog.seattlepi.com/micr...
(talking about the "add/remove programs" screen) "Someone decided to trash the one part of Windows that was usable? The file system is no longer usable. The registry is not usable. This program listing was one sane place but now it is all crapped up."
At least we still have a filesystem
--
Stay tuned for some shock and awe coming right up after this messages!
It's been too complex for years.
It's not a friendly OS for the inexperienced. Considering there are so many things that requires you to even use the terminal, Linux will never be a mainstream OS. If you can't do everything with a few clicks on the mouse, the mass will never adopt Linux.
Is that another "things are not like I wanted them to be" posts? Linux is a community of vastly different groups with lots of different interests, with over 100,000 software packages, each scratching an itch. If you want a complete "experience" then MacOSX or even Windows is maybe better for you, i.e. a computer system where each component is designed from only one vendor. As a newbie Linux user myself, I'm pretty amazed that all those thousands of different software packages, all from different developers, can even work together and that even better than, for example, on Windows. On Windows I remember that every software app brings a whole SDK so it can run, and there is zero reusing of software packages (except for the Windows SDK).
http://www.mueller-public.de - My site http://www.anr-institute.com/ - Advanced Natural Research Institute
Wut? More complex? I'd think that some of the distros make using Linux easier than ever. For anyone else, there are plenty of distros out there that would suit your needs.
I'd rather have a sane, conservatively developed high-quality system. Linux has always been drek code-wise, but at least it was fixing its bugs faster than becoming a ball of slime. Now, it's all just degraded user experience.
-- Eugen* Leitl leitl ICBM: 48.07100, 11.36820 http://molecu
"The defining component of Linux is the Linux kernel[...]" - https://en.wikipedia.org/wiki/Linux
I've always heard that Linux is the kernel and I guess it's true.
When we start to discuss Slackware (BTW it's my favorite), OpenSuse, Ubuntu, Fedora or whatever flavor we're adding another layer on top of Linux. That extra layer can be viewed as good one or as bad one and it all depends on what type of usage the user gives to the machine/OS.
I manage my own servers (Slackware of course =D) and I don't need the GUI. Console access is more than enough for managing a server. In fact Windows seems to agree with this since, well... it launched Windows Power Shell, maybe some tasks do not need GUI. On the other hand if I need to use some hardware/software most likely I'll end up on Windows but that's a different issue (mostly because of market structure. If Linux usage increases than support from companies will show up)
So, is modern Linux becoming too complex? No, I don't think so.
The extra layer I mention is what makes it complex and adding stuff increases the potential for entropy.
Anyway it's just my two cents.
regards
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
horizontal nor vertical I bet
That's the name of the game. And FUCK systemd.
FTA, "I havenÃ(TM)t had the time to switch my workstation, and frankly I am concerned about it."
The whole "you have the source so you can fix anything you want is great", until your busy with things like, you know, actually making a living. Then it becomes a serious pain in the ass.
As a sysadmin I find I just have to dig a bit to find what to remove. All the gui config tools. All the tools that are meant to help people who don't really know anything about Linux or UNIX. A lot of the stuff that tries to "help." I agree that recent tools tend to be neat but underdocumented, fragile, and destructive.
I understand the security rationale for making logs readable only by root but it makes working on servers adminstered by random offshore people ($5/hour, no IT abilities whatsoever) quite difficult (hey, this server is networked half-duplex and the admin doesn't know what that means. Hmm, the time is off but the admin doesn't know what ntpd is. Why is the sysadmin rebooting that Linux server repeatedly to try to solve a problem that does not require rebooting?) as you need to analyze the problem, not describe the symptoms, and it's harder without read access to the logs. The Linux assumption that someone with root should have a clue is long gone at large companies; the very first thing to go to the least knowledgeable is the root account, and it is widely shared but only to others who don't know the O/S. Note that the logs are readable on most other UNIX flavours (mostly dying flavours at this point). I'd suggest fixing the security problems with the logs or confining them to specific restricted files instead of just hiding all the logs from users. Not every Linux box is used by one guy in his basement.
RHEL no longer has a whole lot of competition in the data centre (real competition, that is, stuff that works and has a reasonable vendor). I don't really expect it to improve at this point. No pressure. Should be OK as long as it doesn't degrade too much more.
You got me into this! You were the ideologue! I'm only a poor assassin! - Twenty evocations, Bruce Sterling
I've made several attempts to use Linux for the desktop... all have failed. Worse than being too complex, after 20 years of development, it fails the ‘just work’ test. I’m a techie by trade, a programmer longer than I want to think about. I do network support, server support and mange a team. I have kids, a wife, home interests.. I don’t have the time or patience to futz with computer problems when an install or an app refuses to function. When I was younger, I enjoyed the hack to make it work. That was 20 years ago. Now it annoys me. I just want it to work. After 20 years of Linux development there needs to be some level of maturity, stability, uniformity.. It needs to just work without having to hack it for the casual user to accept it. unfortunately, Linux doesn't pass that bar. I’m done with Linux at home. It’s nothing more than a toy for hackers who want to tweak. For people who just want their stuff to work, Linux is not the answer..
No, it became too complex years ago. And it just keeps getting worse!
.. don't fix it. But that is unfortunately not the mission principle of some of the Linux developers. Nowadays, people are driven to abstract and to objectifiy everything. If it doesn't have a lot of 'this' in it, it's not good. The early Linux system was built by people with a lot of C and Assembler experience. But Java changed all this as it became the language of choice in a lot of schools and colleges. And it ripples through all areas of software engineering. They tell me it's easier, more error resistant and more portable - but they need more than half the time to tinker with the IDE because they can't keep track without it. And guess what: It still dumps, it still has (security) flaws and it still breaks. Android development is a nightmare, Javascript is morphing into REACT and will be completely abstracted and Linux, well, sooner or later we will end up with $(this) at the prompt. After all, home is not really an object now, is it?
I had a "get off my lawn" moment. I thought Linux was getting more fragile, then I thought back to some of the problems I had in the late '90s and changed my mind. There is more fluff, but once the fluff is removed it's more reliable.
You got me into this! You were the ideologue! I'm only a poor assassin! - Twenty evocations, Bruce Sterling
No one so far has mentioned minix, which I think might be a bit of a solution for these issues.
Wifi support in Linux is a mess.
You mean that modern Linux, deployed at enterprise scale, requires a lot of specialized knowledge and is complex? Just like Windows? Funny thing, that.
It's easy to manage a system that is on a single machine, managed and operated by a single person. A few configuration files and scripts, and it's good to go, whether it's DOS, Windows 3.1, or Linux.
The lack of symplicity I would say started with selinux which I find to this day to be a pain in the ass with bugs and poor logging. I see we are going down the same path with systemd and this continued BS change for the sake of change. Linux had the chance to rival Microsoft on the desktop and it was absolutely bizarre distros went down the same road as MS with making the desktop like the mobile UI. Maybe I am just a conspiracy theorist but from a distance it seems this is all intentional to prevent Linux as a desktop rival. So it really makes me wonder about the decisions made with selinux and systemd.
Mange is a class of skin diseases caused by parasitic mites.
And proof of a dedicated programmer.
Priest: "Universe from nothing, no laws of physics, sped up time"+ huge discrepancies. Creationism? No. Big Bang Theory
Not really trying to split hairs, but the issue is certain distributions of Linux, not Linux itself (the kernel). Distributions like Slackware are quite easy to understand, but others not so much.
Still running the same distro here, from 1999 (and am mercifully free of systemd, pulseaudio, etc). All upgrades have been done by downloading and compiling from source, with the exception of a small number of large programs/drivers (specifically Firefox, Palemoon, OpenOffice, Java, nvidia driver). This 'in-house' distro gets copied onto all new computers, so there's about 50 or 60 running it (including a few laptops). So what doesn't work?
/dev (easier than running udevd), but that's about it. Written a couple of init scripts, fixed a few others (all very simple, maybe a day in total).
In short, not a lot. Occasionally have to 'chmod a+rw' something in
The best bit is, if anything breaks we can fix it - easily.
As to why modern distro's are so complex: "follow the money". If everything was so simple that no-one needed support, well, there goes the business model of all the major distros. So it's not unexpected they put developers in change who like 'elegant' (read complex, bloated, impenetrable and obscure) solutions - it means that end-users pretty much have to fork out for a support contract (or spend a *lot of time* on inhouse admin).
All your ghosts are just false positives.
From what I have seen, most of the improvements have increased control and flexibility. Its odd to argue against a system that allows you the flexibility to set a program to run when any other system event is triggered, such as the NIC coming online.
The fact is, the ones who don't like systemd or polkit tend to be a certain percentage of the system administrator types (not all of them). Ironically, these who do most of the complaining have the skills to be able to configure the system how they want. Don't like polkit or systemd? Just configure your system not to use it. No one is stopping you. You can replace systemd with your own init system if you want. Use an older WM like fvwm and you wont have any problem, which you probably prefer anyway. There are many other WMs that dont have any dependancy on systemd, as well. I do agree that a program with a systemd dependancy should not refuse to run at all if systemd is not there, instead, only the systemd dependant features of it would be unavailable. if Gnome does not work this way, that is a valid point., Of course it is okay for gnome to hook systemd features, but if systemd is not there, the basic functionality should still work, just the systemd dependant features would be unavailable.
If systemd and polkit are not well documented and not configurable enough, I think that those are valuable points, these things should make our control and monitoring of the system easier, they should add more options and more logging facilities for expert users to keep an eye on things.
I seriously question the mentality of those who find the general concept of polkit or systemd unacceptable. For instance, it sort of makes sense that there ought to be some sort of an framework for IPC authorization, rather than a million incompatable systems, its better to have a well audited standard facility for that. It can also be handy to have a facility so that I can set up a program to be run when the IP address is asigned or just after another process starts or any other system event. To argue against having this functionality is just bizarre in my opinion and seems to be that these so called "experts" who argue against them want us to have less control over the system.
The basic system of Unix permissions while being suitable in many cases, can be more difficult to manage in others. What if i want to write some rules to say that a particular user should not have access to certain directories, or to say they should only have access to certain directories. Some sort of rule based system where you can define a set of rules that apply to that user can be better in some cases than the per file permissions.What if I want to apply such a set of rules to a single process when he process is run? The same thing goes. The basic system of Unix permissions is good for many things and a good foundation but that doesnt mean its the end all and be all of access control.
Distributions, etc. will continue to change to suit their needs. Linux itself is probably not quite that extensive yet, as evident by the multitude of complains about the non-working drivers.
Stop using crap distros with do-everything-in-one apps, sym-link-hells and all!!!
Every single complaint is covered by Slackware's simplicity.
Your thin skin doesn't make me a troll
I thought Linux uses a graphical user interface like Gnome and KDE? Can you not double-click icons to open hard drives or use the control panel? Is super user still available? Am I missing something? The article is too short for me to understand the issue the original poster is having. Sorry.
I also come from a Windows background and looking at Linux from the perspective of someone with pure Windows experience is daunting. Lot's of tutorials make assumptions without noting prerequisites. For example, you might not know how to start and stop services, how to elevate privileges, or where to find important files in the folder structure. I'm hardly an expert but I have gotten to where I work on both platforms and I prefer Linux as my primary work station. My advice would be to pick one narrow challenge at a time. For example, you might set out to setup a server with MySQL. Then try setting up an FTP file server. After you tackle a few of these projects you'll start to get some grounding in the system. The best thing about Linux is that there are lots of people out there who are willing to help.
I have to acknowledge that there are some tasks I've just not succeeeded at. I've been (in my spare time) trying to figure out how to setup a Samba domain controller and haven't got that working. The problem isn't that I don't know enough about Linux, but rather that I don't have a background in networking.
I do not block ads. I do block third party scripts.
"Increased usability means more scripts and automation,..."
No, this is not a simple fact. "Increased usability" is a moving target, it means vastly different things to different people. Each use-case will have a different definition of usability. It is highly suspect of you to try to make such an over simplification. You seem to have no interest in recognizing the computers and software are multi-functional tools with a myriad of purposes, and you seem to have disdain for those that do.
Dude, that boat sailed looong ago.
I used to be able to say Linux was clean, logical, well put-together, and organized.
You would only say that because you were used to the previous organization. It has always been a mess of "catering to old UNIX paradigms" while also "trying to squeeze in the latest new thing." Old UNIX guys have always complained whenever the GNU tools had a different behavior from what they were used to, including changes that you take for granted. Bash was once new, and some people still don't like it.
Do you remember the first time you saw a UNIX filesystem? Think back. You have directories like etc, usr, and var. "usr" doesn't really contain user information. "etc" doesn't include miscellaneous files. "var"? WTF is "var"?
None of that shit ever made sense. It's what you were used to. If we set out today to make a sensible, orderly, logical, clean system, it would not look like modern Linux, and it would not look like old Linux.
Thanks to systemd, 2016 will finally be the Year of the Plan9 Desktop!
Your desire is reflected in this article:
http://queue.acm.org/detail.cf...
brandelf -t FreeBSD
This may be a reflection of the Linux designer's philosphy; to see it as "Evolution", not "Intelligent Design". Basically the design is reactive to stimulus, with the hope that useless or harmful features are pruned out with a survival of the fittest. Perhaps we need more predators to weed out the sickly gazelles.
- 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.
The behaviour of "Linux" (all the distributions and kernels) as a whole is exactly the same behaviour you see in companies with poor management. Everyone is working on stuff, and maybe even working hard, but all those things don't add up to the whole. There's no 1 person over-seeing it all to ensure everyone is working smart, and in the same direction.
To me, this is what is happening with Linux. Everyone has ideas, and some of those ideas are great, but when everyone can fork and create and merge without an overall management process, you end up with a bit of a mess and mass confusion for those on the "outside."
This is both the advantage (choice) and disadvantage (lack of alignment) with Linux. Should I use Gnome or KDE or Unity? Do I even know what those are as a end-user? Should I?
What I get OSX, I know what I get. When I get Windows, it's the same. Everything (mostly) from the previous version will work with this version, the interface isn't some massive surprise, etc (which is partially why Windows 8 was such a fiasco; things WEREN'T compatible and the UI was totally different).
At the end of the day, what needs to happen is exactly what most Linux devs hate the most: a large corporation with 1 vision needs to come in and create a clean, uniform experience that allows consistency and compatibility for years/decades, and reduces "choice" to a degree in order to provide consistency.
To some degree, you can argue RedHat did this a bit, especially with packages, but everyone hates on them too now..
It isn't just Linux; it's the nature of modern systems to become "too complex". Back in the days of my youth, it was possible for one person to grok an entire operating system, but it simply isn't possible anymore, unless it's a tightly-focused and built-to-purpose system.
http://alternatives.rzero.com/
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.
@Anonymous Coward: 'You can always tell when lines like "it used to be", "there was a time", and "I remember when" are used. Things change, and when software changes it typically gets more complex. Just take REO Speedwagon's advice and roll with the changes!'
No, it sounds like a Linux Developer has some very valid points to make:
John Goerzen: I believe that Modern Linux Becoming Too Complex?
Anonymous: Of course you would say because you're getting too old.
John Goerzen: How about addressing the arguments I gave to support my position?
Anonymous: Doesn't count, you're too old so anything you can say on Linux complexity is therefore invalidated.
I used to be able to create a bootable drive, configure it the way I wanted, then clone it to allow redundant hardware; only the IP and host name varied between machines. Several machines were built with two boot drives, imaged after the configuration was complete, then the "spare" powered down.
That stopped working a few years ago. Distributions now made partitions that included the serial numbers of the disks in their GUIDs. If the MAC address on net card didn't match, a "new interface!" was discovered, so routing tables needed to change. Now, it takes less time to build the install from scratch than to patch the mirror image to replace a failed boot drive.
The poster makes a good point against systemd's policy against logging and gives a specific example, but was quickly hammered down and marked a troll. I've had that same problem and the more common:
old lock file: /var/lib/mongo/mongod.lock. probably means unclean shutdown
systemd doesn't log either of those problems. That makes it impossible for a newcomer to troubleshoot why a service isn't starting. I know from experience that I need to check both issues, but systemd prevents me from seeing MongoDB's stderr output that specifies the exact problem. systemd is a real barrier for inexperienced or junior sysadmins that can't troubleshoot blind.
The systemd fanbois are disgusting. When people bring-up legitimate problems, they go on the attack. If they spent as much time fixing their problems as they did attacking their users, we probably wouldn't have anything to complain about. Stop attacking your users.
Why in the hell was this post marked a troll? I wasted three weeks on and off trying to get fail2ban to work on Red Hat 7 under systemd, and it does not log any of the reasons why it fails to start. After realizing I should try to start fail2ban by hand rather than by systemctl, it took me less than twenty minutes to get it running because I could see the error messages. It was because I forgot to install iptables (stupid me!) and because SELinux was preventing it from accessing /run/log/journal. systemd's policy of hiding the error messages you need to see is ridiculous. There is no justification possible for such a stupid decision. It seems almost like it was done maliciously.
PS: Why is it called systemd, but the systemd people insulted and attacked people that wanted the command line program to be named systemd? Instead, they name it something unrelated, systemctl. How in the hell is a new user supposed to make that leap of nonlogic? Why not use sensible names?
On my desktop I run debian testing. and I converted to systemd, with out knowing it, just by doing periodic updates.
Systemd is still free software. All the source is published, and it can be forked at any time. We need this functionality. It is a good thing that it has been redesigned to work smoothly together.
If the complainers really wanted to help, they could do a security audit instead of bellyaching!
If pottering becomes unbearable, the project can be forked. A lot of powerful forces need this project to work, so I suspect it will.
Its just a lot of whining and bellyaching from people who don't want to do anything.
Linux is certainly getting more complex but at the same time, it has managed the complexity of modern computers easily. In fact, each generation of Linux has been a pleasure to use and to explore. I've been a user of Linux since 0.94 (pre-slackware). Linux is a Hero for keeping the Linux source clean, simple and straight forward and in plain C. It's a work of art. An off the wall example is the Comedi interface is beautiful at taking something as complex as controls and measurements in a *Nix* environment and bringing them into a standardized API to program against.
It's what I see periphery to Kernel where simple is being complexified with hidden abstractions. On thread about really stated that issue well. Systemd is the antithesis to efforts at bring an aesthetic quality to the various distributions. Systemd is a program that seems to be sketched out in some computer science class without thought about how it would be utilized in the real world. It should have been a failed experiment except that some measure of politicking brought this abomination of complexity into a full blown standard that all distributions will be forced to adopt. Those that don't adopt and submit will be put into the oblivion of non-existence through software creep and raging dependencies.
Systemd looks to me to be the first piece of software for Linux that looks worst than it predecessors in all respects. In terms of pure chess-board complexity, Systemd takes the prize!
I do not like upstart or any of the other new sysv init replacements. They add levels of complexity and don't seem to add any functionality that a good shell scripter can't solve with a homebrewed script, for the one percent of boxes that need something custom. NetworkManager took years to "just work" right, especially for wireless. I -still- wind up turning off selinux for some servers due to the hassle.
-- I am. Therefore, I think!
98% of the posts here:
"It's so HAAAAAARD."
"I have to relearn things."
"That mean guy Lennart, he's so pushy and ugly too! He kicked over my lego tower and I don't like him."
this is not a typo it's the from german hard translated headliner of the Sep/2014 monthly of the german Chip Linux magazine.
it also stated
- adjust unity
- remove crap
- increase speed
So, yes, most distros are either a heavy crap loaded like a lenovo-compaq-hp-acer craptop, or are uncomfortable as hell-
I stopped being aggrovated, I just started to use FreeBSD some 15 yrs. ago. when Mandrake turned bad and gotten fuzzier each release.
You're right, but I think Red Hat sales are going down because
1) they don't listen to customers and never have, and
2) Erik Troan, who built what customers wanted without ever actually listening to them, has left.
Red Hat has evolved itself into something no specific customer really wants more than they want a competing product.
Dbus, HAL, systemd, all this half-implemented GUI stuff... it's too unpolished and counter-intuitive for the clueless, and too complex for the clueful, basically because they keep trying to reach for the former market at the expense of the latter.
The clueless are happier with a mac lappie, and now that MS-Windows has Powershell and headless installs it's actually more targeted at the clueful than any Red Hat product is.
"We are confronted with insurmountable opportunities." -- Walt Kelly, "Pogo"
The thing with Pulse is... while it probably *did* turn off a lot of people in the desktop arena, it could in some ways be worked around (usually by killing it), and it didn't much affect the server arena where Linux tends to be more popular.
Now... we have RHEL7 etc foisting it upon admins, and when it breaks it breaks badly and is very hard to diagnose.
And yes, I personally have experience with this - albeit not on a RHEL machine - after an upgrade made it unbootable for an older kernel which I still had some need for.
I've tended to see this as
usr - Generally binaries and libraries, stuff that doesn't change much
var - Transient/variable files, stuff that changes fairly frequently, cache, package lists, mail messages, logs (/var/log) etc
etc - Configuration files, initialization scripts
This is somewhat variable with the use of /opt or /usr/local/xxx but for most part this has been fairly consistent across most *nix systems I've used.
1. Systemd
2. Polkit
3. Pulseaudio
Or just Poettering. That'll do.
Punishing this guy by hammering his post down to a -1 and marking him as a troll is ridiculous. He posted a problem and documented the problem well. As Linus Torvalds has pointed out several times, the systemd guys ignore bug reports and user requirements. They just don't give a damn. I've had the same problem with MongoDB package from the official 10gen repository so I know he is right about this systemd problem. Starting MongoDB outputs the error when you start it by hand and systemd hides it. It hides the information we need to manager our servers.
Open Sores developers realize that to actually give people what they want, things get complex. News at 11.
I agree with John, Linux is not as fun to use anymore. And I'm not that old into Linux.
I see that Linux is now mature. Why? Because there are people who complain that "It was simpler my day. We didn't have all those extra features. If you wanted to use Linux, you had to KNOW Linux... and it helped if you knew Linus, too!"
> Where did you get the idea that this is "policy"?
Because complaints to the mailing list are ignored and the posters insulted. Here's one example I saved that I just ran on an updated CentOS to confirm that it is still a problem. This shows the systemd guys prevent the troubleshooting sysadmins need to manage our systems. The test:
# cat
CentOS Linux release 7.0.1406 (Core)
# cat /etc/systemd/system/broken_systemd.service
[Unit]
Description=Broken systemd example
After=network.target
[Service]
User=root
Group=root
ExecStart=/root/broken_systemd.sh
[Install]
WantedBy=multi-user.target
EOF
# cat /root/broken_systemd.sh
#!/bin/bash
echo "Example systemd service"
echo "Error that should not be thrown away" >&2
exit 1
EOF
# chmod +x /root/broken_systemd.sh
# systemctl start broken_systemd ; echo $?
0
# journalctl -u broken_systemd
Feb 12 17:59:32 redhat7test systemd[1]: Started Broken systemd example.
Feb 12 17:59:32 redhat7test systemd[1]: broken_systemd.service: main process exited, code=exited, status=1/FAILURE
Feb 12 17:59:32 redhat7test systemd[1]: Unit broken_systemd.service entered failed state.
It shows that the kids running systemd don't get the concepts of stderr or exit statuses.
The base OS install of many distributions are pretty complex. For those wanting a 'really simple' OS, you might need to roll your own rather than depending on distributions that include many convenience tools like networking, GUI support, browsers, office applications, and a full range of utilities.
My first unix like OS didn't have networking (UUCP, not ethernet), no gui, X was an add-on package. Office products didn't exist. But it was small enough to boot and run from a single 1.44M diskette. Other than floppy, disk support was added on. This was before USB or even PCI. ... Small, easy, simple, and still took 24 hours to compile from source on my 16mhz 386 with no co-processor. So some things are not so easy even then to support more memory, special devices, large disks, etc.
One reason I went to Ubuntu was 'easy device support' where it did recognize all my devices and I didn't have to download everything for each device (driver for devices, graphic display, etc). Ubuntu has become a lot 'bigger' over the years so I moved to other variations that kept the core of what I wanted and not some bloat I didn't use or like.
Code bloat seems to be a real hazard, once we add all the features we NEED, then we get creaping featurism by people adding things on various WANT lists.
I wish I had you on my QA team. On a CentOS 7 system updated just this morning that admittedly also has a ton of extra packages from EPEL that could theoretically cause this problem, I was able to reproduce this serious systemd design problem.
I've seen this problem before with OpenVPN. I had a bad argument in the /etc/systemd/system/multi-user.target.wants/openvpn@openvpn.service file that I wrote:
ExecStart=/usr/sbin/openvpn -daemon --writepid /var/run/openvpn/%i.pid --cd /etc/openvpn/ --config %i.conf
It was a missing minus in front of daemon. There should be two. OpenVPN outputs the error to stderr. That error message was not saved in the journal. It took me half a day to find the problem because systemd didn't log the error message. This shows a fundamental lack of understanding of the requirements of what an init or service start/stop system needs.
Has everyone forgotten about Occam's razor. A lot of simple is far better than a few complex.
Moderating a guy downward all of the way to -1 that explained a bug and is offering to try to fix it is disgusting. Attacking the people that are trying to help will destroy any open source project. This proves that when Linus said systemd is "much too cavalier about bugs," that he is correct. Why attack the messenger?
Lennart Poettering works for Red Hat. Red Hat should have the best systemd implementation, but we have had several problems, like the not logging stderr one mentioned above, that have stumped their support. The support that we pay a lot of money per year for. A year ago, my CEO approved my Red Hat budget without asking a single question. This year, he is asking a lot of questions, and most of them are about systemd-related problems that have been escalated all of the way to him. systemd is a major problem for Red Hat.
NO as per http://en.wikipedia.org/wiki/B... and https://en.wikipedia.org/wiki/...
Casteism
As long as your card's chipset is supported, Linux seems to play pretty effortlessly with wifi. I had to relearn my wifi setup recently as I developed/started noticing a memory leak in madwifi and had to switch to builtin atheros and hostapd (grumble-grumble). However, it was MUCH simpler than expected, simpler than the old madwifi setup, and worked more-or-less out of the box.
This was done on a headless router, so your GUI of choice may do things differently. The underlying aspects of Linux and wifi seem much improved over past years, in my experience.
(Now, if you just grabbed a card off of a Best Buy shelf and ran into problems with it, that's basically your fault for tripping over the first hurdle.)
(Reposted on request, with minor edit...)
What I see going on with systemd is this:
- No technical merits of systemd that are important or critical, just some convenience issues
- Systemd is in hurried development, a stable feature set is nowhere in sight
- The development leads are known incompetents with inflated egos and no communication skills
- There are a number of design decisions that are very, very bad for security and stability
At the same time I see:
- Systemd is pushed strongly with emotional (not factual) arguments
This is a coordinated and targeted propaganda campaign. A campaign focused on technical
merits is not even attempted seriously.
- Systemd opponents are ridiculed, insulted and their arguments are not taken seriously
- Systemd is getting very hard to avoid
I can only deduce that there _must_ be one of or a combination of the following going on:
- Linux was getting too hard to hack and the intelligence community is pushing for systemd to fix that
- Linux did not generate enough support revenue Red Hat and this is intended to fix that
- Red Hat wants total control over Linux and systemd is their attempt to establish that
So if it walks like a duck, quacks like a duck, the most probable explanation is that it is a duck and hence I conclude that something nefarious is going on and the last three items are the most likely candidates IMO. I cannot believe that two known incompetent hacks with bad personalities can screw over a whole large tech-savvy community all by themselves. They must have significant, coordinated help, with significant propaganda and manipulation experience. Whether it is military PsyOps or just commercial PR, the effects are the same. And they are massively negative and destructive for Linux and its community if not repelled decisively.
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
Linus himself says that Linux is too complex. And bloated. I think the word we need to use is "bloated", not complex:
http://www.theregister.co.uk/2009/09/22/linus_torvalds_linux_bloated_huge/
"...Citing an internal Intel study...Linux performance had... dropped about 12 per cent over the last ten releases. "Is this a problem?" he asked.
"We're getting bloated and huge. Yes, it's a problem," said Torvalds.
Asked what the community is doing to solve this, he balked. "Uh, I'd love to say we have a plan," Torvalds replied to applause and chuckles from the audience. "I mean, sometimes it's a bit sad that we are definitely not the streamlined, small, hyper-efficient kernel that I envisioned 15 years ago...The kernel is huge and bloated, and our icache footprint is scary. I mean, there is no question about that. And whenever we add a new feature, it only gets worse...."
Linus says:
http://www.tomshardware.com/news/Linux-Linus-Torvalds-kernel-too-complex-code,14495.html#comments
"...Torvalds recently stated that Linux has become "too complex" and he was concerned that developers would not be able to find their way through the software anymore. He complained that even subsystems have become very complex and he told the publication that he is "afraid of the day" when there will be an error that "cannot be evaluated anymore...."
So there seems to be some merit for to this article, that error messages are not clear, etc. If you can not evaluate an error anymore, how can you debug Linux? Linus Torvalds needs to do something! Linux is too messy right now, with five different buggy sound APIs, etc etc. I think Linux should have a release with only bug fixes and refactoring, cleaning up the >15 million lines of code. The entire Windows NT 4.0 including graphics, kernel, etc etc is 4 million LoC or so. Linux is only a kernel, nothing more, it should be slim. Not huge. Factor in gnome and graphics, systemd, etc - and you get far much more than 15 M LoC. How much more? Maybe... 50 M LoC?
Windows is getting slimmer (WinMin kernel was the first step in reducing kernel size) and Win10 is smaller than for instance, Vista. Linux is growing, not shrinking.
Linux is more fragmented, but that is because of much higher development activity taking place these days. And this is a good thing, because there are more choices and alternatives, more than ever. However, this also adds confusion to newcomers so we must focus on educating if at all possible. Stick with mainstream distributions, and with the defaults to start with before becoming more familiar with the OS. Is Linux too complex? Only if we install everything on our systems. Start with the minimal installation and go from there. That's how I handle a lot of my server installations, and even using the latest CentOS/RHEL, starting minimal allows the servers to run VERY efficiently and get very high response times. GNU/Linux is unique and allows us to install minimal components and tailor the install to the system. Windows has stripped down versions as well, but is still very bloated in comparison.
I hadn't touched the BSDs (with the exception of Mac) in nearly a decade but recently had reason to dig into FreeBSD and OpenBSD. I installed both, played around and dug into some work related to my goals. This will sound funny, but I almost wept. They were both so straight forward and HELPFUL!! The errors suggested paths for getting it right the next time. The documentation was up to date and made perfect sense. Everything was where and what the documentation said it would be and where I intuitively wanted to look for it. The config files had nice big comments and helpful examples you could uncomment and use. There was just no noise.
I ended up choosing FreeBSD for my project for convenience sake. Some packages I needed were being tested on FreeBSD. But OpenBSD is BEAUTIFUL. If security is your top concerns it's worth ANY hassle to run it.
I've administered Linux on servers and on desktops/laptops since 1998. I ran RedHat, Fedora and then Ubuntu on my laptop from 2000 till 2011 when I got a started using Mac a lot more.
I started out with Linux a little late. In 1996 I bought that Gray Box with the Red Hat on it when it started selling at Fry's. That box came with a book. I was a Windows admin at the time and the mix of dlls, config files and registry entries was just getting annoying. I was playing the the pre-release of NT 4.0 and worrying about all the shit they moved out of userland and into the kernel. I remember going through the Red Hat book that came with that box, reading man pages and falling in love. It made sense. I got excited about knowing where to look and having pretty much ONE set of things to know for all the configuration files and shell work. I felt like if I did my homework and took an action, it wouldn't betray me.
FreeBSD made me feel that way again but MORE. It's an operating system you can master with the necessary services to do anything.
As the opportunities arise I'll be switching to one of the BSDs. I'm already running some of my cloud services on FreeBSD 10.1. There are more services in the cloud for Linux but it's worth the extra bits of work to me. And I'm constantly pleasantly surprised that the work I prepare for has already been done somewhere or is easier than I thought it would be.
If you feel like Linux is getting too complex. There's and alternative *NIX out there worth a good hard look.
Every rule has more than one consequence.
OpenBSD is the new Linux. Has all those characteristics you say you miss about Linux Simple, clean, readable, sweet! The only drawback is the limited software one can run on it. (e.g. I can't get Julialang to run on it, nor LightTable)
"Things used to work some way that I was familiar with. I liked it. Now things are different. I don't like it so I like to pretend that they are worse now, because the alternative is to face my (admitely understandable) failure to keep up with the rate of changes happening"
Yeah, there is a word for that grandpa. You are old. It's fine, just accept it, Afterwards things get awesome again.
PS: captcha : "decadent" haha