Beyond Init: .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 , 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, , . . . 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, , 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