Live data from Hacker News

Broken by design: systemd

ewontfix.com

31–40 of 48 posts

Re: Broken by design: systemd

#32

Why don't the anti-systemd folks publish some actual attacks against that big ol' attack surface? I've been using it for maybe 18 months, it was different and different is some times scary but I have had no problems at all. Migrated some legacy init scripts and it's a piece of cake. It's fast, it works, it does what it claims to do. I've been shipping unix software mostly on linux for 15 years and there are very real…

The argument is one of minimizing attack surface, not specific current attacks. I.e. it's a question of selecting the right technology security-wise and attack surface is a big part of that equation because with that surface area comes the strong likelihood that attacks will be found against the process over time. I use systemd because that's what my distro comes with. There are positives and negatives. On the whole…

How has it affected your uptime? Any specifics?

Re: Broken by design: systemd

#33
post #27
post #17

Earlier quoted context omitted.

And all the servers? They are supposed to just keep rebooting all the time as if they were Windows desktops?

If you upgrade systemd or the kernel, yes, you should reboot your machine. Ideally, it shouldn't take more than a minute or two.

Obviously not talking about servers here. Those RAID can take more than a few minutes to spin-up.

Re: Broken by design: systemd

#34
I'll run systemd only after you pry openrc[1] from my cold, dead hands.

FAR too much of the project makes exactly the wrong design choices. The worst of these flaws is the binding of previously-independent components discussed near the end of this article.

This bundling Is not even necessary! The features that systemd gets right - an interesting daemon management tool, and providing a useful default start/stop mechanism ("4 lines of config instead of re-writing the same generic shell script") - can obviously be independent features.

This mess should be limited to merely bad design in a particular software niche(s)., but now we're seeing the "my way or nothing" attitude spill over into existing user-level software. (e.g., Gnome[2] I would probably already be using part of it was properly modular. Instead, the bundle is growing even more monolithic and incompatible.

When a similar "forced upgrade/incompatibility" happened to OpenGL (with ES dropping the traditional fixed-function pipeline, JWZ had a very good summary[3] of the the problem, from a "having to maintain old software" prespective:

    Let's say you have a well-specified system that is in wide use (a language, a
    library API, whatever) and because of changes in some substrate (operating 
    systems, hardware, whatever) you find that you need to add a new way of doing 
    things to it.

    The way you do this is, you add new features to the specification and you 
    clearly document the version in which those features become supported.

    If there are old features that you would like to discourage the use of, then 
    you mark them as obsolete -- but you do not remove them because thou shalt not 
    break working code.

    If you don't agree with that, then please, get out of the software industry 
    right now. Find another line of work. Please.

    Your users have code that works. Maybe the new APIs would serve them better. 
    Maybe things would be so much more efficient if they updated their code to use 
    the new API. Or maybe it doesn't matter to them and they just want working code 
    to continue to be working code. At least until such a time as they need the new 
    features, or new efficiency. Remember the First Rule of Optimization: DON'T. 
sigh - one of the big reasons behind my I left the world of Microsoft and Windows behind ~15 year ago was to be free of this kind of forced change...

1: Not giving up my .xinitrc/.Xresources or E16 theme, either. In all cases (along with openrc/sysvinit), they have over a decade's worth of bugfixes and tweaks. Any replacement would have to be very good to be worth the time/effort involved in switching.

2: to be fair, Gnome has been merging thing that shouldn't be merged all the way back to the beginning of the project, and is as much at fault here as systemd itself.

3: http://www.jwz.org/blog/2012/06/i-have-ported-xscreensaver-t...

Re: Broken by design: systemd

#35
post #28
post #6

I've used systemd on Arch Linux for about a year now. It wasn't the end of the world, I can deal with it, but it's not fun. I'm bothered by seemingly built-in units that have no corresponding unit files, which all default to enabled, including units for bootsplash stuff ("plymouth") that isn't used on arch linux. I'm very annoyed by mounts and such that don't even have units, files or otherwise, such as the "pstore"…

