Linux的窗口系统
原生的Linux只提供了字符命令操作界面。后来为了让Linux更容易使用便引入了X Window系统,设计实现了Linux上的图形窗口系统,如Gnome,KDE 等。
X Window系统是一种图形用户界面的实现框架,而不是一个具体的产品。X Window的结构可以看作X Server+XProtocol+X Client,采用C/S结构工作方式。X Server负责图形绘制驱动,用户输入接收等,X Server会将用户输入传输给X Client,由X Client按照应用程序的逻辑进行运算,将需要绘制的图形数据传回给X Server来绘制。
X Server和不同的X Client搭配,可以配置成不同风格的窗口系统。X server
的产品实现比较少,主要就是/usr/bin/X11/X程序。而X client则有很多不同的实现,比如GNOME, KDE,twm(就是一个单窗口管理器),xterm(X Window 的默认Client),rxvt。正是有了各种不同的X CLient才使得Linux上现在可以看到风格各异的几种窗口界面。
在Linux启动时要启动X Window,一般有两种方法,一是用startx/xinit, 二是使用xdm/gdm/kdm.
xinit是一个启动X的小工具,而startx只是一个调用xinit工具的s件,通过在startx里会配置将要打开什么样的X Server和X Client,以及可选参数,然后调用xinit去打开X Window。
startx通过四个步骤确定将要打开哪一个X Server或X Client。
(1)首先使用startx后面带的参数来确定用什么X Server和X Client;
(2)若没有参数,则在用户HOME目录下寻配置文件,即~/.xserverrc或~/.xinitrc
(3)若没有用户配置文件,则在系统目录下寻/etc/X11/xinit/xserverrc或
/etc/X11/xinit/xinitrc
(4)若前面三步都没有到,则启动系统默认最简单的X Server-usr/bin/X ,X CLient - xterm
另外也可以通过xdm/gdm/kdm这三种登入管理器来启动X。登入管理器(Display Manager,DM)是用来提供一个通过用户名密码登际系统的接口,并且用户可以通过修改登入管理器的配置文件来定制载入哪一个X Client。
xdm -- X display manager,这是X系统的默认DM
gdm -- gnome display manager, 这是作为GNOME子项目的一个DM
kdm -- kde display manager,这是作为KDE子项目的一个DM,事实上不论gdm 和kdm, 都可以通过配
置启动其它的X Client而不限于GNOME或KDE。
DM的启动方式有以下几个步骤(以xdm为例,gdm/kdm类似):
(1)执行/etc/X11/xdm/Xserver启动X Server(如果是gdm, 则是
/etc/X11/gdm/Xserver)
(2)执行/etc/X11/xdm/Xsessions来启动xdm。如果启动的是xdm,则装入此目录下的配置文件.Xsession和.Xclients。这时候也会打开X Window的登录界面
(3)xdm检查/etc/X11/xdm/Session目录查X Client的配置。并打开指定的X Client。
(4)用户如果选择或配置指定的是打开Gnome,则在在输入用户名和密码后,gdm GNOME Session就会gnomerc script, $HOME/.gnomerc,如果没有这个文件,就会读会系统文件内定的GNOME resource file,
/etc/X11/gdm/gnomerc,并且启动/usr/bin/gnome-session
另外,X Window中还有一个重要的部分,X Window Manager, 窗口管理器。按照前面所介绍的,X Cl
ient在自己的窗口内根据X Server传来的用户操作数据运算出绘画数据,交给X Server去画,但是X Client自身如果窗口大小、位置发生变化,就无法正确通知X Server了。举个例子,把X Client想象为一张画布,一开始它在桌面上的初始位置,当它通知X Server在画布的(10, 10)画一个点,X Server可以正确实现;但是如果画布大小变化后,或移动后,再告诉X Server在(10, 10)画点,这时候X Server就傻眼了。窗口管理器就是在X CLient 和X Server间起协调作用,负责管理窗口的移动、最大化、最小化、改变大小以及关闭等工作。可以理解窗口管理器是一种管理其它所有X Client的特殊的X Client。常见的窗口管理器有:
(1)twm(X.org提供的简单的窗口管理器,作为X Window System的default 配置)
(2)Metacity(gnome提供的窗口管理器)
linux系统安装步骤csdn(3)kwin(KDE使用的窗口管理器)
(4)FVWM(一款知名的窗口管理器)
窗口管理器通常也是在启动X Client的过程中,通过配置选择启动一个窗口管理器。
参考资料:
X Window 运行原理与启动过程
wwwblogs/hopeworld/archive/2011/04/13/2014588.html
xinit启动X Window System过程初探
wwwblogs/hopeworld/archive/2011/04/13/2014589.html
X Window System介绍
blog.csdn/zhoudaxia/article/details/6666939

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。