XFree86学习笔记

第一次发布时间:2004年8月14日


Table of Contents

1. X window 介绍
1.1. X 简介
1.2. 版本
1.3. XFree86项目介绍
2. XFree86系统介绍
2.1. XFree86安装
2.2. XFree86配置
2.3. XFree86的文件系统
2.4. XFree86字体
2.5. 启动X11
2.5.1. 启动方法
2.5.2. 启用多用户会话
2.5.3. 终止X会话
3. X11客户程序常用选项
3.1. X程序常用选项
3.2. 使用客户程序资源
4. X window的网络应用
4.1. 远程会话
4.2. 远程桌面
4.3. 安全问题
5. X系统客户程序介绍
5.1. 环境设置命令
5.2. 小工具
6. X11多媒体客户程序介绍
7. 显示管理器
7.1. xdm的配置
8. 窗口管理器
8.1. WindowMaker
8.2. fvwm\fvwm2\fvwm95
8.3. enlightenment
8.4. mwm
8.5. twm
8.6. icewm
8.7. Sawfish
8.8. blackbox
9. 桌面环境
9.1. GNOMN
9.2. KDE
9.3. CDE
10. X web

List of Tables

2.1. XFree86文件系统目录清单
3.1. X程序常用选项

Chapter 1. X window 介绍

1.1. X 简介

X window系统是一个很复杂的网络图形界面系统,它的开发始于1984年,它被应用已有近20年。X也是一个协议,它定义程序(客户程序)如何与另一个在远程机器上运行的程序(服务器程序)交换信息。它最早是由数字设备公司(DEC)的Jim Gettys与麻省理工大学(MIT)的Ron Newman和Bob Scheifler共同开发的。当时DEC和MIT想共同开发一种分布式的计算环境,X系统就是他们研究成果的一部分,这项工作叫作雅典娜工程。现在X的管理机构是X 联盟(www.x.org)。X系统由三部份组成,它们分别是X Server、Xclient和X协议。

  • X Server是控制输入输出的程序,它是和底层硬件直接通信的。它接收X client程序的请求做建立窗口、绘制图形等工作。

  • X client是基于X Server的客户程序,它请求X Server在指定的窗口进行各种操作。它不负责显示,只是给X Server发送一个请求,由服务器完成动作。

  • X 协议是X Server和X Client之间沟通的语言。Xlib库能完成这种通信功能,所以可以基于它进行X client程序的开发。

以下是X系统的几点优势:

  • 可移植性。X系统可移植到几乎所有的计算机图形系统下。

  • 标准化。X window系统提供一个标准的函数库和功能调用集合,抽象了硬件层功能,使程序开发更标准更快捷。

  • 网络化。它是基于网络的图形界面系统。

  • 模块化结构。能方便进行功能扩展。

  • 不嵌入操作系统中,适用于几乎所有的操作系统,如linux、solairs、windows等。

1.2. 版本

  • 1986年发布X10.4版

  • 1987年9月15日发布X11R1版(X11第一次修订版)。源程序有19MB,可在4种主要的操作系统下运行。

  • 1988年发行第二修订版X11R2。该版提供了很多压缩的矢量字体,以及第三方软件商提供的软件工具。

  • 1991年8月29日发布了X11R5版。为X window系统增加了国际化功能。

  • 1994年4月21日,X11R6发布。这一版改进窗口管理、资源共享、会话管理等功能。

  • 1996年3月5日发布了X11R6.1版,支持16种操作系统,包括linux内核1.2.11。

  • 1996年12月23日发布了X11R6.3版,它是X联盟转换到TOG(开放工作组,一个非盈利机构)前最后的一个X版本。TOG由200个新成员和很多X联盟的原创成员组成。

  • 1998年1月4日,TOG发布了X11R6.4版。TOG工作组改变X 系统免费的许可证政策,如果从销售X系统中盈利,就须交纳年度注册费,价格是每5万个用户7500美元,随后又增加到至65000美元。由于新许可政策的实施,导致开源社区组成一个XFree86工程公司(一个非盈利的机构)开发了一个基于Intel PC平台的免费X系统XFree86。1998年9月TOG也放弃新许可政策,把X11R6.4版的许可恢复到旧的麻省理工的版本。

  • 2000年8月15日,X11R6.5.1发布。源文件容量扩充以144Mb,包含8100多个文件、600多种字体、345个手册页、20个程序库、70个图象和60个客户程序。现在最新的版本是X11R6.7.0,可以到http://www.x.org下载。

