本周 Linux 剛剛迎來它的 28 歲生日。那么它究竟是如何一步步發(fā)展至今的呢?Linux 上的第一個“桌面”是在 X Window 系統(tǒng)上運行的窗口管理器。
X 和窗口管理器
X 為圖形用戶界面提供了基本構建塊,例如在屏幕上創(chuàng)建窗口并提供鍵盤和鼠標輸入。要運行 X 圖形環(huán)境,用戶需要一種方法來管理會話中的所有窗口,這就是窗口管理器的用武之地。運行像 xterm 或 xclock 這樣的 X 程序,它們就會在窗口中打開。
窗口管理器負責跟蹤窗口并執(zhí)行基本的任務管理,例如移動窗口并最小化。剩下的則取決于個人,你可以在通過將 X 列在 ~/。xinitrc 文件中來啟動程序,不過通常,用戶會從 xterm 運行新程序。
1993 年最常見的窗口管理器是 TWM,它可以追溯至 1988 年。TWM 非常簡單,只提供基本的窗口管理功能。
SLM 1.05 上的 TWM,圖中為 xterm、xclock 和 Emacs 編輯器
另一個早期的窗口管理器是 OpenLook 虛擬窗口管理器(OLVWM)。OpenLook 是 Sun Microsystems 在 20 世紀 80 年代開發(fā)的圖形用戶界面,后來也被移植到其他 Unix 平臺。作為虛擬窗口管理器,OLVWM 支持多個工作區(qū)。
SLS 1.05 上的 OLVWM,圖為 xterm 和 Virtual Workspaces 選擇器
當 Linux 開始普及時,創(chuàng)建一個具有流暢性能和改進界面的新窗口管理器并不需要花費很大力氣。這些新窗口管理器中的首個便是 FVWM,一個虛擬窗口管理器。 FVWM 比 TWM 或 OLVWM 更具現(xiàn)代感。當然對于現(xiàn)代人來說,TWM 和 FVWM 可能看起來很平常。
SLS 1.05 上的 FVWM,圖為 xterm 和文件管理器
當時的 Windows 桌面看起來相當簡單。 Windows 版本 1 到 3 使用稱為“程序管理器”的普通啟動程序。
Windows 3.11 上的程序管理器和記事本編輯器
1995 年 8 月,微軟發(fā)布了 Windows 95 并改變了現(xiàn)代 PC 桌面環(huán)境。在當時,Windows 3.x 看起來是笨拙而丑陋的,Windows 95 顯然更為流暢好看。更重要的是,Windows 95 改變了人們對桌面的定義。
Windows 95 桌面意味著集成。程序管理器消失了,取而代之的是屏幕底部的任務欄,可以使用更簡單的“開始”菜單啟動新程序。與之前版本的 Windows 甚至其他 Linux 窗口管理器相比,Windows 95 界面更加靈活且易于使用。
Windows 95 上的記事本編輯器
Linux 開發(fā)人員不甘示弱,創(chuàng)建了一個模仿 Windows 95 界面的新版 FVWM,并稱為 FVWM95。新的窗口管理器仍然不是桌面,但它看起來比以前好得多。用戶可以在任務欄中使用“開始”菜單啟動新的 X 程序,任務欄還使用類似于 Windows 95 的按鈕顯示正在運行的程序。
Red Hat Linux 5.2 上的 FVWM95
雖然 FVWM95 和其他窗口管理器在不斷改進,但核心問題仍然存在:Linux 并沒有真正擁有桌面。它只有一系列窗口管理器罷了。
首個 Linux 桌面
1996 年,Matthias Ettrich 希望將所有內(nèi)容集成在一起,就像一個真正的桌面一樣。于是他開始研究 K 桌面環(huán)境(KDE),并于 1998 年 7 月完成。KDE 1.0 比 FVWM95 這樣的普通窗口管理器有了明顯的改進。
KDE 1.0
KDE 代表著 Linux 的一大進步,從此 Linux 擁有了真正的桌面應用程序集成和更現(xiàn)代的桌面圖標。
KDE 的設計與 Windows 95 相差無幾。它在屏幕底部有一個任務欄,提供了相當于 Windows 95 的開始菜單以及幾個應用程序的快捷方式。此外,KDE 還支持虛擬桌面。
但并非所有人都對 KDE 感到滿意。為了從系統(tǒng)中抽象 GUI,KDE 使用了 Trolltech 的 Qt 工具包庫。不幸的是,Qt 沒有在免費軟件許可下發(fā)布。Trolltech 允許 Qt 在免費軟件應用程序中免費使用,但在商業(yè)或專有應用程序中使用它需要付費。這使 Linux 發(fā)行版陷入兩難抉擇:應該包含 KDE 嗎?或者默認使用較舊但免費的軟件圖形用戶界面,如 FVWM?
很快,事情有了新的變化。Miguel de Icaza 和 Federico Mena 于 1997 年開始為新的 Linux 桌面工作。這個新項目被稱為 GNOME,用于 GNU 網(wǎng)絡對象模型環(huán)境。GNOME 旨在成為完全免費的軟件,并使用來自 GIMP 圖像編輯器的不同工具包,即 GTK(GIMP Tool Kit)。
當 GNOME 1.0 最終在 1999 年發(fā)布時,Linux 又擁有了一個現(xiàn)代桌面環(huán)境。
GNOME 1.0
此后,KDE 與 GNOME 的競爭持續(xù)了一段時間。轉眼來到 1999 年,Trolltech 根據(jù)新的公共許可證——Q 公共許可證(QPL)重新發(fā)布了 Qt 庫。但新許可證仍然有所限制,QPL 僅適用于 Qt 在開源軟件項目中的使用,而非商業(yè)項目。因此,自由軟件基金會認為 QPL 與 GNU 通用公共許可證(GNU GPL)不兼容。這個許可問題將一直持續(xù)到 Trolltech 在 2000 年 GNU GPL 第 2 版下重新發(fā)布 Qt 庫。
隨著時間的發(fā)展
Linux 桌面繼續(xù)成熟。 KDE 和 GNOME 進入良性競爭狀態(tài),互相推動新的發(fā)展。到 2004 年,GNOME 和 KDE 都取得了重大進展,但只對用戶界面進行了增量更改。
KDE 2 和 3 繼續(xù)依賴于屏幕底部的任務欄概念,但包含了用于運行應用程序的按鈕。KDE 最明顯的變化之一是增加了 Konqueror 瀏覽器,它最初出現(xiàn)在 KDE 2 中。
KDE 2.2.2 (2001)
Fedora Core 2 上的 KDE 3.2.2(2004)
GNOME 2 也使用了任務欄概念,但它將欄分成兩部分:屏幕頂部用于啟動應用程序并響應桌面警報,頁面底部顯示正在運行的應用程序。除了簡化的用戶界面外,GNOME 還添加了一個名為 Nautilus 的文件管理器,由 Eazel 開發(fā)。
Fedora Core 2 上的 GNOME 2.6.0(2004)
隨著時間的推移,KDE 和 GNOME 采取了不同的發(fā)展路徑。兩者都提供功能豐富、強大且現(xiàn)代化的桌面環(huán)境,但它們具有不同的用戶界面目標。2011 年可以說是 GNOME 和 KDE 的分水嶺。KDE 4.6(2011 年 1 月)和 KDE 4.7(2011 年 7 月)提供了更為傳統(tǒng)的桌面,同時繼續(xù)依賴許多用戶熟悉的任務欄概念。從外觀上來看,KDE 并沒有什么太大的變化。
KDE 4.6
另一邊的 GNOME 則在 2011 年通過新的桌面概念完全改變了方向。 GNOME 3 旨在創(chuàng)建更簡化的桌面體驗,使用戶能夠專注于他們正在進行的工作。任務欄消失,取而代之的是屏幕頂部的黑色狀態(tài)欄,其中包括音量和網(wǎng)絡控制,顯示時間和電池狀態(tài),并允許用戶通過重新設計的菜單啟動新程序。
GNOME 3.0
選擇合適的桌面
有人喜歡 KDE,有人喜歡 GNOME,選擇最適合自己的就好??梢钥隙ǖ氖?,KDE 和 GNOME 都有批評者和支持者。這其中最著名的批評者也許是 Linus Torvalds,他在 2011 年大聲譴責 GNOME 為 “unholy mess” 并放棄了它,兩年后卻又再度回歸。
其他不少人對 GNOME 3 也提出了類似的批評,以至于一些開發(fā)人員將 GNOME 2 源代碼分叉并創(chuàng)建 MATE 桌面。MATE 繼承了 GNOME 2 的傳統(tǒng)任務欄界面。
無論如何,毫無疑問,今天最流行的兩個 Linux 桌面是 KDE 和 GNOME。它們目前的版本都非常成熟,并且功能豐富。KDE 5.16(2019)和 GNOME 3.32(2019)都試圖簡化 Linux 桌面體驗,不過是以不同的方式。GNOME 3.32 繼續(xù)瞄準最簡潔的外觀,刪除所有令人分心的用戶界面元素,以便用戶可以專注于應用程序和工作。而 KDE 5.16 仍舊采用了較為熟悉的任務欄方法,但增加了其他視覺改進,特別是改進了圖標和小部件處理。
GNOME 3.32
每個主要的 Linux 發(fā)行版都提供兼容性庫,因此兼容性不會丟失,用戶可以在 GNOME 上運行 KDE 應用程序,反之亦然。
KDE 和 GNOME 之間的良性競爭使兩個陣營的開發(fā)人員都能夠不斷突破,這是一件好事。無論你使用的是 KDE 還是 GNOME,你都擁有一個集成度很高的現(xiàn)代化桌面。
自 20 世紀 90 年代初期以來,Linux 桌面也已從簡單的窗口管理器發(fā)展為成熟、完整的桌面。最重要的是, Linux 擁有自由軟件中的最佳功能:選擇。