You can also read The problem with the anti systemd attitude.

This is not just hatred towards systemd, it can do things very well, the direction it is going isn't great.

all 53 comments

sorted by: hot top controversial new old
[–] 94 points 1 week ago (10 children)

Linux is the second-most popular descendent of Unix, the first being OSX.

This ruffles my feathers. Disregarding servers where Linux has near monopoly, surely Linux is installed on more devices and has more users than OSX? OP is clearly counting only desktop users

  • source
  • hideshow 10 child comments
  • [–] 23 points 1 week ago (2 children)

    alternative reality where macos is the backbone of servers worldwide eurhghghrugr

  • source
  • parent
  • hideshow 2 child comments
  • [–] 10 points 1 week ago (2 children)

    Linux is the second-most popular descendent of Unix, the first being OSX.

    Linux is not really a descendant of Unix. It is a Unix clone, but its roots do not trace back to Unix.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 3 points 1 week ago (1 child)

    OSX comes from FreeBSD, which came from BSD, which had to rewrite everything that they got from UNIX thanks to copyright trolls

    Beyond that OSX just happens to be unix-like, apple couldn't give less of a fuck about it being unix-like

  • source
  • parent
  • hideshow 1 child comment
  • [–] 1 point 1 week ago

    OSX also came from NextStep which came from the original BSD Unix. They used FreeBSD as well. OSX is also certified Unix starting from leopard. This year apple did not renew the certification, so later releases of macOS are not Unix, but Unix-like.

  • source
  • parent
  • [–] [S] 8 points 1 week ago

    Same here, also all embedded system on linux + smartphone. I guess the author meant desktop usage. Still I am very unsure about the world at large. This is north-American take.

  • source
  • parent
  • [–] 4 points 1 week ago (2 children)

    I agree. Linux on desktop is so good for at least five years, if not longer, maybe ten. That I imagine many people using it, can recommend it to others, and so forth. And so in absolute numbers, it would be much more than macOS gets.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 3 points 1 week ago (1 child)

    I use Bazzite and have a Mac, and I despise every second I have to use MacOS. It is unintuitive and painful in comparison. IMO

  • source
  • parent
  • hideshow 1 child comment
  • [–] 1 point 1 week ago*

    I haven’t used macOS since circa 2019, which was Big Sur or something. And it was good, more or so. Perhaps it got worse since then. Specifically the Liquid Ass fiasco, I can believe it’s been a disaster.

    But in general, you need to invest into their ecosystem heavily to enjoy them properly. Say, an Apple keyboard, trackpad, display, headphones, iPhone, iPad, etc. The more you invested, the more enjoyable the experience. Also, you need to use it for years (if not decades) to truly get some ‘think different’ things. Otherwise they just feel stupid and unnecessary. (Some things still very stupid to me, yeah.)

    I’m heavily invested, however, and I still prefer modern Linux. None of my Apple devices run macOS today, all of them are Arch Linux, Fedora, or even DietPi (an old MacBook used as a server).

    In my opinion, Gnome wins as-is. If I’m to suggest a macOS or Linux system to an elder relative, I’d choose Gnome, not macOS. About a decade ago, I’d choose macOS, thinking it’s simpler.

    My favourite thing with macOS that I use on all my Linux machines is cmd key for things like copy paste (all my keyboards are from Apple). So useful, especially in a terminal.

  • source
  • parent
  • [–] 24 points 1 week ago (7 children)

    This is by far the most nuanced critique of systemd I've ever seen. I don't fully agree with its conclusions personally, but I think it makes a lot of good and valid points about its architecture and its flaws. It feels like such a breath for fresh air in comparison to the most vocal anti-systemd types who vaguely and angrily gesture at "scope creep" and refuse to elaborate further.

  • source
  • hideshow 7 child comments
  • [–] 11 points 1 week ago (5 children)

    This is by far the most nuanced critique of systemd I’ve ever seen.

    It's the same bullshit everyone has always bitched about.

  • source
  • parent
  • hideshow 5 child comments
  • [–] 7 points 1 week ago* (4 children)

    Loosely yes, but I rarely see anyone expound on it beyond "It's bloated and therefore bad". I also rarely see specific criticisms outside of that like journalctl being slow or using a binary format for log files.

  • source
  • parent
  • hideshow 4 child comments
  • [–] 7 points 1 week ago (3 children)

    90% of his argument is just "UnIx PhIlOsOpHy" though. Or arguments (term used loosely) that are based on that. He keeps chanting "But systemd Is MoNoLiThIc" over and over as if that ended the discussion while handwaving away the same argument against Linux or Wayland. But somehow systemd is different. Systemd needs to be crap for some reason.

    It turns out that system boot benefits from tightly integrated steps. Filesystem mounting can depend on network availability for example. Logging depends on filesystems to be mounted. The sub-systems are naturally inter-dependent. And service management and execution needs to know about all those things. Some services need networking, some need file systems, etc.

    You match the design to the problem. You don't pretend like the Unix Philosophy is some gold standard that everything must adhere to.

  • source
  • parent
  • hideshow 3 child comments
  • [–] 4 points 1 week ago* (last edited 1 week ago)

    handwaving away the same argument against Linux or Wayland

    Honestly, I would be happy if there was a mature implementation that was practical to use and was more modular for these too. I'd argue Wayland is much better than X11 in this respect, since the Wayland protocol is much more minimalistic in its design, so I think a big reason why X was superseded was the need for removing things that had been needlessly integrated in the X server and added technical debt.

    If there had been usable and working alternatives that were less monolithic at the time those were launched, and people were actually using them but had to switch due to the pressure of other bigger projects.. then I'm sure there would have been criticisms too.

    Imagine if someone came and proposed "graphicd", a service that combines not just compositor & display manager but also management of priviledges (like polkit), GUI toolkit (like a Gtk/Qt replacement), password manager, terminal emulator, filebrowser, web-browser and any program that might benefit from tight integration with the GUI environment. And it used protocols and methods that are entirely incompatible with Gnome, KDE or other more modular desktop environments, but the API/ABI is so big and fast moving that it's very hard for alternative apps to integrate well with the core of graphicd (the external API on the components is stable, but not the API between the components and the core). Then it started becoming the default everywhere, with some programs adding its specific components (and along with them, the graphicd core) as a dependency.

    Filesystem mounting can depend on network availability for example

    This is one of my pet peeves with systemd.. I've multiple times tried to use mount units (the "systemd-native" way) but I often have always ended up just relying on either the older /etc/fstab configuration conventions or layers like gvfs and custom scripts (through the init.d-like rc.local compatibility service..) because when writting systemd units to mount conditionally remote drives that might or might not be available they sometimes (not even reproducibly) led to problems in one way or another (like sometimes slowing down my boot or even my shutdown).

    The issue is that systemd is considerably more opaque and complex.. so it's hard to tell whether something is a bug in the software, an intentional behavior / quirk, something specific to particular circumstances/cases or an issue in your configuration.

    And I'm not saying all of what systemd did is bad, it has advantages.. but acting as if it doesn't have problems that could be smoothed out with a different approach would not be right either.. it's not like it's impossible to do what you are stating in a modular way, for a long time before systemd was a thing we had syslog implementations (like rsyslog) that handled structured, secure remote logging across networks without needing a monolithic init system to dictate how logging architecture should work.

  • source
  • parent
  • [–] 1 point 1 week ago* (last edited 1 week ago) (1 child)

    Except that the author does not end the discussion at "it doesn't follow the Unix philosophy." Granted, they do spend a number of words refuting the argument that systemd is modular; whether or not it's a strawman, it sounds like you already agree with the author on that point. While they do pay some lip service to the value of the Unix Philosophy, their arguement hardly ends there.

    From the article, (bold emphasis mine):

    This lack of modularity – where “modularity” means free choice in interchanging components for other, unrelated projects – is where most of the criticism of systemd stems. It’s the purest, and most important, criticism of systemd, but my personal grievances against systemd go further. Because, in my experience, systemd isn’t good software.

    The author provides evidence for that claim with examples regarding journald, networkd, and session keyrings. None of those criticisms are specific to the Unix Philosophy. Their whole point appears to be "yes, I value software that follows the Unix Philosophy, and systemd does not, but I believe there are many other valid reasons that systemd isn't good."

    Of course these concerns play into each other, but the nuance there is kinda the whole point. The author points out that it would be a lot easier to use only the good parts if systemd had a more genuinely modular architecture, but it's simply not built for that. And it's a real and material example of a negative consequence of not following the Unix Philosophy. Rather than say "it's not developed with the UP in mind, it must therefore be bad," the author gives a tangible example representative of why they believe that to be important.

    Just as the Unix Philosophy is a thought-terminating cliché (because of course it is), it is similarly unhelpful to claim that consolidation brings performance and cross-cutting capabilities. The proof is in the pudding, and as critical readers we should not overlook valuable perspectives like the one the author has brought.

    (Not that it's critical to your point, but we're you trying to argue that Wayland is monolithic? I have to assume you didn't mean it like that, since it's a protocol that decouples clients and compositors, and it's certainly not monolithic in that sense)

  • source
  • parent
  • hideshow 1 child comment
  • [–] 1 point 1 week ago

    Not that it’s critical to your point, but we’re you trying to argue that Wayland is monolithic?

    No - but that it's monolithic in a similar way that systemd is. Modular but integrated. The author seems to reject this form of modularity as a violation of "the code".

  • source
  • parent
  • [–] 22 points 1 week ago* (last edited 1 week ago) (5 children)

    Every time someone posts about systemd I just paste in the link to the Tragedy of systemd video https://youtu.be/o_AIw9bGogo and move on

  • source
  • hideshow 5 child comments
  • [–] 16 points 1 week ago* (1 child)

    I haven't read the whole article yet, but it bothers me how the author mistakenly calls the init (with the process id 1) pid 0, which is special and belongs to a part of the kernel.

  • source
  • hideshow 1 child comment
  • [–] 6 points 1 week ago (2 children)

    I never liked it much because didn't fit my use case, and didn't see the need for it, but I use it when I need to and honestly it has a few quicrks I don't like but like many other tools.

    But what are you actually referring to? Which direction?

  • source
  • hideshow 2 child comments
  • [–] [S] 3 points 1 week ago (1 child)

    I am not the author (I am asking him right now if I should tag him). I didn't know about dinit but this looks like a nice alternative.

    I would have been fine with just systemctl/journalctl , I really dislike the locking of homed, network, etc. This is very much unnecessary and remove any future possibility of improvement/innovation.

    I didn't care about coredumps as it is part of my setup to disable the dumps to avoid unnecessary garbage on my SSD while activating for debugging with gdb (it is kind of awesome to load the program state from core dumps, also coredumpctl felt like magic).

  • source
  • parent
  • hideshow 1 child comment
  • [–] 24 points 1 week ago (1 child)

    It might not be to your liking or follow your philosophical inclination, but systemd doesn't suck at all.

  • source
  • hideshow 1 child comment
  • [–] 5 points 1 week ago (3 children)

    That article contradicts itself a bit, especially about journalctl. I also don't see how an article from 4 years ago is related to the current direction?

  • source
  • hideshow 3 child comments
  • [–] 4 points 1 week ago (4 children)

    While I get the sentiment, isn't the fact that systemd is broken into various components and you can use or choose not to use each part of it still within the unix philosophy? You can use the init system without using the rest. It just integrates well with the other components.

  • source
  • hideshow 4 child comments
  • [–] 2 points 1 week ago (3 children)

    That argument is addressed in the article. With few practical exceptions, systemd components expect you to be running the other systemd services. E.g. running systemd without journald is not a supported usecase.

  • source
  • parent
  • hideshow 3 child comments
  • [–] 1 point 1 week ago (2 children)

    Not supported doesn't mean it won't work

  • source
  • parent
  • hideshow 2 child comments
  • [–] 2 points 1 week ago* (1 child)

    Fair enough, but there's a reason no one runs almost any of the systemd services in isolation. There's a big difference between "takes a bit of tinkering" and "need to maintain massive patch files to make journald independent of systemd"

  • source
  • parent
  • hideshow 1 child comment
  • [–] 4 points 1 week ago (3 children)

    Even if it is, the biggest problem is that there isn't today a big distro that is not using it. Ubuntu, Fedora, OpenSuse, Arch, Debian, are all using systemd. One can say, you can try Void or Artix, Void repos are small, Artix is small (and kind of non-reliable) project. Or go to Gentoo and compile your applications, no ty.

  • source
  • hideshow 3 child comments
  • [–] 3 points 1 week ago* (2 children)

    Gentoo does support binary repos, I haven't researched them in depth, but creating a binary-only child distribution should be very possible.

    Except as you said - I don't think is popular enough, I don't know how comprehensive the current set of binary packages is.

    But it should mostly be just a matter of actually precompiling everything with a reasonable config

  • source
  • parent
  • hideshow 2 child comments
  • [–] 3 points 1 week ago

    Definitely a very good post.

    It reminds me of Chimera Linux's stance on systemd, which I found to be the best explanation on systemd before these blog posts.

  • source
  • [–] 2 points 1 week ago

    I made the mistake some years ago and moved all my Gentoo installations from openRC to systemd and now I'm too lazy to switch back and I don't want to handle the fallout. when I think about doing rsyslog config and logrotate I start to puke a little. also I heavily use timers and I'm afraid if something I use might not have init scripts. service units are much simpler

  • source
  • [–] 2 points 1 week ago

    Did the author intentionally omit systemd-boot or am I missing something? The EFIStub part of it seems to be the only way to package a UKI. Void Linux even has a package with just the Sub for uses wanting to go that route.

  • source
  • [–] 3 points 1 week ago (3 children)

    "Soldier Found Deep In Jungle, Still Fighting For Extinct Empire!"

    This guy was complaining in the blog post about how bloated systemd is because it uses 36MB of space and it could be done with ~6MB if you used different tooling.

    If you're the kind of user where 30MB of disk space genuinely matters either at scale or in some very niche edge case, then you're also the kind of user who won't have much trouble using an alternative init system or building/tuning your own.

  • source
  • hideshow 3 child comments
  • [–] 9 points 1 week ago (2 children)

    Okay, I agree 30MB isn't a big deal, but that's not really an argument not to optimize. The entire Debian Stable mirror for example has like 70,000 packages in it. Let's say all of those packages took the position that "A few extra MB doesn't matter." If each one had just 1 extra MB that is 70GB of extra bloat. If each one had 2 extra MB that is 140GB of extra bloat. If each one had 30MB of extra bloat that is 2.1TB of extra bloat. Now obviously thats a very unrealistic, and extreme, example, but the point is that with a super complex operating system things add up. We should appreciate the nit picky little dudes who yell over 30MB because they're probably responsible in part for a good bit of cumulative extra disk space for the rest of us.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 4 points 1 week ago (1 child)

    The article is full of dishonest nonsense. It compares file sizes without comparing features. Well, actually it's blatantly lying by saying that the setups have the "same functionality" when they clearly do not. For example, systemd-homed supports encrypted home directories which is potentially a useful feature for shared PCs, but the non-systemd setup uses nothing for managing /home, so it takes 0 bytes. NetworkManager has a size of "N/A" apparently. It looks like there should be notes or citations but they're missing. They're archived here if you're interested, but it's just a bunch of upstream URLs; this doesn't show us what the author is comparing.

    The other related point is also nonsense:

    We can evaluate the “systemd isn’t monolithic” claim based on how it’s packaged and distributed.

    Well, no. We can evaluate how distros package systemd, not what systemd is or isn't. The author uses Arch Linux to show that a systemd-based setup requires 36MB. But as the article itself states, arch linux puts every single binary into a single package. Not mentioned in the article is how Arch Linux also bundles other stuff most people don't need in the packages, like header files, programming manual pages, completions for various shells, default configurations not part of systemd etc. Is the non-systemd setup done in the same way or is the author manually installing 6 executables and calling it "equivalent"? We can't know because one the one side we have a real (worst-case) example of Arch Linux packaging systemd, and on the other side we have "to get the same functionality without systemd, a distribution could use".

    None of this illustrates any waste of space on the entire Debian Stable mirror if you're worried about that. In fact the bundling of systemd component into a small number of packages saves space for Debian (though it potentially wastes space for your PC).

  • source
  • parent
  • hideshow 1 child comment
  • [–] 2 points 1 week ago

    I read the article and find the title to be clickbait.

  • source