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