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…
Interview: Lennart Poettering
61–70 of 91 posts
Re: Interview: Lennart Poettering
#62"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…
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
#63Earlier 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...
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
#64Earlier 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.
Re: Interview: Lennart Poettering
#65Earlier 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…
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
#66The 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…
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
#67Lennart 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?
Re: Interview: Lennart Poettering
#68Earlier 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…
Re: Interview: Lennart Poettering
#69...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
#70Earlier 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?