Live data from Hacker News

Why Did It Take Devuan Two Years to Replace Systemd?

troubleshooters.com

71–80 of 132 posts

Re: Why Did It Take Devuan Two Years to Replace Systemd?

#71

Say I want to create an independent, 100% compatible implementation of systemd which can just drop-in to any systemd installation, no matter how it is configured and have it work? Where can I download the precise set of requirements for this, so that I don't have to peek at the systemd source code? What is systemd?

Say I want to create an independent, 100% compatible implementation of Linux which can just drop-in to any Linux installation, no matter how it is configured and have it work? Where can I download the precise set of requirements for this, so that I don't have to peek at the Linux source code? What is Linux? Really, this doesn't make sense.

GNU/Linux implemented Unix without working with proprietary source code from AT&T. Those people documented their stuff thoroughly and even created international standards.

A good many of the Linux system calls and glibc functions are documented by POSIX. That doesn't cover 100%.

We can start by looking here:

https://www.kernel.org/doc/

The Linux man pages project covers system calls:

http://man7.org/linux/man-pages/dir_section_2.html

Many of these don't correspond to anything in POSIX, or not directly, so this documentation is crucial to anyone wanting to replicate Linux.

Microsoft seems to have done such a thing:

https://en.wikipedia.org/wiki/Windows_Subsystem_for_Linux

"WSL provides a Linux-compatible kernel interface developed by Microsoft (containing no Linux kernel code) [...]"

However, in all likelihood, they peeked at Linux code here and there.

Re: Why Did It Take Devuan Two Years to Replace Systemd?

#72
post #69
post #57

Earlier quoted context omitted.

> I wouldn't be against systemd if it were just an init system. The problem is that it's not. That's the end of my argument. All of systemd's functionality, as far as I'm concerned, is rationally motivated by wanting to orchestrate and instrument system startup in a sensible way. What functionality do you think systemd should not have that it has today? What is a better way of achieving the result provided by that fu…

> All of systemd's functionality, as far as I'm concerned, is rationally motivated by wanting to orchestrate and instrument system startup in a sensible way. What functionality do you think systemd should not have that it has today? QR code generator? Message broker (IPC)? Underdeveloped, brittle, and overcomplicated syslog replacement? Task scheduler?

> Underdeveloped, brittle, and overcomplicated syslog replacement?

