systemd

使用systemd的Fedora 17启动信息

原作者| Lennart Poettering（英语：Lennart Poettering）, Kay Sievers, Harald Hoyer, Daniel Mack, Tom Gundersen and David Herrmann
開發者| Lennart Poettering, Kay Sievers, Harald Hoyer, Daniel Mack, Tom Gundersen, David Herrmann等人
首次发布| 2010年3月30日 (2010-03-30)
当前版本| 252（2022年10月31日，
2年前​（2022-10-31））
源代码库|

* github.com/systemd/systemd

编程语言| C
操作系统| Linux
类型| 系統軟件
许可协议| GNU LGPL 2.1+[1]
网站| systemd.io

systemd是Linux電腦作業系統之下的一套中央化系統及設定管理程式（init），包括有守护进程、函式庫以及應用軟體，由Lennart Poettering（英语：Lennart Poettering）带头开发。其开发目标是提供更优秀的框架以表示系统服务（英语：Service (systems architecture)）间的依赖关系，并依此实现系统初始化时服务的并行启动，同时达到降低Shell的系统开销（英语：Computational overhead）的效果，最终代替现在常用的System V与BSD风格init程序。

目前絕大多數的Linux發行版都已採用systemd代替原來的System V。

systemd在LGPL 2.1及其后续版本许可证下开源发布[1][2]。

## 起源

[编辑]

systemd这一名字源于Unix中的一个惯例：在Unix中常以“d”作为系统守护进程（英語：daemon，亦称后台进程）的后缀标识。除此以外，systemd亦是借代英文术语D体系（英语：System D），而这一术语即是用于描述一个人具有快速地适应环境并解决困难的能力[3]。

## 设计

[编辑]

systemd組件 專門由systemd所使用的統一層次結構控制組

与System V风格init相比，systemd采用了以下新技术：

* 將service（服務）、target（執行模式，類似於運行級別）、mount、timer、snapshot、path、socket、swap等稱為Unit。比如，一個auditd服務（就是auditd.service）就是一個Unit，一個multi-user.target執行模式也是一個Unit。
* 采用Socket激活式与D-Bus激活式服务，以提高相互依赖的各服务的并行运行性能；
* 用cgroups代替进程ID来追踪进程，因此即使是两次fork之后生成的守护进程也不会脱离systemd的控制。
* 用target代替System V的運行級別（Runlevel），比如，SystemD的graphical.target相當於System V的init 5，multi-user.target相當於System V的init 3。
* 內建journald 日誌管理系統。
* 內建resolved、timesyncd、networkd等元件。
* 引入`localectl`、`timedatectl`、`hostnamectl`等新命令，系統配置更方便。

从设计构思上说，由于systemd使用了cgroup与fanotify等组件以实现其特性，所以只适用于Linux[4]。有鉴于此，考虑到kFreeBSD分支的软件源无法纳入systemd，为与其他分支保持一致，Debian开发者尽力避免纳入systemd[5]。但Lennart Poettering本人对此并不在意，并称「Debian GNU/kFreeBSD不过是玩具系统」[6]。但Debian 8.0 Jessie開始以systemd取代sysvinit。[7]。

## 应用

[编辑]

systemd已纳入众多Linux发行版的软件源中，以下简表：

默认init程序为systemd的发行版

* Fedora 15及后续版本[8][註 1]
* CentOS 7及後續版本。
* Mageia 2[10]
* Mandriva 2011[11]
* openSUSE 12.1 及后续版本[12]
* Red Hat Enterprise Linux 7及后续版本，包括其衍生品CentOS、Scientific Linux、Oracle Linux等
* Arch Linux在2012年10月13日将systemd-sysvcompat纳入base软件组，自此Arch Linux默認安裝完即以systemd為init程序[13]，同时也提供了与Arch自带启动脚本兼容用的systemd启动脚本包以方便用户，使用户能“开箱即用”[14]
* Chakra GNU/Linux，在2012.10的光碟映像檔發佈後預設使用systemd。[15]
* Debian GNU/Linux，在2014年的技術委員會的init系統投票中決定在Debian 8“Jessie”中以Linux為核心的版本轉換到systemd[16]。
* Ubuntu 15.04及后续版本[17]

可以使用systemd的发行版

* Gentoo，同OpenRC一起被Gentoo官方支持[18][19][20]

systemd-manager

除此以外，systemd已由Lennart Poettering提请纳入GNOME 3.2的外部依赖关系列表[21]，而这意味着所有使用GNOME的发行版都应该使用systemd，最低限度来说也必须将其作为配置选项之一。

## 注释

[编辑]

1. ^ 原先Fedora开发者打算在Fedora 14发布的时候便将systemd设为默认init程序，但最后还是推迟到Fedora 15才实行[9]。

## 参考文献

[编辑]

