Opinion on systemd

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.

If Linux had a system of sensible mentorship, as the BSDs do, then this whole issue would be moot. The “populist” nature of Linux development means that there are some very hot blooded decisions about what goes in the kernal. You can’t go mad and add anything at all to BSD.

I think you misunderstand systemd. It’s not “in the kernel” – it the first process the kernel calls when it’s finished booting. There’s little chance this would have been included in the kernel because of Linus’s famous doctrine “we don’t break user space”.

You’re absolutely right. I’m tired and ranting.

But it’s still basically the same integration process. Dude makes radical thing, tries to win acceptance. Populism ensues. I think my point may be still valid, just on a distro level. Also, you’d be forgiven for thinking system d was in the kernal, since systemd is discussed a ton on LKML and not just on distro mailinsg lists :slight_smile:

Excuse the ranty tone and vague technical inacuracies. A little grumpy and tired. Too many trolls in other communities this week.

Anyway to take SystemD out of this and distill my point even further: Linux distros tend to have a decentralized development community, with relatively little sense of mentorship from the top. As a young developer, this frustrates me, and I think it adds to these flame wars over code. I’d rather do what it takes to pay my dues than do something radical like Leonard, but I can see where he’s coming from in the current atmosphere.

Have a read of this: https://www.reddit.com/r/linux/comments/2ny1lz/im_greg_kroahhartman_linux_kernel_developer_ama/cmj18tw

With a decentralized project, the fact you’re young means nothing :wink: Linux is a meritocracy – everyone has loud voices but ultimately good working code beats hot air!

I would rather meritocracy be centralized, with strong standardized practices. Code review etc…

I blame the cult of devops for all this. Too many developers thinking they know the system :wink:

1 Like

Not really true, it’s very political. I’ve had some features coded and submitted and rejected because while some developers would have liked the features, they were in another developers area and he didn’t see the need for it (and doesn’t use that stuff) so they were rejected.

also meritocracy is maybe not such a good word. sounds nice. But it relies on a definition of merit. which we all assume just means something like “good”. But unfortunately it’s closer to evolution than ideals. In this case merit isn’t on code or “bestness” or anything, it has a lot to do with seniority, who can yell the loudest and be the rudest. There are many people who have just left the kernel scene because of it’s tone and nature who could have otherwise continued writing fine code. It’s an aggressive and sometimes hostile community.

I would rather there be clear authority. I think sometimes people speak of meritocracy, when in fact what you have is the same sort of experience/senority based politics every other community has. I don’t mind working with a clear mentor, and letting that person be the boss.

I don’t have much experience with systemd but it seems similar to the boot system in Solaris which I do have a lot of experience with.

Solaris has been using a boot system like systemd for years and nobody complained. I think it’s pretty nice because not only does it boot the system but it manages services as well. This means that if, for example, Apache dies the system will restart it and if it can’t restart it it will throw an alert to the sysadmin saying the service is down and was not able to restart.

There are clear enterprise benefits to an init system like systemd. I think we need to be more open minded about where and how Linux can be improved. It could be that systemd is not the right answer, but that does not mean sticking with init is ether.

“Aye, and if my grandmother had wheels, she’d be a wagon” – Montgomery Scott.

We’ve all got our things that we’re passionate about. I am confident that I can get pretty damned fired up for topics Iove or hate… but that you couldn’t give two squirts about.

For the record: I am adamantly opposed to systemd when I think it’ll get Lennart’s panties in a bunch. Otherwise I have fairly mild opinions on the topic.

“Aye, the haggis is in the fire for sure.” – Montgomery Scott

Truly the wisest man that ever lived.

haha! I thought @bryanlunduke was taking the piss! Nice.

Late to the party as usual, but here goes.

I was initially dead set against systemd. Then I tried to look at it dispassionately. I listened to interviews with Lennart. I tried to get my brain around what their goals were. (@bryanlunduke, I emailed your friend, Mr. Fisher, and told him in that interview, he tossed Lennart nothing but softballs). I watched it’s deployment in Debian, which was a train wreck, and I still have problems with it today. It is, at least in my experience on Debian, not unlike pulse audio, rushed out before it was fully baked.

Over the past couple of months, I have come to the following conclusions. First, systemd is a solution in desperate need of a problem. I have been a sysadmin professionally for nearly 20 years. I have never had, or been party to a conversation in which anyone has complained about the init manager not affecting enough parts of the system…In fact, until systemd appeared on the scene, I never really heard any complaints about the init system.

Which brings me to my second point. Lennart said that a) the systemd team wants to "own everything between the kernel and the application layer…And that eventually, they would like to replace existing package managers with some kind of systemd-based docker solution.

I owe Lennart no ill will, and think that the internet meme of death threats because you don’t like someone’s software is childish to say the least. However, I am also not a fan of systemd at this point in time. Unfortunately, with the current state of the landscape, currently, Ubuntu (and Ubuntu children, like Mint) are in the early stages of deployment. Gentoo and Slackware are the only ones that are flat out not looking at it. And I think it is only a matter of time for them, before something has to give in the kernel that will force them to either get on board or go dark.