6 ms·
The systemd debacle is what led me down a rabbit hole toward the BSD's. Don't get me wrong, systemd actually adds a lot of needed functionality, but I really f
by Enginerrrd 7y ago
The systemd debacle is what led me down a rabbit hole toward the BSD's. Don't get me wrong, systemd actually adds a lot of needed functionality, but I really feel like it is a major philosophical branch away from the conventional Unix thinking of 'make a tool that does one thing really well'.
That mindset has such a strength in that such tools form reliable building blocks for other tools and system components in a way that is really approachable for amateur/volunteer developers. It takes no time to parse through the man page of a simple tool. And only a bit longer to parse the code. That makes it easy to build improvements, or build on top of it.
But trying to wrap your head around systemd in even a few hours isn't reasonable. And binary log files? Wtf. It also seems like relying on certain aspects of it's behavior is a good way to end up breaking your system.
BSD still has that old school Unix mindset that made Linux great in the first place. Especially up against Microsoft's products.
The proof in the pudding for me is to look at the running processes of a default system between BSD and Linux with systemd. Yikes.
- dreich 7y ago> The systemd debacle is what led me down a rabbit hole toward the BSD's. Like most, you could have simply moved to a distribution without systemd. Unlike Linux, the BSDs offer less choice when it comes to both init, service supervision and service management options. It is also evidenced in the comparison table in the OP. If anything the debacle resulted in creating more awareness and leaving people open to more choice. That said, adopting one monolith instead of another sounds more like a knee jerk reaction than anything else. > The proof in the pudding for me is to look at the running processes of a default system between BSD and Linux with systemd. Yikes. This only scratches the surface. Daemons running under systemd have their PIDs supervised instead of using unreliable hacks like pidfiles. This is one of the reasons why systemd is preferred in large deployments and professional environments.
- jimktrains2 7y agoBSDs aren't a "monolith", but the system and tools are developed together and parts can be replaced wholesale if you choose to do so. Also, there's what, Gentoo and GUIX that don't use systemd? Gentoo still prefers building all source on the system which is a non-starter for most, and GUIX I didn't think was ready for a daily-driver role yet.
- jonathonf 7y agoDevuan [1] and MX Linux [2] (Debian-like), Artix (Arch-like) [3], and Void [4] are four other systemd-free distros off the top of my head. There will be others. [1] https://devuan.org/ https://devuan.org/ [2] https://mxlinux.org https://mxlinux.org [3] https://artixlinux.org/ https://artixlinux.org/ [4] https://voidlinux.org/ https://voidlinux.org/
- pmoriarty 7y agoOn Gentoo one is not forced to use systemd. I myself run a Gentoo system without systemd, and it works great.
- xouse 7y agohttps://nosystemd.org/ https://nosystemd.org/ The most popular non-systemd distro I hear about is Void linux, which is a rolling release style distro that's pretty comparable to(though not based on) Arch. As a tangent because you brought up distro's and difficulty, I know Arch has a reputation with some as being too difficult for regular skilled users, but as a regular skill level user myself, I find that the Arch/Void style rolling release paradigm of doing stuff makes things easier for noobs like me, not harder. Once you get past the initial hurdle that is the first hour or two of install and setup(which you can do just by copying youtube tutorial instructions line by line) then everything after that is much simpler. For me, I find that the majority of everyday linux problems all boil down to trying to install or update some kind of software. Either software you already have has a bugfix or feature you want in the newest update, or you have some new software you want to install. And because developers like new shiny things, often times the newest version of whatever has a dependency of some other new shiny thing. Installing new software in a fixed release distro often quickly gets too hairy for me, but in Arch I can almost always a simple install directly from the main or user repositories. This has so far eliminated 95% of everyday problems for me defying the usual narrative I hear of it being "harder" to use for normal Joe's like me.
- AnIdiotOnTheNet 7y ago> For me, I find that the majority of everyday linux problems all boil down to trying to install or update some kind of software. Either software you already have has a bugfix or feature you want in the newest update, or you have some new software you want to install. And yet the Linux Desktop community insists on sticking with the package manager/repo model that makes stuff like this such a pain. Worse, it's actively hostile to the concept of portable applications in general.
- UI_at_80x24 7y ago>This is one of the reasons why systemd is preferred in large deployments and professional environments. If I may take umbrage to one quote; Netflix uses FreeBSD for it's streaming platform. "...systemd is preferred where it's preferred."
- dijit 7y agoGoogle Cloud's hypervisors also do not make use of systemd, or at least they didn't as of mid-2018. They are Linux though, not BSD.
- mehhh 7y agoGoogle still can't figure out how to get IPv6 working for containers on GCP, I swear that whole platform is a readheaded stepchild made to check a box.
- dijit 7y agoI mean, no major cloud provider has adopted ipv6 despite it being a clear advantage in many areas for them. Makes double sense when you consider the fact that at google they basically wrote their own software defined network appliances.
- mehhh 7y agoOVH & DigitalOcean have both adpoted IPv6 as a first class feature on their VMs, Google is the only holdout that doesn't offer any IPv6 support on VMs among the major providers.
- dijit 7y agoOVH and DO are not cloud providers. They’re more like VPS providers. And vps providers tend to have ipv6. But Azure, AWS and even Oracle cloud do not have support for ipv6 on instances.
- kick 7y agoThey didn't make their argument on choice, so your argument rings hollow: Don't get me wrong, systemd actually adds a lot of needed functionality, but I really feel like it is a major philosophical branch away from the conventional Unix thinking of 'make a tool that does one thing really well'.
- Enginerrrd 7y agoI don't understand. Can you elaborate?
- kick 7y agoYour argument wasn't on choice, but on practicality: you weren't choosing something different because of the abstract value of choice. The person replying to you had an argument based around choice: the practicality of the solution was ignored in favor of an abstract concept of choice, rather than practical benefit. (I'm saying the person arguing with you was arguing against something you weren't arguing for.)
- Rediscover 7y agoDon't use the pid files to keep something running. Run it from /etc/inittab instead.
- laumars 7y ago> Like most, you could have simply moved to a distribution without systemd. Unlike Linux, the BSDs offer less choice when it comes to both init, service supervision and service management options. It is also evidenced in the comparison table in the OP. If anything the debacle resulted in creating more awareness and leaving people open to more choice. systemd had the opposite effect of giving people more choice. Before systemd every major distro ran it's own init service. Often they were variants of init.d but sometimes they might vary quite significantly. Debain, Ubuntu, Suse, Arch, Slackware and Gentoo -- they all had different inits. One of the reasons systemd was push so heavily was to standardise things across the different distros. Now the only distros still offering anything different are either those that are also gradually falling out of favour due to the changes in user trend; or newer distros that are only a minor blip in the Linux community anyway and unlikely to ever grow beyond that. The exception here being dockerised Linux eg Alpine. But they fill a different use case. > This only scratches the surface. Daemons running under systemd have their PIDs supervised instead of using unreliable hacks like pidfiles. This is one of the reasons why systemd is preferred in large deployments and professional environments. Honestly, I'd take pidfiles over binary log files any day of the week. However you're right that systemd does bring some good ideas to the table (if it didn't, nobody would have adopted it). My issue with systemd is that it's needlessly hard to separate the wheat from the chaff. I know systemd isn't the monolith people often describe it as...but even so, it sure feels like it's an all or nothing deal at times.
- ti_ranger 7y ago> The systemd debacle is what led me down a rabbit hole toward the BSD's. As far as I can tell (not actually using Debian or Ubuntu myself), there was only a debacle in Debian and Ubuntu, because they took too long to decide, and ended up having to rush their migration. All the other distros, that had better-planned migrations (Arch, Fedora, SUSE, etc. etc. etc.) had basically no issues migrating to systemd, and have benefited immensely from being able to ditch the maintenance overhead of diverging init systems and init scripts, all re-implementing the same new features with slightly different implementations due to previous slightly differing implementation details. People will currently call out OpenRC as the one non-systemd approach that works (e.g. if you acknowledge that SysvInit no longer actually works because no-one uses if for all system initialisation, instead leting it delegate lots of control to other bits and pieces), but before systemd won, there were: * SysVinit + RH-derived initscripts * Sysvinit + SUSE-style initscripts * Upstart * OpenRC * prcsys - parallel rc system (Mandrake and derivatives) All of these had similarities, and small differences, e.g. they all tried to support dependency information in init script headers. As a sysadmin, it was frustrating to: * Have to read every init script to see where it read its defaults from, was it /etc/sysconfig/pkgname or /etc/default/daemonname . Did it support setting limits from the defaults file, or would you have to hack the script to support your bigger-than-the-maintainer-imagined environment. * Debug where the application was logging to, if it didn't setup logging correctly by default. As a maintainer of a package used on more than one distro, it was difficult to: * Test your init script to ensure it worked on RH-based distros and SUSE and Debian and Ubuntu. While Upstart said it supports init scripts, it fails in some random way that doesn't occur on RH and SUSE. * Setup logging correctly, as not all distros provided a helper script to setup the right logging daemon (syslogd, vs rsyslog vs syslog-ng etc.) We won't talk about the more modern features such as cgroups etc., where only about 2 init systems support the feature adequately, and no distro or packager actually managed to support such advanced features on more than one init system, and certainly not more than one non-systemd system. systemd mainly stays out of my way, but makes it easy to troubleshoot and customise daemon behaviour in a consistent fashion. > But trying to wrap your head around systemd in even a few hours isn't reasonable. You don't need to wrap your head around systemd to do things with it that you would really struggle to do with any other init system. But, you've probably been too busy fighting it, or trying to prove why it's worse, rather than trying to do real things with it, or you would be able to point to valid bug reports. > The proof in the pudding for me is to look at the running processes of a default system between BSD and Linux with systemd. Yikes. You're comparing apples and oranges here, you should rather be comparing two release of the same distro, before and after systemd became the default, and you would have seen very little difference.