X Window System

[编辑]

简介

X窗口系统(X Window System,也常称为X11或X)是一种以位图方式显示的软件窗口系统。最初是1984年麻省理工学院的研究,之后变成UNIX、类UNIX、以及OpenVMS等操作系统所一致适用的标准化软件工具包及显示架构的运作协定。X窗口系统通过软件工具及架构协定来创建操作系统所用的图形用户界面,此后则逐渐扩展适用到各形各色的其他操作系统上。现在几乎所有的操作系统都能支持与使用X。更重要的是,今日知名的桌面环境——GNOME和KDE也都是以X窗口系统为基础建构成的。

由于X只是工具包及架构规范,本身并无实际参与运作的实体,所以必须有人依据此标准进行开发撰写。如此才有真正可用、可运行的实体,始可称为实现体。目前依据X的规范架构所开发撰写成的实现体中,以X.Org最为普遍且最受欢迎。X.Org所用的协定版本,X11,是在1987年9月所发布。而今最新的参考实现(参考性、示范性的实现体)版本则是X11 Release 7.6(简称:X11R7.6),而此专案由X.Org基金会所领导,且是以MIT授权和相似的授权许可的自由软件。

用户界面

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.Org的参考实现。由于其许可证比较宽松,出现了大量自由的或者专有的实现。商业的UNIX商家倾向于采用参考实现并使之适应其硬件,例如高度定制并加入专有的扩展。 直到2004年,在自由的类UNIX系统上最常见的X变体是XFree86。顾名思义,它源于X的386兼容的PC机的移植,到了上个(20)世纪90年代末期成为X的技术创新的主要来源和X开发的事实标准。但是从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和WeirdX,另外专有、专属性的也有Xmanager、X-Deep/32、X-Win32、WiredX 和Exceed。它们多用于控制远程X客户端。 当X寄生在其他窗口系统(例如:Windows或Mac OS)时,X系统一般是“rootless,无根”的,也就是说:宿主(主体)窗口系统担当根窗口(背景和相关菜单)并管理寄生(客体)的X窗口的位置。但是也有些服务器,例如Exceed,能够在宿主系统上创建根窗口使得远程客户端能够做为分离的窗口在其上显示。

X终端机

X终端机(X Terminal)是做为仅运行X服务器的瘦客户机的专用硬件。该架构广泛用于为了使多人同时使用同一个大型服务器而构造终端。这也符合MIT的计划的初衷。

X终端搜索网络,使用XDMCP产生允许其运行客户机的主机列表。初始主机需要运行X显示管理器。

专用的X终端机(硬件)现在已经不太常见了,现在经常使用个人计算机并搭配运行X终端机的实效模拟程序(Emulator)来完成相同的功能,过去(1990年代初期)业界在推行X终端机时也将其称为“穷人的UNIX工作站”。

历史

前身

事实上,早在X出现前已有几个位图式的软件显示系统已经存在,例如帕洛阿尔托研究中心(施乐公司)提出的Alto(1973年)和Star(1981年)、苹果电脑提出的Lisa(1983年)和麦金塔(1984年)、在UNIX世界也有雅典娜工程(1982年)和Rob Pike的Blit终端机(1984年)。 X从1983年之前称为W Window系统的窗口系统中,推衍出它的名字当作是继任者(在拉丁字母里面X直接接在W后面)。W Window系统是运行于V操作系统。W使用一个支持终端机和图形窗口的网络协议,而服务器维护显示的列表。

起源和早期的发展

X起初是MIT于1984年的构想,当作为雅典娜工程的吉姆·给提和MIT计算机科学实验室的鲍伯·斯凯夫勒的共同研究。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正准备要推出它的第一个Ultrix工作站,且X是唯一最有希望实时准备妥当的窗口系统。于是X6被移植到MicroVAX的DEC QVSS显示屏。

1985年第二季,为了支持DEC的VAXstation-II/GPX增加了色彩支持,由此形成了版本9。尽管MIT此前已经免费许可X6给一些外部群体,它此时决定在后来演变为MIT授权的许可证下发放对X9和后续版本。X9于1985年9月发布。

布朗大学的一些人将版本9移植到IBM RT/PC,为了读取RT的非对齐数据对协议做了不兼容的修改,导致1985年稍后发布版本10。1986年有若干外部团体对X提出需要。X10R2发布于1986年1月。1986年2月的X10R3是第一个广泛发行的版本,DEC和惠普都基于它发布产品。别的一些团体把X10移植到Apollo或者Sun工作站甚至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协会与X协会公司

1987年,随着X11取得明显成功,MIT希望免除X的管理责任。但是1987年6月与9个厂商举行会晤,这些厂商表示他们相信为了避免X由于商业因素而分裂,需要中立方的参与。1988年1月,X协会(X Consortium)做为非营利厂商团体而成立,由Scheifler担任主管,而Keith Packard担任高级开发人员,确保X能持续以中立超然的立场提供商业与学术教育所需的开发。此后MIT X协会(MIT X Consortium)完成了一系列重要的X11版本,第一个就是1988年1月的版本2(X11R2)。

1993年,X协会公司(X Consortium, Inc.;非营利性质的公司)做为MIT X协会的接继者而成立。它于1994年5月16日发布了X11R6。1995年X协会公司接手了UNIX系统的Motif工具箱和CDE(Common Desktop Environment)共通桌面环境。而原有的X协会在发布了最后一个版本的X11R6.3后,于1996年末解散。

开放团体

