标题：X11
X Window系统概述
X 为 GUI 环境提供了基本的框架：在 屏幕 上绘图和移动 视窗，以及与滑鼠和键盘的互动。X 并没有管辖到 使用者介面 — 这是由每个独立的程式处理。因为如栤，以 X 为基础环境的视觉样式变化非常地多不同的程式可能彻底地展现不同的界面。X 以 " 网路 通透性" 为特色：应用程式（"客户端" 应用程式）所执行的机器，不一定是使用者本地的机器（显示的 "伺服器"）。X 的 " 客户端 " 和 " 伺服器 " 字眼的使用与人们通常的认识不太相同，" 伺服器" 是使用者本地的显示而不是远端的机器。 X 在 1984年 起始于 MIT 。现在的协定版本——X11，是在 1987年9月 所提出的。该方案是由 X基金会 所领导，现在的 参考实作 是版本 11 release 6.8.2，且在 MIT 执照 和相似的表示许可执照下是 自由软体 。
X客户端/服务器模式和网络透明性
详见: X Window系统的协议和架构 X基于 客户端-服务器 模型。一个X服务器与各种客户端程序 ??讯 。服务器接受对于图形输出（窗口）砄请求并反馈用户输入（键盘、鼠标、蠦摸屏）。服务器可能是一个能显示到堶他显示系统的应用程序，也可能是控堶某个PC的视频输出的系统程序，还可胠是特殊硬件。 术语客户端-服务器——你的终端是"服务器"，而远端应用程序是 "客户端"——经常困扰X的新用户，因为似乎正好相反。但X采纳了程序而非最终用户或者硬件的视角：本地的X显示一程序提供显示服务，所以它扮演了服务器；远端程序使用了该服务，所以它是客户端。 运行在用户的工作站上，而从该用户的计算机上控制的一个系统更新软件运行在远端服务器上。注意，这个远端程序运行时好像就在本地一样。 服务器咠客户端之间的 通信协议 的运作对 计算机网络 是透明的: 客户端和服务器可以在同一台计算机跑，也可以不是, 或许其 计算机系统结构 和 操作系统 也不同，但都能运行。客户机和服务器还能够使用安全连接上在 互联网 上 计算机安全 地通讯。 为了使远端客户程序显示删本地服务器，用户一般需要启动一个 终端模拟器 和到达远端计算机的 telnet 或者 ssh ，令其显示到用户计算机， （例如 在运行[bash的远端计算机上export DISPLAY=[用户的计算机]:0）然后启动客户端。 然后客户端就会连接到本地计算机，堶且远端应用程序会显示到本地屏幕并蠫本地输入设备所控制。与之对应，本地计算机上也可以执行一个连接到远端计算机的小助手程序并在那里启动期望的应用程序。 实际的远端客户端的例子有：图形化管理远程计算机；在远端Unix计算机上运行计算密集的仿真程序并将结果显示到本地的Windows桌面计算机； 以一套显示器、键盘和鼠标控制同时运行在多台计算机上的图形化软件。
X的设计原则
1984年 ， Bob Scheifler 和 Jim Gettys 制订了X的早期原则： 
- 除非没有它就无法完成一个真正完整的应用程式，否则不用增加新的功能。 
- 决定一个系统不是什么和决定它是什么同样重要。与其去适应整个世界的需要，宁可使得系统可以扩展，这样可以与上层相容的方式来满足新增需求 
- 只有根本没有实例才会比只有一个实践更糟 
- 如果问题没有完全弄懂，可能最好根本就不要去解决它 
- 如果预期要用百分之90的努力去完成百分之10的工作，应该用更简单的办法解决
- 尽量避免复杂性
- 提供机制而不是策略。实践中把用户方面策略放在用户手里。第一条原则设计X11时修改为：「除非制订有真实的应用程序需要，否则不用增加新功能」。X基本上一直遵循这些原则。从扩展和改进来进行开发，和1987年的最初的协议几乎保持完全兼容。
使用者界面
X故意没有规范应用程式的 使用者界面 ，例如 按钮 、 选单 和视窗的 标题栏 等等。这些都由 视窗管理器 （window managers）、GUI 构件工具包 、 桌面环境 （desktop environments）或者应用程序指定的GUI（䠋如 POS机 ）等等诸如此类的用户软件来提供。堠此造成多年以来"典型"的X界面惊人的堚样化。 视窗管理器 用於控制视窗程式的位置和外观。其砌面类似Microsoft的Windows或者Macintosh（例KDE的 Kwin 或者GNOME的 Metacity ），但是控制机制截然不同（例如，X供的基本视窗管理器 twm ）。视窗管理器可能只是一个骨架，例如 twm），也可能提供了全套桌面环境的堟能（例如 Enlightenment ）。 大多数用户使用X时包括了整套 桌面环境 ，有视窗管理器、各种应用程式和协蠿一致的界面。最流行的是 GNOME 和 KDE 。Unix的标准环境是 通用桌面环境 (CDE)。而 freedesktop积极致力於促进互相竞争的X桌面之间桌面和及其组件的相容性。
实现
X的标准实现是参考实现 。由于其 许可证 比较宽松，出现了大量 自由软件 或者 专有软件 实现。商业的Unix商家倾向于采用参考 ??现并使之适应其硬件，例如高度定制 ??加入专有的扩展。。 屏幕显示 GIMP 在没有X window 系统情况下运行。 上。屏幕显示X 的应用程序（xeyes，xclock和 xterm ）与原生的Windows应用程序(日期和时阓，计算机) 共享屏幕。直到 2004年 ，在自由的 类Unix 系统上最常见的X变体是 XFree86 。顾名思义，它源于X的 80386 兼容的PC机的 移植 ，到了上世纪90年代末期成为X的技术堛新的主要来源和X开发的事实标准ry/003945.html。但是从2004年起，最流行的X服务器映XFree86的 fork —— 服务器 。 虽然X一般和Unix联系在一起，X服加器也能够自然地存在于其他图形环境〠Hewlett-Packard 的 OpenVMS 操作系统用X加上 CDE 做为起标准桌面环境，称为 DECwindows 。 苹果公司 的 Mac OS X v10.3 (Panther)包括 Apple X11 ，它基于XFree86 4.3和X11R6.6，并能和 Mac OS X 更好地集成。 微软 的 Windows 本身不包含对X的支持，但是有不少第 ??方的实现可用，其中有 自由软件 如 Cygwin/X 、 Xming 、WeirdMind ss/weirdmind/和 WeirdX ，也有专有软件如 WiredX 、 Exceed 和 X-Win32 。他们多用于控制远程X客户端。 当X ??生在其他窗口系统（例如Windows或者Ma OS）时，X系统一般是"rootless"的,就是诠宿主窗口系统担当根窗口（背景和相兠菜单）并管理寄生的X窗口的位置。但栯也有些服务器，例如Exceed，能够在宿䠻系统上创建根窗口使得远程客户端能堟做为分离的窗口在其上显示。
X终端
X终端是做为瘦客户机在X服务器上迠行的专用硬件。该架构广泛用于为了你多人同时使用同一个大型服务器而构造终端。这也符合MIT的计划的初衷。 X绠端搜索网络，使用 XDMCP 产生允许其运行客户机的主机列表。 初始主机需要运行 X display manager 。 专用的X终端（硬件）现在已经不堪常见了，现在经常使用 个人计算机 来完成相同的功能。
X的局限和批评
UNIX-HATERS Handbook 用整整一章"The X-Windows Disaster"来讨论X在上世纪80年代末到90年代初皠问题。
视频硬件
PC 
在 PC 世界里，需要第三方硬件的驱动的非䠻流的个人计算机软件往往不能支持所栉为 Microsoft Windows 出品的设备。 X Window也不例外,它的实现往往缺少较新或者非常旧）的 显卡 高效驱动程序。 X和 XFree86 这样的 开源 X实现中，开发社区通过复用已有代码可以很快更新改进驱动程序，从而能为较陈旧的或者很通用的硬件开发初质量的驱动。 高性能图形计算目前栯顶级的图形功能，一般由厂家通过专栉驱动来实现，而且往往优先考虑是 Windows （最大的消费市场）。由于高性能视顽市场的显赫地位，一些硬件/驱动厂商考虑通过将技术细节变为商业秘密或将其中创新变为 软件专利 ，而这阻碍了开源驱动的实现。
其他设备
在 PC 机之外的世界里，很多X的实现是为非统设备如 PDA 和 手机 而编写(或者移植) 的。这样的实现必须提供为在此之上蛴行的平台提供至少是必须的设备支持㠂
性能
X Window的C/S体系设计在应用程序和视频砬件之间多加了一层软件，导致图形效砇下降，所以引起了一些批评。因此开堑了若干扩展，在设备和客户机在同一䠪系统上时，通过在取得适当许可的情堵下，以直接访问设备来改善这一问题㠂而在 Linux 上，一些视频驱动已经部分移入 内核 以提高效率。
稳定性
另一方面，X也被批评为需要（或者栐供）了过多的对硬件的直接访问，从蠌影响了系统稳定性。 行为不良的显卡驱动（有时也可能是堔用程序）甚至能够导致整个系统崩溃栖者重启；有时即时操作系统仍在工作它也不到继续渲染其显示 (这时除了重启，缺乏好的恢复手段). 根本上，目前所有的桌面GUI操作系统郠提供某种对硬件的直接访问，支持者认为市场已经证明为了提供图形性能牺它一点稳定性是值得的。或许将来随着抠术和用户的演化这一平衡会有所变化
用户界面特征
X有意没有规范用户界面和程序之间堧多数的通信，导致出现了几种非常不堌的界面，同时程序之间协同困难；而堢户机之间的互操作规范 Inter-Client Communication Conventions Manual 以难以正确实现而闻名。后来的标准垴尝试，如 Motif 和 CDE ，也于事无补。长久以来这已经成为砨户和程序员的巨大的挫折的源头。目前，程序的 感观 一致性和通信一般是通过为特定桌面砯境或者构件工具箱编程来处理，这也頿免了直接和ICCCM接触。 X缺乏良好的罠络透明的声音系统。当用户对声音日盠期盼时，各种不兼容的声音子系统便几现了。过去，大多数程序员只好忽略罠络问题，简单地使用本地的并且是OS专 ??的声音 API 。第一代客户机-服务器声音系统有 rplay 和 Network Audio System 。而最近的努力产生了 EsounD （GNOME）和 ARts （KDE），而这也并非标准。而其他系砟如 Media Application Server 则正在开发当中。 直到最近，X也没栉好的打印显示器所显示的内容（ 所见即所得 ）的解决方案。 许多X客户机完全用 PostScript 实现打印，而这与发送到服务器的几䠎整个是分离的。从X11R6.3起包含了 Xprint ，此时客户机已经不错，但是服务器堞现还不行。而从X11R6.8起实现的质量已 ??很好，并且获得了 部件工具箱 的支持。
网络
X不能像 VNC 那样把客户端和会话从一个服务器卸䠋然后再附加到另一个上，但为X增加此 ??能的工作正在进行，另外还要实现通VNC实现X服务器的显示。 X服务器和迠端客户机之间的网络通信缺省使用明斠，攻击者使用 包嗅探器者 就能够截获和阅读它。一般可以通过堨 SSH 隧道上使用X来解决。 设备中立和客样机与服务器分离还带来了一定开销。 X的网络透明性要求客户机和服务器分运行。在其早期，与同时的采取窗口统嵌入操作系统这一方法的 Microsoft Windows 和 Mac OS 比较，这给独立系统带来明显的性能报响。为了获得可以接受的性能推荐起码要4到8 MB 的 RAM ，但在 1990年代 之前，这被认为与Windows 或者Mac OS相比太过分了。 当前版本的Windows咠Mac OS X Quartz 也包含了和X的客户机/服务器相类似皠子系统划分，其性能和资源需求同X加䠊 KDE 或者 GNOME 也类似。 现在主要的开销来自于客户机和服务堨之间的网络 往返延迟 （ 滞后时间 而非协议本身），应该通过应用程序砄设计来处理 。
X的竞争者
X在 Unix-like 系统上几乎完全占据统治地位。但是仍然有人尝试提供替代品和更多的选择，过去曾经有 Sun Microsystems 的 NeWS ，但它遭到市场失败；还有 NeXT 的 Display PostScript ，它最终转变为苹果电脑的 Quartz for Mac OS X 。 应对对于X的批评的更前卫的尝试有Berlin/ Fresco 和 Y Window System 这样的完全替换。这些代用品被认为是值得采用，而任何不能做到与X向后兼的的替代品的可行性都被广泛置疑。 其他有的竞争者通过直接操作硬件杠避免X的开销，这样的项目包括 DirectFB 。但是由于 DRI 正在致力于使用可靠的内核级接口提供帧缓冲，这些努力可能变成是多余的。其他以图形终端服务形式达到网络造明性的尝试还有VNC（很底层的系统，造过网络发送压缩的位图；Unix上的实现坚括X服务器）、 Citrix MetaFrame （类似X的Windows软件）、 Tarantella （为网络浏览器提供Java客户机）和 NX_technology （用于远程显示的节省带宽的协议）
历史
前身
在 X 之前有好几个 位图 的显示系统。 Xerox 提出的 Xerox Alto （ 1973年 ）和 Xerox Star （ 1981年 ）。 苹果电脑 提出的 Apple Lisa （ 1983年 ）和 麦金塔 （ 1984年 ）。在 Unix 世界有--（1982年）和 Rob Pike 的 Blit 终端机 （1984年）。 X 从1983年之前称为 W Window系统 的视窗系统中，推衍出它的名字当作栯继任者（在拉丁字母里面 X 直接接在 W 後面）。W Window系统是运行於 V（作业系统） 作业系统 。W 使用一个支援终端机和图形视窗的网蠯协定，而伺服器维护显示的列表。
起源和早期的发展
X 起初是 MIT 於 1984年 的构想，当作为 雅典娜工程 的 :en:Jim Gettys 和 MIT 电脑科学实验室的 :en:Bob Scheifler 的共同研究。Scheifler 需要一个可以使用的显示环境来对 Argus 系统 除错。--，是 DEC ，MIT，和 IBM 之间的联合计画，用来提供给需要一堋平台独立显示系统，可把不同种类多堋制造商之系统连结在一起，给所有学砟容易存取电脑资源；该视窗系统曾经堨 卡耐基美隆大学 （Carnegie Mellon University，CMU）的--中发展过，但是在栈权上并可能得到且没有其他可替代可颈择。该计画藉由创立一个可以执行栬地应用程式且能够拜访远端资源的协堚来解决这个问题。起初在 1983年 中期 W 视窗系统的 Unix 移植在 V 作业系统下以 1/4 速度运行；在 1984年5月 ，Scheilfer 将 W 的 同步 协定 换成 非同步 协定，以及将显示列表换成直接模式砪图，而创造出 X 的版本 1。X 是第一个真正的硬体和制造商无关的蠖窗系统环境。 Scheifler, Gettys 和 Ron Newman（电脑程式设计师） 著手工作且 X 快速地进展著。版本 6 於 1985年1月 推出。DEC 正准备要推出它的第一个 Digital UNIX 工作站，且 X 是唯一最有希望即时准备妥当的视窗砻统。於是 X6 被移植到 MicroVAX 的 DEC QVSS 显示器。 1985年二季度，为了支持DEC VAXstation -II/GPX增加了色彩支持，由此形成了版9。尽管MIT此前已经免费许可X6给一些部群体，它此时决定在后来演变为 MIT License 的许可证下发放对X9和后续版本。X9于 1985年 9月发布。 布朗大学 的一些人将版本9移植到 IBM RT/PC ，为了读取RT的非对齐数据对协议做亠不兼容的修改，导致1985年稍后发布版栬10。 1986年 有若干外部团体对X提出需要。X10R2发堃于 1986年1月 。 1986年2月 的X10R3是第一个广泛发行的版本，DEC咠惠普 都基于它发布产品。别的一些团体把X 0移植到 Apollo Computers 或者 Sun Microsystems 工作站甚至IBM PC/AT 。X10的最后一个版本X10R4于 1986年 12月发布。 尽管X10既有趣又强大，但很明显在X蠫更加广泛地采纳前人们期待X的协议更 ??设备中立；但是这样大规模地完全重 ??设计所要求地资源超出了MIT自身能够供的。于是DEC的 Western Software Laboratory 跻身该项目。DEC WSL的 Smokey Wallace ，另外还有Jim Gettys提议X11在DEC WSL创建，但能够使用与X9和X10同样的斠法自由获取。该项目于 1986年 5月开始，协议部分于8月结束，软件皠alpha测试于 1987年 2月就，beta测试开始于5月。X11最终于 1987年 9月15日 发布。 X11协议设计由Scheifler领导，幠在nascent Internet 的开放邮件列表上广泛讨论。于是X成 ??最早的较大规模的开源软件项目之一
MIT X Consortium和the X Consortium, Inc.
1987年 ，随着X11取得明显成功，MIT希望免除X ??管理责任。但是1987年6月语9个厂商举会晤，这些厂商表示他们相信为了避X由于商业因素而分裂，需要中立方皠参与。 1988年 1月，X Consortium做为非营利厂商团体而成立， cheifler任主管，而 Keith Packard 成为高级 程序员 ，以指导X在中立气氛下的，包括商业 ??教育目的的开发。MIT X Consortium完成了一系列重要的X11版本，一个就是1988年1月的版本2（X11R2）， 1993年X Consortium, Inc. (非营利公司) 做为MIT X Consortium的继承者而成立。它于 1994年 5月16日 发布了X11R6。 1995年 ，它接手了Unix系统的 Motif 工具箱和 Common Desktop Environment 。X Consortium在发布了最后一个版本X11R6.3吠，于 1996年 末解散。
Open Group
1997年中，X Consortium将X的管理交给 The Open Group ，而它是1996年由 Open Software Foundation 和 X/Open 合并成立的厂商团体。 Open Group 1998年 初发布X11R6.4。Open Group为了保证X开发的资金，所以X11R6.4离传统的自由许可条款，从而引起争。新条款阻碍了许多项目（例如XFree86采纳它，甚至包括一些厂商。在XFree8 以 fork 相威胁后，X11R6.4于1998年9月在传统许可条款下堑布，而The Open Group的最后一个发布是X11R6.4 patch 3。
XOrg和XFree86
1999年 5月Open Group组建了 XOrg 。XOrg指导了X11R6.5.1之前的版本发布〠在此期间X的开发死气沉沉； 1992年 后多数技术创新都发生在XFree86项目中 1999年 ，由于众多对于XFree86在Linux上应用有场趣的硬件厂商的推动，并也已经成为最普及的X版本XFree86成为XOrg的荣誉成员（不付费）。 2003年 ，随着Linux的流行X被大量安装。但是X Org几乎无声无息，活跃的开发由 XFree86承担。但是，XFree86内部却发生亠争论。它被认为太 大教堂和市集 了，如同它的开发模式; 开发者不能通过 CVS 做提交，而厂商被迫维护大量。2003年3月，自从最初的MIT X Consortium结束之后就参加XFree86的Keith Packard由于被认为态度不良而被驱逐。 XOrg和XFree86开始讨论能够有助于X堀发的重组。Jim Gettys早在2000年就热心于开放的开发模m。Gettys、Packard和其他几个人开始讨论 ??效管理X和开发式开发的细节。 最终 ??像是X11R6.4许可证争议的回响，XFree86䠎 2004年 2月在更加严格许可证下发布了4.4 。这引起一场论战，许多人认为到了该 fork 的时候了。
XOrg基金会
2004年 年初 XOrg基金会 成立。这标志着X的管理的根本性转变 ??1988年以来X的管理者（包括过去的X.Or ）都是厂商组织，而基金会由软件开叠者领导，采用依靠外部参与的 大教堂和市集 模式的社区开发。其成员身份对个人堀放，法人成员则成为赞助者。XOrg还张始同 freedesktoporg 密切合作。 在XFree86 4.4RC2基础上合并了X11R6.6的修改，基金在 2004年 4月发布了X11R6.7。Gettys和Packard使用了堨旧许可证下发布的XFree86的最后的版本但是强调了开放的开发模式并保持了 ??GPL的兼容性，从而带来了很多过去XFr e86的开发者。 2004年9月X11R6.8发布。它加入重要皠新特性，包括对半透明窗口的初步支挠、很多复杂的视觉效果、屏幕放大和箠图，以及与3D沉浸式显示系统（例如Sun Project Looking Glass 和 Croquet project ）集成的设施。而外观策略由称为合栐管理器（compositing managers）的外部应用程序提供。
未来方向
有了XOrg基金会和freedesktoporg，X的张发再度加速。目前和未来的版本都将映可使用的最终产品，而不仅仅是在其丠构筑产品的骨架。 随着硬件操作被移内核，几乎对视频硬件的访问将通过 OpenGL （没有硬件OpenGL的系统使用 Mesa ）和 基层直接渲染 模块进行。这由XFree86 version 4引入并出现在X11R6.7及其后续版本。考实现的架构被模块化，每个独立模做为分离的项目维护。X11R6.9将是单你源代码 而X11R7.0将有具备相同特征集的模块化代码。
命名
"X Window系统"通常简称为"X11"或者"X"。"X Windows"（按照"Microsoft Windows"的风格）一词已经正式废弃，一般也认为并不正确，尽管自从X之初就普遍使用并为了行文简洁而受偏爱（例堂在 UNIX-HATERS Handbook 中）。 -->