新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 關于linux圖形界面的基本概念

        關于linux圖形界面的基本概念

        作者: 時間:2012-08-29 來源:網絡 收藏

        很多LINUX的初學者分不清除和X之間,X和Xfree86之間,X和KDE,gnome等之間是什么關系.常?;煜?a class="contentlabel" href="http://www.104case.com/news/listbylabel/label/概念">概念,我想以比較易于理解的方式說明一下X,X11,XFREE,WM,KDE,GNOME等之間的關系.由于本人水平有限肯可能存在錯誤,請高手指正.

        本文引用地址:http://www.104case.com/article/148500.htm

        一,本身沒有界面,現在的實現只是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.順便說一句,蘋果電腦的圖形界面用的也是X協議,而且被認為是做的最好的X協議圖形界面,并且他對X協議的實施是做在系統內核里的,所以性能明顯好很多,這就是為什么很多大型三維圖形設計軟件都是在蘋果平臺上的原因.

        為了便于理解拿HTTP協議來比較:

        協議是HTTP (hyper text transmissiON protocol)

        實現這個協議的常用服務器有:apache IIS 等

        請求這些服務器傳輸文件的客戶有:IE ,MOZILLA ,NETSCAPE等.

        四,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 XFree8*.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

        打開瀏覽器,你看到的瀏覽器和平時有什么不同嗎?他在屏幕中間,不能移動,不能最小化,不能最大化,沒有邊框.

        為什么同樣一個X應用程序會有這樣的不通呢?因為我們用startx起動圖形界時候同時也啟動了一個WM(即窗口管理器),如果你用KDE就起動了KDE,如果你用GNOME就起動了GNOME.但是你用xinit起動圖形界時候卻沒有起動WM.

        現在你明白窗口管理器的作用了嗎?他的作用就是最大化,最小化,移動,關閉窗口等.而這些不是X服務器來負責完成的.

        如果你用xinit起動圖形界面并在xterm中輸入twm,看看會有什么?

        xterm被加上了一個邊框,你可以通過這個邊框移動,最大化,最小化這個xterm,twm就是XFree86中自帶的窗口管理器,是一個比較簡陋的最簡單的窗口管理器,但是他具有窗口管理器的全部特征.

        如果你不輸入twm而輸入gnome-session就可以起動GNOME

        或者輸入startkde起動KDE.

        通過以上的實驗你就可以清楚的明白他們之間的關系.

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

        linux相關文章:linux教程



        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 淅川县| 盱眙县| 阳泉市| 威远县| 庆元县| 西乌| 增城市| 新晃| 天气| 绥中县| 安陆市| 博白县| 大荔县| 孝义市| 外汇| 时尚| 镇巴县| 措勤县| 铜梁县| 进贤县| 赞皇县| 屯门区| 天柱县| 万年县| 海兴县| 丰台区| 荔波县| 无棣县| 湟源县| 西平县| 五家渠市| 平远县| 扎鲁特旗| 保康县| 平凉市| 和顺县| 广德县| 田阳县| 简阳市| 曲阳县| 淮南市|