Live data from Hacker News

Interview: Lennart Poettering

linuxvoice.com

41–50 of 91 posts

Re: Interview: Lennart Poettering

#41

Earlier quoted context omitted.

I dunno. If it's able to do what you want automatically that's amazing. If I can just plug the printer in and have it work that's amazing. If I can turn the wireless on my laptop on and it works that's amazing. And so on. The problems arise when it doesn't automatically do what you want it to do and you don't have a good way of fixing it yourself. I'm not in a position to understand init systems so I will be in this…

Hotplug isn't the job of systemd to begin with, though. It's the job of the device manager, which on Linux is usually udev (but alternatives like eudev, mdev, smdev and vdev exist) - udev being a part of the systemd repository and to an extent coupled with it (which will become complete when kdbus is merged into mainline Linux), however it's still a rather distinct piece of software that maintains the hardware databa…

There is tight interaction between udev and systemd. Heck, udev was folded into the systemd code (you find it now as a sub-dir of the systemd source tree over at freedesktop.org) because they didn't want code duplication...

This after having udev exist as a independent project for a decade.

These days the only way to download and install udev manually is to download the whole of systemd and then extract udev from that. Something that caused Gentoo to fork udev into eudev.

Re: Interview: Lennart Poettering

#42
post #40

> So we slowly started doing stuff that all the other Linux distros did, and implemented that in simple C code that was fast and parallelised. That's part of my issue with systemd: replacing safe (-r) shell scripts with C. Sure, it's fast, but I trust C about as far as I can throw it (and yes, I realise that the Linux kernel is written in C: it constantly has local root exploits, which proves my point). I really wish…

> That's part of my issue with systemd: replacing safe (-r) shell scripts with C.

Because shell scripts are always safe, right? [1][2][3] We used to get root on Android devices by exploiting poorly-written shell scripts.

> Also, it probably doesn't help Lennart that he looks like the Rolfe Gruber in the Sound of Music…

Personal attacks won't help your case.

[1] https://github.com/ValveSoftware/steam-for-linux/issues/3671

[2] https://github.com/MrMEEE/bumblebee-Old-and-abbandoned/commi...

[3] http://www.exploit-db.com/papers/13199/

Re: Interview: Lennart Poettering

#43
post #23

"if you do an init system but still invoke all the shell scripts and all the other things needed to bring up the system, you’ve only solved part of the problem." That's exactly what I think is wrong with systemd. If a script bring a speed issue on start up, it should fixed by optimizing the script, use/create another script language with parallelism and higher pref, or even turn it into a compiled program. This is no…

> In fact the only purpose of an init system is to start executables in a defined order, not more.

A good init system should also do process supervision and integrate with the OS's resource-management subsystem (on Linux, cgroups). You could do that with an even bigger pile of shell scripts, of course, and some Linux distros towards the end of the sysvinit era have been trying to. But at some point a giant tangle of shell scripts which are full of copy/paste boilerplate and frequent bugs starts to look like not the best solution.

It's not like systemd is the first system to come to that conclusion, either. Solaris dropped sysvinit 10 years ago, and OSX dropped its BSD-ish init in the same year. Earlier than that, djb also wrote an init replacement called daemontools, which was a bit of a step in that direction, though a smaller one. That got some uptake but was hampered by some of the oddities of being djbware (e.g. for years it was "license-free software", and it was only intermittently maintained).

Re: Interview: Lennart Poettering

#44
post #6

Earlier quoted context omitted.

I find myself wondering why the init is supposed to figure out what the computer is to be doing. That kind of "automagical" behavior is what drove me bonkers when trying to use Windows for more than a games console...

I believe it's not about between magical in the general case, but about how you specify dependencies between services, an area where systemd and upstart work differently. See the 'On Upstart' section here [1]. 1: http://0pointer.de/blog/projects/systemd.html

Reminds me why slackware packages do not have dependency resolution, because it invariably breaks. This most often in the sense of X wants Y while Z wants Y+-1. And so you are at an impasse because the dependency resolver can't handle having two versions of Y installed at the same time.

A recent failure of systemd i have seen was related to NFS. For some reason systemd would yank the network down before dismounting NFS.

If you don't unmount NFS before taking down the network, it will sit there forever waiting for that final server response.

Another example was where while mount would happily ignore a flawed fstab entry but mount the rest, systemd would bail on the whole mount task and so halt the boot process.

Re: Interview: Lennart Poettering

#45
post #23

"if you do an init system but still invoke all the shell scripts and all the other things needed to bring up the system, you’ve only solved part of the problem." That's exactly what I think is wrong with systemd. If a script bring a speed issue on start up, it should fixed by optimizing the script, use/create another script language with parallelism and higher pref, or even turn it into a compiled program. This is no…

