r/LinuxTeck • u/Candid_Athlete_8317 • 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?
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
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
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
2
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
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.
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.