X Windows的理解
X window 是Unix/Linux系统上的图形用户界面 一个Linux的发行版,比如说Ubuntu,Centos都是Linux内核加上图形用户界面(比如GNome,KDE)再加一堆应用软件组成的。 所以说x window也是Linux上的一个应用软件,没有它,Linux也照样可以跑。
x window可以理解为操作系统的GUI程序,这个程序接管了键盘、鼠标、显示器、显卡。
你在屏幕上看到所有的窗口、图片、文字都是由它绘制的,鼠标键盘等事件也是由它处理和分发。
x window system
可以分为如下三部分
1. x client
2. x server
3. x protocol
-
x window是采用C/S结构设计的。
- x server管理了键盘、鼠标、显示器、触摸板、显卡等I/O设备,所有窗口、文件和图片都是由x server绘制的。 例:键入一个字母G,x server得到这个事件后,会将该事件转发给对应的程序(假使此时对应的应用程序就是某一个client),client接收到事件后,需要显示这个字母,然后就会发一个请求给x server,要求在xx,xx地方显示一个大小为xx颜色为xx,字体为xx的字母,x server收到请求后,就按照要求把字母c画出来了。
x server是服务器,处理x client发过来的请求,并将结果返回给clients,它们之间的数据交互格式是由x protocol规定。
x window system 使用C/S结构设计的优点
资源统一管理,方便共享。由于x server接管了硬件,client不需要直接使用。x server方便获得输入事件,主动发给各个client。
远程显示。一般来说server和client是在同一台电脑上,但是也可以不在不同网络的不同电脑上。这样即使你远程登录,也可以在本机上显示远程端的程序。
采用C/S,clinet和server可以解耦。client可以采用任意语言开发,只要符合x protocol要求就可以了。
在X Windows基础上开发图形应用程序的时候,是不需要自己发请求给x server的
看下图: