As somebody who fled Linux to FreeBSD in order to avoid systemd, the prospect of that happening again makes me a little sick to my stomach. Running out of places to go that aren't controlled by people who are openly hostile to POSIX standards.
Wouldn’t have to be systemd, macOS has launchd for init, FreeBSD could come up with its own thing. This is a good talk I saw recently (by a FreeBSD contributor) on why these sorts of systems have become more common, and why they seem so sweeping in scope. https://youtu.be/o_AIw9bGogo
(In fact systemd and launchd are so tailored to their respective operating systems that FreeBSD likely would have to do their own init replacement if they cared to.)
That is not a good talk unless you already advocate for abandoning standards, and celebrate Linux's growing power to dictate how the shrinking number of remaining OSes design things. You might easily miss it if you're already onboard with systemd, but in his point by point address of systemd's shortcomings - he repeatedly handwaves and redirects.
Systemd is a mess, which is an amazing accomplishment considering the fact that it is supposed to be this great unifying/simplifying layer. So awful that the DoD held out for the longest time in formalizing any kind of baseline security audit procedures that address it. Compare that to something like Solaris SMF. I've never had a problem with the rc system that made me blame the underlying design, but if I did - systemd would be at the bottom of a very long list of my potential solutions, right under 'Set the machine on fire and pickup a copy of "Industrial Society and Its Future"'.
I really like the guy running the OpenZFS project, but it is painfully obvious that it is only going to increasingly cater to Linux - and coincidentally a lot of the really annoying aspects of the project are a result of that. For example: that Rube Goldberg build system, with massive amounts of code duplication... that wouldn't be there if not for autotools and gnu export symbol games.
lol, the Internet Explorer school of thought. Sure, form a work group for an open init standard with systemd as the basis - chaired by people both inside and outside the systemd project. But before that, rent a home in Malibu and wire it for reality TV, because that would be the most entertaining WG ever.
One of these init systems is run by a guy that is openly hostile to POSIX, the other can be found on several different operating systems and has been around forever. hmmm...
Only some Linux distros use SysV init and they're not any of the big players (Fedora/RH was the distro creating systemd), Ubuntu adopted systemd as the default 5 years ago, SUSE did the same 6 years ago, Debian 5 years ago. Almost everything else is a hobbyist OS (I've never seen Gentoo or Slackware in production anywhere else than at small companies where the server was on the critical path for maybe several tens of thousands of dollars, at best, which is peanuts on a global scale) or a niche OS (Alpine is used 95% as a container distro, and who freaking cares about the init system in a container? :-) ). Basically anyone who "puts there money where their mouth is" uses systemd.
SysV init was never adopted by BSD.
I think Solaris used to use it but it's been using Service Management Facility for the past 16 years.
HP/UX and AIX use SysV init, I think, but they're so vanishgly rare that 99% of developers and sysadmins out there could have the most successful careers in history and both HP/UX and AIX could be nuked from history for all they care.
And my point was that nobody even bothered to standardize SysV officially, though it was supposed to be a standard. That's how little everyone cared.
Poettering might be annoying, but he cares, he's opinionated and is actually knowledgeable. I've been using his software for a while and it's quite solid and his vision makes sense. POSIX isn't enough for a modern operating system.
So what are you arguing? Because I see a list of disparate platforms sharing the same init system, and I see the homogeneity that is systemd/linux. What is that a counterpoint to? Or is this a celebration of network effect?
> POSIX isn't enough for a modern operating system.
So there should be no standard? I can think of only one time I ran into a shortcoming that can be blamed on POSIX, and a few more where the OS just did a bad job in implementing the standard. Can you imagine how awful things would be right now if the DoD hadn't forced the concepts of interface commonality and multi-source procurement? You'd likely be reading this on a Honeywell glass TTY hooked up to an IBM timeshare. Because without standards the network effect acts as an insurmountable barrier to entry, and incumbents fully control the height of that barrier with needless complexity and arbitrary breaking changes. Hell, not that long ago there was talk about wielding GPL export symbols as a weapon to punish nvidia... I'm no fan of nvidia, but I like the idea of an API inspired by spite a lot less. Also, in a world where your vision prevailed, there would be no AMD - because Intel already set the industry "standard", so why worry about second-source availability?
Are you intentionally missing that the point is the fact that any one of them can use the portable init system that isn't systemd?
> No, they should turn systemd into a real standard. ECMAinitd :-p
Well systemd can only work on linux, by design. So every standard compliant init system would require that it package a linux kernel. That is not only moronic, but with history as our guide: would directly result in never patched, network active, embedded software.
Honestly, what do we need POSIX for in 2020? As discussed in the talk, it traces to the age of the Unix wars, when there was a panoply of processors and Unix variants. POSIX is great if you’re concerned with recompiling some C so it works on SPARC and Alpha and POWER, on Solaris, Tru64, and AIX. That world is gone.
Yes, I’m for abandoning pointless standards. There are concrete benefits to systemd - faster boot, comprehensive service management, power savings, memory savings, a consistent interface to changing system state. What is the benefit to sticking with an rc script architecture designed to run a handful of processes on a pdp?
You've never written portable software, have you? You can't write portable software without a common interface. Have you ever looked at what autotools vomits out? You'll see shell scripts containing the likes of "echo $1 | sed 's/^x//'" in order to just get things to where they have a chance of sharing enough commonality to compile. Imagine how much worse it would be without POSIX. Nothing would run on anything that the developers didn't account for, this includes OS (plus version), environment, and hardware architecture. That is the world you are asking for, not the one we presently live in.
> What is the benefit to sticking with an rc script architecture designed to run a handful of processes on a pdp?
Freedom, for not only the end user but all the way up to distro packager. Systemd is designed to be non-portable, and force a network-effect pressure. I was similarly suspicious about WSL designing toward a linux API instead of POSIX... an effort to reduce the potential for alternatives emerging in the future, where your choices are windows or linux.
> That is the world you are asking for, not the one we presently live in.
So, like mobile? Which is 70%+ of computing these days? :-)
> Freedom, for not only the end user but all the way up to distro packager. Systemd is designed to be non-portable, and force a network-effect pressure. I was similarly suspicious about WSL designing toward a linux API instead of POSIX... an effort to reduce the potential for alternatives emerging in the future, where your choices are windows or linux.
Freedom to do what? Init systems should be a solved problem, done and done. Innovation should happen higher up the stack, the init system should be uniform, hopefully flexible and universally adopted, and ideally standardized fully (as in ECMA & co.).
> So, like mobile? Which is 70%+ of computing these days? :-)
Media consumption spy devices + smiley emoticon. Yuck.
> ...and ideally standardized fully...
uh, you know that you are advocating for the direct opposite of that - right? Systemd is designed to be impossible to use outside of linux. So what, everyone should adopt the perpetually changing linux ABI as their point of commonality? You know that would be insanely stupid, right?
My point is that systemd is intentionally designed to make that impossible to do without also pulling linux (ABI, environment, whatever) within the same standard.
There are a few Linux distros that use OpenRC with decent success. I run lots of FreeBSD servers, but I also run some Alpine servers, where openrc works well for me (with some s6 thrown in for a few services).