Interview: Lennart Poettering
|Systemd is ambitious and controversial. We speak to its lead developer about its origins, its future, and how to deal with online flamewars…
Few pieces of software in history have been so fiercely debated as Systemd. Initially a replacement for Sysvinit, the boot scripts that start up a Linux installation, Systemd has grown into a hugely powerful – and sometimes complex – replacement for the “bag of bits” that make up the Linux base system. It’s growing all the time and now handles logging, device hotplugging events, networking, scheduled actions (like Cron) and much more. Almost every major Linux distribution has adopted Systemd, but there are still some unhappy campers out there, so Mike and Graham ventured to Berlin to meet the software’s lead developer and get his view.
Linux Voice: Systemd has now been adopted by pretty much every major distribution, and yet whenever it gets mentioned in discussions on the web, flamewars erupt. What do you think are still the biggest misconceptions?
Lennart Poettering: There are many different misconceptions. Something you always see is the claim that Systemd is monolithic – and another is that it’s not like Unix. The Unix misconception is a pretty interesting one, because most people who say Systemd is un-Unixish have no idea what Unix is actually like.
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 the operating system like that. If people claim that, because we stick a lot of things into the Systemd repository, then it’s un-Unixish, then it’s absolutely the opposite. It’s more Unix-ish than Linux ever was!
The Linux model is the one where you have everything split up, and have different maintainers, different coding styles, different release cycles, different maintenance statuses. Much of the Linux userspace used to be pretty badly maintained, if at all. You had completely different styles, the commands worked differently – in the most superficial level, some used -h for help, and others ––help. It’s not uniform.
If we put a lot of the glue in one repository, it’s not all the way towards Unix, but it’s half way between traditional Linux and traditional Unix. We do not put libc and the kernel in the same repository, just the basic things. So that’s a misconception that I’m always bemused about, and I’m pretty sure that most people who claim that have never actually played around with Unix at all.
LV: Another issue is: some people see Systemd presented as an init system replacement, but now it’s doing X, Y and Z on top. You’ve said it’s about replacing a “bag of bits” with an integrated suite of tools. When you started Systemd, was it a case of Red Hat saying to you, “we want a new init system”, or…
LP: No, it was actually the opposite. Back in the day, when we started working on Systemd, many of us who worked on the lower levels of the operating system realised that Sysvinit was not going to be the future. And then I was playing around with writing my own init system, which had the funny name Babykit, and that was 10 years ago or something. And then Canonical’s Scott James Remnant started working on a new init system called Upstart. He made it public, and I stopped working on Babykit.
We, at that time, thought: OK, Upstart is the future! Scott understood how init systems work – it needs to be dynamic, it needs to react to events, and it’s not the static thing that Sysvinit was. So we thought that was the way of the future, but as it progressed, we realised it probably wasn’t the future, because we realised that conceptually, it was the wrong design.
“Most people who say
Systemd is un-Unixish
have no idea what Unix
is like.”
The way Upstart worked is that, as a programmer or admin, you write: if A happens to B, or X happens to Y, do a certain thing. 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. It wasn’t the computer that figured out what to do.
We thought: if you want to solve this properly, then you need to let the computer do these things. And this had lots of different effects: for example, Upstart always maximised what happened on the system, while we think you always have to minimise what happens. And the reason for that was simply because, if you specify exactly what state you want to end up in, you can pull in all the dependencies recursively and boot to exactly that.
The Upstart way is always, “if this is started, then start that”. If the network is up, you take that as a trigger to start NFS and things like that. It always has this effect that you start as much as possible instead of as little as possible.
So anyway, long story short, we came to the conclusion that Upstart is conceptually wrong, and it moved at glacial speeds. It also had the problem that Canonical tried very hard to stay in control of it. They made sure, with copyright assignment, that they made it really hard to contribute, but that’s what Linux actually lives off. You get these drive-by patches, as I would call them, where people see that something is broken, or something could be improved. They do a Git checkout, do one change, send you it and forget about it.
LV: And you never see them again!
LP: Yeah, and this is great – these are the people you want to have, because the vast majority of patches are actually of that kind. It gives you this polishing that you want. The people invested in the project all the time do the big things, and don’t care so much about the polishing. So these kind of patches are what you want. But if you do these copyright assignment things, you will never get those people because they would have to sign a contract before they can send you something.
Putting it all together, we realised that Upstart wouldn’t be it. So at one Linux Plumbers Conference, four years ago or so, Kay Sievers and I said that we should do something about it, after we saw at the conference how Upstart 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 mattered, bit by bit. It was absolutely not that Red Hat told us to work on it – we had to convince them.
LV: I don’t think many people know that!
LP: This is something that people in general don’t know. They assume that Red Hat is this one entity, that has one opinion and pushes one thing. It’s really not like that. The people who work at Red Hat, the engineers, they come from the community – they first become famous in the community, they hack on things, do good stuff, and then Red Hat comes along and says, “Hey, do you want to work for us?”
And when you start working for Red Hat, they don’t check your opinions at the door. You can be sure that if there are multiple opinions on one topic in the broader community, the very same opinions inside Red Hat exist too. Inside of Red Hat there are discussions. Red Hat has many different people, and most of them have strong opinions and convictions.
LV: And much of this debate happens in public, on public mailing lists. Then you have some people saying that all this arguing looks bad, compared to how Microsoft or Apple does things. But I bet they all have the same arguments, just as passionately.
LP: I’m absolutely sure. There was this time when the people working on Microsoft Word had their own compiler to build Word and the rest of MS Office with. Microsoft had the Visual Studio group, and the Office group, and they had their own individual compilers. That’s just crazy of course.
So I don’t think that Red Hat is different from anywhere else; except that at Red Hat, because people are working on open source, they have much greater attachment to their code. so they have even stronger opinions.
LV: If back at the start of Systemd, you and the other developers had explicitly said: “We’re going to replace a lot of the base system”, do you think it would’ve been better received? Some people see it as an init system that’s suddenly touching everything else.
LP: Initially it was an init system – it was just PID 1. We knew from the very beginning what we were getting ourselves into. We knew very well that touching something that has so much history, that is so close to what admins do all day… That changing it would be a massive problem. So we knew that people would hate us for it. We knew we’d have to fight for a long time to get it accepted.
We eventually realised that doing just the init system would never be a complete solution. Because 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. You’ve solved one thing but not 90% of the problem. 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.
“We realised that
doing just the init
system would never be
a complete solution.”
Debian had its init scripts, and Fedora had its init scripts, and they all kind of did the same thing, and did it differently, and some are better, and some are worse. We thought OK: this is bullshit, let’s write this in C in a unified way, and try to pick the best features of all distributions and make a convincing argument that it’s the right way.
So it initially grew. But something to realise is that there’s very little in Systemd that’s actually required. Systemd requires Journald, because every single service that runs on the system is connected to Journald, and we need some way to log things during early boot. So Journald is a requirement, and Udev is a requirement. But pretty much all other components are completely optional. If you don’t want to use the way Systemd loads kernel modules from a static list, then you can absolutely replace it.
Or if you don’t want to use some of the more modern components like Networkd, then use something else. I mean, on my laptop I even use NetworkManager, because Networkd doesn’t do wireless, right? Networkd is more for containers and servers. So if you want to adopt Systemd, you can absolutely adopt the baseline, which is the three components that I mentioned. You can keep the rest of the system – however, our implementation of the individual parts is usually pretty convincing, and usually people then replace more.
LV: Some people see it as a requirement for Gnome…
LP: But it’s not actually a requirement. Some people don’t realise that when Gnome started making use of Logind, I actually wrote the patch for that. I ported GDM onto Logind. But when it did that, I was very careful to make sure it would still run on ConsoleKit. I didn’t want to have those fights – if people want to continue running ConsoleKit, they can. Those patches made it in, but some people saw that Gnome now works with Logind, hence it must not work with ConsoleKit any more!
But that’s actually not true. And to my knowledge the code is still in there – the compatibility for ConsoleKit. The Gnome team has the general problem though, that nobody’s willing to maintain it. People who want to stick to the old stuff, they actually need to do some work on it. If they don’t, then it will bit-rot and go away.
So anyway, we tried to do these things in the nicest possible way, but of course people generally don’t acknowledge it!
LV: A lot of people just think there’s only Red Hat working on Systemd.
LP: Oh yeah, we’re a lot of people now. Yesterday we had 26 committers, and 40 people contributing code every month or so. The committers group is quite diverse, and for us it’s quite an exercise in making the diversity of the community be reflected in the diversity of the people who work on it. This is also related to how Upstart worked: Upstart was very locked-down, and Canonical always wanted to stay in control of everything. For us it was an exercise to make sure this doesn’t happen. We’re not the ones in power – the community is.
So of those 26 committers, there’s a good chunk working for Red Hat right now, but there are people from Intel, Canonical… We had people from Canonical in the committers group, all the time during the discussion about whether they should even adopt Systemd. Most people at Canonical didn’t even realise that they had commit access to these things.
There are also developers from Debian – two or three of them.
LV: There should be a Systemd foundation!
LP: [Laughs] Well, we don’t want to make it too formal. We have this speed, this quick pace with how we progress Systemd, and I think it can only work if we stay somewhat loose and not have strict regulations about how these things work.
But we try to make sure that it’s inclusive. We have people from Arch Linux, people from all the Linux distributions, big companies that do open source. We want to make sure it stays that way.
LV: Why do you think some distributions managed to adopt Systemd without any major fights, and then others like Debian had very intense debates and resignations? Is it just because it’s a distro with more political processes?
LP: Arch Linux probably did it the quickest way. You know, distributions attract different kinds of people, of course. If you looked at Arch Linux, it attracted very progressive kinds of people – like power users. They’re progressive and want to make the best out of their computers. So it was easy for them to adopt.
“Sometimes people say
we don’t listen —
we do, we just don’t
always agree.”
Then if you look at Gentoo, for example, they still haven’t done Systemd as default. They used to be like Arch Linux is now – they used to be the young people who adopted things quickly. But the Gentoo people aged, and they became more conservative.
And Debian is probably an even more conservative bunch. Debian is a really old project, and many people from back in the old days are still active on it. So they have longer release cycles. And Fedora always defined itself as being on the bleeding edge, of course, so it was easier. Well, not that easy – some people don’t realise that inside of Fedora and inside of Red Hat, there were lots of fights. So it’s to do with the culture around the various distributions. And Slackware are the ultra conservatives!
LV: Do you read the comments when Systemd is being discussed on the net? Do you despair when it all turns into hatred and flamewars?
LP: For some reason it doesn’t touch me too much. I try to keep an open mind and figure out what people actually think. There’s a lot of noise out there, but usually there’s some core of an argument – something that we should actually be aware of. So if people are annoyed by Systemd, usually they ran into some kind of bug or something. It might not necessarily be a Systemd bug, but we need to take it seriously.
Nowadays Systemd is very polished in many ways, and the reason why it is so polished is because we actually listen to people. Sometimes people say we don’t listen – we do, but we just don’t always agree. If we would just stick our heads in the sand and not care at all what people wrote, Systemd would certainly not be what it is, or have found the adoption that it has.
LV: You’ve said yourself that the flamewars could dissuade potential open source contributors from getting involved.
LP: I’m in the lucky position in that there’s no pressure on me in any way. I know that a lot of people have pressures that they live under, and if you also get pressure from the internet over some things that you do in your free time, because you love it, that is very disappointing for them. So I have a luxury, and I know it, and I can only feel for people where it’s not like that.
I know a lot of people who’ve had enough of open source, and who will not participate in the communities where things get really bad. And that’s a big loss for open source.
Really guys, I expected a bit more than a PR for Lennart. At least from you. This “interview” is just re-hashing the same crap he puts on his blog and is endlessly repeated by his followers.
PR, just because we didn’t flame him? What questions would you have asked? You’ve already described his words as “crap”, so it doesn’t sound like you’d be a proper, impartial interviewer!
We thought it’d be more useful to explore the background of Systemd, and got some unique insight (I can’t find any other reference to BabyKit on the web — he’s never mentioned that on his blog).
PR because you basically let him spread logical fallacies that you should know. Such as the reason why people consider it against the UNIX philosophy. No one that I have ever heard has said because it is all in one code base. Or his attack on people who dislike his software as being old conservative folks who just hate change. There was really nothing new here just allowing him to flame others.
I’ve heard many people use that exact reason (all in one code base) as a way to slam systemd. Maybe you should have read /r/linux around the time of the Debian-systemd drama. Or many IRC channels on freenode. The fact is that many people who complained about systemd either don’t know enough about systemd, or don’t know enough about UNIX.
That is not a fact, that is an opinion.
Nah, it really is a fact. Almost none of the systemd-opponents have bothered to actually fact-check their complaints.
There are a precious few that actually know what their are taking about. Fact; almost none citing the holy UNIX paradigms belongs to the later group.
Honestly, I see a lot more systemd-skeptic flaming than flaming of systemd-apologists. Poettering et al. are constantly constructing straw man arguments and easily dismissing them. If they actually tried to address the actual complaints of actual systemd-skeptics an actual debate could take palce. Actually… 😉 Until then we’ll just have valueless flaming and name calling from ‘Linux wreckers’ and ‘conservatives Luddites’.
Many people who complained about systemd tried to get their work done and failed. And now hate the system because it changed so much that it created a major threat to their project.
“…Or his attack on people who dislike his software as being old conservative folks who just hate change…” Attack? Hate change? You are the one who attacking. Take it easy on the meds.
Yes, you are right. Very fallacies like the “hate changes” and the UNIX. He thinks UNIX == Linux, he really don’t know what is UNIX and UNIX philosophy, that’s why he hurts UNIX philosophy all the time. He ignores very systems analysis and software engineering taken by Unix philosophy and KISS principle, this is the argument.
More information:
https://en.wikipedia.org/wiki/Unix#mediaviewer/File:Unix_history-simple.svg
https://en.wikipedia.org/wiki/Unix_philosophy
http://www.catb.org/esr/writings/taoup/html/ch01s06.html
https://en.wikipedia.org/wiki/KISS_principle
https://www.youtube.com/watch?v=tc4ROCJYbm0
And I’m not considering the binary logs…Good night kids.
You, sir, are bonkers. What you bring up is a question of definition (especially the lack of it), and you clearly misunderstood what Lennart is saying the interview.
Somehow you managed to take away the opposite point that he was trying to make.
He said that Linux isn’t UNIX. Linux had traditionally been developed in a disparate way. Many repos, many different coding standards, little communication between developers. That’s the opposite of how UNIX had traditionally been developed, and it is exactly how systemd had been developed.
That’s exactly what I was hoping for – thanks. It’s always valuable to have insight, not only into the code, but the motivations, goals, reasoning, and history behind that code.
I greatly appreciate this article. I am a Slackware user and just didn’t get what all the fuss was about. I do agree that the opening statements about “what is Unix, what is Linux” could be viewed as a bit inflammatory but most of the article was good stuff.
starting parallel services is the highlight shown for systemd as compared to the good old one service at a time….
well thats more of stability vs choice….do you want a stable system or do you want a system thats trying to force processes to spawn threads for their tasks and achieve parallelism and in the end taking care of all those loose threads….
i am ultra-conservative but no i have not aged….and i like it slow and steady and stable….
pottering talks like taking over systemd and linux with his init system and trying to get acceptance of the same…trying to do too many things and making a monopolistic init system and is that the future you see mr pottering?
Yes, I’ve never seen the BabyKit mentioned before anywhere. Good interview. Can’t stop the crazies…
I would have asked why systemd has gone *way* beyond an init replacement. Why all the hard-wired dependencies? Why replace text logs with binary logs? Why throw away POSIX? Why is Linux being controlled by a Linux hater? Why is Poettering so dismissive of “UNIX grey beards.”
“I would have asked why systemd has gone *way* beyond an init replacement.”
That’s explained completely in the text, from where Lennart says “Initially it was an init system – it was just PID 1…” and onwards. He describes pretty clearly why Systemd grew beyond PID 1. You might not like his explanation, but it’s there.
“Why all the hard-wired dependencies?”
This has been done to death already. Yes, Systemd components depend on each other, but for many there’s a stable API, so you can write replacements: http://www.freedesktop.org/wiki/Software/systemd/InterfacePortabilityAndStabilityChart/
“Why replace text logs with binary logs? “
Again, covered a million times already on the web. And it’s not “replacing” — you can still use syslog if you prefer. Systemd binary logs let you do things way beyond plain text (without ridiculous chains of regexps). For instance: show me the 10 most recent errors or warnings from process /usr/bin/foo in the last 3 boots. That’s really easy to do with journalctl. The metadata helps here.
“Why is Linux being controlled by a Linux hater?”
How does someone who writes Linux software full-time as a job, and then writes more Linux software also outside of work, free for everyone to share and improve, “hate” Linux? How does Poettering somehow “control” Linux, when even Linus Torvalds has blocked submissions from Systemd devs for a time? Almost every distro has adopted it, and for their own reasons.
I am sorry that is not explaining *why*.
Are you really trying to convince me that Poettering does have contempt for “UNIX grey beards?”
Are you really trying to convince me that Poettering has not commented about Microsoft gets it right?
Some of your points seem solid to me, but I really don’t get the one about the binary logs. It seems to me that theoretically you can express anything in text. Certainly there’s no rule that you can’t have metadata in text. I don’t see how it can be possible that making something binary makes it more expressive, or more searchable.
One might argue that making an application that could adequately search, query and otherwise manipulate text files would be more trouble than doing the same for binary files, and then further argue that the gain from human-readability and whatnot is small compared to this loss in extra effort to get the features desired. And I wouldn’t know enough to be sure if that had merit or not. But claiming you can’t get the same features if you use text files is surely just bogus.
Mike said:
““Why replace text logs with binary logs? “
Again, covered a million times already on the web. And it’s not “replacing” — you can still use syslog if you prefer. Systemd binary logs let you do things way beyond plain text (without ridiculous chains of regexps). For instance: show me the 10 most recent errors or warnings from process /usr/bin/foo in the last 3 boots. That’s really easy to do with journalctl. The metadata helps here.”
Actually, Mike, it is “replacing” text logging – if you want text logging, it does so using a module and does it in addition to binary logging – extra software – extra things that can go wrong in the chain – less chance that your critical error message actually makes it to disk. The correct way to do it is with native text logging, and with binary logging as the optional add-on.
Well, actually, I over-simplify: the really correct way to do the stuff you’re talking about is to use syslog’s already-existing ability to log into a database. You then do all your queries with SQL (like ‘give me all the warning messages from the last 10 minutes from processed with names like ‘%Y’ on servers Z and A, sorted in random order, and use postgis to calculate the distance between me and the server which spat out the error, since I recorded its GPS coordinates earlier in table X’), and you can massage the incoming data on the fly with triggers and collect any kind of metadata you want, and you can index it all for fast retrieval, since you’re doing so much work with logs, and you can run a daemon to run continual analysis of your logs which can raise alerts via whatever channels you choose according to complex business rules, and you can cluster your DB logging server across multiple machines with replication and reliable, atomic transactions, and you can secure all this information with a strong permissions system on an encrypted filesystem. And if you’re really really into logging, you can even use MS SQL server or Oracle as your database engine and buy a really expensive support contract which might even make guarantees about the uptime and data consistency in your logging system.
Binary logging is a crappy, half-baked, inherently-less-reliable-than-what-we-already-have solution to a problem that doesn’t really exist.
Because UNIX grey beards can be extremely annoying in their utter incorrectness. Look no further than this discussion thread about exposing the AST in gcc to allow for better emacs plugin development:
https://lists.gnu.org/archive/html/emacs-devel/2015-01/msg00171.html
The link above is to the middle of the thread. Read from the beginning if you’d like to be overwhelmed by Stallman’s pedantic utter cluelessness:
https://lists.gnu.org/archive/html/emacs-devel/2015-01/msg00015.html
Did you ask him about systemd + udev integration due to the adoption of kdbus? That situation kind of goes against his “you can always keep using something else if you don’t like systemd”.
Hi Mike,
I can appreciate your position but it does seem obvious when I read this interview that the interviewer is “pro-systemd”.
A question that I would have asked would be something like this (I’ve tried to be neutral in tone, but it’s hard):
“OK, I’m going to go all devin’s advocate on you now – let’s get controversial: Can you explain why the decision has been made that logging is done natively in binary format rather than a text format? A lot of very experienced system administrators have opined that this is not a robust way of doing things. Linux Torvalds called it crazy.”
I might then follow up with:
“Wouldn’t a more robust solution have native text logging with binary logging as an optional extra? And can’t all the features of a binary log be done better by using syslog’s ability to log to a database? I think that this is the kind of thing people mean when they accuse systemd of being ‘monolithic’. I’d love to hear an explanation of the rationale behind this decision, but whenever it is brought up I’m accused of being a ‘hater’.”
I might then follow up with:
“Wouldn’t a more robust solution have native text logging with binary logging as an optional extra? And can’t all the features of a binary log be done better by using syslog’s ability to log to a database? I think that this is the kind of thing people mean when they accuse systemd of being ‘monolithic’. I’d love to hear an explanation of the rationale behind this decision, but whenever it is brought up I’m accused of being a ‘hater’.”
No, because it’s a dumb question. The point of logfiles are to log system events for later inspection. Period! Why would you want to log redundantly to both text and a database? Just to…what?…be able to use grep? If you have a standard command interface (like journalctl), you can use grep for all your heart’s content – but that makes no sense. journalctl can quickly, selectively pipe out what you need without skimming 10s of thousands of lines, and do so in a variety of different text formats.
So.. Logfiles take up far less space and parse far quicker, much easier to manage for backing up to archive media while making referencing and analyzing later still straightforward, and potentially enables for some nice real-time GUI system analysis tools.
I disagree. For one, not everybody reads every Linux-related blog or mailing list in the world. Sometimes a magazine article isn’t there to have brand new information, but instead it’s there to inform people who don’t have the time to scatter their attention everywhere at once. I’m not a Lennart follower, so this was all new information for me.
And what interview isn’t PR? Do you think there are people who accept an interview knowing it will have zero effect? When you are in a position where people watch your every move, almost everything you do is going to be PR (either good, neutral or bad PR). This is a standard interview, no need to paint it as some ‘PR conspiracy’.
Look, RH has been wanting to control the Linux show for years, goes back to the early ’90s. I don’t care if he worked on this code his free time, he’s still and employee of RH, anything he creates, free time or not, is the property of RH !!!! Once systemd becomes monolithic and developers start relying on systemd for startup and run RH will copyright the bits of the code and then we’ll have linux-Windows and you all will be paying royalties to RH. Now it may not play out quite that way but it will playout and RH will try the hostile takeover. Where there’s a buck to be made i don’t trust them or LP!!!!
He answered all the detractors and JDOE and co still moan. jeez
He created fallacies, that is it. He actually did not answer the detractors. When you start misrepresenting the arguments then you are done and you know it.
It’s a fallacy to say that someone created a fallacy.
“When you start misrepresenting the arguments” – well i guess you and your fellow detractors should know all about that
Your arguments appear to be devoid of concrete, factual content. Please point out specific technical concerns you have about systemd and/or specific actions that Poettering has taken that you object to, otherwise you’re just ranting (which frankly is what it sounds like).
You didn’t really dive into detail about why systemd is much more than init system– which is why so many people are pissed. Also, you didn’t touch on his history with PulseAudio– which many people hate for various technical reasons.
The topic of the interview was systemd, not Pulseaudio and why so many people love it for various technical reasons.
My page title says “Interview: Lennart Poettering”, it doesn’t say anything about systemd. As far as I’m concerned it would be perfectly legitimate to ask about pulseaudio.
Pulseaudio is what made audio on linux work! If you hate it write something better!!!
I don’t need to write something better – it’s called ALSA and it was around long before pulseaudio. Also, jack.
Can you provide some specific examples of why “many people hate [pulseaudio] for various technical reasons”? The only reasons I ever see are “it didn’t work in 2009 on my 8-year-old audio card” or similar anecdotal complaints. Keep in mind that Pulseaudio had the goal of working with existing linux audio stacks. If your Apple or Microsoft you to get carte blanche rip out the whole thing and build something from scratch (which I agree would have been the optimal approach).
Okay:
Pulseaudio provides no support for multichannel audio cards, i.e even if you have an expensive pro-audio card (or a super cheap 15-year-old creative labs card) which supports playback on 64 channels at once and comes with its own dedicated, high-quality mixing hardware, and that card is fully supported by ALSA, pulse will still do all its mixing in software. Because using CPU time to do something that I have dedicated hardware for is a great idea!
When you raise a bug about this, you get told “pulse isn’t for you, you probably shouldn’t use it”, which is a joke, right?
His deafness to sysadmins is remarkable. After it was pointed out to me that this is the same person responsible for PulseAudio, I voted with my wallet and my feet (our servers are running FreeBSD now, with a bonus of 30-40% less CPU utilization).
I’m sure the Linux distribution you used beforehand will desperately miss all the money you used to pay them.
Why were you running pulseaudio on your servers?
Did he say that his servers were running Pulse Audio or just referred to Pottering as the guy responsible for Pulse Audio? Seems to me that it was the latter.
Why would you run PulseAudio on a server? Your idiocy is remarkable.
He never said that. So I guess you should wear the idiot label…
I don’t think I’ve seen a transcript of a one-on-one panel between Lennert and a recognized skilled detractor. All I’ve seen is flame wars and ad hominem attacks, usually dragging PulseAudio in the mix. Can anyone point me to a proper debate transcript?
Such a debate doesn’t exist, of course. The failings of SysV init are obvious to anyone who has been a linux admin for any length of time. The closest you’ll get is a Debian conference where Poettering presented the advantages of systemd and Steve Langasek from Canonical (attempted) to present upstart as a superior alternative.
I’m a big proponent of systemd and I agree with this whole-heartedly. One of the truly frustrating things about the systemd flamewars is that the noise means that concerns expressed by actual grownups in the room get drowned out. I think the objections are mostly backhanded tributes to systemd’s success: it develops quickly and is increasingly using available kernel features (Viro), it is being recognized as useful and relied on by other projects (Ts’o) or it successfully leverages a shared code base to do a variety of things (Perens). Nonetheless, these are all very serious people and I’d love to see that debate take place in a childfree environment. It would help systemd and the community as a whole and would be just plain fascinating.
Nice.
Lennart Poettering is one of the finest minds amongst the FOSS programmers. I was convinced that he’s a brilliant programmer when Pulseaudio started to make audio usable on Linux. I’m very glad to see that he and Kay Sievers are dragging the GNU/Linux plumbing layer into the 21st century. Allbeit kicking and screeming. Nice work, Lennart, keep stirring the pot!
Wow, I’m not sure I’ve ever read an article with so many half truths and mis-representation outside Slashdot. Thats saying something considering I’ve been a *nix sysadmin for 21 years. Comeback #Rootprompt!
This is my first visit to Linux Voice and I have to say that the interviewer did a very bad job of extracting real and accurate information and instead allowed the interviewee free reign to confuse and misguide the audience.
Who would be a good interview subject to give another point of view?
I think Lennart was the correct person to interview but such a one sided, unchallenged interview is nothing more than PR for SystemD.
Some history should have been covered including Lennart and Kay’s (sievers? sp?) previous problems with community interactions and abuse. Kay in particular has now been banned by the SystemD group from giving interviews because his mouth digs too many holes. Even Linus Torvalds has banned Kay from making Kernel contributions anymore.
Good lord – which systems have you administered? I’ve been doing this since 1968 – IBM MVS/VM, Dec Ultrix/VMS/Unix, many UNIX versions, both SysV and BSD, SunOS, Solaris, HP/UX, Linux, Windows NT. You are still an amateur based on your comments. LP is a brilliant programmer/developer. Both systemd and pulseaudio are now polished and excellent pieces of kit (they weren’t in their beginnings, but thats the way most development progresses)
Please stop a) showing your obvious ignorance, and b) place your feet firmly on the ground and keep either one or both out of your mouth.
Yet you fail to explicate even one of these half truths or misrepresentations to add substance to your comment. While that’s the norm in systemd discussions, it doesn’t make it any less ad hominem.
It’s a fallacy to say that someone created a fallacy.
I’m not a programmer, I’m not a sysadmin. I’m a home user, who gets tasked with maintaining the family’s computers. My system of choice is Slackware, but for the family, I usually install Mageia – which uses systemd.
As long as everything is working, both distros are fine. But if anything goes wrong – a bodged update, a failed install, etc – Slackware is infinitely easier to maintain. Why? Because if the system becomes unbootable, I can boot from a pen-drive and read the system logs in Vi, or Midnight Commander, find the problem and fix it.
If a Mageia install becomes unbootable, you are then in the nightmare scenario of needing to have the system running to read the logs, but the system won’t run!
From my standpoint, binary system logs are in the same class as electric handbrakes on cars – an idiot idea that should have been smothered at birth!
AFAIK systemd/journald can just forward everything to a normal text log, and not log anything in “binary”.
https://wiki.archlinux.org/index.php/systemd#Journald_in_conjunction_with_syslog
And still runs in the back ground, never capable to be turned off.
Why would you turn logging off?
Because a known bad device is making the kernel logger fill your filesystem.
Sometimes I need to recover hard drives with ddrescue that spew massive amounts of ASC/ASCQ SAT errors for example.
Fun fact; even ASCII is actually binary. So is UTF.
As a system administrator I love journald for it’s abillity to simply display the output of one single process. Or one process group. It’s a godsend.
Systemd isn’t free at all. The crap you get with it; the features it assumes you need or want to have. The smack face of LP everywhere thinking he knows all. I do know one thing about LP, he doesn’t know anything about linux. If he was so passionate about this kind of solution, why is he not a windows user? They like this kind of thing.
Systemd is a HORRIBLE thing.
Why would people have needed to be convinced? I read lied to… Like people try to shove religion down peoples throat. This is the way, the only way and the best way.
It surely is not! And there was NO need for this shitty fucking code called systemd,
Thanks L ‘SystemDouche’ P. Really thanks! I appreciate your crap so much!
If you read the interview, you knew that only journald and udev are the only mandatory parts. Everything else is optional.
It’s quite a shame that you apparently are one more of the systemd detractors that don’t really bother to get their fact straight.
And to keep it on your level of discussion:
“It surely is. And there is MUCH need of the code called systemd.”
Exactly as many arguments as you.
Facts straight? Did you actually read it or any other interview with the systemd prophet?
“We’re going to replace a lot of the base system”
That doesn’t sound like just journald and udev. Does it?
If it’s so obvious that is needed, why would they need to convince everybody one by one? And yet a VERY large part of the community does not see the need NOR is or gets convinced.
Stop writing lies, like he is one of the finest minds. If you actually paid attention to pulseaudio you would know the crap he writes. (read comments of others here too)
It’s people like you that think any change is a good thing, and promote it without actually seeing anything bad about it. And yes it’s bad of me to assume you are that kind of people. But it surely does sound like it.
Have a nice systemd weekend.
I’ve nothing to add to that!
yep, you can’t argue with fools, they drag down to their level
“We’re going to replace a lot of the base system”
Allow me to translate that for you: “we’re going to continue to write free, open source software which we believe makes linux a better OS, and you’re free to choose to use it or not.” You’re right: what a monster!
I’ve some machines under Debian Jessie and I’ve had a lot of problems when systemd was introduced (services that loop on startup, /tmp problems…) and absolutly no way to figure out what was wrong. I desinstalled systemd and I’ve no more problems. Sorry, I prefer text scripts and log files but I’m certainly ‘conservative’…
In fairness, Debian Jessie is not a stable distro and Systemd is in the process of being introduced, so problems will happen! If there are these problems when Jessie is stable, then yes, that’d be a serious situation…
I use arch linux, and in the last 2 years the only issues I’ve had are with systemd. I was all for it in 2012 when it seemed to be an init system, and even believed the arch developers arguments for it. After more than 2 years of issues, and after trying to replace that crap with openrc to find it is extremely hard and can’t even be discussed properly in Arch forums, I really can’t take it any more.
Systemd is as bad or worse than pulseaudio, with its tendency to break existing functionality and ignore any use cases its developers haven’t encountered in their basement. The way it randomly hangs on shutdown, how it corrupts logs, the non-working emergency console, etc… But still, what is worse is how it replaces working utils with half baked ones, how it introduces dependencies between everything and systemd, udev, and that abortion logging system. How it brings the Windows philosophy to Linux, and how it’s supporters are even happy with coups like the one on the debian CTTE as long as it is forced into the major distributions.
I guess that for a true believer in systemd even the straw man that Lenart set at the beginning of the interview in regard to the Unix philosophy (which is “do one thing and do it well” and so on, not that crap about single repository) is something that must be taken as gospel and not contradicted by a interviewer
I’m also an Arch user (albeit recently converted from Ubuntu) and have had none of the problems you describe. Using journalctl -u service -f has been an eye opener in terms of finding minute configuration errors that have been around in my systems for years. The biggest issue is that there’s quite a learning curve for those of us who have been using Sys V init for decades, which I think is the actual source of most of the butt hurt. Disclaimer: I haven’t yet set up syslog-ng to create persistent logs, but am well aware of the logging mess that existed previously with, say rsyslog on Ubuntu systems.
Nice to see that minimising opposition to “butt-hurt” is not considered offensive, as long as it is said by someone pro-systemd.
I’ve been using the same install of Arch for about 6 years ago — before, during, and after the transition to systemd — and I’ve had exactly ZeRo issues with it. I think it’s great. I like the ease of starting, stopping, and enabling services, journald is great. My boot is 50% faster than Mint Upstart off the SSd on the same box. I find it very difficult to believe our differing experiences with Arch/Systemd can be based independently from ideological commitments.
Lucky you. I’ve also heard that some people never had issues with pulseaudio.
As for me, I’m finishing removing Arch from my computers. And I’ve found that Mint startup is as fast or faster than Arch/systemd on spinning rust, and at least feels a lot lighter, much less io usage during the day, probably due to a lower memory footprint and less need to be constantly swapping.
I think the notion of “doesn’t follow the Unix philosophy” got twisted up into “doesn’t resemble old Unix”. When he talks about everything being unified in one code style and base, he’s describing an old-school Unix developed in one place (e.g. AT&T, Sun, etc.). That isn’t at all what people are meaning when they complain about it being “not like Unix”. The Unix philosophy is about tools being small and limited in the scope of their functionality, and then combining them to get richer functionality. Despite some drawbacks and differences among distros, the sysVinit scheme is like that. It is wide open and visible, which makes it easier (IMO) to understand and maintain. Systemd’s design has started welding shut the hood of my car (to use another famous analogy) and that’s what concerns most detractors, I think.
Also, I work in embedded where simple and small is far preferred, even if it’s a bit more tedious. Systemd has no place there and having Debian and other major distros move to this by default is extremely concerning.
“The Unix philosophy is about tools being small and limited in the scope of their functionality, and then combining them to get richer functionality.”
You could argue that Systemd is exactly that. It’s 70+ small binaries that can be combined to make something bigger.
You make a fair point about embedded, although as Lennart says in the interview, you only really need three components of Systemd — everything else is optional.
Me? I’m in two minds about it all, although I’m starting to like Systemd the more I use it and understand it. The “benefits” section of this post shows why a lot of people (most distro developers now) find it useful: https://bbs.archlinux.org/viewtopic.php?pid=1149530#p1149530
Systemd is the tool, not its individual component. Under your argument absolutely everything would follow the philosophy unless it ran in one binary.
It’s nice to see an interview about Systemd that’s not a complete flame war for a change.
Like your self I was in two minds about Systemd. I was not sure that the size of change was going to be worth the results.
Given we manage with a small team 1000’s of Linux boxes any thing that requires big changes is not overly welcome. A number of our team did not like the idea of the init system “taking over” other systems either.
However after having lived with Systemd on a number of boxes, we are all starting to like it. It’s making many of our daily tasks simpler, and once we got used to it we found it rather well put together. We don’t use all of systemd’s tools in some cases we stuck with the older tools. In the case of syslog we ran both it and journald in parallel until our log tools could be ported to journald.
I suspect as more people end up using the systemd tools set and get used to it the flame war will settle down.
Systemd is introducing a lot of new but essential stuff rather quickly. And I haven’t even had time to master ip instead of the ifconfig/mii-tool/ethtool/route combo. That’s where I think a lot of the animosity also comes from. We have to (re)learn new stuff.
What is “essential” about systemd?
To me systemd seems like a solution in search of a problem.
Here is an example. When you install apache or an imap mailer on a Debian/Ubuntu system, by default the data goes into /var. Since this can be a lot of data one’s immediate inclination is to make /var a separate partition. However doing so creates endless timing issues because most sockets are stored there as well, and /var isn’t getting mounted soon enough for some of the services being started. I first encountered this when I still had an Ubuntu support contract, and the Ubuntu people just threw up their hands and shrugged that you can’t really make /var a separate partition under many circumstances. systemd elegantly solves this problem by caching stuff that needs to be written to filesystems which aren’t mounted yet. systemd has also helped to tame some of the pointless configuration differences between different distributions. (This all by itself makes it a win in my opinion.) I suggest you read through the entirety of Poetterings “systemd for administrators” blog posts to get a more complete answer to your question.
I think init is rather essential.
To clearify:
I wasn’t trying to voice an opinion of systemd being essential in addition to what we have now. But if you have a systemd system. It is essential on that system.
And to Patrick Goetz: Which stupid distro starts extra services before handling /etc/fstab and mounting all the filesystems. I guess that’s upstart for you.
The information about how Systemd started and got to where it is today was quite interesting.
However, I don’t think it’s legitimate to dodge criticism by redefining terms. Whether something is “like Unix” clearly refers to how strongly it follows the “Unix philosophy” ( http://en.wikipedia.org/wiki/Unix_philosophy ). Whilst particular details of the Unix philosphy might be contested, the broad ideas are clear: “programs should only do one thing”, “programs should be as simple as possible”, “programs should accept and emit data from/to each other”, “programs can be combined using scripts”, “everything is a file”, “text is the best message representation”, etc.
To claim that the Unix philosophy doesn’t capture “what Unix is like” misses the point. To talk about release cycles and which programs are in which repos is a complete non sequitur.
The usual “systemd-is-not-Unix” fallacy is to assume that systemd is one big binary and to miss how much systemd actually honors the Unix tradition.
I reckon the comment about the Unix philosophy was aimed at these comments, reminding people that e.g. FreeBSD (a pure Unix) also maintains its plumbing-layer-components in one repository.
You’ve got a point though.
Systemd may not be one big binary, but it is *one* tool. You cannot just use individual parts of systemd.
The only thing that we want is to have the choice. For me systemd is an non-sense on a server. Maybe it could be interesting on desktop machines for newbees. My machines are servers (and sometimes desktop at the same time). I control what services are started and I have my own ones. I don’t use Gnome, I use alternate ones. It’s my choice. So if Debian doen’t offer me the choice anymore, I will switch to Devuan…
What makes you think that systemd non-sense on a server? It’s ability a) to detect that a service has stopped? b) reliably restart services? c) to start services on-demand? d) Or is it the scriptable, works-on-all-distributions dbus inteface? Or might it be the portable, works-on-all-distributions configuration units? Or the out-of-the-box process isolation? Pray, tell me!
If you manage lots of servers it’s made producing code to allow mass management quite a bit easier. Its reduce the number of boot time config errors we experienced, the service auto restart is very helpful. Start on demand also has proved quite useful.
We only run servers by and large and systemd is not just for desktops. I would suggest you re-examine your systemd prejudice and trial running a number of servers using systemd. Assuming your managing server on any real scale it will reduce your teams work load after the initial getting used to it time has passed.
And how about choice? You didn’t contest that part of the comment, and that’s about my only complaint. But It isn’t with systemd per see, but with the linux distros not giving choice!
Too much control in one place is a bad thing.
SystemD is too much control. They are involved with way too many distros.
This will only result in the NSA or some other 3 letter agencies having control over your Linux system.
What a complete load of FUD.
Yes, I too hate it if I have to mucht control over my servers. With systemd I have to mysteriously failing services and broken init scripts. I can’t abide that!
[Edit: Sorry, that comes from too much laughing.]
Yes, I too hate it if I have too much control over my servers. With systemd I have no mysteriously failing services and broken init scripts. I can’t abide that!
Great interview. Thanks for letting him speak without flaming. It was especially interesting to hear about the politics within Red Hat and Canonical. Keep up the good work. I will be renewing my Linux Voice subscription 🙂
I have to disagree with the assertion that it’s better to just say “I want to go here” and have the machine take off from there. Same reason I dislike the idea of self driving cars. I want to be in absolute control of my own system and anything that takes away from that I can not support.
I hope you asked him about systemd+udev integration with the move to kdbus. As that, imo, hits at the legitimate concerns people have.
Kdbus will be a game changer. This video explains why kdbus will be a massive technical improvement over dbus: https://www.youtube.com/watch?v=HPbQzm_iz_k
I don’t doubt the technical merits of going from userspace to kernel space but afaik they don’t plan to maintain the ability for userspace code to query udev via dbus.
https://web.archive.org/web/20110525101816/http://kernel.org/pub/linux/utils/kernel/hotplug/udev_vs_devfs
Notice quite a few of the ‘points’ for udev are related to easy interaction with other userspace code using dbus.
It also changes the “you don’t have to use systemd” to “you don’t have to use systemd and you won’t be able to use udev very easily thanks to integration with systemd”.
“I do know one thing about LP, he doesn’t know anything about linux.” – Says more about you than anyone. LP will wipe the floor with you technically and do it in his second language.
Well put. “I’m in two minds about it all, although I’m starting to like Systemd the more I use it and understand it.” – thats the crux of it, when you understand it, it makes sense. the trolls don’t do any research apart from reading other trolls posts.
“I have to say that the interviewer did a very bad job of extracting real and accurate information and instead allowed the interviewee free reign to confuse and misguide the audience.” – well, what a surprise yet another detractor spouting nonsense thinking he knows more than LP about his own project
Like it or not, if you want Linux to be used on more desktop systems, then SystemD is the way forward. Just as OSX uses stuff like LauchD to make the experience better for the end user, so must Linux adopt methods like SystemD if it wants any foothold in the future of productivity computing.
Most end users don’t even know if their computer is on or off. Systemd doesn’t really have a major effect on them. Who it does affect are the administrators that manage their systems. We were moving along fine before.
Most end users of Linux ARE system administrators.
End users who rely on others to administer their machines do not generally run Linux.
I liked this article!
As someone who started out in -95 with Slackware and is not too keen on being forced to learn about things I’ve put aside as done, I was very happy to get his side of the story.
When I heard about Systemd I was unhappy as I knew someone had developed something new and complex which I probably would have no choice but to learn if I wanted a good predicable system.
But I knew precious little about it or how things had progressed. Having read this article I’m not as concerned moving forward and have more faith in them delivering a worthwhile product. In fact I’ve now put my concerns away as not something I don’t expect having to worry about.
I’d just like to interject for a moment. What you’re referring to as Linux, is in fact, Systemd/Linux, or as I’ve recently taken to calling it, Systemd plus Linux. Linux is not an operating system unto itself, but rather another free component of a fully functioning Systemd system made useful by the Systemd daemons, libsystemd and vital system components comprising a full OS as defined by Freedesktop.org.
Many computer users run a modified version of the Systemd system every day, without realizing it. Through a peculiar turn of events, the version of Systemd which is widely used today is often called “Linux”, and many of its users are not aware that it is basically the Systemd system, developed by the Red Hat corporation. There really is a Linux, and these people are using it, but it is just a part of the system they use.
Linux is the kernel: the program in the system that allocates the machine’s resources to the other programs that you run. The kernel is an essential part of an operating system, but useless by itself; it can only function in the context of a complete operating system. Linux is normally used in combination with the Systemd operating system: the whole system is basically Systemd with Linux added, or Systemd/Linux. All the so-called “Linux” distributions are really distributions of Systemd/Linux.
Nice 😉
Please not another one this thing. I don’t want to say I run Sysix, lignuxsys or syslignunix
Systemd. Why I now use FreeBSD
@ dddd: I hear ya. You let feature bloat and designers get away with something once and you end up with something like Ubuntu.
Ubuntu: “For one who does not know how to configure Debian”
I am waiting for the day when Systemd tucks me in at night.
The unix philosophy is not having every binary in a separate project or repository. It is how the code is composed in independent binaries.
The binaries don’t need to be in different repositories. I’m unsure if this sort of development methodology even existed back then. The idea with everything is a independent project is if something a linux userland philosophy or tradition probably spawned by how linux is developed over the net by different people. It has never existed outside of the linux sphere.
I agree with a little bit of what everyone is saying here. It would have been completely unbiased if there was an interview with the same questions to the Devuan crew. I support their work at maintaining the freedom of choice in Debian.
Our Linux servers already boot faster than any Windows server, why should we care about faster boot times? Our Init already works well, why do we need a new one? Init scripts are well documented, why do we need to teach ourselves new commands? Being slow to change is not a bad thing, being hasty is.
This says it all:
“Systemd is not just init.” – https://wiki.debian.org/Debate/initsystem/systemd
Feature bloat will be the downfall of humanity!
Hummm same old thing every time .
I run Arch Linux and hate systemd but it is so windows like in it’s want to gain total control of every single part of the system it is a nightmare .
Lol, what a joke. Lennart’s sole argument for systemd being “like traditional unix” is he and the development team are maintaining it in one (as opposed to dozens of) source code repos. Lennart is obviously an idiot. I’ve first started using Linux about 1996. I’ve used both Linux and *BSD since. In general BSD people are more knowledgable and techhnically competent than Linux people. The difference between the BSD world and the Linux world is that you will get jerks like Lennart who think they know it all but suck at engineering *nix solutions and in the BSD world you will get Jerks like Theo De Raadt who are actually competent *nix engineers. Thanks to things like Lennart and systemd I am now strictly use OpenBSD. I always knew the code quality of Linux was shit anyway so it doesn’t really bother me. Also, it is funny that Lennart once claimed tha the *BSDs are irrelavent but anyone with half a brain would know that since Edward Snowden’s revelations that OpenBSD is more relevant than ever.
“Because 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. You’ve solved one thing but not 90% of the problem.”
What “problem”? I’ve yet to see this mysterious Big Problem demystified. Restarting services? If you’re an admin consider, y’know, doing your job and working to make the services stop crashing all the time.
Technical supriority through superior handwaving isn’t a thing.
What kind of services do you run? With SysV init we’ve had endless timing issues with systems using LDAP authentication and NFS mounted filesystems. Services like nscd will just mysteriously refuse to start, requiring a semi-random process of introducing “sleep N” commands in various init shell scripts. And dealing with removable devices (particularly storage) is a complete and non-functional hack. A bunch of Ubuntu 12.04 systems were upgraded to 14.04 and it stopped working entirely. If you run your hardware like it’s 1999, then you’re good to go and have no need for systemd. If you live in the modern world, though, you’re like a kid at an android convention with a Ti-89 calculator.
And that’s it? How many removable devices do you have in your server?
How do I run my hardware like its 2015? Why would I go to an android convention (and what’s that anyway)?
Poettering strikes me as someone who isn’t versed in POSIX compliance.
You are confusing not being versed on POSIX compliance with not having or wanting to conform. Systemd is designed for the linux kernel and glibc only. it can use whatever API those components provide.
Well, that was interesting, but more of a blog post by LP than an interview.
Systemd mostly works for me, and it does seem to be superior from a technical PoV, but I’m more worried about the devs reactions when it comes to bug fixing and security. They don’t exactly have a good track record, and their particular brand of open mindedness seems to have quite a lot of limits and biais.
Why did the interviewer state that “all” major distributions have adopted it? It’s still lacking Slackware and Gentoo, and it’s not yet in Debian-Stable nor in any official release of Ubuntu. If one excludes the distros whose charters require lockstep comparability with RedHat, only about half of the major distros default to systemd.
Also, LP incorrectly states that systemd’s adoption was driven by merit, when in truth it was ignored outside of RedHat until udev introduced a dependency on it. Once that happened, a slew of udev-using distros adopted systemd. LP has weaponized software dependencies to shoehorn his project where it wasn’t wanted.
Several distros (though no major distros, yet) have adopted udev to avoid the systemd dependency, and two major distros (Gentoo and Slackware) are extracting udev from systemd to avoid the dependency.
The narrative of systemd’s inevitable ubiquity is not universally accepted, and the backlash against it is vigorous and wide.
Are Slackware and Gentoo really “major” distros?
I once read that: when it comes to enterprise Linux systems, about 75% use RHEL.
Is there any way to reliably count how much market share is owned by each of the various distros?
Yes, Slackware and Gentoo are among the world’s major linux distributions. See the distribution “family tree” here to get some idea of the different distributions’ relative influence: https://upload.wikimedia.org/wikipedia/commons/1/1b/Linux_Distribution_Timeline.svg
Also: https://en.wikipedia.org/wiki/Linux_distribution#Popular_distributions
75% of enterprise use sounds about right for all of the RHEL-derived distributions: RHEL, CentOS, Scientific Linux, and Oracle Linux. The RedHat derivatives dominate the enterprise. Not so much outside the enterprise, though.
“Also, LP incorrectly states that systemd’s adoption was driven by merit, when in truth it was ignored outside of RedHat until udev introduced a dependency on it.”
This is complete and utter bullshit. You’re just airing out your ignorance on a public forum.
And yes, given that debian and Ubuntu have now adopted systemd, all major distros have committed to using systemd. Just because it’s not there yet in debian-based systems doesn’t mean it hasn’t been adopted.
“Why did the interviewer state that “all” major distributions have adopted it?”
No. We didn’t say that. We said “pretty much every major distribution”, ie not all, but almost every.
You’re right. I apologize.
It still seems like an overstatement, however.
oops, that should read “Several distros (though no major distros, yet) have adopted eudev” 😛 sorry for the confusing typo.
Great interview, thanks for posting! As someone who follows the systemd conversation, but not daily checking personal blogs, etc. this was insightful. Hearing the evolution right from the horses mouth helps clear the FUD.
As with anything else, seek first to understand, then make your own judgement. Technical arguments aside, I don’t feel like I’ve been robbed of my choice. I’ve really liked Solaris’ SMF implementation, systemd feels very similar. Sometimes tough decisions need to be made in the name of progress. I’m thankful folks like LP exist and aren’t afraid to cut their teeth on bold, disruptive technology.
Some interesting new information in this piece. I do feel it’s an LP PR piece though, canned entertainment.
Seems like systemd is taking all the little tools used to start a linux system, and building a new tool that does what most computer users understand as “startup”.
I still prefer my pid 1 to be a screwdriver and not a swiss army knife. It should be one tool that does one job well.
Has LP built a better screwdriver? No he’s made a Swiss army knife that includes a screwdriver.
“I still prefer my pid 1 to be a screwdriver and not a swiss army knife. It should be one tool that does one job well.”
But that is what PID 1 is. Systemd is 70+ individual binaries, each with limited capabilities. The functionality of Systemd is not all in PID 1, as many people claim for some reason. Very, very little of it is in PID 1.
It is not all in pid1,but you can’t run any without systemd, udev, and journald. The excuse of the separate binaries is just an excuse, as every part of the systemd “project” tends to depend on almost everything else, for no good reason.
This is not true. Iḿ compile ¨my own¨ systemd and it is very possible to cherrypick what you need. Everything needs pid1, udev and logind. The rest is usually possible to remove.
So why did udev have to be moved into SystemD?
Since apparently anti-systemd comments aren’t allowed to descend to the same level as pro-systemd ones, I’ll try to rewrite it.
You re using two of the pro-{systemd, pulseaudio} falacies:
– I don’t have that {use case, issue}, so it doesn’t exist.
– You don’t like new stuff because you’re afraid of change, never mind it breaks workflows, it’s unstable and (like pulseaudio) still breaks down frequently after years of development without adding any new functionality. Oh, a shiny!
For me, journald has consistently corrupted logs whenever systemd failed to shutdown or to boot. Emergency console never worked. Parallel startup has only added latency issues everywhere, with the boot becoming non-deterministic and hanging for different reasons. This has gone from distorting the nofail flag and refusing to boot when a secondary filesystem isn’t available, to killing fsck, to failing to start services in proper order because it doesn’t wait for a service to start but assumes it is running as soon as it is launched, and more. It is such a mess that I went from believer to heretic quickly.
I’m an arch user now (have used Debian, SLS, slackware, gentoo, mandriva, CentOS, tried I don’t remember what all…). Back in the 90s, I put in a Debian firewall with my very first cable-modem internet connection (my home machines, even the Windoze boxen, have never been pwned). I liked Linux because unlike with Windows, I was in control. I found the upgrade to systemd with arch painful but not because my system was so complicated. It was more because converting to systemd cranked the free-as-in-puppy factor up beyond reasonable levels and it came at a time when I was too busy with other things to do it right away. (And then consolidating all the bins — which may or may not be a good idea, too, but I digress.)
This last year, I had other “issues” with my computer, the last chapter of which had to do with a network stack that wasn’t up-to-date with my network hardware. I booted and got a console (I had not re-installed Linux from the ground up — all my stuff was still there).
When I brought in the latest driver through USB, compiled it, modprobe’d it, pulled the network cable out and popped it back in, then POOF! systemd in its wonder decided that the presence of a network meant that I could now have my GUI. I’m still confused how “network” would be a pre-req to “GUI”. I must not be as smart as LP and KS.
But what I do know is this: I no longer feel in control of my system and I don’t like that: https://www.youtube.com/watch?v=vtL3LieX1c4
Go ahead. Call me a mis-informed hater. My loathing for systemd comes from experience. Repeated. And especially from missing the feeling of really being in control. When I can confront the additional “puppy” cost, I’m off to alpine or gentoo or something for old fuddy duddies. “All that is gold does not glitter…”
I appreciated hearing Lennart in his own voice, mind you. But I would have appreciated hearing his own answers to hard questions about Pulse Audio: those issues are part of his history — including the important point of backward compatibility.
Or about “debug” on the kernel command line (okay, that was Kay’s commit, not his but still: they work pretty closely together, don’t they? practically indistinguishable behind the systemd-project curtain)
Or why the default installation of journald didn’t, at least in the early days, automatically hook up to existing journal systems in parallel — it would have helped users decide if the new way was better rather than condescendingly assuming that “of course our way is better” and “no user in their right mind will disagree with us.” The “Unix Way” is way more about choice than about single repositories. All my choice are belong to Lennart now, apparently.
It sounds to me like Lennart Poettering has the right idea. I’m not saying his implementation is perfect, but that is what open source is about. Continual improvement that you can trust.
I do not understand why some people seem to hate Lennart so much? It’s not his fault that systemd is adopted by so many distros, I doubt that he has so much authority over everybody to make all those distros use systemd.
And also, why some people are so convinced that systemd is some sort of a conspiracy? Why do people think that anyone who has anything positive to say about systemd is “forcing systemd down their throats”?
Inform yourself, you’ll read that he went by each distro committee.
Nice work Lennart. Keep it up, sir. Perhaps, GNU/Linux should (be concerned with) align(ing) more closely with R.Stallman/L.Torvalds, than that of ‘the’ Unix Philosophy.
I always thought it was all lower case “systemd” rather than “Systemd” as it’s referred to constantly here. Am I wrong about that?
Strictly speaking, yes. But we have a style guide for the magazine where proper nouns have capital letters, like everywhere else 🙂
I’ve been using the same install of Arch since about 6 years ago — before, during, and after the transition to systemd — and I’ve had exactly ZeRo issues with systemd. I like the ease of starting, stopping, and enabling services; journald is great; and my boottime is 50% faster than Mint Upstart off the SSD on the same box. I find it very difficult to believe our differing experiences with Arch/Systemd are independent of ideological commitments.
I’m a little torn on systemd. I like the boot speed for a end user desktop. I hate the requirements for a server. Why does my server require wireless driver firmware exactly? Why are we using sssd(designed to cache login credentials for laptops) for cacheing DNS? Who cares if my load balanced app server takes 3 minutes to boot instead of 10 minutes?
Right now systemd supports traditional rcscripts which is good. But for how long?
I’m thinking this is a case of let’s fix something that is not broken. The init system has worked without issue for decades. I read mention of problems with it but no mention of what any of them were. What problem was fixed exactly? If you are going to mention problems and not disclose any of them they do not exist in my eyes.
My personal note: If you want to be taken seriously about systemd, why don’t you try following standard unix filesystem layout. Systemd config files are in /usr/lib/systemd and not in /etc where they belong. (Yes there is a link to them in /etc, but that makes them compliant the same as putting feathers up your butt makes you chicken).
I’ll be heading over to devuan linux once they have a release.
While it might just be the way the transcript captures the interview, one is left with the feeling that Mike didn’t make the best of a good opportunity to press Poettering. Mike comes off as a bit of an apologist. Journalists who don’t make their interview subjects even a little uncomfortable at some point in the interview haven’t really covered their subject. The transcript gave the impression that Poettering talked to subjects in his own comfort zone, not to the framework a journalist should craft.
Regardless of what one thinks about systemd, this interview seems a missed opportunity.
Well, theoretically someone could create a brand new fallacy, I’m not a believer that there’s nothing new under the sun.
Or was this intended to be something more than a grammar flame?
On the issue of whether Systemd is monolithic, follows Unix philosophy etc., I have a question.
So apparently systemd is made up of many binaries. Fine; I’m not sure that means anything in itself because you can certainly have a single tightly-integrated program consist of multiple binaries. And apparently it is possible to run certain core elements of systemd while leaving out various components and running non-systemd components instead for these functions, although there are indications this is not quite as easy for some cases as it might seem. OK, and this is important, so good.
These non-core components. Can they be used by themselves to do the job they do within an otherwise non-systemd system? That is, are they actually independent Unix-like tools or are they tightly coupled to systemd?
This is a genuine question because I really have no idea.
A broader question: Many consider that SysVinit (or however you capitalize that) was showing its age and needed replacing. The conversation here seems to be to a fair extent between people who don’t like systemd and people who say SysVinit is inadequate therefore systemd is necessary.
Mr. Poettering seems to have initially felt that the replacement would be Upstart, but for some technical and some community-related reasons concluded that it should not be. Is there something that makes it inherently illegitimate to agree that SysVinit needs replacing but to conclude, as Mr. Poettering did with Upstart, that systemd is not that replacement?
Linux is like a toilet bowl. What sticks, stays…. FOREVER! Time to flush the crusty old crap. Systemd is pretty solid, fast and interactive. It’s the better way to go. Replace un-reparseable bash scripts with short configss, text logfiles with compressed, indexable logfiles, and integrate integrate INTEGRATE! I’ve never seen a single valid argument against Systemd yet.
First off – binary log files that can only be read by systemd? Umm – how does that not scream bad idea. If my computer crashes, I’d prefer to be able to get my logs and parse them in text – which is basically universal regardless of platform. Linux isn’t necessarily about integration, unless you want to turn it into the next Windows. I prefer it remain about choice.
If this is such an issue for you or others, then why not either;
1. Fork Systemd and change the needed sections of code for ACSII file output.
2. Create a patch to do the above to standard Systemd codebase.
3. Give us all a compelling argument on why the binary logs are such a bad idea. (I’ve seen no corruption of them, which seems to be the only argument).
4. Use the Systemd codebase to gain an insight into how Systemd works, and write an alternative log reader.
Seriously, it’s FOSS, do what you bloody want with it.
Why is it that the canned response to issues with systemd is always “just fork it and change what you don’t like”? Most of those with issues don’t like the underlying philosophy of systemd so they certainly have no interest in forking it.
Regardless of the “direction of Linux”, the interview just highlights his ego and what he thinks about others. I take particular exception to his comment about Gentoo, being a Gentoo user myself. Gentoo doesn’t use it by default, but does offer it as a CHOICE. What I see this guy doing is basically making up problems where there really aren’t any and then being hostile towards people who choose not to use it, and then can’t take the heat when it is turned back on him.
I don’t understand a need to change the software distribution process. It seems pretty cut and dry to me, unless you don’t want to release your source code. Then you might be in for some problems.
So – just some more thoughts ( I reply late because I just got the issue here in the States at the bookstore, so it is later than most ) but all I have seen are opinions on why one way (sysinit, or alternatives vs systemd ) is better than another, but no concrete reason why systemd is technically better than the way things are currently done. You can argue faster start up times with parralelization – I can argue that my bootup is fast enough that I wouldn’t notice an extra 2 seconds taken off, so a non-issue is being solved. Some argue binary text logs are more compressed and searchable with a special program or systemd itself, I could argue that text is pretty much universal and if size is a problem I could always have a cron job that compresses my log files with my choice of file compression, or write a script that compresses with different compression methods and takes the best ( you are then still tasked with making sure whatever you use to read says logs has a decompressor ) so really you would be in the same boat as binary. So basically systemd is different (and it can be cool to try something different) but I wouldn’t say better – at least not in a technical sense.
That bring said, I think what riles people is that things like gnome3 now require systemd to run. That is how one could argue that if you use gnome, it is “crammed down your throat”. Thankfully, I do have a choicd, and I don’t care for gnome, KDE, or anything else that lives on that scale – I prefer to use a minimal tiling wm which screams speed on everything I have used it on so far from my desktop at work to my laptop at home. So it really depends on the kind of user you are. If you are an average desktop user, than you aren’t going to care one way or the other, but I would argue that those people are simply better off with Windows, which is why many people say that going down this path is just turning Linux into another Windows. This makes sense for a company like RedHat, it is how they make money, but for those of us that like to tinker, learn how the system works, piece together our systems, or have full control, systemd is another choice, which thankfully my ditro of choice has not yet forced upon me in any way, but I could use it if I want. I simply choose to keep it and all the baggage associated with it off my computers as I don’t need it.
This leaves just LPs general dissmissive attitude of people that disagreee with him. It annoys people. A prime example, as I stated in another post, is his statement that Gentoo won’t adopt it as default because they are conservative. That couldn’t be farther form the truth. If you want systemd, just change a use flag and hit go during an install – but the choice to use it or not is there. Hopefully it stays that way.
I am extremely disappointed at this puff piece for SystemD. Who are Linuxvoice’s main sponsors I wonder?
I am concerned at how young Mr Poettering appears to be for the large responsibility he has been given. I am not a believer in “rock star” wunderkind being in charge of cornerstone projects like Init, and there’s no way this very young guy can have experienced why Unix developed the way it did. I am very disturbed by his egregiously WRONG answer to why SystemD is “unix-like” (it isn’t). I for one have not forgotten what a disaster pulseaudio was for the first few years of its *production* releases, why that mess did not sink his career is unclear. So I believe we are being had. Now, for what reason? Perhaps one or all of those that have been suggested wherever the flame wars start. I think the most likely is that a new Linux attack surface is required by the NSA (a major customer of Red Hat), and SystemD will be full of vulnerabilities for years to come.
Mike: Debian SID (Jessie) is far from unstable. The SID distribution is not Testing, it is intended for use. SystemD is getting rather long in the tooth already to be showing major bugs this close to production releases, yes? Are we to be treated to a repeat of the pulseaudio fiasco? Sure, pulseaudio works _now_ …… it took years post production release.
I swear, that if I ever have to right an essay on interactions withon the Open Source communities, I will be using the Systemd debacle as an example of how absolutely bizarre and spaced out it can get.
LP detractors, please get a grip. If you are going to lambast a man who is dedecating a lot of his time in creating FOSS and trying to be of a benefit to the FOSS world in general, at least provide fact and evidence of your arguments. It is simply not enough to state an opinion and then flame on.
“It’s monolithic” or “it’s all in one codebase” or any variation of that theme, is not a good enough argument, and does not warrent the need to verbally abuse anyone. Please provide a logical statement about why this is bad.
“Binary logs are bad”. Again, please back-up that statement with a factual/logical argument about why that is so.
If it is such a bad thing, then perhaps your factual and logical argument on this, might be able to change peoples ideas about it. Unfortunately, I have yet to see a good argument made against this.
And also, why not create a patch to revert Systemd from binary to text?
What an absolutely bizarre time to be finally getting involved in the Linux coding world…
So Lennart:
“most people who claim that have never actually played around with Unix at all.”
Well, some of them are commenting here.. I am administrating Unix systems since 1995.
(Hard not to feel insulted by the disqualifying you are doing. If people don’t like your ideas, they are just conservative .. well, maybe because they use Unix for many many years? Oh no, they never actually played with Unix at all? How does that argument of yours stack up?)
Insults aside..
I am using FreeBSD – and it does the job for me in many ways.
It’s not sysInitV – it’s rc.d and rcorder. I enable only what I need to run.
You can replace it by something quicker (for a desktop, e.g.) but it does the job for all my servers who are usually run jails – one service per jail. Nothing to improve here, speedwise.
The FreeBSD host is just a container, runs ‘basics” (mounts the filesystem, starts the host interface, NTP, syslog – and then the jails.
Kernel patches are needed maybe twice a year.. the only ones that need host reboots.
The jails are providing the “sandboxes” Lennart is talking about. I easily can run an older FreeBSD jail on a new host. E.g. when I migrated from FreeBSD 9 to FreeBSD10.
I upgraded the host, had all jails still using freeBSD 9 userland, I migrated them later.
BTW: The jails are offering security, there is no maybe in it (procfs, sysfs etc. e.g., do not exist in FreeBSD.
So, that’s all working – and it’s there to study for you if you want.
After more than 4 years in a FreeBSD only environment I had to move on and feel very very “stuck” with Linux, with VMware ESXi and CentIOS7 (and systemd)
It is highly inefficient for me.
Regards
Peter
Myself I find systemd to create way too many dependencies. At this was started to make a faster boot. For a good technical overview of why systemd is not good see Wolfgang Draxinger vs Lennart Poettering at a Linux conference:
https://www.youtube.com/watch?v=ZTdUmlGxVo0
I have to admit I can see some advantage to some servers where total conformity is valuable along with rapid deployment BUT after all this time and development I truly do not see any real advantage in SOHO Desktop systems or small business systems with under 50 workstations.
So please tell me why with so little advantage we needed such a huge alteration of code and especially PID 1? Additionally once cgroups was expanded from mere hardware calls to Namespace jobs, how is this anything but a “lockout” or at least the threat of it? I agree with the concept that LP wants to diminish the importance and power of any sysadmin ultimately. I guess we shall see. Eh?