热门问题
时间线
聊天
视角

systemd

Linux的init系統與系統服務管理程式 来自维基百科,自由的百科全书

Systemd
Remove ads

systemdLinux电脑操作系统之下的一套中央化系统及设置管理程序(init),包括有守护进程函数库以及应用软件,由Lennart Poettering英语Lennart Poettering带头开发。其开发目标是提供更优秀的框架以表示系统服务英语Service (systems architecture)间的依赖关系,并依此实现系统初始化时服务的并行启动,同时达到降低Shell系统开销英语Computational overhead的效果,最终代替现在常用的System VBSD风格init程序。

事实速览 原作者, 开发者 ...

目前绝大多数的Linux发行版都已采用systemd代替原来的System V

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

Remove ads

起源

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

设计

Thumb
systemd组件
Thumb
专门由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等组件。
  • 引入localectltimedatectlhostnamectl等新命令,系统配置更方便。

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

Remove ads

应用

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

默认init程序为systemd的发行版
可以使用systemd的发行版
Thumb
systemd-manager

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

注释

Loading content...

参考文献

Loading content...

外部链接

参见

Loading content...
Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads