5 ms·
Replying to some sibling comments asking why anyone wouldn't want to use systemd. People want to understand their software as well as it's practically possible
by pona-a 1y ago
Replying to some sibling comments asking why anyone wouldn't want to use systemd.
People want to understand their software as well as it's practically possible. It's not an uncommon preference; worse-is-better was quite successful for a reason. As systemd stands, it's an unauditable mess of tightly-coupled components built to handle any conceivable need. These features create new attack vectors: for instance, systemd-machined credential passing system, which can inject arbitrary files such as keys and configs into the guest, also runs on bare metal. And some are just running a musl system that can't even use systemd.
Some might look at the old SysV init scripts through rose-tinted glasses, but I don't think it represents the current state of the community. We have the modern OpenRC with parallel startup, dependency-based initialization, supervision, network management, and cgroups; dinit, which tries to imitate the 80% of systemd features that people use with 20% of its footprint; s6 with its supervision trees; runit that just works; and GNU Shepherd, which gives you an entire Scheme interpreter to configure your system.
Monocultures are bad because they eliminate competitive pressure for good design and create single points of failure that affect everyone. systemd was an excellent addition to the ecosystem in its day, but has become uncomfortably sticky: you can't just choose to replace systemd; you'll need to reimplement udevd, logind, D-Bus activation interfaces, and now userdb, all of which have their own subtle quirks you'll need to replicate. Look to the state of mdev or elogind and you'll see why it's not a sustainable compromise.
- probably_wrong 1y ago> Monocultures are bad because they eliminate competitive pressure for good design and create single points of failure that affect everyone. For a practical example of this, the XZ backdoor [1] affected liblzma which is (was?) a dependency for libsystemd, and some distributions patched OpenSSH to include libsystemd. As a result, the decision of putting journal file compression functionality directly into your init system means that a significant portion of all Linux systems out there came this close to being backdoored. [1] https://news.ycombinator.com/item?id=39911311 https://news.ycombinator.com/item?id=39911311
- esseph 1y agoIf you think that's wild you should hear about kernel vulnerabilities!
- yjftsjthsd-h 1y agoYeah, the Linux monoculture is also bad. In fact, one reason the systemd monoculture is bad is because it enforces the Linux monoculture.
- esseph 1y agoWhat about the Windows monoculture in business? What about the seemingly Apple monoculture on HN? What about the OpenBSD monoculture with OpenBSD!!!!! You know what Linux needs? Another audio stack. Be sure it's backwards compatible with all the others, just like the last dozen were.
- Izkata 1y agoI remember reading PipeWire is more stable than Pulseaudio because it removed a buggy and hard-to-implement-correctly feature. So not completely backwards compatible.
- yjftsjthsd-h 1y ago> What about the Windows monoculture in business? ...yes? Obviously? > What about the seemingly Apple monoculture on HN? I don't think that exists, but if it did then I would object to it. > What about the OpenBSD monoculture with OpenBSD!!!!! What would that even mean? ...Actually, no, even if I sort of pretend that the concept makes sense it's not really a thing; OpenBSD constantly exports their software to be usable on other systems (ex. OpenSSH is an OpenBSD project) and imports general unix-like software to work on it. So no, there is no OpenBSD monoculture and wouldn't be even if it was that popular. > You know what Linux needs? Another audio stack. Be sure it's backwards compatible with all the others, just like the last dozen were. See, the real reason that this is funny is that PipeWire is a new audio system, is mostly superior to its predecessors, and largely is successful because it is backwards compatibile. So... Yes, actually, exactly what you said but unironically and without the slightest bit of sarcasm.
- growse 1y ago> Replying to some sibling comments asking why anyone wouldn't want to use systemd. I get why some people don't want to use systemd. That's fine. I really don't understand why this group of people are so passionate about broadcasting this opinion to anyone within earshot. They don't like a piece of software, great! They've got different values! Use something else!
- pona-a 1y agoI think you're missing the point. This is a thread about GNOME, a major desktop environment, declaring systemd-userdb as a necessary requirement for its future version, asking the non-systemd community to provide an API-compatible implementation if they want to keep using GNOME. I personally do not use GNOME, nor am I running a non-systemd system at the moment. This is the first time I wrote a single word about systemd vs other inits on the internet, explicitly because it couldn't be more on-topic. It's a common false compromise to say you now depend on a component but welcome alternative implementations. In reality, this quickly becomes treadmill for their maintainers, forced to adapt to its quirks so the dependent software even has a chance of working. You can read more about eudev as a more notable example of that dynamic. Projects like Wayland avoid it by having a committee of major implementations vote on proposed specs.
- rbanffy 1y ago> if they want to keep using GNOME It's fine if they don't. Other users of GNOME will want to push back on API changes and deprecation. This is normal in software.
- const_cast 1y agoWell GNOME is a bit of an oddball in the Linux userland world and everyone knows it. They have a "my way or the highway" type attitude to everything they do, and all the pros and cons that come with that. On one hand, they're able to achieve a development velocity and quality that a lot of other full-featured desktop environments cannot. On the other hand, users can perceive regressions in features and choice. I think, if this is a surprise to anyone, they're not really paying attention. If you want GNOME you go along for the ride, and that's the message we've all gotten for the past 10 years. This same conversation keeps coming back up. Just use KDE or something else if that's not an experience you, or other's, want. Personally, I despise GNOME, so problem solved for me. But, we have these conflicting takes where people will complain about fragmentation on Linux and then also complain about monocultures like GNOME. That's the experience GNOME very clearly wants to give, so if that's bad to you, then don't use it. And, on a distro level, maintainers can decide if they want to ship GNOME or if they want to make it the default.
- pcpuser 1y agoThere's so much I disagree with in the beginning but the ending is what actually grinds my gears. You make it sound like systemd manufactured this monoculture somehow. This is also the point I've seen people throw in a comparison to some closed-source org with money to burn and questionable morals. Systemd was chosen by distros and users across different communities because it solves hard problems better than the others. We can debate about why that is, but the maintainers of Systemd aren't running smear campaigns against other open source projects. Often systemd is the subject of such ire. They chose to solve hard problems and people adopted it. It's not anything more sinister. It's definitely not an "un-auditable mess". It's written in well formatted C with structure, good tooling, and an open community. You can disagree with the ideology but that's open source for you. Additionally and away from my point, I believe that Systemd won our because they chose to embrace some complexity to solve really hard problems. Let's not pretend that a modern "init" does only system initialisation by calling shell scripts and then disappearing.
- msgodel 1y agoAll of us paying attention saw how the systemd authors shopped their stuff around issue trackers and mailing lists telling everyone "it's just the way it is now." They absolutely did manufacture the situation. They pushed hard enough doing this that it's resulted in multiple large distros being forked by groups of former maintainers.
- pcpuser 1y agoCare to share any evidence to back up the tall claim that systemd authors forced their code on anyone?
- gatlin 1y agoThe claim was "shopped around" and if you are going to change people's words do not be surprised when nobody takes your challenge. And preemptively: absence of evidence is not evidence of absence.
- jeroenhd 1y agoThe end of the article details the steps necessary for people who want to run Gnome without systemd. There is a monoculture of sorts, which is that bespoke init systems aren't tested or supported by Gnome itself, but like you already need to do to get Gnome working normally, you can still patch in support for whatever system you prefer. The article even provides a list of services and APIs that you will need to hook up to Gnome to make it work. You don't need to reimplement logind or D-Bus, but you will need to patch your mechanisms of choice into Gnome itself. Gnome isn't planning on maintaining a second copy of common system services that exist on modern systems anymore (a copy that is based on a hack in the first place). The burden of maintenance now falls on whoever wants to provide their own alternative. All the extra work you need to do to get alternative init systems working is work the Gnome team no longer needs to do.
- cphuntington97 1y ago"And some are just running a musl system that can't even use systemd." no longer… https://catfox.life/2024/09/05/porting-systemd-to-musl-libc-powered-linux/ https://catfox.life/2024/09/05/porting-systemd-to-musl-libc-...