Beyond Init: systemd linux.conf.au 2011
Lennart Poettering
January 2011
Lennart Poettering Beyond Init: systemd compatible with SysV and LSB init scripts. systemd provides aggressive parallelization capabilities, uses socket and D-Bus activation for starting services, offers on-demand starting of daemons, keeps track of processes using Linux cgroups, supports snapshotting and restoring of the system state, maintains mount and automount points and implements an elaborate transactional dependency-based service control logic. It can work as a drop-in replacement for sysvinit.”
“systemd is a system and session manager for Linux,
Lennart Poettering Beyond Init: systemd systemd provides aggressive parallelization capabilities, uses socket and D-Bus activation for starting services, offers on-demand starting of daemons, keeps track of processes using Linux cgroups, supports snapshotting and restoring of the system state, maintains mount and automount points and implements an elaborate transactional dependency-based service control logic. It can work as a drop-in replacement for sysvinit.”
“systemd is a system and session manager for Linux, compatible with SysV and LSB init scripts.
Lennart Poettering Beyond Init: systemd uses socket and D-Bus activation for starting services, offers on-demand starting of daemons, keeps track of processes using Linux cgroups, supports snapshotting and restoring of the system state, maintains mount and automount points and implements an elaborate transactional dependency-based service control logic. It can work as a drop-in replacement for sysvinit.”
“systemd is a system and session manager for Linux, compatible with SysV and LSB init scripts. systemd provides aggressive parallelization capabilities,
Lennart Poettering Beyond Init: systemd offers on-demand starting of daemons, keeps track of processes using Linux cgroups, supports snapshotting and restoring of the system state, maintains mount and automount points and implements an elaborate transactional dependency-based service control logic. It can work as a drop-in replacement for sysvinit.”
“systemd is a system and session manager for Linux, compatible with SysV and LSB init scripts. systemd provides aggressive parallelization capabilities, uses socket and D-Bus activation for starting services,
Lennart Poettering Beyond Init: systemd keeps track of processes using Linux cgroups, supports snapshotting and restoring of the system state, maintains mount and automount points and implements an elaborate transactional dependency-based service control logic. It can work as a drop-in replacement for sysvinit.”
“systemd is a system and session manager for Linux, compatible with SysV and LSB init scripts. systemd provides aggressive parallelization capabilities, uses socket and D-Bus activation for starting services, offers on-demand starting of daemons,
Lennart Poettering Beyond Init: systemd supports snapshotting and restoring of the system state, maintains mount and automount points and implements an elaborate transactional dependency-based service control logic. It can work as a drop-in replacement for sysvinit.”
“systemd is a system and session manager for Linux, compatible with SysV and LSB init scripts. systemd provides aggressive parallelization capabilities, uses socket and D-Bus activation for starting services, offers on-demand starting of daemons, keeps track of processes using Linux cgroups,
Lennart Poettering Beyond Init: systemd maintains mount and automount points and implements an elaborate transactional dependency-based service control logic. It can work as a drop-in replacement for sysvinit.”
“systemd is a system and session manager for Linux, compatible with SysV and LSB init scripts. systemd provides aggressive parallelization capabilities, uses socket and D-Bus activation for starting services, offers on-demand starting of daemons, keeps track of processes using Linux cgroups, supports snapshotting and restoring of the system state,
Lennart Poettering Beyond Init: systemd and implements an elaborate transactional dependency-based service control logic. It can work as a drop-in replacement for sysvinit.”
“systemd is a system and session manager for Linux, compatible with SysV and LSB init scripts. systemd provides aggressive parallelization capabilities, uses socket and D-Bus activation for starting services, offers on-demand starting of daemons, keeps track of processes using Linux cgroups, supports snapshotting and restoring of the system state, maintains mount and automount points
Lennart Poettering Beyond Init: systemd It can work as a drop-in replacement for sysvinit.”
“systemd is a system and session manager for Linux, compatible with SysV and LSB init scripts. systemd provides aggressive parallelization capabilities, uses socket and D-Bus activation for starting services, offers on-demand starting of daemons, keeps track of processes using Linux cgroups, supports snapshotting and restoring of the system state, maintains mount and automount points and implements an elaborate transactional dependency-based service control logic.
Lennart Poettering Beyond Init: systemd “systemd is a system and session manager for Linux, compatible with SysV and LSB init scripts. systemd provides aggressive parallelization capabilities, uses socket and D-Bus activation for starting services, offers on-demand starting of daemons, keeps track of processes using Linux cgroups, supports snapshotting and restoring of the system state, maintains mount and automount points and implements an elaborate transactional dependency-based service control logic. It can work as a drop-in replacement for sysvinit.”
Lennart Poettering Beyond Init: systemd init(8)
Lennart Poettering Beyond Init: systemd Parallelization
Lennart Poettering Beyond Init: systemd Lennart Poettering Beyond Init: systemd The kernel orders and buffers requests for us! Implicit dependencies! Patching daemons
Socket-Based Activation
Lennart Poettering Beyond Init: systemd Implicit dependencies! Patching daemons
Socket-Based Activation The kernel orders and buffers requests for us!
Lennart Poettering Beyond Init: systemd Patching daemons
Socket-Based Activation The kernel orders and buffers requests for us! Implicit dependencies!
Lennart Poettering Beyond Init: systemd Socket-Based Activation The kernel orders and buffers requests for us! Implicit dependencies! Patching daemons
Lennart Poettering Beyond Init: systemd Bus-Based Activation
Lennart Poettering Beyond Init: systemd Starting Less: On-Demand Loading
Lennart Poettering Beyond Init: systemd autofs!
Parallelizing File System Jobs
Lennart Poettering Beyond Init: systemd Parallelizing File System Jobs autofs!
Lennart Poettering Beyond Init: systemd Move to systemd, daemons, kernel, udev, . . . Provide proper debugging facilities
Shell is evil
Lennart Poettering Beyond Init: systemd Provide proper debugging facilities
Shell is evil Move to systemd, daemons, kernel, udev, . . .
Lennart Poettering Beyond Init: systemd Shell is evil Move to systemd, daemons, kernel, udev, . . . Provide proper debugging facilities
Lennart Poettering Beyond Init: systemd Control Groups!
The best babysitter.
Lennart Poettering Beyond Init: systemd The best babysitter. Control Groups!
Lennart Poettering Beyond Init: systemd Environment, resource limits, working directory, chroot(), umask, OOM adjustment, nice level, IO priority and class, CPU scheduler priority and policy/reset-on-fork, CPU affinity, timer slack, stdio to syslog/tty/null/kmsg, uid, gid, supplementary groups, file system namespacing (r/o file systems, inaccessible systems, mount propagation, private /tmp), capabilities (inherited set, bounding set, secure bits), . . .
The best babysitter II
Lennart Poettering Beyond Init: systemd The best babysitter II Environment, resource limits, working directory, chroot(), umask, OOM adjustment, nice level, IO priority and class, CPU scheduler priority and policy/reset-on-fork, CPU affinity, timer slack, stdio to syslog/tty/null/kmsg, uid, gid, supplementary groups, file system namespacing (r/o file systems, inaccessible systems, mount propagation, private /tmp), capabilities (inherited set, bounding set, secure bits), . . .
Lennart Poettering Beyond Init: systemd Unit types: service, socket, device, mount, automount, target, snapshot, timer, swap, path
Lennart Poettering Beyond Init: systemd Read SysV/LSB init script headers, read /etc/fstab, support traditional inetd modes, support /dev/initctl, utmp, wtmp, support double-fork()ing daemons. .desktop files.
Don’t reinvent the wheel:
Lennart Poettering Beyond Init: systemd .desktop files.
Don’t reinvent the wheel: Read SysV/LSB init script headers, read /etc/fstab, support traditional inetd modes, support /dev/initctl, utmp, wtmp, support double-fork()ing daemons.
Lennart Poettering Beyond Init: systemd Don’t reinvent the wheel: Read SysV/LSB init script headers, read /etc/fstab, support traditional inetd modes, support /dev/initctl, utmp, wtmp, support double-fork()ing daemons. .desktop files.
Lennart Poettering Beyond Init: systemd Snapshots
Lennart Poettering Beyond Init: systemd Transaction System
Lennart Poettering Beyond Init: systemd D-Bus!
Lennart Poettering Beyond Init: systemd systemadm
Lennart Poettering Beyond Init: systemd systemd for cross-distribution standardization
systemd as basic OS building block
Lennart Poettering Beyond Init: systemd systemd as basic OS building block systemd for cross-distribution standardization
Lennart Poettering Beyond Init: systemd Substantial coverage of basic OS boot-up tasks, including fsck, mount, quota, hwclock, readahead, tmpfiles, random-seed, console, static module loading, early syslog, plymouth, shutdown, kexec, SELinux, initrd+initrd-less boots, cryptsetup, . . .
Status: almost made Fedora 14.
Lennart Poettering Beyond Init: systemd including fsck, mount, quota, hwclock, readahead, tmpfiles, random-seed, console, static module loading, early syslog, plymouth, shutdown, kexec, SELinux, initrd+initrd-less boots, cryptsetup, . . .
Status: almost made Fedora 14. Substantial coverage of basic OS boot-up tasks,
Lennart Poettering Beyond Init: systemd mount, quota, hwclock, readahead, tmpfiles, random-seed, console, static module loading, early syslog, plymouth, shutdown, kexec, SELinux, initrd+initrd-less boots, cryptsetup, . . .
Status: almost made Fedora 14. Substantial coverage of basic OS boot-up tasks, including fsck,
Lennart Poettering Beyond Init: systemd quota, hwclock, readahead, tmpfiles, random-seed, console, static module loading, early syslog, plymouth, shutdown, kexec, SELinux, initrd+initrd-less boots, cryptsetup, . . .
Status: almost made Fedora 14. Substantial coverage of basic OS boot-up tasks, including fsck, mount,
Lennart Poettering Beyond Init: systemd hwclock, readahead, tmpfiles, random-seed, console, static module loading, early syslog, plymouth, shutdown, kexec, SELinux, initrd+initrd-less boots, cryptsetup, . . .
Status: almost made Fedora 14. Substantial coverage of basic OS boot-up tasks, including fsck, mount, quota,
Lennart Poettering Beyond Init: systemd readahead, tmpfiles, random-seed, console, static module loading, early syslog, plymouth, shutdown, kexec, SELinux, initrd+initrd-less boots, cryptsetup, . . .
Status: almost made Fedora 14. Substantial coverage of basic OS boot-up tasks, including fsck, mount, quota, hwclock,
Lennart Poettering Beyond Init: systemd tmpfiles, random-seed, console, static module loading, early syslog, plymouth, shutdown, kexec, SELinux, initrd+initrd-less boots, cryptsetup, . . .
Status: almost made Fedora 14. Substantial coverage of basic OS boot-up tasks, including fsck, mount, quota, hwclock, readahead,
Lennart Poettering Beyond Init: systemd random-seed, console, static module loading, early syslog, plymouth, shutdown, kexec, SELinux, initrd+initrd-less boots, cryptsetup, . . .
Status: almost made Fedora 14. Substantial coverage of basic OS boot-up tasks, including fsck, mount, quota, hwclock, readahead, tmpfiles,
Lennart Poettering Beyond Init: systemd console, static module loading, early syslog, plymouth, shutdown, kexec, SELinux, initrd+initrd-less boots, cryptsetup, . . .
Status: almost made Fedora 14. Substantial coverage of basic OS boot-up tasks, including fsck, mount, quota, hwclock, readahead, tmpfiles, random-seed,
Lennart Poettering Beyond Init: systemd static module loading, early syslog, plymouth, shutdown, kexec, SELinux, initrd+initrd-less boots, cryptsetup, . . .
Status: almost made Fedora 14. Substantial coverage of basic OS boot-up tasks, including fsck, mount, quota, hwclock, readahead, tmpfiles, random-seed, console,
Lennart Poettering Beyond Init: systemd early syslog, plymouth, shutdown, kexec, SELinux, initrd+initrd-less boots, cryptsetup, . . .
Status: almost made Fedora 14. Substantial coverage of basic OS boot-up tasks, including fsck, mount, quota, hwclock, readahead, tmpfiles, random-seed, console, static module loading,
Lennart Poettering Beyond Init: systemd plymouth, shutdown, kexec, SELinux, initrd+initrd-less boots, cryptsetup, . . .
Status: almost made Fedora 14. Substantial coverage of basic OS boot-up tasks, including fsck, mount, quota, hwclock, readahead, tmpfiles, random-seed, console, static module loading, early syslog,
Lennart Poettering Beyond Init: systemd shutdown, kexec, SELinux, initrd+initrd-less boots, cryptsetup, . . .
Status: almost made Fedora 14. Substantial coverage of basic OS boot-up tasks, including fsck, mount, quota, hwclock, readahead, tmpfiles, random-seed, console, static module loading, early syslog, plymouth,
Lennart Poettering Beyond Init: systemd kexec, SELinux, initrd+initrd-less boots, cryptsetup, . . .
Status: almost made Fedora 14. Substantial coverage of basic OS boot-up tasks, including fsck, mount, quota, hwclock, readahead, tmpfiles, random-seed, console, static module loading, early syslog, plymouth, shutdown,
Lennart Poettering Beyond Init: systemd SELinux, initrd+initrd-less boots, cryptsetup, . . .
Status: almost made Fedora 14. Substantial coverage of basic OS boot-up tasks, including fsck, mount, quota, hwclock, readahead, tmpfiles, random-seed, console, static module loading, early syslog, plymouth, shutdown, kexec,
Lennart Poettering Beyond Init: systemd initrd+initrd-less boots, cryptsetup, . . .
Status: almost made Fedora 14. Substantial coverage of basic OS boot-up tasks, including fsck, mount, quota, hwclock, readahead, tmpfiles, random-seed, console, static module loading, early syslog, plymouth, shutdown, kexec, SELinux,
Lennart Poettering Beyond Init: systemd cryptsetup, . . .
Status: almost made Fedora 14. Substantial coverage of basic OS boot-up tasks, including fsck, mount, quota, hwclock, readahead, tmpfiles, random-seed, console, static module loading, early syslog, plymouth, shutdown, kexec, SELinux, initrd+initrd-less boots,
Lennart Poettering Beyond Init: systemd Status: almost made Fedora 14. Substantial coverage of basic OS boot-up tasks, including fsck, mount, quota, hwclock, readahead, tmpfiles, random-seed, console, static module loading, early syslog, plymouth, shutdown, kexec, SELinux, initrd+initrd-less boots, cryptsetup, . . .
Lennart Poettering Beyond Init: systemd Lots of room for improvement.
Status: 7s on openSUSE. Less than 14s on fully-featured Fedora. (SSD)
Lennart Poettering Beyond Init: systemd Status: 7s on openSUSE. Less than 14s on fully-featured Fedora. (SSD) Lots of room for improvement.
Lennart Poettering Beyond Init: systemd Adoption: Fedora, openSUSE, Mandriva, Debian, Gentoo, ArchLinux, . . .
Lennart Poettering Beyond Init: systemd read-only root, session manager, automatic initrd fallback.
Next: Fedora 15.
Lennart Poettering Beyond Init: systemd session manager, automatic initrd fallback.
Next: Fedora 15. read-only root,
Lennart Poettering Beyond Init: systemd automatic initrd fallback.
Next: Fedora 15. read-only root, session manager,
Lennart Poettering Beyond Init: systemd Next: Fedora 15. read-only root, session manager, automatic initrd fallback.
Lennart Poettering Beyond Init: systemd Say No! to Copyright Assignment.
Lennart Poettering Beyond Init: systemd Any questions?
That’s all, folks.
Lennart Poettering Beyond Init: systemd That’s all, folks. Any questions?
Lennart Poettering Beyond Init: systemd systemd http://www.freedesktop.org/wiki/Software/systemd http://0pointer.de/blog/projects/systemd git://anongit.freedesktop.org/systemd #systemd on irc.freenode.org
Lennart Poettering Beyond Init: systemd