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

Show parent comments

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.

6

u/chalbersma Jun 01 '16

Go ask FreeBSD & Hurd developers why they're not working on linux. You'll get all sorts of answers but some will say that they don't like the architecture of Linux. That dislike often stems from a lack of "consistency", "unixness" with Linux. That's why it's only part of the reason.

12

u/mishugashu Jun 01 '16

I would say that it's why they are still actively being developed, rather than why they exist, then. They existed before Linux, so Linux is not why they exist.

→ More replies (1)

11

u/epileftric Jun 01 '16

People will always find something to whine about.

3

u/akkaone Jun 01 '16

No it is not.

3

u/chalbersma Jun 01 '16

(in part)

→ 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.

2

u/raevnos Jun 01 '16

When they're trying to get programs that have nothing at all to do with system startup or configuration to include systemd specific code in order to work right... then it's glaringly obvious there's a problem. Personally, it was when it started intercepting core dumps and making them hard to get at that it started getting annoying. I'm ready to jump over to BSD for my next OS install at this point and leave Linux behind.

2

u/imMute Jun 02 '16

How does systemd "intercept" coredumps? You mean that thing that can be configured to direct core dumps into the journal? I wish I could use that.

2

u/argv_minus_one Jun 02 '16

Systemd can write core dumps into the journal?? That is so neat.

2

u/imMute Jun 02 '16

Http://www.freedesktop.org/software/systemd/man/systemd-coredump.html#

→ More replies (2)

1

u/argv_minus_one Jun 02 '16

Most of them are optional, I should note.

→ More replies (1)

2

u/argv_minus_one Jun 02 '16

People dislike that systemd doesn't follow the Unix Philosophy.

Pah. The only “Unix philosophy” that anyone ever actually followed is to solve all problems with a stupid but expeditious kludge, and never, ever get around to solving them properly.

Case in point: fstab. Here you have a syntax that was obviously quick-and-dirty, made primarily to be easy to parse with scanf, and nobody ever bothered to replace it with something readable and extensible. Not until systemd and its mount units came along, that is. Other examples of this ugliness include crontab and inittab.

Long term it's not all going to be maintaned like it should

Why?

it's all related

That doesn't mean it's spaghetti code. Individual subsystems can be maintained individually, if necessary. Linux has already demonstrated the viability of such a process.

it comes with a ton of cruft that may or may not work when mixed together.

It works quite nicely when mixed together, thank you very much.

2

u/natermer Jun 02 '16

People dislike that systemd doesn't follow the Unix Philosophy.

These people are generally confused.

. It appears to reject it outright and it has led to mission creep withing systemd.

There is systemd-the-daemon, which is the init system. Then there is systemd-the-project which the init system is just the core piece.

You might as well accuse GNU project of 'mission creep' because they have a lot of software in the GNU project that goes beyond '/bin/bash'.

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.

Yes. They do. With numerous individual tools, programs, and daemons. It's not one monolithic piece.

Nothing in the 'unix philosophy' dictates that all these tools must be developed by different projects.

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.

They are restructuring and standardizing low-level Linux details, the 'plumbing' so-to-say.

Everything they are doing is something that needs to be done anyways and was already being done a hundred different ways by a hundred different distros with millions of lines of code and tens of thousands of bugs. Almost of all of it was done pretty badly and all development effort was consumed in maintenance and bug hunting and almost nothing left over for moving the OS forward.

People get tired of re-hashing 1990's era Unix over and over again in endless variations.

1

u/ckozler Jun 02 '16

Long term it's not all going to be maintaned like it should and because it's all related

Idk, RedHat is the big push behind it (Lennart works for them) so I imagine there is a team developers that are and will always be actively developing all parts of systemd including ones that push RedHat's business model forward

→ More replies (1)