If you are reading this post you’re very much likely not a fan of systemd already. So we won’t preach on why systemd is bad, but today we’ll focus more on what are the alternatives out there. Our approach is obviously not for settling for less but for changing things for the better. We have started the world after systemd project some time ago and the search isn’t over.
I’ll be honest and say that I completely missed the systemd controversy back when it happened, and while I’ve tried reading up on the criticism of systemd, I clearly lack the technical acumen to say anything meaningful about it either way. But hey, for those of you out there who don’t like systemd – this one’s for you.
Coming from Slackware (over 20 years ago now), and having learned to do things the “one true Unix way”, systemd has thrown me off balance. It broke my firewall knowledge, kept reassigning my Ethernet ids, and when it broke my previous experience with Linux did not help me much (even /var/log/ was not properly populated).
Simple things like running a separate X server on a secondary graphics cards became insanely difficult thanks to new definitions of seats, login sessions, and systemd’s insistence on overwriting X configs. In fact to day I have still yet to master that.
Nevertheless, It took me a while, however I started “not disliking” systemd. I understand where the need for a change came (lots of manually curated init scripts were not easy to automate). It allowed scaling up in the cloud, and easy deployments for containers. It also automated desktop configuration (hence my issue with custom configs).
I am now comfortable with tolerating systemd. Who knows, one day I might start liking it, but that might take a while.
sukru,
I’m still not liking some of the design choices to be honest. I never liked Sys-V init scripts, however I think too many people made the mistake of treating this as a one dimensional topic (ie sys-v init versus system-d), when in fact there are many paths. Is system-d better than sys-v init? Well, yes, but IMHO systemd unnecessarily compromises unix tradition of employing simple “KISS” tools that work together naturally. Systemd is a monolithic hodge-podge that fails to live up to the unix paradigm and is a missed opportunity to come up with a solution of pieces that fit together like a clever puzzle.
Anyways, what’s done is done and there’s no point in debating it again, those of us hoping for something better already lost the big distros.
But that is the thing… Systemd isn’t monolithic, you can migrate to parts of it like you want. It is extremely modular.
Carewolf,
I disagree, it adds too many dependencies that have little to do with init system and steamrolled right over my preferred configuration and created a lot of friction. If you try to replacing system-d’s so called “modular” components, it’s a yarn ball waiting to unravel. At least in debian, systemd became a monolithic system rather than a system of optional components. We’ve lost the clean separation that other init systems have. Many users won’t have a reason to touch these components, and that’s fine for them, but swapping components was more practical under less invasive init systems. I’m making do with the changes, but the linux community could have done a better job. IMHO a big problem is having developers in high places like lennart pottering who don’t give a crap about working with others to engineer something better. Alas, it is what it is.
Unluckily, this.
Many years ago, and that time with pulseaudio, I remember when a guy from BSD camp complained to him about some specific difficult to work with PA because Lennard, instead of learn about how things were done just followed his “instincts” and introduced something that made PA really hard to integrate on BSDs. His answer: “I didn’t know”. Had him checked previous work on sound systems on Unix camp he would know. For sure, he is an incredible talented developer, but his attitude has cost many hours of headache for many of us.
It seems to me that if talented developers, like him, could put a little more effort on learn a bit deeper and ask for opinions prior scratching their itches , Linux and BSDs would be miles ahead of the point we are in now.
I don’t want to sound ungrateful, I appreciate the work him and many others have done, systemd is miles ahead of SysV init but, much more likely than not, a bit of more dialogue and research would save Linux world from many subsystem rewrites and of design flaws.
s/Lennard/Lennart/
“kept reassigning my Ethernet ids” That’s basically default behavior, on most distros these days even without systemd… as it is a feature not a bug. Has to do with ensuring that Linux actually does what you intend explicitly…. while if you moved hardware around sda1 might become sdb1 etc…. or wlan0 might become wlan2 etc if you plugged int a USB wifi adapter.
I usually turn it off myself as I find it annoying also, I’d rather it always used the shorthand names but used to UUIDs to ensure that even if the hardware moved around that it kept the correct shorthand name.
It’s been almost a decade and the FUD still lives. None of the things you bring has anything to do with systemd. Systemd doesn’t handle firewall. NICs names are persistent and predictable now (unless you disable it and revert to previous random behaviour). It doesn’t populate /var/log (that’s a job of syslog daemon) except for optional /var/log/journal.
systemd does not overwrite nor care about X configs. What you describe sound like shitty job done by distribution and blaming systemd sounds like a distraction.
My only real gripes with systemd are the way it was forced into Debian[1], the fact that it’s needlessly complicated and buggy compared to smaller init systems like runit, and its authors follow a “move fast and break things” philosophy with such a critical project. Anyone who uses systemd on a production server is just inviting trouble and in my opinion has no business anywhere near a server room.
My current favorite distro is Void Linux which uses runit and is a breeze to manage. I’m actually enjoying it more than Slackware, my favorite Linux distro since 1999. I’ve also been looking into BSD again; OpenBSD is still too slow for daily desktop use but FreeBSD has gotten better. There’s also my old friend NetBSD; the first time I used it was on my Sega Dreamcast back in the early 2000s.
Maybe one day systemd will get past its current pre-alpha stage and become ready for production use, but I feel it’s a long ways off.
[1] https://www.zdnet.com/article/debian-inches-towards-new-init-system-decision-amid-fallout/ (there was even a rumor that one of the committee members was bribed with money to ensure systemd was voted in but I can’t find a reference to that now, and it’s likely not true)
This kind of comment from BSD users always makes me laugh. I’m not saying you shouldn’t use BSD if you like it, or that it might not suit you better than Linux for some reason, but BSD in general still lags *way* behind Linux in usability, in hardware support, in software support, and in some cases, in reliability.
Until recently, at least, the BSD Now guys were still making fun of Linux as a desktop OS – and using Windows to produce BSD Now! Just recently, on the other hand, Jupiter Broadcasting were reminiscing about how the days of (having to) use Macs to produce their Linux podcasts were long gone. FreeBSD only recently gained support for KDE, and even in 12.0-RELEASE it’s still buggy as hell. I’ve yet to get NetBSD to recognise my wireless card, and the latest 8.1 development releases won’t even boot from a USB stick. – This on a ThinkPad, albeit a cheapo E-Series ThinkPad, which however works perfectly, as designed, on Linux (RCs and even Betas of which I’ll happily use over production releases of Windows, btw)!
Oh, and every so often FreeBSD (12.0-RELEASE) fails to shut down the wireless card when it reboots, and it misbehaves (at least on FreeBSD) when the OS comes back up again. And I’ve yet to see a BSD that supports scrolling on a touchpad – on a ThinkPad, again. Then there’s the installer for OpenBSD (an OS I’m otherwise a big fan of), which requires you to do maths to figure out where to put your OpenBSD partition if you want to multi-boot – and woe betide you if you get it wrong. As I said, if you prefer BSDs, all power to you, but making silly comments like accusing systemd of being “pre-alpha” just because its lineage can’t be traced back to 6th or 7th Edition – the same goes for vi, the networking stack or X11, btw – doesn’t enhance your credibility. And bearing in mind that some people might consider me to be fond of exaggeration, that may be the biggest understatement I’ve ever made.
I’m actually very OS-agnostic, which is one of the reasons I frequent this site. I’d have to say my favorite OSes are Haiku/BeOS and MacOS (especially Snow Leopard and earlier). As I already said, Void Linux is my daily driver, so I don’t quite get why you think I’m “one of those BSD guys”.
Your statistic of one has no bearing on reality. Both of those are solved problems for years on just about any OS, BSDs included. I’ll throw you my own anecdote: OpenBSD on my Dell Latitude laptop has touchpad scrolling out of the box with no configuration necessary (and one setting to change for tap-to-click). We can have different experiences based on our own knowledge and the hardware at hand, but that doesn’t make your statement true that “BSD doesn’t support touchpad scrolling”. That’s patently false and intentionally misleading.
A learning opportunity for you, that’s a plus! Besides, several Linux distros including Slackware, Crux, and Arch don’t hold your hand during installation and partitioning; they expect you to know what you’re doing. If you want easy mode Linux (or BSD) there are distros/spins for that, and apparently you’re still at that very basic level of understanding. Nothing wrong with that, you’ll eventually learn something once you are open to the possibility of it.
I never said that nor inferred it. I said systemd is currently at a pre-alpha stage, period. As for why I consider it so, it’s not its lineage, it’s the fact that it has been out for nearly 10 years and it still has show-stopping bugs pop up regularly. In a regular application that’s fine, the user can find an alternative that doesn’t bring her computer to its knees. However, systemd is init and PID 1, when it crashes it takes the whole system down with it. That’s patently unacceptable on a production machine, and is firmly in the realm of some guy’s weekend fun project. It’s a great concept but until it matures it has no place on critical hardware.
Did you try OpenIndiana? I wish I could start using BSD based desktop as my main enviroment here in the office and would run VMs for other machines. The slow sluggishness you mentioned turned me off, because it will just ruin the experience.
I will tinker with OpenIndiana this week end if possible.
Looks like systemd haters are much better in screaming at interwebs then in creating and maintaining distros…
Except Gentoo guys.
I’m a systemd user, but I can recognize that those guys are doing an awesome job to maintain even Gnome, that is strongly bound to systemd.
https://www.gentoo.org/news/2019/03/27/gnome-330-openrc.html
Doing real work without crying or only creating a “fork of distro foo without systemd”.
OK – I don’t like Gentoo but I have to respect them. You are right, they do lots of hard work and do it (AFAIK) well.
Shhh, that is the elephant in the room. Don’t point it out. No one stepped up to come up with a systemd replacement so enticing that switching to that was an inevitability,
satai,
Actually, if you are referring to me, I do maintain my own distro for my business, and it has it’s own init system too 🙂
It used to be very crashy, unstable and had a myriad of bugs. Everything has long been fixed and now systemd is in RHEL7/8 which speaks volumes.