systemd

From Wikipedia, the free encyclopedia
Jump to: navigation, search
Systemd
Original author(s) Lennart Poettering, Kay Sievers
Developer(s) Lennart Poettering, Kay Sievers and others[1]
Initial release 30 March 2010 (2010-03-30)
Stable release 212[2] / 25 March 2014; 30 days ago (2014-03-25)
Written in C[3]
Operating system Linux
Type Init daemon
License first GPLv2+, currently GNU LGPL 2.1+ [4]
Website freedesktop.org/…/systemd/

systemd is a system management daemon designed exclusively for the Linux kernel API. For systems using it, it is the first process to execute in user space during the Linux startup process. Therefore, it is also the parent process of all child processes in user space. The name systemd adheres to the Unix convention of making daemons easier to distinguish by appending the letter d to the filename.[5]

Overview[edit]

Systemd was developed for Linux to replace the init system inherited from UNIX System V and Berkeley Software Distribution (BSD) operating systems. Like init, systemd is a daemon that manages other daemons. All daemons, including systemd, are background processes. Systemd is the first daemon to start (during booting) and the last daemon to terminate (during shutdown).

Lennart Poettering and Kay Sievers, the 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 concurrently or in parallel during system booting; and to reduce the computational overhead of the shell.

Systemd is published as free and open-source software under the terms of the GNU Lesser General Public License version 2.1 or later.[4]

Software architecture[edit]

systemd components
Unified-hierarchy cgroups will be accessible exclusively by systemd

Systemd's initialization instructions for each daemon are recorded in a declarative configuration file rather than a shell script. For inter-process communication, systemd makes Unix domain sockets and D-Bus available to the running daemons. Because systemd tracks processes using Linux cgroups instead of process identifiers (PIDs), daemons cannot "escape" systemd; not even by double-forking. Systemd is also capable of aggressive parallelization.

Among systemd's auxiliary features are a cron-like job scheduler called systemd Calendar Timers, and an event logging subsystem called journal.[6] The system administrator may choose whether to log system events with systemd or syslog. Systemd's logfile is a binary file. The state of systemd itself can be preserved in a snapshot for future recall.

In April 2012, the source tree for udev (a device manager for the Linux kernel, which handles the /dev directory and all user space actions when adding/removing devices, including firmware loading) was merged into systemd.[7]

Systemd provides a replacement for sysvinit, pm-utils, inetd, acpid, syslog, watchdog, cron and atd. Also, it has an integrated login manager called systemd-logind, which offers multiseat improvements and replaces ConsoleKit, which is no longer maintained.[8][9]

All available userspace utility programs for systemd and their man pages are currently documented at the project's official page.[10]

In version 209, networkd was integrated, which provides abilities for systemd to perform various network configurations; as of this version, support is limited to statically assigned addresses and basic support for bridging configuration.[11][12][13][14][15]

Since version 205, systemd offers ControlGroupInterface, 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]

GNOME integration[edit]

In the interest of enhancing the interoperability between systemd and GNOME, systemd coauthor Lennart Poettering asked the GNOME Project to consider making systemd an external dependency of GNOME 3.2, so those two projects become better integrated, with GNOME using operations offered by systemd for various tasks.[19]

In November 2012, the GNOME Project concluded that basic GNOME functionality should not rely on systemd.[20] However, in contradiction of this statement, GNOME 3.8 introduced a de facto dependency on systemd by introducing session management behaviors which depend on how systemd operates. While the developers of Gentoo attempted to adapt these changes in OpenRC, the implementation contained too many bugs, and the distribution retaliated by marking systemd as a dependency of GNOME.[21][22]

Controversy[edit]

Adoption of systemd has been controversial at times. Articles run in Linux Advocates have characterized systemd as "the new PulseAudio," and as "an accident waiting to happen."[23][24] One Fuduntu contributor is quoted as stating that systemd has limited software choice:[23]

Systemd, whether by design, or circumstance, is largely becoming non-optional. Inclusion of core technologies such as dbus and udev are reducing choice for linux users and developers, rather than expanding them—which is the very antithesis of the idea of Free/Open Source software.

