summaryrefslogtreecommitdiff
path: root/doc/systemd.html
blob: 49ba2aa84ca433a4bdf1b0b08ee94067554d593d (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
<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. Technically as well as politically, systemd
is actually very close to Windows; is that the future we want for Linux
machines&nbsp?
</p>

<p>
 Doing more instead of less is bad, and it's especially true 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>, and systemd is big, loud and
obnoxious. Embedded devices are common, and will become even more common in
the future; that is a market that systemd will have trouble breaking into, because
it's a lot more complex than embedded devices need. And that, too, says something:
if a software suite is too complex for an embedded device, maybe it's just too
complex, period.
</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://boycottsystemd.org">boycottsystemd.org</a>, summarizing
political arguments against systemd </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>