Live data from Hacker News

Without Systemd

without-systemd.org

51–60 of 89 posts

Re: Without Systemd

#51
post #42

Earlier quoted context omitted.

> Systemd itself is a monster running as PID 1, which is not very wise from a security perspective either. No. Only a small part of systemd runs as PID 1. Systemd is not a monolith, it is a bunch of various utilities. > However, I think the app-ification they are planning to deploy in Linux systems is extremely dangerous. I agree. This sounds scary. However, it does not mean that distros will hurry to adopt this kind…

> Only a small part of systemd runs as PID 1. Systemd is not a monolith, it is a bunch of various utilities. Ahh, there's the talking point I mentioned in my earlier post[1]. What you're not understanding is that when we describe something as "monolithic" (or "modular") we're talking about if the design[2], not the number of binaries it happens to compile into. This is about minimizing complexity, and the way to do t…

This honestly seems like FUD. Currently the Sys-V like serialisation of services at startup hasn't been efficient, and sysvinit doesn't handle event based kernel features at all well. And it's definitely not modular.

As for this argument that it's monolithic in its code organisation - lolwut? You don't need to have a seperate repository for each binary, hardly anyone does that. When you talk about clearly and vigorously defined interfaces, it seems to already have them - and I hardly consider sysvinit to be a great example of such a thing - a bunch of cobbled together shell scripts serialised into a particular order isn't particularly clean or elegant. Heck, it's not even necessarily easy to troubleshoot if things go wrong. The systemd source is in one git repo, sure, but I can't see why maintenance will be a burden. What in particular concerns you?

You do realize that there are only a few binaries? Let's look at them:

networkd: handles network events - when a network device is created it handles setup. No, it does not supplant udev. Read here an overview: https://coreos.com/blog/intro-to-systemd-networkd/

Not a bad idea here: and very sensible aspect of systemd.

journald - collects log data from a variety of sources and puts it into a binary indexed data file. The most controversial aspect of systemd, but of course as is overlooked all the log data can be forwarded to syslog, kmsg, the console or wall via a simple configuration change.

Or, you can swap out the component: https://fitzcarraldoblog.wordpress.com/2014/09/20/change-sys...

logind handles logins

systemd-user-sessions.service allows restricting user logins via PAM

Then there are the systemd units - it handles sockets for socket activation, which is a key reason Debian chose systemd over Upstart. It handles devices via udev, mount points (a key aspect to initialising systems), automount, swap, path-based activation and timers.

I can't see how any of the above should NOT be part of an init system. Init systems should be capable of handling dynamic events. All the technical arguments I've seen so far, with the exception of binary log files, don't hold any water. There are apparently security concerns over PID 1 - but they seem rather specious. Have a look at the dependency list here at https://people.debian.org/~stapelberg/docs/systemd-dependenc... if you don't believe me.

There's a lot of bashing of systemd, but most of it (if not all of it!) is unwarranted and can be verified with even a modicum of research.

Re: Without Systemd

#52
post #31

Earlier quoted context omitted.

Pulseaudio had bugs which caused problems, but what in particular is it about the design of PA that is flawed?

Massively overdesigned while trying to solve a problem that almost no one had (network transparency). FreeBSD's implementation of /dev/dsp is a good example of how simple it can be.

Pulseaudio does network audio right and I have been using it for that purpose since it first existed. So from my prospective the mistake was adding in all the other junk.

The root cause of all the complexity is (was?) the lack of standardization for hardware interfaces. The lack of some globally usable way of dealing with latency at the OS level is another issue. A thing like Pulseaudio is a natural reaction to the current situation in that it tries to both hide the complexity of the hardware interfaces and deals with the latency issue entirely in one program.

So the problem isn't Pulseaudio. The problem is the environment that media is forced to exist in.

Re: Without Systemd

#53
post #32
post #13

Earlier quoted context omitted.

I like many things systemd has brought. However, I think the app-ification they are planning to deploy in Linux systems is extremely dangerous. Essentially they are implementing app bundles as containers [1]. All good lessons learnt from package managers? Gone. Nix? Forgotten. Imagine a heartbleed like scenario. In a controlled situation with a distro that uses a package manager this is easy to fix. Just upgrade the…

> Systemd itself is a monster running as PID 1 I have yet to see a convincing argument for this. Is the binary bigger than other inits? Does it do that much more? Link please.

It's not. See https://people.debian.org/~stapelberg/docs/systemd-dependenc...

Re: Without Systemd

#54

Earlier quoted context omitted.

Lennart Poettering has a different view on Unix philosophy, it's more 'make it interesting and do what you need to'. I think nobody is right or wrong. This is all growing pain and, as I often say, at the right time I'm sure there will be tinier systemd-like built to be more Unixy (as in 'small set of smaller composable tools').

Something like systemd except being ONLY an init system would be really great.

I challenge you to show me what part of systemd isn't directly related to inititialization of services.

Re: Without Systemd

#55

Earlier quoted context omitted.

Something like systemd except being ONLY an init system would be really great.

I challenge you to show me what part of systemd isn't directly related to inititialization of services.

Maybe the parameters and interface will simplify over time. Patterns emerge with use.

Re: Without Systemd

#56
post #19

Earlier quoted context omitted.

http://uselessd.darknedgy.net

This looks surprisingly tempting. I agree with a lot of the ideas behind systemd, but at the rate it is growing, I'm going to type this in systemd-firefox in systemd-xmonad in six months. How stable is it in practice?

I can't see why most people would want that, with the exception of replacing journald. Why strip out device init, or even timers? Swap init is less useful, but I don't see the harm.