1.3. XFree86项目介绍

XFree86项目成立于1994年3月19日。最早的开发工作始于1992年,由一个开发小组完成,实现了基于Intel PC平台的X系统。1994年5月18日发布的XFree86 2.1版是第一个支持linxu的XFree86版本。2000年5月7日XFree86 4.0版发布,它是XFree86最重要的一个发布版,增加了很多功能。XFree86的意思是“提供X服务,它是自由的(free),它是基于Intel的PC平台”。现在最新的XFree86版是4.4.0。可以到http://www.xfree86.org下载。基于windows平台也有X window系统,如:X-Win32、Extra!X、Exceed等。

Chapter 2. XFree86系统介绍

2.1. XFree86安装

安装软件与其它软件大同小异,这里就不详细介绍了。

2.2. XFree86配置

在XFree86中的配置文件是XF86Config-4,下面介绍几种配置的工具:

  • xf86config是一个基于文本的配置工具。在控制台运行该命令后按提示配置就可以了。

  • reconfig用以把旧版的配置文件转换成4.0.1版的配置文件格式。

  • 可以用$ XFree86 -configure命令由系统自动生成一个叫XF86Config.new的配置文件,可基于这个文件再修改。最后用$ XFree86 -xf86config XF86Config.new进行测试。如果成功将出现一个带“X”的窗口。最后把正确的配置文件拷贝成/etc/X11/XF86Config-4。

  • 在XFree86 4.0.1后,还可通过xf86cfg这个图形化程序来进行配置。

  • 在各linux的发行版中,还包含有各自开发的配置工具,redhat有Xconfigurator;Mandrake 有DrakConf;SuSE 有SaX。

下面是一个完整的配置文件例子:

Section "ServerLayout"  ==============配置标识区
        Identifier     "XFree86 Configured"
        Screen      0  "Screen0" 0 0
        InputDevice    "Keyboard0" "CoreKeyboard"
# PS/2 Mouse not detected
        InputDevice    "Serial Mouse" "CorePointer"
# USB Mouse not detected
EndSection

Section "ServerFlags" =================X 选项配置区
        Option "AllowMouseOpenFail"  "true"  ====允许在鼠标配置失败的情况下启动X
        Option "DontZap"   "true"            ====不能使用Ctrl+Alt+Backspace组合键退出X
        Option "DontZoom"  "true"            ====不能使用Ctrl+Alt+小键盘+-来切换显示模式
        

EndSection

Section "Files"     =========================字体配置区
        RgbPath      "/usr/X11R6/lib/X11/rgb"
        ModulePath   "/usr/X11R6/lib/modules"
# Additional fonts: Locale, Gimp, TTF...
#       FontPath     "/usr/X11R6/lib/X11/fonts/latin2/75dpi"
#       FontPath     "/usr/X11R6/lib/X11/fonts/latin2/100dpi"
# True type and type1 fonts are also handled via xftlib, see /etc/X11/XftConfig!
    FontPath    "/usr/X11R6/lib/X11/fonts/misc:unscaled"
    FontPath    "/usr/X11R6/lib/X11/fonts/75dpi:unscaled"
    FontPath    "/usr/X11R6/lib/X11/fonts/100dpi:unscaled"
    FontPath    "/usr/X11R6/lib/X11/fonts/PEX"
    FontPath    "/usr/X11R6/lib/X11/fonts/cyrillic"
    FontPath    "/usr/X11R6/lib/X11/fonts/TrueType"
