關於linux圖形介面的基本知識__linux

來源:互聯網
上載者:User
作者 :GuCuiwen email:win2linux@163.com  

很多 Linux 初學者分不清楚 Linux 和 X 之間 , X 和 Xfree86 之間 , X 和 KDE, GNOME 等之間是什麼關係 . 常常混淆概念 , 我想以比較易於理解的方式說明一下 X,X11,XFREE,WM,KDE,GNOME 等之間的關係 . 由於本人水平有限可能存在錯誤 , 請高手指正 .  

一、Linux本身沒有圖形介面,Linux現在的圖形介面的實現只是Linux下的應用程式實現的 .  
圖形介面並不是 Linux 的一部分 ,Linux 只是一個基於命令列的作業系統 ,Linux 和 Xfree 的關係就相當於當年的 DOS 和 WINDOWS3.0 一樣 ,windows3.0 不是獨立的作業系統 , 它只是 DOS 的擴充 , 是 DOS 下的應用程式層級的系統 , 不是獨立的作業系統 , 同樣 XFree 只是 Linux 下的一個應用程式而已 . 不是系統的一部分 , 但是 X 的存在可以方便使用者使用電腦 .WINDOWS95 及以後的版本就不一樣了 , 他們的圖形介面是作業系統的一部分 , 圖形介面在系統核心中就實現了 , 沒有了圖形介面 windows 就不成為 windows 了 , 但 Linux 卻不一樣 , 沒有圖形介面 Linux 還是 Linux, 很多裝 Linux 的 WEB 伺服器就根本不裝 X 伺服器 . 這也是 WINDOWS 和 Linux 的重要區別之一 .  

二、X是協議,不是具體的某個軟體   
X 是協議 , 就像 HTTP 協議 ,IP 協議一樣 . 這個概念很多初學者甚至學習 LINUX 有一定時間的人都混淆 , 一個基於 X 的應用程式需要運行並顯示內容時他就聯結到 X 伺服器 , 開始用 X 協議和伺服器交談 . 比如一個 X 應用程式要在螢幕上輸出一個圓 , 那麼他就用 X 協議對 X 伺服器說 : 喂 ! 我需要在螢幕上畫一個圓 .X 應用程式只負責告訴 X 伺服器在螢幕的什麼地方用什麼顏色畫一個多大的圓 , 而具體的 " 畫 " 的動作 , 比如這個圓如何產生 , 用什麼顯卡的驅動程式去指揮顯卡完成等等工作是由 X 伺服器來完成的 .X 伺服器還負責捕捉鍵盤和滑鼠的動作 , 假設 X 伺服器捕捉到滑鼠的左鍵被按下了 , 他就告訴 X 應用程式 : 親愛的應用程式先生 , 我發現滑鼠被按下了 , 您有什麼指示嗎 ? 如果 X 應用程式被設計成當按下滑鼠左健後再在螢幕上畫一個正方形的話 ,X 應用程式就對 X 伺服器說 : 請再畫一個正方形 , 當然他會告訴伺服器在什麼地方用什麼顏色畫多大的正方形 , 但不關心具體怎麼畫 -- 那是伺服器的事情 .  
那麼協議是需要具體的軟體來實現的 , 這就是下面我要講的 :  

