A few days ago another version of the classic Unix / Linux initialization system sysvinit 2.92 was released ahead of schedule. The previous issue 2.91 was released a little over a month ago.
What is remarkable about the release of the minor version of the old initialization system (SI), which almost all modern Linux distributions have abandoned, and what is the joy of the open source community and Debian Linux users?
This episode is interesting because the release took place jointly by two antagonistic development teams of Debian and Devuan, which split 4 years ago because of the situation around systemd . But let's order.
A few months before the release of Debian Jessie, project leaders faced the need to decide on an initialization system. At the time, systemd was already gaining popularity and was one of the main contenders. In total, the race was attended by four SI.
The vote also had the option “further discussion required.”
The results of the first round showed a balance between upstart and systemd , each of which received 4 votes. To make a decision, the ratio of votes was 2: 1.
Two weeks after that, at the beginning of February 2014, the second round passed, in which nothing new actually happened. The votes were divided in the same proportion and a decision was made on further debates.
In favor of systemd voted:
For upstart voted:
And for the third time, the Labor Code voted, greatly simplifying the rules of procedure and raising the question. Having removed all secondary issues from the agenda and lowered the decision-making threshold to a simple majority, the committee voted in favor of systemd from the third call.
No, none of the upstart supporters moved to the opposite camp, the additional vote was decided by an additional vote of the Technical Committee Chairman Bidale Garbi, and by a margin of just one vote, the SI issue for Debian Linux was resolved with the previous balance of opinions 4: 4.
Linus shaves Bidale Garby on LinuxConf 2009 .
The result of the vote caused a sharp feeling of bitterness, frustration and injustice among the opponents of systemd . On the Debian mailing lists, passion has been played out in earnest.
Ian Jackson called for Bidale Gharbi to resign from the post of TC Chairman. Then, firing steam, he decided at the time to move away from participation in the affairs of the TC.
After a couple of days on February 11, it became clear that the decision for Debian Linux was finally made, and in the foreseeable future, the main system for initializing the distribution will be systemd .
The developers of the Debian Linux distribution, who disagreed with this state of affairs, grieved briefly and six months before the release of the 8th version, they created their fork based on systvinit and called it Devuan , starting from the word combination Dev one .
The highlight of the distribution and its main difference from the parent OS is that, because of which they started all the fuss. Devuan Linux chose sysvinit as SI. In general, the birth of the distribution, was greeted with great enthusiasm among Linux users, not excluding the Russian-speaking part of it.
In June , the second version of the distribution was released on the package base of the latest version of its ancestor - Debian Stretch. In addition to sysvinit , you can also select openrc as SI.
Let's try to understand why there was such a split among the Debian developers, and in general, among a large number of users of different variations of the Linux OS. After all, before, there have been difficult decisions and dangerous turns in the history of GNU / Linux: GPLv3 or not , UEFI SecureBoot , etc. Why, then, did everyone fall off the coils?
If we reduce the essence of all disputes to one thesis, then we can say that systemd implies the exchange of the most complete control over the initialization of the system and its services to a total rejection of the Unix philosophy.
And the first is fiercely contested by systemd opponents, but no one disputes the second. Not everyone agrees that systemd makes admin life easier, but few can dispute that systemd and Unix Way are two extremes.
systemd provides aggressive parallelization capabilities, uses sockets and D-Bus activation for services that are started, offers daemons to be started as needed, monitors processes using Linux control groups, supports snapshots and system state recovery, mounts and mount points, and implements dependency-based control logic for complex transaction processes .
Where did the need for such a comprehensive system for managing the initialization of the OS and its processes come from? I do not believe in conspiracy theories and therefore I believe that the reasons were in the shortcomings of sysvinit and other SI.
Established in 1983, sysvinit did not know how to solve a number of important tasks, such as:
/dev/log
.All these and many other inconveniences were finally solved in systemd . Standardization of configuration files, syntax unification and dependency management of cgroups
based services presumably allowed vendors of commercial Linux distributions to make it easier for administrators to live and reduce server park management costs .
But what was the price? For some strange design, the brainchild of Lennart Pottering has gone from the usual SI to "a set of building blocks for a Linux system." Quote from the main page of the project. This state in the state controls the connection of devices, entry points of file systems, network connections, system time service, user sessions, system logs, etc.
At the same time, many DE developers, especially Gnome, began to tie elements of the graphical environment to systemd :
All this will not take off in Gnome without special patches, if you choose a different SI except systemd .
The reason for this situation is that it is too difficult to maintain two options for many sets of programs: one with systemd and the other without. As a result, a situation is created where it is not possible to choose another SI in the Linux distribution.
A keyword tag cloud around systemd on Twitter .
Well, well, there is no possibility of choosing the SI, is it really important? I don’t think that it will upset me greatly if there is no possibility of choosing the OS loader or the DHCP client.
As it turns out, many systemd users are annoyed by a lot of things. Early and complete logging of system events from the very moment of launch is nice, but how can you imagine a Linux system with binary log files?
Lennart Pottering can be a good programmer, but his style of communication and reaction to the defects found, to criticism, is less than any criticism. Here is his reaction to defect 5644 .
The defect itself.
# mkdir -p /foo/dir{1,2} # touch /foo/.bar{1,2} # cat /etc/tmpfiles.d/test.conf R! /foo/.* - - - - - Reboot.
Comment Lennart Pottering.
I am not sure I'd consider this much of a problem. Yeah, it's a UNIX pitfall, but "rm -rf /foo/.*" will do the exact same way, no? .
This is not an isolated case, such a style of communication has earned him ill-fame with the environment of geeks. And this is only part of the claims to systemd and its author. By virtue of its scope, scale and complexity, the system can be fragile as a SI - its main function.
Suppose so, systemd exceeds all major SI in its capabilities, but still the question remains. Why don't ordinary localhost admins have the ability to choose, for Debian Linux and other distributions, more simple to use and debug SI? After all, not everyone needs a parallel start of processes and quota management.
My understanding of the situation with systemd is that a more perfect, but at the same time for many, unreasonably complex and opaque SI was imposed on those who needed it and those who did not . Many Linux users did not like this and began to lament the fact that now Linux has become like Windows, but only with open source.
And now finally the good news! Recently, shifts have emerged between the Debian and Devuan CI development teams. It was decided to combine efforts in several directions.
If common sense prevails, then both groups of developers will be able to set and implement more relevant for all Debian / Devuan users goals - to achieve full support for several SI for Devuan Linux: openrc
, s6
, runit
, nosh
, etc. Also, Debian Linux is full support at least one non- systemd CI would undoubtedly benefit.
PS In Amsderdam on April 5-7, 2019, the first Devuan Linux conference will be held .
Source: https://habr.com/ru/post/431202/
All Articles