EndSection

Section "Module"
        Load  "ddc"  # ddc probing of monitor
        Load  "dbe"
        Load  "dri"
        Load  "extmod"
        Load  "glx"
        Load  "record"
        Load  "xtt"
EndSection

Section "InputDevice"     ================键盘配置区
        Identifier  "Keyboard0"
        Driver      "keyboard"
        Option      "CoreKeyboard"
        Option "XkbRules" "xfree86"
        Option "XkbModel" "pc105"
        Option "XkbLayout" "us"

EndSection

Section "InputDevice"    =================串口鼠标配置区
        Identifier  "Serial Mouse"
        Driver      "mouse"
        Option      "Protocol" "Microsoft"
        Option      "Device" "/dev/ttyS0"
        Option      "Emulate3Buttons" "true"
        Option      "Emulate3Timeout" "70"
        Option      "SendCoreEvents"  "true"
EndSection

Section "InputDevice"    =================ps/2鼠标配置区
        Identifier  "PS/2 Mouse"
        Driver      "mouse"
        Option      "Protocol" "auto"
        Option      "ZAxisMapping"          "4 5"
        Option      "Device" "/dev/psaux"
        Option      "Emulate3Buttons" "true"
        Option      "Emulate3Timeout" "70"
        Option      "SendCoreEvents"  "true"
EndSection

Section "InputDevice"    =================usb鼠标配置区
        Identifier      "USB Mouse"
        Driver          "mouse"
        Option          "Device"                "/dev/input/mice"
        Option          "SendCoreEvents"        "true"
        Option          "Protocol"              "IMPS/2"
        Option          "ZAxisMapping"          "4 5"
        Option          "Buttons"               "5"
EndSection

Section "Monitor"       ==================显示器配置区
        Identifier      "Monitor0"
        Option  "DPMS"  "true"
        VendorName      "MAG"
        ModelName       "MAG9705"
        HorizSync 30-86# DDC-probed
        VertRefresh 50-160# DDC-probed
        # These are the DDC-probed settings reported by your monitor.
        # 1600x1200, 65.0Hz; hfreq=81.25, vfreq=65.00
        ModeLine "1600x1200"    175.50 1600 1664 1856 2160 1200 1201 1204 1250 +hsync +vsync
        # 1280x1024, 75.0Hz; hfreq=79.98, vfreq=75.03
        ModeLine "1280x1024"    135.00 1280 1296 1440 1688 1024 1025 1028 1066 +hsync +vsync
        # 1280x960, 85.0Hz; hfreq=85.40, vfreq=85.00
        ModeLine "1280x960"     148.50 1280 1344 1504 1728  960  961  964 1011 +hsync +vsync
        # 1024x768, 85.0Hz; hfreq=68.68, vfreq=85.00
        ModeLine "1024x768"      94.50 1024 1072 1168 1376  768  769  772  808 +hsync +vsync
EndSection

Section "Device"       ===================显卡配置区           
        ### Available Driver options are:-
# sw_cursor is needed for some ati and radeon cards
Option "sw_cursor"
        #Option     "hw_cursor"
        #Option     "NoAccel"
        #Option     "ShowCache"
        #Option     "ShadowFB"
        #Option     "UseFBDev"
        #Option     "Rotate"
        Identifier  "Card0"
        Driver      "nv"            =======如果不清楚可选svga或vga
        VendorName  "NVidia"
        BoardName   "GeForce2 MX DDR"
#       BusID       "PCI:1:0:0"
EndSection

