Slax author's Blog (RSS)
Slax and systemd
During the past days I've received lots of feedback for the upcoming release of Slax, by email, blog, and other channels. Some of the users welcome Debian, some of them hate it, some don't care :) I think I've explained my reasons why I choosed Debian in my previous post, so I won't repeat that here. But some users are concerned about systemd and would like to know my views of it. So I'd like to mention few things here.
To understand it better, we need to look at how your computer starts. When your computer is turned on, it checks bootable disks or CDs and loads a 'bootloader' first. This is a little software, which is located on your hard drive's first sector, and once executed, its only purpose is to find Linux kernel, load it to memory and execute it (plus pass some parameters to it).
Linux kernel is much bigger binary, it is the core of evey Linux system. After Linux kernel is loaded and executed, it takes over your computer, and provides functions for all of your software to interact with your computer's hardware.
Once the kernel initializes everything and is ready to manage everything, it calls the init. In Slax, things are more complicated due to another added layer, but lets ignore this now. So kernel finds the 'init' file on your disk, usually in /sbin/init, and executes it. So, init is the first process which gets always executed, and which takes care of the rest of the boot procedure.
This init may have different forms. It may be a simple statically compiled program, which does not require any other libraries, and which goes through /etc/rc.d/ directory and runs all scripts stored there sequentially, to perform some initial tasks (like mounting partitions, starting daemons, etc.) before you get your login prompt. The init may be also a more complicated program, which does something more advanced. Or, the init can do a hell a lot of complicated stuff, as like in the case of systemd, in order to provide some "advanced functionality", before the login prompt is displayed to the user. Systemd is not a single binary to execute, it depends on functionality provided by additional libraries such as dbus, pam, notify, and lots of others.
From my point of view in Slax, I don't really need to know what kind of init is used at all. Slax adds a layer in between the kernel and the distribution (be it Debian or Slackware or anything else) to provide a way to run Linux from a read-only media as like as it was writable. After this layer is set up, then the init of the underlaying distro is executed and continues normally, and it doesn't matter for Slax what the init is or does.
To sum it up, I don't really care if the init is systemd or something else. It does not affect me at all.
I am not sure what is the most important concern of some users who do not like systemd. I believe that there are two factors. First may be the complexity of systemd, which surely makes it hard to maintain its code, and goes against the phylosophy of Linux in general (kiss = keep it simple, stupid). By the way, is this really the phylosophy of Linux? :) Anyway, the other factor may be that the adoption of systemd seemed like it was forced to the end users, because once your distro uses systemd, lots of things start depending on it and there is really big problem for package maintainers, they would have to release many packages twice - once for systemd-enabled systems, and once for non-systemd ones, so it is easier for them to stick just with systemd and ignore the rest, which leaves no possibility for the end users to switch to different init they like.
I may agree with these arguments, but as long as somebody else prepares things up for me (by packaging it), and as long as it works and makes my life easier, I am not affected by that (as a developer of Slax!) in any negative way. And I believe that the end users of Slax are even less affected by systemd. I didn't notice any single place where systemd would affect the end user's experience (expect the fact that the system boots up faster). So after all, I don't mind using systemd in Slax. I am not pro- or against- it, my position is best described as neutral :-)
If you have faced any issues as the end user, I welcome your comments. Thank you!