Slax author's Blog (RSS)
07
November2017
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 every 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!
User comments
Thank you for your long exponation about systemd. In my opinion a clean and simple disribution as Slax does not need complexity and programs that only take more space. And about systemd being faster - I think OpenRC can outmach systemd in terms of speed and speed is not everything. Still I understand that when you base on Debian it's easyer to stay with systemd as many Debian packages depend on it and that the system will still be fast, light and most importantly portable. It is up to you what will it be and whatever you choose most users will accept it. A big thank for bringing this excellent distro back to live!
First, I think your explanation is perfectly fine. Time is a factor - I think people can understand it. Time was a problem back with SLAX + Slackware too, since there were problems before SLAX became dormant. I think that everyone understands the time constraints. I can see it with smaller distributions too - people have to work full time, and their students days are over. They no longer have the time or energy, after being employed full-time, to really work that much in their spare time. Many male folks got a family + kids too so priorities are obviously not sustainable for unpaid open source. I think this is understandable.
From my experience, I have had nothing but problems with systemd so far. And that is not even because I dislike systemd per se. The added complexity led to problems that forced ME to invest time, only because OTHERS (upstream developers) caused those problems onto downstream. The most annoying ones were when systemd would be stuck in a perma-loop, constantly trying stuff anew and failing. That was a default setup-system from some linux live-DVD a few months ago (I admit that I do test systemd-distributions but I do not like what I see so far AT ALL).
Yes, this is distribution specific. Yes, the people who put up systemd, may have done things wrong. And so forth. And so on. But I don't care about these explanations - I care about working with a system that does not give me trouble.
Which is why I like slackware. It's awesome simply because it does not get into the way.
If you look at the general trend among Linux, in particular if you look at KDE and gnome. Things got more complex. Things got more annoying to put up with for hobbyist hackers or solo devs. KDE got its addiction onto cmake (look how much qt+kde populates /usr/lib/cmake/ for example) and Gnome3 now wants meson which needs python 3 and ninja. Yes, things CAN work; if you have enough time to deal with these issues, that is ok. Actually Tomas himself wrote about it being too difficult to do so on his own on slackware+slax, so perhaps he can related to it. :)
It may be easier if things would "just work" but these days are somehow long over. Things to way too complicated, too annoying. This is a reason why I like e. g. GoboLinux too - versioned AppDirs. Brilliant! Can't get simpler than that really (though GoboLinux also has some complexity ... but it is still many times simpler than FHS-based systems really where you tend to require having a package manager to make sense of the system).
Anyway - I wanted to add that there are people who HAVE had problems with systemd. And not all these problems were "made up", I can assure you. There are some other problems, primarily related to dealing with Poettering and his Red Hat co-workers. You had this with many Red Hat people, such as Drepper too - most famous bug report is still this one:
https://sourceware.org/bugzilla/show_bug.cgi?id=4980
See the paypal comment.
But anyway. I think that whether it is red hat, or systemd - does it ultimately matter what people like and what they dislike? I mean, I understand your position very well here, no problem. It would put additional work load onto you and you want to avoid this - this is perfectly sensible.
One approach that is sensible is the one that the LFS/BLFS people have come up with. They maintain two versions - one for systemd, one without systemd. May sound excessive but this actually solves the issue. People now have a CHOICE. This has always been my personal biggest problem with the whole systemd-assimilation. The end user was not given any voice or choice.
If it is too much work for you, that is perfectly understandable. No problem. May you have a great run with SLAX 2.0 on debian too - I wish you all the best.
I still think that SLAX in itself was and still is a great idea.
> 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!) [...]
Yes, this is perfectly logical and makes sense.
> And I believe that the end users of Slax are even less affected
> by systemd.
This may be the case. I think that, if you look at most linux users,
I think many may not even notice or know about systemd. And
most probably don't care. That may also be true. :)
However had, past that point, when it comes to pro-systemd people
and contra-systemd people (let's say ... 15% or 20% of all linux users,
just to throw in some random number), I see it a much more even
battle. :)
> 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)
Well that is also debatable, in particular in those cases where it does
not work. ;)
I can recommend you to look at:
https://twitter.com/systemdsucks?lang=en
Now be warned! 80% of it is pretty useless, but I recommend you to
have a look for the remaining 20% and the cases where systemd
actually fails for people (they usually provide fotos via their smartphone
in these cases). And these fail-cases are actually true, as far as I can
tell. They are not made up. I also have had one of these on a new
install months ago, as described above.
Another thing is that I think it is unfair to compare systemd to "just"
an init system alone. It actually does a lot more. It launches programs
so it acts as a master daemon. It controls memory use for applications
via linux kernel cgroups. It is integrated into the gnome-login manager
(unless you apply the patches provided by a gentoo dev). It has a
shell and ... I don't even know if there is any single person alive on
earth who knows what kind of features it will use.
I guess for your particular case, systemd may indeed be irrelevant, so my recommendation is very similar to Tony Ivanov too, even though I dislike
systemd immensely. Bring SLAX back alive - and if it works, well, then it
works, with a debian chassis and engine kind of like a car replacing some
components but keeping the ones that work.
In all likelihood I'll give the new SLAX a try too, even though it will run on
systemd - I think the most important part would be whether SLAX can be
"componentized" like in the old days. Like, imagine a school with kids using
proprietary software, and then some script kiddie kid simply remasters a
SLAX (in a few clicks) - and et voila, the whole school runs linux! :D
By the way, this is a bit similar to knoppix and kanotix and sidux if you
heard of them (or perhaps the first one) - all also used and probably
still use debian.
Anyway, sail ahead Tomas!
>I am not sure what is the most important concern of some users who do not like systemd
Their problem is autism
Systemd is fine, every relevant distro adopted it because it's better than alternatives and it's more actively developed.
I'm running systemd distros for at least 3 years and didn't have single problem, also companies were I worked used systemd distros on servers in production and didn't have single systemd-related problems.
Of course systemd is not perfect piece of software with 0 bugs, but those that experience problems are 0.01% of users.
Don't waste your precious time trying to create systemd-free distro because of autistic people that have fixation on systemd
My problem with the systemd was its complexity. System V is more straightforward for me. If something worked wrong, one look into an init.d script usually solved it. I had to learn much much more about systemd, till I was able to debug it.
Looking forward for release :)
@Vuk Mirovic
Who you are, what you are? To me you are a bloody know-it-all, nothing else!
Your orotund claptrap is more than horrible. What do you know about autism? I bet: NOTHING!
But you dare to insult autistic people here who mostly have qualities you probably can only dream of.
What else do you know about systemd? Ah, companies do use it - wow. Who else knows such a thing?
You think only 0,01% of linux users have problems with systemd - so dream on you know-it-all! I know something else: you know nothing about deeper differences of various init systems and you do not know WHY systemd was invented. Otherwise you wouldn't incoherently blame autistic people for disliking systemd.
I bet you're a lemming as so many who uses what the mass uses without interrogating yourself about the sense of it. So know what the mass knows and no bit more.
Your nonsensical comment about the init qualities of systemd is disgusting. And you won't believe it: the number of systemd-opposers is growing far over 0,01%.
Cheers from a lemming-hater
Woha, @Mike taking things too much personally.
Nobody blames autistic people here ... at least I didn't understand @Vuk's post that way, so don't worry, be happy :]
My experience with systemd on the desktop has been uneventful with one exception. I have an Ubuntu box that refuses to shut down cleanly at times. I have left it all night and still needed to hard reset it. There was nothing in the logs so it may have been cruft in Ubuntu. I have only had this happen once on a Fedora box, again nothing in the logs. I am glad to see Slax making a comeback!
I've seen Windows become bloated, and I already know that I'm in the camp of KISS simplicity, especially under the hood. The complexity will increase until one person is not able to grasp it all to be able to organize it. Then there is chaos. It won't matter that it's open source. Then the wrong people will take advantage of the chaos for their own ends.
Well put.