> In fact the only purpose of an init system is to start executables in a defined order, not more. A good init system should also do process supervision and integrate with the OS's resource-management subsystem (on Linux, cgroups). You could do that with an even bigger pile of shell scripts, of course, and some Linux distros towards the end of the sysvinit era have been trying to. But at some point a giant tangle of…

Process supervising is for process supervisors. Init's jobs is to be able to start a process supervisor.

Re: Interview: Lennart Poettering

#46
post #6

Earlier quoted context omitted.

I find myself wondering why the init is supposed to figure out what the computer is to be doing. That kind of "automagical" behavior is what drove me bonkers when trying to use Windows for more than a games console...

I find myself wondering why the init is supposed to figure out what the computer is to be doing. I've never messed with systemd configuration too much, but is it much more complicated than a make-style "how do I get there from here? OK lets do that"?

That's actually a pretty good summary of the difference between Upstart and systemd, with systemd your services declare what they depend on and your runlevel is now a "target" that declares that it depends on certain services. It does dependency resolution just like a package manager does.

Re: Interview: Lennart Poettering

#47

Earlier quoted context omitted.

> how an opinion [...] is callous and myopic? There have been hundreds of thousands of words written on how simple utilities can form the basis of supportable, complex systems and still retain the ability to be comprehensible. He has dismissed all that as beneath consideration, and he has the One True Vision™ on how Unix should be architected. Don't get me wrong, hubris and self-righteousness have given us great thin…

He has dismissed all that as beneath consideration, and he has the One True Vision™ on how Unix should be architected. I don't see him passing a value judgement on how it should be done, just dismissing a particular criticism as poorly founded. If you look at the difference between the Unix and Linux development models, there is a point. There are a lot of properties to Unix so it's a bad argument to say "not Unixy e…

Focusing on the repository is a distraction.

the whole of systemd sits in a single source tree in freedesktop.org. You don't find system-networkd in one tree, udev in another, systemd-init in a third.

In contrast, each part of XFCE, the window manager, the panel, etc, sit as their own source trees within the XFCE repository.

Re: Interview: Lennart Poettering

#48
post #45

Earlier quoted context omitted.

> In fact the only purpose of an init system is to start executables in a defined order, not more. A good init system should also do process supervision and integrate with the OS's resource-management subsystem (on Linux, cgroups). You could do that with an even bigger pile of shell scripts, of course, and some Linux distros towards the end of the sysvinit era have been trying to. But at some point a giant tangle of…

Process supervising is for process supervisors. Init's jobs is to be able to start a process supervisor.

Are there any examples of a process supervisor that isn't also intended to replace the traditional init system? Even systems less ambitious than SMF/launchd/systemd, like daemontools and runit, aim to replace sysvinit, because otherwise you'd have to specify twice, in different ways, how each service should start and stop (though it's possible to set up configurations where that works).

Re: Interview: Lennart Poettering

#49
post #45

Earlier quoted context omitted.

Process supervising is for process supervisors. Init's jobs is to be able to start a process supervisor.

Are there any examples of a process supervisor that isn't also intended to replace the traditional init system? Even systems less ambitious than SMF/launchd/systemd, like daemontools and runit, aim to replace sysvinit, because otherwise you'd have to specify twice , in different ways, how each service should start and stop (though it's possible to set up configurations where that works).

Supervisor, god, monit, circus, etc.

And even though it can handle both init and process supervision, runit has a clear separation between the two tasks. The "runit" program handles init tasks. The "runsvdir" program handle process supervision. And each one is completely functional without the other.

Re: Interview: Lennart Poettering

#50
post #27

Earlier quoted context omitted.

"So there was, in fact, a PR campaign." Er, how do you think the Systemd developers convinced these technical teams to use Systemd? With bribes? Sexual favours? Or perhaps, you know, using the software itself? It's funny. The lead developers of Arch Linux, OpenSUSE, Fedora, Mageia, Debian etc. etc. etc. have all chosen to use Systemd. Yet for some reason, many commentators assume these people -- distro technical lead…

I believe there's a lot of worry about systemd because what Pottering is doing is relatively new. To grossly oversimplify; the ecosystem of inits among Linux distros looked something like "sysvinit -or- spin your own." So when systemd comes along and starts getting integrated into damn near everything, there's naturally some alarm. There have been endless flame wars about init systems for almost 25 years now. It's al…

Well Fedora/RHEL and the systemd people have something of a relationship.

I don't know the politics that went on with opensuse for it to be accepted there.

Debian has had a big dustup going about it for some years.

Ubuntu was pretty much waiting to see what Debian went with.

Arch was pretty much a dictatorial decree (and one "respin" is not adopting systemd iirc).

Gentoo is trying to stay init agnostic, and so has ended up forking udev to eudev (and Poettering has taken to making verbal pokes in their direction in systemd release announcements).

Slackware is making the choice if it ever comes to a head, but then it has been using BSD init rather than sysv or upstart.

Post reply on HN