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