After nine months of work, systemd 258 has arrived, The new version of the system manager that marks an important step in leaving behind historical components and moving towards a more modern ecosystem.
This release notable for the removal of support for cgroups v1 and with the old System V management mechanisms, as well as introducing new utilities, innovative concepts, and security and performance improvements that reinforce its central role in Linux.
Key new features in Systemd 258
One of the most relevant novelties is the Introducing the systemd-factory-reset utility, designed to initiate or cancel a factory reset at next boot, with the ability to perform an immediate reboot using the factory-reset-now.target parameter. The systemd.factory_reset kernel parameter is also added to trigger this process during boot.
Another new feature that Systemd 258 presents is that start areas, that allows you to create subdirectories within the user's home directory to maintain separate environments, such as testing or development. These areas can be selected when logging in using the syntax user%area or using the run0 utility. For now, this functionality is limited to systemd-homed and is not available for full graphical sessions.
Remote boot and new utilities
Systemd 258 extends its boot capabilities to allow booting directly from a disk image obtained via HTTP, thanks to the blockdev flag applied to the systemd.pull and rd.systemd.pull parameters. This way, the image connects to a loopback device, enabling more flexible remote booting.
Among the new tools is systemd-pty-forward, which allows you to create pseudo-terminals to run processes and redirect its output to the original terminal, expanding administration and debugging possibilities in complex environments.
Removing legacy components
This release also marks the final farewell to obsolete technologies. Support for is removed cgroup v1, consolidating the exclusive use of cgroups v2 as the resource management standard in Linux.
To themselvesand the System V style components are removed, including initctl, runlevel, and telinit, along with the /dev/initctl device, runlevel files, and the init command. Although System V service scripts still work, they are planned for removal in a future release.
As for cryptographic libraries, OpenSSL is set as the only supported backend in systemd-resolved and systemd-importd, leaving aside GnuTLS and libgcrypt.
Improvements in services and configurations
Systemd 258 aAdd the ConditionKernelModuleLoaded condition, that allows vCheck if a kernel module is loaded before starting a unitThe ConditionKernelVersion precondition is replaced by the more general ConditionVersion, which can also check systemd and glibc versions.
In the network field, systemd-udevd adds new device propertiess, improved debugging support, and greater integration with Android interfaces such as ADB and Fastboot. Systemd-networkd, on the other hand, adds advanced configuration options in IPv4, IPv6 and MPLS networks, plus BOOTP support in the DHCPv4 client.
Systemd-logind adds new session classes for non-interactive and quick-start scenarios, while systemd-resolved adds support for delegated zones, parallel A/AAAA queries, and the ability to block DNS record types.
The bootloader systemd-boot evolves with support for the uki and uki-url specifications, which opens the door to remote booting of UKI images via HTTP. The reboot-on-error option has also been added to handle boot failures.
What's new in containers and image import?
Systemd-nspawn now allows unprivileged execution of container images in regular directories, while systemd-importd adds support for compressed images in zstd format.
Additionally, the systemd.break and rd.systemd.break kernel parameters are introduced, which allow the boot to be interrupted at key points for interactive debugging.
Looking to the future of systemd
The development team already anticipates significant changes for the next release, such as the permanent removal of the /run/lock/ directory and the abandonment of iptables in favor of nftables. Minimum requirements are also expected to increase to Linux kernel 5.10, glibc 2.34, OpenSSL 3.0.0, and Python 3.9.
The minimum Linux kernel version required to run systemd 258 is now 5.4, although 5.7 is recommended. Additionally, the permissions policy on tty/pts devices has been changed from 0620 to 0600 to prevent users of the same group from writing to unrelated terminals, strengthening security by default.