1. ^ 1.0 1.1 Lennart Poettering, systemd Status Update, 2012-04-21  [2012-04-28], （原始内容存档于2015-08-27）
2. ^ Lennart Poettering, FAQs, systemd (0pointer),  [2011-06-16], （原始内容存档于2017-01-15）
3. ^ Lennart Poettering, Kay Sievers, Thorsten Leemhuis, Control Centre: The systemd Linux init system, 2012-05-08  [2012-06-10], （原始内容存档于2012-06-14）
4. ^ Lennart Poettering, systemd FAQ, 2010-04-30  [2011-12-14], （原始内容存档于2017-01-15）
5. ^ Jake Edge, Debian debates systemd, 2011-07-27  [2011-12-14], （原始内容存档于2012-05-15）
6. ^ Un entretien avec Lennart Poettering), 2011-07-05  [2011-12-14], （原始内容存档于2014-08-05）
7. ^ Richard Chirgwin, Debian ships new 'Jessie' release with systemd AND sysvinit, 2015-04-27  [2016-05-23], （原始内容存档于2016-04-25）
8. ^ Dj Walker-Morgan, Fedora 15's Lovelock released, The H, 2011-05-24  [2011-05-26], （原始内容存档于2012-07-12）
9. ^ Jake Edge, systemd and Fedora 14, LWN, 2010-08-25  [2011-02-03], （原始内容存档于2010-12-27）
10. ^ Fabian Scherschel, Mageia 2 arrives with GNOME 3 and systemd, The H, 2012-05-23  [2012-05-26], （原始内容存档于2013-12-08）
11. ^ Dj Walker-Morgan, Mandriva 2011 arrives with systemd, The H, 2011-08-29  [2011-08-29], （原始内容存档于2012-07-09）
12. ^ Chris von Eitzen, openSUSE 12.1 arrives with systemd and Btrfs, The H, 2011-11-16  [2011-11-16], （原始内容存档于2012-04-20）
13. ^ Bächler, Thomas. systemd is now the default on new installations. Arch Linux Official.  [2012-10-16]. （原始内容存档于2012-10-15）.
14. ^ systemd, Archlinux Wiki,  [2011-03-09], （原始内容存档于2011-05-23）
15. ^ Full switch to Systemd with Claire-2012.10 ISO released today,  [2012-10-28], （原始内容存档于2013-03-15）
16. ^ Bdale Garbee. The Debian technical committee vote concludes. LWN.net.  [2014-02-12]. （原始内容存档于2014-02-22）.
17. ^ seb128, VividVervet/ReleaseNotes, Ubuntu Wiki, 2015-04-24  [2015-04-29], （原始内容存档于2015-06-11）
18. ^ Comment #210, systemd – bug #318365 (Gentoo's Bugzilla),  [2011-07-05], （原始内容存档于2015-02-16）
19. ^ systemd, Gentoo's Documentation,  [2011-07-05], （原始内容存档于2011-06-26）
20. ^ systemd, Gentoo wiki,  [2012-08-26], （原始内容存档于2012-10-12）
21. ^ Lennart Poettering, systemd as an external dependency, desktop-devel mailing list (GNOME), 2011-05-18  [2011-05-26], （原始内容存档于2014-10-10）

## 外部链接

[编辑]

* 官方网站
* systemd, 0pointer,  [2012-06-10], （原始内容存档于2017-01-15）
* systemd project, Fedora,  [2012-06-10], （原始内容存档于2012-05-21）
* The road forward for systemd, LWN,  [2012-06-10], （原始内容存档于2012-10-21）
* cgit, freedesktop,  [2012-06-10], （原始内容存档于2012-06-20）

## 参见

[编辑]

* Linux主题
* 自由软件主题

* BusyBox
* launchd（英语：launchd）
* readahead
* 服务管理程序（英语：Service Management Facility）
* Upstart
* OpenRC

* 查
* 论
* 编

类Unix系统中的服务管理（英语：Operating system service management）

可移植实现|

* Init
* Initng（英语：Initng）
* runit
* OpenRC

特定操作系统|

* Linux
* Systemd
* Upstart
* OS X
* launchd（英语：launchd）
* SystemStarter
* Solaris
* 服务管理工具（英语：Service Management Facility）

进程监视（英语：Process supervision）工具|

* daemontools（英语：daemontools）
* monit（英语：monit）
* runit

* 查
* 论
* 编

Freedesktop.org托管的自由及开放源代码软件项目

操作系统组件|

| 音频|

* PulseAudio
* PipeWire

|

图形|

* Compiz
* DRI（英语：Direct Rendering Infrastructure）
* Enchant（英语：Enchant (software)）
* nouveau
* Plymouth
* Wayland
* X.Org Server
* Glamor
* Xephyr（英语：Xephyr）

其它|

* Avahi（英语：Avahi (software)）
* D-Bus
* Flatpak
* kmscon（英语：kmscon）
* luit（英语：luit）
* PackageKit
* pkg-config
* Systemd

函式庫|

* AppStream
* cairo
* Fontconfig
* GStreamer
* Mesa 3D
* fprint（英语：fprint）
* HarfBuzz
* Pango
* Poppler
* Swfdec（英语：Swfdec）
* Video Acceleration API（英语：Video Acceleration API）
* XCB
* Xft（英语：Xft）

軟體框架|

