Beyond Init: systemd 
LinuxKongress 2010 
Lennart Poettering 
lennart@poettering.net 
September 2010 
Lennart Poettering Beyond Init: systemd
Who Am I? 
Software Engineer at Red Hat, Inc. 
Developer of PulseAudio, Avahi and a few other Free Software 
projects 
http://0pointer.de/lennart/ 
lennart@poettering.net 
IRC: mezcalero 
Lennart Poettering Beyond Init: systemd
systemd is a system and session manager for Linux, 
Lennart Poettering Beyond Init: systemd
systemd is a system and session manager for Linux, compatible 
with SysV and LSB init scripts. 
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, 
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, 
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, oers on-demand starting of daemons, 
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, oers on-demand starting of daemons, keeps 
track of processes using Linux cgroups, 
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, oers 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
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, oers 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
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, oers 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, oers 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
Socket-Based Activation 
Lennart Poettering Beyond Init: systemd
Socket-Based Activation 
The kernel orders and buers requests for us! 
Lennart Poettering Beyond Init: systemd
Socket-Based Activation 
The kernel orders and buers requests for us! 
Implicit dependencies! 
Lennart Poettering Beyond Init: systemd
Socket-Based Activation 
The kernel orders and buers 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
Parallelizing File System Jobs 
Lennart Poettering Beyond Init: systemd
Parallelizing File System Jobs 
autofs! 
Lennart Poettering Beyond Init: systemd
Shell is evil 
Lennart Poettering Beyond Init: systemd
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
The best babysitter. 
Lennart Poettering Beyond Init: systemd
The best babysitter. 
Control Groups! 
Lennart Poettering Beyond Init: systemd
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 anity, timer slack, stdio to 
syslog/tty/null/kmsg, uid, gid, supplementary groups,
le system 
namespacing (r/o
le 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
Don't reinvent the wheel: 
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. 
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
les. 
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 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
systemd in the distributions 
Lennart Poettering Beyond Init: systemd
Future: managing sessions 
Lennart Poettering Beyond Init: systemd
Say No! to Copyright Assignment. 
Lennart Poettering Beyond Init: systemd

Systemd poettering

  • 1.
    Beyond Init: systemd LinuxKongress 2010 Lennart Poettering lennart@poettering.net September 2010 Lennart Poettering Beyond Init: systemd
  • 2.
    Who Am I? Software Engineer at Red Hat, Inc. Developer of PulseAudio, Avahi and a few other Free Software projects http://0pointer.de/lennart/ lennart@poettering.net IRC: mezcalero Lennart Poettering Beyond Init: systemd
  • 3.
    systemd is asystem and session manager for Linux, Lennart Poettering Beyond Init: systemd
  • 4.
    systemd is asystem and session manager for Linux, compatible with SysV and LSB init scripts. Lennart Poettering Beyond Init: systemd
  • 5.
    systemd is asystem and session manager for Linux, compatible with SysV and LSB init scripts. systemd provides aggressive parallelization capabilities, Lennart Poettering Beyond Init: systemd
  • 6.
    systemd is asystem 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
  • 7.
    systemd is asystem 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, oers on-demand starting of daemons, Lennart Poettering Beyond Init: systemd
  • 8.
    systemd is asystem 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, oers on-demand starting of daemons, keeps track of processes using Linux cgroups, Lennart Poettering Beyond Init: systemd
  • 9.
    systemd is asystem 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, oers 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
  • 10.
    systemd is asystem 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, oers 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
  • 11.
    systemd is asystem 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, oers 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
  • 12.
    systemd is asystem 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, oers 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
  • 13.
    init(8) Lennart PoetteringBeyond Init: systemd
  • 14.
  • 15.
  • 16.
    Socket-Based Activation LennartPoettering Beyond Init: systemd
  • 17.
    Socket-Based Activation Thekernel orders and buers requests for us! Lennart Poettering Beyond Init: systemd
  • 18.
    Socket-Based Activation Thekernel orders and buers requests for us! Implicit dependencies! Lennart Poettering Beyond Init: systemd
  • 19.
    Socket-Based Activation Thekernel orders and buers requests for us! Implicit dependencies! Patching daemons Lennart Poettering Beyond Init: systemd
  • 20.
    Bus-Based Activation LennartPoettering Beyond Init: systemd
  • 21.
    Starting Less: On-DemandLoading Lennart Poettering Beyond Init: systemd
  • 22.
    Parallelizing File SystemJobs Lennart Poettering Beyond Init: systemd
  • 23.
    Parallelizing File SystemJobs autofs! Lennart Poettering Beyond Init: systemd
  • 24.
    Shell is evil Lennart Poettering Beyond Init: systemd
  • 25.
    Shell is evil Move to systemd, daemons, kernel, udev, . . . Lennart Poettering Beyond Init: systemd
  • 26.
    Shell is evil Move to systemd, daemons, kernel, udev, . . . Provide proper debugging facilities Lennart Poettering Beyond Init: systemd
  • 27.
    The best babysitter. Lennart Poettering Beyond Init: systemd
  • 28.
    The best babysitter. Control Groups! Lennart Poettering Beyond Init: systemd
  • 29.
    The best babysitterII Lennart Poettering Beyond Init: systemd
  • 30.
    The best babysitterII Environment, resource limits, working directory, chroot(), umask, OOM adjustment, nice level, IO priority and class, CPU scheduler priority and policy/reset-on-fork, CPU anity, timer slack, stdio to syslog/tty/null/kmsg, uid, gid, supplementary groups,
  • 31.
  • 32.
    le systems, inaccessiblesystems, mount propagation, private /tmp), capabilities (inherited set, bounding set, secure bits), . . . Lennart Poettering Beyond Init: systemd
  • 33.
    Unit types: service,socket, device, mount, automount, target, snapshot, timer, swap, path Lennart Poettering Beyond Init: systemd
  • 34.
    Don't reinvent thewheel: Lennart Poettering Beyond Init: systemd
  • 35.
    Don't reinvent thewheel: 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
  • 36.
    Don't reinvent thewheel: Read SysV/LSB init script headers, read /etc/fstab, support traditional inetd modes, support /dev/initctl, utmp, wtmp, support double-fork()ing daemons. .desktop
  • 37.
    les. Lennart PoetteringBeyond Init: systemd
  • 38.
    Snapshots Lennart PoetteringBeyond Init: systemd
  • 39.
    Transaction System LennartPoettering Beyond Init: systemd
  • 40.
    D-Bus! Lennart PoetteringBeyond Init: systemd
  • 41.
    systemadm Lennart PoetteringBeyond Init: systemd
  • 42.
    systemd as basicOS building block Lennart Poettering Beyond Init: systemd
  • 43.
    systemd as basicOS building block systemd for cross-distribution standardization Lennart Poettering Beyond Init: systemd
  • 44.
    systemd in thedistributions Lennart Poettering Beyond Init: systemd
  • 45.
    Future: managing sessions Lennart Poettering Beyond Init: systemd
  • 46.
    Say No! toCopyright Assignment. Lennart Poettering Beyond Init: systemd
  • 47.
    That's all, folks. Lennart Poettering Beyond Init: systemd
  • 48.
    That's all, folks. Any questions? Lennart Poettering Beyond Init: systemd
  • 49.
    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