为啥图形窗口接口要称为 X 呢?因为就英文字母来看 X 是在
W(indow) 后面,因此,人们就戏称这一版的窗口接口为 X
,有下一版新窗口之意
X系统由3个相关的部分组合起来的。
服务端(Server)
Server是控制显示器和输入设备(键盘和鼠标)等硬件的软件。
它负责检测具体那个设备有什么动作,如键盘按下、鼠标滑动,但它不能将这些动作转化为绘图数据。
它还负责 设备发出动作以后,到底该如何显示。
客户端(Client)
Client的主要工作是接受服务器传来的动作,将其转化为绘图数据,再将这写数据送去服务端。
Server和Client之间的通信
Server和Client通信的方式大致有两类,对应于X系统的两种基本操作模式。
第一类,Server和Client在同一台机器上执行,它们可以共同使用机器上任何可用的通信方式做互动式信息处理。在这种模式下,X可以同其他传统的视窗系统一样高效工作。
第二类,Client在一台机器上运行,而显示器和Server则在另一台机器上运行。因此两者的信息交换就必须通过彼此都遵守的网络协议进行,最常用的协议为TCP/IP。这种通信方式一般被称为网络透明性,这也几乎是X独一无二的特性。
用windows 远程访问 linux时
windows作为通常的c端,需要装x系统中的 x server。
我们在 Windows
中将鼠标向右移动时,首先,X server 会侦测到鼠标移动,但是他不知道应该怎么绘图!他将鼠标这个动作告知 linux 下的X Client, X
Client 就会去运算,得到其实要将鼠标向右移动几个位素的,然后将这个结果告知 X server , 接下来,您就会看到 X Server
将鼠标向右移动了。
X Window Manager:特殊的 X Client ,负责管理所有的 X client 软件
刚刚前面提到,X
Client 的主要工作是将来自 X Server 的数据处理成为绘图数据,再回传给 X server
而已, 所以 X client 本身是不知道他在
X Server 当中的位置、大小以及其他相关信息的。这也是上面
我们谈到的, X client
彼此不知道对方在屏幕的哪个位置啊!为了克服这个问题,因此就有 Window
Manager (WM, 窗口管理器) 的产生了。 窗口管理器也是 X
client ,只是他主要在负责全部 X client
的控管,还包括提供某些特殊的功能,例如:
提供许多的控制元素,包括任务栏、背景桌面的设定等等;
管理虚拟桌面 (virtual desktop);
提供窗口控制参数,这包括窗口的大小、窗口的重迭显示、窗口的移动、窗口的最小化等等。
我们常常吩到的 KDE, GNOME, XFCE
,都是一些窗口管理器的项目。
相关文章
- 12-20D:\ANdriod\emulator\qemu\windows-x86_64\qemu-system-i386.exe: Could not open 'C:\Users\榛
- 12-20HC32L17x的LL驱动库之system
- 12-20异常System.Web.HttpException (0x80004005): Server cannot set status after HTTP headers have been sent.
- 12-20Linux进程状态(ps stat)之R、S、D、T、Z、X 转:http://blog.csdn.net/huzia/article/details/18946491
- 12-20SharePoint "System.Data.SqlClient.SqlException (0x80131904): Parameter '@someColumn' was supplied multiple times.“
- 12-20加州大学伯克利分校Stat2.3x Inference 统计推断学习笔记: Section 5 Window to a Wider World
- 12-20C – 在X Window中更改光标
- 12-20Linux进程状态(ps stat)之R、S、D、T、Z、X
- 12-20Get Window Position关键字——获取当前页面的坐标位置,先返回横坐标 X,再返回纵坐标 Y——不需要接收任何参数
- 12-20[解决方案]Window 2008 R2 + IIS7.5 + VS2013 错误代码 0x80070002