What is it that makes uselessd attractive? And why do you consider systemd to be bloated?

Re: Without Systemd

#57

Earlier quoted context omitted.

I challenge you to show me what part of systemd isn't directly related to inititialization of services.

Maybe the parameters and interface will simplify over time. Patterns emerge with use.

Yeah, that doesn't answer my question. What isn't necessary?

Re: Without Systemd

#58
post #42

Earlier quoted context omitted.

> Only a small part of systemd runs as PID 1. Systemd is not a monolith, it is a bunch of various utilities. Ahh, there's the talking point I mentioned in my earlier post[1]. What you're not understanding is that when we describe something as "monolithic" (or "modular") we're talking about if the design[2], not the number of binaries it happens to compile into. This is about minimizing complexity, and the way to do t…

This honestly seems like FUD. Currently the Sys-V like serialisation of services at startup hasn't been efficient, and sysvinit doesn't handle event based kernel features at all well. And it's definitely not modular. As for this argument that it's monolithic in its code organisation - lolwut? You don't need to have a seperate repository for each binary, hardly anyone does that. When you talk about clearly and vigorou…

As for this argument that it's monolithic in its code organisation - lolwut?

I think what the parent poster meant is that despite being modularized into several components, systemd has interdependencies between them, its individual subsystems not being able to be seamlessly swapped out. Indeed, many components (nspawn included) depend on systemd-as-PID1. As such it is monolithic.

...and I hardly consider sysvinit to be a great example of such a thing - a bunch of cobbled together shell scripts serialised into a particular order isn't particularly clean or elegant.

You're confusing sysvinit with sysv-rc.

You do realize that there are only a few binaries?

Have you actually compiled systemd? The binaries probably exceed a hundred at this point. The count given for 204 was 69.

The most controversial aspect of systemd, but of course as is overlooked all the log data can be forwarded to syslog, kmsg, the console or wall via a simple configuration change.

With two caveats: Forwarding to other sources has a priority loss and doesn't have the same reliability/ordering/completeness guarantees (even if the claim is they "try hard": https://wiki.freedesktop.org/www/Software/systemd/syslog/), journald hijacks /dev/log and expects all syslogd implementations to conform to its own standard.

logind handles logins

Far more than that. It handles user sessions, seats, suspend/hibernate, some device enumeration, gettys and as of recent, system shutdown. It's basically an extension from system init to session init.

it handles sockets for socket activation

Do you even understand what socket activation is? It's a marketing buzzword for an old and simple concept, and the systemd definition in particular conflates multiple use cases. See this commentary by Laurent Bercot: https://forums.gentoo.org/viewtopic-t-994548-postdays-0-post...

It handles devices via udev, mount points (a key aspect to initialising systems), automount, swap, path-based activation and timers.

Mount points and swaps are just small unit wrappers around the mount and swapon/swapoff binaries. It's oversold. Once again, path-based activation is a buzzword for reacting to file system changes, which you can do by leveraging inotify(7) or fanotify(7) independently.

There's pretty powerful cron replacements these days that can take the place of timer units.

I can't see how any of the above should NOT be part of an init system. Init systems should be capable of handling dynamic events.

Those features could be part of a process manager or a process supervisor, not init(8) itself. init(8)'s duties are reaping orphaned processes and handling high-level global system state at best (like SAK, shutdown, halt, etc.) It should not entangle the state of the system with the state of the OS processes, which systemd does quite egregiously. For example, even Apple had the engineering sense to separate their launchd plist configuration parser from the launchd PID1 itself.

How do you define a "dynamic event"?

Have a look at the dependency list here...

Your list is for systemd-204, which is heavily outdated. systemd moves really fast.

There's a lot of bashing of systemd, but most of it (if not all of it!) is unwarranted and can be verified with even a modicum of research.

Too bad it's apparent that you didn't do much of it yourself.

Re: Without Systemd

#59
post #32

Earlier quoted context omitted.

> Systemd itself is a monster running as PID 1 I have yet to see a convincing argument for this. Is the binary bigger than other inits? Does it do that much more? Link please.

It's not. See https://people.debian.org/~stapelberg/docs/systemd-dependenc...

Extremely outdated. In the 15 versions since then, systemd has evolved quite tremendously with too many things to list succinctly.

Re: Without Systemd

#60

Earlier quoted context omitted.

I may be showing my gray ear hairs, but I remember the early days of Gentoo where ZOMG boot 3ms faster by optimizing! The init portion of systemd reminds me of those days. Your mention of requirements for service execution is certainly an interesting avenue for me to think about. Honestly for my day to day "spin up VM, do some experiments/coding, fine tune" it doesn't matter. For some other work I am doing dealing wi…

> The init portion of systemd reminds me of those days. There is quite a big difference in that systemd was never designed to boot fast - it was designed first and foremost to boot correctly , and the much increased performance was mostly a happy accident of the design they came up with.

This isn't backed up by Lennart's own blog post about the initial Systemd development:

> Unfortunately, the traditional SysV init system was not particularly fast.

> Another thing we can learn from the MacOS boot-up logic is that shell scripts are [...] slow in execution.

> it is also our plan to experiment with systemd not only for optimizing boot times

It seems like the real motivation was exactly reversed from your comment - speed first, and correctness as a happy accident.

He does put up a later post (biggest myths about systemd) some three years later which tries to change this impression, but that reads much more like an attempt to move the goalposts than an actual design goal.

http://0pointer.de/blog/projects/systemd.html

Post reply on HN