rabbit-slide-sasakyh-EPNetFan2015-06-12 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: fd1358da3ab14d68b348f0928573ff9b812c11cd
4
+ data.tar.gz: 9c8831903d4d2082127a013c8a08f8a857e3a503
5
+ SHA512:
6
+ metadata.gz: 48d61f55f4f833a97453443646fae7ea783fd796939204d5f258040c0547fd6fe10fa2d36291c39b0b3410ffec5d746e562120eaaa948ebea96f0e0bb8344656
7
+ data.tar.gz: b06073fe1e80a60308a362ff9e17c3b221500a67512793adf23c2a93ea8e8a0aab3b92495da8614fa0b8cf4d120d2d61babde1eb5652c9ccb23f8605f9b6bde8
data/.rabbit ADDED
@@ -0,0 +1 @@
1
+ TalkAboutInit.rab
data/README.rd ADDED
@@ -0,0 +1,23 @@
1
+ = Debian default init: sysvinit -> systemd
2
+
3
+ short talk about systemd
4
+
5
+ == For author
6
+
7
+ === Show
8
+
9
+ rake
10
+
11
+ === Publish
12
+
13
+ rake publish
14
+
15
+ == For viewers
16
+
17
+ === Install
18
+
19
+ gem install rabbit-slide-sasakyh-EPNetFan2015-06-12
20
+
21
+ === Show
22
+
23
+ rabbit rabbit-slide-sasakyh-EPNetFan2015-06-12.gem
data/Rakefile ADDED
@@ -0,0 +1,17 @@
1
+ require "rabbit/task/slide"
2
+
3
+ # Edit ./config.yaml to customize meta data
4
+
5
+ spec = nil
6
+ Rabbit::Task::Slide.new do |task|
7
+ spec = task.spec
8
+ # spec.files += Dir.glob("doc/**/*.*")
9
+ # spec.files -= Dir.glob("private/**/*.*")
10
+ # spec.add_runtime_dependency("YOUR THEME")
11
+ end
12
+
13
+ desc "Tag #{spec.version}"
14
+ task :tag do
15
+ sh("git", "tag", "-a", spec.version.to_s, "-m", "Publish #{spec.version}")
16
+ sh("git", "push", "--tags")
17
+ end
data/TalkAboutInit.rab ADDED
@@ -0,0 +1,350 @@
1
+ = Debian default init: sysvinit -> systemd
2
+
3
+ : author
4
+ 佐々木洋平\n((<"uwabami@gfd-dennou.org"|mailto:uwabami@gfd-dennou.org>))
5
+ : institution
6
+ : content-source
7
+ EPNetFaN 2015 座学編
8
+ : date
9
+ 2015-06-11
10
+ : allotted-time
11
+ 45m
12
+ : theme
13
+ .
14
+
15
+ = はじめに
16
+
17
+ = はじめに/宣伝
18
+
19
+ * 今日は「Debian 8」 の話は(あまり)しません
20
+ * OSC 2015 Hokkaido
21
+ * 今週末, 札幌コンベンションセンター
22
+ * セッション
23
+ * 6/13(土) 11:00 - 11:45
24
+ * タイトル「8,9,10 = Jessie,Stretch,Buster」
25
+ * 詳細:「OSC 2015 Hokkaido」で検索
26
+
27
+ = そんな\nこんなで
28
+
29
+ = 今日のお題
30
+
31
+ = ((*systemd*))
32
+
33
+ = お品書き
34
+
35
+ * init の役割
36
+ * これまでの init: SysV init
37
+ * これからの init: systemd
38
+ * systemd でできること/できないこと(?)
39
+
40
+ = お品書き
41
+
42
+ * ((*init の役割*))
43
+ * これまでの init: SysV init
44
+ * これからの init: systemd
45
+ * systemd でできること/できないこと(?)
46
+
47
+
48
+ = ((*init*)) の役割
49
+
50
+ = Linux の boot sequence
51
+
52
+ (1) 電源投入⇒BIOS or UEFI が起動
53
+ (2) BIOS or UEFI ⇒ bootloader を起動
54
+ (3) bootlader が kernel を起動
55
+ (4) kernel が ((*init*)) を起動
56
+
57
+ == プロパティ
58
+
59
+ : background-image
60
+ images/linux-boot-sequence.png
61
+ : background-image-relative-height
62
+ 80
63
+ : background-image-align
64
+ right
65
+ : background-image-relative-margin-right
66
+ 5
67
+ : background-image-relative-margin-top
68
+ 20
69
+
70
+ = init とその役割
71
+
72
+ * init: kernel が最初に呼ぶプログラム(の総称)
73
+ * init がすること
74
+ * ファイルシステムのマウント, ネットワーク設定, サービスの開始
75
+ * サービスの管理(起動, 停止, 再起動)
76
+ * カーネルからのイベントの受け取りとユーザランドでの処理の実行
77
+ (例: Ctrl-Alt-Delete ⇒ 再起動)
78
+
79
+ = お品書き
80
+
81
+ * init の役割
82
+ * ((*これまでの init: SysV init*))
83
+ * これからの init: systemd
84
+ * systemd でできること/できないこと(?)
85
+
86
+ = SysV init
87
+
88
+ = SysV init
89
+
90
+ :SysV init = SystemV 由来の init
91
+ * init が初回に行なうプロセスの総称
92
+ * ((:/sbin/init:)) バイナリそのもの(文脈に注意)
93
+ :SysV init 由来の概念
94
+ * ((*runlevel*)): 0(halt), 1(single user mode), 6(reboot), 等
95
+
96
+ = Debian の sysvinit(1)
97
+
98
+ :sysvinit の設定ファイル群と初回起動時の挙動
99
+ * ((:/etc/inittab:)): runlevel ((*N*))one でシステムを初期化
100
+ * ((:/etc/rcS.d:)): ランレベル ((*S*))ingle でハードウェアを初期化
101
+ * ((:/etc/rc((*X*)).d:)): 2-5 のいずれかの runlevel でサービスを起動\n
102
+ (通常は runlevel 2 で動作する)
103
+
104
+ = Debian の sysvinit(2)
105
+
106
+ :Squeeze の sysvinit
107
+ * 単純な SysV init スタイル. sh script を((*逐次実行*))
108
+ :Wheezy の sysvinit
109
+ * LSB(Linux Standard Base) ヘッダーで定義された依存関係に従い, sh script を((*並列に実行*)) ⇒ 高速に起動
110
+ * 依存関係が間違っていると挙動不審
111
+
112
+ = LSB ヘッダの例: dovecot
113
+
114
+ # emacs # -*- sh -*-
115
+ #! /bin/sh
116
+ ### BEGIN INIT INFO
117
+ # Provides: dovecot
118
+ # Required-Start: $local_fs $remote_fs $network $syslog $time
119
+ # Required-Stop: $local_fs $remote_fs $network $syslog
120
+ # Should-Start: postgresql mysql slapd winbind nslcd
121
+ # Should-Stop: postgresql mysql slapd winbind nslcd
122
+ # Default-Start: 2 3 4 5
123
+ # Default-Stop: 0 1 6
124
+ # Short-Description: Dovecot init script
125
+ # Description: Init script for dovecot services
126
+ ### END INIT INFO
127
+
128
+ = 脱線: サービスの起動/停止
129
+
130
+ * 多くの場合スクリプトを直接叩きがち
131
+ * なるべく ((:service:)) を使うこと
132
+ # /etc/init.d/dovecot stop <-- これは駄目
133
+ # service dovecot stop <-- こっちの方が良い
134
+ * 何故=>((*環境変数, ファイルシステムが同じ保証は無い*))
135
+
136
+ = SysV init じゃ駄目なの?
137
+
138
+ (1) SysVinit によるサービス起動の複雑さ\n
139
+ - 環境の切り替え,他のサービスへの依存...etc.\n
140
+ ⇒((*うまくやる*))のが難しい(できなくはないけれど)
141
+ (1) ファイルベースの PID 管理\n
142
+ ⇒((*SysV init は PID を管理していない*)). \n
143
+ - ファイルに吐いているだけ. \n
144
+ - PID の重複チェックは? 孫プロセスは?
145
+ (1) sh に起因するアレコレ: ((*遅い*))
146
+
147
+ = お品書き
148
+
149
+ * init の役割
150
+ * これまでの init: SysV init
151
+ * ((*これからの init: systemd*))
152
+ * systemd でできること/できないこと(?)
153
+
154
+ = systemd
155
+
156
+ = systemd とは?
157
+
158
+ :systemd: not system"D" or "S"ystemd
159
+ * (メイン)開発者: Lennart Poettering@Red Hat
160
+ * License: LGPL-2.1+
161
+ :特徴
162
+ * cgroups によるプロセス管理, 積極的な並列動作
163
+ * sh より簡便な設定, 詳細なドキュメント...etc.
164
+
165
+ = cgroups とは?
166
+
167
+ * Control Groups の略
168
+ * Linux Kernel の新機能
169
+ * プロセスのグループ化, リソース制限, 名前ベースの分離
170
+ * LXC(Linux Container), Docker \n = cgroups + namespace での分離 (+ 管理ツール)
171
+
172
+ = systemd のプロセス管理
173
+
174
+ :全ての「サービス」は独自の cgroup に所属
175
+ * 「サービス」に関連する全てのプロセスを管理可能
176
+ * (SysV init では PID ファイルでしか管理できなかった)
177
+ * 「サービス」の「リソース」「権限」も管理可能
178
+ * (リソースの制限は ulimit 等で指定するしかなかった)
179
+
180
+ = systemd-{cgls,cgtop}
181
+
182
+ :systemd-cgls
183
+ * cgroup の階層構造を表示
184
+
185
+ :systemd-cgtop
186
+ * cgroup のリソース消費を表示
187
+
188
+ = systemd: サービス管理
189
+
190
+ * 個々の「サービス」は「Unit」ファイルで記述
191
+ * Unit で定義された 「サービス」を ((:systemctl:)) で操作
192
+
193
+ # systemctl start dovecot <-- service dovecot start
194
+ # systemctl start dovecot.service <-- (.service) は省略可能)
195
+ # systemctl stop dovecot <-- service dovecot stop
196
+ # systemctl restart dovecot <-- service dovecot restart
197
+
198
+ = systemd: runlevel
199
+
200
+ * systemd で runlevel に相当する概念は ((*targets*))
201
+ * 例: /etc/systemd/system/graphical.target.wants
202
+ * 各サービスをターゲット下に symlink を作成して管理
203
+
204
+ # systemctl enable/disable SERVICE <-- symlink の作成/削除
205
+ # systemctl mask/unmask SERVICE <-- /dev/null への symlink
206
+
207
+ = bootup(7)
208
+
209
+  
210
+
211
+ = boot の解析:\nsystemd-analyze
212
+
213
+ * ユニット定義が正しければ積極的に並列動作: 高速
214
+ * boot 時の解析コマンド: systemd-analyze
215
+ # systemd-analyze <-- 起動時間の表示
216
+ # systemd-analyze blame <-- 遅いユニットの表示
217
+ # systemd-analyze plot <-- グラフ化
218
+ # systemd-analyze critical-chain <-- 一番時間がかかっている
219
+ ユニットの解析
220
+
221
+ = システムの状態表示: systemctl
222
+
223
+ % systemctl list-units <-- systemctl だけでも良い
224
+ % systemctl -t service <-- サービスのみの表示
225
+ % systemctl --failed <-- 起動に失敗したサービスの表示
226
+ % systemctl status <-- 全体の状況を表示
227
+ % systemctl status SERVICE <-- 特定のサービスの表示
228
+ # systemctl status SERVICE -l <-- 詳細表示
229
+
230
+ = ユニットファイルの書き方
231
+
232
+ * atd を例に
233
+ * sysvinit の場合: /etc/init.d/atd
234
+ * systemctl では?
235
+ * systemd.unit(5)
236
+ * systemd.service(5)
237
+ * systemd.exec(5)
238
+
239
+ = 例: atd.service
240
+
241
+ [Unit]
242
+ Description=Deferred execution scheduler
243
+ Documentation=man:atd(8)
244
+
245
+ [Service]
246
+ ExecStart=/usr/sbin/atd -f
247
+ IgnoreSIGPIPE=false
248
+
249
+ [Install]
250
+ WantedBy=multi-user.target
251
+
252
+ = Unit ファイルの置き場所
253
+
254
+ * パッケージの場合:\n
255
+ ⇒ /lib/systemd/system/ 以下に置かれる
256
+ * 個別に設定したい or 修正したい場合:\n
257
+ ⇒ /etc/systemd/system/ 以下に置く
258
+
259
+ = SysV init の sh は?
260
+
261
+ * (今のところ) systemd-sysv が対応
262
+ * LSB ヘッダの解析
263
+ * init-functions の置き換え
264
+ * 複雑な事をしないサービス(デーモン)は, そのまま動く
265
+ * とはいえ, sh を調整するのは苦痛
266
+ * Unit -> sh の変換は容易に可能なので...
267
+
268
+ = これからのinit: systemd
269
+
270
+ * systemd
271
+ * cgroups によるプロセス管理
272
+ * 積極的な並列動作
273
+ * 「Unit」による簡便な設定
274
+ * 詳細なドキュメント
275
+
276
+ = 脱線: 他の OS は?
277
+
278
+ * Solalis: ((*SMF*)) Service Management Facility
279
+ * カーネル空間でのプロセス管理: contract
280
+ * Mac OS X (>= 10.4): ((*launchd*))
281
+ * init, inetd, atd, crond 等の機能を単一のバイナリで提供
282
+ * 2006年8月に Apache 2.0 で公開
283
+ * 両者とも, XML で設定ファイルを記述
284
+
285
+ = 脱線: その2
286
+
287
+ * Debian で sysvinit を使い続けるには?\n
288
+ ⇒ ((*syvinit-core*)) をインストールすると良い\n
289
+   互換性維持のため, systemd-shim も入れておくと吉
290
+
291
+ * ただし, GNOME を使うなら systemd 推奨
292
+ * Desktop の場合には systemd 使った方が...
293
+
294
+ * LXC や Docker を使うなら systemd の方が良い?
295
+ * jessie on wheezy は今のところ駄目(注意)
296
+
297
+ = お品書き
298
+
299
+ * init の役割
300
+ * これまでの init: SysV init
301
+ * これからの init: systemd
302
+ * ((*systemd でできること/できないこと(?)*))
303
+
304
+ = All your cgroups are belong to us
305
+
306
+ * inittab -> consoled, logind, localed
307
+ * network -> systemd-networkd
308
+ * syslog -> jounald
309
+ * ntp -> timedated, timesyncd
310
+ * cron -> timer.targets
311
+
312
+ = systemd components
313
+
314
+ # image
315
+ # src = images/systemd_components.png
316
+ # relative_height = 100
317
+ # caption = "http://ja.wikipedia.org/wiki/Systemd"
318
+
319
+ = 醜聞
320
+
321
+ - Fsck SystemD and its developers and its users:
322
+ https://lists.debian.org/debian-ctte/2014/02/msg00376.html
323
+ - Linus 様が systemd にぶちきれる:
324
+ http://cpplover.blogspot.jp/2014/04/linussystemd.html
325
+ - 「魚は頭から腐る」--systemdの開発者がトーバルズ氏を公然と批判:
326
+ http://japan.zdnet.com/article/35054778/
327
+
328
+ = 個人的見解
329
+
330
+ = まとめ
331
+
332
+ * Debian 8 から default の init は systemd になりました
333
+ * 高速起動, 管理・設定しやすい方式に
334
+ * 柔軟なプロセス/リソース管理が可能に
335
+ * sysvinit も残ります(選択の自由).
336
+ * (('del:RHEL7がバグを踏み潰してくれでしょう'))
337
+ * 別の init が表れる可能性もあるでしょう
338
+
339
+ = 参考文献
340
+
341
+ - Debian リファレンス:
342
+ https://www.debian.org/doc/manuals/debian-reference/index.ja.html
343
+ - Wikipedia: systemd
344
+ http://ja.wikipedia.org/wiki/Systemd
345
+ - Fsck SystemD and its developers and its users:
346
+ https://lists.debian.org/debian-ctte/2014/02/msg00376.html
347
+ - Linus 様が systemd にぶちきれる:
348
+ http://cpplover.blogspot.jp/2014/04/linussystemd.html
349
+ - 「魚は頭から腐る」--systemdの開発者がトーバルズ氏を公然と批判:
350
+ http://japan.zdnet.com/article/35054778/
data/config.yaml ADDED
@@ -0,0 +1,14 @@
1
+ ---
2
+ id: EPNetFan2015-06-12
3
+ base_name: TalkAboutInit
4
+ tags: [init, systemd]
5
+ presentation_date: 2015-06-12
6
+ version: 1.0.0
7
+ licenses: [MIT/X11]
8
+ author:
9
+ markup_language: :rd
10
+ name: Youhei SASAKI
11
+ email: uwabami@gfd-dennou.org
12
+ rubygems_user: sasakyh
13
+ slideshare_user: uwabami@gfd-dennou.org
14
+ speaker_deck_user: uwabami
Binary file
Binary file
@@ -0,0 +1,163 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!-- Created with Inkscape (http://www.inkscape.org/) -->
3
+ <svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="720" height="405" id="svg2" version="1.1" inkscape:version="0.48.4 r9939" sodipodi:docname="systemd components.svg">
4
+ <title id="title3211">systemd components</title>
5
+ <defs id="defs4"/>
6
+ <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="1.5929545" inkscape:cx="331.94591" inkscape:cy="275.71524" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="false" inkscape:window-width="1920" inkscape:window-height="1014" inkscape:window-x="0" inkscape:window-y="27" inkscape:window-maximized="1" fit-margin-top="0" fit-margin-left="0" fit-margin-right="0" fit-margin-bottom="0" inkscape:snap-page="true" inkscape:snap-bbox="true" inkscape:bbox-paths="true" inkscape:bbox-nodes="true" inkscape:snap-bbox-edge-midpoints="true" inkscape:snap-bbox-midpoints="true" inkscape:object-paths="true" inkscape:snap-intersection-paths="true" inkscape:object-nodes="true" inkscape:snap-global="true"/>
7
+ <metadata id="metadata7">
8
+ <rdf:RDF>
9
+ <cc:Work rdf:about="">
10
+ <dc:format>image/svg+xml</dc:format>
11
+ <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
12
+ <dc:title>systemd components</dc:title>
13
+ <dc:contributor>
14
+ <cc:Agent>
15
+ <dc:title>based on https://wiki.tizen.org/wiki/File:Systemd_arch.PNG by sangjung</dc:title>
16
+ </cc:Agent>
17
+ </dc:contributor>
18
+ <cc:license rdf:resource="http://creativecommons.org/licenses/by-sa/3.0/ or https://gnu.org/licenses/fdl.html"/>
19
+ <dc:description>Illustrates the components of systemd</dc:description>
20
+ <dc:language>en-US</dc:language>
21
+ <dc:date>2013-09-26</dc:date>
22
+ <dc:subject>
23
+ <rdf:Bag>
24
+ <rdf:li>systemd cgroup</rdf:li>
25
+ </rdf:Bag>
26
+ </dc:subject>
27
+ </cc:Work>
28
+ </rdf:RDF>
29
+ </metadata>
30
+ <g inkscape:groupmode="layer" id="layer2" inkscape:label="big boxes" transform="translate(0.94236313,-261.94014)" style="display:inline">
31
+ <rect style="fill:#d89593;fill-opacity:1;fill-rule:nonzero" id="rect3276" width="720" height="40" x="-0.94236314" y="626.94012" rx="25" ry="25.000002"/>
32
+ <rect ry="25" rx="25" y="561.94012" x="-0.94236314" height="55.000004" width="720" id="rect3278" style="fill:#d6e3bb;fill-opacity:1;fill-rule:nonzero"/>
33
+ <rect style="fill:#daedf4;fill-opacity:1;fill-rule:nonzero" id="rect3280" width="720" height="100.00001" x="-0.94236314" y="456.94012" rx="25" ry="25"/>
34
+ <rect style="fill:#c5d8f1;fill-opacity:1;fill-rule:nonzero" id="rect3282" width="720" height="55.000004" x="-0.94236314" y="261.94012" rx="25" ry="25"/>
35
+ <rect ry="25.000002" rx="25.223867" y="321.94016" x="212.05763" height="130" width="507" id="rect3284" style="fill:#fde9d9;fill-opacity:1;fill-rule:nonzero"/>
36
+ <rect style="fill:#e5dfeb;fill-opacity:1;fill-rule:nonzero" id="rect3286" width="206.17198" height="130" x="-0.94236314" y="321.94016" rx="25" ry="25"/>
37
+ </g>
38
+ <g inkscape:groupmode="layer" id="layer3" inkscape:label="boxes" transform="translate(0,38.486267)" style="display:inline">
39
+ <rect style="fill:#92ccdc;fill-opacity:1;fill-rule:nonzero" id="rect3292" width="275" height="75" x="107.5" y="176.51375" rx="15" ry="15"/>
40
+ <rect style="fill:#4dacc6;fill-opacity:1;fill-rule:nonzero" id="rect3294" width="75" height="22" x="115" y="221.76375"/>
41
+ <rect y="221.76375" x="195" height="22" width="55" id="rect3296" style="fill:#4dacc6;fill-opacity:1;fill-rule:nonzero"/>
42
+ <rect style="fill:#4dacc6;fill-opacity:1;fill-rule:nonzero" id="rect3298" width="55" height="22" x="195" y="194.76375"/>
43
+ <rect y="194.76375" x="115" height="22" width="75" id="rect3300" style="fill:#4dacc6;fill-opacity:1;fill-rule:nonzero"/>
44
+ <rect ry="15" rx="15.000001" y="176.51375" x="390.92868" height="75" width="135.00003" id="rect3302" style="fill:#92ccdc;fill-opacity:1;fill-rule:nonzero"/>
45
+ <rect y="284.01373" x="25" height="27.5" width="75" id="rect3306" style="fill:#c2d599;fill-opacity:1;fill-rule:nonzero"/>
46
+ <rect style="fill:#c2d599;fill-opacity:1;fill-rule:nonzero" id="rect3308" width="115" height="27.5" x="285" y="284.01373"/>
47
+ <rect y="284.01373" x="415" height="27.5" width="100" id="rect3310" style="fill:#c2d599;fill-opacity:1;fill-rule:nonzero"/>
48
+ <rect style="fill:#c2d599;fill-opacity:1;fill-rule:nonzero" id="rect3312" width="75" height="27.5" x="115" y="284.01373"/>
49
+ <rect y="284.01373" x="205" height="27.5" width="65" id="rect3314" style="fill:#c2d599;fill-opacity:1;fill-rule:nonzero"/>
50
+ <rect style="fill:#c2d599;fill-opacity:1;fill-rule:nonzero" id="rect3316" width="75" height="27.5" x="530" y="284.01373"/>
51
+ <rect y="284.01373" x="620" height="27.5" width="75" id="rect3318" style="fill:#c2d599;fill-opacity:1;fill-rule:nonzero"/>
52
+ <rect style="fill:#92ccdc;fill-opacity:1;fill-rule:nonzero" id="rect3320" width="55" height="27.5" x="640" y="219.01375"/>
53
+ <rect y="184.01375" x="640" height="27.5" width="55" id="rect3322" style="fill:#92ccdc;fill-opacity:1;fill-rule:nonzero"/>
54
+ <rect y="219.01375" x="535" height="27.5" width="100" id="rect3324" style="fill:#92ccdc;fill-opacity:1;fill-rule:nonzero"/>
55
+ <rect style="fill:#92ccdc;fill-opacity:1;fill-rule:nonzero" id="rect3326" width="100" height="27.5" x="535" y="184.01375"/>
56
+ <rect y="184.01375" x="25" height="27.5" width="75" id="rect3328" style="fill:#92ccdc;fill-opacity:1;fill-rule:nonzero"/>
57
+ <rect style="fill:#92ccdc;fill-opacity:1;fill-rule:nonzero" id="rect3330" width="75" height="27.5" x="25" y="219.01375"/>
58
+ <rect style="fill:#4dacc6;fill-opacity:1;fill-rule:nonzero" id="rect3334" width="60" height="22" x="255" y="221.76375"/>
59
+ <rect y="221.76375" x="320" height="22" width="55" id="rect3336" style="fill:#4dacc6;fill-opacity:1;fill-rule:nonzero"/>
60
+ <rect style="fill:#4dacc6;fill-opacity:1;fill-rule:nonzero" id="rect3338" width="55" height="22" x="320" y="194.76375"/>
61
+ <rect y="194.76375" x="255" height="22" width="60" id="rect3340" style="fill:#4dacc6;fill-opacity:1;fill-rule:nonzero"/>
62
+ <rect style="fill:#4dacc6;fill-opacity:1;fill-rule:nonzero" id="rect3342" width="70" height="22" x="398.42868" y="221.76373"/>
63
+ <rect y="221.76375" x="473.42871" height="22" width="45" id="rect3344" style="fill:#4dacc6;fill-opacity:1;fill-rule:nonzero"/>
64
+ <rect style="fill:#4dacc6;fill-opacity:1;fill-rule:nonzero" id="rect3346" width="45" height="22" x="473.42868" y="194.76375"/>
65
+ <rect style="fill:#4dacc6;fill-opacity:1;fill-rule:nonzero" id="rect3348" width="70" height="22" x="398.42868" y="194.76375"/>
66
+ <rect style="fill:#8db3e2;fill-opacity:1;fill-rule:nonzero" id="rect3350" width="95" height="27.5" x="25" y="-15.986267" rx="0" ry="0"/>
67
+ <rect ry="0" rx="0" y="-15.986267" x="237.71429" height="27.5" width="65" id="rect3352" style="fill:#8db3e2;fill-opacity:1;fill-rule:nonzero"/>
68
+ <rect style="fill:#8db3e2;fill-opacity:1;fill-rule:nonzero" id="rect3354" width="78" height="27.5" x="311.57144" y="-15.986267" rx="0" ry="0"/>
69
+ <rect ry="0" rx="0" y="-15.986267" x="398.42859" height="27.5" width="55" id="rect3356" style="fill:#8db3e2;fill-opacity:1;fill-rule:nonzero"/>
70
+ <rect style="fill:#8db3e2;fill-opacity:1;fill-rule:nonzero" id="rect3358" width="60" height="27.5" x="462.28574" y="-15.986267" rx="0" ry="0"/>
71
+ <rect ry="0" rx="0" y="-15.986267" x="531.14288" height="27.5" width="80" id="rect3360" style="fill:#8db3e2;fill-opacity:1;fill-rule:nonzero"/>
72
+ <rect style="fill:#8db3e2;fill-opacity:1;fill-rule:nonzero" id="rect3362" width="100" height="27.5" x="128.85715" y="-15.986267" rx="0" ry="0"/>
73
+ <rect ry="0" rx="0" y="-15.986267" x="620" height="27.5" width="75" id="rect3364" style="fill:#8db3e2;fill-opacity:1;fill-rule:nonzero"/>
74
+ <rect style="fill:#fabf8e;fill-opacity:1;fill-rule:nonzero" id="rect3366" width="115.00002" height="75" x="597.5" y="71.513657" rx="15" ry="15"/>
75
+ <rect ry="15" rx="15.857128" y="71.513657" x="519.90002" height="75" width="73.999992" id="rect3368" style="fill:#fabf8e;fill-opacity:1;fill-rule:nonzero"/>
76
+ <rect style="fill:#fabf8e;fill-opacity:1;fill-rule:nonzero" id="rect3370" width="134.99998" height="75" x="380.5" y="71.513657" rx="15" ry="15"/>
77
+ <rect y="114.01366" x="230.50003" height="27.5" width="85" id="rect3372" style="fill:#fabf8e;fill-opacity:1;fill-rule:nonzero"/>
78
+ <rect style="fill:#f79547;fill-opacity:1;fill-rule:nonzero" id="rect3374" width="45" height="22" x="385.5" y="116.76366"/>
79
+ <rect y="114.01369" x="95" height="27.5" width="100" id="rect3376" style="fill:#cbc0d9;fill-opacity:1;fill-rule:nonzero"/>
80
+ <rect style="fill:#cbc0d9;fill-opacity:1;fill-rule:nonzero" id="rect3378" width="85" height="27.5" x="110" y="79.013687"/>
81
+ <rect y="79.013687" x="25" height="27.5" width="80" id="rect3380" style="fill:#cbc0d9;fill-opacity:1;fill-rule:nonzero"/>
82
+ <rect style="fill:#cbc0d9;fill-opacity:1;fill-rule:nonzero" id="rect3382" width="65" height="27.5" x="25" y="114.01369"/>
83
+ <rect style="fill:#fabf8e;fill-opacity:1;fill-rule:nonzero" id="rect3179" width="85" height="27.5" x="230.50003" y="79.013657"/>
84
+ <rect y="79.013657" x="320.50003" height="27.5" width="55" id="rect3181" style="fill:#fabf8e;fill-opacity:1;fill-rule:nonzero"/>
85
+ <rect style="fill:#fabf8e;fill-opacity:1;fill-rule:nonzero" id="rect3183" width="55" height="27.5" x="320.50003" y="114.01366"/>
86
+ <rect y="116.76366" x="602.5" height="22" width="105" id="rect3185" style="fill:#f79547;fill-opacity:1;fill-rule:nonzero"/>
87
+ <rect style="fill:#f79547;fill-opacity:1;fill-rule:nonzero" id="rect3187" width="105" height="22" x="602.5" y="89.763657"/>
88
+ <rect y="89.763657" x="385.5" height="22" width="45" id="rect3189" style="fill:#f79547;fill-opacity:1;fill-rule:nonzero"/>
89
+ <rect y="116.76366" x="435.5" height="22" width="75" id="rect3191" style="fill:#f79547;fill-opacity:1;fill-rule:nonzero"/>
90
+ <rect style="fill:#f79547;fill-opacity:1;fill-rule:nonzero" id="rect3193" width="75" height="22" x="435.5" y="89.763657"/>
91
+ <rect style="fill:#f79547;fill-opacity:1;fill-rule:nonzero" id="rect3195" width="60" height="39.928501" x="527.20001" y="91.57811"/>
92
+ <rect style="fill:#f2dbda;fill-opacity:1;fill-rule:nonzero;display:inline" id="rect3288" width="100" height="27.5" x="195" y="332.7637"/>
93
+ <rect ry="0" rx="0" y="332.7637" x="310" height="27.5" width="100" id="rect3290" style="fill:#f2dbda;fill-opacity:1;fill-rule:nonzero;display:inline"/>
94
+ <rect style="fill:#f2dbda;fill-opacity:1;fill-rule:nonzero;display:inline" id="rect3215" width="100" height="27.5" x="425" y="332.7637" rx="0" ry="0"/>
95
+ <rect y="44.399307" x="25" height="27.5" width="100" id="rect3180" style="fill:#cbc0d9;fill-opacity:1;fill-rule:nonzero"/>
96
+ </g>
97
+ <g inkscape:label="text" inkscape:groupmode="layer" id="layer1" transform="translate(0.94236313,-261.94014)" style="display:inline">
98
+ <text xml:space="preserve" style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Monospace;-inkscape-font-specification:Monospace" x="71.499046" y="302.905" id="text2985" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan2987" x="71.499046" y="302.905">systemctl</tspan></text>
99
+ <text sodipodi:linespacing="125%" id="text2994" y="471.52133" x="18.229511" style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold" xml:space="preserve"><tspan y="471.52133" x="18.229511" id="tspan2996" sodipodi:role="line">systemd Core</tspan></text>
100
+ <text xml:space="preserve" style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans" x="60.838886" y="504.155" id="text2998" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan3000" x="60.838886" y="504.155">manager</tspan></text>
101
+ <text sodipodi:linespacing="125%" id="text3002" y="511.40939" x="151.5508" style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans" xml:space="preserve"><tspan y="511.40939" x="151.5508" id="tspan3004" sodipodi:role="line">service</tspan></text>
102
+ <text xml:space="preserve" style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans" x="283.84915" y="538.40936" id="text3006" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan3008" x="283.84915" y="538.40936">socket</tspan></text>
103
+ <text sodipodi:linespacing="125%" id="text3010" y="511.40939" x="283.5928" style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans" xml:space="preserve"><tspan y="511.40939" x="283.5928" id="tspan3012" sodipodi:role="line">mount</tspan></text>
104
+ <text sodipodi:linespacing="125%" id="text3014" y="539.15497" x="61.850605" style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans" xml:space="preserve"><tspan y="539.15497" x="61.850605" id="tspan3016" sodipodi:role="line">systemd</tspan></text>
105
+ <text xml:space="preserve" style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans" x="151.34914" y="538.40936" id="text3018" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan3020" x="151.34914" y="538.40936">snapshot</tspan></text>
106
+ <text sodipodi:linespacing="125%" id="text3022" y="538.40936" x="221.52345" style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans" xml:space="preserve"><tspan y="538.40936" x="221.52345" id="tspan3024" sodipodi:role="line">path</tspan></text>
107
+ <text xml:space="preserve" style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans" x="346.54056" y="511.40939" id="text3026" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan3028" x="346.54056" y="511.40939">target</tspan></text>
108
+ <text xml:space="preserve" style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans" x="221.37648" y="511.40939" id="text3030" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan3032" x="221.37648" y="511.40939">timer</tspan></text>
109
+ <text sodipodi:linespacing="125%" id="text3034" y="538.40936" x="346.56107" style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans" xml:space="preserve"><tspan y="538.40936" x="346.56107" id="tspan3036" sodipodi:role="line">swap</tspan></text>
110
+ <text xml:space="preserve" style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans" x="243.57326" y="490.905" id="text3038" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan3040" x="243.57326" y="490.905">unit</tspan></text>
111
+ <text xml:space="preserve" style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans" x="432.02148" y="511.40939" id="text3042" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan3044" x="432.02148" y="511.40939">multiseat</tspan></text>
112
+ <text sodipodi:linespacing="125%" id="text3046" y="511.40939" x="494.49756" style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans" xml:space="preserve"><tspan y="511.40939" x="494.49756" id="tspan3048" sodipodi:role="line">inhibit</tspan></text>
113
+ <text sodipodi:linespacing="125%" id="text3050" y="538.40936" x="494.94876" style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans" xml:space="preserve"><tspan y="538.40936" x="494.94876" id="tspan3052" sodipodi:role="line">pam</tspan></text>
114
+ <text xml:space="preserve" style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans" x="432.7085" y="538.40936" id="text3054" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan3056" x="432.7085" y="538.40936">session</tspan></text>
115
+ <text sodipodi:linespacing="125%" id="text3058" y="490.905" x="457.41992" style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans" xml:space="preserve"><tspan y="490.905" x="457.41992" id="tspan3060" sodipodi:role="line">login</tspan></text>
116
+ <text sodipodi:linespacing="125%" id="text3062" y="504.155" x="583.75684" style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans" xml:space="preserve"><tspan y="504.155" x="583.75684" id="tspan3064" sodipodi:role="line">namespace</tspan></text>
117
+ <text xml:space="preserve" style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans" x="584.05371" y="539.15497" id="text3066" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan3068" x="584.05371" y="539.15497">cgroup</tspan></text>
118
+ <text xml:space="preserve" style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans" x="666.53027" y="504.155" id="text3070" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan3072" x="666.53027" y="504.155">log</tspan></text>
119
+ <text sodipodi:linespacing="125%" id="text3074" y="539.15497" x="666.51074" style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans" xml:space="preserve"><tspan y="539.15497" x="666.51074" id="tspan3076" sodipodi:role="line">dbus</tspan></text>
120
+ <text xml:space="preserve" style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold" x="18.229511" y="575.77716" id="text3078" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan3080" x="18.229511" y="575.77716">systemd Libraries</tspan></text>
121
+ <text sodipodi:linespacing="125%" id="text3082" y="652.90497" x="17.588886" style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold" xml:space="preserve"><tspan y="652.90497" x="17.588886" id="tspan3084" sodipodi:role="line">Linux Kernel</tspan></text>
122
+ <text xml:space="preserve" style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold" x="236.22951" y="336.09601" id="text3086" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan3088" x="236.22951" y="336.09601">systemd Targets</tspan></text>
123
+ <text sodipodi:linespacing="125%" id="text3090" y="276.56192" x="18.229511" style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold" xml:space="preserve"><tspan y="276.56192" x="18.229511" id="tspan3092" sodipodi:role="line">systemd Utilities</tspan></text>
124
+ <text sodipodi:linespacing="125%" id="text3094" y="302.905" x="268.81882" style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Monospace;-inkscape-font-specification:Monospace" xml:space="preserve"><tspan y="302.905" x="268.81882" id="tspan3096" sodipodi:role="line">notify</tspan></text>
125
+ <text xml:space="preserve" style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Monospace;-inkscape-font-specification:Monospace" x="349.57831" y="302.905" id="text3098" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan3100" x="349.57831" y="302.905">analyze</tspan></text>
126
+ <text sodipodi:linespacing="125%" id="text3102" y="302.905" x="425.01358" style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Monospace;-inkscape-font-specification:Monospace" xml:space="preserve"><tspan y="302.905" x="425.01358" id="tspan3104" sodipodi:role="line">cgls</tspan></text>
127
+ <text xml:space="preserve" style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Monospace;-inkscape-font-specification:Monospace" x="491.06604" y="302.905" id="text3106" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan3108" x="491.06604" y="302.905">cgtop</tspan></text>
128
+ <text sodipodi:linespacing="125%" id="text3110" y="302.905" x="570.2005" style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Monospace;-inkscape-font-specification:Monospace" xml:space="preserve"><tspan y="302.905" x="570.2005" id="tspan3112" sodipodi:role="line">loginctl</tspan></text>
129
+ <text xml:space="preserve" style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Monospace;-inkscape-font-specification:Monospace" x="177.96165" y="302.905" id="text3114" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan3116" x="177.96165" y="302.905">journalctl</tspan></text>
130
+ <text sodipodi:linespacing="125%" id="text3118" y="302.905" x="656.51855" style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Monospace;-inkscape-font-specification:Monospace" xml:space="preserve"><tspan y="302.905" x="656.51855" id="tspan3120" sodipodi:role="line">nspawn</tspan></text>
131
+ <text xml:space="preserve" style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans" x="61.858418" y="605.40497" id="text3126" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan3128" x="61.858418" y="605.40497">dbus-1</tspan></text>
132
+ <text sodipodi:linespacing="125%" id="text3130" y="605.40497" x="151.48732" style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans" xml:space="preserve"><tspan y="605.40497" x="151.48732" id="tspan3132" sodipodi:role="line">libpam</tspan></text>
133
+ <text sodipodi:linespacing="125%" id="text3134" y="605.40497" x="236.24123" style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans" xml:space="preserve"><tspan y="605.40497" x="236.24123" id="tspan3136" sodipodi:role="line">libcap</tspan></text>
134
+ <text xml:space="preserve" style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans" x="341.24124" y="605.40497" id="text3138" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan3140" x="341.24124" y="605.40497">libcryptsetup</tspan></text>
135
+ <text xml:space="preserve" style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans" x="463.85062" y="605.40497" id="text3142" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan3144" x="463.85062" y="605.40497">tcpwrapper</tspan></text>
136
+ <text sodipodi:linespacing="125%" id="text3146" y="605.40497" x="565.99902" style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans" xml:space="preserve"><tspan y="605.40497" x="565.99902" id="tspan3148" sodipodi:role="line">libaudit</tspan></text>
137
+ <text xml:space="preserve" style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans" x="656.04199" y="605.40497" id="text3150" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan3152" x="656.04199" y="605.40497">libnotify</tspan></text>
138
+ <text sodipodi:linespacing="125%" id="text3154" y="399.155" x="346.83502" style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans" xml:space="preserve"><tspan y="399.155" x="346.83502" id="tspan3156" sodipodi:role="line">basic</tspan></text>
139
+ <text xml:space="preserve" style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans" x="346.52643" y="434.155" id="text3158" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan3160" x="346.52643" y="434.155">reboot</tspan></text>
140
+ <text xml:space="preserve" style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans" x="271.75687" y="399.155" id="text3162" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan3164" x="271.75687" y="399.155">bootmode</tspan></text>
141
+ <text sodipodi:linespacing="125%" id="text3166" y="434.155" x="272.31155" style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans" xml:space="preserve"><tspan y="434.155" x="272.31155" id="tspan3168" sodipodi:role="line">shutdown</tspan></text>
142
+ <text xml:space="preserve" style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans" x="407.01663" y="406.40939" id="text3170" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan3172" x="407.01663" y="406.40939">dbus</tspan></text>
143
+ <text sodipodi:linespacing="125%" id="text3174" y="406.40939" x="472.07816" style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans" xml:space="preserve"><tspan y="406.40939" x="472.07816" id="tspan3176" sodipodi:role="line">telephony</tspan></text>
144
+ <text xml:space="preserve" style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans" x="472.03372" y="433.40939" id="text3178" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan3180" x="472.03372" y="433.40939">logind</tspan></text>
145
+ <text sodipodi:linespacing="125%" id="text3182" y="384.91446" x="446.3389" style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans" xml:space="preserve"><tspan y="384.91446" x="446.3389" id="tspan3184" sodipodi:role="line">multi-user</tspan></text>
146
+ <text sodipodi:linespacing="125%" id="text3186" y="433.40939" x="407.30716" style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans" xml:space="preserve"><tspan y="433.40939" x="407.30716" id="tspan3188" sodipodi:role="line">dlog</tspan></text>
147
+ <text sodipodi:linespacing="125%" id="text3190" y="409.44016" x="556.25769" style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans" xml:space="preserve"><tspan y="409.44016" x="556.25769" sodipodi:role="line" id="tspan3218">user-</tspan><tspan y="426.94016" x="556.25769" sodipodi:role="line" id="tspan3214">sesssion</tspan></text>
148
+ <text xml:space="preserve" style="font-size:15.95549583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans" x="556.60889" y="383.7998" id="text3194" sodipodi:linespacing="125%" transform="scale(0.99721846,1.0027893)"><tspan sodipodi:role="line" id="tspan3196" x="556.60889" y="383.7998">graphical</tspan></text>
149
+ <text xml:space="preserve" style="font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:FreeSans;-inkscape-font-specification:FreeSans" x="356.44669" y="422.27118" id="text3198" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan3200" x="356.44669" y="422.27118"/></text>
150
+ <text xml:space="preserve" style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans" x="654.04395" y="406.40939" id="text3202" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan3204" x="654.04395" y="406.40939">display service</tspan></text>
151
+ <text sodipodi:linespacing="125%" id="text3206" y="384.91446" x="654.06543" style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans" xml:space="preserve"><tspan y="384.91446" x="654.06543" id="tspan3208" sodipodi:role="line">user-session</tspan></text>
152
+ <text sodipodi:linespacing="125%" id="text3210" y="433.40939" x="654.24219" style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#666666;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans" xml:space="preserve"><tspan y="433.40939" x="654.24219" id="tspan3212" sodipodi:role="line">tizen service</tspan></text>
153
+ <text sodipodi:linespacing="125%" id="text3236" y="336.09601" x="100.87014" style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold" xml:space="preserve"><tspan y="336.09601" x="100.87014" id="tspan3238" sodipodi:role="line">systemd Daemons</tspan></text>
154
+ <text xml:space="preserve" style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Monospace;-inkscape-font-specification:Monospace" x="56.674824" y="434.15494" id="text3240" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan3242" x="56.674824" y="434.15494">logind</tspan></text>
155
+ <text sodipodi:linespacing="125%" id="text3244" y="399.155" x="62.42873" style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Monospace;-inkscape-font-specification:Monospace" xml:space="preserve"><tspan y="399.155" x="62.42873" id="tspan3246" sodipodi:role="line">journald</tspan></text>
156
+ <text sodipodi:linespacing="125%" id="text3248" y="362.98978" x="73.967796" style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Monospace;-inkscape-font-specification:Monospace" xml:space="preserve"><tspan y="362.98978" x="73.967796" id="tspan3250" sodipodi:role="line">systemd</tspan></text>
157
+ <text xml:space="preserve" style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:-5px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Monospace;-inkscape-font-specification:Monospace" x="144.00294" y="434.15494" id="text3252" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan3254" x="144.00294" y="434.15494">user session</tspan></text>
158
+ <text sodipodi:linespacing="125%" id="text2990" y="652.90497" x="244.01076" style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans" xml:space="preserve"><tspan y="652.90497" x="244.01076" id="tspan2992" sodipodi:role="line">cgroups</tspan></text>
159
+ <text xml:space="preserve" style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans" x="358.97171" y="652.90497" id="text3122" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan3124" x="358.97171" y="652.90497">autofs</tspan></text>
160
+ <text sodipodi:linespacing="125%" id="text3217" y="652.90497" x="473.72562" style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans" xml:space="preserve"><tspan y="652.90497" x="473.72562" id="tspan3219" sodipodi:role="line">kdbus</tspan></text>
161
+ <text xml:space="preserve" style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Monospace;-inkscape-font-specification:Monospace" x="151.47748" y="399.155" id="text3175" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan3177" x="151.47748" y="399.155">networkd</tspan></text>
162
+ </g>
163
+ </svg>
data/theme.rb ADDED
@@ -0,0 +1,71 @@
1
+ # -*- coding: utf-8 -*-
2
+ #--------------------------------------
3
+ # font family setup
4
+ #--------------------------------------
5
+ @default_font = 'Noto Sans Japanese'
6
+ @monospace_font = 'Ricty'
7
+
8
+ # hide footer comment
9
+ @stream_comment_max_n_comments = 10
10
+ @stream_comment_n_moves_base = 500
11
+ @stream_comment_n_moves_fluctuation = 5
12
+
13
+ proc_name = 'stream-comment'
14
+ match(SlideElement) do |slides|
15
+ slides.delete_post_draw_proc_by_name(proc_name)
16
+ canvas.delete_on_comment_proc_by_name(proc_name)
17
+
18
+ stream_comments = []
19
+ canvas.on_comment(proc_name) do |comment|
20
+ text = Text.new(ERB::Util.h(comment.strip.gsub("\n", '')))
21
+ set_font_family(text)
22
+ text.font(:size => (screen_size(3 * Pango::SCALE)).ceil)
23
+ text.compile(canvas, 0, 0, canvas.width*10, canvas.height)
24
+ color = "\#%02x%02x%02x%02x" % [0,64,0, 200]
25
+ # [rand(256), rand(256), rand(256), 128 + rand(128)]
26
+ width, height = text.layout.pixel_size
27
+ stream_comment = {
28
+ :text => text,
29
+ :color => color,
30
+ :x => canvas.width,
31
+ :y => ((canvas.height - height) * rand).ceil - @margin_bottom,
32
+ :terminate => false,
33
+ }
34
+ stream_comments << stream_comment
35
+ if stream_comments.size > @stream_comment_max_n_comments
36
+ oldest_stream_comments = stream_comments.shift
37
+ oldest_stream_comments[:terminate] = true
38
+ end
39
+
40
+ n = @stream_comment_n_moves_base + rand(@stream_comment_n_moves_fluctuation)
41
+ delta = (canvas.width + width) / n.to_f
42
+ GLib::Timeout.add(1000 / 50) do
43
+ stream_comment[:x] -= delta
44
+ n -= 1
45
+ stream_comment[:terminate] = true if n.zero?
46
+ keep_callback = !stream_comment[:terminate]
47
+ unless keep_callback
48
+ stream_comments.reject! do |stream_comment|
49
+ _stream_comment == stream_comment
50
+ end
51
+ end
52
+ canvas.activate("Redraw")
53
+ keep_callback
54
+ end
55
+ end
56
+
57
+ redraw_time = Time.now
58
+ slides.add_post_draw_proc(proc_name) do |slide, canvas, x, y, w, h, simulation|
59
+ unless simulation
60
+ stream_comments.each do |stream_comment|
61
+ canvas.draw_layout(stream_comment[:text].layout,
62
+ stream_comment[:x],
63
+ stream_comment[:y],
64
+ stream_comment[:color])
65
+ end
66
+ end
67
+ [x, y, w, h]
68
+ end
69
+ end
70
+ @footer_comment_uninstall = true
71
+ include_theme("debian")
metadata ADDED
@@ -0,0 +1,68 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rabbit-slide-sasakyh-EPNetFan2015-06-12
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Youhei SASAKI
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-06-11 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rabbit
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 2.0.2
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 2.0.2
27
+ description: 'short talk about systemd '
28
+ email:
29
+ - uwabami@gfd-dennou.org
30
+ executables: []
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - ".rabbit"
35
+ - README.rd
36
+ - Rakefile
37
+ - TalkAboutInit.rab
38
+ - config.yaml
39
+ - images/linux-boot-sequence.png
40
+ - images/systemd_components.png
41
+ - images/systemd_components.svg
42
+ - pdf/EPNetFan2015-06-12-TalkAboutInit.pdf
43
+ - theme.rb
44
+ homepage: http://slide.rabbit-shocker.org/authors/sasakyh/EPNetFan2015-06-12/
45
+ licenses:
46
+ - MIT/X11
47
+ metadata: {}
48
+ post_install_message:
49
+ rdoc_options: []
50
+ require_paths:
51
+ - lib
52
+ required_ruby_version: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: '0'
57
+ required_rubygems_version: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ requirements: []
63
+ rubyforge_project:
64
+ rubygems_version: 2.2.2
65
+ signing_key:
66
+ specification_version: 4
67
+ summary: 'Debian default init: sysvinit -> systemd'
68
+ test_files: []