systemd startup on Fedora 17
|Original author(s)||Lennart Poettering|
|Developer(s)||Red Hat (Lennart Poettering, Kay Sievers, Harald Hoyer, Daniel Mack, Tom Gundersen, David Herrmann) 345 different authors at 2018 and 1,317 different authors in total|
|Initial release||30 March 2010|
|Stable release||245 (March 6, 2020)|
Its main aim is to unify service configuration and behavior across Linux distributions; systemd's primary component is a "system and service manager"—an init system used to bootstrap user space and manage user processes. It also provides replacements for various daemons and utilities, including device management, login management, network connection management, and event logging. The name systemd adheres to the Unix convention of naming daemons by appending the letter d. It also plays on the term "System D", which refers to a person's ability to adapt quickly and improvise to solve problems.
Since 2015, the majority of Linux distributions have adopted systemd, having replaced other systems such as the UNIX System V and BSD init systems. systemd has faced mixed reception from Linux users, with arguments that systemd suffers from mission creep and bloat, as well as criticism over software (such as the GNOME desktop) adding dependencies on systemd—frustrating compatibility with other Unix-like operating systems.
Lennart Poettering and Kay Sievers, the software engineers working for Red Hat who initially developed systemd, started the project to develop systemd in 2010. They 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.
In May 2011 Fedora became the first major Linux distribution to enable systemd by default. Between October 2013 and February 2014, a long debate among the Debian Technical Committee occurred on the Debian mailing list, discussing which init system to use as the default in Debian 8 "jessie", and culminating in a decision in favor of systemd. The debate was widely publicized and in the wake of the decision the debate continues on the Debian mailing list. In February 2014, after Debian's decision was made, Mark Shuttleworth announced on his blog that Ubuntu would follow in implementing systemd.
In November 2014 Debian Developer Joey Hess, Debian Technical Committee members Russ Allbery and Ian Jackson, and systemd package-maintainer Tollef Fog Heen resigned from their positions. All four justified their decision on the public Debian mailing list and in personal blogs with their exposure to extraordinary stress-levels related to ongoing disputes on systemd integration within the Debian and open-source community that rendered regular maintenance virtually impossible.
In August 2015 systemd started providing a login shell, callable via machinectl shell.
In September 2016, a security bug was discovered that allowed any unprivileged user to perform a denial-of-service attack against systemd. Rich Felker, developer of musl, stated that this bug reveals a major "system development design flaw". In 2017 another security bug was discovered in systemd, CVE-2017-9445, which "allows disruption of service" by a "malicious DNS server".
Poettering describes systemd development as "never finished, never complete, but tracking progress of technology". In May 2014, Poettering further described systemd as unifying "pointless differences between distributions", by providing the following three general functions:
- A system and service manager (manages both the system, 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 includes features like on-demand starting of daemons, snapshot support, process tracking and Inhibitor Locks. It 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. 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 replaces the parent of a process when the original parent terminates. Therefore, the first process is particularly well suited for the purpose of monitoring daemons.
systemd executes elements of its startup sequence in parallel, which is theoretically faster than the traditional startup sequence approach. 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.
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 is a command to introspect and control the state of the systemd system and service manager. Not to be confused with sysctl.
- 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 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 Linux containers. Since version 205, systemd also offers ControlGroupInterface, which is an API to the Linux kernel cgroups. The Linux kernel cgroups are adapted to support kernfs, and are being modified to support a unified hierarchy.
Beside its primary purpose of providing a Linux init system, the systemd suite can provide additional functionality, including the following components:
- 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. The potential for corruption of the binary format has led to much heated debate.
- systemd-logind is a daemon that manages user logins and seats in various ways. It is an integrated login manager that offers multiseat improvements and replaces ConsoleKit, which is no longer maintained. For X11 display managers the switch to logind requires a minimal amount of porting. It was integrated in systemd version 30.
- 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. In July 2014, systemd version 215 was released, adding new features such as a DHCP server for IPv4 hosts, and VXLAN support.
networkctlmay be used to review the state of the network links as seen by systemd-networkd. Configuration of new interfaces has to be added under the /lib/systemd/network/ as a new file ending with .network extension.
- systemd-tmpfiles is a utility that takes care of creation and clean-up of temporary files and directories. It is normally run once at startup and then in specified intervals.
- 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. It was integrated in systemd version 30.
- 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.
- On 29 May 2014, support for firmware loading through udev was dropped from systemd, as it was decided that the kernel should be responsible for loading firmware.
- libudev is the standard library for utilizing udev, which allows third-party applications to query udev resources.
- systemd-boot is a boot manager, formerly known as gummiboot. Kay Sievers merged it into systemd with rev 220.
Configuration of systemd
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:
- .timer (which can be used as a cron-like job scheduler)
- .slice (used to group and manage processes and resources)
Hierarchy of configuration files
man systemd.unit explains the hierarchy of the configuration files. Their paths are defined during compilation. The default:
UNIT LOAD PATH Unit files are loaded from a set of paths determined during compilation, described in the two tables below. Unit files found in directories listed earlier override files with the same name in directories lower in the list. Table 1. Load path when running in system mode (--system). ┌────────────────────────┬─────────────────────────────┐ │Path │ Description │ ├────────────────────────┼─────────────────────────────┤ │/etc/systemd/system │ Local configuration │ ├────────────────────────┼─────────────────────────────┤ │/run/systemd/system │ Runtime units │ ├────────────────────────┼─────────────────────────────┤ │/usr/lib/systemd/system │ Units of installed packages │ └────────────────────────┴─────────────────────────────┘
|Linux distribution||Date added to software repository[a]||Enabled by default?||Date released as default||Runs without?|
|Alpine Linux||N/A (not in repository)||No||N/A||Yes|
|Android||N/A (not in repository)||No||N/A||Yes|
|Arch Linux||January 2012||Yes||October 2012||No|
|AntiX Linux||N/A (not in repository)||No||N/A||Yes|
|Artix Linux||N/A (not in repository)||No||N/A||Yes|
|CentOS||April 2014||Yes||April 2014 (7.14.04)||No|
|CoreOS||July 2013||Yes||October 2013 (v94.0.0)||No|
|Debian||April 2012||Yes||April 2015 (v8)||Yes|
|Devuan||N/A (not in repository)||No||N/A||Yes|
|Fedora||November 2010 (v14)||Yes||May 2011 (v15)||No|
|Gentoo Linux[b]||July 2011||No||N/A||Yes|
|Linux Mint||June 2016 (v18.0)||Yes||N/A||Yes|
|Mageia||January 2011 (v1.0)||Yes||May 2012 (v2.0)||No |
|Manjaro Linux||Nov 2013||Yes||Nov 2013||No|
|openSUSE||March 2011 (v11.4)||Yes||September 2012 (v12.2)||No|
|Parabola GNU/Linux-libre||January 2012||Optional||N/A||Yes|
|Red Hat Enterprise Linux||June 2014 (v7.0)||Yes||June 2014 (v7.0)||No|
|Slackware||N/A (not in repository)||No||N/A||Yes|
|Source Mage GNU/Linux||June 2011||No||N/A||Yes|
|SUSE Linux Enterprise Server||October 2014 (v12)||Yes||October 2014 (v12)||No|
|Ubuntu||April 2013 (v13.04)||Yes||April 2015 (v15.04)||Upstart option removed in Yaketty (16.04) |
Missing functionality using init systems other than systemd
|Void Linux||June 2011, removed June 2015 ||No||N/A||Yes|
While many distributions boot systemd by default, some allow other init systems to be used; in this case switching the init system is possible by installing the appropriate packages. A fork of Debian called Devuan was developed to avoid systemd and has reached version 2.0 for stable usage. In December 2019, the Debian project voted in favour of retaining systemd as the default init system for the distribution, but with support for "exploring alternatives".
Integration with other software
In the interest of enhancing the interoperability between systemd and the GNOME desktop environment, systemd coauthor Lennart Poettering asked the GNOME Project to consider making systemd an external dependency of GNOME 3.2.
In November 2012, the GNOME Project concluded that basic GNOME functionality should not rely on systemd. However, GNOME 3.8 introduced a compile-time choice between the logind and ConsoleKit API, the former being provided at the time only by systemd. Ubuntu provided a separate logind binary but systemd became a de facto dependency of GNOME for most Linux distributions, in particular since ConsoleKit is no longer actively maintained and upstream recommends the use of systemd-logind instead. The developers of Gentoo Linux also attempted to adapt these changes in OpenRC, but the implementation contained too many bugs, causing the distribution to mark systemd as a dependency of GNOME.
The design of systemd has ignited controversy within the free-software community. Critics regard systemd as overly complex and suffering from continued feature creep, arguing that its architecture violates the Unix philosophy. There is also concern that it forms a system of interlocked dependencies, thereby giving distribution maintainers little choice but to adopt systemd as more user-space software comes to depend on its components.
In a 2012 interview, Slackware's lead Patrick Volkerding expressed reservations about the systemd architecture, stating his belief that its design was contrary to the Unix philosophy of interconnected utilities with narrowly defined functionalities. As of August 2018[update], Slackware does not support or use systemd, but Volkerding has not ruled out the possibility of switching to it.
In January 2013, Lennart Poettering attempted to address concerns about systemd in a blog post called The Biggest Myths.
In February 2014, musls Rich Felker opined that PID 1 is too special, should be 10 lines of code and not require reboot on upgrade. PID 1 should only start the real init script, and reap zombie processes. All the functionality of systemd then can be provided by the init script and programs run from it. PID 1 so has only a small attack surface, and user level programs can evolve diversly.
In March 2014 Eric S. Raymond opined that systemd's design goals were prone to mission creep and software bloat. In April 2014, Linus Torvalds expressed reservations about the attitude of Kay Sievers, a key systemd developer, toward users and bug reports in regard to modifications to the Linux kernel submitted by Sievers. In late April 2014 a campaign to boycott systemd was launched, with a Web site listing various reasons against its adoption.
In an August 2014 article published in InfoWorld, Paul Venezia wrote about the systemd controversy and attributed the controversy to violation of the Unix philosophy, and to "enormous egos who firmly believe they can do no wrong". The article also characterizes the architecture of systemd as similar to that of svchost.exe, a critical system component in Microsoft Windows with a broad functional scope.
In a September 2014 ZDNet interview, prominent Linux kernel developer Theodore Ts'o expressed his opinion that the dispute over systemd's centralized design philosophy, more than technical concerns, indicates a dangerous general trend toward uniformizing the Linux ecosystem, alienating and marginalizing parts of the open-source community, and leaving little room for alternative projects. He cited similarities with the attitude he found in the GNOME project toward non-standard configurations. On social media, Ts'o also later compared the attitudes of Sievers and his co-developer, Lennart Poettering, to that of GNOME's developers.
On 6 July 2015, an issue was raised on the systemd GitHub page expressing concerns about the hard coding of DNS servers in the systemd code. Poettering responded that it is not the actual DNS but rather the fallback DNS that is hard coded. He added that the fallback DNS is only used if "nobody configured anything" and to prevent connectivity issues due to catastrophic failure of configuration files or a lack of DHCP on the network. As Poettering described, the system "should do the right thing" if, as an example, the /etc directory were missing or empty. Poettering also noted that the /etc/systemd/resolved.conf file installed with systemd contains exactly the same DNS servers as the fallback DNS, thereby resulting in the same operation regardless of the /etc directory being empty or present.
Forks and alternative implementations
In 2012, the Gentoo Linux project created a fork of udev in order to avoid dependency on the systemd architecture. The resulting fork is called eudev and it makes udev functionality available without systemd. A stated goal of the project is to keep eudev independent of any Linux distribution or init system.
Elogind is the systemd project's "logind", extracted out to be a standalone daemon. It integrates with PAM to know the set of users that are logged into a system and whether they are logged in graphically, on the console, or remotely. Elogind exposes this information via the standard org.freedesktop.login1 D-Bus interface, as well as through the file system using systemd's standard /run/systemd layout. Elogind also provides "libelogind", which is a subset of the facilities offered by "libsystemd". There is a "libelogind.pc" pkg-config file as well.
In 2014, uselessd was created as a lightweight fork of systemd. The project sought to remove features and programs deemed unnecessary for an init system, as well as address other perceived faults. Project development halted in January 2015.
uselessd supported the musl and µClibc libraries, so it may have been used on embedded systems, whereas systemd only supports glibc. The uselessd project had planned further improvements on cross-platform compatibility, as well as architectural overhauls and refactoring for the Linux build in the future.
In 2014, a Google Summer of Code project named "systembsd" was started in order to provide alternative implementations of these APIs for OpenBSD. The original project developer began it in order to ease his transition from Linux to OpenBSD. Project development halted in July 2016.
The systembsd project did not provide an init replacement, but aimed to provide OpenBSD with compatible daemons for hostnamed, timedated, localed, and logind. The project did not create new systemd-like functionality, and was only meant to act as a wrapper over the native OpenBSD system. The developer aimed for systembsd to be installable as part of the ports collection, not as part of a base system, stating that, "systemd and *BSD differ fundamentally in terms of philosophy and development practices."
ConsoleKit was forked in October 2014 by Xfce developers wanting its features to still be maintained and available on operating systems other than Linux. While not ruling out the possibility of reviving the original repository in the long term, the main developer considers ConsoleKit2 a temporary necessity until systembsd matures.
Development ceased in December 2017 and the project may be defunct.
The project has been defunct since February 2015.
Notsystemd intends to implement all systemd's features working on any init system. It was forked by the Parabola GNU/Linux-libre developers to build packages with their development tools without the necessity of having systemd installed to run systemd-nspawn.
s6 is a small suite of programs for UNIX, designed to allow process supervision (a.k.a service supervision), in the line of daemontools and runit, as well as various operations on processes and daemons. It is meant to be a toolbox for low-level process and service administration, providing different sets of independent tools that can be used within or without the framework, and that can be assembled together to achieve powerful functionality with a very small amount of code.
- Linux distributions without systemd
- Operating system service management
- Service Management Facility
- GNU Shepherd Init system
- ""Lennart Poettering on systemd's Tumultuous Ascendancy"". Retrieved 7 November 2018.
- "systemd README", freedesktop.org, retrieved 9 September 2012
- "Systemd Hits A High Point For Number Of New Commits & Contributors During 2018 - Phoronix".
- Release v245, 6 March 2020, retrieved 7 March 2020
- Poettering, Lennart (21 April 2012), systemd Status Update, retrieved 28 April 2012
- "InterfaceStabilityPromise". FreeDesktop.org. Retrieved 14 February 2018.
- "systemd System and Service Manager". freedesktop.org.
Yes, it is written systemd, not system D or System D, or even SystemD. And it isn't system d either. Why? Because it's a system daemon, and under Unix/Linux those are in lower case, and get suffixed with a lower case d.
- Poettering, Lennart; Sievers, Kay; Leemhuis, Thorsten (8 May 2012), Control Centre: The systemd Linux init system, The H, archived from the original on 14 October 2012, retrieved 9 September 2012
- Saunders, Mike (11 November 2015). "Linux 101: Get the most out of systemd". Linux Voice. Retrieved 28 January 2016.
Simmonds, Chris (2015). "9: Starting up - the init Program". Mastering Embedded Linux Programming. Packt Publishing Ltd. p. 239. ISBN 9781784399023. Retrieved 20 June 2016.
systemd defines itself as a system and service manager. The project was initiated in 2010 by Lennart Poettering and Kay Sievers to create an integrated set of tools for managing a Linux system including an init daemon.
- "F15 one page release notes", fedoraproject.org, 24 May 2001
- "#727708 - tech-ctte: Decide which init system to default to in Debian". 25 October 2013. Retrieved 14 September 2014.
- "Which init system for Debian?". 5 November 2013. Retrieved 14 September 2014.
- "Debian Still Debating systemd Vs. Upstart Init System". Phoronix. 30 December 2013. Retrieved 14 September 2014.
- "Losing graciously". 14 February 2014. Retrieved 14 September 2014.
- "Quantal, raring, saucy..." 18 October 2013. Retrieved 14 September 2014.
- Hess, Joey. "on leaving". Retrieved 15 July 2015.
- Allbery, Russ (16 November 2014). "Resigning from the Technical Committee". debian-ctte (Mailing list). Retrieved 15 July 2015.
- Jackson, Ian (19 November 2014). "Resignation". debian-ctte (Mailing list). Retrieved 15 July 2015.
- Heen, Tollef Fog (16 November 2014). "Resignation from the pkg-systemd maintainer team". pkg-systemd-maintainers (Mailing list). Retrieved 15 July 2015.
- Carroty, Paul (28 August 2015). "Lennart Poettering merged "su" command replacement into systemd: Test Drive on Fedora Rawhide". Archived from the original on 4 September 2015.
- "Assertion failure when PID 1 receives a zero-length message over notify socket #4234". 28 September 2016.
- Felker, Rich (3 October 2016). "Hack Crashes Linux Distros with 48 Characters of Code". Kaspersky Lab.
- "CVE-2017-9445 Details", National Vulnerability Database, National Institute of Standards and Technology (U.S.), 6 July 2017, retrieved 6 July 2018
- "CVE-2017-9445", The Common Vulnerabilities and Exposures database, The Mitre Corporation, 5 June 2017, retrieved 6 July 2018
- Gundersen, Tom E. (25 September 2014). "The End of Linux". Retrieved 25 October 2014.
It certainly is not something that comes with systemd from upstream.
- "The New Control Group Interfaces". Freedesktop.org. 28 August 2015. Retrieved 6 February 2016.
- Poettering, Lennart (May 2014). "A Perspective for systemd: What Has Been Achieved, and What Lies Ahead" (PDF). Retrieved 30 November 2014.
- "What is systemd?". Linode. 11 September 2019.
- "Inhibitor Locks". freedesktop.org.
- Poettering, Lennart (26 January 2013). "The Biggest Myths".
- "Debate/initsystem/systemd – Debian Documentation". Debian. 2 January 2014. Retrieved 4 December 2014.
- Edge, Jake (7 November 2013). "Creating containers with systemd-nspawn". LWN.net. Retrieved 30 July 2014.
- "ControlGroupInterface". freedesktop.org. Retrieved 9 November 2014.
- Heo, Tejun (28 January 2014). "cgroup: convert to kernfs". linux-kernel (Mailing list).
- Heo, Tejun (13 March 2014). "cgroup: prepare for the default unified hierarchy". linux-kernel (Mailing list).
- "systemd's binary logs and corruption". Retrieved 21 January 2016.
- "systemd-logind.service". freedesktop.org. Retrieved 17 February 2014.
- "ConsoleKit official website". freedesktop.org. Retrieved 9 November 2014.
- "How to hook up your favorite X11 display manager with systemd". freedesktop.org.
- "Networking in +systemd - 1. Background". 27 November 2013. Retrieved 22 February 2014.
- "Networking in +systemd - 2. libsystemd-rtnl". 27 November 2013. Retrieved 22 February 2014.
- "Networking in +systemd - 3. udev". 27 November 2013. Retrieved 22 February 2014.
- "Networking in +systemd - 4. networkd". 27 November 2013. Retrieved 22 February 2014.
- "Networking in +systemd - 5. the immediate future". 27 November 2013. Retrieved 22 February 2014.
- Larabel, Michael (4 July 2014). "systemd 215 Works On Factory Reset, DHCPv4 Server Support". Retrieved 8 November 2014.
- Šimerda, Pavel (3 February 2013). "Can Linux network configuration suck less?".
- Linux User's Manual – User Commands –
- "timedated". freedesktop.org. Retrieved 9 November 2014.
- Sievers, Kay. "The future of the udev source tree". linux-hotplug (Mailing list). Retrieved 22 May 2013.
- Sievers, Kay, "Commit importing udev into systemd", freedesktop.org, retrieved 25 May 2012
- "[systemd-devel] [PATCH] Drop the udev firmware loader". 29 May 2014.
- "systemd.unit man page". freedesktop.org.
- "systemd Dreams Up New Feature, Makes It Like Cron". Phoronix. 28 January 2013. Retrieved 22 January 2014.
"systemd.slice (5) - Linux Man Pages". Retrieved 12 March 2018.
[...] a slice [...] is a concept for hierarchically managing resources of a group of processes.
- "Git clone of the 'packages' repository". Web interface to the Arch Linux git repositories. 12 January 2012.
- "systemd is now the default on new installations". Arch Linux.
- "coreos/manifest: Releases: v94.0.0". github.com. 3 October 2013. Retrieved 22 September 2014.
- "CoreOS's init system", coreos.com, archived from the original on 14 February 2014, retrieved 14 February 2014
- "systemd". debian.org. Retrieved 19 November 2014.
- Garbee, Bdale (11 February 2014). "Bug#727708: call for votes on default Linux init system for jessie". debian-ctte (Mailing list).
- "Installing without systemd". Retrieved 3 April 2018.
- "Fedora 14 talking points".
- "systemd", wiki.gentoo.org, retrieved 26 August 2012
- "Installing the Gentoo Base System § Optional: Using systemd".
- "Comment #210 (bug #318365)", gentoo.org, retrieved 5 July 2011
- "systemd", gentoo.org, retrieved 5 July 2011
- "KNOPPIX 7.4.2 Release Notes". Archived from the original on 6 January 2018. Retrieved 26 April 2018.
...script-based KNOPPIX system start with sysvinit
- "KNOPPIX 8.0 Die Antwort auf Systemd (German)". Archived from the original on 13 June 2018. Retrieved 13 June 2018.
...Knoppix 'boot process continues to run via Sys-V init with few bash scripts that start the system services efficiently sequentially or in parallel. (The original German text: Knoppix' Startvorgang läuft nach wie vor per Sys-V-Init mit wenigen Bash-Skripten, welche die Systemdienste effizient sequenziell oder parallel starten.)
- ChangeLog of Mageia's systemd package
- Scherschel, Fabian (23 May 2012), Mageia 2 arrives with GNOME 3 and systemd, The H, archived from the original on 8 December 2013, retrieved 22 August 2012
- Directory view of the 11.4 i586 installation showing presence of the systemd v18 installables, 23 February 2011, retrieved 24 September 2013
- "OpenSUSE: Not Everyone Likes systemd". Phoronix.
The recently released openSUSE 12.2 does migrate from SysVinit to systemd
- "Parabola ISO Download Page".
- Red Hat Unveils Red Hat Enterprise Linux 7, 10 June 2014
- "Initial entry of the "systemd" spell".
- "Ubuntu Wiki: Switching init systems". Retrieved 3 July 2016.
- "Linked packages : upstart". Launchpad. Retrieved 17 June 2019.
- "Void-Package: systemd: removed; no plans to resurrect this".
- "Meet Devuan, the Debian fork born from a bitter systemd revolt".
- Sharwood, Simon (5 May 2017). "systemd-free Devuan Linux hits RC2". The Register. Retrieved 5 May 2017.
- "Debian Developers Decide On Init System Diversity: "Proposal B" Wins". Phoronix. Retrieved 28 December 2019.
- Poettering, Lennart (18 May 2011). "systemd as an external dependency". desktop-devel (Mailing list). GNOME. Retrieved 26 May 2011.
- Peters, Frederic (4 November 2011). "20121104 meeting minutes". GNOME release-team (Mailing list). Retrieved 14 January 2013.
- "ConsoleKit". Retrieved 15 November 2014.
ConsoleKit is currently not actively maintained. The focus has shifted to the built-in seat/user/session management of Software/systemd called systemd-logind!
- Vitters, Olav. "GNOME and logind+systemd thoughts". Retrieved 24 April 2014.
- "GNOME 3.10 arrives with experimental Wayland support". ZDNet. Retrieved 24 April 2014.
- "GNOME initiatives: systemd". Retrieved 9 May 2018.
- "Mutter 3.13.2: launcher: Replace mutter-launch with logind integration". 19 May 2014. Retrieved 28 May 2014.
- Vaughan-Nichols, Steven (19 September 2014). "Linus Torvalds and others on Linux's systemd". ZDNet. CBS Interactive.
- "Interview with Patrick Volkerding of Slackware". linuxquestions.org. 7 June 2012. Retrieved 19 March 2014.
- "I'm back after a break from Slackware: sharing thoughts and seeing whats new!". linuxquestions.org. Retrieved 14 March 2014.
- Broken by design: systemd, Rich Felker, main author of musl, 2014-02-09.
- "Interviews: ESR Answers Your Questions". Slashdot.org. 10 March 2014. Retrieved 19 March 2014.
- Torvalds, Linus (2 April 2014). "Re: [RFC PATCH] cmdline: Hide "debug" from /proc/cmdline". linux-kernel (Mailing list). Retrieved 8 July 2014.
- "Is systemd as bad as boycott systemd is trying to make it?". LinuxToday. Retrieved 22 September 2014.
- "Boycott systemd.org". Archived from the original on 6 May 2014. Retrieved 15 July 2015.
- Venezia, Paul (18 August 2014). "systemd: Harbinger of the Linux apocalypse". Retrieved 20 September 2014.
- "Linus Torvalds and others on Linux's systemd". Retrieved 21 November 2014.
- "A realization that I recently came to while discussing the whole systemd..." 31 March 2014. Retrieved 8 July 2014.
- ""FallbackDNS shouldn't have values set at compile time"". 6 June 2015. Retrieved 3 June 2018.
- "eudev/README". Archived from the original on 16 February 2015. Retrieved 1 June 2015.
- "Gentoo eudev project". Retrieved 1 June 2015.
- "elogind/README". Retrieved 2 September 2015.
- Larabel, Michael (21 September 2014). "Uselessd: A Stripped Down Version Of systemd". Phoronix. Retrieved 26 October 2014.
- "Uselessd is dead". Uselessd website. Retrieved 17 February 2017.
- "uselessd :: information system". uselessd.darknedgy.net. Retrieved 26 October 2014.
- "GSoC 2014: systemd replacement utilities (systembsd)". OpenBSD Journal. Retrieved 28 November 2014.
- projects / systembsd.git / summary, retrieved 8 July 2018
- Koegel, Eric (20 October 2014). "ConsoleKit2". Retrieved 7 March 2015.
- "ConsoleKit2 (Github)". Retrieved 8 July 2018.
- "Consolekit2 (Gentoo)". Retrieved 24 June 2020.
- "loginkit/README". Retrieved 4 December 2014.
- "dimkr/LoginKit (Github)". Retrieved 8 July 2018.
- Luke Shumaker (17 June 2017). "notsystemd v232.1 release announcement". Dev@lists.parabola.nu (Mailing list).
- "skarnet.org/s6". Retrieved 10 June 2020.