回到 UNIX 还是新鲜事物的 1970 年左右,图形用户界面只是一种在实验室(更准确地说是施乐的 PARC)中摆弄的奇怪事物。 然而,如今,任何希望具有竞争力的操作系统都需要一个 GUI 子系统。 GUI 应该更容易使用。 这在 UNIX 下并不是一个主要问题,UNIX 传统上在某种程度上对用户不太友好,宁愿追求多功能性而不是易用性。 然而,即使在 UNIX 系统上,GUI 也是可取的,原因有几个。 例如,考虑到 UNIX 的多任务处理特性,很自然地会在任何给定时间运行许多程序。 GUI 可以更好地控制屏幕上的显示方式,从而为同时在屏幕上显示大量程序提供更好的便利。 此外,某些类型的信息以图形形式显示效果更好(有些甚至只能以图形形式显示;例如色情内容和其他固有的图形数据)。
从历史上看,UNIX 有很多学术界人士所做的改进。一个很好的例子是 1970 年代后期添加到其中的 BSD 网络代码,这当然是加州大学伯克利分校工作的成果。 事实证明,X 窗口系统(也称为 X,但绝不称为 X Windows)是现代 UNIX(unices?)、Linux 和包括 BSD 在内的大多数 GUI 子系统的基础,也是一个学术项目的成果,即麻省理工学院 (MIT) 的 Athena 项目。
自诞生以来,Unix 一直是多用户、多任务、分时操作系统。 此外,自从结合了网络技术以来,它就具有允许用户远程连接并在系统上执行工作的能力。 以前,这是通过哑串行终端或网络连接(传奇的 telnet)完成的。
当需要开发一个主要在 Unix 下运行的 GUI 系统时,这些概念被牢记在心并融入到设计中。 实际上,X 有一个相当复杂的设计,这经常被认为是缺点。 然而,由于其设计,它也是一个非常通用的系统,当我们解释构成 Unix 下 GUI 的所有部分如何组合在一起时,这一点将变得非常清楚。
在了解 X 的架构之前,简要回顾一下它的历史,以及它最终如何出现在您的 Linux 系统上,是有必要的。
X 由 Athena 项目开发,并于 1984 年发布。1988 年,一个名为“X 联盟”的实体接管了 X,至今仍在处理其开发和分发。 X 规范是免费提供的,这是一个明智之举,因为它使 X 几乎无处不在。 这就是 XFree86 的由来。 XFree86 是我们在 Linux 计算机上使用的 X 的实现。 XFree86 也适用于其他操作系统,例如 *BSD 系列、OS/2 和其他操作系统。 此外,尽管名称如此,XFree86 也适用于其他 CPU 架构。