X窗口是一种用于UNIX系统的标准图形化用户界面(GUI),它是由麻省理工学院开发的。GUI是用鼠标器和键盘控制的,具有下拉菜单、在屏按钮、卷动条和为运行不同应用的重叠窗口界面。其它GUI环境的例子包括Apple的Macintosh、Microsoft的Windows和IBM的O3/2 Presentation Manager。然而,X窗口环境是一种可以在
远程连接之上很好工作的客户机/服务器式的设计。
考虑到开发人员,x窗口为开发基于图形的
分布式应用程序提供
软件工具和标准
应用程序编程接口。完成的应用是与硬件无关的,这意味着它们可以在支持x窗口环境的任何系统上运行。完整的这种环境通常被简单地称为“X”。
X窗口系统在位映射
屏幕上的一个或多个窗口中运行程序。用户可以在每个窗口同时在系统上运行多个程序,并且通过用鼠标器点击它们来在窗口之间进行交换。图X-4示意了一个X窗口环境,并将在下面讨论。
X服务器处理所有X客户的处理程序,以及通过
消息传递系统和其它客户交互工作。X服务器控制整个本地环境,因而当访问
存储器和其它系统资源时,程序间进行合作。
X服务器运行x
窗口管理器程序,这个程序提供GUI界面。现在可以使用两种
窗口管理器:Motif和Open Look。它们在功能上是类似的,并且运行相同的程序。
在
本地机器运行的x服务器可以和远程计算机上运行的程序进行交互,并且在本地窗口显示这些程序的输出。它是一种客户机/服务器的关系,但是本地服务器具有全权控制,并且远程进程被称为客户机,而不是服务器,这是因为它们是处于这个本地的x服务器的控制之下的。
在Internet和其它
广域网环境,上面最后一点是非常重要的。用户可以对运行在远程计算机上的程序进行工作。这个远程程序在它需要经常访问的资源(如磁盘数据)附近运行。只有需要修改用户屏幕的信息才被通过远程链路进行传输,从而避免了将整个程序和它的数据都传输到本地系统进行处理时可能出现的瓶颈。
X服务器和远程X客户机之间的接口是面向事件的,并且是基于X协议的。这种协议在
传输控制协议/
Internet协议(TCP/IP)之上运行。在一些情况下,一些厂商通过增加象三维图象这样的功能来增强了X窗口环境。X窗口环境的一个优势是,服务器应用程序可以在任何平台上运行,并且这个应用程序可以在公用运输协议之上与这个客户机交换一组消息。于是,开发人员就可以在许多系统上建立X窗口-认可的应用程序,并且这些应用程序可以被任何支持X窗口的工作站访问。
X窗口是
开放软件基金会(OSF)的Motif和Open Look系统的
用户接口。SunSoft的Solaris2操作系统也实现了由AT&T开发的X窗口实现。