Live data from Hacker News

Interview: Lennart Poettering

linuxvoice.com

61–70 of 91 posts

Re: Interview: Lennart Poettering

#61
post #9

Earlier quoted context omitted.

Care to point out which remarks were clueless or trollish?

The interview wasn't as bad as I expected from the OP's opinion but this one seems mind-bogglingly wrong: "What’s typical for Unix, for example, is that all the tools, the C library, the kernel, are all maintained in the same repository, right? And they’re released in sync, have the same coding style, the same build infrastructure, the same release cycles – everything’s the same. So you get the entire central part of…

It is you who is "mind-bogglingly wrong". Perhaps you should read up a bit on real UNIX systems.

https://www.over-yonder.net/~fullermd/rants/bsd4linux/03

Re: Interview: Lennart Poettering

#62
post #34
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. That's where the disagreement lies. I see the purpose of an init system as being to transition the machine from one state to another. Sometimes this means starting executables. Sometimes it means stopping them. Sometimes it involves more complicated tasks. > This is going to be like X, a huge pile of unmaintainable code…

Yes, "init" is a bit of a misnomer, given that it also handles shutdown/runlevel transitions. I see the big difference here as being between the people who think that the job of the OS is to provide a simple base for executing user-defined scripts, and well, everyone else. I think that an appropriate analogy would be handcrafted goods versus mass production. Linux has been transformed into a wide variety of products at various times, and while I don't think the init scripts played a very large role in any of that, the idea that the OS is what you choose to turn it into does have strong credence in this community.

The other side of the debate, I think, are the people who feel like a collection of init scripts should be refactored somehow, and mostly this seems to involve rewriting things in C, adding dependency annotations to init files, and implementing support for cgroups. At least that's what OpenRC has been doing. Systemd unit files go a step further, but it's a good step in my opinion. Anything that any two scripts do should be refactored into a common method or library, and hopefully that process leaves very little for the init script or unit file to do.

It doesn't matter to me personally whether this stuff gets done in Bash or C; I can't really maintain either. I could probably write a unit file if I had to. I understand there are lots of people who have put lots of time into writing Bash scripts. Some sysadmins may even think that their job is to write scripts. These people should continue to write all the scripts that they want, because Linux is all about that, but maybe they should also let other people write a decent plumbing layer for Linux, because modern OSes are all about that.

Re: Interview: Lennart Poettering

#63
post #6
post #5

Earlier quoted context omitted.

I don't get how an opinion like this: "...to make it clear, I think Upstart actually has its benefits. The source code is very, very nice, and it’s very simple, but I think it’s too simple. It doesn’t have this engine that can figure out what the computer is supposed to be doing." is callous and myopic?

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...

It's not really "automagical"; it's all quite well defined.

Honestly, I'll take a dozen 5-line unit files over a single "portable" init script that implements its own utility library, or yet another "simple" init script that's 90% standard boilerplate and still doesn't work because the 10% doing the real work doesn't check PID files correctly ("I can't just kill all processes called foo?") ...

Anyway, the point is that systemd models system states declaratively, solves the dependencies and executes the necessary steps required to reach that state, all without explicitly telling it what to do. If your dependencies are declared correctly, there is little danger of misbehaviour. The advantage to this is that parallelization is free and you never need explicit waits. In practice of course there will be misbehaving units and incomplete dependency declarations, but I think as admins gain experience with systemd those kinds of issues will drastically decrease. You'll still be able to run plain old scripts from unit files. I do that on my home server to start containers. since the contained process doesn't background itself and just prints to stdout and stderr, when started via systemd all its output will go into the journal and the tail shows up when I do "service container@foo status".

Analogous to SQL, I suppose something like "systemctl explain" might be useful. There's list-dependencies, which gets halfway there.

Re: Interview: Lennart Poettering

#64
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.

Then the process supervisor can then launch your processes. But then all init is doing is launching your process supervisor. We can just drop a step by providing the process supervisor executable to the kernel. There is no need for init anymore.

