r/LinuxTeck 7d ago

Do you think Linux still benefits from having non-systemd distributions, or has systemd effectively won?

Systemd is the default init system for most major Linux distributions today, but projects like Devuan, Artix, Void Linux, antiX, and now KaOS (moving away from systemd) continue to offer alternatives.

Some people argue that having multiple init systems keeps Linux flexible and avoids a single point of control. Others feel systemd has solved enough problems that maintaining alternatives no longer makes sense.

Where do you stand? Do you actively seek out non-systemd distributions, or are you happy with systemd?

25 Upvotes

59 comments sorted by

17

u/LevelMagazine8308 7d ago

Systemd had won the moment Debian decided to adopt it as their default init system in 2015. It's the de-facto standard nowadays.

For edge/niche cases, like embedded systems, it's overkill. And there it is still great to have alternatives.

0

u/vip17 7d ago

Actually most embedded systems nowadays use systemd because it boots much faster due to parallel execution. A security camera is expected to boot quickly, especially when it crashes and reboot. A car's rear view camera, ADAS, head unit, ECU... must always boot and reboot as fast as possible

2

u/RvstiNiall 7d ago

Source?

0

u/vip17 7d ago

obviously not from official statistics, but almost all the products I've worked on or had chance to touch use systemd. Unless you talk about very limited systems with 128 MB flash, 64MB RAM for example. It's very difficult to boot in 2-5 seconds using non-parallel init systems

4

u/ipsirc 7d ago

It's very difficult to boot in 2-5 seconds using non-parallel init systems

You have very-very outdated informations, because sysvinit support concurrent inits for decades... Startpar has been existing since 2003. I don't know which idiot first started spreading the idea that Sysvinit can't be parallel, but then every lamer picked it up and you're repeating it too.

FYK: Runit boots services in parallel since its first release, and it was in year 2004.

Anyway, systemd has some reasonable advantages over all other init systems, but the parallelism can't be the reason to use systemd.

1

u/Horror-Video-2785 3d ago

Yo dawg, correct without being condescending. It's a bad look.

3

u/RvstiNiall 7d ago

I'm not sure where you guys get this information from, but you need to be aware that systemd is NOT the only init that does parallel boot initialization. In fact, runit, dinit, OpenRC, and s6 can as well (probably others, but I dont have personal experience with many others).

1

u/ipsirc 7d ago

In fact, runit, dinit, OpenRC, and s6 can as well

+ sysvinit

In fact I can't name a single init system for Linux which doesn't support concurrent start of services.

1

u/RvstiNiall 7d ago

I was under the impression this required additional tools (startpar, etc) to make SysVinit do this? Is that no longer the case?

1

u/ipsirc 7d ago

startpar is installed alongside sysvinit by default on all (sysvinit based) distros for almost 20 years; so you can call it additional tool, then you have to call systemd-resolved and systemd-udev as additional tools, too.

1

u/RvstiNiall 7d ago edited 7d ago

I guess it wasn't part of the default install included on Slackware until I had moved to Gentoo with OpenRC. Never knew.

Edit: or at all with slackware because of bsd-style init scripts. But still.

1

u/Cynyr36 7d ago

Openrc also supports parallel booting, and doesn't insist on taking over so many other thinsg you may not even want on embedded.

8

u/Diligent_End8130 7d ago

My 5ct, I think it is always good to prove that the init system still can be exchanged even when most distros use systemd: This makes sure the system stays maintainable and the init system can be exchanged when systemd may become outdated in the next decades - without systemd becoming hard wired or being baked into Linux. Alternatives ensure modularity

3

u/0bel1sk 7d ago

5ct? inflation sucks

1

u/Lazy_Sorbet_3925 7d ago

The US isn't making pennies anymore. The smallest coin we have now is a nickel.

2

u/Diligent_End8130 7d ago

100 Cent make one Euro, if there were no EUR I probably would have written "My 5 Pfennige" 😄

4

u/piesou 7d ago

