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

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号