Section "Screen"     =====================屏幕配置区
        Identifier "Screen0"
        Device     "Card0"
        Monitor    "Monitor0"
        DefaultColorDepth 24  ============用24位色深 
        SubSection "Display"
                Depth     1
                Modes "1024x768" "640x480" 
                Virtual 0 0
        EndSubSection
        SubSection "Display"
                Depth     4
                Modes "1024x768" "640x480" 
                Virtual 0 0
        EndSubSection
        SubSection "Display"
                Depth     8
                Modes "1024x768" "640x480" 
                Virtual 0 0
        EndSubSection
        SubSection "Display"
                Depth     15
                Modes "1024x768" "640x480" 
                Virtual 0 0
        EndSubSection
        SubSection "Display"
                Depth     16
                Modes "1024x768"  
                Virtual 0 0
        EndSubSection
        SubSection "Display"
        SubSection "Display"
                Depth     24
                Modes "1024x768" "640x480" 
                Virtual 0 0
        EndSubSection
        SubSection "Display"
                Depth     32
                Modes "1024x768" "640x480" 
                Virtual 0 0
        EndSubSection
EndSection

2.3. XFree86的文件系统

大多数程序,字体和文件都放在/usr/X11R6目录下,而其它组件和配置文件则放在/etc/X11目录下,一些始化程序如xfs字体服务器就放到系统初始化目录/etc/init.d目录下。下面是一个XFree86系统目录列表:

Table 2.1. XFree86文件系统目录清单

目录描述
/etc/X11X配置文件
/usr/X11R6/binX程序
/usr/X11R6/includeX11程序开发所需的#include文件和图形
/usr/X11R6/libX程序共享库
/usr/X11R6/lib/X11配置文件,应用程序资源文件文档、字体及国际化文件
/usr/X11R6/lib/modulesXFree86模块(驱动程序、扩展文件、字体文件等)
/usr/X11R6/manX手册页
/usr/X11R6/share各种X客户程序共享的资源文件

2.4. XFree86字体

可以在本地或远程安装字体。单机上运行的linux的字体目录主要是在/usr/X11R6/lib/X11/fonts目录下。有几个工具用以管理字体,分别是:

  • mkfontdir用来在字体目录下创建字体名数据库。

  • xlsfonts用来列出已安装字体。

  • xfontsel用来显示从字体集中选中的各种字体。

  • xfd用来显示在X字体中的字符。

  • xset -q可查看字体的路径

在fonts目录下列有已安装的各种字体目录,如100dpi/、75dpi/、misc/等,每个目录下都有一个fonts.dir和一个fonts.alias文件。fonts.dir文件是字体列表数据库,X 和xfs字体服务器用这个文件查找字体;fonts.alias文件包含两栏信息:名字和别名。可以利用这个文件给已有的字体创建新名字。Encodings目录中的是Type1 (也称TrueType)的字体编码。这些信息用来在显示器上绘制可缩放字体。

XFree86还可使用远程XFree86 服务器上的字体,从而减少本地的字体存储空间,主要通过配置字体服务器xfs完成。为利用远程服务器上提供的字体,可用xset +fp unix/remote.org:7100命令可把远程X 服务器提供的字体增加到当前显示字体路径中。在单机上运行xfs时,可以用一个单一的设置代替XF86Config文件中列出的字体列表:

Fontpath "nuix/:7100"

不过,具体操作还没测试过。

Xresources文件位于/etc/X11目录下,该文件包含所有客户程序的默认资源管理信息。如emacs,vim。emacs*Background:DarkSlateGray表示把emacs程序的背景设置为灰色。这样任何用户在你计算机上启动emacs编辑器,将使用灰色的背景。除非用本地设置来使之失效。

2.5. 启动X11

X window的启动过程是由xinit客户端程序控制的,先启动X Server,接着启动窗口管理器,最后启动用户应用程序。用户主目录下的.xinitrc文件就是控制xinit程序启动什么窗口管理器、显示管理器和程序的文件。一般启动X window的方法有如下几种:

2.5.1. 启动方法

  • 各种linux的发行版都把运行级别5定为x window模式,所以最简单的方式是修改/etc/inittab文件,把系统的默认运行级别定为5,重启系统就可以了。有关系统运行级别的设置方法和原理可参考有关资料或man手册页。

  • 我们也可以用startx脚本从shell中手动启动x window。启动startx后,它会进行一些环境变量的测试,它会搜查xclient的位置:$HOME/.xinitrc和/etc/X11/xinit/xinitrc,还有xserver的位置:$HOME/.xserverrc和/etc/X11/xinit/xserverrc。如果主目录有配置文件就会优先使用,首先,xinit先执行.xserverrc的内容,如果找不到该文件,则用/etc/X11/xinit/xinit/xserverrc,如果都没有,就执行 X :0,启动X Server。接着xinit就会执行用户主目录下.xinitrc配置文件的内容。如果没有则到/etc/X11/xinit/下找xinitrc文件,如果都找不到,则执行xterm -geometry +1+1 -n login -display :0。一个简单的.xinitrc配置文件如下:

    export LANG=zh_CN.GB2312               ======这两行是设置中文环境变量
    export  LC_ALL=zh_CN.GB2312
    export XMODIFIERS="@im=Chinput"        ======设置Chinput为中文输入法
    chinput&                               ======启动chinput输入法服务器
    wmaker&                             ======启动window maker窗口管理器
    

    用startx启动X的过程就是这样的。

  • 还有一个程序叫X,它只是启动X Server进入X环境,所以可用它来测试X Server服务是否成功启动。启动X后,可按Ctrl+Alt+F7切换到X界面。

2.5.2. 启用多用户会话

如果有足够多的内存,可以用startx命令启动多个X会话。首先我们要启动到非X多用户模式下,如运行级别3。运行以下命令:$ startx -display :0 -vt7启动第一个会话,运行$ startx -display :1 -vt8启动第二个会话,可用Ctrl+Alt+F7/F8进行会话切换。

2.5.3. 终止X会话

一种方法是通过窗口管理器的注销功能或在终端中打入logout,一种是通过Ctrl+Alt+Fn切换到其它控制台,再用kill终止。

Chapter 3. X11客户程序常用选项

3.1. X程序常用选项

Table 3.1. X程序常用选项

命令行选项描述
-bg color or -background color设置背景色
-bd color or -bordercolor color设置窗口边框色
-bw n or -borderwidth n设置窗口边框的宽度,n的单位是象素
-fg color设置前景色
-fn font设置字体
-geometry 宽X高+/-X偏移量+/-Y偏移量指定客户程序窗口的宽度,高度和在桌面上的位置
-iconic以最小化的状态启动客户端程序
-title string设置窗口标题

以上参数只是一些程序常用的,有些程序可能不支持,要详细了解可使用命令的-h或--help参数查询,如rxvt --help。

3.2. 使用客户程序资源

可使用资源设置文件为客户程序设置各种默认的属性,如字体、颜色等。这些客户程序资源文件一般保存在/usr/X11R6/lib/app-defaults目录下。可用$ appres xclock的形式来显示xclock程序的资源文件内容。我们可以用editres程序来更改客户程序的资源。还可以用xrdb来配置系统级别的资源。

Chapter 4. X window的网络应用

X 系统的网络模型是基于客户机/服务器的体系结构。客户机能远程登录进来,进行各种图形显示应用。

4.1. 远程会话

有两台X系统,一台A,一台B。通过X系统的远程会话可以把A的xclock应用程序显示在B的显示器上。具体的操作步骤如下:

  1. 首先要在两台电脑上安装X系统。在A电脑上以不带-nolisten tcp选项启动X(在Xsession里设置)。并在B上执行$ xhost + A,允许A电脑访问。

  2. 在A电脑上执行$ xclock -display B:0.0&,B的显示器上就会显示xclock时钟。

  3. 连接完成后在B上要用$ xhost -A,取消A的远程访问权限。

