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