Antix-23.1_init_diversity_edition

Here is a surprise. From out of the Antix community, an unofficial release of an .iso which installs 4 separate Antix versions, each with one of sysVinit, runit, s6-rc and s6-66+OpenRC.

https://www.antixforum.com/forums/topic/antix-23-1_init-diversity-edition-sysvinit-runit-s6-rc-s6-66/page/14/

It generates a grub menu like this

antixinitdiv

That is the 386 version, there is also x86-64. I dont know what default is?

It has taken off. There is already a Devuan5 copycat version

https://www.antixforum.com/forums/topic/devuan-5-0-init-diversity-edition/

and it has even more init options

devuaninitdiv

and there is an MX version

https://www.reddit.com/r/debian/comments/1bb812n/derivativesunofficial_respin_mx232_kde/

I have yet to determine if the MX version includes the normal MX option to
activate systemd, but if that is so you can get all popular init systems on one .iso.
It looks like it does!

mxinitdiv
There is systemd, along with all the others.

I am going to download MX-23.2_KDE_init-diversity-edition_UNOFFICIAL_20240222.iso
and try an install, so I will find out. It only comes with KDE. It is 2.5Gb, no larger than normal MX.

I should explain. s6-rc is the original s6 service management set of commands.
s6-66 is an extra set of commands which allow bundling of services into ‘trees’ and
managing them as bundles rather than individually. Both versions of s6 do service supervision as well as service management.

Will someone give these a try.?
This could be the breakthru that puts init systems back on a sensible footing.
These are really spins, rather than releases. It is early days.
and
Congratulations to the Antix community… that is a really great idea.

3 Likes

I would be happy to smoke-test things for you, Neville. My only problem is that I have tried some different init software–in Peppermint, for one–but I can’t see a difference. My take is that the average user won’t know the difference. They all seem to be Linux distros.

3 Likes

You are right Bill. A home user hardly ever uses the init system. It is invisible unless there is trouble.
You would not see any operating difference between those Linuxes in the diversity edition… except perhaps boot speed… runit would win that.

What I want to look at is have they set up each init system properly… with the package system supplying all the scripts needed for each daemon. Up till now, the only distros to get that right are Artix and Void.
Noone wants to have to write a whole heap of scripts, just to start daemons. That is where this init freedom idea falls down.

2 Likes

Devaun shows a ‘default’ option but no ‘systemd’. Is that the default then?

MX shows a ‘default’ and a ‘systemd’ option. What is the default there?

I am assuming it is SysV as that is what mine starts up with when I do not choose. In fact, I was just reading on this earlier today and did not know you had the option to start with systemd.

Sheila

I just got rid of KDE, so I won’t be adding this. I think MX has the option in the start menu for systemd, though, as I discovered in researching the script issue earlier. But since I want to learn the new SysV, I don’t use it to log in. I use the default.

UPDATE: I just checked and only 2 options: default & systemd in Libretto.

Sheila

That is right, it defaults to sysVinit. MX comes with systemd installed but not activated. I use the default sysVinit in Libretto.
If you activate systemd in Libretto, it is a one way ticket, you cant then go back to sysVinit.

That init diversity edition is a non-official spin… it will be different I expect.

1 Like

I doubt it. Standard Devuan does not have systemd… that would make it indistinguishable from Debian.

I will find out when I install my download.

Well that’s good to know. Because I would have deactivated something I wanted or needed, had I followed some of the instructions I have read. Seems like most articles assume systemd; and until Mx Linux, that made sense to me. But having never used anything other than sysD, I would like to know how to use SysV and see if I like it better.

Thanks,
Sheila

Learn about runlevels. That is basic to sysVinit.

Currently sysV or OpenRC are about the only properly supported alternatives to systemd. The others (runit, s6) are only properly supported in speciaslist distros like Void or Artix.

What I mean by properly supported is that the package system has to supply startup scripts for all the services.
You should not have to write scripts just to get a daemon running.

1 Like

You are right, these are currently unofficial spins, with plans to be an official option for antiX.

‘default’ points to any init that is symlinked to /sbin/init (which can be interchangeable when installed)
‘sysvinit’ points to /lib/sysvinit/init
‘systemd’ points to /lib/systemd/systemd
‘runit’ points to /lib/runit/runit-init
‘OpenRC’ points to /lib/openrc/openrc-init
‘s6-rc’ points to /lib/s6-rc/init
‘s6-66’ points to /lib/s6-66/init

Depending on whatever options are installed (systemd will never be available in Devuan or antiX thus not an option on grub)

2 Likes

Not all scripts are present but a good range for each, just to demostrate the functionality.
Not even Artix or Void cover all scripts, I had to right my own for a few services (eg xrdp / connman / slimski), which I couldn’t find elsewhere.

Rome wasn’t built in one day, there is plenty of work to make the s6 options mainstream but at least a start has been made.

2 Likes

Right, so the user can set the default. Thanks

Yes, I have had to write scripts in Void… runit scripts are easy… you can get away with just the run script.

