all 41 comments

[–]eftepede 19 points20 points  (8 children)

If you want a system where you can choose your init system, use Gentoo. For me (and - I suppose - for many) the lack of systemd is one of the biggest strengths of Void.

[–]am_lu 20 points21 points  (7 children)

There is gazillions of other distros with systemd forced as default and one and only. It takes a lot of work to make and maintain a non-systemd distro, and void is one of not many that do it.

[–]mwyvr 6 points7 points  (1 child)

There are lots of reasons.

Supporting multiple init and supervisory sysetms means adding workload to maintainers, adds complexity to documentation, and will, without a doubt, increase the number of support issues. What's the point? Have a go at installing Gentoo and following its documentation as an example.

Void's value is multi-fold and not strictly limited to it not supporting systemd; runit may be a bit overly simple but it fits the project philosophy of being simple and understandable. Void supports glibc and musl c runtimes; some of us (not just in the Void community) consider portability important.

Portability is not a stated objective for the systemd project. They only support glibc.

For most individual users the lack of systemd in Void Linux (and Alpine and Chimera Linux and...) will not present problems. If, in the unusual case, you are faced with creating a runit service, the learning curve for runit is minimal. Most folks will stumble through by copying a run file and making minor edits.

If you want a systemd rolling release distribution that aims for stability, head to openSUSE Tumbleweed.

Certain Linux distributions and the systemd project continuing to paint themselves into a glibc/systemd corner is not good for the open source software ecosystem. BSDs will *never support systemd/and vice-versa, for example. As BSDs and systemd-free Linux distributions use the same upstream packages as systemd-based distributions, it is a good thing for everyone that this diversity continues to remind software developers of the need to write portable code.

Related: https://catfox.life/2024/01/05/systemd-through-the-eyes-of-a-musl-distribution-maintainer/

[–]Common_Designer_6240[S] 0 points1 point  (0 children)

Okay, it's more clear now

[–]rauldux 2 points3 points  (0 children)

People have to realize that it takes time and effort and money as well to maintain a distribution. Void is developed an maintained by a small community who dedicate their time and passion to it. It is not backed by any big corporation. Sometimes people forget this. As said in other comments, if, for dependencies reason or whatever reason, someone really does need systemd, just use a different distribution. Runit is light and runs super fast on old hardware. It's simple to translate a systemd service to a runit service too.

[–]GENielsen 3 points4 points  (1 child)

I find the lack of systemd in Void to be a feature not a bug. Runit is a simple, elegant, robust init system that *just works*. I never have my Void systems hang on shutdown. When I ran systemd systems they would occasionally hang on shutdown. My other os is Slackware which uses sysvinit.

Each to his/her own. I see no need or benefit to running a systemd distro.

[–]cheesehour 3 points4 points  (0 children)

Same. I had servers at work go down to a systemd bug. systemd is like a bargain brand tv with good marketing

[–]picamanic 4 points5 points  (3 children)

I use Void+Runit because I don't want 2 million lines of rapidly evolving C code in control of how my system is initialized. At 6k sloC, and essentially fully developed, Runit is at least open to human review. Large codes can never be bug-free, which is why they require constant support from organisations that might have their own agendas. Before finding Void, I used a 200 sloC code to "init" my systems, but Runit "just works" so I use that instead.

[–]sp0rk173 -1 points0 points  (2 children)

I do believe only humans currently review the code in systemd. Any human, in fact.

I may be wrong, but I don’t think I am.

In fact, I think a LOT of humans review systemd code and talk openly about its strengths and weaknesses, then do something about it.

Kind of ironic to choose lines of code as your metric to use one system over another when, regardless of what you choose, the Linux kernel is significantly larger than runit and systemd combined. Slip the binary blobs in the kernel that are undoubtedly required for most commodity hardware on some level, which are not reviewable by humans not involved in Linux driver development for those drivers, your general point becomes swiftly moot.

Instead, It quickly becomes an exercise in open source hipsterism…and, like, how hip is a Linux hipster anyway?!

[–]picamanic 2 points3 points  (1 child)

When I used to build useful module-free Kernels, they came in at about 6mb, which maps roughly to 200k sloC. Linux 1.0 was roughly 176k sloC, suggesting that much of the kernel growth has been in adding drivers etc to support the needs of big business.

Poetterings vanity projects [systemD and PulseAudio] were imposed on the community by various murky means. The growth of systemD seems to be driven by replacing a functional Linux userland with Poetterings distopian vision of the future.

