1. 历史
来源于MIT的Athena项目,本来叫W(1980),自然接下来就叫X;
1985,Version 10 得到广泛使用,不久之后就除了 11;
现在是X11R7.6;
XFree86 是X服务器在Linux下的实现,直到2004年,由于条款的变化,XFree86 有了一个分支,它由X.Org管理,是现在Linux下的主要实现;
2. X Window client/server Model
Display Manager:X 系统默认的是 xdm (X Displayer Manager),Gnome 有其替代值 gdm,KDE 为 kdm;
主要作用是:
启动 X sever ;
(也可以通过运行startx来启动X server,startx 封装了xinit,xinit是真正的X系统初始化程序;)
用户认证登录,所以兼有login manager的作用:
弹出一个登录界面,这应该是第一个X客户程序吧,提供桌面环境的选择,还还有failsafe选项;
启动初始化脚本(包括启动窗口管理器);
用户登录后,dm启动Xsession脚本,用于初始话用户桌面环境;
Xsession还会执行用户自定义的~/.xsession脚本;
(注意:.xsession结束的话,用户就登出系统了,所以.xsession脚本最后一句不能是后台命令,即不能加&,这一句通常是窗口管理器,这样只有在窗口管理器结束的时候,用户才登出;.xsession的输出在.xsession-errors中;
所以,在配置vnc server的时候,~/.vnc/xstartup最后一句,gnome-session不要加&;)
X server:通过网络API,定义了一些基本的绘制原语;没有按钮、文本框等(widget)概念;
Window Manager:移动、改变大小、最大化、最小化等操作,管理虚拟桌面;
Widget Library:可以自定义;