Linux 桌面史話
我第一次安裝 Linux 是在 1993 年。那時,安裝這種操作系統沒有太多的選擇。早期,許多人只是從別人那裡複製一個運行中的鏡像。然後有人有了一個很好的想法,創建一個 Linux 的「發行版」,讓你可以自定義要安裝的軟體。這就是 Softlanding Linux 系統(SLS),也是我首次接觸 Linux。
當時我的 386 PC 雖然內存不多,但已經足夠了。SLS 1.03 需要 2MB 的內存才能運行,如果要編譯程序,則需要 4MB 的內存。如果要運行 X 窗口系統,則需要多達 8MB 的內存!而我的電腦正好有足夠的內存來運行 X 窗口系統。
因為我是在命令行中成長的,所以圖形化的用戶界面對我來說並不重要,但它確實很方便,我可以在不同的窗口中運行應用程序,並在任務間輕鬆切換。
從我第一次嘗試 Linux 開始,我就迷上了它。從那以後,我一直在台式機上使用 Linux。和許多人一樣,我也曾有一段時間以雙引導配置運行 Linux,這樣我就可以跳回到 MS-DOS 和 Windows 來運行某些程序。直到 1998 年,我終於冒了個險,全面投身於 Linux 之中。
在過去的 26 年中,我看著 Linux 桌面逐漸成熟。在這段時間裡,我還嘗試了各種有趣的桌面環境,下面我來分享一下 Linux 桌面的歷史。
X 和窗口管理器
Linux 上的第一個「桌面」還不是桌面。相反,它們是運行在 X 窗口系統上的「 窗口管理器 」(WM)。X 提供了圖形用戶界面的基本構件,比如在屏幕上創建窗口,並提供鍵盤和滑鼠輸入。就其本身而言,X 的用處並不大。為了使 X 圖形環境變得有用,你需要一種方法來管理會話中的所有窗口。這就出現了 窗口管理器 。運行 xterm 或 xclock 之類的 X 程序就會在一個窗口中打開該程序。窗口管理器可以跟蹤窗口並進行基本的內部管理,例如讓你可以來回移動窗口並將其最小化。其餘的事情取決於你自己。你可以通過將程序名列在 ~/.xinitrc
文件中以在 X 開始時啟動這些程序,但是通常,你會從 xterm 中運行新程序。
在 1993 年,最常見的窗口管理器是 TWM,它的歷史可以追溯到 1988 年。TWM 相當簡單,僅僅提供了基本的窗口管理功能。
![TWM on SLS 1.05](/data/attachment/album/202004/03/142516eu4s0ryoo6ps930u.png "TWM on SLS 1.05")
SLS 1.05 上的 TWM,顯示了 xterm、xclock 和 Emacs 編輯器
另一個早期的窗口管理器是 OpenLook 虛擬窗口管理器(OLVWM)。OpenLook 是 Sun 微系統公司在 20世紀 80 年代開發的圖形用戶界面,後來被移植到其它 Unix 平台。作為一個虛擬窗口管理器,OLVWM 支持多個工作區。
![OLVWM on SLS 1.05](/data/attachment/album/202004/03/142517ki2je81uj9ebb6ct.png "OLVWM on SLS 1.05")
SLS 1.05 上的 OLVWM,顯示了 xterm 和虛擬工作區選擇器
當 Linux 開始流行起來的時候,沒多久就有人創建出性能更流暢、界面更好的新窗口管理器。這些新的窗口管理器中首先出現的是虛擬窗口管理器 FVWM。FVWM 比 TWM 或 OLVWM 更具現代感。但是,我們仍然沒有桌面。
![FVWM on SLS 1.05](/data/attachment/album/202004/03/142517lbgicv6z7diitzvz.png "FVWM on SLS 1.05")
SLS 1.05 上的 FVWM,顯示了 xterm 和文件管理器
以現代的眼光來看,TWM 和 FVWM 可能看起來很樸素。但重要的是要想想當時其它圖形環境是什麼樣子。 Windows 當時的版本看起來也相當簡單。Windows 版本 1 到版本 3 使用了一個稱為「程序管理器」的普通啟動器。
![Windows 3.11](/data/attachment/album/202004/03/142518lkreu6l4mnv6ftff.png "Windows 3.11")
Windows 3.11,顯示程序管理器和記事本編輯器
1995 年 8 月,微軟發布了 Windows 95,改變了現代 PC 桌面的格局。當然,我當時對此印象很深刻。我曾覺得 Windows 3.x 笨拙而醜陋,但 Windows 95 卻流暢而漂亮。更重要的是,我們現在將 Windows 95 視為「桌面」。新的「桌面」隱喻是一個巨大的進步。你可以在桌面上放置圖標——事實上,Windows 95 提供了兩個默認的桌面圖標,分別是「我的電腦」(用於打開文件管理器)和「回收站」(用於放置以後要刪除的文件)。
但是,更重要的是,Windows 95 桌面的意味著整合。程序管理器不見了,取而代之的是屏幕底部的任務欄,可讓你使用更簡單的「開始」菜單啟動新程序。任務欄是多功能的,還通過一系列的按鈕顯示了你正在運行的程序,而托盤顯示了時間、揚聲器音量和其它簡單的控制項。你可以在這個新桌面上右鍵單擊任何對象, Windows 95 會為你提供一個上下文相關的菜單,其中又你可以執行的操作。
![Windows 95](/data/attachment/album/202004/03/142520fy6yua465u2giaqv.png "Windows 95")
Windows 95,顯示了記事本編輯器
與以前版本的 Windows 甚至其它 Linux 窗口管理器相比,Windows 95 的界面更加流暢並且易於使用。值得一提的是,Linux 開發人員創建了一個模仿 Windows 95 界面的 FVWM 的新版本。名為 FVWM95 的新窗口管理器仍然不是桌面,但它看起來非常漂亮。新的任務欄讓你可以使用「開始」菜單啟動新的 X 程序。任務欄還可以使用類似於 Windows 95 的按鈕顯示了正在運行的程序。
![FVWM95 on Red Hat Linux 5.2](/data/attachment/album/202004/03/142521cmc9iqlqiu6niqjh.png "FVWM95 on Red Hat Linux 5.2")
在 Red Hat Linux 5.2 上的 FVWM95,顯示了 xterm 和一個帶有 xterm 圖標、文件管理器和其他程序的快速訪問程序啟動器
雖然 FVWM95 和其他窗口管理器都在改進,但核心問題仍然存在:Linux 並沒有真正的桌面。它具有一堆窗口管理器,僅此而已。使用圖形用戶界面的 Linux 應用程序(基本上意味著它們是 X 應用程序)看起來形態各異且工作方式也不同。除了 X 窗口系統提供的簡單的純文本複製/粘貼功能外,你不能從一個應用程序複製和粘貼到另一個應用程序里。Linux 真正需要的是在其圖形用戶界面中進行徹底的重新打造,以創建它的第一個桌面。
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 等普通窗口管理器相比,它有了明顯改進。
![KDE 1.0](/data/attachment/album/202004/03/142526iao96df8affatt28.png "KDE 1.0")
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](/data/attachment/album/202004/03/142543us4ft4cbbt7jt4tf.png "GNOME 1.0")
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](/data/attachment/album/202004/03/142601myfdvn0zkeq0yyky.png "KDE 2.2.2 (2001) showing the Konqueror browser")
KDE 2.2.2(2001),顯示了 Konqueror 瀏覽器。圖片來源:Paul Brown / KDE
![KDE 3.2.2](/data/attachment/album/202004/03/142618ibssww87ch8gbv8c.png "KDE 3.2.2")
Fedora Core 2 上的 KDE 3.2.2(2004),顯示了 Konqueror 文件管理器(使用 Fedora Core 2 主題)
GNOME 2 也使用了任務欄概念,但將任務欄一分為二:屏幕頂部的任務欄用於啟動應用程序並響應桌面提示,屏幕底部的任務欄用於顯示正在運行的應用程序。我把這兩個任務欄稱之為「你可以做的事情」(頂部)和「你正在做的事情」(底部)。除了精簡的用戶界面外,GNOME 還添加了由 Eazel 開發的更新過的文件管理器,名為 Nautilus。
![GNOME 2.6.0](/data/attachment/album/202004/03/142622g2ux5d90dz92677z.png "GNOME 2.6.0")
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](/data/attachment/album/202004/03/142652a01ev1yvmy17sg4g.png "KDE 4.6")
KDE 4.6,顯示 Gwenview 圖像查看器。圖片來源:KDE
2011 年,GNOME 以一個新的桌面概念徹底改變了走向。GNOME 3 旨在創建一個更簡單、更精簡的桌面體驗,使用戶能夠專註於自己的工作。任務欄消失了,取而代之的是屏幕頂部的黑色狀態欄,其中包括音量和網路控制項,顯示了時間和電池狀態,並允許用戶通過重新設計過的菜單啟動新程序。
菜單的變化最具最戲劇性。單擊「活動」菜單或將滑鼠移到「活動」的「熱角」,所有打開的應用程序會顯示為單獨的窗口。用戶還可以從「概述」中單擊「應用程序」選項卡以啟動新程序。「概述」還提供了一個內部集成的搜索功能。
![GNOME 3.0](/data/attachment/album/202004/03/142711om9hq79omoxxmmr7.png "GNOME 3.0")
GNOME 3.0,顯示 GNOME 圖片應用程序。圖片來源:GNOME
![GNOME 3.0](/data/attachment/album/202004/03/142729sqkmvml35alkhl5k.png "GNOME 3.0")
GNOME 3.0,顯示活動概述。圖片來源:GNOME
你的桌面之選
擁有兩個 Linux 桌面意味著用戶有很大的選擇餘地。有些人喜歡 KDE,而另一些人喜歡 GNOME。沒關係,選擇最適合你的桌面就行。
可以肯定的是,KDE 和 GNOME 都有擁護者和批評者。例如,GNOME 因為放棄任務欄而改成「活動概述」而受到了不少批評。也許最著名的批評者是 Linus Torvalds,他在 2011 年大聲斥責並拋棄了新的 GNOME,將其視為「邪惡的爛攤子」,然後在兩年後又回到了 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](/data/attachment/album/202004/03/142737nw3l58udxssuz3q8.png "KDE 5.16 Plasma")
KDE 5.16 Plasma。圖片來源:KDE
![GNOME 3.32](/data/attachment/album/202004/03/142754f1nidozdgr41a4ga.png "GNOME 3.32")
GNOME 3.32。圖片來源:GNOME
同時,你也不會完全失去它們之間的兼容性。每個主要的 Linux 發行版都提供了兼容性庫,因此你可以在運行 GNOME 的同時來運行 KDE 應用程序。當你真正想使用的應用程序是為其他桌面環境編寫的,這一點非常有用。你可以在 GNOME 上運行 KDE 應用程序,反之亦然。
我認為這種態勢不會很快改變,這是一件好事。KDE 和 GNOME 之間的良性競爭使這兩個陣營的開發人員可以避免故步自封。無論你使用 KDE 還是 GNOME,你都將擁有一個集成度很高的現代化桌面。而最重要的是,這意味著 Linux 擁有自由軟體最好的特點:選擇。
via: https://opensource.com/article/19/8/how-linux-desktop-grown
作者:Jim Hall 選題:lujun9972 譯者:wxy 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive