Linux:為什么那么多人討厭systemd?
systemd在Linux社區(qū)引起了***爭議。一些Linux用戶對systemd的反對絕不屈從,還有一些Linux用戶對systemd喜愛有加,還有很多人滿不在乎。近日,關于systemd的話題又出現(xiàn)在社區(qū)中,很多人分享了自己的想法。一時興起,筆者梳理了幾個比較經(jīng)典的回答。
為什么不喜歡systemd?
不斷地聽到很多人抱怨systemd有多么不好,但它還是被極大地普及了,并且我在網(wǎng)上所讀到的很多文章都在介紹systemd的好處,比如更快的啟動時間和更完善的日志記錄,據(jù)說過去在fedora13上開機速度測試,upstart是27秒,而systemd僅用了24秒。
有人認為unix是做一件事,就把它做好,而systemd則是把pid 1擴張到***化。這可能是很多人討厭systemd的重大原因。也有其他人認為,systemd的日志記錄并不是很好,二進制日志被很多人所詬病,雖然systemd提供了更快的索引,但二進制日志本身就有問題,而且systemd的日志損壞也不是***次發(fā)生了。而且systemd真正令人反感的是設計不夠靈活,對很多人而言,systemd阻止了他們的選擇自由,考慮到kFreeBSD分支的軟件源無法納入systemd,為與其他分支保持一致,Debian的開發(fā)者盡力避免納入systemd。但Lennart Poettering本人對此并不在意,并稱“Debian GNU/kFreeBSD不過是玩具系統(tǒng)”。
systemd目前還處于中間發(fā)展階段,那些想要超級安全或超級小或超快速系統(tǒng)的人都不適合使用。事實的真相是,systemd的很多反對者并不真正關心“底層”,只是抱怨systemd的各種不方便,比如命令太長,不熟悉demon報錯等。systemd幾乎沒有所需的外部依賴,它們主要由glibc(或兼容的libc),setcap和libmount組成。
由于systemd項目合并了udev, logind等基礎設施,以及Gnome/KDE積極與systemd集成,這給其它開源內(nèi)核的桌面用戶(以及Debian這樣的多內(nèi)核發(fā)行版)造成了困擾。
想想systemd最開始出現(xiàn)時,還是以一個純粹的init軟件的身份,之后短短的時間內(nèi)大肆攻城略地,合并了很多進程,與Gnome曖昧不清,還設置了API鎖定。雖然我可以理解很多l(xiāng)inux用戶為什么不喜歡復雜的桌面環(huán)境,但還是有很多人希望選擇一個完整的桌面環(huán)境。
init系統(tǒng)中,雖然你可以輕松地選擇桌面環(huán)境和窗口管理器,但在大多數(shù)發(fā)行版中,你幾乎不能更改init系統(tǒng)。然而對大多數(shù)不深入sysadmining的用戶來說,使用哪個init系統(tǒng)并不重要。
當然,每個經(jīng)驗豐富的Linux用戶都有自己的看法。這里就不一一列舉出來了,Linux社區(qū)充滿了很多精通技術的開發(fā)人員,他們對Linux應該如何發(fā)展和成長有著自己的意見。這些觀點大多數(shù)是不相關的,取決于具體的工作需求。即便很多人投訴systemd,但卻沒有更***的替代品出現(xiàn),這也是systemd迅速擴張的原因。
我發(fā)現(xiàn)systemd單元和服務文件很容易維護,更重要的是,它可以很容易地轉讓給別人。systemd的擁護者給出了支持其的原因,比如很穩(wěn)定,有一個容易的可配置的方式管理服務,也有一些中立人士不強烈反對systemd,但它的擴展速度實在令人擔憂。它接管了很多不需要任何修復的功能。
很多人都想知道systemd什么時候可以停止擴張,筆者也希望得到一個確切的答案。到今天,systemd已經(jīng)相當流行了,如今各大發(fā)行版包括Arch,debian,Ububtu都已經(jīng)切換到systemd或正在切換。systemd的反對者們創(chuàng)建了一個分支——uselessd,本來有望成為一個簡單的init程序,但結果還是死了。本來嘗鮮安裝了systemd的用戶,可能沒想到自己得到的不僅僅是一個init軟件,而是一個如此龐大的軟件,不過發(fā)行版的維護者越發(fā)懶惰,systemd沒準會讓維護工作變得異常簡單。