X Window系統
一種以位圖方式顯示的軟件窗口系統。誕生于1984,比Microsoft Windows要早。是一套獨立于內核的軟件
Linux上的X Window系統
X Window系統由三個基本元素組成:X Server、X Client和二者通信的通道。
-
X Server:是控制輸出及輸入設備并維護相關資源的程序,它接收輸入設備的信息,并將其傳給X Client,而將X Client傳來的信息輸出到屏幕上(在屏幕上構造方塊(窗口),然后畫出里面的元素 )。
-
X Client:是應用程序的核心部分,它與硬件無關,每個應用程序就是一個X Client。X Client可以是終端仿真器(Xterm)或圖形界面程序,它不直接對顯示器繪制或者操作圖形,而是與X Server通信,由X Server控制顯示。
-
X通信通道 :X Client與X Server之間傳輸信息的媒介 。
X Server
每一套顯示設備只對應唯一的X Server。由系統供應商提供,通常無法被用戶修改 。只是一個普通的用戶程序
自由軟件編寫者或廠商開發出了多種X Server:
- XFree86:一個免費的X Server軟件,2004年棄用GPL協議。
- Xorg:XFree86的衍生版本。這是運行在大多數Linux系統上的X Server,Red Hat Enterprises Linux 5.0上也是如此。
- Accelerated X:由Accelerated X Product開發,在圖形的加速顯示上做了改進。
- X Server suSE:SuSE Team’s開發。
X Client
X Client是X Window中的用戶端程序
多種多樣的X Client程序向X Server發出請求,由X Server運算得出結果,再顯示到指定的地方去,如本地或者遠程的一臺顯示器
X Client無法直接影響視窗行為或顯示效果,它們只能發送一個請求給X Server,由X Server來完成這些的請求
X 通信通道
X通信通道的主體是xlib(X函數庫)
X Client調用xlib,利用相應的通信功能向X Server發出請求
X Server完成任務之后,同樣調用xlib把結果顯示指點的設備上去
X window 特點
在Windows下,構建圖形界面的功能都做在了操作系統里面,你只能使用那些。這個方法很簡單,但是卻不靈活。
Unix和類Unix的操作系統沒有內建這個功能,要使用GUI你就不得不使用窗口系統(X Window)。
X window運行原理
C/S模式應用程序
X Server 為S,X Client 為C
X Client只是單純地執行程序、計算,它只能使用XServer提供的服務進行輸入輸出
X Server是一個管理顯示的進程,必須運行在一個有圖形顯示能力的主機上
X Protocol(X協議)
X Protocol是X Client和X Server進行通信的一套協定 ,支持的網絡協議有TCP/IP、DECnet等 。可以認為X Protocol就是X Client和X Server交互的一種語言 。X Protocol只是一種協議,并不是一個軟件,該協議需要具體的軟件來實現
實現 X protocol的服務器軟件
各種X Server軟件,實質上就是實現了X Protocol的軟件
這些軟件并沒有規定只是在UNIX和類UNIX操作系統上運行,在Windows上也有X Server軟件
在Windows上運行一個X Server,在Linux上運行X Client,X Client顯示在Windows上也是可行的
蘋果電腦的圖形界面用的也是X Protocol
X Server和WM(Window Manager窗口管理器)
X Server只負責建立窗口,在其中寫入文字或者畫圖,控制輸入設備等,
X Server創建的窗口會一個疊一個的堆積在屏幕上,不能操縱和移動,也無法改變大小和最小化
所以需要引入 窗口管理器實現
啟動畫面/背景圖案與顏色/字體/按鈕/菜單/桌面設置/移動/放大/縮小等
窗口管理器有:如FVWM、Afterstep、AMIWM、Blockbox、Enlightenment、WindowMaker、TWM、KVM等
使用了不同的窗口管理器,就有不同風格的窗口外形、桌面設置與菜單
窗口管理器必須運行在X Window上
X Window的啟動和關閉
啟動
- init 5
- startx(已經啟動了WM)
關閉
- 點擊菜單中的退出
- Alt+Ctl+Backspace
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-EixRK1j9-1622687974020)(https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/186e17b4479a42dda5b978c78f3f6922~tplv-k3u1fbpfcp-watermark.image)]