Re: Interview: Lennart Poettering

#65
post #45

Earlier quoted context omitted.

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

Okay. So, init starts the process supervisor. Then, the process supervisor starts everything else. Then all of a sudden, something goes wrong and the process supervisor crashes. Init then inherits all the children, and has no clue what's going on with them, so your system is hosed. What benefit is there to having the init be separate from the process supervisor? EDIT: let me just expand on this a bit... Monit and oth…

Now you have the process supervisor in your init. What happens if your supervisor crashes now?

So obviously that's not a good idea.

Additionaly it bears the problem that you can't upgrade your process supervisor without rebooting.

So what benefits does it actually provide?

Re: Interview: Lennart Poettering

#66

The part about Gnome and logind vs consolekit could have been more detailed. Poettering was sitting as co-maintainer of consolekit for some time. Then as logind got underway, the maintenance was to pass to Ubuntu under a new project name. But i can't find any trace of this actually happening. After that the state of consolekit as a project seems to have been in limbo, until recently when a XFCE dev forked the existin…

Oracle actually picked up ConsoleKit and beefed it up significantly for Solaris, giving it true multi-seat support. [1]

However, they did this in complete silence, so very few people actually know about this.

[1] https://hg.java.net/hg/solaris-desktop~spec-files/file/79574... (15 patches)

Re: Interview: Lennart Poettering

#67
post #14

Lennart seems to harbor this very strange belief that developing your software in one repository makes you Unix-like, and that this alone is sufficient entirely. So by this logic, a standalone Unix kernel is not Unix-like, but a fully integrated DOS clone, is. In addition: Then we convinced the Fedora Technical Committee to adopt it, and then Red Hat internal management accepted it for RHEL, and we managed to convinc…

>> Then we convinced the Fedora Technical Committee to adopt it, and then Red Hat internal management accepted it for RHEL, and we managed to convince every committee that mattered, bit by bit. > So there was, in fact, a PR campaign. So, how would you spread a piece of software without convincing people of it? I'm not sure what's bad about it?

It should be interesting to investigate about how other technology shifts happened before. Were they an obvious revelation or the result of lobby/PR/... ?

Re: Interview: Lennart Poettering

#68
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...

It's not really "automagical"; it's all quite well defined. Honestly, I'll take a dozen 5-line unit files over a single "portable" init script that implements its own utility library, or yet another "simple" init script that's 90% standard boilerplate and still doesn't work because the 10% doing the real work doesn't check PID files correctly ("I can't just kill all processes called foo?") ... Anyway, the point is th…

pkill foo or killall foo?

Re: Interview: Lennart Poettering

#69
"But we believed that an init system should work the other way around, where you say: this is where I want to go to, and you figure out the rest. Because of that design, Upstart was very simple, but it put a lot of complexity on admins and developers, because you actually had to write down all these rules"

...and this is the problem. Pushing this kind of complexity into PID 1 (or however systemd achieves this) is exactly the wrong solution. The init system should not be clever, or contain an "engine that can figure out what the computer is supposed to be doing" as he says later. This really smells of second system syndrome.

In reality even with a simple init that pushes complexity to the admins, end users rarely incur the cost. The distribution authors set up init as needed and end users don't need to worry unless they makes changes. Then you get the best of both worlds: easy maintainability and a simple, reliable init system.

Re: Interview: Lennart Poettering

#70
post #65

Earlier quoted context omitted.

Okay. So, init starts the process supervisor. Then, the process supervisor starts everything else. Then all of a sudden, something goes wrong and the process supervisor crashes. Init then inherits all the children, and has no clue what's going on with them, so your system is hosed. What benefit is there to having the init be separate from the process supervisor? EDIT: let me just expand on this a bit... Monit and oth…

Now you have the process supervisor in your init. What happens if your supervisor crashes now? So obviously that's not a good idea. Additionaly it bears the problem that you can't upgrade your process supervisor without rebooting. So what benefits does it actually provide?

Both of you are really close to agreeing ...
Post reply on HN