Debian and Devuan have joined forces for the sake of sysvinit

    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.


    devu


    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.


    Triple vote on systemd


    A few months before the release of Debian Jessie, the project leaders faced the need to decide on the initialization system. At that time, systemd was already gaining popularity and was one of the main contenders. In total, the race was attended by four SI.


    • systemd;
    • upstart;
    • openrc;
    • sysvinit.

    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:


    • Bdale Garbee - Chairman of the Technical Committee;
    • Don Armstrong;
    • Keith Packard - G-guru X, currently working at Valve;
    • Russ Albery.

    For upstart voted:


    • Colin Watson;
    • Steve Langasek;
    • Ian Jackson;
    • Andreas Barth.

    And for the third time TK voted, significantly simplifying the rules and posing the question. Having excluded 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 supporters of upstart moved to the opposite camp, the result of the vote was decided by an additional vote by the Chairman of the Technical Committee, Bidale Garbi, and by a margin of just one vote, the SI question for Debian Linux was resolved with the former balance of opinions 4: 4.


    Linus shaves Bidale Garby on LinuxConf 2009 .


    shave


    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 Garbi to resign from the post of TC Chairman. Then, firing steam, he decided to temporarily withdraw 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 .


    Devuan


    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 kit and its main difference from the parent OS is what caused all the fuss to start. 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 and there were difficult decisions and dangerous turns in the history of GNU / Linux: GPLv3 or not , UEFI SecureBoot , etc. Why, then, did everyone fly off the coils?


    Disputes around systemd


    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 the 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 the admin’s life easier, but few can argue 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 logic control process of complex transactions .

    Where did the need arise for such a comprehensive system for managing the initialization of the OS and its processes? 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 was not able to solve a number of important tasks, such as:


    • parallel start of processes;
    • removable media detection;
    • activation of socket-based services;
    • reliably control dependencies between different processes and services;
    • Early event logging through /dev/log.

    All these and many other inconveniences were finally solved in systemd . Standardization of configuration files, syntax unification and service dependency management based on cgroupssupposedly allowed vendors of commercial Linux distributions to make life easier for administrators and to reduce costs for managing server fleets.


    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, file system entry points, 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 :


    • power management;
    • user session management;
    • view log;
    • if you close the laptop screen, the events will not be processed;
    • Wayland.

    All this will not take off in Gnome without special patches, if you choose a different SI except systemd .


    The reason for this state of affairs 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.


    Cloud keyword tags around systemd on Twitter .


    systemd


    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/.*" .

    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 which are easier to use and debug by 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.


    DnD collaborate on sysvinit


    And now finally the good news! Recently, there have been shifts between the Debian and Devuan CI development teams. It was decided to combine efforts in several directions.


    • Maintain afloat sysvinit for those who are ready to use Debian Linux with all restrictions, including without a graphical environment. Devuan's help is needed in preparing the 10th version of Debian, dubbed Buster .
    • As a result of this “cross-pollination”, Debian users helped their Devuan colleagues in preparing the sysvinit 2.92 release . Due to this, the timeline was reduced and the issue took place before NG, as was said at the beginning of the post.

    If common sense prevails both groups of developers will be able to deliver and implement a more relevant for all users of Debian / Devuan goal - to achieve full support multiple SI for Devuan the Linux: openrc, s6, runit, nosh.., Etc. Similarly, Debian Linux full support for at least one different from systemd, the SI would undoubtedly benefit.


    PS In Amsderdam on April 5-7, 2019, the first Devuan Linux conference will be held .


    Additional reading



    Also popular now: