TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Why Did ArchLinux Embrace Systemd? (2016)

105 pointsby kbumsikover 5 years ago

15 comments

darkwaterover 5 years ago
Looking back, I still don't get all the hatred that SystemD got (and sometimes is still getting). A part from some nice-to-have missing niche features (I'm looking at you, retries management with one-shots), it Just Works™ for the vast majority of use cases, just like PulseAudio does. The fact is that the minority which indeed have problems is very vocal because those problems come from complex corner-cases that only a a very tech-savvy user could generate in the first place.
评论 #21314326 未加载
评论 #21314439 未加载
评论 #21314245 未加载
评论 #21314223 未加载
评论 #21314952 未加载
评论 #21314578 未加载
评论 #21313964 未加载
评论 #21314976 未加载
评论 #21314026 未加载
评论 #21314433 未加载
评论 #21315134 未加载
评论 #21315307 未加载
评论 #21315274 未加载
bfleschover 5 years ago
I wish this kind of opinion would&#x27;ve been spread more widely within the Arch universe (wiki &#x2F; IRC) so outsiders can understand what we actually gained from switching to systemd.<p>It still feels like many people hate systemd but the reasons that are presented all sound totally valid from a programmers&#x27; perspective.
评论 #21313885 未加载
valegover 5 years ago
I prefer this approach:<p>&gt;<i>Systemd is included by default but not enabled. You can scan your MX system and discover files bearing &quot;systemd&quot; names, but those simply provide a compatibility hook&#x2F;entrypoint when needed.</i><p>&gt;<i>MX Linux uses systemd-shim, which emulates the systemd functions that are required to run the helpers without actually using the init service. This means that SvsVinit remains the default init yet MX Linux can use Debian packages that have systemd dependencies such as CUPS. This approach also allows the user to retain the ability to choose his&#x2F;her preferred init.</i><p>Source: <a href="https:&#x2F;&#x2F;mxlinux.org&#x2F;about-us&#x2F;" rel="nofollow">https:&#x2F;&#x2F;mxlinux.org&#x2F;about-us&#x2F;</a>
评论 #21314816 未加载
KingMachiavelliover 5 years ago
&gt; What most systemd critics consider &quot;bloat&quot;, I consider necessary complexity to solve a complex problem generically.<p>As a distro and philosophy, Archlinux was bound to adopt systemd eventually. e.g. Maintaining you&#x27;re own init system&#x2F;scripts is not KISS. Creating a custom init file to adapt 90% of software from systemd to another init system is not KISS.
评论 #21314254 未加载
评论 #21314193 未加载
评论 #21314341 未加载
评论 #21314167 未加载
peterwwillisover 5 years ago
From the thread, 2brainz, the person maintaining the init scripts, responding to why systemd:<p><i>&gt;&gt; I haven&#x27;t heard a good explanation of why systemd and not a different, new init system</i><p><i>&gt; There is none. Systemd came along, we thought it was great, some of us were already involved with systemd and pushed the change. We could have done many different things, but we didn&#x27;t.</i><p><i>&gt; Runit was suggested by users at some point, and I think there is&#x2F;was a runit implementation in AUR. However, runit was never considered in detail.</i><p><i>&gt; First, we don&#x27;t know if the other systems were really alternatives (at least I don&#x27;t know). The answer is boring: Systemd solved many problems, it was there, it worked and we already used many of its tools in our initscripts at the time. There is no specific reason why we did not use $WHATEVER over systemd.</i><p><i>&gt; About launchd: it was never considered. As I said elsewhere, systemd seemed to do what we want and we went with it.</i>
djsumdogover 5 years ago
After listening to the BSD Canada talk on systemd and BSD, I agree Linux does benefit from a system layer. But I still hate the implementation, and you can&#x27;t easily swap out stuff.<p>I really like logrotate and syslog and not needing journalctl for stdout&#x2F;err logs from services. It&#x27;s one of the things that makes working with Docker containers so much nicer too, because you have sane commands to get logs for services; way easier than remember all the weird switches for journalctl.<p>I like NetworkManager (this still hasn&#x27;t been replaced in systemd, right?)<p>I still use OpenRC and Runit on Gentoo&#x2F;Void respectively. OpenRC does dependency management but runit not so much. When it comes to building out VMs and stuff, I see the use of systemd for mount targets, but like I said earlier, I really hate the implementation in target files. It&#x27;s so hard to make drop-in replacements for systemd that can run the same target files because of just how far it goes into the system.<p>For VMs at this point, I honestly prefer minimal startup and running everything in Docker. Alpine or RancherOS seem to fit this bill nicely. If FreeBSD had a current Docker API implementation, it would be perfect.<p>For my desktop, I prefer OpenRC or runit. It&#x27;s just easier to do things and I&#x27;m not fighting with the system layer like I am in Windows. Then again I use i3 and prefer to have more control over my hardware, so that&#x27;s just my use case I suppose.
评论 #21314510 未加载
axaxsover 5 years ago
I don&#x27;t particularly care for Systemd, just out of principle, but I don&#x27;t mind using it. Personally, I feel Arch Linux went downhill after Judd left. Maybe I&#x27;m naive, but I absolutely loved Arch&#x27;s &#x27;rc.conf&#x27;, which was basically an entire system config in one file. That going away, and the adoption of Systemd, really made it feel like a different distro. Not better or worse, mind you, just different.
评论 #21317649 未加载
oaueaover 5 years ago
Meanwhile <a href="http:&#x2F;&#x2F;without-systemd.org&#x2F;" rel="nofollow">http:&#x2F;&#x2F;without-systemd.org&#x2F;</a> (linked from the post) throws database errors. Maybe they forgot to &#x27;enable&#x27; their mysql systemd service?
评论 #21314185 未加载
ddevaultover 5 years ago
I think very few people criticise systemd for its init system, which is pretty decent as far as init systems go. The main complaint is <i>everything else</i> systemd does. It&#x27;s trying to swallow the universe and there seems to be no limits to where its &quot;scope&quot; will end.
combatentropyover 5 years ago
I would like to know what Arch Linux and the other distros thought of alternatives like runit, openrc, and BSD-style init.<p>I can at least sympathize with the arguments for systemd if the only other choice was SysV init scripts. As Richard Gooch once said, &quot;These boot scripts, in the tradition of SysV, can do anything. They are flexible. They are scalable. They can run industrial-strength systems. Unfortunately, they&#x27;re bloated and ugly. OK, maybe they&#x27;re not ugly to everyone (not that I&#x27;ve ever heard anyone admit they&#x27;re elegant, only &#x27;it works&#x27;), but they sure are bloated. They are complex and hard to navigate.&quot; (<a href="http:&#x2F;&#x2F;www.safe-mbox.com&#x2F;~rgooch&#x2F;linux&#x2F;boot-scripts&#x2F;" rel="nofollow">http:&#x2F;&#x2F;www.safe-mbox.com&#x2F;~rgooch&#x2F;linux&#x2F;boot-scripts&#x2F;</a>)<p>But the choice was never just between SysV init or systemd. Couldn&#x27;t Linux have done something like FreeBSD&#x27;s rc? Or I read about the daemontools family of init systems, like runit, which is what Void Linux uses. These systems sound like they solved SysV&#x27;s problems without adding systemd&#x27;s. That is, they are more declarative, easier to maintain, can handle complex dependencies, and can run things in parallel. But they remained unixy: they are small, file-oriented, and don&#x27;t swallow up adjacent software.
upofadownover 5 years ago
This is a very good point. The reason that you have trouble if you just use a bunch of scripts to start up a contemporary Linux is that the underlying system has become quite complex. Now you have to deal with the effects of stuff like udev and dbus. Systemd can be seen as an attempt to paper over the underlying complexity problem with another layer on top. That of course if not likely to work but is depressingly common in the world of OSs. People add things to a simple system until it is no longer a simple system. Eventually it becomes unreliable enough that no one dares extend it further.<p>As a nice counterexample, OpenBSD doesn&#x27;t have stuff like udev or dbus usage during boot. The rc.d system they use is literally just a bunch of scripts and is dead simple and reliable.
bitwizeover 5 years ago
Ah, systemd. It&#x27;s one of those things where I&#x27;m glad it exists, but I hate it. I&#x27;m glad it exists because more open source is good, and diversity of implementations is good. I hate it because it complicates my machine&#x27;s startup process, and my life, unnecessarily, and puts a lot of shit in pid 1 that shouldn&#x27;t be there. I don&#x27;t want it to become a hard dependency of my entire software stack. (Same with PulseAudio, hence why I am not currently a Firefox user.)<p>I left Arch after the systemd transition and didn&#x27;t look back, but I wish Arch devs and users well.
评论 #21319412 未加载
dijitover 5 years ago
Ah, I&#x27;m going to lose karma here because I&#x27;m a sysadmin and not a programmer and programmers seem to really like systemd, and this forum is represented strongly by programmers.<p>Regardless, every time these types of threads come about I feel like I _have_ to speak because there&#x27;s a lot of bitterly divided people regarding this issue. (or, rather the people who are bitterly opposed and the people who don&#x27;t care, think systemd is a net good in the vast majority of cases or those who think the backlash is very much unwarranted).<p>I&#x27;d like to say first off: SystemD solves real problems that nothing before it was solving, maybe it doesn&#x27;t solve those issues in the way I personally like, but it definitely does and was one of the first to do so- so for this reason the original maintainers should be warranted respect, it&#x27;s also a given that it&#x27;s not the developers fault that this is so widely adopted or even forced. I see them as problem solvers first and foremost so any gripes I have with systemd as a thing which is foisted upon me is definitely not on them.<p>However, I do consider that systemd as a new -layer- between user land and kernel space (called &quot;system space&quot; by Poettering) necessitates a lot of breaking changes. I do not consider this by itself as a bad thing, but having a poorly defined interface for these things does not enable systemd to be replaced without some form of &quot;systemd-esque&quot; emulation in future.<p>Thus while we have improved from where we were, we do not have fertile ground to improve in the future.<p>Additionally; SystemD as a &quot;modular&quot; system is, in my opinion, a myth; even if you take for granted the fact that systemd+journald are the only core dependencies, you then quickly start to drag in more and more rapidly (udev and systemd-resolved being famous examples).<p>Some design paradigms are scary, for instance socket activation leaves PID1 listening for traffic on the network, by default bound to all interfaces. (a good example is to look at cockpit) this could be a very large footgun if there exists any form of exploit in systemd.. and since systemd is not written in a memory safe language, and the overwhelming majority of security bugs are memory safety bugs... this is mildly concerning.<p>There are other concerns regarding opacity of the dependency system, the fact that no-two-boots are the same and thus some race conditions are likely to never be solved by me. (a lowly sysadmin type who only knows enough C to make linked lists). The design very much reminds me of Microsoft Windows in many ways, but perhaps that was a good design to choose from?<p>FWIW: SystemD is amazing on my laptop, I am really happy with it. But for my servers I am very unhappy with it, but the major distributions chose to use systemd and I&#x27;m a sysadmin so I&#x27;m beholden to what the company considers stable and developers.<p>I very much begrudge the fact that I&#x27;m not allowed to have a dissenting opinion on this.<p>I also hate that when people talk about systemd vs &quot;anything&quot;, invariably people assume I am talking about openRC or sysvinit, but there are much better init systems available today, such as Runit.<p>SystemD is not a panacea, it should leave fertile ground for replacement. If that cannot be done it should not be adopted because that is a scary amount of lock-in.
评论 #21315020 未加载
评论 #21314658 未加载
megousover 5 years ago
I agree with an event driven supervisor daemon architecture, and that shell scripts are inefficient.<p>But writing everything in C in non-scriptable way may be a bit of over-reaction to the old ways of having everything scripted in the least efficient way possible.<p>I also write my init systems in C (not for generic Linux distro, mostly for embedded HW&#x2F;mobile use), but I&#x27;m planning to make it so that I have a program in C that offers some primitives and the core logic will be implemented using an embedded JS engine, so that it&#x27;s scriptable and fixable without re-compilation.
Mathnerd314over 5 years ago
(2016)