The only Plymouth-specific code I see in systemd is related to asking the user questions at boot-up time, like their mount password, and it works by sending a socket message to a socket plymouth opens, and successfully falls back if it doesn't exist. I don't see any plymouth-related services or unit files hardcoded. I do, however, see a NEWS-related entry from the v186 release: http://cgit.freedesktop.org/systemd/sys…

there are no unit files, but there are units:

[plo@plo-air ~]$ systemctl --all | grep plym

plymouth-quit-wait.service masked inactive dead plymouth-quit-wait.service

plymouth-start.service masked inactive dead plymouth-start.service

Re: Broken by design: systemd

#36
post #34

I'll run systemd only after you pry openrc[1] from my cold, dead hands. FAR too much of the project makes exactly the wrong design choices. The worst of these flaws is the binding of previously-independent components discussed near the end of this article. This bundling Is not even necessary! The features that systemd gets right - an interesting daemon management tool, and providing a useful default start/stop mechan…

I think Gnome has been taking that approach going back years in part because of the opposite criticism: many people attack Linux UI as being a hodge-podge with no coherent design, comparing it unfavorably to a unified UI system like OSX's, which has a coherent and integrated take on windowing/libraries/widgets/etc. One of Gnome's goals was to fix that. They might unsuccessful at doing so, but attempting a unified/integrated UI was/is a core project goal, so I'm not surprised that they'd have no shyness about integrating components that Unix has traditionally kept separate. The tiling window manager scene (which I prefer myself) is perhaps the polar opposite (some wms don't even integrate the status bar into the wm), but isn't really targeting Gnome's target audience either.

Re: Broken by design: systemd

#37

It seems to me that, in keeping with its long tradition of being conservative, Debian should put off switching its init system for at least another release, since systemd is by no means the clear winner from a strictly technical point of view.

Agreed here. Then, at that time, there should be a re-evaluation.

Perhaps also at that time openRC will be a potential candidate and far less experimental.

Re: Broken by design: systemd

#38

Earlier quoted context omitted.

The argument is one of minimizing attack surface, not specific current attacks. I.e. it's a question of selecting the right technology security-wise and attack surface is a big part of that equation because with that surface area comes the strong likelihood that attacks will be found against the process over time. I use systemd because that's what my distro comes with. There are positives and negatives. On the whole…

How has it affected your uptime? Any specifics?

In addition to the prudential concern issues (which are laid out in the article), there are some concrete issues:

With sysv init, it is very easy to add new services that may not be supported out of the box. There are scripts like rc.local, etc, which can be edited to start anything. This means that setting up a new service that can be supported properly is a lot more work, especially if it is for development systems. While I haven't had systemd crash, I have had issues with stuff requiring manual start (i.e logging in as root and running the startup script for the app) when a simple rc.local-type approach would have been far simpler.

Another problem I have had is the issue of process accounting, where if the process starts up a daemon and exits, then systemd has trouble determining the status properly. This can cause issues for things like monitoring (which means basically I don't use systemd for monitoring whether services are running).

What this means, in essence, is that to make this work the way I would like I have had to reinvent part of the sysv init system inside of systemd and then handle things like process tracking the old fashioned way (pid files and shell scripts).

In short, in addition to the "I don't want my system to have to reboot and this is a bad architecture for that requirement" you have quite a bit of areas where there are leaky abstraction layers which don't really add any benefit to administration of the system.

Re: Broken by design: systemd

#39
I like this writing. Solid.

But, I'm curious: What are the specific deficiencies the author sees in daemontools? "Not ready for primetime."

I mean, it's so typical for bloggers to say certain software is this or that (some generalisation), without giving details.

I don't know much about systemd. I find Linux too chaotic, a moving target that moves a little too frequently for my tastes. It's changes like these that I find take too much energy to follow.

I doubt it's a problem specific to Linux though. As a BSD user, I've been amazed with how much init.c has grown in size over the years. A variety of developers have touched it.

Re: Broken by design: systemd

#40
post #31

AFAICS, the arguments about restarting pid 1 on upgrade being a problem also apply to sysvinit, which has been restarting itself on upgrade for 20 years.

Except that sysv init, having tiny attack surface, very rarely needs updates.
Post reply on HN