《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > X-Window系統介紹
X-Window系統介紹
維庫開發網
摘要: X-Window(也常稱為X11或X)系統是一種以位圖方式顯示的軟件視窗系統,最初是1984年麻省理工學院的研究,之后變成UNIX、類UNIX、以及OpenVMS等操作系統所一致適用的標準化軟件工具包及顯示架構的運作協議。X Window系統通過軟件工具及架構協議來建立操作系統所用的圖形用戶界面,此后則逐漸擴展適用到各形各色的其他操作系統上。現在幾乎所有的操作系統都能支持與使用X。更重要的是,今日知名的桌面環境——GNOME和KDE也都是以X Window系統為基礎建構成的。
Abstract:
Key words :

一.X-Window系統簡介

X-Window(也常稱為X11或X)系統是一種以位圖方式顯示的軟件視窗系統,最初是1984年麻省理工學院的研究,之后變成UNIX、類UNIX、以及OpenVMS等操作系統所一致適用的標準化軟件工具包及顯示架構的運作協議。X Window系統通過軟件工具及架構協議來建立操作系統所用的圖形用戶界面,此后則逐漸擴展適用到各形各色的其他操作系統上。現在幾乎所有的操作系統都能支持與使用X。更重要的是,今日知名的桌面環境——GNOME和KDE也都是以X Window系統為基礎建構成的。

二.X-Window的發展歷史

知曉過去才能明白現在,預見將來,我們需要清楚的了解X-Window的發展歷史,盡管這有些曲折。

1、 前身:

事實上,早在X出現前已有幾個位圖式的軟件顯示系統已經存在,例如帕洛阿爾托研究中心(施樂公司)提出的Alto(1973年)和Star(1981年)、蘋果計算機提出的Lisa(1983年)和麥金塔(1984年)、在UNIX世界也有雅典娜工程(1982年)和Rob Pike的Blit終端機(1984年)。

1983年之前稱為W-Window系統的窗口系統是X的真正前身(在拉丁字母里面 X 直接接在 W 后面)。W-Window系統運行于系統V之上,W使用一個支持終端機和圖形窗口的網絡協議,而服務器維護顯示的列表。

2、 起源:

X-Window于1984年在麻省理工學院(MIT)電腦科學研究室開始開發的,當時Bob Scheifler正在發展分散式系統(distributed system),同一時間DEC公司的 Jim Gettys 正在麻省理工學院Athena計劃的一部分。兩個計劃都需要一個相同的東西——一套UNIX機器上運行優良的視窗系統。因此合作關系開始展開,他們從斯坦福(Stanford)大學得到了一套叫做W的實驗性視窗系統。因為是根據W視窗系統的基礎開始發展的,當發展到了足以和原先系統有明顯區別時,他們把這個新系統叫做X。

3、版本發展歷史
 

(注:X11協議設計由Scheifler領導,并在nascent Internet的開放郵件列表上廣泛討論。于是X成為最早的較大規模的開源軟件項目之一)

4、 對X-Window的管理歷史

1)MIT X協會與X協會公司

1987年,隨著X11取得明顯成功,MIT希望免除X的管理責任。但是1987年6月與9個廠商舉行會晤,這些廠商表示他們相信為了避免 X 由于商業因素而分裂,需要中立方的參與。1988年1月,X協會(X Consortium)做為非營利廠商團體而成立,由Scheifler擔任主管,而Keith Packard擔任高級開發人員,確保 X 能持續以中立超然的立場提供商業與學術教育所需的開發。1993年,X協會公司(X Consortium, Inc.;非營利性質的公司)做為MIT X協會的接繼者而成立

2)開放團體

1997年中,X Consortium將X的管理交給開放團體(The Open Group),而它是1996年由開源軟件基金會(Open Software Foundation;OSF)和X/Open合并成立的廠商團體。

3)X.Org

1999年5月開放團體組建了X.Org。X.Org指導了X11R6.5.1之前的版本發布。在此期間X的開發死氣沉沉。2003年,隨著Linux的流行X被大量安裝。但是X.Org幾乎無聲無息,活躍的開發由XFree86承擔。 

4)XFree86

