systemd:初學者如何理解其中的爭議
在 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 的爭論仍在繼續。你對此有何看法?