歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> linux下的X server:linux圖形界面原理

linux下的X server:linux圖形界面原理

日期:2017/3/1 15:43:06   编辑:關於Linux
linux下的X server:linux圖形界面原理 Moblin Core是在Gnome Mobile的平台上建立。我以前玩Linux,提交的都和圖像沒有關系,連Xwindows都不用啟動,開機後直接進入文本命令行,所以這方面了解得很少,需要學習一下.   嚴格來講,Linux這個詞本身只表示Linux內核,但在實際上人們已經習慣了用Linux來形容整個基於Linux內核,並且使用 GNU工程各種工具和數據庫的操作系統(也被稱為GNU/Linux)。基於這些組件的Linux軟件被稱為Linux發行版。一般來講,一個Linux 發行套件包含大量的軟件,比如軟件開發工具,數據庫,Web服務器(例如Apache),X Window,桌面環境(比如GNOME和KDE),辦公套件(比如OpenOffice.org),等等。GNU組件可以運行於Linux內核之上。整 個內核是基於GNU通用公共許可,也就是GPL( General Pubic License)的,但是Linux內核並不是GNU 計劃的一部分。 一、linux本身沒有圖形界面 linux現在的圖形界面的實現只是linux下的應用程序實現的: 圖形界面並不是linux的一部分,linux只是一個基於命令行的操作系統,linux和Xfree的關系就相當於當年的DOS和WINDOWS 3.0 一樣,windows 3.0不是獨立的操作系統,它只是DOS的擴充,是DOS下的應用程序級別的系統,不是獨立的操作系統,同樣XFree只是 linux下的一個應用程序而已。不是系統的一部分,但是X的存在可以方便用戶使用電腦。WINDOWS 95及以後的版本就不一樣了,他們的圖形界面是操作系統的一部分,圖形界面在系統內核中就實現了,沒有了圖形界面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和XFree86的關系 有了協議就需要具體的軟件來實現這個協議。Xfree86就是這樣一個去根據法規實現協議的"交警"。實現X協議的軟件也並不只有 XFree86,XFree86只是實現X協議的一個免費X服務器軟件。商業上常用MOTIF,現在還有XORG,還有很多很小的由愛好者寫的小的X服務 器軟件。甚至可以在WINDOWS上有X服務器運行,這樣你可以在linux系統上運行一個X應用程序然後在另一台windows系統上顯示。 在LINUX上最常用的是XFree86(現在的linux發行版都用Xorg了)。蘋果電腦的圖形界面用的也是X協議,而且被認為是做的最好的X協 議圖形界面,並且他對X協議的實施是做在系統內核裡的,所以性能明顯好很多,這就是為什麼很多大型三維圖形設計軟件都是在蘋果平台上的原因。 既然是協議,那麼肯定和平台無關的,因此可以讓X應用程序顯示在任何裝有X服務器的遠程計算機上。甚至顯示在裝有Xnest服務器的windows系 統上。只不過在大多數情況下,X應用程序都用本機的X服務器,然後X服務器將顯示結果輸出到本機的顯示器。這也是很多人不理解X是一種協議的原因。 四,X和X11R6又是什麼關系? 不知道初學者有沒有注意到/usr/X11R6這個目錄,這是XFree的默認安裝目錄。X11R6 實際上是X Protocol version 11 Release 6(X協議第11版第六次發行)的意思。不同版本的X協議是不能通信的,不過不用擔心,現在的X服務器軟件和X應用程序都遵循X11R6。另外XFree86 3.3.6 XFree86 4.3.6等這些版本是實現X協議的軟件XFree86的版本號。 五,X服務器和WM(window manager 窗口管理器)之間是什麼關系。 平時大家起動圖形界面是怎麼啟動的呢? 如果一開始就進入圖形界面,可打開一個XTERM輸入init 3,就可以安全的回到字符界面。 先輸入以下命令: # 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。 六,關於KDE和GNOME KDE和GNOME是LINUX裡最常用的圖形界面操作環境,他們不僅僅是一個窗口管理器那麼簡單,kDE是K Desktop Environment的縮寫。他不僅是一個窗口管理器,還有很多配套的應用軟件和方便使用的桌面環境,比如任務欄,開始菜單,桌面圖標等等。 GNOME是GNU Network Object Model Environment的縮寫。和KDE一樣,也是一個功能強大的綜合環境。 另外在其它UNIX系統中,常常使用CDE作為這樣一個環境。 其它的小型窗口管理器有: window maker,after step,blackbox,fvwm,fvwm2,等等都是常用的優秀窗口管理器。REDHAT9中有window maker 但是默認不安裝,大家可以裝來試試。只要xinit再wmaker & 就可以用windowmaker了。 七,linux圖形界面層次關系總結   linux本身-->X服務器<-[通過X協議交談]->窗口管理器(綜合桌面環境)-->X應用程序。
Copyright © Linux教程網 All Rights Reserved