成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Linux客戶端、服務器、窗口管理器的關系

系統 Linux
嵌入式linux中文站發現很多LINUX初學者在學習linux圖形方面的知識時會遇到一些概念,如:X、X11、 Xfree86、WM、KDE、GNOME、QT、QT/E、Qtopia、DirectFB、Framebuffer、顯卡加速驅動等等。理解它們之間 是什么關系,對我們學習來說是非常重要的。寫這篇文章的目的,就是想讓大家明晰這些概念及它們之間的關系。

 嵌入式linux中文站發現很多LINUX初學者在學習linux圖形方面的知識時會遇到一些概念,如:X、X11、 Xfree86、WM、KDE、GNOME、QT、QT/E、Qtopia、DirectFB、Framebuffer、顯卡加速驅動等等。理解它們之間 是什么關系,對我們學習來說是非常重要的。寫這篇文章的目的,就是想讓大家明晰這些概念及它們之間的關系。

一、Linux操作系統和圖形的關系

linux本身沒有圖像界面,linux現在的圖像界面的實現只是linux下的應用程序實現的。圖像界面并不是linux的一部分,linux只是個基于命令行的操作系統。Linux內核為linux系統中的圖形界面提供了顯示設備驅動。

二、X的概念

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

三、X11、X11R6的概念

X11表示X協議的第16版。X11R6是X協議第11版第六次發行。

四、XFree86是什么?

XFree86 是X Windows server的X11R6執行程序。有了協議就需要具體的軟件來實現這個協議。Xfree86是按照X協議的規定來完成X應用程序提交的在屏幕上顯示的任 務。實現X協議的軟件也并不只有XFree86, XFree86只是實現X協議的一個免費X服務器軟件。有些甚至能夠在WINDOWS上有X服務器運行,這樣您能夠在linux系統上運行一個X應用程序 然后在另一臺windows系統上顯示。只是在LINUX上最常用的是XFree86。不過現在的linux發行版大多用Xorg了。

XFree86內容包括X服務器,字體, 一個X下的終端程序(xterm),一個簡單的窗口管理器(twm),很多有用的小工具, 顯示輸出驅動和包括鍵盤鼠標在內的許多輸入模塊。

五、WM(window manager 窗口管理器)

在紅帽系統中,可以設置啟動級別3,進入命令行終端,然后運行:

#startx

起動圖像界面,您看到的是個和平時使用相同的完整的圖像界面操作環境。能夠最大化,最小化,移動,關閉窗口等。 按ctrl+alt+backspace反回字符界面 。輸入:

#xinit

再次啟動圖像界面,您看到了什么,您看到一個XTERM(一個運行于X下的終端程序)。而且不能移動。但是您能夠在這個XTERM中輸入命令打開X應用程序,假如輸入:

#mozill

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

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

窗口管理器的作用就是最大化、最小化、移動、關閉窗口等。而這些不是X服務器來負責完成的。假如您用xinit起動圖像界面并在xterm中輸入twm,看看會有什么?

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

六、KDE和GNOME

KDE 和GNOME是LINUX里最常用的圖像界面操作環境,他們不但僅是個窗口管理器那么簡單, KDE是K Desktop Environment 的縮寫,他不但是個窗口管理器,更有很多配套的應用軟件和方便使用的桌面環境,比如任務欄,開始菜單,桌面圖標等等。GNOME是GNU Network Object Model Environment 的縮寫,和KDE相同,也是個功能強大的綜合環境。

七、QT、QT/E、Qtopia

Trolltec(奇趣)的QT產品有很多,如:QT、QT/E、Qtopia等。目前為諾基亞所有。

QT 泛指QT的所有桌面版本,如:QT/X11,QT Windows,Qt Mac等。由于QT最早是在Linux中隨KDE流行而來,所有通常認為QT都是基于linux下的QT/X11。QT是一個完整的C++應用程序開發框 架。它包含一個類庫,和用于跨平臺開發及國際化的工具。Qt API在所有支持的平臺上都是相同的,Qt工具在這些平臺上的使用方式也一致, 因而Qt應用的開發和部署與平臺無關。在桌面系統中,QT程序通常是符合X協議的應用程序,它需要X服務器的支持。

