Gentoo Archives: gentoo-user

From: "Canek Peláez Valdés" <caneko@×××××.com>
To: gentoo-user@l.g.o
Subject: Re: [gentoo-user] Debian just voted in systemd for default init system in jessie
Date: Fri, 21 Feb 2014 22:40:54
Message-Id: CADPrc82qzYMtxTZ95eCBkvhcxAiqWcQ63Q4mTjOAyy1eP98bnQ@mail.gmail.com
In Reply to: Re: [gentoo-user] Debian just voted in systemd for default init system in jessie by "J. Roeleveld"
1 On Fri, Feb 21, 2014 at 2:14 PM, J. Roeleveld <joost@××××××××.org> wrote:
2 > On Thu, February 20, 2014 06:34, Canek Peláez Valdés wrote:
3 >> On Wed, Feb 19, 2014 at 3:00 AM, J. Roeleveld <joost@××××××××.org> wrote:
4 >>> On Tue, February 18, 2014 18:12, Canek Peláez Valdés wrote:
5 >>
6 >> [ snip ]
7 >>
8 >>>> Of course the larger a project is the *potential* number of bugs
9 >>>> increases, but so what? With enough developers, users and testers, all
10 >>>> bugs are *potentially* squashed.
11 >>>
12 >>> Agreed, but I know of enough large projects with large development teams
13 >>> and even more users that don't get the most basic bugs fixed.
14 >>> Quantity is not equivalent to Quality.
15 >>
16 >> I also agree with that. My point is that the systemd project has
17 >> enough numbers of *talented* developers to do it.
18 >>
19 >> You can disagree, of course.
20 >
21 > Talented developer, maybe.
22 > But not talented designers.
23
24 That's subjective. For me (and many others), the design of systemd is sound.
25
26 >>>> And systemd has a *much* wider community than any other init system.
27 >>>> So it can handle a larger code base.
28 >>>
29 >>> Incorrect. How many people use systemd as opposed to SysV Init?
30 >>
31 >> Users? Like five thousand godzillions more.
32 >
33 > I tend to disagree.
34
35 I meant that SysV has like five thousand godzillions more that
36 systemd. Sorry for the confussion.
37
38 > Systemd is ONLY on Linux.
39 > SysV init can be found on alot of other platforms used in the world. Think
40 > Solaris, AIX, HPuX and Linux machines that have not had their init-systems
41 > changed.
42 >
43 >> Developers? It would not surprise me that systemd has several times
44 >> more developers that SysV ever had.
45 >
46 > Maybe, but the developers back then still followed the unix-way: Have a
47 > tool do one job and do it well.
48
49 Again, for many of us that doesn't matter, and we don't take it like
50 an article of faith.
51
52 > From what I see from systemd, it tries to do too much and the single jobs
53 > suffer from feature-bloat.
54
55 Many of us believe they solve real problems, and they make our life easier.
56
57 >> What's more, I think those developers are talented enough, to say the
58 >> least.
59 >
60 > I miss talented designers.
61
62 Wonder why?
63
64 >>>>>> > SysVinit code size is about 10 000 lines of code, OpenRC contains
65 >>>>>> > about 13 000 lines, systemd  about 200 000 lines.
66 >>>>>>
67 >>>>>> If you take into account the thousands of shell code that SysV and
68 >>>>>> OpenRC need to fill the functionality of systemd, they use even more.
69 >>>
70 >>> The shell-code is proven to work though and provided with most of the
71 >>> software. Where it isn't provided, it can be easily created.
72 >>> I have seen (and used) complex start-up scripts for large software
73 >>> implementations which complex dependencies.
74 >>> Fortunately, later versions of those software packages have fixed that
75 >>> mess to a large extend, but I wonder how well systemd unit-files can
76 >>> work
77 >>> in such an environment.
78 >>
79 >> You can read [1]. I think it provides a fair and impartial account of
80 >> how to use systemd to start a complex service (NFS, by its author).
81 >
82 > I would not class NFS as a complex service.
83 > I am talking about a dozen different services that need to be started in a
84 > specific order where the next one is not allowed to start before the
85 > previous one actually responds to TCP/IP connections.
86
87 If you had read the link, you would have learned that NFS has 14 unit
88 files, form a lot of daemons that have to run in concurrent form (and
89 some of them only when others are not, etc.) It *IS* a complex
90 service.
91
92 > How would I configure that in systemd unit-files?
93
94 Read the link
95
96 > If I were to have sockets created in advance (does it work with TCP/IP
97 > sockets?) I would get timeouts on the responses which would lead to some
98 > services not starting correctly and ending up in limbo...
99
100 You don't know how the socket activation works, do you? At boot time,
101 if a service ask for a socket on port 1234 (and yes, they work on
102 TCP/IP sockets), systemd opens the socket for the service, and the
103 service *does not start yet*.
104
105 When the *first* connection gets into the socket, systemd starts the
106 service, and when it finishes starting, systemd passes the opened
107 socket to it as an fd. Done, now the service has control of the
108 socket, and it will until the services terminates; not when the
109 connection closes (although you can configure it that way), when the
110 *service* terminates.
111
112 If several connections arrive to the socket *before* the service
113 finishes starting up, the kernel automatically queues them, and when
114 systemd handles the socket to the service, the service does it things
115 for all of them.
116
117 There is *no single* connection lost. Well, if a godzillion
118 connections arrive before the service finishes starting up, the kernel
119 queue is finite and some would be lost, but it would have to be a lot
120 of connections arriving in a window of some microseconds.
121
122 >>> Having sockets created prior to service start will not work as
123 >>> components
124 >>> will fail due to time-outs, leaving even a bigger mess.
125 >>
126 >> I could be wrong, but I believe the use of cgroups takes care of all
127 >> that. If the service fails, systemd PID 1 can reliable detect it, and
128 >> force the socket to close, and even reopen it for new connections if
129 >> so configured by the administrator.
130 >
131 > Force the socket to close? That's nice, goodbye connection to one of the
132 > databases. Hello auto-shutdown of services because something is clearly
133 > wrong.
134
135 You are not understanding me; read above. I meant that if the service
136 *crashes* (and therefore the connections are gone anyway), using
137 cgroups systemd can reliable detect it and close the associated
138 sockets (if not closed already), and (if so configured), open the
139 socket again and wait for connections while the service is restarted.
140
141 systemd is *NOT* xinitd.
142
143 > With auto-restart, that will create an interesting sequence of events
144 > designed to really break the installation.
145
146 It does not; thanks mostly due to the kernel, it works pretty great.
147
148 >>>>> If that code will fail, this wouldn't be critical at system level.
149 >>>>> Thus scope of fatal error is limited.
150 >>>>
151 >>>> Also in systemd, since most of its code is not critical (again;
152 >>>> logind, datetimed, localed, etc., failing, has no impact whatsoever on
153 >>>> the rest of the system).
154 >>>
155 >>> I understand the usecase for "logind", but what is the point of a daemon
156 >>> to supply the time (datetimed)? Is this a full replacement for "ntpd"?
157 >>> And what does "localed" do? That's configured once in the environment
158 >>> and
159 >>> should be handled using environment variables.
160 >>
161 >> I'm sorry, but *everything* you are asking for is in the link I gave
162 >> you that you qualified it of "not necessary for this discussion" (I
163 >> also pointed someone else to [2]). If you are really interested in the
164 >> answers, go on and read it there.
165 >>
166 >> It's certainly better than hearing it from me.
167 >
168 > Maybe, but based on the name, and I am assuming the names have some sort
169 > of relevance, localed makes no sense.
170
171 Roeleveld, if you had bothered to read the several links that I have
172 provided, you could answer all your question and see that you are
173 wrong about many things about systemd.
174
175 That you haven't done it, and that many times that I answer any of
176 your points, you ignore that one and go on another tangent trying to
177 discredit systemd, I believe you are not trying to have an honest
178 technical conversation.
179
180 Therefore, I will stop engaging with you at this point.
181
182 Regards.
183 --
184 Canek Peláez Valdés
185 Posgrado en Ciencia e Ingeniería de la Computación
186 Universidad Nacional Autónoma de México

Replies