自 20 世紀 90 年代初以來,Linux 桌面已從一個簡單的窗口管理器發展爲一個完整的桌面。讓咱們一塊兒來回顧一下 Linux 桌面的歷史。php
我第一次安裝 Linux 是在 1993 年。那時,安裝這種操做系統沒有太多的選擇。早期,許多人只是從別人那裏複製一個運行中的鏡像。而後有人有了一個很好的想法,建立一個 Linux 的「發行版」,讓你能夠自定義要安裝的軟件。這就是 Softlanding Linux 系統(SLS),也是我首次接觸 Linux。linux
當時個人 386 PC 雖然內存很少,但已經足夠了。SLS 1.03 須要 2MB 的內存才能運行,若是要編譯程序,則須要 4MB 的內存。若是要運行 X 窗口系統,則須要多達 8MB 的內存!而個人電腦正好有足夠的內存來運行 X 窗口系統。git
由於我是在命令行中成長的,因此圖形化的用戶界面對我來講並不重要,但它確實很方便,我能夠在不一樣的窗口中運行應用程序,並在任務間輕鬆切換。github
從我第一次嘗試 Linux 開始,我就迷上了它。從那之後,我一直在臺式機上使用 Linux。和許多人同樣,我也曾有一段時間以雙引導配置運行 Linux,這樣我就能夠跳回到 MS-DOS 和 Windows 來運行某些程序。直到 1998 年,我終於冒了個險,全面投身於 Linux 之中。瀏覽器
在過去的 26 年中,我看着 Linux 桌面逐漸成熟。在這段時間裏,我還嘗試了各類有趣的桌面環境,下面我來分享一下 Linux 桌面的歷史。ruby
Linux 上的第一個「桌面」還不是桌面。相反,它們是運行在 X 窗口系統上的「窗口管理器」(WM)。X 提供了圖形用戶界面的基本構件,好比在屏幕上建立窗口,並提供鍵盤和鼠標輸入。就其自己而言,X 的用處並不大。爲了使 X 圖形環境變得有用,你須要一種方法來管理會話中的全部窗口。這就出現了窗口管理器。運行 xterm 或 xclock 之類的 X 程序就會在一個窗口中打開該程序。窗口管理器能夠跟蹤窗口並進行基本的內部管理,例如讓你能夠來回移動窗口並將其最小化。其他的事情取決於你本身。你能夠經過將程序名列在 ~/.xinitrc
文件中以在 X 開始時啓動這些程序,可是一般,你會從 xterm 中運行新程序。網絡
在 1993 年,最多見的窗口管理器是 TWM,它的歷史能夠追溯到 1988 年。TWM 至關簡單,僅僅提供了基本的窗口管理功能。編輯器
SLS 1.05 上的 TWM,顯示了 xterm、xclock 和 Emacs 編輯器工具
另外一個早期的窗口管理器是 OpenLook 虛擬窗口管理器(OLVWM)。OpenLook 是 Sun 微系統公司在 20世紀 80 年代開發的圖形用戶界面,後來被移植到其它 Unix 平臺。做爲一個虛擬窗口管理器,OLVWM 支持多個工做區。性能
SLS 1.05 上的 OLVWM,顯示了 xterm 和虛擬工做區選擇器
當 Linux 開始流行起來的時候,沒多久就有人建立出性能更流暢、界面更好的新窗口管理器。這些新的窗口管理器中首先出現的是虛擬窗口管理器 FVWM。FVWM 比 TWM 或 OLVWM 更具現代感。可是,咱們仍然沒有桌面。
SLS 1.05 上的 FVWM,顯示了 xterm 和文件管理器
以現代的眼光來看,TWM 和 FVWM 可能看起來很樸素。但重要的是要想一想當時其它圖形環境是什麼樣子。 Windows 當時的版本看起來也至關簡單。Windows 版本 1 到版本 3 使用了一個稱爲「程序管理器」的普通啓動器。
Windows 3.11,顯示程序管理器和記事本編輯器
1995 年 8 月,微軟發佈了 Windows 95,改變了現代 PC 桌面的格局。固然,我當時對此印象很深入。我曾以爲 Windows 3.x 笨拙而醜陋,但 Windows 95 卻流暢而漂亮。更重要的是,咱們如今將 Windows 95 視爲「桌面」。新的「桌面」隱喻是一個巨大的進步。你能夠在桌面上放置圖標——事實上,Windows 95 提供了兩個默認的桌面圖標,分別是「個人電腦」(用於打開文件管理器)和「回收站」(用於放置之後要刪除的文件)。
可是,更重要的是,Windows 95 桌面的意味着整合。程序管理器不見了,取而代之的是屏幕底部的任務欄,可以讓你使用更簡單的「開始」菜單啓動新程序。任務欄是多功能的,還經過一系列的按鈕顯示了你正在運行的程序,而托盤顯示了時間、揚聲器音量和其它簡單的控件。你能夠在這個新桌面上右鍵單擊任何對象, Windows 95 會爲你提供一個上下文相關的菜單,其中又你能夠執行的操做。
Windows 95,顯示了記事本編輯器
與之前版本的 Windows 甚至其它 Linux 窗口管理器相比,Windows 95 的界面更加流暢而且易於使用。值得一提的是,Linux 開發人員建立了一個模仿 Windows 95 界面的 FVWM 的新版本。名爲 FVWM95 的新窗口管理器仍然不是桌面,但它看起來很是漂亮。新的任務欄讓你可使用「開始」菜單啓動新的 X 程序。任務欄還可使用相似於 Windows 95 的按鈕顯示了正在運行的程序。
在 Red Hat Linux 5.2 上的 FVWM95,顯示了 xterm 和一個帶有 xterm 圖標、文件管理器和其餘程序的快速訪問程序啓動器
雖然 FVWM95 和其餘窗口管理器都在改進,但核心問題仍然存在:Linux 並無真正的桌面。它具備一堆窗口管理器,僅此而已。使用圖形用戶界面的 Linux 應用程序(基本上意味着它們是 X 應用程序)看起來形態萬千且工做方式也不一樣。除了 X 窗口系統提供的簡單的純文本複製/粘貼功能外,你不能從一個應用程序複製和粘貼到另外一個應用程序裏。Linux 真正須要的是在其圖形用戶界面中進行完全的從新打造,以建立它的第一個桌面。
在 1996 年,Matthias Ettrich 有感於 X 之下 Linux 應用程序體驗不一致的困擾。他想使找個更易於使用的圖形環境,並且更重要的是,他想讓全部東西都「集成」在一塊兒,就像真正的桌面同樣。
Matthias 開始了K 桌面環境(KDE)的工做。那個 K 表明着 「Kool」(LCTT 譯註:即 Cool)。可是 KDE 這個名字也意味着能夠相似通用桌面環境(CDE)的作法,而 CDE 是「大 Unix」世界的標準。儘管到了 1996 年,CDE 看起來已經有點過期了。CDE 基於 Motif 部件集,這也是 FVWM 所模仿的設計。KDE 1.0 於 1998 年 7 月完成,與 FVWM95 等普通窗口管理器相比,它有了明顯改進。
K 桌面環境(KDE)版本 1.0。圖片來源:Paul Brown / KDE
KDE 是 Linux 向前邁出的一大步。最終,Linux 有了一個真正的桌面,集成了應用程序和更多現代的桌面圖標。KDE 的設計與 Windows 95 並沒有不一樣。屏幕底部有一個任務欄,它提供了至關於 Windows 95 的「開始」菜單以及一些應用程序的快捷鍵。KDE 還支持虛擬桌面,這些桌面被巧妙地標記爲 「One」、「 Two」、「Three」 和 「Four」。正在運行的應用程序經過位於屏幕頂部單獨的任務欄的按鈕表示。
但並非每一個人都對 KDE 感到滿意。爲了將 GUI 從系統中抽象出來,KDE 使用了 Trolltech 的 Qt 工具套件庫。不幸的是,Qt 並非以自由軟件的許可證進行分發的。Trolltech 容許 Qt 在自由軟件應用程序中無償使用,但在商業或專有應用程序中要收取使用費。並且這種二分法與自由軟件不符。這給 Linux 發行版帶來了問題:它們應該包括 KDE 嗎?仍是默認使用 FVWM 這樣老式但屬於自由軟件的圖形用戶界面?
面對這種狀況,Miguel de Icaza 和 Federico Mena 於 1997 年開始開發新的 Linux 桌面上。這個新項目被稱爲 GNOME,即GNU 網絡對象模型環境的縮寫。GNOME 旨在成爲一個徹底自由的軟件,並使用了一個不一樣的工具套件庫 —— 來自 GIMP 圖像編輯器的 GTK。GTK 從字面上的意思 GIMP 工具套件。當 GNOME 1.0 終於在 1999 年發佈時,Linux 又多了一個現代化的桌面環境。
GNOME 1.0 版。圖片來源:GNOME 文檔項目
有兩個 Linux 桌面環境當然很棒,但「KDE 與 GNOME」之爭仍持續了一段時間。到了 1999 年,Trolltech 以新的公共許可證 Q 公共許可證(QPL)從新發布了 Qt 庫。可是,新許可證有其自身的包袱—-QPL 僅適用於 Qt 在開源軟件項目中的使用,而不適用於商業項目。所以,自由軟件基金會(FSF)認爲 QPL 與 GNU 通用公共許可證(GNU GPL)不兼容。這個許可證問題一直持續到 2000 年 Trolltech 在 GNU GPL v2 下從新發布 Qt 庫。
Linux 桌面繼續走向成熟。KDE 和 GNOME 進行了一場友好的競爭,促使雙方都在增長了新的功能,還互相交流了思想和觀念。到了 2004 年,GNOME 和 KDE 都取得了長足的進步,但只是給用戶界面帶來了漸進式的變化。
KDE 2 和 3 繼續依賴屏幕底部的任務欄概念,但併入了用於運行應用程序的按鈕。KDE 最明顯的變化之一是添加了 Konqueror 瀏覽器,該瀏覽器首次出如今 KDE 2 中。
![KDE 2.2.2 (2001) showing the Konqueror browser][11]
KDE 2.2.2(2001),顯示了 Konqueror 瀏覽器。圖片來源:Paul Brown / KDE
![KDE 3.2.2][12]
Fedora Core 2 上的 KDE 3.2.2(2004),顯示了 Konqueror 文件管理器(使用 Fedora Core 2 主題)
GNOME 2 也使用了任務欄概念,但將任務欄一分爲二:屏幕頂部的任務欄用於啓動應用程序並響應桌面提示,屏幕底部的任務欄用於顯示正在運行的應用程序。我把這兩個任務欄稱之爲「你能夠作的事情」(頂部)和「你正在作的事情」(底部)。除了精簡的用戶界面外,GNOME 還添加了由 Eazel 開發的更新過的文件管理器,名爲 Nautilus。
![GNOME 2.6.0][13]
Fedora Core 2 上的 GNOME 2.6.0(2004),顯示了 Nautilus 文件管理器(使用 Fedora Core 2 主題)
隨着時間的流逝,KDE 和 GNOME 走了不一樣的道路。二者都提供了功能豐富、健壯且現代化的桌面環境,可是卻具備不一樣的用戶界面目標。2011 年,GNOME 和 KDE 在桌面界面上出現了很大的誤差。KDE 4.6(2011 年 1 月)和 KDE 4.7(2011 年 7 月)提供了更傳統的桌面感覺,同時繼續根植於許多用戶熟悉的任務欄概念。固然,KDE 的底層發生不少變化,可是它仍然保留了熟悉的外觀。
![KDE 4.6][14]
KDE 4.6,顯示 Gwenview 圖像查看器。圖片來源:KDE
2011 年,GNOME 以一個新的桌面概念完全改變了走向。GNOME 3 旨在建立一個更簡單、更精簡的桌面體驗,使用戶可以專一於本身的工做。任務欄消失了,取而代之的是屏幕頂部的黑色狀態欄,其中包括音量和網絡控件,顯示了時間和電池狀態,並容許用戶經過從新設計過的菜單啓動新程序。
菜單的變化最具最戲劇性。單擊「活動」菜單或將鼠標移到「活動」的「熱角」,全部打開的應用程序會顯示爲單獨的窗口。用戶還能夠從「概述」中單擊「應用程序」選項卡以啓動新程序。「概述」還提供了一個內部集成的搜索功能。
![GNOME 3.0][15]
GNOME 3.0,顯示 GNOME 圖片應用程序。圖片來源:GNOME
![GNOME 3.0][16]
GNOME 3.0,顯示活動概述。圖片來源:GNOME
擁有兩個 Linux 桌面意味着用戶有很大的選擇餘地。有些人喜歡 KDE,而另外一些人喜歡 GNOME。不要緊,選擇最適合你的桌面就行。
能夠確定的是,KDE 和 GNOME 都有擁護者和批評者。例如,GNOME 由於放棄任務欄而改爲「活動概述」而受到了很多批評。也許最著名的批評者是 Linus Torvalds,他在 2011 年[大聲斥責並拋棄了][17]新的 GNOME,將其視爲「邪惡的爛攤子」,而後在兩年後又[回到了][18] GNOME。
其餘人也對 GNOME 3 提出了相似的批評,以致於一些開發人員復刻 GNOME 2 的源代碼建立了 MATE 桌面。MATE(是MATE 高級傳統環境的遞歸縮寫)延續了 GNOME 2 的傳統任務欄界面。
不管如何,毫無疑問當今兩個最受歡迎的 Linux 桌面是 KDE 和 GNOME。它們的當前版本很是成熟,功能也很豐富。KDE 5.16(2019)和 GNOME 3.32(2019)都試圖簡化和精簡 Linux 桌面體驗,可是方式有所不一樣。GNOME 3.32 繼續致力於極簡外觀,刪除全部分散用戶注意力的用戶界面元素,以便用戶能夠專一於其應用程序和工做。KDE 5.16 採用了更爲熟悉的任務欄方法,但也增長了其餘視覺上的改進和亮點,尤爲是改進的小部件處理和圖標。
![KDE 5.16 Plasma][19]
KDE 5.16 Plasma。圖片來源:KDE
![GNOME 3.32][20]
GNOME 3.32。圖片來源:GNOME
同時,你也不會徹底失去它們之間的兼容性。每一個主要的 Linux 發行版都提供了兼容性庫,所以你能夠在運行 GNOME 的同時來運行 KDE 應用程序。當你真正想使用的應用程序是爲其餘桌面環境編寫的,這一點很是有用。你能夠在 GNOME 上運行 KDE 應用程序,反之亦然。
我認爲這種態勢不會很快改變,這是一件好事。KDE 和 GNOME 之間的良性競爭使這兩個陣營的開發人員能夠避免故步自封。不管你使用 KDE 仍是 GNOME,你都將擁有一個集成度很高的現代化桌面。而最重要的是,這意味着 Linux 擁有自由軟件最好的特色:選擇。
via: opensource.com/article/19/…
做者:Jim Hall 選題:lujun9972 譯者:wxy 校對:wxy
[11]: opensource.com/sites/defau… (KDE 2.2.2 (2001) showing the Konqueror browser) [12]: opensource.com/sites/defau… (KDE 3.2.2) [13]: opensource.com/sites/defau… (GNOME 2.6.0) [14]: opensource.com/sites/defau… (KDE 4.6) [15]: opensource.com/sites/defau… (GNOME 3.0) [16]: opensource.com/sites/defau… (GNOME 3.0) [17]: www.theregister.co.uk/2011/08/05/… [18]: www.phoronix.com/scan.php?pa… [19]: opensource.com/sites/defau… (KDE 5.16 Plasma) [20]: opensource.com/sites/defau… (GNOME 3.32)