- Linux操作系統案例教程(CentOS Stream 9/RHEL 9):微課版
- 張平編著
- 1383字
- 2023-11-15 18:34:35
1.2.2 圖形用戶界面概述

圖形用戶界面概述
Linux發行版通常為用戶提供了圖形用戶界面(Graphical User Interface,GUI)。需要注意的是,Linux操作系統本身并沒有GUI。Linux發行版的GUI解決方案通常基于X Window System實現。GUI的引入,拓寬了Linux的應用場景,降低了初學者使用Linux操作系統的難度。而諸如排版、制圖、多媒體等典型的桌面應用,更是離不開GUI的支持。
1.X Window System
X Window System由麻省理工學院于1984年提出。它是UNIX及類UNIX系統最流行的窗口系統之一,是一款跨網絡與跨操作系統的窗口系統,可用于幾乎所有的現代操作系統。需要注意的是,它與微軟公司的Windows操作系統是不同的。微軟公司的Windows是一種GUI的操作系統,圖形環境與內核緊密結合,可直接訪問Windows內核。然而,X Window System只是Linux操作系統上的一個可選組件。
X Window System采用“服務器/客戶端”架構,能夠通過網絡進行GUI的存取。X Window System結構如圖1-1所示,它由X服務器(X Server)、X客戶端(X Client)和通信協議(X Protocol)3個部分組成。X Client和X Server并不一定位于同一臺計算機,兩者基于X Protocol進行通信。

圖1-1 X Window System結構
有一定計算機網絡基礎的讀者,可能會對圖1-1中X Server和X Client所處的位置產生疑惑:X Client竟然出現在遠程主機中。在讀者接觸到的大多數C/S架構中,兩者的位置應該是反過來的。注意,這里的X Server和X Client是根據圖像渲染的職責來區分的。X Server管理本地主機的大部分硬件(例如鍵盤、鼠標、顯示器),接收用戶輸入并進行最終顯示結果的渲染工作。X Server收到用戶輸入后,將請求數據發送給相應X Client。X Client通過調用具體的應用來處理數據,產生結果后再將結果返回給X Server。X Server維護一個獨立的顯示控制器。X Server通過響應X Client的請求,在其所管理的顯示設備上,完成建立窗口、繪制圖形和文字等操作。
X Window System基于X Protocol完成服務器和客戶端之間的通信。1987年發布了該協議的第11版。該版協議較為完善,且被廣泛應用,因此,后來X Window System也被稱為X11。早期Linux所使用的X Window System的核心都是由XFree86計劃所提供的,因此許多資料習慣將X Windows System與XFree86兩個概念混用。XFree86計劃始于1992年,主要維護X11R6,包括對新硬件的支持以及新增功能等。X11R6的維護工作后來由Xorg基金會接手。
2.KDE和GNOME
X Window System提供了一個建立窗口的標準,具體的窗口形式由窗口管理器(Window Manager)決定。窗口管理器是X Window System的組成部分,它用來控制窗口的外觀,并提供用戶與窗口交互的方法。我們可以將窗口管理器看作一類特殊的X客戶端程序,其功能通過向X Server發送命令來實現。
對于具有GUI的操作系統的用戶來說,僅有窗口管理器提供的功能是不夠的。為此,開發人員在其基礎上,增加了各種功能和應用程序(如會話程序、面板、登錄管理器、桌面程序等),提供更完善的圖形用戶環境,也就是桌面環境(Desktop Environment)。
KDE和GNOME是最常見的Linux桌面環境。KDE(K Desktop Environment),即K桌面環境,由一位德國人于1996年10月創建。KDE中使用的Qt鏈接庫早期并未采用開源協議,這樣限制了其應用,也推動了GNOME(GNU Network Object Model Environment,GNU網絡對象模型環境)的誕生。需要說明的是,目前KDE已經支持GNU GPL、GNU LGPL和Commercial等不同類型的授權協議。
GNOME是GNU計劃的正式桌面環境,也是開放源碼運動的一個重要組成部分。GNOME計劃于1997年8月由米格爾·德·伊卡薩(Miguel de Icaza)和費德里科·梅納(Federico Mena)發起,目的是取代KDE。GNOME、KDE都有自己的窗口管理器,GNOME曾經使用Metacity作為其窗口管理器,2011年,GNOME 3發表后,默認的窗口管理器被替換成Mutter。KDE使用的是KWin,也有一些單獨的窗口管理器,如FVWM、IceWM等。CentOS默認提供GNOME與KDE。Red Hat默認采用GNOME。用戶可以根據自己的喜好安裝并配置不同類型的桌面環境。