在 Linux 世界中,很少有争议能像传统的 System V初始化系统(通常称为 SysVinit)和较新的systemd之间的斗争那样引起如此大的争议。
在这篇文章中,我将简要讨论什么是 systemd、它相对于传统初始化系统有哪些优点和缺点以及为什么它会引起争议。
什么是 systemd?
systemd 是一个系统和服务管理器,于 2010 年首次推出,用于取代传统的 System V 初始化系统。它旨在提高启动速度并更有效地管理系统服务。如今,systemd 是许多流行 Linux 发行版的默认初始化系统,包括 Ubuntu、Fedora 和 Red Hat Enterprise Linux(RHEL)。
systemd 是守护进程吗?
尽管名字中带有 “d”,但 systemd 并不是一个守护进程。相反,它是一个为 Linux 提供许多系统组件的软件套件。其目标是标准化 Linux 发行版的服务配置和行为。
systemd 的主要组件是一个“系统和服务管理器”,它充当初始化系统来引导用户空间并管理用户进程。它还提供了各种守护程序和实用程序的替代品,从设备和登录管理到网络连接管理和事件记录。
systemd 的主要特性
systemd 具有许多功能,例如它能够主动并行化操作、方便按需启动守护进程、使用 Linux 控制组监视进程、管理挂载点和自动挂载点,以及实现复杂的基于事务依赖的服务控制逻辑。
此外,systemd 支持 SysV 和 LSB 初始化脚本,作为 SysVinit 的替代品。它还提供了一个日志守护进程和用于管理基本系统配置的工具程序。
systemd on fedora - Courtesy of Wikimedia
systemd 与 SysVinit:争议
SysVinit 与 systemd 争论的核心围绕如何最好地管理基于 Linux 的系统。关注的范围从复杂性和兼容性到管理系统服务的最佳方式,涉及系统管理员和 Linux 爱好者面临的基本问题。
批评者认为 systemd 过于复杂和巨大化,使得故障排除变得更加困难。他们担心单点故障,因为所有服务都由一个守护进程管理,并且担心与 Linux 内核的紧密集成,这可能会限制向其他系统的可移植性。
这就是为什么有些人创建脱离 systemd 的发行版的原因。
然而,支持者称赞 systemd 提供了一种更高效、更现代的系统管理方法,其服务启动的并行性和守护进程的按需启动减少了启动时间并提高了系统响应能力。他们还赞扬其先进的日志记录功能。
尽管存在争议,systemd 已成为许多 Linux 发行版的默认初始化系统,系统管理员和开发人员已经开始欣赏它的高级特性和功能。
systemd 与 SysVinit 的优点和缺点
优点:
SysVinit 的优点 | systemd 的优点 |
简单且熟悉 | 提高启动速度 |
尊重 Unix 哲学 | 标准化日志系统 |
更直接地控制系统服务 | 一致的服务管理方法 |
系统成熟稳定 | 与现代 Linux 系统和应用程序的兼容性 |
与遗留系统和应用的兼容性 | 来自大型开发者和贡献者社区的积极开发和支持 |
缺点:
SysVinit 的缺点 | systemd 的缺点 |
与新的初始化系统相比功能有限 | 复杂性和陡峭的学习曲线 |
缺乏对服务并行启动的内置支持 | 有侵入性,可能会破坏与传统 Unix 工具和程序的兼容性 |
可能比新的初始化系统效率低,尤其是在大型系统上 | 某些系统可能会出现不稳定和崩溃的情况 |
对现代 Linux 系统和应用的有限支持 | 与尚未支持 systemd 的遗留系统和应用的兼容性有限 |
总结:个人观点
作为一名来自 UNIX 早期的 Linux 用户,我更倾向于传统的初始化系统。然而,尽管我最初有所抵触,但我已经开始接受 systemd,并看到了它的一些好处。每个系统在 Linux 世界中都有自己的位置,了解这两个系统非常重要。
关于 systemd 的争论仍在继续。你对此有何看法?