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