systemd:初學(xué)者如何理解其中的爭議
在 Linux 世界中,很少有爭議能像傳統(tǒng)的 System V 初始化 系統(tǒng)(通常稱為 SysVinit)和較新的 systemd 之間的斗爭那樣引起如此大的爭議。
在這篇文章中,我將簡要討論什么是 systemd、它相對于傳統(tǒng)初始化系統(tǒng)有哪些優(yōu)點和缺點以及為什么它會引起爭議。
什么是 systemd?
systemd 是一個系統(tǒng)和服務(wù)管理器,于 2010 年首次推出,用于取代傳統(tǒng)的 System V 初始化系統(tǒng)。它旨在提高啟動速度并更有效地管理系統(tǒng)服務(wù)。如今,systemd 是許多流行 Linux 發(fā)行版的默認初始化系統(tǒng),包括 Ubuntu、Fedora 和 Red Hat Enterprise Linux(RHEL)。
systemd 是守護進程嗎?
盡管名字中帶有 “d”,但 systemd 并不是一個守護進程。相反,它是一個為 Linux 提供許多系統(tǒng)組件的軟件套件。其目標是標準化 Linux 發(fā)行版的服務(wù)配置和行為。
systemd 的主要組件是一個“系統(tǒng)和服務(wù)管理器”,它充當(dāng)初始化系統(tǒng)來引導(dǎo)用戶空間并管理用戶進程。它還提供了各種守護程序和實用程序的替代品,從設(shè)備和登錄管理到網(wǎng)絡(luò)連接管理和事件記錄。
systemd 的主要特性
systemd 具有許多功能,例如它能夠主動并行化操作、方便按需啟動守護進程、使用 Linux 控制組監(jiān)視進程、管理掛載點和自動掛載點,以及實現(xiàn)復(fù)雜的基于事務(wù)依賴的服務(wù)控制邏輯。
此外,systemd 支持 SysV 和 LSB 初始化腳本,作為 SysVinit 的替代品。它還提供了一個日志守護進程和用于管理基本系統(tǒng)配置的工具程序。
systemd on fedora - Courtesy of Wikimedia
systemd 與 SysVinit:爭議
SysVinit 與 systemd 爭論的核心圍繞如何最好地管理基于 Linux 的系統(tǒng)。關(guān)注的范圍從復(fù)雜性和兼容性到管理系統(tǒng)服務(wù)的最佳方式,涉及系統(tǒng)管理員和 Linux 愛好者面臨的基本問題。
批評者認為 systemd 過于復(fù)雜和巨大化,使得故障排除變得更加困難。他們擔(dān)心單點故障,因為所有服務(wù)都由一個守護進程管理,并且擔(dān)心與 Linux 內(nèi)核的緊密集成,這可能會限制向其他系統(tǒng)的可移植性。
這就是為什么有些人創(chuàng)建 脫離 systemd 的發(fā)行版 的原因。
然而,支持者稱贊 systemd 提供了一種更高效、更現(xiàn)代的系統(tǒng)管理方法,其服務(wù)啟動的并行性和守護進程的按需啟動減少了啟動時間并提高了系統(tǒng)響應(yīng)能力。他們還贊揚其先進的日志記錄功能。
盡管存在爭議,systemd 已成為許多 Linux 發(fā)行版的默認初始化系統(tǒng),系統(tǒng)管理員和開發(fā)人員已經(jīng)開始欣賞它的高級特性和功能。
systemd 與 SysVinit 的優(yōu)點和缺點
優(yōu)點:
SysVinit 的優(yōu)點 | systemd 的優(yōu)點 |
簡單且熟悉 | 提高啟動速度 |
尊重 Unix 哲學(xué) | 標準化日志系統(tǒng) |
更直接地控制系統(tǒng)服務(wù) | 一致的服務(wù)管理方法 |
系統(tǒng)成熟穩(wěn)定 | 與現(xiàn)代 Linux 系統(tǒng)和應(yīng)用程序的兼容性 |
與遺留系統(tǒng)和應(yīng)用的兼容性 | 來自大型開發(fā)者和貢獻者社區(qū)的積極開發(fā)和支持 |
缺點:
SysVinit 的缺點 | systemd 的缺點 |
與新的初始化系統(tǒng)相比功能有限 | 復(fù)雜性和陡峭的學(xué)習(xí)曲線 |
缺乏對服務(wù)并行啟動的內(nèi)置支持 | 有侵入性,可能會破壞與傳統(tǒng) Unix 工具和程序的兼容性 |
可能比新的初始化系統(tǒng)效率低,尤其是在大型系統(tǒng)上 | 某些系統(tǒng)可能會出現(xiàn)不穩(wěn)定和崩潰的情況 |
對現(xiàn)代 Linux 系統(tǒng)和應(yīng)用的有限支持 | 與尚未支持 systemd 的遺留系統(tǒng)和應(yīng)用的兼容性有限 |
總結(jié):個人觀點
作為一名來自 UNIX 早期的 Linux 用戶,我更傾向于傳統(tǒng)的初始化系統(tǒng)。然而,盡管我最初有所抵觸,但我已經(jīng)開始接受 systemd,并看到了它的一些好處。每個系統(tǒng)在 Linux 世界中都有自己的位置,了解這兩個系統(tǒng)非常重要。
關(guān)于 systemd 的爭論仍在繼續(xù)。你對此有何看法?