I am just looking at S6 for first time at moment. My impression is that it is way more complicated than runit, especially if used with
66 instead of s6-rc. I cant fathom its filesystem. With other
init systems I can understand the filesystem. S6 puts things in dot files in the users home directory, which I do not like. I think it is too sophisticated for a home computer.

Agree. You seem to think S6 is the way forward. I am not sure. There are other simpler options like BSD RC which has been a good performer for years. Do we want to replace systemd with something simple or
something equally as complicated

I understand that you are the author of this respin.
I think it is a great concept.
Lets see if we can give it a run among itsFOSS members.
Do you have any documentation? I would like to understand
how it works, and well as just seeing it function.

1 Like

I get it, if you boot the default option live you get in /sbin all the init executables

demo@mx1:/sbin
$ ls -l ini*
-rwxr-xr-x 1 root root 52400 Jan 26 07:22 init
-rwxr-xr-x 1 root root 22944 Feb 22 07:37 init-runit
-rwxr-xr-x 1 root root    72 Feb 22 07:37 init-s6-66
-rwxr-xr-x 1 root root   120 Feb 22 07:37 init-s6-rc
-rwxr-xr-x 1 root root 92544 Feb 22 07:39 init-systemd
-rwxr-xr-x 1 root root 52400 Feb 22 07:37 init-sysvinit

and none of them are symlinked… that happens if you install.
init is the same as init-sysvinit

and Wow… copy/paste even works in a VM… because

demo@mx1:/sbin
$ ps ax | grep spice
   2569 ?        Ssl    0:01 /usr/sbin/spice-vdagentd
   3385 ?        Ssl    0:00 /usr/bin/spice-vdagent
   4489 pts/1    S+     0:00 grep spice

someone was kind enough to install spice-vdagent in the live system.

And what is in /lib


all the startup tools for each init system.
Note, systemd seems a little larger.

And, in /etc you will find all the subdirectories for each init system …

init.d  and rc*.* for sysvinit
runit and sv for runit
s6-rc for s6-rc
66 for s6-66
systemd for systemd
and a few other things

If I now reboot … it hung… would not go back to grub menu ???
Start again… this time choose runit instead of default… it boots with
quiet selinux=0 init=/sbin/init-runit

and when I now look at /sbin I see

demo@mx1:/sbin
$ ls -l in*
lrwxrwxrwx 1 root root    10 Apr  9 04:55 init -> init-runit
-rwxr-xr-x 1 root root 52400 Jan 26 07:22 init-default
-rwxr-xr-x 1 root root 22944 Feb 22 07:37 init-runit
-rwxr-xr-x 1 root root    72 Feb 22 07:37 init-s6-66
-rwxr-xr-x 1 root root   120 Feb 22 07:37 init-s6-rc
-rwxr-xr-x 1 root root 92544 Feb 22 07:39 init-systemd
-rwxr-xr-x 1 root root 52400 Feb 22 07:37 init-sysvinit

so init is now a pointer to init-runit.
I get it, very clever.

So lets summarize what this edition is…
It contains one copy of MX23
with 5 separate init systems installed
and an elegant mechanism using pointers to switch to a user’s chosen init system.
The grub setup is a mystery. There is no grub.cfg file in /boot/grub… at least not in the runit version. I dont understand how it controls grub, but that is a minor issue.

I do not think one could shift dynamically from one init system to another just by changing the pointer. One would have to reboot anyway , so one may as well go back to the grub menu.

It was an internal reboot command that failed. I can reboot using the virt-manager buttons. It would help if I knew the demo password.

So far, it looks very interesting… a way for any distro to embrace init-freedom
without sacrificing anything.

2 Likes

There is a limitation with the antiX live initramfs as it requires inits to boot live from /sbin/init* (MX shares the same base as antiX)

Once installed the inits boot from the /lib/ locations I posted earlier.

The Devuan spin which was made using the refracta tools doesn’t have that limitation & is able to boot live from the /lib/ locations.

You can switch default init (/sbin/init) once installed & potentially uninstall any other init you don’t want

1 Like

My first problem. I cant get a live system in VM ( virt-manager) to go back to the grub menu. With reboot or shutdown, it returns to the login screen.
Other normal installs in virt-manager will return to grub on reboot the same as
a hard install does.

I guess this is something to do with the trickery involved in getting the
multiple grub menu items.

We need it replaced with something POSIX & modular & keeps up with modern requirements (supervising all services, bringing things up in parallel with event based triggers, & providing support for user services - no only root). The s6 options try to tick these boxes - runit not so much.
66 services are also defined with declarative frontend files (similar to systemd units), which is also another plus.

https://web.obarun.org/software/66/latest/66-frontend.html

True there is a bit of learning curve to get familiar with s6-rc or s6-66 but once you understand the logic it is quite easy to do a simple implemetation of them.

If you are booted in bios mode the menu you are seeing is syslinux/isolinux (you can boot to grub if you navigate to last boot option).

If you are booted through UEFI you only get the grub option

On the live system the boot menus are mounted under
/live/boot-dev/boot

1 Like