Forgotten attachment -.-
On Sun, Mar 13, 2016 at 02:38:25PM +0800, Casper Ti. Vector wrote:
> The lecture was given last evening, and was fairly successful (mainly
> except for low-level things I do not understand well and details I am
> not sufficiently familiar with, and an exceedingly terrible control of
> lecture length).
>
> Attached is the finally used version of the outline; the example config
> tarball is unchanged. Additionally, a virtualbox image of the example
> setup can be downloaded from:
> <https://drive.google.com/file/d/0B3FGvKEMCkmXeG5sZWMwOHhOX0k/>.
>
> Do note that the logging config in the example is strongly unrecommended
> for a production setup: most importantly, services (except for ucspilogd
> and kmsg) do not have dedicated loggers, and the logs are all stored
> in tmps just like the catch-all logger. (This paragraph is mostly
> equivalent to what I mean for the "Coarseness of logging setup in the
> example" in the outline).
--
My current OpenPGP key:
RSA4096/0x227E8CAAB7AA186C (expires: 2020.10.19)
7077 7781 B859 5166 AE07 0286 227E 8CAA B7AA 186C
1 Useful concepts
1.1 System initialisation
1.1.1 Chainloading
1.1.2 Requirements and properties of PID 1
1.1.2.1 Functional requirements: longruns and oneshots
1.1.2.2 Signal handling
1.1.2.3 exit() and exec()
1.1.3 Aside: history of init [init-hist]
1.2 Process supervision
1.2.1 Requirements [s6-ov]
1.2.1.1 Auto restart
1.2.1.2 Be itself supervised
# The need to be rooted in PID 1
1.2.1.3 Reproducable environment
# More of a consequence rather than a
requirement
1.2.2 Main choices
1.2.2.1 No supervision, or with PID files, or with
/etc/inittab and /etc/ttys
1.2.2.2 monit and supervisord; upstart and systemd
1.2.2.3 daemontools(-encore), runit, perp, s6 and nosh
1.2.3 Aside: the supervision mail list [sv-ml]
1.3 Notification without running a service [ftrig]
2 Anatomy of s6 / s6-rc
2.1 Process supervisior: s6-supervise and s6-svscan
2.1.1 Configuration and runtime control [s6-ov]
2.1.2 Readiness notification
2.1.3 Chainloading and execline
2.2 Service manager: s6-rc
2.2.1 Interfaces provided by s6-rc
2.2.2 Service directory deployment
2.2.3 Why no OR dependencies for now [or-dep]
# Compare with "opportunist dependencies"
2.3 Service logging
2.3.1 s6-svscan as init: the fd-holding black magic [magic]
2.3.2 s6-fdholder
# Restart of s6-fdholder [fh-restart]
2.3.3 s6-log and ucspilogd
# /dev/log: SOCK_STREAM and SOCK_DGRAM [log-dgram]
2.3.4 The good parts of "socket activation" [s6-sa]
2.4 The DJB legacy and the Plan 9 spirit [djb]
2.4.1 File system as the channel
2.4.2 library organisation, eg. buffer.h <-> bio.h
2.4.3 A glance at the source code
3 A simplified example of s6 / s6-rc deployment
3.1 s6-linux-init and "refined" phases of init
# Platform-dependency of stage 1
3.2 "Runlevel" emulation with s6-rc
3.3 `emptyenv -p' with setproctitle; `./nosetsid' with dcron
3.4 Shuffling of fd in ucspilogd's `./run'
3.5 Coarseness of logging setup in the example
3.6 Instanced supervision
# A hybrid of execline and shell? [el-hybrid]
3.7 Aside: comparison of init scripts [run-comp]
--
[djb] <http://skarnet.org/software/skalibs/djblegacy.html>
[el-hybrid] <http://skarnet.org/cgi-bin/archive.cgi?
2:msp:1131:jgoekjpfpjmfnefbkcob>
[fh-restart] <http://skarnet.org/cgi-bin/archive.cgi?
2:mss:1107:klkgaflanpnghddcjfej>
[ftrig] <http://skarnet.org/software/s6/ftrig.html>
[init-hist] <http://blog.darknedgy.net/technology/2015/09/05/0/>
<http://arxiv.org/pdf/0706.2748v2.pdf>
[log-dgram] <http://www.openwall.com/lists/musl/2015/08/10/1>
[magic] <http://skarnet.org/software/s6/s6-svscan-1.html#log>
[run-comp] <http://homepage.ntlworld.com/jonathan.deboynepollard/FGA/
run-scripts-and-service-units-side-by-side.html>
[or-dep] <http://skarnet.org/cgi-bin/archive.cgi?
2:msp:1063:blhpkmcfbdgbjkmbbckm>
[s6-sa] <http://skarnet.org/software/s6/socket-activation.html>
[s6-ov] <http://skarnet.org/software/s6/overview.html>
[sv-ml] <http://skarnet.org/lists.html>