Lennart Poettering
Total Page:16
File Type:pdf, Size:1020Kb
INTERVIEW LENNART POETTERING REBUILDING LINUX FROM THE GROUND UP We meet Lennart Poettering, the lead developer of Systemd, an ambitious (and controversial) attempt to rewrite the Linux base system. ew pieces of software in scheduled actions (like Cron) and history have been so fiercely much more. Almost every major Linux Fdebated as Systemd. Initially distribution has adopted Systemd, but a replacement for Sysvinit, the there are still some unhappy campers boot scripts that start up a Linux out there, so Mike and Graham installation, Systemd has grown into ventured to Berlin to meet Systemd’s a hugely powerful – and sometimes lead developer and get his view. complex – replacement for the “bag We also looked beyond Systemd, “Most people who say of bits” that make up the Linux base and Lennart’s intriguing proposals Systemd is un-Unixish have system. It’s growing all the time for a new packaging system to make and now handles logging, device life easier for third-party application no idea what Unix is like.” hotplugging events, networking, developers… Systemd has now been different maintainers, different coding working on Systemd, many of us who adopted by pretty much every styles, different release cycles, different worked on the lower levels of the major distribution, and yet whenever maintenance statuses. Much of the operating system realised that Sysvinit it gets mentioned in discussions on Linux userspace used to be pretty badly was not going to be the future. And the web, flamewars erupt. What do maintained, if at all. You had completely then I was playing around with writing you think are still the biggest different styles, the commands worked my own init system, which had the misconceptions? differently – in the most superficial funny name Babykit, and that was 10 Lennart Poettering: There are many level, some used -h for help, and others years ago or something. And then different misconceptions. Something --h. It’s not uniform. Canonical’s Scott James Remnant you always see is the claim that If we put a lot of the glue in one started working on a new init system Systemd is monolithic – and another is repository, it’s not all the way towards called Upstart. He made it public, and I that it’s not like Unix. The Unix Unix, but it’s half way between stopped working on Babykit. misconception is a pretty interesting traditional Linux and traditional Unix. We, at that time, thought: OK, Upstart one, because most people who say We do not put libc and the kernel in the is the future! Scott understood how init Systemd is un-Unixish have no idea same repository, just the basic things. systems work – it needs to be dynamic, what Unix is actually like. So that’s a misconception that I’m it needs to react to events, and it’s not What’s typical for Unix, for example, always bemused about, and I’m pretty the static thing that Sysvinit was. So we is that all the tools, the C library, the sure that most people who claim that thought that was the way of the future, kernel, are all maintained in the same have never actually played around with but as it progressed, we realised it repository, right? And they’re released in Unix at all. probably wasn’t the future, because we sync, have the same coding style, the realised that conceptually, it was the same build infrastructure, the same Another issue is: some people wrong design. release cycles – everything’s the same. see Systemd presented as an The way Upstart worked is that, as a So you get the entire central part of the init system replacement, but now it’s programmer or admin, you write: if A operating system like that. If people doing X, Y and Z on top. You’ve said happens to B, or X happens to Y, do a claim that, because we stick a lot of it’s about replacing a “bag of bits” certain thing. But we believed that an things into the Systemd repository, then with an integrated suite of tools. init system should work the other way it’s un-Unixish, then it’s absolutely the When you started Systemd, was it a around, where you say: this is where I opposite. It’s more Unix-ish than Linux case of Red Hat saying to you, “we want to go to, and you figure out the ever was! want a new init system”, or… rest. Because of that design, Upstart The Linux model is the one where LP: No, it was actually the opposite. was very simple, but it put a lot of you have everything split up, and have Back in the day, when we started complexity on admins and developers, 42 www.linuxvoice.com LENNART POETTERING INTERVIEW wasn’t moving ahead. And then we started working on it, pulled out the old Babykit code, gave it a new name, and started proposing it. A lot of people understood that this was the better approach. It was a lot more complex than Upstart – 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. So we started writing Systemd, and Red Hat didn’t like it at all. Red Hat management said: no, we’re going for Upstart, don’t work on that. So I said, OK, I’ll work on it in my free time. Eventually Red Hat realised that the problems we solved with Systemd were relevant, and were problems that needed to be solved, and that you couldn’t ignore them. 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 because you actually had to write down that Canonical tried very hard to stay in mattered, bit by bit. It was absolutely all these rules. It wasn’t the computer control of it. They made sure, with not that Red Hat told us to work on it that figured out what to do. copyright assignment, that they made it – we had to convince them. We thought: if you want to solve this really hard to contribute, but that’s what properly, then you need to let the Linux actually lives off. You get these I don’t think many people know computer do these things. And this had drive-by patches, as I would call them, that! lots of different effects: for example, where people see that something is LP: This is something that people in Upstart always maximised what broken, or something could be general don’t know. They assume that happened on the system, while we improved. They do a Git checkout, do Red Hat is this one entity, that has one think you always have to minimise what one change, send you it and forget opinion and pushes one thing. It’s really happens. And the reason for that was about it. not like that. The people who work at simply because, if you specify exactly Red Hat, the engineers, they come from what state you want to end up in, you And you never see them again! the community – they first become can pull in all the dependencies LP: Yeah, and this is great – famous in the community, they hack on recursively and boot to exactly that. these are the people you want to have, things, do good stuff, and then Red Hat because the vast majority of patches comes along and says, “Hey, do you are actually of that kind. It gives you this want to work for us?” “We started writing Systemd, polishing that you want. The people And when you start working for Red and Red Hat didn’t like it at all. invested in the project all the time do Hat, they don’t check your opinions at the big things, and don’t care so much the door. You can be sure that if there So I worked in my free time.” about the polishing. So these kind of are multiple opinions on one topic in the patches are what you want. But if you broader community, the very same The Upstart way is always, “if this is do these copyright assignment things, opinions inside Red Hat exist too. Inside started, then start that”. If the network you will never get those people because of Red Hat there are discussions. Red is up, you take that as a trigger to start they would have to sign a contract Hat has many different people, and NFS and things like that. It always has before they can send you something. most of them have strong opinions and this effect that you start as much as Putting it all together, we realised that convictions. possible instead of as little as possible. Upstart wouldn’t be it. So at one Linux So anyway, long story short, we Plumbers Conference, four years ago or And much of this debate came to the conclusion that Upstart is so, Kay Sievers and I said that we happens in public, on public conceptually wrong, and it moved at should do something about it, after we mailing lists. Then you have some glacial speeds. It also had the problem saw at the conference how Upstart people saying that all this arguing www.linuxvoice.com 43 INTERVIEW LENNART POETTERING looks bad, compared to how people would hate us for it.