Live data from Hacker News

Why Did It Take Devuan Two Years to Replace Systemd?

troubleshooters.com

91–100 of 132 posts

Re: Why Did It Take Devuan Two Years to Replace Systemd?

#91

Earlier quoted context omitted.

I keep waiting for the reasoned, technical arguments against systemd instead of veiled metaphors, complaints about its creator, or protestations that it's different. I think @pmoriarty here just nailed it. It's not necessarily that "SystemD sucks" or that it doesn't do what it proclaims to do. But the fact that it's so monolithic (in practice, if not in principle) and subsumes so much of the rest of the system, and i…

> The "Unix Philosophy" of "do one thing and do it well" isn't just a tagline. That philosophy is cherished because it's been proven to be valuable. Replacing init with something that moves away from that is certainly worthy of questioning, if not outright criticism. Systemd is a whole group of small, factored tools that call to each other. This complaint gets trotted out a lot and I lump it in with the "It is differ…

Systemd is a whole group of small, factored tools that call to each other.

So, I haven't tried the exercise myself, so maybe it's easier than I've been lead to believe; but I keep hearing that the problem is that those "small, factored tools" talk to each other and pretty much only each other and that it's very difficult to, eg, rip out and replace just one of them. The argument, as I understand it, is that SystemD is "modular" in theory, but is a monolith in all practical terms.

Note that I'm not arguing for this position so much as restating it to the extent that I understand it. I'm currently using SystemD and while I have my doubts about it, it doesn't cause me any specific pain ATM, so I haven't bothered messing with it.

Re: Why Did It Take Devuan Two Years to Replace Systemd?

#92
post #65

Earlier quoted context omitted.

> On the whole i think the idea underlying systemd, of graph-based management of services and system state makes more sense that wonky initscripts garbage. It would make sense if systemd delivered on its promise of automatically detecting service dependencies (through socket activation mechanism). In practice, it's still distro maintainers and sysadmins who need to specify any and all dependencies manually , and as s…

> It would make sense if systemd delivered on its promise of automatically detecting service dependencies (through socket activation mechanism). New features require time to gain wider adoption. Some services already support this, but most don't (yet).

This particular feature could be (quite easily!) implemented without much help from the daemons themselves, at the cost of duplicating the config option of listen address. To make the matter funnier, this is doable with mechanisms that were adopted in unices in '90s. This is why systemd underdelivers on its promise of automatic dependency detection.

Re: Why Did It Take Devuan Two Years to Replace Systemd?

#93
post #74
post #72

Earlier quoted context omitted.

> Underdeveloped, brittle, and overcomplicated syslog replacement? Are you referring to the systemd journal? I think you should lay out your arguments in detail if you want to make claims like that, since there is a lot of compelling evidence to the contrary. Russ Allbery's analysis of systemd [1] lays out a convincing case that the journal is a highly developed, flexible, and useful feature: * Integrated daemon stat…

> [...] Russ Allbery's analysis of systemd [...] explains why it's such a compelling feature: It's tightly integrated where it doesn't need to be (with zombie reaper), you can't replace it (only slap something on top of it), and generally those few last log lines that are displayed are useless anyway, as usually when something breaks I still need to view full logs. Much more useful would be debuggability (with syslog…

Any discussion about this should be anchored with an answer to the questions I asked earlier: What functionality do you think systemd should not have that it has today? What is a better way of achieving the benefits provided by that functionality?

Let's talk about logging. The systemd journal is designed to capture and log the output of all programs. Some programs do not integrate with syslog: they write to stdout/stderr instead. As a system administrator, I desire a way to capture the logs of everything I run on a system, including programs that do not integrate with syslog (e.g., ad hoc shell scripts and applications).

Who is in the best position to capture program stdout/stderr? The process supervisor. Systemd does that with its journal facility, and other supervisors work similarly. Personally, I value having a uniform method for capturing program logs from all processes on a machine, and that's what systemd offers me. Syslog by itself does not achieve this goal.

How do you recommend capturing and logging program output, if not by having the supervisor do it? (And why is that approach preferable?)

The journal is an integrated part of the systemd toolkit, and that's a good thing because it enables useful capabilities like capturing stdout and good user experiences like `systemctl status`. But you don't have to interact with it. If you prefer the syslog toolchain instead, then redirect the journal to syslog via ForwardToSyslog=yes in journald.conf. The journal still adds value with this approach because it captures logs that syslog can't (and without kludges like `logrotate` and `logger`).

