Darknedgy

blog.darknedgy.net · Personal blog · on HN since 2015

Darknedgy is a pseudonymous systems writer covering init systems, operating system design, microkernels, and the history of systemd.

What HN saysCommenters call its systemd retrospective the best and most thorough critique of systemd's complexity and organic growth, and cite it in init system debates.
41HN people shared it
28linked it in comments
22stories submitted
1.6Kstory points
3 months agolast shared
2015people per year2026

Most-shared posts

  1. 1
  2. 2
  3. 3
    Microkernels are slow and Elvis didn't do no drugs
    6 people · 170 points · first shared 2016 · 132 comments on HN
  4. 4
    A history of modern init systems (1992-2015)
    6 people · 69 points · first shared 2015 · 10 comments on HN
  5. 5
  6. 6
    Why FreeBSD should not adopt launchd
    4 people · 96 points · first shared 2015 · 14 comments on HN
  7. 7
  8. 8
  9. 9

What HN people wrote when they linked it

kbenson · 2020-12-14
It's not that it has warts, it's that it's overly complex for what it does, and beyond the initial feature set wasn't so much planned as organically grown. I think the best and most thorough explanation of this is gotten through reading the systemd retrospective[1] that someone posted earlier this year. What becomes abundantly clear when reading it is what I think I was trying to express above, that there is so much that could be better in systemd but that it's hampered by it's own legacy baggage, which accumulated very quickly and very soon after the first implementation was released. That link is a long read, but if you have any time or effort invested into systemd and systems that use it, and find yourself having to create unit files or diagnose weirdness with services, it's very worthwhile to read if you haven't already. 1: https://blog.darknedgy.net/technology/2020/05/02/0/
zozbot234 · 2020-12-05
byuu · 2015-11-20
Just a word of warning, Jordan Hubbard and Kip Macy work for iXsystems and are pushing for both PC-BSD and FreeNAS to move to NextBSD, which is basically bringing half of OS X into FreeBSD. (Probably inspired by Jordan's days of working at Apple.) Which many people, including myself, feel is a disastrously bad idea (ex http://blog.darknedgy.net/technology/2015/08/26/0/). It has a lot of similarities to Linux and systemd. As such, I've switched to recommending people just go with FreeBSD lately. It's a bit of work, but with some helpful guides, you can help people avoid most of the pitfalls (ex http://files.byuu.org/temp/os/freebsd-10.html). And once you learn the basics, you'll be in a great position to administer your system going forward.
vezzy-fnord · 2015-10-09
I don't know of many people who actually liked sysvinit. It's mostly apathy due to its low surface (though actually sysvinit is still monolithic and overly coupled compared to members of the daemontools family like runit or s6). It's a red herring, anyway. People have been replacing classic BSD and SysV initialization schemes since 1992 [1], but systemd was the first to penetrate the scene quite massively for a plethora of reasons that no one can seem to agree on. [1] http://blog.darknedgy.net/technology/2015/09/05/0/
JdeBP · 2020-01-12
> distros still using SysV exist if it matters to you As a BSD user, it wouldn't matter to xem at all. The BSDs never used the AT&T System 5 mechanism, nor its van Smoorenburg clone. It's you the Linux user that it matters to, and even then not nearly as much as you are implying it might matter to someone else. It pretty much hasn't mattered greatly to anyone apart from Linux, and before it Minix, users for 30 years. There is a fallacy in discussions of systemd, which was called out by the Uselessd Guy years ago. It is the fallacy that only systemd and van Smoorenburg init/rc exist. This is not the case. It wasn't the case for Ubuntu and Fedora. It is especially not so when a BSD is the topic. The BSDs have a quite different family heritage in this area. But then, AT&T Unix itself actually has a different history to what people who bandy about the erroneous "SysV/systemd" dichotomy think. The init/rc that Miquel van Smoorenburg cloned had actually already been superseded years before Linux was even invented. It wasn't used in the BSD side of the universe at all. But it was only a major mechanism in the AT&T side of the universe for just over half a decade, in the 1980s. The BSD side of the universe could turn around and observe that they were right all along; were it not for the fact that the other side of the universe largely thought better of the mechanism as well, coming up with the SAF in 1988 and the likes of the SRC in 1991. (-: Of course, the BSD…
snvzz · 2018-01-14
>From my understanding, it was designed to be a small, verifiable kernel intended for use in applications with high-end reliability requirements (e.g., military, aerospace). It's immediately and very obviously useful for these fields. It is small indeed, because it follows the principle of minimality, introduced by Liedtke's L4. But do not get this wrong: It is a general purpose µkernel. This principle of minimality (the supervisor mode µkernel should only do something if it can't be done by a service in user mode) is the difference between 1st and 2nd generation µkernels. seL4 is a 3rd generation µkernel: It's designed around capabilities. Genode is building a framework to create OSs based on µkernels. They do support many µkernels, but there's been some serious effort put into their seL4 support. Genode isn't quite there yet for this purpose, but does have ambitions of being the base for a general purpose OS. Here's a 2014 update on lessons learned from L4. https://www.youtube.com/watch?v=RdoaFc5-1Rk If at any point you've thought "sure, but doing things like this is slow", then I suggest reading this. http://blog.darknedgy.net/technology/2016/01/01/0/
horusthecat · 2017-07-11
It's not a holy war, but it does have a lot of politics, which engineers like to pretend don't exist. Here is the only solid criticism of systemd I've read that focuses on design (as opposed to bugs that surface from the sprawling throw-it-over-the-wall approach to development): http://blog.darknedgy.net/technology/2015/10/11/0/ Notably, darknedgy hosted/hosts uselessd, which was a lightweight version of systemd. 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. Technical discussion aside, I rarely see mentioned is that, what in my opinion, systemd resembles a lot of "politics-driven-development" i've worked on before. It's sprawling and ambitious--which means bugs--and like a high-politics project there's a certain incentive i perceive to downplay bugs--which also means it's a great way for RHEL to centralize control over things they didn't have say in previously as well as standardize, etc. I'll go ahead and beat up on it more by saying that if the project is going to be used cudgel-like, I wish it would more loudly start talking about stuff like formal analysis, fuzzing etc., because it would be a great opportunity to promote research-y stuff in the "email your patches" world of OSS development. Which is fine, but running Arch workstations for nearly ten years now, there's been a lot of gore with systemd... more than i'd like to see in PID1. Of course, I hate…
chris_wot · 2016-04-30
I notice you have added an aside :-) > edit: systemd might be perfect for you or other people, I don't doubt that, it might make things easier for some, in some respects in might do some things better, but if the debate (as it is now) is whether it follows the unix philosophy or not, I don't think one can reasonably make the case that it does I can and have made that case :-) I guess we'll agree to disagree. > The way systemd is structured it's next to impossible to use any parts of it outside of systemd Well that's not true. If you want to swap out a systemd daemon with another one, then you just have to write another service configuration file - see here: https://www.freedesktop.org/software/systemd/man/systemd.service.html > nomenclature is ridiculous (system daemon, what's that even supposed to mean?) It's the daemon that runs the system. init, you realise, is a daemon process? As in, it's a process that runs in the background that is not under direct user control? > it suffers greatly from feature creep A lot of folks quite like the features it has introduced, but that's subjective > took over logging using a binary format journald can be configured to do text logging... > gained basic firewall controls It's a component of the system, which doesn't have to be used. > assimilated udev I just cannot understand why this is such a big deal. udev is a userspace daemon that interacts with the kernel, it has had zero negative effect on anyone and it makes total…
Chu4eeno · 2026-07-27
It sounds like Wayland. When you decide to suddenly stuff some of the most complex pieces of software together (the X server and the compositor which sometimes also double as a desktop shell) into giant codebase/process with seemingly no proper plan or roadmap and make up the specification along the way (or just don't, wayland still has no proper XACE replacement, so kiosk tooling etc. is ad-hoc), you get Wayland in its current form. Rant over; if you want to actually find out what is making stuff stall, maybe try bpftrace, DTrace or SystemTap (depending on what your distro ships and what tooling is more familiar/suited to you)? Or just run `perf top` and see if anything stands out. For the boot run `sudo systemd-analyze critical-chain` and see what it is waiting on. And be ready for the nightmare that is the systemd "design": https://blog.darknedgy.net/technology/2020/05/02/0/
juped · 2025-04-26
See: the comment above and its folkloric concept of systemd as some kind of constraint solver Unfortunately no one has actually bothered to write down how systemd really works; the closest to a real writeup out there is https://blog.darknedgy.net/technology/2020/05/02/0/
floam · 2024-08-06
Maybe someone can fix this to point to http://blog.darknedgy.net/technology/2020/05/02/0/
wrs · 2024-02-15
I haven’t been in the weeds with systemd for a while, but this post was very helpful in understanding how systemd actually works, which didn’t match my (or, I would think, nearly anyone’s) intuition as a user of it. I don’t know if there’s any other full technical explanation of how units, jobs, transactions, etc. are actually handled. https://blog.darknedgy.net/technology/2020/05/02/0/index.html#tech-cri… >systemd’s developers and almost all public documentation revolve around a “unit-centric” definition of systemd (except when discussing bugs), but my position is that for systemd-the-service-manager the most important construct is not the unit but the job, and hence one ought to understand systemd in a “job-centric” way.
eesmith · 2021-06-27
I know so very little of systemd as it doesn't touch anything I do. I can pattern match that https://blog.darknedgy.net/technology/2015/10/11/0/ - "Structural and semantic deficiencies in the systemd architecture for real-world service management, a technical treatise" from six years ago (Discussion at https://news.ycombinator.com/item?id=10370348 ) might be relevant. Are those points reasonable? Dunno. If so, have they been addressed? No clue.
ruuda · 2020-07-14
There is https://blog.darknedgy.net/technology/2020/05/02/0/ which puts systemd in its historical context, explains some of the criticism, and then goes into the technical details. It's a long post and the tone makes it difficult to continue reading at times, but I learnt a lot from reading it.
tehalex · 2020-07-14
Here's a good article that I saw on HN a few months ago: https://blog.darknedgy.net/technology/2020/05/02/0/index.html#utopia Also: https://suckless.org/sucks/systemd/ Personally I avoided it for a while because of the hate, but haven't really had issues with it since using it.
dang · 2020-05-16
Do you know of a way to detect whether an article is the same even if the URL is different? In this case the URLs were: repost: https://blog.darknedgy.net/technology/2020/05/02/0/index.html original: https://blog.darknedgy.net/technology/2020/05/02/0/
carapace · 2020-05-04
I had just read "Systemd, ten years later: a historical and technical retrospective" so it was on my mind. I know they didn't invent it but I associate that kind of attitude with that project. Shouldn't have mentioned it, really. https://news.ycombinator.com/item?id=23062072 https://blog.darknedgy.net/technology/2020/05/02/0/
prrls · 2017-10-10
Thanks for your reply, will definitely read this mailing list thread. I remember of this long article, that, technically demonstrates that systemd is badly designed, as you said: http://blog.darknedgy.net/technology/2015/10/11/0/ Didn't read it entirely at the time as it dives really fast into the technical stuff and provides an ever growing flow of informations that you have to absorb to understand it correctly. Seeing people like you being so concerned with systemd makes me inclined to re-read it fully. And why FreeBSD and not voidlinux or something in this fashion ? More secure ? More mature ? Will never be subject to such issues ?
fridsun · 2016-09-29
Clearly you have missed this article: http://blog.darknedgy.net/technology/2015/09/05/0/
combatentropy · 2016-05-06
The choice isn't binary: sysvinit or systemd. There is a third way. I'm not much of a sysadmin, but I'm intrigued when I read of daemontools and its ilk. http://homepage.ntlworld.com/jonathan.deboynepollard/FGA/daemontools-f… http://blog.darknedgy.net/technology/2015/09/05/0/
nextos · 2016-02-14
It is, but it doesn't suffer from some SysV issues. It brings other issues of its own [1], and it is at odds with the Unix philosophy. [1] http://blog.darknedgy.net/technology/2015/10/11/0/
ploxiln · 2024-08-19
Just using the example of "df -h" and "mount" ... all the extra stuff that wasn't there 15 years ago, is from systemd. The idea is to auto-enable anything anyone might possibly want, to whatever extent possible, and I don't like it. I also noticed the /var/credentials/ mounts showing up recently; that's for a systemd feature that neither I nor you actually use, to set encrypted secrets for these services in a way that is exposed only to those services via a centralized framework. If you didn't explicitly use it, it's all empty. But it started years ago with the mounts for efivars, pstore, binfmt-misc, kernel/debug, kernel/security, etc. Sure they're useful sometimes, but they shouldn't be enabled until you have a need and then explicitly enable it. Well, that's my preference, so I always start with minimal debian or arch linux, but even on such minimal systems that have switched to systemd, you get all this stuff enabled and mounted by default. If you're actually using a tmpfs mount, like perhaps just one on /tmp, then you do want df to tell you how full it is. The problem is that you have 20 fs mounts that are truly useless to you, and IMHO should not be there. And ironically I think systemd developers do have a strong opinionated design vision, and if you don't like it you can pound sand (or use void or alpine for a desktop system I guess), because they have successfully taken over the vast majority of the desktop and server linux ecosystem. Anyway I still like linux for…
chronid · 2016-04-30
The discussion was already made a thousand times about pratically all the points, from why there is no issue to udev being an external project and not supporting exclusively systemd (with an additional "fuck you gentoo developers" in the ML), to extreme appetite to fagocitate everything as fast as humanly possible, to pretty big bugs ("oh sorry, journald is not fast enough to write your gigabyte-sized core dump, let me cut it in half using this constant I randomly decided was good enough!" left alone for years) and to all the problems of the design of systemd [1]. Maybe it is my impression, but this blog post cheapens it - a lot. Sure, it was pushed hard by RH (inspired by Sun's SMF), it had some (quick) wins, it solved (some) issues for distro mantainers - though they have to remember to patch some components to not use defaults that make no sense, like google NTP servers - and the DEs jumped on it because it simplified mantaining their code (making them not portable in the process, but who cares!). It seems it "won"... Like HAL did win, a lot of time ago, in a similar way (IIRC). We'll see. It's not that heavily deployed in production yet. [1] http://blog.darknedgy.net/technology/2015/10/11/0/
cisstrd · 2016-04-30
The way systemd is structured it's next to impossible to use any parts of it outside of systemd, nomenclature is ridiculous (system daemon, what's that even supposed to mean?), it suffers greatly from feature creep, took over logging using a binary format, gained basic firewall controls , assimilated udev, incorporated a bootloader, ... and some additional things people took/take offence with: introduced to quickly, criticism was shut out instead of being debated, promises were broken, main developers behind it are quite arrogant and often ignorant when dealing with complaints/bugs... et cetera there is a reason why Lennart is good in stirring up controversy, and it's not because everyone is just against him for no reason. some further reading/links that might interest you: https://lkml.org/lkml/2014/8/12/459 http://without-systemd.org/wiki/index.php/Arguments_against_systemd http://www.infoworld.com/article/2608798/data-center/systemd--harbinge… http://www.infoworld.com/article/2608864/data-center/choose-your-side-… http://www.infoworld.com/article/2608870/linux/you-have-your-windows-i… http://blog.darknedgy.net/technology/2015/10/11/0// http://suckless.org/sucks/systemd edit: systemd might be perfect for you or other people, I don't doubt that, it might make things easier for some, in some respects in might do some things better, but if the debate (as it is now) is whether it follows the unix…
nickpsecurity · 2016-03-07
Oh ok. I can't speak for Shapiro as I don't know him outside his research papers and such. However, it seems like he's parroting the blunt, mocking style Linus uses to counter Linus's own claims. That there was a ton of counterevidence [1] since Linus last made those... which the opposition quotes in these debates... means he's intentionally ignoring evidence in favor of speculation. Hence, it might be right to slam him. Far as coherency, remember that the context is operating systems and applications on one machine. Both AST and [1] show plenty of examples of their approach working without the problems Linus indicates they'll have. Whereas the Linux kernel and apps have experienced most of the problems they (and I) claimed it would due to design and implementation choices. Still experiencing many of the same. So, Linus's confidence in his original beliefs and same misconceptions about alternatives in 2016 isn't justified. "On a related note, does anyone know whether Linus is interested in operating system research besides linux or if he leaves no time for that? I mean, he started linux as a vocational research project, would seem fitting if he started another one on the side, for experiments. Buit then I'm not sure how much he's writing code or mails." I have no idea. He didn't indicate it in any I've read but I haven't seen clear statements against it aside from microkernels or anti-UNIX. Seems more like he's got his life-long project he maintains and has made to do…

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close