新聞中心

X-Window系統(tǒng)介紹

作者: 時(shí)間:2011-03-02 來(lái)源:網(wǎng)絡(luò) 收藏
三.X的設(shè)計(jì)原則

本文引用地址:http://butianyuan.cn/article/150996.htm

  X的設(shè)計(jì)原則,早在最初仍在麻省理工學(xué)院的階段(1984年)就已經(jīng)成形,由Bob Scheifler和Jim Gettys兩人制訂出X最早的開(kāi)發(fā)、強(qiáng)化、改進(jìn)原則,原則大體如下:

  1、除非沒(méi)有它就無(wú)法完成一個(gè)真正完整的應(yīng)用程序,否則不用增加新的功能。

  2、決定一個(gè)系統(tǒng)不是什么和決定它是什么同樣重要。與其去適應(yīng)整個(gè)世界的需要,寧可使得系統(tǒng)可以擴(kuò)展,如此才能以持續(xù)兼容的方式來(lái)滿(mǎn)足新增需求

  3、只有完全沒(méi)實(shí)例時(shí),才會(huì)比只有一個(gè)實(shí)例來(lái)的糟。

  4、如果問(wèn)題沒(méi)完全弄懂,最好不要去解決它

  5、如果可以通過(guò)10%的工作量得到90%的預(yù)期效果,應(yīng)該用更簡(jiǎn)單的辦法解決。

  6、盡量避免復(fù)雜性。

  7、提供機(jī)制而不是策略,有關(guān)用戶(hù)界面的開(kāi)發(fā)實(shí)現(xiàn),交給實(shí)際應(yīng)用者自主。(這和驅(qū)動(dòng)開(kāi)發(fā)的思想一脈相承)

  之后,上述原則中的第一項(xiàng)原則在設(shè)計(jì)X11時(shí)被加以修改,修訂成:“除非已有真正的應(yīng)用程序,真的需要X為其修訂、增訂等支持,否則不會(huì)為X增加新功能。”X基本上一直遵循這些原則,參考實(shí)現(xiàn)的擴(kuò)展及改進(jìn)也是以此原則的角度來(lái)著手,也因?yàn)榉钚猩鲜鲈瓌t,使至今的最新版X仍能與最初(1987年)發(fā)布的協(xié)議標(biāo)準(zhǔn)近乎完全兼容。

  這些原則性的東西短短幾句話,就為一個(gè)龐大項(xiàng)目奠定了一個(gè)良好的基調(diào)和發(fā)展方向,使X問(wèn)世以來(lái)經(jīng)久不衰,沒(méi)有這幾個(gè)原則是做不到的。

  四.X-Window的功能

  X-Window提供了一組非常底層的服務(wù),客戶(hù)端程序發(fā)送請(qǐng)求給X-Window, X Window根據(jù)請(qǐng)求完成相應(yīng)服務(wù)。通過(guò)這些服務(wù),客戶(hù)端程序可以構(gòu)建期望的用戶(hù)界面。根據(jù)不同的功能,可以把這些服務(wù)分為以下幾大類(lèi):

  1、處理輸入

  X-Window從鍵盤(pán)和鼠標(biāo)接受輸入,這些輸入數(shù)據(jù)被當(dāng)作”事件”傳送給適當(dāng)?shù)目蛻?hù)端程序。至于哪個(gè)窗口應(yīng)該接受到這些事件,是依賴(lài)于窗口管理器的(窗口管理器實(shí)際上也是一個(gè)客戶(hù)端),典型的事件包括按鍵,鼠標(biāo)移動(dòng),鼠標(biāo)按下/放開(kāi)等。

  輸入設(shè)備往往是與硬件平臺(tái)相關(guān)的,而且又是獨(dú)占資源,所以用X-Window管理是理所當(dāng)然的。應(yīng)用程序通常不需要關(guān)心具體的設(shè)備,只要處理相應(yīng)的事件就行了,像mouse和筆點(diǎn)可能發(fā)出同樣的事件,而應(yīng)用程序不用區(qū)分它們。輸入事件也可以通過(guò)XTest擴(kuò)展,由軟件模擬出來(lái)的(通常用來(lái)實(shí)現(xiàn)軟件鍵盤(pán))

  2、按層次形組織窗口

  X-Window提供服務(wù)讓客戶(hù)端程序創(chuàng)建/銷(xiāo)毀窗口,所謂的窗口就是屏幕上的矩形區(qū)域,它是可以層層嵌套的,有很多操作可以作用于窗口(如,查詢(xún)或改變窗口的大小和位置等),X-Window的主要功能之一就是負(fù)責(zé)管理這種按層次形組織的窗口。

  不過(guò)X-Window管理這些窗口是被動(dòng)進(jìn)行的,由窗口管理器根據(jù)用戶(hù)的行為決定。它請(qǐng)求X-Window做相應(yīng)的動(dòng)作,比如移動(dòng)窗口,調(diào)整窗口的大小,改變窗口的前后關(guān)系等等。第一次接觸X-Window時(shí),得知窗口管理器是一個(gè)普通的客戶(hù)端時(shí),我覺(jué)得驚訝,這種設(shè)計(jì)真是太先進(jìn)了,其實(shí)它正是遵循了提供機(jī)制而不是策略這一原則。

  現(xiàn)在已經(jīng)有很多窗口管理器的實(shí)現(xiàn)可用,它們提供不同的風(fēng)格和功能,有的用于PC,有的用于嵌入式系統(tǒng),像matchbox就是在嵌入式上比較流行的,像Nokia的N770/N800就是用的matchbox。

  3、提供圖形操作

  X-Window提供了一些基本的畫(huà)圖操作,如畫(huà)直線、矩形、圓弧和多邊形等。這些圖形的顏色、線寬、填充類(lèi)型都可以由客戶(hù)端程序指定。X-Window同時(shí)提供了許多位圖操作,這些位圖操作可以作用于了窗口的各個(gè)區(qū)域。

  X-Winwod還會(huì)充分挖掘硬件的加速特性,像填充、畫(huà)直線和圖像疊加等操作,如果硬件支持相應(yīng)的加速功能,就可以通過(guò)硬件實(shí)現(xiàn),否則就用軟件實(shí)現(xiàn)。

  4、提供文本和字體操作

  X-Window提供了字體相關(guān)的操作??蛻?hù)端程序可以請(qǐng)求X-window在指定的區(qū)域用指定的字體顯示指定的字符串,當(dāng)然在此之前應(yīng)該請(qǐng)求X-window加載字體,加載后客戶(hù)端程序可以得到關(guān)于字體的一些信息。

  實(shí)際上,這一功能由于客戶(hù)端字體繪制的流行,而大大弱化了,現(xiàn)在的字體差不多都是在客戶(hù)端繪制好后,再通過(guò)X Render擴(kuò)展顯示到X-Window去的。在fontconfig/freetype/pango/cairo的幫助,在客戶(hù)端繪制字體更容易使用。

  名詞解釋?zhuān)?/p>

  位圖:

  位圖(Bitmap),又稱(chēng)光柵圖(Raster graphics),是使用像素陣列來(lái)表示的圖像,每個(gè)像素的色彩信息由RGB組合或者灰度值表示。根據(jù)顏色信息所需的數(shù)據(jù)位分為1、4、8、16、24及32位等,位數(shù)越高顏色越豐富,相應(yīng)的數(shù)據(jù)量越大。其中使用1位表示一個(gè)像素顏色的位圖因?yàn)橐粋€(gè)數(shù)據(jù)位只能表示兩種顏色,所以又稱(chēng)為二值位圖。通常使用24位RGB組合數(shù)據(jù)位表示的的位圖稱(chēng)為真彩色位圖。

  視窗系統(tǒng):

  視窗系統(tǒng)(Windowing system) 是“使用視窗當(dāng)作它的主要象征之一”的圖形使用者接口的構(gòu)成元件。更為明確的說(shuō),是桌面環(huán)境的構(gòu)成元件。視窗系統(tǒng)支撐著視窗管理員的實(shí)現(xiàn)(implementation);對(duì)于“圖像硬件(graphics hardware)、指向裝置(pointing devices)比如鼠標(biāo)與鍵盤(pán)等裝置”提供基本支持。繪制鼠標(biāo)光標(biāo),一般也與視窗系統(tǒng)相關(guān)。

  從程式設(shè)計(jì)師的觀點(diǎn)來(lái)看,視窗系統(tǒng)是作出繪圖的基本單位,比如字型繪制,或是在屏幕上劃線,有效地提供繪圖硬件的一種抽象概念。

  視窗系統(tǒng)能讓電腦使用者同時(shí)與數(shù)個(gè)程式一起工作。每個(gè)程式在他自己的視窗中執(zhí)行,也就是屏幕上的矩形之中。大部份的視窗系統(tǒng)允許視窗重疊,且提供使用者執(zhí)行標(biāo)準(zhǔn)的操作,像是移動(dòng)/改變視窗尺寸,把視窗送到前景/背景,和最小化/最大化一個(gè)視窗。

  有些視窗系統(tǒng),像是 X,有先進(jìn)的能力比如網(wǎng)絡(luò)通透性,允許使用者在遠(yuǎn)端機(jī)器上執(zhí)行圖形的應(yīng)用程式。

  雅典娜工程:

  雅典娜工程是MIT、DEC以及IBM的一個(gè)聯(lián)合工程,歷時(shí)八年,于1991年6月30日告一段落。該工程意圖建立一個(gè)計(jì)算機(jī)環(huán)境,容納多達(dá)一萬(wàn)臺(tái)工作站,以及各種硬件。用戶(hù)可以訪問(wèn)其中的任何工作站,存取任何文件、程序,但在用戶(hù)界面以及服務(wù)傳遞上,看起來(lái)不會(huì)有大的區(qū)別。

  這個(gè)工程產(chǎn)生了許多現(xiàn)在被廣為使用的技術(shù),比如X Window System、Kerberos。雅典娜工程開(kāi)發(fā)的其他技術(shù)包括Xaw部件工具箱、Zephyr通知服務(wù)、第一個(gè)即時(shí)通訊服務(wù),以及Hesiod名,還有目錄服務(wù)。


上一頁(yè) 1 2 3 下一頁(yè)

關(guān)鍵詞:

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