You can see more log lines with e.g. `systemctl status -n50`. If you want to see everything, invoke `journalctl -u service-name`.

I view the systemd journal as a logging facade, a complement to facilities like syslog, not an alternative to it. As Russ said in my quote above, "systemd is agnostic to the underlying syslog implementation."

I'm not sure I grasp your point about dbus. I have not seen anyone make the argument that dbus should be part of a zombie reaper or process supervisor. However, IPC is a useful and sensible way for processes on the system to communicate with their process supervisor, which is why both systemd and upstart integrate with dbus. I've read that it is possible to use systemd without dbus [1] (there are apparently Debian configurations that work this way), though I haven't deeply looked into it.

If you want to launch supervised processes with clean environments, namespaces, and cgroups, then it is necessary for a system process to be the one that forks. Communicating that request between processes necessitates IPC. As the most widely adopted IPC system for Linux, dbus was an appropriate choice for systemd and upstart to integrate with. Again, going back to our anchors: Is there another IPC framework you think systemd should have integrated with instead? Or if not by using IPC, how do you think service management commands (e.g., restart a service) should be communicated to the system?

[1] E.g. https://github.com/mitchellh/vagrant/issues/7973 https://github.com/aelsabbahy/goss/issues/101

Re: Why Did It Take Devuan Two Years to Replace Systemd?

#94
post #47

Earlier quoted context omitted.

>, thereby violating the so-called Unix Philosophy of doing one-thing well. For a user app to do that is one thing, but for a core OS component to do that just smells way too much like forcing Linux to be more like Windows, which a lot of hard-core Linux users are ideologically opposed to. That ship sailed a long ago when Linus ranted against microkernels :) Linux was never meant to follow a 'do one-thing well' desig…

"That ship sailed a long ago when Linus ranted against microkernels" Was Solaris a microkernel OS? How about SunOS? Irix? DEC OSF/1? HP/UX? Last I checked, they weren't yet all were considered examples of Unix, and all existed before Linux.

That is great, but I'm not sure what I'm supposed to do with that information? I was merely responding to your inaccurate statement about Linux as it pertains to your opinion on what the "Unix Philosophy" is. Which itself is a mostly irrelevant vague and subjective term that anyone can apply in any way they seem fit, so I suppose there is no point in even arguing over it. Good day !

Re: Why Did It Take Devuan Two Years to Replace Systemd?

#95
post #53

I keep waiting for the reasoned, technical arguments against systemd instead of veiled metaphors, complaints about its creator, or protestations that it's different. The initd-inspired community has resisted the push for declarative and component-based core system infrastructure for so long, and it's causing very strange distortions to the linux ecosystem as solutions get sought for the problems it introduces. System…

I think systemd critique is misguided. The real problem is Linux. A lot of things in Linux is either bad or ancient. People are building these solutions: PulseAudio, systemd, NetworkManager, libuv, Xorg, SELinux, OpenSSH because they are forced to do so. It not like Red Hat sponsor a systemd from pure goodwill and love to mankind. Since it is politically incorrect to criticize Linux, people attack projects that try m…

There are sane replacements for SysV Init, like runit.[1] None of these other init replacements try to absorb the functionality of a ton of other core services like sysstemd does either, so they're a lot easier to swallow. You'll notice there was no holy war against upstart or OpenRC, for instance.

[1] - https://en.wikipedia.org/wiki/Runit

Re: Why Did It Take Devuan Two Years to Replace Systemd?

#96
post #45

Earlier quoted context omitted.

To some of us, the "sprawling throw-it-over-the-wall approach to development" is the problem. Particularly when they decide to reimplement services instead of using battle-hardened code, and revive old bugs that haven't been seen in the wild in years. As has happened with their DNS resolver, which was initially shipped missing measures that everyone else had shipped years ago to deter cache poisoning, and had buffer…

"Battle-hardened" code is a myth. Please do not appeal to it. Either you're doing the hard work for security or you aren't. You do not need to experience a breach in advance to have a hope of stopping a breach. Besides, if people cared about security they'd use tools and languages and runtimes that help them test thst code works right. They don't, by and large.