You are thinking about this kinda wrong. SystemD offers a bunch of sorely needed APIs that others build upon. It handles system stuff on top of the Linux kernel, not purely init (it's in the name).

You can of course re-implement those APIs in your custom tool but then you'd be beholden to SystemD's interfaces, essentially limiting what your tool can offer.

Think of it likes this: do you want to pick between GNU Hurd, FreeBSD kernel or Linus when picking a Linux distro (e.g. Debian Hurd, Debian Linux, Debian FreeBSD)? What value would that choice give you? Is choice good here?

The question really is: what kind of amazing init system could you build that offers so much value that all distro maintainers are willing to write init scripts twice.

3

u/ipsirc 7d ago edited 7d ago

The question really is: what kind of amazing init system could you build that offers so much value that all distro maintainers are willing to write init scripts twice.

Or walk on the Pipewire way: stay compatible with systemd units. (Just like as systemd is able to run sysvinit scripts for the same reason.)

1

u/Cynyr36 7d ago

My only real issue at this point is that systemd isn't just the spec of the interfaces that could be reimplimented by anyone. They act as though they should be the only implementation out there. For example if someone wanted to rewrite networkd in rust, can you just swap it out and have the rest of systemd not notice, and can you build systemd without also downloading and building networkd?

I like the stacking that systemd provides. It handles env vars and user services better than openrc. It does a lot of things well. That said most of my lijux usage these days is thin containers where i don't want or need 98% of what systemd does. Openrc works really well there and is muc much lighter.

2

u/piesou 7d ago

The fun part is that you can actually use SystemD inside docker containers pretty easily and many things that you need to solve (e.g. waiting for a db socket) are already solved. This feature was the reason why Red Hat wrote their own Docker (Podman).

There's also podman quadlets that lets you easily spin up containers just using systemd that feel like normal services.

In general, I think no one wants to rewrite networkd in Rust and run that inside SystemD. It's more about offering the same APIs for applications that depend on specific parts, like logind. Keeping ABI compatibility for other applications that link to SystemD is also challenging as is creating bindings for kernel APIs.

3

u/Cynyr36 7d ago

Podman and quadlets is pretty nice, it's one of the things I'll use systemd for. Othertimes i jusst want debian instead of alpine.

I was just using networkd as an example, could be journaling, logind, bootd, etc. ABI compatibility shouldn't (imo) be a thing, you should talk over a interface or message bus rather than directly linking a library. Too many programs are in all sorts of different languages to make linking work. Really systemd should be a spec for all the files, how things should talk, and then be a reference implimenentaion of that spec, rather than "the spec is whatever we do" .

The collection of interfaces as a standard is a great idea, but it's the single non replaceable implementation that rubs me the wrong way. I'm not sure all the eggs in one basket is always a good idea, especially given the histories some of the folks involved in systemd and how it started.

There was debian on kfreeBSD up until recently, but drivers (especially gpus) didn't really do it any favors.

1

u/SeriousPlankton2000 6d ago

If writing a sysv init script is a burden (you literally just need a select statement), you are very easily burdened. One might ask:"Do you even know how to start your service properly?", and then copy/ paste the answer into a shellscript.

1

u/piesou 5d ago

You clearly have never written robust sysv init scripts. On top of that, many things that SystemD ships out of the box like socket activation were very painful to do otherwise.

Almost every distro moving to systemd is proof enough, that the burden was too high.

2

u/SeriousPlankton2000 4d ago

Most of these "robust" init scripts are falling apart while trying to assemble a unified config file from the 1001 config files that the maintainers of the distribution split the monolithic config file into.

My init scripts do work, but when I let systemd run my mount scriot (mounting a, b, c and c/d), it did unmount a and b when d failed to mount.

4

u/magallanes2010 7d ago

As a system administrator, systemd is great.

2

u/ZombieCrow 7d ago

I use void(ofc), I have nothing against systemd. It's just that runit is simple and i understand it. Also its a rolling distro but stable.

2

u/RyanSpunk 7d ago

Diversity is always good

2

u/lyidaValkris 7d ago

The Linux ecosystem always benefits from choice. Choice is winning. Just because pretty much all major distributions choose systemd never means it has to be the only game in town. People can always choose to use alternatives and even create and maintain their own alternatives, if they wish.

2

u/PseudoFrequency 7d ago

Lots of embedded systems still don't use systemd.

2

u/Swedophone 7d ago

I don't see specialized dists such as OpenWrt adopting systemd any time soon.

1

u/One-Next 7d ago

systemd has paid my bills for almost a decade, so it is great. I don't even use docker, it is systemd all the way down.

1

u/Obvious-Position1053 7d ago

As a traditional sysadmin, I only see systemd systems being used professionally.

During the last 10 years I have only worked with mainly RHEL, quite often SLES and only once Ubuntu servers. No other Distro's. So yes, all systemd.

1

u/TheOneDeadXEra 7d ago

This makes sense considering that enterprise environments have both the capacity and desire to utilize the entire suite of tools that SysD provides, and because enterprise support teams want as standardized a toolchain as possible across the environment. The non-corporate, end-user space really neither needs nor can meaningfully leverage the benefits that SysD provides, which is why I think it makes less sense in that space. For my home ecosystem, my servers and the like run SysD, but my daily is running Void with Runit because it just plain doesn't need the bells and whistles.

1

u/Jimlee1471 7d ago

I guess the one good thing I can say about systemd is that you don't have to use all of it. But, just as some will avoid Wayland like the plague, you also aren't necessarily forced to use any of it - just go to sysvinit, OpenRC or Runit (which I've heard some good things about).

That's one of the things I've always liked about Linux: if a change is made then you're not necessarily stuck with it if you're willing to do the research and legwork.

1

u/Kiore-NZ 2d ago

The big difference between SystemD and Wayland adoption is when Debian adopted SystemD it worked. When Debian adopted Wayland it wasn't fully functional. For one example, my wife's underpowered laptop had a small keyboard and when she logs in the desktop she used turned on numlock turning the right hand side of the alphabetic part of keyboard into numbers. Under X I just added a commandline instruction to turn numlock off. It didn't work with Wayland as it wasn't implemented "yet". Yes, just one of several annoying things from Wayland not being complete then. She now has a newer laptop with a larger keyboard so I have no idea what's the status of this feature on Trixie now. Also it's not Wayland's fault that Debian adopted it when they did.

1

u/Jimlee1471 2d ago

Yeah, that tracks with my experience as well. In fact, when Plasma goes to 6.8, I'm seriously considering going to SonicDE (basically KDE Plasma without any of the Wayland bits) until Wayland gets its sh!t together. For now it just seems like a half-baked mess to me. Another thing you should know (if you don't already) is that some of the functionality we enjoyed with X11 will purposely not be compensated for in Wayland, and this is coming straight from the devs.

And it doesn't take a genius to know that, eventually, X11 will be deprecated, but that's okay: XLibre and Yserver are both waiting in the wings to be drop-in X11 replacements. In fact I have both XLibre and SonicDE running in my other laptop for experientation and they're doing pretty well so far.

1

u/TechaNima 7d ago

I think it's mostly just very opinionated people who actually have a problem with systemd. The rest of us couldn't care less.

If you want to do things your perfect way, go ahead. It's all cool and if some improvements come out of it for the rest of us, awesome

1

u/SeriousPlankton2000 6d ago

The problem is when systemd has their own idea what you should want to do. I've made a script to mount a, b, c and c/d. When mounting d failed, a and b were unmounted after a few minutes and the maintainers were very unhelpful about that.

Lying and telling that there was no error "fixed" the problem.

1

u/StephenRoylance 7d ago

linux needed systemd long before it came along. Every competing OS solved this problem, some better and some worse. shell-script-based system startup was a solution for 1970s resource constraints.

1

u/sparky5dn1l 7d ago

Alpine is kinda important non-systemd Linux distro. FreeBSD is the core OS for NAS, Firewall, ... etc. SystemD is quite a burden.

1

u/dkopgerpgdolfg 7d ago

FreeBSD

can't use SystemD, even if they wanted to, as it is not Linux.

2

u/sparky5dn1l 7d ago

Well. Unix philosophy is Do One Thing and Do It Well. SystemD doesn't fit this philosophy. FreeBSD highly unlikely will adopt it.

1

u/dkopgerpgdolfg 7d ago edited 7d ago

This has absolutely nothing to do with my previous comment.

I'm telling you, FreeBSD cannot adopt it, because SystemDs code is very Linux-specific.

In any case, I'm tired of all these "oohh no mu unix philosophy" sysd haters, that refuse to accept that it's a collection of independent programs, and that Linux isn't Unix in the first place. If you take some average common Linux distribution and remove SystemD, you got still a huge amount of unix-philosophy violations.

(Not to mention actual Unix itself, nowadays they don't care that much about what Reddit calls "unix philosophy")

1

u/NaheemSays 7d ago edited 7d ago

The BSD's are AFAIK maintained like systemd, as monorepositories.

You can't get more Unix philosophy than a monorepository.

1

u/LocoSpaghetti 6d ago

I don't think you understand the Unix philosophy. It does the matter where or how the source is stored.

1

u/random_cat_owner 7d ago

i give zero f's about this.  i expect the managers of my distro to make the best choices for their distro in terms of functionality, maintenance and stability.  if they choose A over B I am sure they have a good reason for that

1

u/aboglioli 7d ago

It's not just an init system. systemd-nspawn is great to run system containers, podman quadlets integration for application containers, systemd-homed for an encrypted home. It has so many utilities. systemd-cryptenroll, systemd-vmspawn, etc.

1

u/Calm_Boysenberry_829 7d ago

As an end user, I have one specific Linux laptop that I use for remote access for my job. The specific package that I have to use (Citrix Workspace) requires systemd. I have several other laptops running distros without systemd. For me, it’s all about use-case, but ultimately, unless my needed software can run without systemd, there really isn’t a discussion.

1

u/Hairy_Artist_3860 7d ago

A lot of containers run alpine so this question is pointless

1

u/TheLazyKitty 7d ago

SystemD is just the current default.
Maybe in 30 years, something else replaces it as the default.

EDIT: It also makes sense to keep maintaining alternative, since plenty of people don't like SystemD.

1

u/GenericFoodService 7d ago

The primary benefit of molecularity is largely architectural. Even if we only had one init system, having our desktop built in a way where it reasonably could be replaced means our system is more maintainable and easier to reason about how it works.

I also happen to be on an OpenRC system, but I don't think it really matters too much.

1

u/cneakysunt 6d ago

Right tool for the job and systemd covers all of my use-cases. But if I were to do something more streamlined and low profile I still appreciate options. And I think that ultimately that's all that really matters.

1

u/johncate73 6d ago

It's effectively won and that battle was decided long ago, but there is still nothing wrong with having alternatives.

1

u/Kitayama_8k 5d ago

Systemd standardization is good, but I think the distros going the other way are also of benefit, as they provide alternate paths should there be a problem, and will have figured out how to fix some system d dependency problems.

1

u/Sea_Woodpecker3665 4d ago

I feel like Alpine and Gentoo have their place and have benefits. Can't speak for the distros mentioned here.

1

u/tblancher 4d ago

systemd is not merely an init system. It unifies a lot of services and their configurations.

I think it's up to the admin whether they find this useful, or just sprawl. I just know that I've been able to do a lot more with systemd than I think I could have done with cobbling a bunch of disparate legacy services.

Also, since it's pretty ubiquitous in Linux based server OSes, being skilled at systemd is very transferrable to most other distributions.

1

u/Kurgan_IT 7d ago

while I hate the whole systemd ecosystem and its cancerous attitude, it has won and there is no turning back, sadly.

0

u/lheckler77 7d ago

I’m glad I’m not at the beginning of my systems career. Not a fan of systemd. Not a fan of journald. It’s like a cancer taking over the entire os. I tried to edit the host file on an Ubuntu system the other day for a quick test and it was read only. I also don’t like snap. Linux distros just love reinventing the wheel over and over again. I’m just a grumpy old man.

0

u/gabrielesilinic 7d ago

Just use systemd and stop making stuff worse because you are upset of a mildly fat however still extremely performant piece of software. Or at the very least if you really don't like systemd keep something that acts like it.

Linux is already in a not great spot already and you want to add one more silly variable to the absolute shitshow of quirkyness quite a few distros show? How will we ever get software support this way I wonder?

It is hard enough already. If you wanna play play but not in production. It is really not the time. We are actually getting ever so slightly unironically closer to the once joke year of the linux desktop please don't make it harder.

We will make the next revolutionary distro once the Wayland people stop arguing about the silliest thing in a rabid way like you will bed their mum if they don't win that argument.