利用该功能,我们也可以利用telnet或ssh登录到远程服务器,在远程服务器上运行应用程序,再把显示传回本地显示。

上面介绍的是基于主机的认证会话方式,还有一种更安全的基于cookis的认证方式,它要用到xauth这个程序,用它可生成一个本机的cookis保存在.Xauthority文件中,要进行认证需把它拷贝到另一台机的.Xauthority文件中。这样两台机就有了相同的cookis,连接时就可用于认证。在xauth里有两个有用的程序,一个是extract用于把cookis导出成一个文件,merge用于把导出的文件导入.Xauthority文件中。

4.2. 远程桌面

可以利用Xvnc软件,实现远程桌面应用。该软件包括服务器和客户端,能让你在一台linux客户机上登录远程系统的桌面。包括windows、Machintosh、Solaris等。Xvnc是由英国剑桥的AT&T研究室研制。使用方法如下:

  1. 在A电脑上运行$ vncserver -geometry 800x600,启动服务器。

  2. 在B电脑上运行$ vncviewer A:1,连接A系统桌面,桌面大小是800x600。

4.3. 安全问题

可利用xterm的安全键盘功能。操作方法如下:

  1. 在本地X会话过程中启动用户系统,$ xterm&。

  2. 然后把光标移到终端窗口内空白地方,按下Ctrl+单击鼠标左键,在弹出的快捷菜单中选中“Secue Keyboard”。这时,终端窗口使用相反的前后景色。这样,只有这个窗口可以输入信息,其它任何程序和窗口都不能输入信息。

为了加强安全,还可以使用xfwp设置一个X防火墙。

Chapter 5. X系统客户程序介绍

5.1. 环境设置命令

用xset进行个性化设置,可以设置屏保、鼠标,显示器的能源之星特性(DPMS)等

$ xset -q 可以显示当前设置。

$ xset s on 打开屏幕保护。

$ xset s 60 设置屏保激活的时间为1分钟。

$ xset s off 关闭屏幕保护。

$ xset m "1 6",放慢鼠标移动速度,$ xset m "30 10",加快鼠标移动速度,$ xset m "default",重置鼠标移动速度。

用xsetroot设置根窗口显示背景,鼠标图案等。

$ xsetroot -solid black,把窗口背景设置为黑色。

$ xsetroot -bitmap /usr/X11R6/include/X11/bitmaps/test.bmp,用test.bmp作为桌面背景

$ xsetroot -cursor_name xxx。设置鼠标图案。$ xsetroot -cursor_name X_cursor,重置鼠标图案。

通过xmodmap来重新排列键盘上的按键。

要使用xmodmap这个程序,需要有一个.Xmodmap的配置文件,配置按键的位置。配置文件内容如下:

remove Lock = Caps_Lock
remove Control = Control_L
keycode 0x42 = Caps_Lock
keycode 0x25 = Control_L
add Lock = Control_L
add Control = Caps_Lock

接着调用$ xmodmap .xmodmap进行设置。

为了更好设置,可以调用xev程序进行键位测试。

$ xmodmap -e "pointer = 3 2 1" 可以把鼠标的左右键对调。

xhost用于控制网络上哪些主机允许存取本地显示屏幕。

$ xhost +,允许所有主机存取本机显示屏幕,这样是很不安全,请使用时注意。

$ xhost -,禁止所有用户存取本机显示屏幕。

$ xhost + test,允许test这台机存取本机显示屏幕,也可以用IP地址。

5.2. 小工具

xwd and xwud可截取和显示屏幕画面

$ xwd -out test.xwd 按下回车后,光标变成一个卷发型,移动光标到要截取的窗口上,按左键就可以了。图形保存在当前目录下。

$ xwd -root -display B:0.0 -out test.xwd,用-root表示截取整个显示内容。

$ xwd < test.xwd,显示图形。