Hey, systemd has to be shipped when it's immature because you need users to try it out and help catch all the bugs and insecurities. Now you say battle hardened code is a myth.

Sure, people should audit their own tools, but there are also casual users. And there are indirect users. They are entitled to enjoy the better (if not perfect) security provided by battle hardened code.

Re: Why Did It Take Devuan Two Years to Replace Systemd?

#97

Earlier quoted context omitted.

One of the main problems was the speed with which systemd was rolled out on all the major Linux distros, despite it being relatively immature and very controversial at that. The second major issue is it growing way out of the bounds of being just an init replacement, thereby violating the so-called Unix Philosophy of doing one-thing well. For a user app to do that is one thing, but for a core OS component to do that…

Don't forget security. When there's a problem with systemd shit hits the fan. When there's a problem with a widely used piece of software that only does one job the mess is smaller and easier to clean up.

What? Need I remind you of Heartbleed?

Re: Why Did It Take Devuan Two Years to Replace Systemd?

#98

I keep waiting for the reasoned, technical arguments against systemd instead of veiled metaphors, complaints about its creator, or protestations that it's different. The initd-inspired community has resisted the push for declarative and component-based core system infrastructure for so long, and it's causing very strange distortions to the linux ecosystem as solutions get sought for the problems it introduces. System…

I keep waiting for the reasoned, technical arguments against systemd instead of veiled metaphors, complaints about its creator, or protestations that it's different. I think @pmoriarty here just nailed it. It's not necessarily that "SystemD sucks" or that it doesn't do what it proclaims to do. But the fact that it's so monolithic (in practice, if not in principle) and subsumes so much of the rest of the system, and i…

> The "Unix Philosophy" of "do one thing and do it well" isn't just a tagline. That philosophy is cherished because it's been proven to be valuable

It's PR fluff -- AFICT it's actually never been true. If it were true, we'd not have a "sort" option for "ls". (EDIT: It would also require a better interchange format than "unstructured text", but that's an aside.)

It's also fuzzy enough that you can always claim it to be true: What is the "one thing", well for systemd[1] the "one thing" is to be a "system daemon" (not an "init system" whatever the definition of that is). I guess you could argue whether it does it well, but I claim that it does -- at least for every single system that I'm running it on.

[1] That's the correct spelling, btw. Not SystemD or any other variation.

Re: Why Did It Take Devuan Two Years to Replace Systemd?

#99
post #54
post #45

Earlier quoted context omitted.

To some of us, the "sprawling throw-it-over-the-wall approach to development" is the problem. Particularly when they decide to reimplement services instead of using battle-hardened code, and revive old bugs that haven't been seen in the wild in years. As has happened with their DNS resolver, which was initially shipped missing measures that everyone else had shipped years ago to deter cache poisoning, and had buffer…

> CVE-2017-1000082 This was discussed here: http://www.openwall.com/lists/oss-security/2017/07/02/1 > a rare example of a real problem that was assigned a CVE number by request of someone other than the developer It's fairly common that the security researcher requests CVE. CVE request by an affected distro (which is what happened here) isn't anything unusual either.

It was discussed a whole lot more in these places:

* https://github.com/systemd/systemd/pull/6300

* https://github.com/systemd/systemd/issues/6277 (https://news.ycombinator.com/item?id=14681377)

* https://lists.freedesktop.org/archives/systemd-devel/2017-Ju...

* https://news.ycombinator.com/item?id=14682210

Re: Why Did It Take Devuan Two Years to Replace Systemd?

#100
post #63

Earlier quoted context omitted.

Why does an init system need a DNS implementation? Why not use named, unbound, or any of the other implementations? Instead they implement it poorly, have had various problems with it, and of course there have been security problems with it. Do you really want an init system that replaces a ton of functionality poorly like dns, ntp, syslog, xinetd, etc etc etc?

> Do you really want an init system that replaces a ton of functionality poorly like dns, ntp, syslog, xinetd, etc etc etc? SystemD is not just an "init" system. You have to look at the larger vision for it being a set of building blocks for Linux system and service management. I think this is a very good thing. Its about time that Linux had a unified and self-consistent approach to system management and configuratio…

You have to look at the larger vision for it being a set of building blocks for Linux system and service management

Many people did, and didn't like what they saw. They also didn't like the idea that it was very difficult to replace for something they did like.

Post reply on HN