X-window系统
esktop 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.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,能够在宿主系统上创建根窗口使得远程客户端能够做为分离的窗口在其上显示。
X终端机(X Terminal)是做为瘦客户机在X服务器上运行的专用硬件。该架构广泛用于为了使多人同时使用同一个大型服务器而构造终端。这也符合MIT的计划的初衷。
X终端搜索网络,使用XDMCP产生允许其运行客户机的主机列表。初始主机需要运行X显示管理员(X display manager)。
专用的X终端机(硬件)现在已经不太常见了,现在经常使用个人计算机并搭配运行X终端机的实效模拟程序(Emulator)来完成相同的功能,过去(1990年代初期)业界在推行X终端机时也将其称为“穷人的UNIX工作站”。
在《UNIX痛恨者手册》(UNIX-HATERS Handbook)一书中有个章节为:"X 视窗所造成的灾祸(The X-Windows Disaster)"[6],该书用此整个章节的篇幅内容来讨论 X 在20世纪80年代末到同世纪90年代初的问题与困扰。
PC
在PC世界里,需要第三方硬件的驱动的非主流的个人计算机软件往往不能支持所有为Microsoft Windows出品的设备。X Window也不例外,它的实现往往缺少较新(或者非常旧)的显卡高效驱动程序。
X.org和XFree86这样的开源X实现中,开发社区通过复用已有代码,可以很快更新改进驱动程序,从而能够为较陈旧的或者很通用的硬件开发出高质量的驱动。
高性能图形计算目前是顶级的图形功能,一般由厂家通过专有驱动来实现,而且往往优先考虑是Windows(最大的消费市场)。由于高性能视频市场的显赫地位,一些硬件/驱动厂商会考虑通过将技术细节变为商业秘密或者将其中创新变为软件专利,而这阻碍了开源驱动的实现。
其他设备
在PC机之外的世界里,很多X的实现是为非传统设备如PDA和手机而编写(或者移植)的。这样的实现必须提供为在此之上运行的平台提供至少且必须的设备支持。
性能
X Window的C/S体系(客户端-服务器架构)设计在应用程序和视频硬件之间多加了一层软件,导致图形效率下降,所以引起了一些批评。因此开发了若干扩展,在设备和客户机在同一个系统上时,通过在取得适当许可的情况下,以直接访问设备来改善这一问题。而在Linux上,一些视频驱动已经部分移入内核以提高效率。
稳定性
另一方面,X也被批评为需要(或者提供)了过多的对硬件的直接访问,从而影响了系统稳定性。行为不良的显卡驱动(有时也可能是应用程序)甚至能够导致整个系统崩溃或者重启;有时即使操作系统仍在工作,它也不能继续渲染其显示 (这时除了重启,缺乏好的恢复手段)。
根本上,目前所有的桌面GUI操作系统都提供某种对硬件的直接访问,支持者认为市场已经证明为了提供图形性能牺牲一点稳定性是值得的。或许将来随着技术和用户的演化这一平衡会有所变化。
用户界面特征
X刻意不去规范用户界面和程序之间大多数的通信,导致出现了几种非常不同的界面,同时程序之间协同困难;而客户机之间的互操作规范ICCCM以难以正确实现而闻名。后来的标准化尝试,如Motif和CDE,也于事无补。长久以来这已经成为用户和程序员的巨大的挫折的源头[7]。目前,程序的感观一致性和通信一般是通过为特定桌面环境或者构件工具箱编程来处理,这也避免了直接和ICCCM接触。
X缺乏良好的网络与透明的声音系统。当用户对声音日益期盼时,各种不兼容的声音子系统便出现了。过去,大多数程序员只好忽略网络问题,简单地使用本地的并且是OS专用的声音API。第一代客户机-服务器声音系统有rplay和Network Audio System。而最近的努力产生了EsounD(GNOME)和ARts(KDE),而这也并非标准。而其他系统如Media Application Server则正在开发当中。
直到最近,X也没有好的打印显示器所显示的内容(所见即所得)的解决方案。许多X客户机完全用PostScript实现打印,而这与发送到服务器的几乎整个是分离的。从X11R6.3起包含了Xprint,此时客户机已经不错,但是服务器实现还不行。而从X11R6.8起实现的质量已经很好[8],并且获得了部件的支持。
网络
X不能像VNC那样把客户端和会话从一个服务器卸下然后再附加到另一个上,但为X增加此功能的工作正在进行,另外还要实现通过VNC实现X服务器的显示。
X服务器和远端客户机之间的网络通信缺省使用明文,攻击者使用包嗅探器软件就能够截获和阅读它。这一缺陷一般可以通过在SSH隧道上
实现
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,能够在宿主系统上创建根窗口使得远程客户端能够做为分离的窗口在其上显示。
终端机
X终端机(X Terminal)是做为瘦客户机在X服务器上运行的专用硬件。该架构广泛用于为了使多人同时使用同一个大型服务器而构造终端。这也符合MIT的计划的初衷。
X终端搜索网络,使用XDMCP产生允许其运行客户机的主机列表。初始主机需要运行X显示管理员(X display manager)。
专用的X终端机(硬件)现在已经不太常见了,现在经常使用个人计算机并搭配运行X终端机的实效模拟程序(Emulator)来完成相同的功能,过去(1990年代初期)业界在推行X终端机时也将其称为“穷人的UNIX工作站”。
X的局限和批评
在《UNIX痛恨者手册》(UNIX-HATERS Handbook)一书中有个章节为:"X 视窗所造成的灾祸(The X-Windows Disaster)"[6],该书用此整个章节的篇幅内容来讨论 X 在20世纪80年代末到同世纪90年代初的问题与困扰。
视频硬件
PC
在PC世界里,需要第三方硬件的驱动的非主流的个人计算机软件往往不能支持所有为Microsoft Windows出品的设备。X Window也不例外,它的实现往往缺少较新(或者非常旧)的显卡高效驱动程序。
X.org和XFree86这样的开源X实现中,开发社区通过复用已有代码,可以很快更新改进驱动程序,从而能够为较陈旧的或者很通用的硬件开发出高质量的驱动。
高性能图形计算目前是顶级的图形功能,一般由厂家通过专有驱动来实现,而且往往优先考虑是Windows(最大的消费市场)。由于高性能视频市场的显赫地位,一些硬件/驱动厂商会考虑通过将技术细节变为商业秘密或者将其中创新变为软件专利,而这阻碍了开源驱动的实现。
其他设备
在PC机之外的世界里,很多X的实现是为非传统设备如PDA和手机而编写(或者移植)的。这样的实现必须提供为在此之上运行的平台提供至少且必须的设备支持。
性能
X Window的C/S体系(客户端-服务器架构)设计在应用程序和视频硬件之间多加了一层软件,导致图形效率下降,所以引起了一些批评。因此开发了若干扩展,在设备和客户机在同一个系统上时,通过在取得适当许可的情况下,以直接访问设备来改善这一问题。而在Linux上,一些视频驱动已经部分移入内核以提高效率。
稳定性
另一方面,X也被批评为需要(或者提供)了过多的对硬件的直接访问,从而影响了系统稳定性。行为不良的显卡驱动(有时也可能是应用程序)甚至能够导致整个系统崩溃或者重启;有时即使操作系统仍在工作,它也不能继续渲染其显示 (这时除了重启,缺乏好的恢复手段)。
根本上,目前所有的桌面GUI操作系统都提供某种对硬件的直接访问,支持者认为市场已经证明为了提供图形性能牺牲一点稳定性是值得的。或许将来随着技术和用户的演化这一平衡会有所变化。
用户界面特征
X刻意不去规范用户界面和程序之间大多数的通信,导致出现了几种非常不同的界面,同时程序之间协同困难;而客户机之间的互操作规范ICCCM以难以正确实现而闻名。后来的标准化尝试,如Motif和CDE,也于事无补。长久以来这已经成为用户和程序员的巨大的挫折的源头[7]。目前,程序的感观一致性和通信一般是通过为特定桌面环境或者构件工具箱编程来处理,这也避免了直接和ICCCM接触。
X缺乏良好的网络与透明的声音系统。当用户对声音日益期盼时,各种不兼容的声音子系统便出现了。过去,大多数程序员只好忽略网络问题,简单地使用本地的并且是OS专用的声音API。第一代客户机-服务器声音系统有rplay和Network Audio System。而最近的努力产生了EsounD(GNOME)和ARts(KDE),而这也并非标准。而其他系统如Media Application Server则正在开发当中。
直到最近,X也没有好的打印显示器所显示的内容(所见即所得)的解决方案。许多X客户机完全用PostScript实现打印,而这与发送到服务器的几乎整个是分离的。从X11R6.3起包含了Xprint,此时客户机已经不错,但是服务器实现还不行。而从X11R6.8起实现的质量已经很好[8],并且获得了部件的支持。
网络
X不能像VNC那样把客户端和会话从一个服务器卸下然后再附加到另一个上,但为X增加此功能的工作正在进行,另外还要实现通过VNC实现X服务器的显示。
X服务器和远端客户机之间的网络通信缺省使用明文,攻击者使用包嗅探器软件就能够截获和阅读它。这一缺陷一般可以通过在SSH隧道上
上一篇:图像信息系统原理[ 06-02 ]
下一篇:海信TLM22V68[ 06-02 ]





