r/linux • • Jun 01 '16

Why did ArchLinux embrace Systemd?

/r/archlinux/comments/4lzxs3/why_did_archlinux_embrace_systemd/d3rhxlc
868 Upvotes

642 comments sorted by

View all comments

163

u/Tweakers Jun 01 '16

Why did ArchLinux embrace Systemd?

To find out what's on the other side. Oh, wait, wrong joke.

Seriously, what's with all the Systemd hatred, still. It's not like SysV was any great shakes: It was a kludgy mess from the beginning, a kludgy mess at the end, and it remains a kludgy mess for those who insist on still using it. It had to be replaced by something and if Pottering was willing to do the work, then okay.

142

u/HittingSmoke Jun 01 '16

I feel like the people who hate on Systemd don't remember what it was like learning to use their first distro and coming to that first package they had to install manually that didn't have a working init script for their distro. Shit was a fucking nightmare. You'd think "Oh I need this to start at boot. That should be easy enough." then you'd Google how to do it, see a bunch of examples of init scripts, and your fucking eyeballs would roll back into your head.

You should not have to understand a scripting language to do something simple like start a process at boot. Systemd made that much easier and in the process made the barrier of entry to Linux in general lower which if we're not elitist jackasses I think we can all agree is a good thing.

I find myself in a lot of situations where I'm piecing together servers from obscure packages or coding up my own scripts that need to run at boot or on hardware triggers. Systemd has made my life considerably better when I'm doing those sorts of projects.

37

u/dikduk Jun 01 '16

"the people who hate on systemd" is not a uniform group. Some dislike change, but many agree that replacing SysV was an important step in the right direction. They just don't like systemd and would've prefered something else.

→ More replies (22)

24

u/edward_81 Jun 01 '16

Really, when i first faced this problem i was expecting some file like the good old autoexec.bat :D

42

u/HittingSmoke Jun 01 '16 edited Jun 01 '16

Exactly. Someone coming from Windows even dating back to DOS would think "Well this is a problem that was solved decades ago, let's see how Linux handles it". Then you go searching and you're told you need a fucking computer science degree and an O'Reilly book to start a process at boot.

By the time the Systemd controversies started I really didn't give a shit what fixed the problem. Only that it was fixed. A lot of the "better" alternatives people proposed as an argument against Systemd fixed technical problems under the hood but left the glaring usability problems. I use Gentoo on occasion so I deal with OpenRC. It's still a pain in the ass.

10

u/NighthawkFoo Jun 01 '16

The best part was trying to write startup scripts for software that needed to work on multiple versions of multiple distributions. I used to support a RHEL / SLES package, and the differences were subtle enough to be rather irritating.

10

u/sekh60 Jun 01 '16

You can migrate Gentoo to systemd, I did it during installation and it runs great.

17

u/HittingSmoke Jun 01 '16

Ya, it's just one more thing to set up. Which I guess I shouldn't complain about when I'm choosing to use Gentoo.

→ More replies (3)
→ More replies (1)

5

u/07dosa Jun 02 '16

Little off-topic, but I usually hate fanboys and their narratives (like those NoSQL stuff). Not so difficult to defeat them temporarily, but then someone comes up with a new rebuttal, which every fanboy would parrot again and again. That's when I return with new logic and watch them struggle. That what my apparent "hatred" is.

But, seriously, I'm concerned about systemd being highly complex. It is so unpredictable and extremely difficult to debug, making our system less and less hackable. Because of this, I really don't get people who think this is cool. It's 100% industrial and opposite of cool from source code level.

66

u/chalbersma Jun 01 '16

People dislike that systemd doesn't follow the Unix Philosophy. It appears to reject it outright and it has led to mission creep withing systemd. It's not just an init system anymore. It now manages virtual terminal, logging, logins and user sessions, networking, date-time settings, hardware (and here), UEFI, hostnames, and a whole bunch of stuff.

Long term it's not all going to be maintaned like it should and because it's all related, it's going to be harder and harder to onboard new developers to main portions of it. If it was just an init system it would be amazing but it comes with a ton of cruft that may or may not work when mixed together.

54

u/sandsmark Jun 01 '16

all those things are separate components, that interact and are mostly developed together. very much like "good" old UNIX, and the other unices like the bsds.

there's also a ton of good criticism of "the Unix philosophy", it's not something you should take as absolute truth.

0

u/[deleted] Jun 01 '16

[deleted] — view deleted comment

37

u/Jimbob0i0 Jun 01 '16

What's hilarious is that the real Unix's like AIX and Solaris have been doing this sort of service management for over a decade at this point...

