3 ms·
> 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 controv
by m45t3r 9y ago
> 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.
When Debian/Ubuntu defaulted to systemd, systemd already had 5 years of existence. In Mageia, 2 years, while Arch Linux, took 2.5 years. Fedora was the only distro that ready adopted systemd by default very soon, in a year and half [1].
Compare this to upstart, that had an initial release in August 24, 2006 and adopted in the same year in Ubuntu 6.10 (and by default, since I don't know any distro that maintained a compatibility shim for those who didn't want to use upstart, like happens in systemd nowadays).
> 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 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.
However, systemd is not a single binary. Each additional funcionality is shipped in different binaries, so the init part only cares about init, journal part only cares about journal, etc.
This also happens in other projects. GNU Coreutils (ls, date, cut, du, df, echo, mkdir, etc.) for example, is a collection of binaries that do each its own part. It does as much sense of calling systemd violating Unix Philosophy because it has multiple funcionality implemented in the same source code as calling GNU Coreutils violating Unix Philosophy by the same reason.
> The third major issue is that on most major Linux distros, users are not given an easy way to avoid using systemd, no matter how much they hate it or oppose it.
This only became a problem after systemd it seems. Ubuntu/Fedora only offered upstart, Arch only offered BSD-style init, Debian only offered SysVinit, etc...
After systemd was adopted by default people started to whine to maintainers support multiple init systems, increasing the burden of maintance without obvious benefits (who are gonna fixes the bugs if the majority of developers are running something else?).
> The fourth issue is the apparent arrogance of the people responsible for systemd, and their off-hand dismissal of mature and widely respected unix conventions.
Well, the community is as bad or even worse than the maintainers, IMO.
> The fifth problem is that when systemd breaks, troubleshooting and fixing it can be a lot harder than doing the same with an init script.
Sure, however writing scripts was much worse since even the simpler things are incredible difficult to get right with scripts (want to get the PID of a daemonized process? PID files, except that now you can have racing conditions and possible problems with locking).
I recently migrated a script init-style startup file (used by a thin systemd service) to a native systemd service in my current work. Nobody understood the script file very well, while the .service native systemd file is much simpler and obvious about what is doing.
> All of this adds up to a storm of controversy that the systemd people mostly brought upon themselves. Had they just been more humble about their creation and waited until it was mature and well-tested and did all the wonderful things they claim it could and should do instead of stuffing what was widely seen as a broken-by-design piece of garbage down everybody's throat, maybe much of the Linux community wouldn't have been nearly so outraged by it.
Using words like "broken-by-design" without given reasonable arguments will only make your argument less convincing, you know?
[1]: https://en.wikipedia.org/wiki/Systemd https://en.wikipedia.org/wiki/Systemd
[2]: https://en.wikipedia.org/wiki/Upstart https://en.wikipedia.org/wiki/Upstart
- JdeBP 9y ago> Debian only offered SysVinit > writing scripts was That is a fallacious argument. The false dichotomy and false history that it presumes is one of the fallacies that the "Uselessd Guy" describes at http://uselessd.darknedgy.net/ProSystemdAntiSystemd/ http://uselessd.darknedgy.net/ProSystemdAntiSystemd/ . The actual truth is that before the Hoo-Hah, Debian included packages for minit, runit, van Smoorenburg rc+init, filerc+van Smoorenburg init, Upstart, and even InitNG at one point. An OpenRC package was added by OpenRC people during the Hoo-Hah. * https://tracker.debian.org/pkg/minit https://tracker.debian.org/pkg/minit * https://tracker.debian.org/pkg/daemontools-run https://tracker.debian.org/pkg/daemontools-run * https://tracker.debian.org/pkg/runit-run https://tracker.debian.org/pkg/runit-run * https://tracker.debian.org/pkg/file-rc https://tracker.debian.org/pkg/file-rc * https://tracker.debian.org/pkg/initng https://tracker.debian.org/pkg/initng * https://tracker.debian.org/pkg/openrc https://tracker.debian.org/pkg/openrc * https://tracker.debian.org/pkg/upstart https://tracker.debian.org/pkg/upstart * http://jdebp.eu./FGA/debian-systemd-packaging-hoo-hah.html http://jdebp.eu./FGA/debian-systemd-packaging-hoo-hah.html
- gasof 9y agoThanks for that, that's distasteful enough for me to motivate a move to Devuan (or perhaps Alpine, it's served me well in Docker).
- m45t3r 9y agoWell, sorry by not doing my homework. However, lets analyse all those init systems "supported" by Debian: - minit: "RoQA; no popcon recent users; abandoned 2007; not friendly" [1], so not supported by upstream since 2007. - daemontools-run: still included in all current versions: https://packages.debian.org/search?suite=default§ion=all&arch=any&searchon=names&keywords=daemontools-run https://packages.debian.org/search?suite=default§ion=all... - runit-run: removed from Debian archives well before systemd even existed (2010) [2]. - file-rc: still included in all current versions: https://packages.debian.org/search?suite=default§ion=all&arch=any&searchon=names&keywords=file-rc https://packages.debian.org/search?suite=default§ion=all... - initng: c'mon, this package was last updated in 2007! [3] - openrc: still included: https://packages.debian.org/search?suite=default§ion=all&arch=any&searchon=names&keywords=openrc https://packages.debian.org/search?suite=default§ion=all... - upstart: ok, this is the only one that may count as a valid criticism. The reason give from Debian is simply "RoQA; unmaintained" in January 2016, while Upstart Bazaar received updates until May 2016 [5]. So except from upstart, all of those init systems that you cited still exists in current Debian or was removed well before systemd exists. My original post is wrong (Debian supports multiple init systems, before and after systemd migration). However, I don't see the problem here, you only made my point stronger. [1]: https://tracker.debian.org/news/726018 https://tracker.debian.org/news/726018 [2]: https://tracker.debian.org/news/649008 https://tracker.debian.org/news/649008 [3]: https://tracker.debian.org/news/614059 https://tracker.debian.org/news/614059 [4]: https://tracker.debian.org/news/739662 https://tracker.debian.org/news/739662 [5]: https://code.launchpad.net/upstart https://code.launchpad.net/upstart