In a 2012 interview, Slackware's founder Patrick Volkerding also expressed reservations about the systemd architecture:[25]

Concerning systemd, I do like the idea of a faster boot time (obviously), but I also like controlling the startup of the system with shell scripts that are readable, and I'm guessing that's what most Slackware users prefer too. I don't spend all day rebooting my machine, and having looked at systemd config files it seems to me a very foreign way of controlling a system to me, and attempting to control services, sockets, devices, mounts, etc., all within one daemon flies in the face of the UNIX concept of doing one thing and doing it well.

Eric S. Raymond declined to comment on systemd at first, but stated, "I'm aware there’s a controversy."[26] Then in a March 2014 interview on Slashdot, he expressed some concerns about the goals and architecture of systemd:[27]

I want to study it carefully because I'm a bit troubled by what I hear about the feature set and the goals. From that, I fear it may be one of those projects that is teetering right at the edge of manageable complexity – OK as long as an architect with a strong sense of design discipline is running things, but very prone to mission creep and bloat and likely to turn into a nasty hairball over the longer term.

Adoption[edit]

In May 2011, Fedora became the first major Linux distribution to enable systemd by default.[28] As of October 2013, Slackware does not support or use systemd, but Slackware's lead Patrick Volkerding has not ruled out the possibility for switching to it.[29]

Linux distributions that include systemd
Linux distribution Date added to software repository[note 1] Enabled by default?
Ångström N/A Yes
Arch Linux October 2012[30] Yes
CoreOS July 2013 Yes[31]
Debian GNU/Linux[32] April 2012 Chosen for next release[note 2]
Fedora May 2011 (v15)[35] Yes
Frugalware Linux August 2011 (v1.5)[36] Yes
Gentoo Linux 2011[37][38][39] No
Mageia May 2012 (v2.0)[40] Yes
openSUSE March 2011 (v11.4)[41] Yes
Red Hat Enterprise Linux Pending for RHEL 7 Pending for RHEL 7[42][43]
Sabayon Linux August 2013 (v13.08)[44] Yes
Ubuntu[note 3] April 2013 (v13.04)[46] Planned[34]
  1. ^ Dates are for the general availability release.
  2. ^ The Debian Technical Committee voted to make systemd the default system management daemon for Linux in the "jessie" release.[33] As a result, Ubuntu founder Mark Shuttleworth announced that Ubuntu would migrate towards it from its self-developed competitor Upstart for a future release, in order to maintain consistency with the distribution that Ubuntu is based upon.[34]
  3. ^ Ubuntu's development documentation offers instructions on how to use systemd as an experimental option.[45]

See also[edit]