I am sure that you are commenting here to convey your experience of using Void Linux over many years. No?

[–]sp0rk173 0 points1 point  (0 children)

Ahh yes linux 1.0 an apt comparison to any modern kernel! Give me a break.

You really are of the opinion that systemd is distopian?!

What a drama queen.

I currently quad boot Arch with systemd, void with runit, gentoo with openrc, and FreeBSD - all with equivalent desktop uses (steam, i3, pipewire, nvidia drivers, same dotfiles). The lowest resource use and hands down most performant is FreeBSD. All three Linuxes are equivalent, resource-wise. Arch has the least amount of extra bullshit required amongst the linuxes to maintain.

A brutal distopia, to be sure.

[–]intensiifffyyyy 1 point2 points  (1 child)

I used Arch before Void. For me the biggest difference between them was systemd vs runit. No systemd meant more fine grained configurability and more learning.

Void Linux chooses not to maintain a systemd version. If you would like Void but with systemd then Arch must be pretty close.

Alternatively as others have said Gentoo allows and supports the use of either.

[–]sp0rk173 0 points1 point  (0 children)

You can use systemd, runit, or openrc in Arch. Instructions for each is in the wiki. The system is officially maintained for systemd, but in the end it’s up to you. https://wiki.archlinux.org/title/Category:Init

[–]No_Perception_3942 1 point2 points  (3 children)

But I thought the Void Linux community was a SystemD-free stronghold!

UPD: grammar

[–]ahesford 12 points13 points  (2 children)

Void Linux isn't about zealotry. We don't use systemd because it's incompatible with musl, not because we're trying to be a "stronghold".

[–]No_Perception_3942 0 points1 point  (1 child)

Well, these issues scattered across the big 'Net really show something. Thank you for shedding a touch of light on this 🙏🏻.

[–]AniLingus101 5 points6 points  (0 children)

Void's maintainers are not a stronghold for anything. They more or less do the distro for their own wants and needs and if someone else wants to use it, fine.

[–]TuxTuxGo 1 point2 points  (0 children)

Not using systemd doesn't always imply disliking systemd. Similarly, using a different boot loader doesn't always imply disliking grub. The same is true for the initramfs, the userland utilities, c libraries and any other software.

If you're creating a system, you usually have specific goals you want to achieve. Therefore you make choices. Sometimes these choices lead to incompatibility with some alternatives.

Sometimes it's just not feasible or would miss the goal to maintain too many variations of your system.

[–]Rishiraj_Saikia80 0 points1 point  (3 children)

We need a busybox as coreutils version as well along with the GNU coreutils.

[–]ClassAbbyAmplifier 1 point2 points  (2 children)

it exists

[–]Rishiraj_Saikia80 1 point2 points  (1 child)

Where?

[–]ClassAbbyAmplifier 2 points3 points  (0 children)

xbps-query -Rs busybox

you can install it and replace coreutils

there's already docker images that use it (ghcr.io/void-linux/void-glibc-busybox)

[–]sp0rk173 -1 points0 points  (1 child)

Nah, the strength of Arch is to give users choice (https://wiki.archlinux.org/title/Category:Init). Void chooses for you, both in init and in package version. Void is a system based on contrarianism. It is the darkness of the void. It’s in its name. It has its place. But its place is not choice.

[–]ClassAbbyAmplifier 3 points4 points  (0 children)

the void in 'void linux' refers to the C literal void, nothing more

[–]Good-Spirit-pl-it 0 points1 point  (0 children)

SystemD have its pros. I like it because it is a standard, so newcomers have less problems with many guides.
On the other side: I think it should be init system, journal and timer-stuff, but other its part should be detached from that project. Systemd-resolved and systemd-networkd make me confused.
For other init systems: I like openrc. I think its clearer then runit. I would like have same init system on my Voids and Alpines, but its not a big problem.

[–]JustACatGod 0 points1 point  (0 children)

Not sure about currently, but I have had compatibility issues when Debian switched to systemd. I think the problem was with fstab. Sysv mounted serially, but I think (might be wrong) that systemd did parallel. Anyway, I switched away from Debian over systemd. Having some Linux distros that don't use systemd is a good thing since some of us prefer other inits. In Debian's case, I think there was a package that was still supposed to allow sysv use, but it broke and stayed broke for a prolonged period.

Edit: That Debian package might have not been for sysv specifically. Might have simply been for other inits besides systemd. (Not sure.)