Re: Free as in Beer
[Author here]
Thank you @FrogsAndChips!
To which I would add, off the top of my head:
https://www.theregister.com/2022/05/26/alpine_linux_316_released/
And a section here:
https://www.theregister.com/2022/07/18/disentangling_the_debian_derivatives/
And from my esteemed colleagues:
https://www.theregister.com/2017/04/22/devuan_1_0_0_released/
https://www.theregister.com/2020/06/03/devuan_beowulf_30/
And so on.
I think they get a disproportionate amount of coverage relative to their market share, TBH. I am largely neutral on systemd, because happily for me, I don't run any xNix boxes in production any more. OTOH, systemd _regularly_ breaks bootup and/or shutdown on my various computers, so... :-\
But for better or for worse, it has taken over the mainstream Linux world more or less totally at this point. Chimera may be the most sophisticated alternative to it so far, and deserves more attention.
The thing is this: the critics of systemd do not properly and fully address why it is doing so well. They typically complain that it is a creeping weed that is taking over more and more of the systems' functionality.
That is not the point.
There are many alternative init systems out there.
That is not the point either.
The point is that systemd does a lot of additional things other than the simplest of init fuctionality because there are advantages to doing those things. It is extending the functionality and integration of the OS. That is, overall, a good thing.
So *yes* there are other inits, but they do a lot less, and that means more manual work and more complexity to maintain.
It is 2023.
For example: computers do not sit on the end of a single Ethernet cable any more. They have Ethernet -- unless they're a £2000 high-end Thinkpad, anyway -- *and* wifi with ½ a dozen hotspots memorised, some with IPv4, some with IPv6, some with both -- *and* Bluetooth *and* occasionally a tethered connection to a mobile phone *and* a GSM slot and a WWAN slot which may sometimes also acquire addresses, which may or may not be routable and may or may not have internet uplinks of various speeds.
You do not get to statically set a single static IPv4 address (and a netmask and a gateway and a single DNS) and use it for life. You can do that, if you disable a whole bunch of stuff, and then as soon as you get a new router your computer breaks.
They have multiple graphics cards. Some output to screens. Some output to _other_ graphics cards. Sometimes the 2nd GPU also outputs to the USB bus which must carry 2 duplexed display signals to a docking station, and must also dynamically report back the speeds and resolutions of those screens to the GPUs in the computer. Although the GPU might be on the end of a USB or Thunderbolt bus. You don't know, not even at bootup.
Every time you plug in a USB headset you are adding a new sound card (and mic and outputs) to the computer, with different hardware codecs in it, and all audio must be rerouted to that, or both, under user control, and when you unplug it, all that must be rerouted back to the onboard one.
Windows 2000 was a lot bigger and more complex than NT 4. NT 4 ran quite well in 32MB of RAM, and Win2K ran poorly in 128MB of RAM and really wanted 256MB.
But everyone forgets that NT4 wouldn't even boot if you changed the IRQ on the SCSI controller, and it had no USB.
Win2K had to be rewritten to understand that the disk controller could disappear at any moment and the system boot disk might reappear on another different controller, at any moment, with 200 processes running with open files.
That was _easy_ compared to a 2023 computer, which shipped with multiple GPUs, multiple disk controllers, multiple sound devices, all appearing and disappearing constantly according to power management and docking stations and adding a hub with 64 new devices attached including 3 more hubs, all with different bandwidth levels and bitrates.
This stuff is hard.
The SysV init does not handle this stuff. It can't even handle "oh this box has 4 CPUs, let's parallelize the daemons loading then."
But now, your machine may have a mixture of fast CPUs and slow ones, their clock speeds vary *constantly* and some may get turned off sometimes, and some share cache and some don't, and some don't even see all the same RAM as the others. Oh, and BTW, some of the RAM is nonvolatile.
This is complex. Computers are way, way more complex now. A bunch of bash scripts with numbers in the filenames so some run before others *does not cut it any more.*
Chimera is addressing that. The developer is trying to bring across FreeBSD's logic -- a far smaller, simpler OS -- for handling _some_ of this.
All the people punting SysV init and initrc and so on want to ignore all this hard stuff and make it go away.
Well, it won't.
Ordinary people want to plug a headset into a mic socket (same sound card, different output) or into a USB socket and have the sound just come out of the new device regardless of what kind of socket it is. They want to plug a laptop into a bus docking station or a USB-C one or a Thunderbolt one, and have all those screens work, and for the music to keep playing when they unplug and walk away.
They do not give a monkey's about init systems. They want it to just work, and work faster.
Nostalgic for Solaris? Well Solaris never had to cope with all this, and Sun switched to SMF in place of init in *2005.*
But Macs are Unix and Mac Just Work™? Mac OS X introduced launchd in... oh look, *2005*.
Systemd appeared in 2010.
Linux needed this stuff, was playing catch-up for half a decade, and it does more than ever, and it's not going away.
Want to replace systemd? Then replace it with something better that does everything systemd does. Don't rip it out, put in some 1970s tool instead, and expect things to improve.