1997年中,X Consortium将X的管理交给开放团体,而它是1996年由开源软件基金会(OSF)和X/Open合并成立的厂商团体。 开放团体于1998年首次发布X11R6.4。为了确保X开发上的资金,所以X11R6.4偏离传统的自由许可条款,进而引起争议。新条款阻碍了许多项目(例如:XFree86)采纳它,甚至包括一些厂商。在XFree86以分离相威胁后,X11R6.4于1998年9月在传统许可条款下发布,而开放团体的最后一个发布是X11R6.4 patch 3,即第三度发布的补丁。

X.Org

1999年5月开放团体组建了X.Org。X.Org指导了X11R6.5.1之前的版本发布。在此期间X的开发死气沉沉。2003年,随着Linux的流行X被大量安装。但是X.Org几乎无声无息,活跃的开发由XFree86承担。

XFree86

在1989年至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和开放式开发的细节。

最终就像是X11R6.4许可证争议的回响,XFree86于2004年2月在更加严格许可证下发布了4.4 。许多依赖X的项目认为该许可证无法接受,特别是它和GNU General Public License不兼容。这引起一场论战,许多人认为到了该对XFree86分叉(fork)的时候了,许多Linux发行版,包括Fedora、Gentoo都纷纷在最新的版本中使用X.Org基金会的发布代替XFree86。

X.Org基金会

2004年年初X.Org基金会成立。这意味着X在管理上的根本转变。1988年以来X的管理者(包括过去的X.Org)都是厂商组织,而基金会由软件开发者领导,采用依靠外部参与的集市模式的社区开发。其成员身份对个人开放,法人成员则成为赞助者。X.Org还开始同freedesktop.org密切合作。 在XFree86 4.4RC2基础上合并了X11R6.6的修改,基金会在2004年4月发布了X11R6.7。Gettys和Packard使用了在旧许可证下发布的XFree86的最后的版本,但是强调了开放的开发模式并保持了与GPL的兼容性,从而带来了很多过去XFree86的开发者。

2004年9月X11R6.8发布。它加入重要的新特性,包括对半透明窗口的初步支持、很多复杂的视觉效果、屏幕放大和简图,以及与3D沉浸式显示系统(例如Sun的Project Looking Glass和Croquet project)集成的设施。而外观策略由称为合成管理器(compositing managers)的外部应用程序提供。

未来方向

有了X.Org基金会和freedesktop.org,X的开发再度加速。目前和未来的版本都将是可使用的最终产品,而不仅仅是在其上构筑产品的骨架。 随着硬件操作被移入内核,几乎对视频硬件的访问将通过OpenGL(没有硬件OpenGL的系统使用Mesa 3D)和基层直接渲染模块进行。这由XFree86 version 4引入并出现在X11R6.7及其后续版本。 参考实现的架构被模块化,每个独立模块做为分离的项目维护。X11R6.9将是单体源代码而X11R7.0将有具备相同特征集的模块化源代码。

写法、称呼上的误混

“X窗口系统”一般也简称成“X11”或“X”,而“X Windows”的称写方式(类似“Microsoft Windows”的称写)并没有被正式认可,不过这种误会的称写法却经常很普遍且经常出现(例如在UNIX痛恨者手册一书中)。

相关文档

安装

由于深度操作系统是桌面版本,因此默认安装了X Window System,此处仅为介绍如何安装X Window System.

  • 命令安装,终端执行:
sudo apt-get install xserver-xorg 
sudo apt-get install x-window-system-core

注意:以上已经安装好了X Window System,但是如果没有继续安装桌面环境或者窗口管理器依然是无法进入图形界面的,因此我们需要继续安装桌面环境或者窗口管理器和登陆管理器(登陆管理器为可选,但是如果你安装了登陆管理器,它将使您可以在启动时直接进入GUI桌面环境,而不在需通过 startx 来启动GUI)

以下以安装lightdm登陆管理器和dde桌面环境为例,终端执行:

sudo apt-get install lightdm  ##安装lightdm登陆管理器
sudo apt-get install dde-meta-zh-hans  ##安装dde桌面环境(简体中文)

以上已经安装好了完整的组件,此时终端执行一下命令即可进入图形界面:

startx

卸载

  • 命令卸载,终端执行:
sudo apt-get remove xserver-xorg 
sudo apt-get remove x-window-system-core

请不要卸载X Window System,特别是你不明白你这样做的会产生怎么样的后果,X Window System是桌面环境必备的基础要求!!

常见问题

  • 深度操作系统循环登陆

登陆深度操作系统的时候屏幕闪一下 又退回到登陆界面,可以尝试ctrl + alt + F1切换到终端登陆,然后执行:

 rm ~/.Xauthority

原理为删除家目录下的 .Xauthority 文件(startx的记录文件)

  • 登陆黑屏,startx正常

如果是在/etc/environment里配置的Java环境变量,请删掉,可以将环境变量配置到/etc/profile里。

  • 登陆黑屏,startx报错

登陆黑屏,执行startx命令后输出一下类似信息:

“/Var/log/Xorg.0.log”for additional information
Server terminated with error(1)。Closing log file
xinit:giving up
xinit:unable to connect to x server:No such file or directory
xinit:server error

请终端执行:

 sudo apt-get install xserver-xorg -y && rm -rf ~/.Xauthority

相关链接

微信

欢迎关注 "深度操作系统" 公众号,使用微信扫描下方二维码即可关注。

deepin weixin

IRC

IRC为linux世界中最为常见的交流方式之一,它提供了一个类似于匿名聊天室的环境,欢迎您进入deepin IRC频道与大家进行交流。

服务器: irc.freenode.net
服务器: #deepin

邮件列表

邮件列表是linux世界中最为常见的交流方式之一,只要您加入了deepin邮件列表,就可以使用邮件的方式与大家进行交流。

·deepin users:用于deepin用户的一般讨论。
·deepin developers:专用于deepin开发者讨论。