如今,電腦在我們生活中扮演的角色越來越重要;一旦出現任何問題,就會影響我們的心情和幽默感,哈哈。當然,Windows 用戶更容易陷入恐慌:病毒(Linux 萬歲!)、硬碟碎片整理、尋找並安裝Clean Master(雖然 Linux 用戶也需要清理系統;BleachBit 是比較受歡迎的選擇之一)。最近,一些 Linux 用戶也遇到了一個令人頭痛的問題,那就是systemd。
總之,言歸正傳,我讀了一篇關於systemd 的有趣文章,它最近似乎非常流行。
有些人認為systemd是“萬能的”,(我借用我朋友的說法)……而另一些人則對此漠不關心;只要電腦運行正常,他們不在乎 init 執行的是 X 還是 Y,也不在乎是否使用了 systemd。至於我嘛……這麼說吧,我更喜歡 init;我覺得它更簡單。
我將文章留在這裡:
在開始之前,我必須聲明,我非常不喜歡 Debian 所做的這些改變,但我無意放棄我摯愛的螺旋式開發。我只是想確保,如果我們要討論某個主題,我們能盡可能做好充分的準備,即使我自己並不支持 systemd。為了揭開 systemd 的神秘面紗,我將參考一個開發者分享觀點的網站。這個網站是我的一位同事推薦的,他雖然不是 Debian 用戶,但似乎支持 systemd。綜上所述,我想我可以開始嘗試解釋一下關於 systemd 的各種說法了。
systemd是基於二進制的
也許這是最讓我們震驚的方面之一,如果一切都基於二進制,那麼我們如何通過日誌監視通常執行的操作? 我不知道這個神話是如何誕生的,但這不是絕對正確的。
systemd幾乎是通過純文本文件專門配置的。 也可以使用內核命令行和環境變量來更改某些設置。 您的配置中沒有二進製文件(甚至沒有XML)。 只是一個簡單,直接且易於閱讀的文本文件。
那東西是整體的,它控制著一切
在訪問上述網站之前,我承認我本人是這樣認為的,但是在閱讀了開發人員的意見後,我的看法已經改變了……
如果啟用所有設定選項建置 systemd,將會產生69 個獨立的二進位檔案。這些二進位檔案服務於不同的任務,並且出於多種原因被精心劃分。例如,systemd 的設計以安全性為核心;因此,大多數守護程序以最低權限運行(例如使用核心權限),並且只負責非常特定的任務,從而最大限度地降低其安全風險和影響。此外,systemd 比以往任何解決方案都更有效率地並行化啟動過程。這種「並行化」是透過並行運行多個進程實現的。由此可見,systemd 被很好地劃分為許多二進位文件,進而劃分為多個進程。事實上,其中許多二進位檔案劃分得如此清晰,以至於它們在 systemd 之外也非常有用。
包含 69 個獨立二進位的軟體包很難稱得上是單體架構。然而,與以往方案不同的是,我們將更多元件打包到一個 tar 包中,並將它們連結在一起,放在同一個倉庫中,採用統一的發布週期。
看起來不像Unix
這肯定有一些道理。 systemd源文件不包含原始UNIX行中的一行代碼。 但是,靈感是從UNIX派生的,因此systemd中有很多UNIX。 一個示例就是UNIX理念“一切都是文件”,這反映在systemd中,所有服務都在運行時在內核文件系統中公開,即 cgroupfs。 因此,UNIX的原始功能之一是基於內置終端支持的多座支持。 借助systemd,我們再次帶來了本機的多座支持,但這一次完全支持當今的硬件,包括圖形,鼠標,音頻,網絡攝像頭等。 實際上,將systemd設計為一組集成的工具,每個工具都有其各自的用途,但一起使用時要比各部分的總和更多,這或多或少是UNIX哲學的中心。 因此,我們的項目的處理方式(即將大多數OS內核保存在單個git存儲庫中)更接近BSD模型(這是真正的UNIX,而不是Linux)來完成工作(大部分核心操作系統保存在單個CVS / SVN存儲庫中)這在Linux上是從來沒有的。
最終,有關某物是否為UNIX的問題幾乎沒有多大意義。 從技術上講,它並不是UNIX獨有的。 對於我們來說,UNIX是一個重要的影響力(實際上是最大的影響力),但是我們還有其他影響力。 因此,在某些領域中systemd將是非常UNIX的,而在其他領域則更少。
那是非常複雜的...
這肯定有一些道理。 現代計算機是複雜的野獸,運行在它們上面的操作系統顯然也將是複雜的,因此它們必須是複雜的。 但是,systemd當然不會比以前相同組件的實現複雜。 它更簡單,並且冗余少。 另一方面,構建一個簡單的基於systemd的操作系統所涉及的軟件包將比傳統Linux使用的軟件包少得多。 更少的軟件包使構建系統變得更加容易,它擺脫了相互依賴性以及所涉及的所有組件的許多不同行為。
那不會讓我使用shell腳本
這完全是錯誤的。我們只是因為認為 shell 腳本並非啟動過程中的最佳選擇,所以才沒有在啟動過程中使用它們,但這並不意味著 systemd 與 shell 腳本不相容。您可以輕鬆地將 shell 腳本作為 systemd 服務或守護程式運行;您可以將任何語言編寫的腳本作為 systemd 服務運行,因為 systemd 完全不關心可執行檔案的內容。此外,我們本身也廣泛使用 shell 腳本:用於安裝、建置和測試 systemd。您可以將腳本貼到啟動過程的早期階段,將其用於常規服務,或在最終關機時運行它們——幾乎沒有任何限制。
至此,我想一些主要觀點應該已經澄清了。雖然我並不認為自己是變革的擁護者,而且對「一統天下」的概念也持保留意見,但我認為最終沒有人會斷言它完全無效。我什至認識一些用戶注意到,使用 systemd 後“電腦運行速度更快”,但這又是另一個值得探討的話題了。目前,我只能邀請大家在此就許多發行版都採用的 init 系統展開討論,儘管目前最強烈的反響來自 Debian 社區,甚至因此衍生出了一個新的分支。你是否喜歡它完全取決於個人喜好;就我而言,我只是想盡我所能地揭開 systemd 的神秘面紗,它最終將會出現在 Debian 的下一個穩定版本 Jessie 中。
我在GUTL上看到了那篇文章(這篇文章又轉載自DesdeAbreus)。

系統電流?
當某件事引起如此多的爭議時,我是不會閱讀大量新聞的人之一,我更喜歡停留在更多的技術細節。事情是…有時我覺得某些話題不再是純粹的技術討論或辯論,而變得像那些演藝界的八卦之一
首先,一位用戶公開抨擊 systemd,名為systemd VS intelligence;然後 Linus Torvalds 說systemd 並沒有人們說的那麼糟糕(而且他說的也有道理);接著出現了一個名為uselessd 的分支……無話可說……長話短說,最後出現了Devuan。
我不會說它到底像他們說的那麼糟糕、沒那麼糟還是更糟。對我來說,這套系統運作良好,不過我個人更喜歡 init,因為我喜歡它組織各種東西(例如日誌)的方式。但是,如果 systemd 真的要被譽為“賽馬”,並且必須取代 init(它會成為我們的主力軍,承擔所有工作但速度很慢嗎?),那麼……只要變化不是太大,用戶能夠輕鬆適應,而且系統運行得更好(是的,更好,也許這對我來說還不夠!),那就歡迎它! 😉