← New search

Operating Systems

systemd

systemd is a suite of system and service management components for Linux operating systems, developed by Lennart Poettering and Kay Sievers. It provides a system and service manager that acts as PID 1, replacing the traditional SysV init system. systemd introduces parallelization, on-demand activation, and dependency-based service control, and has become the default init system for most major Linux distributions. Its design has sparked significant debate within the Linux community, with critics arguing it violates Unix philosophy and centralizes too much functionality.

2010
First released
Year
C
Primary language
Language
MIT
License
License
~70%
Adoption among Linux distributions
Adoption
1

Core architecture and features

systemd operates as the first process (PID 1) and manages system startup, services, sockets, and other resources. It uses unit files to define services, sockets, devices, and mount points, and introduces concepts like cgroups for process tracking and resource control. Key features include socket activation, which starts services on demand, and journald, a centralized logging system that replaces traditional syslog. systemd also provides systemctl, a command-line tool for controlling services, and systemd-analyze for performance analysis. Its dependency-based startup allows parallel booting, significantly reducing boot times compared to SysV init.

2

Adoption and controversy

systemd was adopted by major distributions including Fedora, Debian, Ubuntu, and Arch Linux, becoming the de facto standard. However, its introduction sparked intense controversy, with critics like Theo de Raadt and Linus Torvalds expressing concerns about its complexity and scope. The debate centers on systemd's violation of the Unix philosophy of doing one thing well, its use of binary logs, and its integration of many unrelated functions such as hostname management, time synchronization, and DNS resolution. Some forks and alternatives, such as Devuan, have emerged to preserve SysV init.

3

Lesser-known aspects

Beyond its core role, systemd includes lesser-known components like systemd-boot, a UEFI boot manager, and systemd-nspawn, a lightweight container tool. It also provides systemd-tmpfiles for managing temporary files and systemd-udevd for device management. systemd's journal supports structured logging with metadata, enabling powerful querying. A notable edge case is its handling of shutdown: systemd kills remaining processes in a specific order, which can cause issues with some applications. Additionally, systemd has a feature called 'systemd-analyze blame' that shows which services take longest to start, aiding optimization.

4

Impact and future

systemd has influenced the design of other init systems and service managers, such as OpenRC and runit, which incorporate some of its ideas. Its development continues under the systemd project, with contributions from Red Hat and other companies. Future directions include improved integration with container technologies and enhanced security features like systemd-homed for portable home directories. Despite ongoing criticism, systemd remains the standard for most Linux distributions, and its ecosystem of tools has become integral to modern Linux administration.

Glossary

PID 1
The first process started by the kernel, which is responsible for initializing the system and managing other processes.
cgroups
Linux kernel feature that limits, accounts for, and isolates resource usage of process groups.
SysV init
The traditional Unix System V init system, which uses runlevels and shell scripts to start services.
socket activation
A mechanism where services are started on demand when a connection is made to a listening socket.

systemd is a registered trademark of Red Hat, Inc.