The tragedy of systemd, an interesting perspective

Discussion in 'Linux/BSD/Free Systems' started by Lunar, Feb 10, 2019.

  1. Lunar

    Lunar Limp Gawd

    Messages:
    373
    Joined:
    Jul 26, 2007
    Here's an interesting talk from a Linux conference in Australia that I stumbled across. Rather long, but some interesting points in here. Thought you all might want to give it a watch.

     
  2. ChadD

    ChadD 2[H]4U

    Messages:
    3,622
    Joined:
    Feb 8, 2016
    It is long. Good talk though. I agree with this guy for completely. SystemD is a big project but its not monolithic or unUnix/Linux as some people yell about.

    I think long term SystemD has a lot of room for refinement, but overall its a pretty reasonable solution.
     
    Lunar and FNtastic like this.
  3. Lunar

    Lunar Limp Gawd

    Messages:
    373
    Joined:
    Jul 26, 2007
    Personally, I love systemd over the old SysV init method. I think the days of individual init scripts for every service being a viable option are over. As he discussed, back in the old days a Unix system didn't have a lot going on, but nowadays a normal desktop system can have hundreds of processes. Doesn't seem smart to run a system with that much going on without a service manager. Sure, systemd might be grabbing things up that it doesn't need to, and we can have a discussion about that, but overall I think it's great, and something that Linux definitely needed.
     
    hrsetrdr and {NG}Fidel like this.
  4. Vermillion

    Vermillion 2[H]4U

    Messages:
    4,047
    Joined:
    Apr 5, 2007
    Great talk. I"m a fan of SystemD but as others have said it needs refinement. I really liked his answer to the question about how the SystemD devs and Linux community but heads and don't bother listening to each other. "A lot more sympathy on both sides." Perfect answer.
     
    hrsetrdr likes this.
  5. Lunar

    Lunar Limp Gawd

    Messages:
    373
    Joined:
    Jul 26, 2007
    Agreed. Also, what software doesn't need refinement? I think he said it best when he brought up how people say systemd is buggy. "It's software." Perfect answer there as well.
     
    Vermillion likes this.
  6. Vermillion

    Vermillion 2[H]4U

    Messages:
    4,047
    Joined:
    Apr 5, 2007
    There's actually a lot of great little presentations on that youtube site from that Linux convention. The guy that talked about systemd also gave one about package managers which was good. The kernel one is good as is the increase boot time vid.
     
  7. NoOther

    NoOther [H]ardness Supreme

    Messages:
    6,488
    Joined:
    May 14, 2008
    Disclaimer: I have not watched the Video yet, I will have to watch it when I get home. This is just from my experience with SystemD, especially when writing system software and developing specialized systems under SystemD now compared to previous..

    The new system is easier generally for the user, but it isn't exactly more efficient in that regard. Especially when you need to set a certain order of things to start up, you still need to give it priorities. And you are still building your "scripts" into the code for the program now. In reality SystemD is really just packaging up a lot of stuff as part of the OS management now instead of having it separate. in some ways you have to do slightly more than you did before. But overall, I would still say I much prefer SystemD. My only real complaints are having to deal with other choices made in packaging with it, like using ip instead of ifconfig and firewalld instead of iptables. I learned to dislike firewalld with a passion for the work I had to do (which deal with very specific directional ip rules). For the average user, firewalld is probaby a bit easier though. Also had some changes to udev which was a little annoying. We did quite a bit of stuff with udev and having to switch all of that to udevd was a real pita.
     
    {NG}Fidel likes this.
  8. BlueLineSwinger

    BlueLineSwinger Gawd

    Messages:
    602
    Joined:
    Dec 1, 2011
    I've always liked systemd. That may be in part due to also being a long-time MacOS user and appreciating launchd on that platform. Also, init scripts generally suck, and having a single way of handling services is an overall positive (and writing init scripts, especially if you have to cover multiple distros, just sucks).

    However, like many, I've always been a little concerned with how systemd seemed to be encroaching into seemingly unrelated things (e.g., networking). But at least I have a bit better understanding as to why after watching the talk.
     
  9. Lunar

    Lunar Limp Gawd

    Messages:
    373
    Joined:
    Jul 26, 2007
    I've heard they're even going to incorporate a Word Processor in a future release!!!

    I kid of course.
     
    Brian_B likes this.
  10. ChadD

    ChadD 2[H]4U

    Messages:
    3,622
    Joined:
    Feb 8, 2016
    Its easy to understand why the systemd folks have included other systems into their package. For things like networking to work properly they either have to be part of the project or follow a very exact standard to they can interact properly. We all know how that would likely go.... multiple bigs like Ubuntu and Red Hat squabelling over specifics and SystemD having to tend multiple code paths.

    So in a way SystemD militantly taking over all services is for the greater good. lol :)
     
  11. Lunar

    Lunar Limp Gawd

    Messages:
    373
    Joined:
    Jul 26, 2007
    Not to mention, that as the guy in the video states, systemd is effectively establishing an official system layer within a Linux system. I would argue that services like networking, device detection and configuration, etc are all part of a "system" layer. I wouldn't call myself a systemd expert, but in what I know of it so far, nothing that has been integrated into it at this point fails to make sense to me.
     
  12. NoOther

    NoOther [H]ardness Supreme

    Messages:
    6,488
    Joined:
    May 14, 2008
    I think it is all trade offs, the more you include in this "system layer" the more bloat you get. For instance, not all systems need network interfaces or the rest of the services that come with that. That is rare, but it is still a thing. The more you start incorporating into the all encompassing systemd, the more difficult it becomes to build a system or even perhaps compile a kernel without it. Also it starts removing some choice as well. One of the great things about Linux is being able to pick and choose what you want to use. The more things you make a core component, the less choice you have. For instance, as I mentioned before, now that udev is part of systemd, there were some things that changed, some stuff was lost, some stuff was better, but certainly a lot of development we had done prior was thrown down the drain. On the positive note, they have seemed to be fairly attentive to issues and resolving them.

    EDIT: Another small note, part of my potential issue with the way things are going with systemd, is that once it gets large enough, making an update to one portion of it, might start to require you to reload all of it, potentially forcing you to reboot your system.
     
    Algrim likes this.
  13. Lunar

    Lunar Limp Gawd

    Messages:
    373
    Joined:
    Jul 26, 2007
    While I understand your concerns, one thing to keep in mind is that systemd isn't this monolithic beast. Take networking for example. Sure, it has networkd that handles network connections, it's still just a daemon within systemd. It isn't required for systemd to operate. Plus, networking is still actually implemented at the kernel level, systemd is just the user facing side of the whole networking equation. But, I think that the concern that one systemd daemon going down will cause the whole thing to potentially crumble is a little hyperbolic due to how systemd is designed. Systemd, like the GNU utilities is really more of a collection of tools into one meta package that manages system level services. At least, that's how I think of it. I also like that it adds some much needed standardization to Linux. Now, if say a distro thinks they can develop a better networkmanager, they have a common target (networkd) that then means that they're work is inherently highly portable amongst distros running systemd. At least, that's how I understand it. Correct me if I'm wrong.

    Now, none of this is to say that the issues you experienced with switching to systemd are invalid or unimportant. They absolutely are, and I'm glad to hear that the systemd folks seem to be receptive of feedback. However, I would argue that the benefits systemd brings to the table far outweigh any growing pains that have been experienced, especially at this point.

    Now Canonical and Netplan, that's a different story. What the hell?
     
  14. NoOther

    NoOther [H]ardness Supreme

    Messages:
    6,488
    Joined:
    May 14, 2008
    I have only stated fears that myself and many other long time Linux users/devs have. Systemd is a monolithic beast compared to Linux's history by its very nature being a centralized control system. Most of the things in systemd are tied together at the core of systemd. It is one of the ways it collects and provides information on services. The fear that some have is as Systemd grows it will start becoming more static than its current form. Do I think it will become like Windows in that regard? No. But it does share a similar path as Windows did, using similar reasoning. Linux/Unix was built upon the ideal of modularity, systemd is on the opposite path of that tying numerous systems together.

    So, while as I have mentioned before, there are many things that I like about systemd, I also fear where it could lead down the road. My opinions are probably fairly similar to Linus Torvald in this regard. There are no serious issues now, but it depends on the path forward and the developers for it have not always been appropriately circumspect about what they are doing.
     
    /dev/null and KarsusTG like this.
  15. B00nie

    B00nie [H]ardness Supreme

    Messages:
    7,823
    Joined:
    Nov 1, 2012
    No but a blender and two extra blades are included.
     
  16. /dev/null

    /dev/null [H]ardForum Junkie

    Messages:
    13,827
    Joined:
    Mar 31, 2001
    Systemd violates the unix philosophy of simple pieces of software doing one thing & doing it right. It replaced tons of legacy mature/stable systems with a huge cluster**

    With that being said, I'll roll with it but expect to see tons of problems that have already been "solved"
     
    Algrim likes this.
  17. BlueLineSwinger

    BlueLineSwinger Gawd

    Messages:
    602
    Joined:
    Dec 1, 2011

    The video touches on this. Systemd solves a lot of stuff that hadn't been properly tackled before. There was Upstart (a good start, but limited) and launchd (open-source IIRC, but too locked-in to macOS).

    Fact of the matter is, Linux has outgrown almost all of the utilities that have been replaced by systemd. A simple init that jump-starts a bunch of chained scripts that run serially is no longer sustainable. An init that isn't aware of the network state (and vice-versa) is no longer adequate. A logging system that is simply a text dump of each app using its own format is more difficult to work with.

    Systemd's utilities are basic, single-function apps that perform their intended job and nothing more. Only now, they're all coming from a single modern project and designed to work together, instead of a disparate set of developers with their own needs and goals scattered across multiple projects and platforms. Many of those were outdated and/or were created to solve the problems of 20+ years ago that may no longer be relevant.
     
    ChadD and Lunar like this.
  18. naib

    naib [H]ard|Gawd

    Messages:
    1,248
    Joined:
    Jul 26, 2013
    I keep writing a reply and then deleting it but here goes...

    The concept of systemd is a valid one... an additional supervisor to deal with system Daemons. However, its deployment, its architecture and more specifically its management is atrocious.
    Pottering really needs to sort his act out. Linus can act like an arrogant git because he is right, Pottering gets it wrong yet still tries to pull the same condescending tone.

    I follow what is going on in systemd closely to make sure I am informed. Go have a look at how bugs are handled. Yes all software has bugs but DAMN! the community interaction is embarrassing... Winning the Pwnie award speaks volumes.

    It is a constant "Not Invented Here" approach, either out of arrogance or a lack of understanding OR poor architecture. Linux/UNIX works well as each application does its job and only its job. SystemD keeps absorbing functionality rather than exposing a common api.

    Potterings threat to the gentoo community really was a line crossed for me. Threats about udev (resulting in Gentoo creating eudev to protect itself) is out of order.

    The video and Potterings stance on how init "use to be" handled is wrong. They blame sysvinit as being buggy and slow YET the issue is actually sysvrc, maintained by RedHat and really REALLY dodgy bash. SysVinit does its job really well... the 1st process to started by the kernel to then spawn some main runtime AND then to collect zombie processes. PID1 is therefore nice and simple.
    Look at OpenRC, look at the size of openrc-init, again nice and simple as PID1 has todo two simple tasks. By all means make PID2 overly complicated, but PID1?

    Finally before I post more of a rant so others then dismiss what I wrote as a rant (as oppose to concern...)

     
    Todd Walter likes this.
  19. /dev/null

    /dev/null [H]ardForum Junkie

    Messages:
    13,827
    Joined:
    Mar 31, 2001
    I have NEVER heard any Linux/Unix/BSD admin complain about text logging. Until now. First for everything I suppose.
     
  20. BlueLineSwinger

    BlueLineSwinger Gawd

    Messages:
    602
    Joined:
    Dec 1, 2011

    It's really one of those things, I believe, that you don't realize could be much better until you see an actual improved implementation. Regular text logs are OK, but you often have to grep around different files and archives to find what you're looking for. Being able to run 'sudo systemctl status <service>' and get the exact log messages that show why a service failed is great.

    Examples of what journalctl can do.
    And more.
     
  21. /dev/null

    /dev/null [H]ardForum Junkie

    Messages:
    13,827
    Joined:
    Mar 31, 2001
    When you manage tons of servers (as I do at work) you log to a centralized syslog server anyhow.

    Maybe it's just me, but I've never had the issue you are speaking of and I really enjoy my text parsing tools. They give me the power & flexibility I need to do what I want. AFAIK stuff like fail2ban uses text logs as well. I also much prefer to see what else what was happening on the system at the time a problem occured (in common log files) so you can get an overall picture of what was going on when an issue happens.
     
  22. Algrim

    Algrim [H]ard|Gawd

    Messages:
    1,358
    Joined:
    Jun 1, 2016
    Out of curiosity, what are you managing that you've managed to avoid systemd's strangling grip?