QT/E 是用于嵌入式Linux系統的QT版本。QT/E中去掉了X lib的依賴而直接工作于Frame Buffer上,因而應用程序處理過程效率比較高。它的運行只要有Framebuffer設備就可以了,不需要X服務器的支持。但其本身運行也是有服務器 和客戶端的概念。在服務器沒有啟動前運行QT/E程序,需要在加“-qws”來啟動服務器。如:

#./hello –qws

在QT4以后,QT/E改名位Qtopia Core了,并且集成到Qtopia成品中去了。

QT/E 是Frame Buffer設備運行的。具有簡潔、高效等特點。但是了解Frame Buffer設備的工程師會發現,Frame Buffer設備無法實現硬件加速功能。這也限制了基于Framebuffer設備的圖形解決方案的發展。事實上桌面上的XFree86默認情況下是不支 持Framebuffer設備的,XFree86直接操作顯卡,充分利用顯卡加速功能(下個主題將介紹顯卡加速方面的內容)。XServer兼容最多類型 的顯示卡,一般來講,現在市面上80%以上的顯示卡都能夠被這個Server支持。但有時也會有一些顯卡不能不正確設別,這時可以采用Frame Buffer模式來支持顯示器。主要是用到了XFree86的 frame buffer Server(XF86_FBDev)。需要修改XFree86的配置文件/etc/X11/XF86Config,及在/etc/grub.conf中 加入VGA=XXX功能。

Qtopia是一個面向嵌入式Linux的全方位應用程序開發平臺,同時也是用于基于Linux的PDA(個人數字助理),智能電話(Smartphone)以及其他移動設備的用戶界面。

八、DirectFB、顯卡加速驅動

首先DirectFB類似于桌面中的XFree86。桌面中的XFree86不需要Frame Buffer設備,而DirectFB需要。

顯卡加速 在嵌入式GUI中需要實現多圖形功能,包括圖形繪制以及拷貝等。其中的許多功能需要進行大量的數據傳遞(如圖形拷貝),或者需要進行大量的數值運算(如畫 樣條曲線)。如果這些功能都由純軟件實現的話,會占用大量的CPU時間并且需要傳遞大量的數據,從而影響了圖形性能。許多顯卡芯片帶有圖形處理器,能夠從 硬件上實現一部分圖形功能。支持硬件加速的圖形庫可以通過圖形處理器實現這些圖形功能,從而減輕了CPU的負擔并減少了數據在總線上的傳輸時間,提高了圖 形性能。

DirectFB項目是由德國Convergence公司推動的Open source計劃的一部分,它是專門為滿足嵌入式設備要求而開發的小巧、強大、靈活和易于使用的圖形系統,并且試圖成為一個建構于Linux Framebuffer Device之上的新圖形標準。它在FrameBuffer的基礎上提供了圖形加速、輸入設備處理提取、透明窗口和多重顯示層的功能,能夠對嵌入式系統 GUI有較好的支持。與那些通用的嵌入式GUI系統相比,它具有非常簡潔、高效的體系結構和硬件圖形加速功能。

DirectFB依賴已有的內核接口即幀緩沖設備(/dev/fb)訪問圖形處理器,也就是說DireetFB需要一個 正在工作的幀緩沖驅動。Linux內核有專門的幀緩沖驅動支持某些圖形處理器。對于不支持的圖形處理器,內核提供VE—SA幀緩沖(這種幀緩沖有一些限 制)。DirectFB利用幀緩沖設備做如下工作:

◆ 設置顯卡工作模式(分辨率,顏色深度,時序)

◆ 映射顯存

如果某種顯卡被DirecFB支持并且在Linux內核中也有這種圖形處理器的幀緩沖驅動,DirectFB利用幀緩沖設備做如下額外的工作:

◆ 映射顯存IO端口(如果加速驅動在用戶空間實現,需要這步。如果在內核空間實現,則不需要映射,但需要有相應的驅動接口。也可以重新寫一個驅動程序來專門實現加速功能)

◆ 關閉幀緩沖驅動中自帶的加速功能