Are you referring to the systemd journal? I think you should lay out your arguments in detail if you want to make claims like that, since there is a lot of compelling evidence to the contrary. Russ Allbery's analysis of systemd [1] lays out a convincing case that the journal is a highly developed, flexible, and useful feature:

  * Integrated daemon status.  This one caught me by surprise, since the
  systemd journal was functionality that I expected to dislike.  But I was
  surprised at how well-implemented it is, and systemctl status blew me
  away.  I think any systems administrator who has tried to debug a
  running service will be immediately struck by the differences between
  upstart:

    lbcd start/running, process 32294

  and systemd:

    lbcd.service - responder for load balancing
     Loaded: loaded (/lib/systemd/system/lbcd.service; enabled)
     Active: active (running) since Sun 2013-12-29 13:01:24 PST; 1h 11min ago
       Docs: man:lbcd(8)
             http://www.eyrie.org/~eagle/software/lbcd/
   Main PID: 25290 (lbcd)
     CGroup: name=systemd:/system/lbcd.service
             └─25290 /usr/sbin/lbcd -f -l

  Dec 29 13:01:24 wanderer systemd[1]: Starting responder for load balancing...
  Dec 29 13:01:24 wanderer systemd[1]: Started responder for load balancing.
  Dec 29 13:01:24 wanderer lbcd[25290]: ready to accept requests
  Dec 29 13:01:43 wanderer lbcd[25290]: request from ::1 (version 3)

  Both are clearly superior to sysvinit, which bails on the problem
  entirely and forces reimplementation in every init script, but the
  systemd approach takes this to another level.  [...] the most useful
  addition in systemd is the log summary.  And that relies on the 
  journal, which is a fundamental  design decision of systemd.

  And yes, all of those log messages are also in the syslog files where
  one would expect to find them.  And systemd can also capture standard
  output and standard error from daemons and drop that in the journal and
  from there into syslog, which makes it much easier to uncover daemon
  startup problems that resulted in complaints to standard error instead
  of syslog.  This cannot even be easily replaced with something that
  might parse the syslog files, even given output forwarding to syslog
  (something upstart currently doesn't have), since the journal will
  continue to work properly even if all syslog messages are forwarded off
  the host, stored in some other format, or stored in some other file.
  systemd is agnostic to the underlying syslog implementation.
[1] https://lists.debian.org/debian-ctte/2013/12/msg00234.html

The benefits that Russ describes above are meaningful, tangible improvements to the user experience that helps system administrators like me. Far from being brittle, the journal seems quite flexible (being "agnostic to the underlying syslog implementation"); it seems highly-developed and well-integrated into the systemd toolkit, and I see no evidence that it's over-complicated.

> Message broker (IPC)?

Are you referring to dbus? Dbus is not part of systemd and predates systemd by almost a decade! Dbus already had significant adoption when systemd took a dependency on it. It's used by GNOME, KDE, and even the Upstart init system. From Lennart Poettering's blog [2]:

  D-Bus has been a core component of Linux systems since more than 
  10 years. It is certainly the most widely established high-level
  local IPC system on Linux. Since systemd's inception it has been
   the IPC system it exposes its interfaces on. And even before
  systemd, it was the IPC system Upstart used to expose its
   interfaces. It is used by GNOME, by KDE and by a variety
  of system components.
[2] http://0pointer.net/blog/the-new-sd-bus-api-of-systemd.html

Re: Why Did It Take Devuan Two Years to Replace Systemd?

#73

I keep waiting for the reasoned, technical arguments against systemd instead of veiled metaphors, complaints about its creator, or protestations that it's different. The initd-inspired community has resisted the push for declarative and component-based core system infrastructure for so long, and it's causing very strange distortions to the linux ecosystem as solutions get sought for the problems it introduces. System…

Here: http://blog.darknedgy.net/technology/2015/10/11/0/

For a less politically correct one: http://suckless.org/sucks/systemd

For a personal experience: I remember that until systemd 21x (212? 213?) whatever core dump you got was cut off at around 700Mb (arbitrarily chosen by systemd developers due to journald limitations, a bug was left open without comments for 2 years, another person was essentially told that was the limit we're sorry [1], until a big customer of RH was hit by it maybe). Obviously preventing systemd from "intercepting" core dumps was (and it is still, IIRC) black magic. That made for some head scratching moments in our early RHEL7 installs.

[1] https://bugs.freedesktop.org/show_bug.cgi?id=55613, https://bugs.freedesktop.org/show_bug.cgi?id=59623, https://cgit.freedesktop.org/systemd/systemd/commit/?id=34c1...

Re: Why Did It Take Devuan Two Years to Replace Systemd?

#74
post #72
post #69

Earlier quoted context omitted.

> All of systemd's functionality, as far as I'm concerned, is rationally motivated by wanting to orchestrate and instrument system startup in a sensible way. What functionality do you think systemd should not have that it has today? QR code generator? Message broker (IPC)? Underdeveloped, brittle, and overcomplicated syslog replacement? Task scheduler?

> Underdeveloped, brittle, and overcomplicated syslog replacement? Are you referring to the systemd journal? I think you should lay out your arguments in detail if you want to make claims like that, since there is a lot of compelling evidence to the contrary. Russ Allbery's analysis of systemd [1] lays out a convincing case that the journal is a highly developed, flexible, and useful feature: * Integrated daemon stat…

> [...] Russ Allbery's analysis of systemd [...] explains why it's such a compelling feature:

It's tightly integrated where it doesn't need to be (with zombie reaper), you can't replace it (only slap something on top of it), and generally those few last log lines that are displayed are useless anyway, as usually when something breaks I still need to view full logs. Much more useful would be debuggability (with syslog this part is easy), remote data collection (syslog has it for decades already), and storage resilience (journald can corrupt log files on system crash).

> Are you referring to dbus? Dbus development began in 2002 whereas systemd's first release was in 2010.

When what was started is pretty much irrelevant. I didn't say we don't need D-Bus as a message broker (though I consider sub-par the way D-Bus works), I said that we don't need it in neither zombie reaper nor daemon manager. It worked well enough being a stand-alone service for a decade.

And now, you haven't addressed the glorified zombie reaper including a task scheduler and QR code generator. Why do you think their integration is so important that they needed to be included in systemd?

Re: Why Did It Take Devuan Two Years to Replace Systemd?

#75
post #63

Earlier quoted context omitted.

The second major issue is it growing way out of the bounds of being just an init replacement, thereby violating the so-called Unix Philosophy of doing one-thing well. I keep on hearing this overly worn "Unix Philosophy" argument against systemd, which in the absence of any non-religious technical justification, basically boils down to "its different". All of this adds up to a storm of controversy that the systemd peo…

Why does an init system need a DNS implementation? Why not use named, unbound, or any of the other implementations? Instead they implement it poorly, have had various problems with it, and of course there have been security problems with it. Do you really want an init system that replaces a ton of functionality poorly like dns, ntp, syslog, xinetd, etc etc etc?

> Do you really want an init system that replaces a ton of functionality poorly like dns, ntp, syslog, xinetd, etc etc etc?

SystemD is not just an "init" system. You have to look at the larger vision for it being a set of building blocks for Linux system and service management.

I think this is a very good thing. Its about time that Linux had a unified and self-consistent approach to system management and configuration.

Re: Why Did It Take Devuan Two Years to Replace Systemd?

#76
post #65

Earlier quoted context omitted.

It's not a holy war, but it does have a lot of politics, which engineers like to pretend don't exist. Here is the only solid criticism of systemd I've read that focuses on design (as opposed to bugs that surface from the sprawling throw-it-over-the-wall approach to development): http://blog.darknedgy.net/technology/2015/10/11/0/ Notably, darknedgy hosted/hosts uselessd, which was a lightweight version of systemd. On…

> On the whole i think the idea underlying systemd, of graph-based management of services and system state makes more sense that wonky initscripts garbage. It would make sense if systemd delivered on its promise of automatically detecting service dependencies (through socket activation mechanism). In practice, it's still distro maintainers and sysadmins who need to specify any and all dependencies manually , and as s…

> It would make sense if systemd delivered on its promise of automatically detecting service dependencies (through socket activation mechanism).

New features require time to gain wider adoption. Some services already support this, but most don't (yet).

Re: Why Did It Take Devuan Two Years to Replace Systemd?

#77

Earlier quoted context omitted.

> We either push back on all of them to make a more professional environment or we accept this is what we want. This is a false choice. We can choose our battles as we please.

If you like being inconsistent and tribal, then yes. You can.

> If you like being inconsistent and tribal, then yes. You can.

I feel like you're pushing an agenda & have discarded any possibility of listening to other points of view, or modifying your position. I recognise it as 'listening in bad faith'. I didn't say I liked being inconsistent or tribal, you are putting words into my mouth in an attempt to discredit my position as irrational.

It's still a false choice: I can choose how I spend my time, and I can spend it in a way that I think is effective.

Re: Why Did It Take Devuan Two Years to Replace Systemd?

#78
post #63

Earlier quoted context omitted.

Why does an init system need a DNS implementation? Why not use named, unbound, or any of the other implementations? Instead they implement it poorly, have had various problems with it, and of course there have been security problems with it. Do you really want an init system that replaces a ton of functionality poorly like dns, ntp, syslog, xinetd, etc etc etc?

> Do you really want an init system that replaces a ton of functionality poorly like dns, ntp, syslog, xinetd, etc etc etc? SystemD is not just an "init" system. You have to look at the larger vision for it being a set of building blocks for Linux system and service management. I think this is a very good thing. Its about time that Linux had a unified and self-consistent approach to system management and configuratio…

"SystemD is not just an "init" system. You have to look at the larger vision for it being a set of building blocks for Linux system and service management."

This was not the way it was sold. It was originally sold as an init replacement.

If at the start the systemd guys had come out and said, "We aim to replace much of the core of Linux with some kind of Windows-Linux conglomoration: replace not only init but dns, syslog, turn all system log files binary, replace intetd, fuck with account naming, and oh, by the way, there'll be no easy way for distros that go with systemd to give their users a choice to use something else" then I'm not so sure how many people would have gotten onboard.

Basically, systemd has been a retooling of the core Linux ecosystem by people who think they know better. Well, this might be news for systemd fans, but they don't necessarily know any better than the rest of us, and the rest of us would like some choice in the matter. Instead we're force fed systemd and our operating system are no longer Linux but some bastardization of Linux and Windows.

"Nobody shoved anything down anyone's throat, least not the SystemD developers."

Tell that to the significan number of RedHat, Debian, and CentOS users who strongly object to systemd yet are forced to use it because that's all their distro supports.

"Anyway, in reality, software does not become mature and well-tested without early exposure to real users and systems. Chicken-and-egg problem there."

You don't have to test it out on all RedHat users, all Debian users, all CentOS, etc, etc. Getting a bunch of volunteers and letting them use a feature-complete version for five or six years before springing it on the rest of us would have been a good start. Instead you get an ever-morphing and ever-growing trojan horse.

Re: Why Did It Take Devuan Two Years to Replace Systemd?

#79
post #47

Earlier quoted context omitted.

One of the main problems was the speed with which systemd was rolled out on all the major Linux distros, despite it being relatively immature and very controversial at that. The second major issue is it growing way out of the bounds of being just an init replacement, thereby violating the so-called Unix Philosophy of doing one-thing well. For a user app to do that is one thing, but for a core OS component to do that…

>, thereby violating the so-called Unix Philosophy of doing one-thing well. For a user app to do that is one thing, but for a core OS component to do that just smells way too much like forcing Linux to be more like Windows, which a lot of hard-core Linux users are ideologically opposed to. That ship sailed a long ago when Linus ranted against microkernels :) Linux was never meant to follow a 'do one-thing well' desig…

"That ship sailed a long ago when Linus ranted against microkernels"

Was Solaris a microkernel OS? How about SunOS? Irix? DEC OSF/1? HP/UX?

Last I checked, they weren't yet all were considered examples of Unix, and all existed before Linux.

Re: Why Did It Take Devuan Two Years to Replace Systemd?

#80

Earlier quoted context omitted.

One of the main problems was the speed with which systemd was rolled out on all the major Linux distros, despite it being relatively immature and very controversial at that. The second major issue is it growing way out of the bounds of being just an init replacement, thereby violating the so-called Unix Philosophy of doing one-thing well. For a user app to do that is one thing, but for a core OS component to do that…

Don't forget security. When there's a problem with systemd shit hits the fan. When there's a problem with a widely used piece of software that only does one job the mess is smaller and easier to clean up.

I'm sorry, but this just isn't a fair comparison. Software is hard and the impact of software security issues is seldom limited to just one tiny place where it originates.
Post reply on HN