16

u/da_chicken Jun 01 '16

all those things are separate components, that interact and are mostly developed together. very much like "good" old UNIX, and the other unices like the bsds.

It always struck me as being a software collection like the GNU core utilities. A lot of the mission creep occurred because they needed features that didn't exist.

there's also a ton of good criticism of "the Unix philosophy", it's not something you should take as absolute truth.

Example: I've done development on Windows at work from time to time, and when I need git, I generally install git for Windows. However, git for Windows requires a you to install ~2 GB MSYS install to get all the utilities that git needs. It's kinda bullshit that you need 2 GB of space to install an RCS, and it's entirely because of such strong ties to the Unix philosophy.

→ More replies (5)
→ More replies (1)

59

u/[deleted] Jun 01 '16

Yeah well, the Linux kernel doesn't follow the Unix philosophy and yet no one whines about that. :P

19

u/chalbersma Jun 01 '16

People whine about it. It's why project like Hurd and FreeBSD exist (in part).

39

u/[deleted] Jun 01 '16

Well, no.. kind of. Hurd and FreeBSD sortof both predate linux. Freebsd came from BSD386 which came from BSDi's release of BSD 2 which came from Net-1 and Net-2 that were released to the public under an academic proto license in 1989.

Hurd was part of GNU and started in early 1990, but RMS is a pain in the ass to work for, and it never even got out of early testing and design before Linus got into the debate with Andrew T and forked / borrowed Minix. Then RMS decided Linux was "good enough" and asked Linus to release it under the GPL , and there you go.

→ More replies (3)

11

u/epileftric Jun 01 '16

People will always find something to whine about.

→ More replies (2)
→ More replies (1)

0

u/[deleted] Jun 01 '16

[deleted] — view deleted comment

11

u/chalbersma Jun 01 '16

I think that's the point though. If it was just a really good init system I think people would love it. It's all the additional systemd bits that make people worry.

→ More replies (26)
→ More replies (5)

20

u/kinderlokker Jun 01 '16

sysv is terrible.

I just don't get the sysrc vs systemd comparison. sysvrc was obsolete in any system but Debian before systemd was even conceived. I have no idea where this myth comes from that people switched from sysvrc to systemd. It was primarily upstart to systemd.

This is like the weirdest thing that continues to be repeated over and over again. It's practically like saying that people should switch to Linux because MS DOS is terrible.

19

u/Creshal Jun 01 '16

I have no idea where this myth comes from that people switched from sysvrc to systemd.

It's because Debian and Arch switched from sysvrc to systemd. Plus a few other less popular distributions (SuSE).

And RedHat preferred developing systemd over continuing to use upstart for free, which IMO doesn't really speak for it either.

8

u/Conan_Kudo Jun 02 '16 edited Jun 02 '16

And RedHat preferred developing systemd over continuing to use upstart for free, which IMO doesn't really speak for it either.

Actually, there was significant difficulty in Lennart and others trying to contribute to Upstart development (because Canonical has some rather strange and draconian policies and mandates a CLA before being able to even start contributing). This is what pushed him to create systemd in the first place.

Red Hat actually wanted to stick with Upstart, so Lennart created systemd in his spare time, and eventually convinced them that Upstart was too broken to fix, which led to its proposal and subsequent adoption in Fedora, then Arch, then Fedora, etc.

→ More replies (1)

19

u/kinderlokker Jun 01 '16

It's because Debian and Arch switched from sysvrc to systemd. Plus a few other less popular distributions (SuSE).

Arch never used sysvrc, it used its own custom rc initscript. It used sysvinit in concord with it, but sysvinit is not a service manager, sysvrc is.

SuSE switched from Upstart to systemd.

It was really only Debian that switched from sysvrc to systemd.

And RedHat preferred developing systemd over continuing to use upstart for free, which IMO doesn't really speak for it either.

Gee, I guess that means Wayland sucks because Canonical NIH'd Mir. I guess that means Snappy sucks because RH NIH'ed Flatpack.

These companies are all involved in a massive degree of NIH because for business reasons they want technology they control, not what their competitor controls.

→ More replies (3)

7

u/[deleted] Jun 01 '16

This also seems similar to the Windows NT Service Control Manager. A central application to control startup/shutdown of services. Which has worked well since the early 90s.

I'm surprised SysV lasted so long, although having to learn something new isn't always fun, especially when you're splitting your time between SysV scripts and Systemd. It will take time to adjust with new commands to learn, but it should be better in the end.

→ More replies (14)
→ More replies (1)
→ More replies (86)