用xbiff提示电子邮件到达信息,用xeyes显示眼睛图像,用xlogo显示X标识,用xclock显示时间,用xmag放大区域。

$ xbiff -update 15 -volume 100 -geometry 100x100 -fg white -bg blue。

$ xeyes -fg red -center yellow。

$ xlogo -fg black -bg lightgreen。

$ xclock -d -update 1 -fg black -bg lightgreen,-d表示显示数字时钟。

$ xmag ,回车后,光标变成一个L型,然后,在你想放大的地方按鼠标左键,则会把该区放大。

利用Pilot-xfer来与PDA通信。

详细内容请参考相关资料。

xload可显示系统状态。

$ xload&

xman可显示手册页

$ xman

editres可获得和修改Xclient程序的资源信息。

$ editres。

xlsclients可列出当前X Server中运行的客户程序。

$ xlsclients

Chapter 6. X11多媒体客户程序介绍

  • GIMP,一个图象处理软件。

  • SANE(Scanner Access Now Easy),一个扫描仪支持软件包。

  • Gun OCR/JOCR,光学字符识别软件。

  • gPhoto,数码相机支持软件,支持超过100种相机。

  • Xine,xmms,mplayer,realplay,多媒体播放软件

  • Krabber,mp3转换工具。

Chapter 7. 显示管理器

Table of Contents

7.1. xdm的配置

显示管理器是负责管理X会话和登录的,在GNOMN中的是gdm,在KDE中的是kdm,还有一个早期使用过的xdm。显示管理器的作用和xinit差不多,都是控制进行X Server时要执行的工作。但显示管理器有以下优势。我们完全可用显示管理器替代xinit。

  1. 显示管理器可同时控制多个X Server。

  2. 它是循环执行的,可确保我们始终以X window图形界面登录。

  3. 它的可配置性很强。能为每个用户配置不同的系统环境。

  4. 为用户提供一种简单的登录方式。

7.1. xdm的配置

xdm的配置文件位于/etc/X11/xdm目录下,首先应查询xdm-config文件。系统会先读取该文件的配置信息。xdm-config文档的内容如下:

! $Xorg: xdm-conf.cpp,v 1.3 2000/08/17 19:54:17 cpqbld Exp $
!
! $XFree86: xc/programs/xdm/config/xdm-conf.cpp,v 1.7 2001/01/17 23:45:24 dawes Exp $
!
DisplayManager.errorLogFile:/var/log/xdm.log            ====出错日志文件路径
DisplayManager.pidFile:/var/run/xdm.pid
DisplayManager.keyFile:/usr/X11R6/lib/X11/xdm/xdm-keys
DisplayManager.servers:/usr/X11R6/lib/X11/xdm/Xservers  ====X Server服务器启动的配置文件
DisplayManager.accessFile:/usr/X11R6/lib/X11/xdm/Xaccess  ====控制多个图形终端时的配置文件
DisplayManager.authDir:/var/lib/xdm
DisplayManager.willing:su nobody -c /usr/X11R6/lib/X11/xdm/Xwilling
! All displays should use authorization.
! X terminals may not be configured that way, so they will require
! individualized resource settings.
DisplayManager*authorize:true
! Scripts to start the server, start the user session, and reset the server
DisplayManager*setup:/usr/X11R6/lib/X11/xdm/Xsetup
DisplayManager*startup:/usr/X11R6/lib/X11/xdm/Xstartup
DisplayManager*reset:/usr/X11R6/lib/X11/xdm/Xreset
DisplayManager*resources:/usr/X11R6/lib/X11/xdm/Xresources  ====启动时的资源配置文件
DisplayManager*session:/usr/X11R6/lib/X11/xdm/Xsession      ====启动及周期配置文件
DisplayManager*authComplain:true
!
DisplayManager*userPath:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
DisplayManager*systemPath:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11

DisplayManager*loginmoveInterval:10

