全球专业中文经管百科,由121,994位网友共同编写而成,共计436,156个条目

X視窗系統

用手机看条目

出自 MBA智库百科(https://wiki.mbalib.com/)

X視窗系統(X Window System)

目錄

什麼是X視窗系統

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

  由於X只是工具包及架構規範,本身並無實際參與運作的實體,所以必須有人依據此標準進行開發撰寫。如此才有真正可用、可運行的實體,始可稱為實現體。目前依據X的規範架構所開發撰寫成的實現體中,以X.Org最為普遍且最受歡迎。X.Org所用的協議版本,X11,是在1987年9月所發佈。而今最新的參考實現(參考性、示範性的實現體)版本則是X11 Release 7.7(簡稱:X11R7.7),而此項目由X.Org基金會所領導,且是以MIT授權和相似的授權許可的自由軟體

X的C/S模式和網路透明性

  X能為GUI環境提供基本的框架:在屏幕上描繪、呈現圖像與移動程式視窗,同時也受理、運行、及管理電腦與滑鼠、鍵盤的交互程式。不過,X並沒有管轄到用戶界面的部分,而是由其他以X為基礎的實現體來負責,也因為如此,以X為基礎環境所開發成的視覺樣式非常地多;不同的程式可能有截然不同的介面呈現。

  X採用C/S的架構模型,由一個X伺服器與多個X客戶端程式進行通訊,伺服器接受對於圖形輸出(視窗)的請求並反饋用戶輸入(鍵盤、滑鼠、觸摸屏),伺服器可能是一個能顯示到其他顯示系統的應用程式,也可能是控制某個PC的視頻輸出的系統程式,也可能是個特殊硬體。

  X的一大特點在於“網路透明性”:應用程式(“客戶端”應用程式)所運行的機器,不一定是用戶本地的機器(顯示的“伺服器”)。X中所提及的“客戶端”和“伺服器”等字眼用詞也經常與人們一般想定的相反,“伺服器”反而是在用戶本地端的自有機器上運行,而非是在遠程的另一部機器上運行。

  在圖例中,X伺服器從鍵盤、滑鼠端獲取輸入信息,之後將輸入反饋顯示於銀幕,而網頁瀏覽器及終端機模擬器則在客戶端的本機系統上運行。此外客戶端也通過網路與遠程的機器、伺服器保持聯繫,以保消息狀態的更新。如此的機制及架構能使遠程運行的軟體如同在本機端運行一樣。

  伺服器和客戶端之間的通信協議的運作對電腦網路是透明的:客戶端和伺服器可以在同一臺電腦上,也可以不是,或許其架構和操作系統也不同,但都能運行。客戶機和伺服器還能夠使用安全連接在互聯網上安全地通訊。

  為了使遠端客戶程式顯示到本地伺服器,用戶一般需要啟動一個終端視窗和到達遠端電腦的telnet或者ssh,令其顯示到用戶電腦,(例如:在運行bash的遠端電腦上export DISPLAY=[用戶的電腦]:0)然後啟動客戶端。然後客戶端就會連接到本地電腦,並且遠端應用程式會顯示到本地屏幕並被本地輸入設備所控制。與之對應,本地電腦上也可以執行一個連接到遠端電腦的小型代理程式,併在該端啟動與運行自有需求與指定的應用程式。

  實際的遠端客戶端的例子有:圖形化管理遠程電腦;在遠端UNIX電腦上運行計算密集的模擬程式並把結果顯示到本地的Windows桌面電腦;用一套顯示器、鍵盤和滑鼠控制同時運行在多台電腦上的圖形化軟體。

X的設計原則

  X的設計原則,早在最初仍在麻省理工學院的階段(1984年)就已經成形,由鮑伯·斯凱夫勒和吉姆·傑提斯兩人制訂出X最早的開發、強化、改進原則,原則大體如下:

  • 除非沒有它就無法完成一個真正完整的應用程式,否則不用增加新的功能。
  • 決定一個系統不是什麼和決定它是什麼同樣重要。與其去適應整個世界的需要,寧可使得系統可以擴展,如此才能以持續兼容的方式來滿足新增需求
  • 只有完全沒實例時,才會比只有一個實例來的糟。
  • 如果問題沒完全弄懂,最好不要去解決它
  • 如果可以通過10%的工作量得到90%的預期效果,應該用更簡單的辦法解決。
  • 儘量避免複雜性。
  • 提供機制而不是策略,有關用戶界面的開發實現,交給實際應用者自主。

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

X的用戶界面

  X刻意不去規範應用程式在用戶界面上的具體細節設計,這些包括按鈕、菜單和視窗的標題欄等等,這些都由視窗管理器(window manager)、GUI構件工具包、桌面環境(desktop environment)或者應用程式指定的GUI(如POS)等等的用戶軟體來提供,然而因為架構設計上保留了高度的彈性發揮空間,致使多年來X在“基礎、典型、一般性”的用戶界面上,也都有數目驚人的多樣性選擇。

  在X的系統架構中,視窗管理器用於控制視窗程式的位置和外觀,其界面類似Microsoft的Windows或者Macintosh(例如:KDE的KWin或者GNOME的Metacity),不過在控制機制上卻截然不同(例如:X提供的基本視窗管理器twm)。視窗管理器可能只是個框架(例如:twm),但也可能提供了全套的桌面環境功能(例如:Enlightenment)。

  雖然不同的X用戶界面可以有很大的差距、差異,然而絕大多數的用戶在使用X時,多是用已經高度全套化的桌面環境,桌面環境不僅有視窗管理器,還具備各種應用程式以及協調一致的界面,目前最流行的桌面環境是GNOME和KDE,此兩者已普遍使用於Linux操作系統上,而UNIX所用的標準桌面環境多是通用桌面環境CDE,然而也有些UNIX也開始採行GNOME。

  此外,X桌面環境及組件雖然極其多樣,但同時也需要保持兼容性與互通性,關於此則有freedesktop.org積極與努力地維持各種不同X桌面環境的兼容性,使相競態勢下仍不失X的兼容本色。

X的標準實現

  X的標準實現是X.Org的參考實現。由於其許可證比較寬鬆,出現了大量自由的或者專有的實現。商業的UNIX商家傾向於採用參考實現並使之適應其硬體,例如高度定製並加入專有的擴展。

  直到2004年,在自由的類UNIX系統上最常見的X變體是XFree86。顧名思義,它源於X的386兼容的PC機的移植,到了上個(20)世紀90年代末期成為X的技術創新的主要來源和X開發的事實標準[4]。但是從2004年起,最流行的X伺服器是XFree86的分支—X.Org的參考實現。

  雖然X一般和UNIX聯繫在一起,X伺服器也能夠自然地存在於其他圖形環境。DEC/COMPAQ/HP的OpenVMS操作系統用X加上CDE做為其標準桌面環境,稱為DECwindows。蘋果公司的Mac OS X v10.3(研發時的代號:Panther,美洲豹)包括Apple X11,它基於XFree86 4.3和X11R6.6,並能和Mac OS X更好地集成。

  Microsoft的Windows本身不包含對X的支持,但是有不少第三方的實現可用,其中有自由軟體如Cygwin/X、Xming、WeirdMind[5]和WeirdX,另外專有、專屬性的也有Xmanager、X-Deep/32、X-Win32、WiredX和Exceed。它們多用於控制遠程X客戶端。

  當X寄生在其他視窗系統(例如:Windows或Mac OS)時,X系統一般是“rootless,無根”的,也就是說:宿主(主體)視窗系統擔當根視窗(背景和相關菜單)並管理寄生(客體)的X視窗的位置。但是也有些伺服器,例如Exceed,能夠在宿主系統上創建根視窗使得遠程客戶端能夠做為分離的視窗在其上顯示。

本條目對我有幫助0
MBA智库APP

扫一扫,下载MBA智库APP

  如果您認為本條目還有待完善,需要補充新內容或修改錯誤內容,請編輯條目投訴舉報

本条目由以下用户参与贡献

苏青荇.

評論(共0條)

提示:評論內容為網友針對條目"X視窗系統"展開的討論,與本站觀點立場無關。

發表評論請文明上網,理性發言並遵守有關規定。

打开APP

以上内容根据网友推荐自动排序生成

官方社群
下载APP

闽公网安备 35020302032707号