summaryrefslogtreecommitdiff
path: root/doc/systemd.html
blob: 7b6c56a463945c825bafd4e79e810fbdcedd9c5d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta http-equiv="Content-Language" content="en" />
    <title>s6: a word about systemd</title>
    <meta name="Description" content="s6: a word about systemd" />
    <meta name="Keywords" content="s6 supervision init systemd" />
    <!-- <link rel="stylesheet" type="text/css" href="http://skarnet.org/default.css" /> -->
  </head>
<body>

<p>
<a href="index.html">s6</a><br />
<a href="http://skarnet.org/software/">Software</a><br />
<a href="http://skarnet.org/">skarnet.org</a>
</p>

<h1> A word about systemd </h1>

<p>
 <a href="http://www.freedesktop.org/wiki/Software/systemd/">systemd</a>
is becoming <i>de facto</i> a standard init system for Linux. But even
this choice of words is treacherous, because systemd is much more than
an init system. It's basically an integrated redesign of all the low-level
userspace of a Linux system, with great plans to change how software is
run and organized.

<p>
 Which is not a bad thing per se: Unix software can definitely benefit
from improvements in this area, and the s6 suite, among other software,
comes from the same assessment and ultimately has the same goal. But
systemd suffers from a single conception flaw that sets it apart from
the other initiatives, and that has both political and technical
repercussions.
</p>

<p>
<strong>
 The single, overarching problem with systemd is that it attempts, in every
possible way, to do <em>more</em> instead of <em>less</em>.
</strong>
</p>

<h2> The political issue </h2>

<p>
 systemd attempts to cover <em>more</em> ground instead of <em>less</em>.
In other words, rather than simply being an init system, it tries to be
a complete overhaul of the way a Linux system is run, and tries to force
other software to hook with it in order to be supported. This goes very
much against: 
</p>

<ul>
 <li> The Unix philosophy, which is to do one job and do it well; </li>
 <li> The <a href="http://www.catb.org/esr/writings/cathedral-bazaar/">bazaar</a>
approach that has made the free software ecosystem what it is today; </li>
 <li> Cross-platform compatibility. BSD is not dead, Solaris is not dead,
but systemd ignores Unix. It even ignores Linux to some extent: the systemd
authors had the guts to ask for specific kernel interfaces! </li>
</ul>

<p>
 The reason why systemd has become so prevalent is not that it has been
accepted by the community. It's that it has manpower. It is backed up by
open source software companies that can provide much more manpower than
developers like myself working on free software on their own time. The
distribution model of systemd, made of lobbying and bullying, is much more
akin to the distribution model of Microsoft Windows than the one of GNU/Linux.
</p>

<p>
 Which says something.
</p>

<h2> The technical issue </h2>

<p>
 Software that does <em>more</em> instead of <em>less</em> is, simply put,
badly designed software. Trying to come up with an all-encompassing solution
is always a sign of developer hubris and inexperience, and never a sign of
good engineering. Ever. Remember sendmail, BIND, INN, and, definitely a better
analogy, the early days of Microsoft Windows&nbsp;? Yes, systemd is in
exactly the same league. It's as if we had learned <em>nothing</em> from the
mistakes of the past 20 years. The systemd programmers may be better at
writing code than the BIND programmers - which isn't saying much - but
they are just as bad at <em>designing software</em>, and when said software
is process 1 and basically the whole low-level userland layer, it is
frightening.
</p>

<p>
 Yes, doing more instead of less is especially bad in the case of
system software, i.e. low-level software that
aims to make the machine work and that application software depends upon.
The goal of an operating system is to make it possible to run <em>applications</em>,
and system software should always partake in that goal. <strong>System software
should stay the heck out of the way</strong>, which is exactly what systemd does
not.
</p>

<p>
 Technically as well as politically, systemd is actually very similar to
Microsoft Windows. If it is not fought, it is going to cause a lot of harm
to the Linux ecosystem. It has already begun.
</p>

<p>
 s6 is my humble contribution to the fight against systemd, and I am
committed to making it evolve so it becomes a real alternative.
</p>

<h2> Links </h2>

<ul>
 <li> <a href="http://freedesktop.org/wiki/Software/systemd/">systemd's home page</a> </li>
 <li> <a href="http://uselessd.darknedgy.net/ProSystemdAntiSystemd/">An analysis of
the vacuity of most Internet arguments about systemd</a>, by the author of
<a href="http://uselessd.darknedgy.net/">uselessd</a>. </li>
 <li> <a href="http://ewontfix.com/14/">Technical arguments against systemd</a>,
by Rich Felker, main author of <a href="http://musl-libc.org/">musl</a> </li>
 <li> <a href="http://judecnelson.blogspot.fr/2014/09/systemd-biggest-fallacies.html">A
list of fallacies about systemd, with debunk</a> </li>
</ul>

</body>
</html>