在19*至1990年期間,托馬斯?羅爾把X11R4分類器上提供的X服務器程序的源代碼下載到運行速度僅為33MHz的386PC 上,成功運行了被他稱為是X38611.1的X服務器。這就是XFree86的雛形。

1992年后多數技術創新都發生在XFree86項目中。1999年,由于眾多對于XFree86在Linux上應用有興趣的硬件廠商的推動,并也已經成為最普及的X版本,XFree86成為X.Org的榮譽成員(不付費)。

但是自2003年開始,XFree86內部卻發生了爭論。它被認為太教堂式了,如同它的開發模式;開發者不能通過CVS做提交,而廠商被迫維護大量補丁。2003年3月,自從最初的MIT X Consortium結束之后就參加XFree86的Keith Packard由于被認為態度不良而被驅逐

X.Org和XFree86開始討論能夠有助于X開發的重組Jim Gettys早在2000年就熱心于開放的開發模式。Gettys、Packard和其他幾個人開始討論有效管理X和開放式開發的細節。

最終就像是X11R*許可證爭議的回響,XFree86于2004年2月在更加嚴格許可證下發布了4.4 。許多依賴X的項目認為該許可證無法接受,特別是它和GNU General Public License不兼容。這引起一場論戰,許多人認為到了該對XFree86分叉(fork)的時候了,許多Linux發行版,包括Fedora、Gentoo都紛紛在最新的版本中使用X.Org基金會的發布代替XFree86。

5)X.Org基金會

2004年年初X.Org基金會成立。這意味著 X 在管理上的根本轉變。1988年以來 X 的管理者(包括過去的X.Org)都是廠商組織,而基金會由軟件開發者領導,采用依靠外部參與的集市模式的社區開發。其成員身份對個人開放,法人成員則成為贊助者。X.Org還開始同freedesktop.org密切合作

三.X的設計原則

X的設計原則,早在最初仍在麻省理工學院的階段(1984年)就已經成形,由Bob Scheifler和Jim Gettys兩人制訂出X最早的開發、強化、改進原則,原則大體如下:

1、除非沒有它就無法完成一個真正完整的應用程序,否則不用增加新的功能。

2、決定一個系統不是什么和決定它是什么同樣重要。與其去適應整個世界的需要,寧可使得系統可以擴展,如此才能以持續兼容的方式來滿足新增需求

3、只有完全沒實例時,才會比只有一個實例來的糟。

4、如果問題沒完全弄懂,最好不要去解決它

5、如果可以通過10%的工作量得到90%的預期效果,應該用更簡單的辦法解決。

6、盡量避免復雜性。

7、提供機制而不是策略,有關用戶界面的開發實現,交給實際應用者自主。(這和驅動開發的思想一脈相承)

之后,上述原則中的第一項原則在設計X11時被加以修改,修訂成:“除非已有真正的應用程序,真的需要X為其修訂、增訂等支持,否則不會為X增加新功能。”X基本上一直遵循這些原則,參考實現的擴展及改進也是以此原則的角度來著手,也因為奉行上述原則,使至今的最新版X仍能與最初(1987年)發布的協議標準近乎完全兼容。

這些原則性的東西短短幾句話,就為一個龐大項目奠定了一個良好的基調和發展方向,使X問世以來經久不衰,沒有這幾個原則是做不到的。

四.X-Window的功能

X-Window提供了一組非常底層的服務,客戶端程序發送請求給X-Window, X Window根據請求完成相應服務。通過這些服務,客戶端程序可以構建期望的用戶界面。根據不同的功能,可以把這些服務分為以下幾大類:

1、處理輸入

X-Window從鍵盤和鼠標接受輸入,這些輸入數據被當作”事件”傳送給適當的客戶端程序。至于哪個窗口應該接受到這些事件,是依賴于窗口管理器的(窗口管理器實際上也是一個客戶端),典型的事件包括按鍵,鼠標移動,鼠標按下/放開等。

輸入設備往往是與硬件平臺相關的,而且又是獨占資源,所以用X-Window管理是理所當然的。應用程序通常不需要關心具體的設備,只要處理相應的事件就行了,像mouse和筆點可能發出同樣的事件,而應用程序不用區分它們。輸入事件也可以通過XTest擴展,由軟件模擬出來的(通常用來實現軟件鍵盤)

