是時候根據(jù)負載類型將Linux拆分為二了
譯文桌面工作負載與服務器工作負載各自擁有不同的實際需求。為什么非要利用同一套發(fā)行版同時為這兩者提供必要支持呢?
過去幾十年來,微軟一直針對桌面與服務器兩類工作負載發(fā)布完全獨立的操作系統(tǒng)方案。誠然,二者共享一部分代碼內(nèi)容,但用戶絕不可能單純通過安裝一部分軟件包并摒棄另一部分軟件包的方式直接將Windows 7系統(tǒng)轉化為Windows Server 2008 R2系統(tǒng)。桌面與服務器本身就完全不同,整個技術業(yè)界也一直秉持著與微軟相同的打理方式。
當然,這種狀況并沒能阻止一部分開發(fā)人員將服務器工作負載交由Windows XP系統(tǒng)加以處理的嘗試與懷疑性態(tài)度,但從宏觀角度來看、桌面系統(tǒng)與服務器系統(tǒng)之間的差異是顯著而且真實存在的。然而在Linux領域,這種界線則一直非常模糊。
大家可以選擇任何一套Linux發(fā)行版并在安裝后將其作為服務器操作系統(tǒng),也能夠隨時根據(jù)需要安裝并卸載其中部分軟件包再將其轉化為適用于工作站設備的桌面版本。整體而言,操作系統(tǒng)內(nèi)核依然如故、而可靠性與性能表現(xiàn)也幾乎沒有區(qū)別——當然,前提是大家能夠以正確的方式對系統(tǒng)進行調(diào)整。雖然看起來沒有什么問題,但這兩類工作負載實在區(qū)別明顯,而且隨著計算能力的不斷提升、兩類工作負載的具體狀況也在朝著不同方向進一步偏離。
也許現(xiàn)在是時候?qū)inux拆分為二了。我曾經(jīng)在上周的systemd探討文章當中表達過這一觀點(并在文章中提到,F(xiàn)reeBSD有可能在服務器領域取得更積極的接納態(tài)度),但除了systemd之外、還有更多其它客觀因素推動著這股潮流。這一切從引導裝載程序開始就出現(xiàn)了差異。我們看到很多類似于嵌合體般的操作系統(tǒng)費盡心力在充當服務器系統(tǒng)的同時,又得準備好讓那些突發(fā)奇想的用戶將其作為桌面系統(tǒng)使用。此類情況出現(xiàn)得越多,我們就越是希望能把這兩類使用方式區(qū)分開來。大家可以在自己的筆記本或者64路服務器上運行同一套Debian Jessie系統(tǒng)——這樣做到底有何必要?集中所有精力顧好一方面難道不是更有意義嗎?
如果大家利用systemd將所有Linux系統(tǒng)發(fā)行版統(tǒng)一起來,那么它們彼此之間的區(qū)別將變得非常細微——僅存的差異可能只體現(xiàn)在軟件包管理器以及文件系統(tǒng)布局等方面。姑且不論將Linux桌面系統(tǒng)作為獨立業(yè)務線所帶來的巨大風險,如果能讓一部分Linux發(fā)行版專注于解決桌面類型負載、再讓另一部分重點打理服務器類型負載,這樣的結果難道不是更好?當然,Ubuntu及其它少數(shù)發(fā)行版已經(jīng)開始提供“服務器”與“桌面系統(tǒng)”兩類版本,或者在安裝時準備更多方案供用戶選擇,但事實上二者之間的惟一區(qū)別就是所安裝軟件包的不同。在目前的大多數(shù)發(fā)行版當中,兩類方案的內(nèi)核甚至完全一致;沒錯,二者被硬性合而為一。
隨著大人氣游戲框架Steam發(fā)布Linux版本,我們開始感受到一部分對計算機游戲及計算機通用技術抱有濃厚興趣的家伙在努力把桌面Linux系統(tǒng)獨立出來。他們至少開始嘗試對Linux的桌面特性以***的方式加以強調(diào),并且在一定程度上取得了成功。
然而他們同時也要求這些以桌面系統(tǒng)為核心的工作負載擁有更為出色的性能表現(xiàn)、特別是在圖形處理方面,而且希望每款獨立應用程序的處理負載對磁盤及網(wǎng)絡I/O的要求得到縮減——這種處理思路與在服務器上一味追求高I/O與多線程處理效果的業(yè)務負載完全不同。如果想讓Linux在桌面領域?qū)崿F(xiàn)市場份額方面的突破,那么此類需求必須得到滿足、而且內(nèi)核也需要與服務器系統(tǒng)版本劃分出更為明確的界線。
要實現(xiàn)以上提及的全部目標,新的系統(tǒng)版本需要在硬件支持能力、外部設備支持能力、電源管理以及其它各大桌面系統(tǒng)考量重點當中有所建樹,而這又會使桌面與服務器兩類發(fā)行版走向更為相背的兩條發(fā)展道路。此外,我敢打賭,運行在虛擬機環(huán)境下的Linux服務器系統(tǒng)數(shù)量與運行在桌面系統(tǒng)中的數(shù)量相比,前者規(guī)模可達后者的數(shù)十倍乃至上百倍。在對發(fā)行版進行開發(fā)與調(diào)整時,這也應當被視為一種完全不同的使用場景并加以考量。
話說回來,Linux真的有能力實現(xiàn)這一切嗎?答案是肯定的。那我們又能否讓每一套Linux發(fā)行版都擁有開箱即用的各類支持能力?可能,非常有可能。目前以Mint為代表的、專注于桌面方向的發(fā)行版已經(jīng)出現(xiàn),而以Gentoo與Debian(特指某一部分Debian版本,至少是在systemd出現(xiàn)之前)為代表的部分發(fā)行版也開始將重點轉移到服務器方向。雖然它們還沒有完全邁出單一指向這決定性的步伐,但至少已經(jīng)在兩類關鍵性工作負載類型中作出了自己的選擇或者說傾向性。沒錯,我們很難將RHEL 7視為一套真正的以服務器為核心的發(fā)行版,因為其中仍然摻雜有systemd以及面向桌面環(huán)境的軟件包,但至少能夠肯定的是它并不屬于真正的桌面系統(tǒng)。從許多方面來看,RHEL 7走的仍是一條兩手抓、兩手都要硬的中間道路。
目前業(yè)界對于systemd的抗拒情緒非常強烈,適時推出一套主流Linux發(fā)行版的fork將systemd與GNOME依賴性徹底清理出去、并在忽略桌面支持能力的同時為用戶提供一套更為傳統(tǒng)且穩(wěn)定的服務器平臺已經(jīng)成為當務之急。在Linux發(fā)行版的樹狀開發(fā)圖形當中,我們真的不應該把時間浪費在為偏向服務器環(huán)境的版本提供數(shù)百上千桌面軟件包的管理與支持能力,也沒必要把數(shù)不勝數(shù)的外部設備及顯卡驅(qū)動程序納入考量范圍(舉例來說,RHEL 6.3就提供57款xorg開源DirectX驅(qū)動程序)。
安全問題同樣值得關注。在桌面系統(tǒng)與服務器系統(tǒng)當中,對于安全問題的考量方式及權重存在巨大差別——事實上,不同類型的服務器之間對于安全事務的要求也有所區(qū)別,具體情況取決于每臺服務器所負載的業(yè)務內(nèi)容。不過我們幾乎可以肯定地說,對于Memcached服務器而言、針對點擊惡意網(wǎng)頁實施惡意軟件防護絕對不可能在安全威脅優(yōu)先列表中占據(jù)一席之地。
相信大家跟我一樣、都已經(jīng)意識到用戶對于桌面Linux版本在改善使用體驗方面所提出的要求,其中包括引入更多外部硬件支持能力、改進圖形處理性能、強化聲音表現(xiàn)、縮短啟動時間以及降低維護與管理的難度等等。這些對于桌面層級的關注只適用于桌面發(fā)行版,如果吸取意見并加以實施能夠確切實現(xiàn)上述目標,那么我們沒有理由對此加以抗拒。然而,同樣的關注重點在服務器級別的系統(tǒng)當中顯然沒有立足之地或者說加以考量的理由。這種朝令夕改的頻繁變動只會給系統(tǒng)本身帶來短視與危險等弊端。
打造專有以及經(jīng)過針對性調(diào)整的服務器發(fā)行版顯然是個很好的主意——無論是否將systemd引入其中。而如果技術業(yè)界能夠以此為前導,創(chuàng)建出一套足以邁入主流行列且僅適用于服務器環(huán)境的Linux發(fā)行版、并繼續(xù)像過去四十五年那樣堅持承繼源自Unix的各項優(yōu)良傳統(tǒng)作為固有基因,那么我們無疑會為這樣的成就和魄力拍手叫好。換言之,能有這樣的成果,也代表著我們對于systemd的熱烈討論并不是在浪費唇舌。
英文原文:http://www.infoworld.com/d/data-center/its-time-split-linux-in-two-249704?page=0,0