* CppUnit（英语：CppUnit）
* Galago（英语：Galago (software)）
* GeoClue（英语：GeoClue）
* Open Collaboration Services（英语：Open Collaboration Services）
* Telepathy

会议|

* Create Project（英语：Create Project）
* 波特兰计划

* 查
* 论
* 编

Linux内核

组织|

| 内核|

* Linux基金會
* Linux商标协会
* 林纳斯定律
* 塔能鮑姆-托瓦茲辯論
* Linux-libre
* Tux
* SCO与Linux
* Linaro
* GNU GPL v2
* menuconfig（英语：menuconfig）
* 支持架构
* 内核名称
* 对Linux的批评

|

支持|

* 开发者
* 《Linux编程接口》
* kernel.org
* LKML
* Linux会议
* 用户
* Linux用户组（LUG）

技术|

| 调试|

* CRIU（英语：CRIU）
* ftrace（英语：ftrace）
* kdump
* Linux内核oops
* SystemTap（英语：SystemTap）

|

启动过程|

* vmlinux
* System.map
* dracut
* initrd
* initramfs

ABI|

* Linux标准规范
* x32 ABI

API|

| 用户空间|

| FS，守护进程|

* devfs
* kernfs
* debugfs（英语：debugfs）
* procfs
* sysfs
* systemd
* udev
* Kmscon（英语：Kmscon）

|

封装库|

* C標準函式庫
* glibc
* uClibc
* Bionic
* libhybris
* dietlibc
* EGLIBC
* klibc
* musl
* Newlib
* libcgroup
* libdrm
* libalsa
* libevdev（英语：evdev）

内核部分|

| 系统调用接口|

* POSIX
* ioctl
* select
* open
* read
* close
* sync
* ...
* Linux独有
* futex
* epoll
* splice
* dnotify（英语：dnotify）
* inotify
* readahead
* ...

|

内核内|

* ALSA
* DRI
* Video4Linux
* New API（英语：New API）
* Crypto API（英语：Crypto API (Linux)）

内核组件|

* 内核模块
* BlueZ（英语：BlueZ）
* cgroups
* 控制台
* bcache（英语：bcache）
* 设备映射器
* dm-cache（英语：dm-cache）
* dm-crypt
* DRM
* EDAC
* evdev（英语：evdev）
* 内核同页合并（KSM）
* LIO
* 帧缓冲区（Framebuffer）
* LVM
* KMS驱动
* Netfilter
* Netlink
* nftables
* 网络调度器
* perf（英语：perf (Linux)）
* SLUB
* zram
* zswap

* 进程和I/O调度器：
* O(n)调度器
* O(1)调度器
* 完全公平排程器 (CFQ)
* 腦殘排程器
* Noop调度器
* SCHED_DEADLINE（英语：SCHED_DEADLINE）

* 安全模块：AppArmor
* Exec Shield（英语：Exec Shield）
* grsecurity（英语：grsecurity）
* PaX（英语：PaX）
* seccomp（英语：seccomp）
* SELinux
* Smack
* TOMOYO Linux（英语：TOMOYO Linux）
* Linux PAM（英语：Linux PAM）

* 设备驱动
* 802.11
* 显卡
* 裸设备

* initramfs
* kexec
* kGraft（英语：kGraft）
* kpatch（英语：kpatch）
* Ksplice

变种|

* 主线
* Linux内核
* 高性能计算
* INK
* 计算节点Linux
* SLURM
* 实时计算
* RTLinux?
* RTAI（英语：RTAI）
* Xenomai
* 电信级Linux
* 无MMU
* μClinux
* PSXLinux（英语：PSXLinux）
* DSLinux

| 虛擬化|

* Hypervisor
* KVM
* Xen
* 操作系统级虚拟化
* Linux-VServer（英语：Linux-VServer）
* Lguest（英语：Lguest）
* LXC
* OpenVZ
* 其它
* L4Linux（英语：L4Linux）
* ELinOS（英语：ELinOS）
* 用户模式Linux
* MkLinux（英语：MkLinux）
* coLinux

|

采用|

| 使用范围|

* 桌面
* 嵌入式
* 游戏
* 瘦客户端：
* LTSP
* Thinstation（英语：Thinstation）
* 服务器：
* LAMP
* LYME/LYCE
* 设备

|

采用者|

* Linux采用者列表
* GENIVI联盟
* Linux专有软件

人物|

* 乔纳·贝肯
* 乔纳森·科比特
* 艾伦·考克斯
* 乔恩·霍尔
* 本杰明·马可·希尔
* 迈克尔·凯利斯克
* 康恩·科里瓦斯
* 葛雷格·克罗哈曼
* 大卫·米勒
* 英格·蒙内
* 安德鲁·莫顿
* 伊恩·默多克
* 布鲁斯·佩伦斯
* 丹尼尔·罗宾斯
* 拉斯蒂·拉塞尔
* 林纳斯·托瓦兹
* 曹子德

* 分类
* 共享资源
* 教科书
* 学院
* 主题

*[查]: 查看该模板
*[论]: 讨论该模板
*[编]: 编辑该模板