三、X和XFree86的關係 .  
有了協議就需要具體的軟體來實現這個協議 . 就好比我們有了交通法規就需要交警去根據法規維護交通秩序一樣 .Xfree86 就是這樣一個去根據法規實現協議的 " 交警 ". 他按照 X 協議的規定來完成 X 應用程式提交的在螢幕上顯示的任務 . 當然不僅僅是某個特定的交警才可以去維護和實現這個法規 , 比如還可以由交通協管員來實現交通法規 , 必要的時候警察也可以介入 , 當然前提是他們都要懂得交通法規 , 也就是要懂得協議 . 所以實現 X 協議的軟體也並不只有 XFree86, XFree86 只是實現 X 協議的一個免費 X 伺服器軟體 . 商業上常用 MOTIF, 現在還有 XORG, 還有很多很小的由愛好者寫的小的 X 伺服器軟體 . 甚至可以在 WINDOWS 上有 X 伺服器運行 , 這樣你可以在 Linux 系統上運行一個 X 應用程式然後在另一台 windows 系統上顯示 . 多麼神奇 . 你可以用 google 找到這樣的 X 伺服器軟體 . 只不過在 LINUX 上最常用的是 XFree86.( 現在的 Linux 發行版都用 Xorg 了 ) 順便說一句 , 蘋果電腦的圖形介面用的也是 X 協議 , 而且被認為是做的最好的 X 協議圖形介面 , 並且他對 X 協議的實施是做在系統核心裡的 , 所以效能明顯好很多 , 這就是為什麼很多大型三維圖形設計軟體都是在蘋果平台上的原因 .  
為了便於理解拿 HTTP 協議來比較 :  
協議是 HTTP (hyper text transmission protocol)  
實現這個協議的常用伺服器有 :apache IIS 等   
請求這些伺服器傳輸檔案的客戶有 :IE ,MOZILLA ,NETSCAPE 等 .  
協議是 X  
實現這個協議的常用伺服器有 Xfree86 ,Xorg ,Xnest 等   
請求這些伺服器來完成顯示任務的客戶 : 所有的 X 應用程式 .  
只不過 HTTP 協議的伺服器和用戶端通常都在兩台不同的電腦 ( 伺服器和客戶機 ) 之間來實現 , 所以一般人對這個比較容易理解 . 而 X 協議的伺服器和用戶端程式通常在同一台電腦上 , 因此很多使用者都感到對此很難理解 . 既然是協議 , 那麼肯定和平台無關的 , 因此可以讓 X 應用程式顯示在任何裝有 X 伺服器的遠端電腦上 . 甚至顯示在裝有 Xnest 伺服器的 windows 系統上 . 只不過在大多數情況下 ,X 應用程式都用原生 X 伺服器 , 然後 X 伺服器將顯示結果輸出到原生顯示器 . 這也是很多人不理解 X 是一種協議的原因 .  

四、X和X11R6又是什麼關係 ?  
不知道初學者有沒有注意到 /usr/X11R6 這個目錄 , 這是 XFree 的預設安裝目錄   
X11R6 實際上是 X Protocol version 11 Release 6  
(X 協議第 11 版第六次發行 ) 的意思 , 就是說目前用的 X 協議是第 11 版的 , 然後經過了 6 次小的修正 . 不同版本的 X 協議是不能通訊的 . 就像我們現在 IPV4 和 IPV6 不能通訊一樣 , 不過不用擔心 , 現在的 X 伺服器軟體和 X 應用程式都遵循 X11R6.  
另外 XFree86 3.3.6 XFree86 4.3.6 等這些版本是實現 X 協議的軟體 XFree86 的版本號碼 . 這是初學者經常高混淆的概念 .  
協議版本和實現協議的軟體的版本 -- 這兩個概念的區別你分清楚了嗎 ?  

五、X伺服器和WM(window manager 視窗管理器)之間是什麼關係 .  
平時大家起動圖形介面是怎麼啟動的呢 ?  
如果你是一開己就進入圖形介面那就太遺憾了 . 因為你錯過了瞭解 X 伺服器起動過程的好時機 . 不過沒關係 . 你開啟一個 XTERM 輸入 :  
init 3  
就可以安全的回到字元介面 .  
好了 , 等做完以下實驗你就完全明白 X 和 WM(window manager 視窗管理器 ) 之間是什麼關係了 .  
先輸入以下命令 :  
#startx  
起動圖形介面 , 你看到的是一個和平時使用一樣的完整的圖形介面作業環境 .  
你可以最大化 , 最小化 , 移動 , 關閉視窗等 .  
按 ctrl+alt+backspace 反回字元介面 .  
輸入 :  
#xinit  
再次啟動圖形介面 , 你看到了什麼 , 你看到一個 XTERM. 而且不能移動 . 但是你可以在這個 XTERM 中輸入命令開啟 X 應用程式 , 如果我輸入 :  
#mozilla  
開啟瀏覽器 , 你看到的瀏覽器和平時有什麼不同嗎 ? 他在螢幕中間 , 不能移動 , 不能最小化

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.