启动X

十月 3rd, 2008

X的启动方法几种
最直接的是运行xinit或xinit firefox,不带参数的话会默认打开一个term,进入这样的X能做的事情很有限(窗口不能移动会互相覆盖),但可以让我们对窗口管理器有一个感性的认识。

startx
在装了某个窗口管理器(如openbox或fluxbox)后,可以用startx命令进入一个带窗口管理功能的X界面。startx是一个在/usr/bin目录下的脚本,它会分别读取用户级和系统级的一些配置,然后用xinit运行X。配置文件有xinitrc,xserverrc,xsession等,一般系统级的配置在/etc/X11目录下,而用户级配置在用户主目录并用.xinitrc的形式命名,原则是用户级配置覆盖系统级配置。
如果系统安装了多个窗口管理器可用startx -m openbox的形式指定,或者在.xinitrc中加一句exec openbox。否则startx会调用/usr/bin/x-window-manager启动默认窗口管理器,它是一个指向/etc/alternatives/x-window-manager的链接,而后者是一个指向真正窗口管理器如/usr/bin/openbox的链接。这个链接通过update-alternative –config x-window-manager维护,但update-alternative是怎样知道系统有多少个窗口管理器呢。
在Debian下用strace -eopen update-alternatives –config x-window-manager监控update-alternatives的文件操作,可以发现它打开了/var/lib/dpkg/alternatives/x-window-manager,这是一个记录了系统安装的窗口管理器的文本文件,估计用Apt安装的窗口管理器都会来这里登记一下。

关于update-alternatives
因为Linux有很多相同功能的软件,alternatives是一个用来统一这些软件的机制,比如我想开一个浏览器只需要运行x-www-browser而不用管系统是装了Firefox还是Opera,alternatives机制会帮我们选择一个可用的。具体实现是在/etc/alternatives/目录创建一些通用的链接,并根据情况指向真实的程序,update-alternatives是Debian用来维护/etc/alternatives/目录下那些链接的Perl程序。如update-alternatives –config x-window-manager用来更新/etc/alternatives/x-window-manager这个链接。

或者还可以安装启动管理器。

启动管理器是一个管理登录的程序,如GNOME用的gdm和KDE用的kdm。用这种方法的话就不需要用户手动输入命令,而是像Windows一样开机后直接得到一个输入帐号密码的登录界面。gdm们获取自动运行机会的方法是把自己加到开机默认运行级别的rc*.d目录。

Leave a Reply