Opinion on systemd

I became aware of systemd when the debates about it erupted on the Slackware mailing list. I figured I’d try it for myself to see what the fuss was about. In the end I dumped Slackware and I’m running Arch on all my desktops and laptops, and I’ve never had a problem with systemd.

My computers all boot much faster than before, and instead of futzing with rc scripts to configure some parameter I’m just adding or uncommenting a line in a configuration file.

I remember dealing with init scripts when I first started using computers so it’s nice to finally see some attention given to the boring, unseen, unappreciated corners of the system.

There appears to be a new boycott group that has emerged today http://www.phoronix.com/scan.php?page=news_item&px=MTc3OTM

I think if you are using a current Linux distro it is going to be pretty hard to boycott it. A member of my team has been evaluating it as part of a bigger thing we are working on. He actually quite likes it.

I haven’t taken a deep enough dive in it personally and I agree with some of @mordred’s points (we have discussed a little further outside this forum). It is interesting that it comes from the same guy who created PulseAudio. I think this explains a lot of the controversy, not many liked PulseAudio when it went into distros and it took a very long time to get right. It also goes against some basic Unix philosophies and I’m an old enough guy that such a thing annoys me a bit. That said, I personally haven’t hit a wall with it yet, I’m sure one day I will at 100mph and have my machine implode. But I’ve been using it since Fedora adopted it and it seems to work for now.

my 2 cents. Upstart is pretty decent. Systemd sounds a bit terrifying. I can’t say I’m excited. I probably don’t know enough, but I’ve written some upstart scripts and they are pleasent and I’m still not convinced by the “pro” arguments for systemD that it justifies the rest (giant monolithic beast that eats the entier front of your system and shits binary logs). I can definatly appreciate @neuro’s stance :smile:

I think this is a good example of why the Linux community can be its own worst enemy sometimes. Instead of spending time building a better system to compete with systemd, time and effort goes into a boycott group that will ultimately get little or no traction. What a monumental waste of time and effort.

I find arguments about gcc vs clang uninteresting to me, but I wouldn’t say they are “boring” as though it’s a fact that, to all, it’s a boring subject. I’d wager Ubuntu’s Bug #1 would seem “boring” to many a computer user. They have a computer, it has Windows on it, they don’t care about software freedom, etc etc. As long as it lets them get onto their email, and buy stuff from Amazon, they are happy. But I bet if they said to you, “oh, that open source stuff? So boring and uninteresting!”, you’d feel at least a slight pang of sadness and as though you’d been indirectly insulted.

Some of us care about the guts underneath the glossy frontend of computing. Please don’t assume or declare that, because you personally find it uninteresting, it is therefore generally uninteresting, and therefore any heated or passionate discussion of it is somehow a bit mental.

If I have to reboot a Linux server multiple times a day, something is wrong. Same with multiple times a week, month, year …

To be clear, I wasn’t saying people as a general rule find it boring, I was specific that I personally find it boring. If others dig it…rock and roll. :slight_smile:

I do maintain though that even those who are passionate about it having at times a rather disproportionate level of vitriol. :smile:

This.

Sorry, you (in my opinion) are being unreasonably and uncharacteristically flippant about this. I’m about to jump into the car, so can’t really spend a lot of time now going into this, but I’m rather disappointed that you, of all people, are apparently saying that you don’t understand why a community would get upset about something that they care about and depend upon heavily being changed, potentially for no real useful reason. You, who has written so much about building and respecting communities, no matter what that community is about.

Come on, Jono … :frowning:

Absolutely with you there. I do think there should be a discussion somewhere on whether or not systemd is the right “thing” or not. If it isn’t the discussion should move on to how to improve it or replace it. Not spend actual effort on creating a hate group.

I can kinda see why there was some negativity to RiserFS way back. It is hard to shake-off the acts of the guy a project is named after. But that is a sort-of a special case and still didn’t do the technology at the time any good.

I think GCC vs. CLang is fundamentally different. One of the reasons CLang even exists now is licensing. Multiple projects of similar types exist due to licensing constraints on the original projects. Also it is actually an advantage to use both GCC and CLang for a project when it comes to continuous integration since they have different parsers that can detect a different range of problems in code.

I currently maintain an Apache 2.0 licensed MySQL connector project for HP (called libAttachSQL). MySQL comes with an Open Source connector, but it is GPLv2 licensed which is not great for everyone. MariaDB has an LGPLv2 one (I have had many debates on why their license isn’t legally sound, but that is beyond scope here), again LGPLv2 can be too restrictive for some projects. Whilst my connector does have a few extra features (non-blocking API for example) it fundamentally does the same thing.

Apple dropped GCC for CLang due to GCC’s switch to GPLv3 which was too restrictive for them. This gave CLang massive traction. They both have their advantages, I don’t see either project dying off and they can both co-exist nicely.

So you don’t do any system security patching then? Good to know, I’ll grab my hacking toolkit :wink:

