XFree86学习笔记

XFree86学习笔记

XFree86学习笔记

整理:Jims of 肥肥世家

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


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. 桌面环境

Table of Contents

9.1. GNOMN 9.2. KDE 9.3. CDE

桌面环境是一种工作环境,里面有窗口管理器,有系统管理程序,有文件管理程序和一些工具软件的集合。所以它可以说一个集成的环境,用于办公、娱乐等。在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网站了解一下。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值