Ive been runing Debian 12 (kde) since bookworm was released and am loving it.

I have recently discovered Devuan which seems to be Debian without systemd - what is the benefit of removing this init system?

  • Synthead@lemmy.world
    link
    fedilink
    arrow-up
    106
    arrow-down
    5
    ·
    edit-2
    3 years ago

    It’s mostly opinionated. systemd is written in C, uses a consistent config, is documented well, has a lot of good developers behind it, is very fast and light, and does what it’s doing very well. Since systemd also is split up into multiple parts, it still follows the “do one thing, do it right” philosophy.

    There are some people that believe that systemd “took over” the init systems and configuration demons of their distro, and does “too much.” It really does quite a lot: it can replace GRUB (by choice), handle networking config, all the init stuff of course, and much more.

    However, I have lived through the fragmented and one-off scripts that glued distros together. Some distros used completely custom scripts for init and networking, so you had to learn “the distro” instead of “learn Linux.” They were often slower, had worse error handling, had their own bugs, were written in various scripting languages like tcl, Perl, Bash, POSIX shell, etc. It was a mess.

    The somewhat common agreed-upon init system was System V, which is ancient. It used runlevels, nested configuration (remember /etc/rc.d?), and generally, it was mostly used because it was battle tested and did the job. However, it is arguably esoteric by modern standards, and the init philosophy was revised to more modern needs with systemd.

    You can probably tell my bias, here. If you have to ask, then you probably don’t have a “stance” on systemd, and in my opinion, I would stick with systemd. There were dozens of custom scripts running everywhere and constantly changing, and systemd is such an excellent purpose-built replacement. There’s a reason why a lot of distros switched to it!

    If you want to experience what other init systems were like, I encourage you to experiment with distros like the one you mentioned. You might even play with virtual machines of old Linux versions to see how we did things a while back. Of course, you probably wouldn’t want to run an old version of Linux for daily use.

    It should also be mentioned that init systems are fairly integral to distros. For example, if you install Apache httpd, you might get a few systemd .service files. Most distros won’t include init files for various init systems. You can write them yourself, but that’s quite a lot of work, and lots of packages need specific options when starting them as a service. For this reason, if you decide you want to use a different init system, a distro like the one you mentioned would be the best route.

    Great question, and good luck! 👍

    • Shdwdrgn@mander.xyz
      link
      fedilink
      English
      arrow-up
      11
      arrow-down
      1
      ·
      3 years ago

      Some distros used completely custom scripts for init and networking, so you had to learn “the distro” instead of “learn Linux.”

      I never really noticed init scripts differing much between distros, but I also didn’t play around with many. If the systemD scripts are the same across every system, then this is the first positive thing that I’ve heard about systemD, so thanks for that.

    • DryTomatoes4@lemm.ee
      link
      fedilink
      arrow-up
      10
      arrow-down
      1
      ·
      3 years ago

      I was reading about Slackware today and it seems their init system still uses system V and lots of scripts.

      So I’d definitely recommend that OS to anyone curious about the old style of init system.

      • cspiegel@lemmy.world
        link
        fedilink
        arrow-up
        9
        ·
        3 years ago

        Slackware uses the sysvinit program, but doesn’t have System V-style scripts. Which is somewhat confusing, but sysvinit is a basic init program that will just do whatever /etc/inittab tells it, so you can write your startup scripts to work however you want.

        Slackware uses what people tend to call a BSD-style init, but it’s nothing like the modern BSDs, nor the older BSDs, not really. If you use Slackware, you’ll learn how Slackware’s init system works, but that’s about it.

        • DryTomatoes4@lemm.ee
          link
          fedilink
          arrow-up
          5
          ·
          3 years ago

          Ah my mistake. I’m just generally curious about what distros use an alternative to systemd (not that I have any issues with systemd myself but I like variety).

          So I googled what init system Slackware uses and read this page.

          http://slackware.com/config/init.php (no https)

          They mention several scripts on that page and that’s why I thought they use scripts.

          But I haven’t actually used the Slackware yet. Suppose I should though since I’m interested.

          • cspiegel@lemmy.world
            link
            fedilink
            arrow-up
            4
            ·
            3 years ago

            No, you’re right that it has scripts, they’re just not the scripts used by SysV-style init systems. They have different names, are in different locations, and are executed differently.

            I used Slackware for several years back in the 90s, and from that experience I’d recommend against learning it. I mean, with VMs today it’s simple to try new distributions, so go for it, but I’d put it waaaaay down the list of distributions/operating systems to try. If you have anything else you’re interested, put it first. Slackware is standard Linux so there’s nothing really special you’d find when using it, and it’s just a painful experience in general. I think some people will argue that it helps you “really learn Linux”, but I don’t think so. It just helps you learn Slackware’s idiosyncrasies, and learning pretty much any other distribution would be more beneficial than that.

            Slackware has advanced from when I used it in the 90s, but only barely (they have a network-based package manager now, I guess, although it proudly avoids dependency resolution!)

            • DryTomatoes4@lemm.ee
              link
              fedilink
              arrow-up
              3
              ·
              3 years ago

              Oof that stance on dependency resolution is a big no for me. As much as I hated building gnome from source it was amazing that Gentoo can do that in a single command.

    • nomadjoanne@lemmy.world
      link
      fedilink
      arrow-up
      6
      ·
      3 years ago

      Great answer. I do use systemd boot on one of my systems as well. It isn’t exactly systemd itself is it? Simply a boot loader packaged as part of the general systemd boot suite, right?

      • Tobias Hunger@programming.dev
        link
        fedilink
        arrow-up
        5
        ·
        3 years ago

        Systemd-the-init does depend on some core services and thise need to be used together: Init, logging and IPC. Anything running systemd-init will have journald for logging and IIRC DBus for communication. That’s because you need to control a system managing services, so you need to communicate with it and you need to document whatbthe managed services do, so you need logging. And you do want tested and stable code here (reusing something that was widely used in Linux before systemd started) and you do not want that code in the init process either. So systemd-the-init has very simple code tomlog and journald then has thencode needed to stream logs out to disk or to interact with other logging systems.

        Everything else is optional and in separate binaries written in a layered architecuture: Each layer uses services provided by the lower layer and offers services to layers higher up in the stack. So lots of services depend on systemd-the-init to start other processes instead of reimplementing that over and over again (thus gaining unified config files for everything that gets started and all the bells and whistles systemd-the-init has already or will pick up later).

        Or if you prefer a more negative spin: “Systemd is on huge entangled mess of interdependent binaries” :-)

      • Sun-Spider@lemmy.world
        link
        fedilink
        arrow-up
        1
        ·
        3 years ago

        Yeah exactly. It does have some features that require integration with the init system, which systemd obviously supports, but it could be used independently of systemd quite happily, and other init systems could easily support those integrations.

    • fnv@lemmy.ml
      link
      fedilink
      arrow-up
      9
      arrow-down
      12
      ·
      3 years ago

      I am fan of principles like KISS and “Do one thing and do it right”. From this point of view is systemd disaster because it is almost everywhere in the system - boot, network, logs, dns, user/home management… It’s always surprise for me if nothing breaks when I do upgrades.
      I understand why systemd is here but I’m not at all happy to use it.

  • GenBlob@lemm.ee
    link
    fedilink
    arrow-up
    45
    arrow-down
    2
    ·
    3 years ago

    Back when systemd was a hot topic I jumped on the bandwagon of using systemd-less distros just because people were telling me how bad it was. To this day I still use openrc but the reality is that systemd works very well and is easy to understand and use. The average user gains no benefit to using another init besides having a better understanding of how the system works.

    • Dkarma@lemmy.world
      link
      fedilink
      arrow-up
      1
      arrow-down
      19
      ·
      3 years ago

      This is such a “consumer-grade” take imo. No offense intended, but in enterprise Linux development systemd is considered horrible trash.

      I can see why a more casual / desktop user would love it, though.

      • Swiggles@lemmy.blahaj.zone
        link
        fedilink
        arrow-up
        4
        ·
        3 years ago

        Wait, people really believe writing boilerplate filled bash scripts to implement just the idea of dependencies does scale into enterprise environments? Which don’t come even close to emulate most of the very useful and important features systemd provides?

        Seriously that’s a take I have never heard one say while keeping a serious face. There is a reason systemd is as popular as it is for every desktop and server distro out there.

        It is far from perfect, but who in their right mind would want sys-v init or similar systems back? I can’t even imagine what a mess it would be managing all the contexts and implementing it securely and portable with an init script.

      • GenBlob@lemm.ee
        link
        fedilink
        arrow-up
        2
        ·
        3 years ago

        “consumer-grade”

        Yeah, that’s the point. Again, the average user (as in desktop user) gains nothing from using a different init. There may have been some crazy server-side scenario where the type of init you used actually mattered but we’re talking about desktop Linux, which the answer is a clear-cut no. I’m not stopping the people that are interested in trying a different init out, I’m just telling them that there’s little to no benefit in the end if they’re expecting an improvement in performance or whatever else.

      • Franzia@lemmy.blahaj.zone
        link
        fedilink
        arrow-up
        1
        arrow-down
        1
        ·
        3 years ago

        As someone who wants to learn enterprise linux rather than desktop linux, I would like more detail, but I’m willing to just take your word for it.

  • TCB13@lemmy.world
    link
    fedilink
    English
    arrow-up
    38
    arrow-down
    14
    ·
    edit-2
    3 years ago

    Devuan is the outlet of a bunch of people that don’t want Linux to evolve, become better and have more flexibility because it violates the UNIX philosophy and/or it is backed by big corp. Systemd was made to tackle a bunch of issues with poorly integrated tools and old architectures that aren’t as good as they used to be. If you look at other operating systems, even Apple has a better service manager (launchd).

    Systemd is incredibly versatile and most people are unaware of its full potential. Apart from the obvious - start services - it can also run most of a base system with features such as networking (IPv4+IPV6, PBR), NTP, Timers (cron replacement), secure DNS resolutions, isolate processes, setup basic firewalls, port forwarding, centralize logging (in an easy way to query and read), monitor and restart services, detect hardware changes and react to them, mount filesystems, listen for connections in sockets and launch programs to handle incoming data, become your bootloader and… even run full fledged containers both privileged and non-privileged containers. Read this for more details: https://tadeubento.com/2023/systemd-hidden-gems-for-a-better-linux/

    The question isn’t “what is the benefit of removing this init system”, it is “what I’ll be missing if I remove it”. Although it is possible to do all the above without Systemd, you’ll end up with a lot of small integration pains and dozens of processes and different tools all wasting resources.

    • pastermil@sh.itjust.works
      link
      fedilink
      arrow-up
      2
      ·
      3 years ago

      Devuan community is a cesspool indeed. However, I cannot deny the validity on some of their argument, namely about having alternatives.

      • TCB13@lemmy.world
        link
        fedilink
        arrow-up
        2
        ·
        3 years ago

        Yeah, I just have a question about that community. Debian maintainers told them they were open to a multi init architecture (as in have Debian support both systemd and init) as long as they maintained it, they just rumbled around and decided to fork Debian instead. This is the kind of people we’re dealing with.

        • pastermil@sh.itjust.works
          link
          fedilink
          arrow-up
          2
          ·
          3 years ago

          Indeed wasted potential. Debian could’ve welcomed them with open arms had they participated in the Init divesity discussion.

          • TCB13@lemmy.world
            link
            fedilink
            English
            arrow-up
            2
            ·
            3 years ago

            That’s the problem, Debian did welcome them with open arms… they decided to left and fork.

    • thelastknowngod@lemm.ee
      link
      fedilink
      arrow-up
      8
      arrow-down
      8
      ·
      3 years ago

      people that don’t want Linux to evolve

      Exactly this.

      The philosophical arguments are pretty garbage. I generally want to know if the “it violates the UNIX philosophy” people use browser extensions… That violates the UNIX philosophy too. Systemd “is backed by big corp” but who do you think is actually contributing time/effort/code to the Linux kernel? It’s the device manufacturers who are trying to get you to buy their products… So that fails too.

      No offense to anyone reading this but if you’re really passionately anti-systemd, I would not hire you. This is a dumb hill to die on and a red flag.

      • Auli@lemmy.ca
        link
        fedilink
        English
        arrow-up
        2
        arrow-down
        1
        ·
        3 years ago

        Exactly bigncorp is doing the majority of the Linux kernel development. Wonder why nobody complains about that.

  • t0m5k1@lemmy.world
    link
    fedilink
    arrow-up
    23
    arrow-down
    2
    ·
    3 years ago

    If you’re a new user you’d be better off moving on from here and not paying much attention. It’s a hot topic full of opinions that everyone will want to force on you.

    If you really want to swap out the init system there are some things you need to know.

    First, do you need a desktop environment(DE)/window manager(WM)? If so you’ll need to find a DE/WM that is not going to demand you use the mainstream init choice which currently is SystemD. If you want to use Gnome from your chosen distro repo’s then chances are it will pull SystemD with it.

    If you want Gnome but not SystemD you’re gonna be building that beast from source every update and for the most part you’ll need to go direct to Gnome for any issue/bug you fall over and this too will be painful.

    Simpler WMs will be more forgiving and will only rely on either xorg or wayland and will happily run on any init.

    There will be other packages out there that also demand you use SystemD, so you’ll have to find them and decide if you need them or if there are alternatives that don’t have a hard dependency on SystemD.

    All the current usable inits are written in C or C+ (except for GNU Shepherd, this is written in guile).

    The benefit of swapping out the init system is mainly down to choice, necessity but again this all boils down to what the installation is for and what will it be doing.

    For a good run down of the features of the init systems refer to these 2 urls: https://wiki.gentoo.org/wiki/Comparison_of_init_systems https://wiki.archlinux.org/title/Init

    All of the init’s (except for epoch) provide parallel service startup so if boot time is a focus test each to find the fastest for your platform, Not all of them provide per-service config.

    For example one can cobble together: minirc, busybox, syslogng, crond, iptables, lighttpd.

    And the end result would be a relatively secure webserver with a small footprint, you could further extend this with nginx to sit in front of lighttpd to provide waf and cache features.

    The biggest bug bear with SystemD is that it writes to binary log files and even though it can be configured to generate plain text, if it falls over in a bad way you will still only get a binary log file and if you’re in a situation where your only access is say busybox for emergencies. In this instance your only option is to boot from another systemd distro and mount the broken install and run:

    $ journalctl --file /var/log/journal/system.journal

    Other than that many take issue with SystemD trying replace parts of the system that many say don’t really need replacing like sudo, fstab, resolv.conf, etc but again these statements get full of opinion and don’t help us truly way up the differences and some of the SystemD alternatives misbehave or become hard dependencies other projects which makes it harder to disable parts and swap out to your chosen package.

    I’ve tried to be more objective with this response and keep as much of my personal opinion out of this, But here is mine:

    I don’t really like it but to make it easier to get support for my OS I put up with it, I daily drive arch and so must accept it. I could rip it out or run artix, I’ve gone down this path and got fed up with jumping hurdles to get what I wanted so went back to Arch and now I disable parts of it I don’t need/want, have it generate text log files, use openresolv and other choices.

    • nik282000@lemmy.ml
      link
      fedilink
      arrow-up
      4
      ·
      3 years ago

      The only valid argument I see is monoculture. If systemd every does fall out of favour, become broken or compromised in some disastrous way it will be a lot of work getting going again.

      • argv_minus_one@beehaw.orgBanned
        link
        fedilink
        arrow-up
        3
        ·
        edit-2
        3 years ago

        The same is true of Linux itself.

        Anyway, I’m not sure I see how a non-gigantic, slow-moving, pretty-much-finished open-source project like systemd can become broken or compromised in a way that forking it cannot solve. This isn’t Chromium we’re talking about, where it takes an army of world-class developers just to keep it from falling so far behind as to be basically unusable. If systemd were to stop being developed in any way other than security and critical bug fixes, it would still remain useful for many years.

  • nomme@lemmy.world
    link
    fedilink
    arrow-up
    7
    ·
    3 years ago

    what is the benefit of removing this init system?

    I don’t know anything about Devuan, but the init system is replaced, not removed. You need an init system. Devuan probably has something more barebone than systemd.

  • moonsnotreal@lemmy.blahaj.zone
    link
    fedilink
    arrow-up
    7
    arrow-down
    1
    ·
    3 years ago

    I don’t personally like SystemD, but Devuan sucks. They advertise “init freedom”, but in reality all of the scripts by default are just sysV init scripts that runit and openrc can’t control.

  • Drito@sh.itjust.works
    link
    fedilink
    arrow-up
    6
    arrow-down
    2
    ·
    edit-2
    3 years ago

    For a desktop user I don’t see any significant benefits to replace systemd. But also no-systemd distros works fine. I was impressed during my try on Alpine Linux, that uses openrc instead. The text printing during OS startup is so short that the terminal didn’t scroll. The bluetooth worked flawlessly. But it is a small community distro, and Alpine is limited by other things than the init system. The init system is a problem for people that have to deal with services.

    On political aspects, IMO FOSS works easier with small and focused components that can survive with spare time developers. I can’t make critisicms on technical aspect, I’m not a good programmer, I just notice systemd seems to works fine. Red hat has man-power and capable of large contributions to Linux distros so they leads the innovations. All big distros switched to systemd, now its hard to avoid.

    I would like to support smaller FOSS-friendly systems but I use Arch because I need recent versions and the anti-systemd arch-forks are harder to use. I’m a weak guy.

    In short, as an user you should be fine by keeping normal Debian. If for political reasons you want a no systemd distro, the easiest is to use MX Linux with the default init.

  • Papamousse@beehaw.org
    link
    fedilink
    arrow-up
    2
    ·
    3 years ago

    Try MX Linux it’s based on Debian. MX23 is based on Debian 12. You can boot with or without systemd as you please. Great distro!

  • wolandark@lemmy.world
    link
    fedilink
    arrow-up
    1
    arrow-down
    2
    ·
    3 years ago

    devuan is a work of art. Artix and Devuan are both the only distros I’d turn to for stability and not having to deal with systemdoom’s mess

  • lntl@lemmy.ml
    link
    fedilink
    arrow-up
    6
    arrow-down
    9
    ·
    3 years ago

    For average users, it’s a matter of preference. Like asking what’s the benefit of chocolate over vanilla.

    You are curious though, so I’d recommend giving another init system a try. That would give you some perspective on systemd.

    • 7heo@lemmy.ml
      link
      fedilink
      arrow-up
      7
      ·
      3 years ago

      Very valid alternatives include:

      • s6
      • runit
      • openrc
      • BSD rc.d

      And you can find a pretty complete list here.

      • Tobias Hunger@programming.dev
        link
        fedilink
        arrow-up
        2
        ·
        3 years ago

        None of these even want to include support for features found in the Linux kernel, so that they work can work on all Unix systems out there. Thatbis a design decision eachnofnthese made.

        So none offers similar features to lock down services out of the box, as those rely on Linux specific kernel features. Of course you can hack that into the init scripts somehow. Sysv-init has shown how well that worked cross-distribution.

        Systemd moved the goal posts for what a Linux init system needs to do. I doubt any generic Unix init system can compete.

        • 7heo@lemmy.ml
          link
          fedilink
          arrow-up
          2
          ·
          edit-2
          3 years ago

          None of these even want to include support for features found in the Linux kernel, so that they work can work on all Unix systems out there.

          I’m assuming you meant to say that “none of these are sacrificing portability for features”? If so, absolutely, and that’s very much a feature, not a bug. Portability matters.

          So none offers similar features to lock down services out of the box, as those rely on Linux specific kernel features.

          If using Linux specific features was the only approach to security, I wonder how OpenBSD exists.

          Of course you can hack that into the init scripts somehow. Sysv-init has shown how well that worked cross-distribution.

          That’s a bit disingenuous. SysV Init has long term glaring, unrelated issues. It is really showing its age.

          Systemd moved the goal posts for what a Linux init system needs to do.

          On that, I very much agree. Moving the goal posts doesn’t mean “doing the right thing”, however, and this fact is a big part of the reason some people complain about it.

          I doubt any generic Unix init system can compete.

          With the feature set? Absolutely not, you are correct. But the same way, systemd cannot compete with their simplicity, maintainability, smaller attack surface, and the list goes on and on and on.


          So in the end, it is down to your personal preferences.

          Which is theoretically all fine; but practically, it stops being “all fine”, for some people, when you consider systemd’s aggressive disregard to being compatible with literally anything else.
          The systemd project is the software embodiment of the “this works and it works well, so why would you ever need anything else?!” mentality.
          People take issue with the facts that “aggressive disregard to being compatible with literally anything else” reasonably translates to “having absolutely zero room for mistakes” (which, to be clear, systemd failed to honor multiple times: it isn’t perfect, which would be fine, in a vacuum, but not with this mentality) and that “works well” varies drastically from case to case, and from expectation to expectation (in short, it does not, always, “work well” for everyone and/or in every use case).

          TL;DR: systemd existing is totally fine, systemd being used by the majority is totally fine. systemd de-facto causing other projects to put in (sometimes radically) more work than they should have to, is not okay; and systemd de-facto making itself irreplaceable on the grounds that “it’s fine, don’t worry about it”, is not okay.

          • Tobias Hunger@programming.dev
            link
            fedilink
            arrow-up
            2
            arrow-down
            2
            ·
            3 years ago

            Portability matters.

            In general: Yes. In the specific case of an init system for a specific OS: Not so much.

            This is nicely demonstrated by none of the non-Linux OSes embracing any of the options you listed. They all want something that plays to the strength of their specific systems over some generic Unix thing.

            If using Linux specific features was the only approach to security, I wonder how OpenBSD exists.

            It is the best approach we have on anything running a Linux kernel.

            systemd cannot compete with their simplicity, maintainability, smaller attack surface, and the list goes on and on and on.

            It is also easy to have really simple code that does nothing interesting whatsoever. And for something that does not do much at all, the fork-dance that e.g. s6 does is pretty complex.

            Maintainability also does not seem to be a big issue for systemd at this point in time either.

            The smaller attack surface is relative as well: systemd-the-init is a bit bigger than the ones you list. But the difference is not as big as you make it sound and an init system does not do many interesting things that can get attacked by either.

            On the other hand systemd can seriously lock down any service it starts (and does so out of the box for anything from the systemd project and many upstream projects that ship locked down systemd unit files). The init systems you listed do can not do that directly and either need helpers (which increases their attack surface again) or just do not bother. Considering that a init system starts way more lines of code that do more security critical things than an init system: I think this lockdown does lead to a smaller attack surface of the system overall.

            systemd de-facto causing other projects to put in (sometimes radically) more work than they should have to, is not okay;

            Somebody has to invest work to make things convenient and easy to use. You either run with what everybody else uses and share the effort or you do not and do the work all by yourself.

            This is in no way systemd specific.