X-server管理鼠标、键盘、显卡、显示器
X-client处理程序的运行
----------------------------------------------------------------------------------------------------
WM管理窗口:移动、变型、关闭、装饰......
----------------------------------------------------------------------------------------------------
DE桌面环境:窗口管理器+面板+文件管理器+配套软件......
----------------------------------------------------------------------------------------------------
发行版:特定内核+特定桌面环境+特定包管理+特定软件源......
----------------------------------------------------------------------------------------------------
互动关系:
X-server(鼠标、键盘)==>X-client解释指令==>X-server(显卡、显示器)
X-server接收指令==>X-client解释指令==>X-server落实指令
X-server<===>WM<===>X-client
----------------------------------------------------------------------------------------------------
startx用法:startx [ [ client ] options ... ] [ -- [ server ] [ display ] options ... ]
----------------------------------------------------------------------------------------------------
startx三种启动方式:
1 指定client和server, 例如:startx /usr/bin/xclock -- /usr/bin/X :0
2 $HOME/.xserverrc启动server,$HOME/.xinitrc启动的client,
3 startx,启动DE
----------------------------------------------------------------------------------------------------
xinit
startx只是一个bash脚本,干活的是xinit
xinit先启动先启动X服务器,再启动基于X的应用程序
----------------------------------------------------------------------------------------------------
startx启动过程:
----------------------------------------------------------------------------------------------------
GNOME启动过程:
----------------------------------------------------------------------------------------------------
openbox启动过程:
----------------------------------------------------------------------------------------------------
XBMC启动过程:
xinit
在说明startx之前,我想我们应该先了解一下xinit。因为startx就是通过调用xinit启动X的。
功能:
当我们安装了Ubuntu后,默认就已经安装了xinit,它位于/usr/bin下。xinit是一个二进制文件,并非是一个脚本。它的主要功能是启动一个X服务器,同时启动一个基于X的应用程序。
用法:
xinit的用法为:xinit [[client] options ] [-- [server] [display] options]。其中client用于指定一个基于X的应用程序,client后面的options是传给这个应用程序的参数,server是用于指定启动哪个X服务器,一般为/usr/bin/X或/usr/bin/Xorg,display用于指定display number,一般为0,表示第一个display,option为传给server的参数。
如果不指定client,xinit会查找HOME(环境变量)目录下的.xinitrc文件,如果存在这个文件,xinit直接调用execvp函数执行该文件。如果这个文件不存在,那么client及其options为: xterm -geometry +1+1 -n login -display :0 。
如果不指定server,xinit会查找HOME(环境变量)目录下的.xserverrc文件,如果存在这个文件,xinit直接调用execvp函数执行该文件。如果这个文件不存在,那么server及其display为: X :0。如果系统目录中不存在X命令,那么我们需要在系统目录下建立一个名为X的链接,使其指向真正的X server命令(Ubuntu下为Xorg)。
startX
用过linux的人基本上都知道linux下有个命令叫做startx,那么它到底是怎么实现的呢?
功能
当我们在终端下想启动图形界面时,我们都会通过输入startx来实现,该命令可以启动一个Xserver,而且可以启动一个漂亮的图形界面(Ubuntu下,我装的是gnome)。
用法:
Startx的用法和xinit的基本一样:startx [ [ client ] options ... ] [ -- [ server ] options ... ]。为什么呢?这是因为startx其实就是一个脚本,它启动X server就是通过调用xinit命令实现的,startx的参数将全部传给xinit。因此,这些参数的意义和xinit的参数是一样的。