針對具體的圖形操作(例如圖片拷貝、區域填充、區域拷貝、畫線、圖形拉伸等),DirectFB加速驅動(對映射到用戶 空間的控制寄存器訪問)訪問顯存映射的圖形處理器I/O端口向圖形處理器提交命令,由顯卡來實現相應的命令。也就是說真正的硬件加速完全是在用戶空間實 現。這樣DirectFB就可以對它支持的圖形處理器提供最大限度的硬件圖形加速。這些加速功能需要顯卡控制器的支持。一些嵌入式的顯示控制器中并沒有相 應的功能。需要外接顯卡來實現。

上層APl支持DirectFB的有:XdirectFB、DirectFBGL、GTK+、DFBTerm、DFBSee、DFBPoint、MythTV、Qt on DirectFB、SDL等。

DirectFB也需要窗口管理器。DirectFB采用模塊化設計,它并不依賴于某種具體的窗口管理器,只要具體的窗 口管理器實現接口DirectFB中的CoreWMFuncs中定義的函數,就可以掛到DirectFB中運行。DirectFB自帶有兩個窗口管理 器:default和unique,可以在配置文件中用wm=xxx來選擇用哪一個作為當前的窗口管理器。

通過上面8個方面,介紹了X、X11、Xfree86、WM、KDE、GNOME、QT、QT/E、Qtopia、DirectFB、Framebuffer、顯卡加速驅動等概念及它們的一些關系。

【編輯推薦】

  1. Chkdsk大躍進:Win8磁盤檢測時間大大縮短
  2. Linux下使用mke2fsk格式化分區的方法
  3. Ubuntu 11.10 利用終端環境備份還原
【責任編輯:IT瘋 TEL:(010)68476606】

責任編輯:趙寧寧
相關推薦

2009-08-18 12:51:19

服務器+客戶端

2010-12-28 14:53:29

服務器管理器

2009-06-27 20:32:00

LinuxNFS客戶端

2011-06-09 10:51:26

Qt 服務器 客戶端

2014-01-17 15:23:55

Nagios

2010-06-09 14:39:58

2009-12-25 10:47:17

DNS服務器

2009-09-16 16:09:41

NIS服務器客戶端NIS

2019-08-28 15:19:15

PythonTCP服務器

2018-12-19 10:31:32

客戶端IP服務器

2018-07-17 09:59:10

PythonUDP服務器

2018-12-18 10:47:37

2023-08-15 15:09:18

LinuxCompiz

2010-01-11 13:05:24

VNC server配

2011-03-21 14:53:27

Nagios監控Linux

2011-04-06 14:24:21

Nagios監控Linux

2010-03-01 16:10:32

Linux Samba

2010-10-11 17:46:01

mysql客戶端

2018-12-20 08:50:53

TCPIP服務器

2014-06-01 11:03:13

VDI零客戶端
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产情侣在线看 | 日韩电影a | 久久大陆 | 日本特黄a级高清免费大片 国产精品久久性 | 久久久久久综合 | 都市激情亚洲 | 男女午夜免费视频 | 成人免费观看男女羞羞视频 | 夜夜精品浪潮av一区二区三区 | 男女羞羞视频在线免费观看 | 久久久久久久久蜜桃 | 天天操网| 久久国产成人精品国产成人亚洲 | 91久久久久久久久久久 | 久久久久久久久国产成人免费 | 亚洲人在线观看视频 | 国产欧美一区二区三区日本久久久 | 夜久久 | 国产一区二区高清在线 | 蜜臀av日日欢夜夜爽一区 | 国产免费一区二区三区 | 91国内精品久久 | 奇米超碰在线 | 免费观看黄| 久久久久久国产 | 精品中文字幕视频 | 亚洲精品中文字幕中文字幕 | 国产精品1区2区 | 妖精视频一区二区三区 | 一区二区免费在线视频 | 狠狠综合久久av一区二区老牛 | 国产精品视频999 | 男女羞羞视频在线 | 青青草国产在线观看 | 国产做a爱免费视频 | 涩涩鲁亚洲精品一区二区 | 成人免费区一区二区三区 | 欧美日韩亚洲国产 | 欧美激情久久久 | 91久久国产综合久久 | 精品一区二区三区在线观看国产 |