2、按層次形組織窗口

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

不過X-Window管理這些窗口是被動進行的,由窗口管理器根據用戶的行為決定。它請求X-Window做相應的動作,比如移動窗口,調整窗口的大小,改變窗口的前后關系等等。第一次接觸X-Window時,得知窗口管理器是一個普通的客戶端時,我覺得驚訝,這種設計真是太先進了,其實它正是遵循了提供機制而不是策略這一原則。

現在已經有很多窗口管理器的實現可用,它們提供不同的風格和功能,有的用于PC,有的用于嵌入式系統,像matchbox就是在嵌入式上比較流行的,像Nokia的N770/N800就是用的matchbox。

3、提供圖形操作

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

X-Winwod還會充分挖掘硬件的加速特性,像填充、畫直線和圖像疊加等操作,如果硬件支持相應的加速功能,就可以通過硬件實現,否則就用軟件實現。

4、提供文本和字體操作

X-Window提供了字體相關的操作。客戶端程序可以請求X-window在指定的區域用指定的字體顯示指定的字符串,當然在此之前應該請求X-window加載字體,加載后客戶端程序可以得到關于字體的一些信息。

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

名詞解釋:

位圖:

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

視窗系統:

視窗系統(Windowing system) 是“使用視窗當作它的主要象征之一”的圖形使用者接口的構成元件。更為明確的說,是桌面環境的構成元件。視窗系統支撐著視窗管理員的實現(implementation);對于“圖像硬件(graphics hardware)、指向裝置(pointing devices)比如鼠標與鍵盤等裝置”提供基本支持。繪制鼠標光標,一般也與視窗系統相關。

從程式設計師的觀點來看,視窗系統是作出繪圖的基本單位,比如字型繪制,或是在屏幕上劃線,有效地提供繪圖硬件的一種抽象概念。

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

有些視窗系統,像是 X,有先進的能力比如網絡通透性,允許使用者在遠端機器上執行圖形的應用程式。

雅典娜工程:

雅典娜工程是MIT、DEC以及IBM的一個聯合工程,歷時八年,于1991年6月30日告一段落。該工程意圖建立一個計算機環境,容納多達一萬臺工作站,以及各種硬件。用戶可以訪問其中的任何工作站,存取任何文件、程序,但在用戶界面以及服務傳遞上,看起來不會有大的區別。

這個工程產生了許多現在被廣為使用的技術,比如X Window System、Kerberos。雅典娜工程開發的其他技術包括Xaw部件工具箱、Zephyr通知服務、第一個即時通訊服務,以及Hesiod名,還有目錄服務。
 

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 亚洲人成免费 | 亚洲天堂视频在线 | 美女三级在线 | 91网站网站网站在线 | 日韩视频欧美视频 | 久久精品.com| 91情国产l精品国产亚洲区 | 国产精亚洲视频 | 久久精品国内一区二区三区 | 国产精品一区二区三区免费 | 三级欧美在线 | 女人张开双腿让男人 | 中文字幕一级片 | 美女视频永久黄网站免费观看国产 | 国产理论视频在线观看 | 欧美另类在线观看 | 国产精品国产三级国产专区5o | 毛片一级做a爰片性色 | 成人欧美一区二区三区黑人免费 | 久草在线新首页 | 一级一片免费看 | 亚洲乱强| 国产一区二区三区在线观看视频 | 美女被爆免费视频软件 | 成人观看网站a | 极品的亚洲 | 精品视频免费在线 | 日韩麻豆 | 美女三级毛片 | 精品国产精品国产 | 午夜精品成人毛片 | 亚洲国内 | 泷泽萝拉亚洲精品中文字幕 | 久草首页在线观看 | 国产成人www免费人成看片 | 欧美日韩一区二区综合在线视频 | 国产一区二区三区日韩欧美 | 黄色a毛片| 亚洲美女综合网 | 欧美日韩精品一区二区视频在线观看 | 欧美曰批人成在线观看 |