260 likes | 710 Views
X window 简介. 刘西洋. 大纲. 简单介绍 X 组成部分 工作原理 主要文件 从头搭建一个 X. 1 简单介绍. X Window ,即 X Window 图形用户接口。 She is not a software, but a protocol. She define what is X , how can be X. X Window 采用 C/S 模型 X Window 独立,不与任何 OS 相关 X Window 主要组成部分有: XServer :实现之一: Xorg XClient :所有使用图形界面的应用程序。
E N D
X window 简介 刘西洋
大纲 • 简单介绍 • X组成部分 • 工作原理 • 主要文件 • 从头搭建一个X
1 简单介绍 • X Window,即X Window图形用户接口。 • She is not a software, but a protocol. She define what is X , how can be X. • X Window 采用C/S模型 • X Window独立,不与任何OS相关 • X Window 主要组成部分有: • XServer :实现之一:Xorg • XClient:所有使用图形界面的应用程序。 • XCharnel:例如,TCP/IP,DECnet
目前依据X的实现体中,以X Org最为普遍且最受欢迎。 • X Org所用的协议版本,X11,是在1987年9月所发布。而今最新的参考实现(参考性、示范性的实现体)版本则是X11 Release 7.5(简称:X11R7.5) • 此项目由X Org基金会所领导,且是以MIT授权和相似的授权许可的自由软件。
2 X Window组成部分 • 2.1 X Server • X Server是一个显示管理进程,必须运行在一个有图形显示能力的电脑上。 • 2.2 X Client • X Client,任何使用X Server显示其资料的程序。 • 2.3X Charnel • X Charnel 即 X Protocol,采用现有主要协议进行通信,比如,IPC或TCP/IP
2.1 XServer • Server是控制显示器和输入设备的软件。 • Server可以创建视窗,在视窗中画图形和文字,回应Client程序的requests,但它不会自己动作,只有在Client程序提出需求后才完成动作。 • 一台电脑上可同时运行多个X服务器,每个X服务器能管理多个与之相连的显示设备。 • X Server 实现有Xorg。
2.2 X Client • Client是使用系统视窗功能的一些应用程序。它是Server的客户,要求Server回应它的请求,完成特定的动作。 X Server是硬件的控制者,X客户只是单纯的执行程序,只能使用X服务器提供的服务进行输入输出。 • X Client要显示图形图像,但它不能直接控制显示硬件,只能使用用户面前的X Server提供的显示资源。 • X Client要接受用户输入,它不能直接控制键盘鼠标,也只能使用X Server来接受输入。 • 可运行在与X Server相同或不同的电脑上。
2.3 X Charnel • Server和Client之间传输信息的通道。凭借这个通道,Client传送requests给Server。而Server回传status及其他一些信息给Client。 • Server和Client的通信大致有两类: • Server和Client在同一台机器上执行,它们可以共同使用OS上任何可用的通信方法 • Client和Server在不同机器上运行。两者信息交换须通过彼此都遵守的网络协议进行,最常用的协议为TCP/IP。
3. X Window架构图和运行原理 Shell XClient NO. 1 XClient NO.2 点一下鼠标发生了什么 敲一条显示命令又发生了什么? Shell XClient NO. 4 XClient NO.5 Window Manager X Server Kernel Kernel 网线 Hardware Hardware 带有X Window的电脑 没有X Window的电脑
在图例中,X服务器从键盘鼠标获取输入内容,之后将输入显示到屏幕,而网页浏览器机终端机模拟器则在用户端的本机系统上执行。在图例中,X服务器从键盘鼠标获取输入内容,之后将输入显示到屏幕,而网页浏览器机终端机模拟器则在用户端的本机系统上执行。 此外,用户端也通过网络与远端的机器、服务器保持联系,以保持信息状态的更新。 如此的机制及架构能是远端执行的应用如同在本机执行一样。
4.主要的文件 • 查找命令locate X11 | more • /etc/X11:X 配置文件 • /usr/bin/X,Xorg: X Server可执行文件。 • /usr/include/X11: X开发所需的头文件。 • /usr/lib/X11:X库文件。 • /usr/share/X11:X11 locale,xkb和fonts。 • /var/log/Xorg.[1-9].log:Xorg分等级日志
4.1 Xorg配置文件 • X Server出故障时一般都是配置文件错误,所以安装完成系统,进入到桌面环境之后,备份一下Xorg配置文件是一个很好的习惯。 • 在安装时如果没有设置X Window系统,之后必须先行设置鼠标、键盘、显示器以及显示卡等,这样才能成功启用X Window系统,而这些设置都记录在/etc/X11/xorg.conf文件中。这个文件的重要性可见一斑。
4.1.1 xorg.conf文件格式 • xorg.conf由数个Section/EndSection的区块组成,每个区块的格式如下: • Section “Sectionname" • Option “value" • Option "value" • option “value" • … • EndSection
4.1.2 Section “ServerLayout” • ServerLayout定义X Server启动时外观,包含多个ServerLayout时,默认使用第一个。 • Section "ServerLayout" • Identifier “Default Layout” #标识 • Screen “Default Screen“ #显示 • InputDevice “Generic Keyboard“ #键盘输入 • InputDevice “Configured Mouse“ #鼠标输入 • InputDevice "stylus" "SendCoreEvents" • InputDevice "cursor" "SendCoreEvents" • InputDevice "eraser" "SendCoreEvents" • EndSection
4.1.3 Section “Files” • Section "Files" • FontPath "/usr/share/X11/fonts/misc" • FontPath "/usr/share/X11/fonts/cyrillic“ • FontPath "/usr/share/X11/fonts/Type1“ • FontPath "/usr/share/X11/fonts/100dpi" • FontPath "/usr/share/X11/fonts/75dpi“ • …… • EndSection • RgbPath:RGB数据库的路径。这个文件定义在X中所有有效颜色的名称,并且指定数值。 • FontPath:设置X Server寻找字体时的路径。可以同时使用多个路径,但需用逗号隔开。
4.1.4 Section “Module” • Section "Module" • Load “i2c“ #加载模块,包括硬件驱动,字体库等 • Load "bitmap" • Load "ddc" • Load "dri" • Load "extmod" • Load "freetype" • Load "glx" • Load "int10" • Load "type1" • Load "vbe" • EndSection
4.1.5 Section “InputDevice” • InputDevice用于设置鼠标或键盘等输入设备,一般至少存在两个InputDevice Section。 • Section "InputDevice“ • Identifier “Generic Keyboard“ #标识 • Driver “kbd“ #驱动 • Option “CoreKeyboard“ 附加选项 • Option "XkbRules" "xorg“ • Option "XkbModel" "pc105“ • Option "XkbLayout" "us“ • Option "XkbOptions" "lv3:ralt_switch“ • EndSection
Section "InputDevice" • Identifier "Configured Mouse" • Driver "mouse" • Option "CorePointer" • Option "Device“ "/dev/input/mice" • Option "Protocol“ "ExplorerPS/2" • Option "ZAxisMapping“ "4 5" • Option "Emulate3Buttons” "true" • EndSection • Identifier:设置设备的名称。设备名称后面加上一个数字以区分多个设备。比如两个键盘时,会有一个键盘的Identifier为Keyboard0。 • 在大多数的InputDevice Section中,有为数不等的以“Option”为首的选项,并且包含特定的选项值。以供设置。 • Option 选项名和选项取值可以在man手册中查得到。
4.1.6 Section “Monitor” • Monitor设置系统使用的显示器类型 • Section "Monitor" • Identifier "Monitor0" #标识 • VendorName "Monitor Vendor" #显示器制造商 • ModelName "Monitor Model“ #显示器类型 • Option “DPMS“ #能源之星支持 • HorizSync 37-107 #竖直刷新频率Hz • VertRefresh 48-120 #水平刷新频率Hz • EndSection
4.1.7 Section “Device” • Device显示卡的信息内容,至少包含一个以上的Device Section。 • Section "Device“ • Identifier ”card0“ #显卡唯一标识 • VendorName “card’s vendor“ #显卡厂商 • BoardName “card’s mode“ #显卡型号 • Driver “vmware“ #显卡驱动 • BusID “PCI:0:15:0“ #总线地址 • EndSection
4.1.8 Section “Screen” • Screen合并引用Device和Monitor的部分,以便能够形成成对的设置内容。 • Section "Screen" • Identifier “Screen0“ #屏幕唯一标示 • Device “card0 “ #使用的显卡 • Monitor “ Monitor0“ #使用的监视器 • DefaultDepth 24 #默认色深 • SubSection “Display“ #显示模式定义 • Depth 24 #色深 • Modes “1024×768” “800×600” #此色深允许的解析率 • EndSubSection • EndSection
4.2 各Section关系 • Module和Files定义文件位置和加载的驱动 • Monitor,Device和InputDevice定义各设备的设备驱动和工作参数 • Screen组合显卡和显示器,定义显示模式。以成输出设备,即屏幕。 • ServerLayout组合输入设备和输出设备以构成X Server
4.3 /usr/bin/Xorg命令 • Xorg,X Server 可执行文件。典型用法为: • # Xorg –configure • X11 程序将尝试自动探测系统中的图形硬件,并将探测到的硬件信息写入到工作目录下一个叫做 xorg.conf.new 的配置文件。 • # Xorg -config xorg.conf.new • 测试现存的配置文件, • Xorg7.4 和更高的版本开始, 这个测试将显示出一个黑色的屏幕,可以通过 retro 选项使用旧的模式:# Xorg -config xorg.conf.new –retro 如果看到黑灰的格子以及 X 型鼠标指针, 就表示配置成功了。 • 退出测试, 切换到启动 X 的vty之后按 Ctrl+C。
5 CentOS 手动安装X window • yum grouplist • yum -y groupinstall “X Window System” • yum -y groupinstall “Desktop” • yum -y groupinstall “KDE Desktop” • yum -y groupinstall “chinese support” • vi /etc/sysconfig/i18n • LANG="zh_CN.UTF-8" • vi /etc/inittab • id:3:initdefault: • startx
启动X图形界面的方法1、startx2、设置开机自动启动,修改/etc/inittab id:3:initdefault: ------> id:5:initdefault:3、init 5 • 默认桌面环境选择 一、设置GNOME或者KDE为默认的启动桌面环境方法1:修改/etc/sysconfig/desktop,根据需要将“DESKTOP”后面的参数设置为KDE或GNOME。方法2:在当前用户目录下建立“.xinitrc”这个文件,文件的内容就一行startkde或gnome-session。二、GNOME和KDE的切换1、如果需要切换到GNOME:#switchdesk gnome2、如果需要切换到KDE:#switchdesk kde#startkde
6 参考引用 • X11,xorg.conf配置详解 • http://www.linuxsky.org/doc/admin/200712/198.html • Xorg (简体中文) • https://wiki.archlinux.org/index.php/Xorg_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) • FreeBSD 使用手册第5章 X Window 系统 • http://www.freebsd.org/doc/zh_CN/books/handbook/x-config.html • X服务器配置指南 • http://www.gentoo.org/doc/zh_cn/xorg-config.xml