! SECURITY: do not listen for XDMCP or Chooser requests
! Comment out this line if you want to manage X terminals with xdm
DisplayManager.requestPort:0

Xservers中列出xdm所管理的X Server的列表。如::0 local /usr/X11R6/bin/X -vt7

Xresourdes中列出了资源的名单,在登录窗口启动之前被xrdb加载。如:可通过该文件修改登录窗口的属性。

Xsession中列出在一个会话周期内所运行的程序。最后一行所执行的程序可以持续整个管理周期。当该程序结束,则周期结束。需要把除最后一行外的所有程序放在后台运行。如果不这样做,周期将可以会出挂起或出错。如:执行twm行省略了"&",则它后面的程序将不会运行,直到twm程序结束。另外,最后的一行程序必须是可执行的命令,因为它将不间断地执行且保持你的周期继续活动。如果你把它放在后台运行,虽然它同样会顺利地执行,但此周期程序执行至配置文件结束时将会中断,因而造成周期的结束。如果不用exec引导程序,而且省略“&”。则最后一行的程序也将会顺利地执行且此周期将不断地持续工作,比如:xterm -geometry -0+50 -ls -C。-C表示使xterm成为一个控制台终端,使所有的系统信息在该窗口中显示。-ls表示使它的shell成为login shell。如果可使shell读入你的login或profile,所以你自已设定的环境变量会自动设定。

Chapter 8. 窗口管理器

X Server只负责程序的运行和输入输出,窗口界面它没有定义和管理,它要靠一种叫窗口管理器的软件来负责。这也是X window灵活强大的功能之一。通过不同的窗口管理器,你可以定义出千变万化的窗口环境,突显你的个性,要多酷有多酷。下面对一些常用的窗口管理器进行简单的介绍。

8.1. WindowMaker

8.2. fvwm\fvwm2\fvwm95

8.3. enlightenment

8.4. mwm

8.5. twm

8.6. icewm

8.7. Sawfish

8.8. blackbox

Chapter 9. 桌面环境

桌面环境是一种工作环境,里面有窗口管理器,有系统管理程序,有文件管理程序和一些工具软件的集合。所以它可以说一个集成的环境,用于办公、娱乐等。在linux下比较流行的桌面环境有两个,一个是基于GTK+的GNOMN(GNU Network Object Model Environment)和一个是基于Qt的KDE(K Desktop Environment)。

9.1. GNOMN

9.2. KDE

9.3. CDE

Chapter 10. X web

在X11R6.4中提供了一种基于Web的X window解决方案叫broadway。它能使X window系统具有通过Web协议访问X应用程序能力,即X web。X web的体系结构包括5个关健部分:

  1. 远程执行---提拱远程启动X 应用程序的机制。

  2. 一致性访问---集成X11R6.4和Http协议,提供独立于平台的一致性访问,使它具有广泛的可用性。

  3. Web浏览器插入---结合远程执行,提供在浏览器中显示应用程序执行结果的功能。

  4. 安全机制---用区分可信(内部)和不可信(外部)应用程序的方法提供安全机制。它的实现包括3部分,第一是扩充的pc机X 服务器功能;第二是增加防火墙的X 代理功能;第三是为用户提供控制在可信和不可信程序间交换数据的界面。

  5. LBX(窄带X )---用于改进X在广域网和低速拔号网络上的性能,使用的技术包括高速缓冲、数据压缩和简化应答。

X web是一种分布式的应用,这也是X window系统设计时初衷。但由于当时分布式计算技术环境的不完善,使得它的功能在当时的环境下实现不了。现在,随着计算技术的飞速发展,如低成本宽带网络的迅速扩张,高性,低成本的CPU的使用,操作系统功能的不断完善,开发工具和方法的不断改进等,分布式计算环境已较完善,X window的分布式应用已渐渐成为现实。

X web是一种较新的技术,具体还没有测试过,有兴趣的朋友可到http://www.broadwayinfo.com网站了解一下。