References[edit]

  1. ^ a b "README", systemd (freedesktop.org), retrieved 2012-09-09 
  2. ^ "[systemd-devel] [ANNOUNCE] systemd 212". Lists.freedesktop.org. 2014-03-25. Retrieved 2014-03-26. 
  3. ^ "systemd", Analysis Summary (Ohloh), retrieved 2011-06-16 
  4. ^ a b Lennart Poettering (2012-04-21), systemd Status Update, retrieved 2012-04-28 
  5. ^ Lennart Poettering, Kay Sievers, Thorsten Leemhuis (2012-05-08), Control Centre: The systemd Linux init system, The H, archived from the original on 14 October 2012, retrieved 2012-09-09 
  6. ^ "[Phoronix] Systemd Dreams Up New Feature, Makes It Like Cron". Phoronix.com. 2013-01-28. Retrieved 2014-01-22. 
  7. ^ Sievers, Kay, "Commit importing udev into systemd", systemd (freedesktop.org), retrieved 25 May 2012 
  8. ^ ConsoleKit official website
  9. ^ "systemd-logind.service". Freedesktop.org. Retrieved 2014-02-17. 
  10. ^ "systemd.index", freedesktop.org 
  11. ^ "Networking in +systemd - 1. Background". 2013-11-27. Retrieved 2014-02-22. 
  12. ^ "Networking in +systemd - 2. libsystemd-rtnl". 2013-11-27. Retrieved 2014-02-22. 
  13. ^ "Networking in +systemd - 3. udev". 2013-11-27. Retrieved 2014-02-22. 
  14. ^ "Networking in +systemd - 4. networkd". 2013-11-27. Retrieved 2014-02-22. 
  15. ^ "Networking in +systemd - 5. the immediate future". 2013-11-27. Retrieved 2014-02-22. 
  16. ^ http://www.freedesktop.org/wiki/Software/systemd/ControlGroupInterface/
  17. ^ "cgroup: convert to kernfs". 2014-01-28. 
  18. ^ "cgroup: prepare for the default unified hierarchy". 2014-03-13. 
  19. ^ Lennart Poettering (2011-05-18), "systemd as an external dependency", desktop-devel mailing list (GNOME), retrieved 2011-05-26 
  20. ^ Frederic Peters (2011-11-04), "20121104 meeting minutes", GNOME release-team mailing list, retrieved 2013-01-14 
  21. ^ Vitters, Olav. "GNOME and logind+systemd thoughts". Retrieved 24 April 2014. 
  22. ^ "GNOME 3.10 arrives with experimental Wayland support". ZDNet. Retrieved 24 April 2014. 
  23. ^ a b Dietrich Schmitz (2013-04-13). "Systemd: The New PulseAudio". Retrieved 2014-03-19. 
  24. ^ Dietrich Schmitz (2013-05-01). "Systemd: An Accident Waiting to Happen One". Retrieved 2014-03-19. 
  25. ^ "Interview with Patrick Volkerding of Slackware". Linuxquestions.org. 2012-06-07. Retrieved 2014-03-19. 
  26. ^ Eric S. Raymond (2014-02-15). "Namedropping "ESR"". Retrieved 2014-05-19. 
  27. ^ "Interviews: ESR Answers Your Questions". Slashdot.org. 2014-03-10. Retrieved 2014-03-19. 
  28. ^ "F15 one page release notes", fedoraproject.org, 2001-05-24 
  29. ^ "I'm back after a break from Slackware: sharing thoughts and seeing whats new!". Linuxquestions.org. Retrieved 2014-03-14. 
  30. ^ systemd is now the default on new installations, Arch Linux News, 2012-10-17, retrieved 2014-01-05 
  31. ^ CoreOS's init system, CoreOS Inc, retrieved 2014-02-14 
  32. ^ systemd, Debian Wiki, retrieved 2011-07-21 
  33. ^ Bdale Garbee (2014-02-11), Bug#727708: call for votes on default Linux init system for jessie 
  34. ^ a b Mark Shuttleworth (2014-02-14). "Blog Archive » Losing graciously". markshuttleworth.com. Retrieved 2014-02-14. 
  35. ^ D. J. Walker-Morgan (2011-05-24), Fedora 15's Lovelock released, The H, archived from the original on 2 August 2011, retrieved 2012-08-22 
  36. ^ Phayz (2012-01-17), Review of 2011, Frugalware Project, retrieved 2012-08-22 
  37. ^ "Comment #210", systemd – bug #318365 (Gentoo's Bugzilla), retrieved 2011-07-05 
  38. ^ systemd, Gentoo's Documentation, retrieved 2011-07-05 
  39. ^ systemd, Gentoo wiki, retrieved 2012-08-26 
  40. ^ Fabian Scherschel (2012-05-23), Mageia 2 arrives with GNOME 3 and systemd, The H, archived from the original on 8 December 2013, retrieved 2012-08-22 
  41. ^ Directory view of the 11.4 i586 installation showing presence of the systemd v18 installables, 2011-02-23, retrieved 2013-09-24 
  42. ^ Lennart Poettering (2013-06-19). "Red Hat Summit talk about systemd in RHEL 7 is now available online". Retrieved 2013-12-31. 
  43. ^ Tim Burke (2012-06-27), "Red Hat Enterprise Linux Roadmap Highlights" (PDF), presentation 
  44. ^ lxnay (2013-08-12). "Press Release: Sabayon 13.08". Sabayon. Retrieved 2014-01-22. 
  45. ^ systemd - An alternative boot manager, Ubuntu Wiki, retrieved 2013-06-24 
  46. ^ "Package Search Results - systemd". ubuntu.com. Retrieved 2014-02-17. 

External links[edit]