Systemd from Wikipedia, the Free Encyclopedia for Other Uses, See System D (Disambiguation)
Total Page:16
File Type:pdf, Size:1020Kb
systemd From Wikipedia, the free encyclopedia For other uses, see System D (disambiguation). systemd Startup messages on Fedora 17, which uses systemd Original author(s) Lennart Poettering, Kay Sievers, Harald Hoyer, Daniel Mack, Tom Gundersen and David Herrmann Developer(s) Lennart Poettering, Kay Sievers, Harald Hoyer, Daniel Mack, Tom Gundersen, David Herrmann, and others[1] Initial release 30 March 2010 Stable release 219 (February 16, 2015) [±] (https://en.wikipedia.org/w/index.php? title=Template:Latest_stable_software_release/systemd&action=edit)[2] Written in C[3] Operating system Linux Type System software License GNU LGPL 2.1+[4] Website freedesktop.org/.../systemd/ (http://freedesktop.org/wiki/Software/systemd/) systemd is a suite of system management daemons, libraries, and utilities designed as a central management and configuration platform for the Linux computer operating system. Described by its authors as a "basic building block" for an operating system,[5] systemd can be used as a Linux init system (the process called by the Linux kernel to initialize the user space during the Linux startup process and manage all processes afterwards) replacing the UNIX System V and Berkeley Software Distribution (BSD) style daemon. The name systemd adheres to the Unix convention of making daemons easier to distinguish by having the letter d as the last letter of the filename.[6] systemd is designed for Linux and programmed exclusively for the Linux API. It is published as free and open-source software under the terms of the GNU Lesser General Public License (LGPL) version 2.1 or later.[4] One of systemd's main goals is to unify basic Linux configurations and service behaviors across all distributions.[7] The design of systemd has generated significant controversy within the free software community. Critics argue that systemd is overcomplex and suffers continued feature creep, and that its architecture violates the design principles of Unix-like operating systems. There is also concern that it forms a system of interlocking dependencies, thereby giving distribution maintainers little choice but to adopt systemd as more pieces of user-space software come to depend on its components.[8] As of 2015, most major Linux distributions have adopted systemd as their default init system. Contents 1 Design 1.1 Unit files 1.2 Core components and libraries 1.3 Ancillary components 1.4 Integration with other software 2 Graphical frontends 3 Forks and alternative implementations 4 Adoption and reception 4.1 History and controversy 5 See also 6 Notes 7 References 8 External links Design Lennart Poettering and Kay Sievers, software engineers who initially developed systemd,[1] sought to surpass the efficiency of the init daemon in several ways. They wanted to improve the software framework for expressing dependencies, to allow more processing to be done The architecture of systemd as it is used by Tizen. Several concurrently or in components, including telephony, bootmode, dlog and tizen parallel during service, are from Tizen and are not components of system booting, and systemd.[9] to reduce the computational overhead of the shell. Poettering describes systemd development as "never finished, never complete, but tracking progress of technology". In May 2014, Poettering further defined systemd as aiming to unify "pointless differences between distributions", by providing the Unified-hierarchy cgroups will be accessible exclusively by following three systemd through systemd-nspawn general functions:[10] A system and service manager (manages both the system, as by applying various configurations, and its services) A software platform (serves as a basis for developing other software) The glue between applications and the kernel (provides various interfaces that expose functionalities provided by the kernel) systemd is not just the name of the init daemon but also refers to the entire software bundle around it, which, in addition to the systemd init daemon, includes the daemons journald, logind and networkd, and many other low- level components. In January 2013, Poettering described systemd not as one program, but rather a large software suite that includes 69 individual binaries.[11] As an integrated software suite, systemd replaces the startup sequences and runlevels controlled by the traditional init daemon, along with the shell scripts executed under its control. systemd also integrates many other services that are common on Linux systems by handling user logins, the system console, device hotplugging (see udev), scheduled execution (replacing cron) logging, hostnames and locales. Like the init daemon, systemd is a daemon that manages other daemons, which, including systemd itself, are background processes. systemd is the first daemon to start during booting and the last daemon to terminate during shutdown. The systemd daemon serves as the root of the user space's process tree; the first process (pid 1) has a special role on Unix systems, as it receives a SIGCHLD signal when a daemon process (which has detached from its parent) terminates. Therefore, the first process is particularly well suited for the purpose of monitoring daemons; systemd attempts to improve in that particular area over the traditional approach, which would usually not restart daemons automatically but only launch them once without further monitoring. systemd executes elements of its startup sequence in parallel, which is faster than the traditional startup sequence's sequential approach.[12] For inter- process communication (IPC), systemd makes Unix domain sockets and D-Bus available to the running daemons. The state of systemd itself can also be preserved in a snapshot for future recall. Unit files systemd records initialization instructions for each daemon in a configuration file (referred to as a "unit file") that uses a declarative language, replacing the traditionally used per-daemon startup shell scripts. Unit file types include service, socket, device, mount, automount, swap, target, path, timer (which can be used as a cron-like job scheduler[13]), snapshot, slice and scope.[14] Core components and libraries Following its integrated approach, systemd also provides replacements for various daemons and utilities, including the startup shell scripts, pm-utils, inetd, acpid, syslog, watchdog, cron and atd. systemd's core components include the following: systemd is a system and service manager for Linux operating systems. systemctl may be used to introspect and control the state of the systemd system and service manager. systemd-analyze may be used to determine system boot-up performance statistics and retrieve other state and tracing information from the system and service manager. systemd tracks processes using the Linux kernel's cgroups subsystem instead of by using process identifiers (PIDs); thus, daemons cannot "escape" systemd, not even by double-forking. systemd not only uses cgroups, but also augments them with systemd-nspawn and machinectl, two utility programs that facilitate the creation and management of software containers.[15] Since version 205, systemd also offers ControlGroupInterface, which is an API to the Linux kernel cgroups.[16] The Linux kernel cgroups are adapted to support kernfs,[17] and are being modified to support a unified hierarchy.[18] Ancillary components Beside its primary purpose of providing a replacement Linux init system, systemd suite provides additional functionality, including its following components: consoled systemd-consoled provides a user console daemon, intending to replace the Linux kernel's virtual terminal support with a more capable userspace component.[19] Its preview version was released in October 2014, as part of systemd version 217.[20] journald systemd-journald is a daemon responsible for event logging, with append-only binary files serving as its logfiles. The system administrator may choose whether to log system events with systemd-journald, syslog-ng or rsyslog. logind systemd-logind is a daemon that manages user logins and seats in various ways. It is an integrated login manager that offers multiseat improvements[21] and replaces ConsoleKit, which is no longer maintained.[22] For X11 display managers the switch to logind requires a minimal amount of porting.[23] It was integrated in systemd version 30. networkd networkd is a daemon to handle the configuration of the network interfaces; in version 209, when it was first integrated, support was limited to statically assigned addresses and basic support for bridging configuration.[24][25][26][27][28] In July 2014, systemd version 215 was released, adding new features such as a DHCP server for IPv4 hosts, and VXLAN support.[29][30] timedated systemd-timedated is a daemon that can be used to control time-related settings, such as the system time, system time zone, or selection between UTC and local time zone system clock. It is accessible through D-Bus.[31] It was integrated in systemd version 30. udevd udev is a device manager for the Linux kernel, which handles the /dev directory and all user space actions when adding/removing devices, including firmware loading. In April 2012, the source tree for udev was merged into the systemd source tree.[32][33] libudev It is the standard library for utilizing udev, which allows third-party applications to query udev resources. Integration with other software See also: Controversy over GNOME 3 In the interest of enhancing the interoperability between systemd and the GNOME desktop environment, systemd coauthor Lennart