Depends on the system. Package updates are gravy, they can be done any time with minimal or no interruption to services. Kernel updates obviously require a reboot, but using layered defence (perimeter firewalls, packet inspection, etc) means a kernel attack is less of an issue than it used to be.

Well, maybe I was a bit flippant, but this was due to years of watching similar situations of what I consider to be our community chasing its own tail sometimes.

In my position as a passionate community guy, of course I understand why people get into these debates, and why there is a lot of debate about decisions that are made. My concern is (a) against statements as harsh as “I hope it dies in a fire” which I think is neither constructive nor furthers the discussion, and (b) where we seem to get focused on implementation details as opposed to chasing the big opportunities out there.

As we have discussed on the show before, while we were debating topics like this in the Linux distro world, Apple and Google came in and ate our lunch. We were too focused on sweating the small stuff as opposed to catalyzing our energy on the big stuff.

This is not a flagrant disregard of community or the view of community; I just think these debates are a bit of a waste of our energy, that’s all.

Maybe your energy, as the debate doesn’t interest you, by your own admission. However, there are those of us who care about the underpinnings, at times passionately so. If there weren’t, you’d be running your open source applications on a Windows machine, developed in Visual Studio, or accessing your favourite websites served to you by IIS and .NET/ASPX.

I’m happy. Happy, happy, happy. :slight_smile:

I agree that my energy is not there, but other’s may be. Again, I have no objection to people who are passionate about this area…it is the level of fire that gets me.

I think the thing I don’t like is what else could have been accomplished instead of all this drama about systemd, It almost seems like some of it is a tribal reality. I wonder how many more people could have been helped on irc, had documentation pages written, bugs found in testing, or new code being written. Is the argument over systemd going to actually do any of these things.

Sadly, most Linux users are not actually able to do many of those things. It’s easier to argue about technology than to implement sensible engineering practices.

I think one thing to blame is definitely the volunteer system we have. Basically, outside the core devs, things are patched by folks when they notice problems that are big enough to motivate them to make a branch. There’s a lot of cognitive overhead in looking for problems to work on.

Here’s the way I wish it worked:

  1. Core dev notices a problem he doesn’t have time to fix.
  2. Potential contributor volunteers for a set number of hours per week of kernal hacking.
  3. contributor is assigned to an area of the kernal.
  4. core dev gives the contributor a reasonable chunk of work based on his volunteer hours.
  5. Core dev mentors the contributor through the process, adding Engineering process over sight.
  6. contributor reviews their branch against a set of rigorous guidlines, making sure that it passes all tests / coding standards.
  7. Core dev applies same guidelines.
  8. Release is agreed to.

People need knowledge transfer, mentorship, and over sight. Right now most of that is highly concentrated at the top of the Linux world, with bugs being fixed in a very ad hoc manner. This does not promote knowledge of the legitimate engineering problems, much less issues like system D.

If more people are actively working on code, there will be less incentive for kvetching, and fewer “heroes” like Pottering who get frustrated with the system and go crazy making new things whole cloth because they feel (sometimes correctly) that it’s the only way to get any significant amount of work done.

So yeah, peolple should complain less and contribute more, but we have “deal” more people into Linux development before that’s a realistic goal.

Also: Linux has very poorly defined engineering, and design goals (goes for most distros as well.) This also makes it hard to contribute.

Sorry to jump in on this topic after it has been dead for a little while, but I feel I have something fairly useful to contribute to this.

“sysvinit” is old, tired, and not really fit for purpose any more. People have tried to replace it with various other init systems and ultimately “systemd” was chosen.

Fine, big deal.

Suddenly I’m not able to just read files on the system to find configuration, I have to use a utility to parse it. I have to remember the convoluted “hostnamectl set-hostname myserver” to change the hostname, rather than editing /etc/hostname. I have to use “journalctl --boot” to get startup messages. “service iptables save” doesn’t even work any more, because “systemctl” only works with pre-defined actions in the specification.

Fine, I can learn to live with that – it makes life a lot harder because I now have to run these commands on the system using “systemd-firstboot” rather than pre-stage it.

Kay Sievers (of systemd) received an absolute tirade of anger from Linus:

Then Lennart (also of systemd) went mad. He added functionality to the systemd nss-myhostname module so that if you try to ping “gateway” it will ping your default route. No consultation with the people that run the root nameservers, no RFC2606/RFC6761 update, no simple question on any IETF list as to whether this would be a good idea or not. He just pissed off a lot of people.

Today Lennart also announced: “systemd-import” can pull and update container images from the Internet, in the format and via the APIs of today’s best known Linux container solution. This lightweight tool downloads the images, converts them into btrfs subvolumes/snapshots and makes them available as simple directory trees in /var/lib/container/, like any other container tree, which you then can boot with “systemd-nspawn”.

Yeah, you know what, Lennart? Zawinski’s Law. Give it time…

I could have lived with systemd as an init replacement. Instead, it’s taking over my entire system, and written by people who doesn’t care about standards, co-operation, or good quality of code.

If I had a choice in the matter (I don’t) I’d be sticking with sysvinit. Better the devil you know.