文档详情

《理解Xwindow与》PPT课件

xian****812
实名认证
店铺
PPT
277.50KB
约78页
文档ID:281329200
《理解Xwindow与》PPT课件_第1页
1/78

理解X-window与VNC清华大学高性能所刘立坤第一部分:常见问题问题我该装哪个X-window?Gnome和KDE哪个更好些?XFree86是什么?我的GUI起不来了怎么办?What this lecture covers?X-window的基本概念和架构Xwin的启动过程Xwin的配置(刷新频率和显示模式的配置)Xwin的基本工具 (xwin自带)Xwin的字体系统的简介(xwin的美化)Xwindow的基本概念和架构What is Xwindow一个非常出色的窗口图形系统是很多其他图形系统的概念基础多年以来的工业标准历史就说了架构X-Windows被设计成为一种客户端-服务器(client-server)的系统这样做的优点是你可以把服务器运行于和你的显示器所在的机器不同的另一台机器上X Window System的组成可以分为X server,X client,X protocol三部分Xserver就是X的服务器端,负责所有有关图形显示的操作,包括所有你可以见到的图形元素的绘制XServer负责和设备打交道,负责具体的管理的显卡,显示器的显示模式和参数设置(这也是整个x系统中最复杂的部分)Xsever还包括最低层的与设备相关的图形库,目前主要是xlib目前的Xserver主要有XFree86和Xorg两个XClient任何一个X应用程序,包括WM在内都是XClientXClient不负责任何图形相关的具体操作,只和xserver交互,由xserver负责完成其图形显示任务,这种交互一般来说是通过在底层调用xlib实现的Xclient的核心任务是计算和数据处理。

更确切的说是消息处理X protocolX protocol是Xserver与XCleint之间的通信协议从本质上来说,它是一种远程显示协议该显示协议与后面的vnc不同是基于胖客户端的Xwindow的工作过程(1) 用户通过鼠标键盘对X server下达操作命令(2) X server利用Event传递用户操作信息给X client(3) X client进行程序运算(4) X client利用Request传回所要显示的结果(5) X server将结果显示在屏幕上Xwindow的网络透明性在一个xserer上面你可以显示多个机器上的x应用程序,而不必关心这些应用程序具体属于哪个机器Ex:使用鼠标选择一段字符,然后就可以在另外的程序里按鼠标中间,把字符粘贴过去不论这个程序运行在哪里 不同机器上的xclient只要显示在当前的xserver上,他们就具有相似的行为,就服从当前xserver的统一的风格和工作方式Xclient可以向xserer暗示它要如何如何,但xserver可以采纳也可以不采纳实验一看看Xserver的模样?在 Linux 下,你可以直接输入 “X&”,这样,一个占据整个屏幕的布满斜纹的窗口(根窗口)就出现了 ,这就是X Server.#X :1看看一个XClient到底是个什么样子Xterm :1Xwindow的组件显然Xwindow的核心原理是相当简单的但在x下面还有一大堆令人迷惑的概念Window Manager一个运行于 X Window 之上的application,主要功能是:移动窗口,改变窗口大小,图标化(最小化)窗口,改变窗口层叠顺序窗口上的标题,按钮,漂亮的边框,全都是窗口管理器提供的不同的机器在本机显示的窗口,由窗口管理器统一装饰和指挥你可以有多个不同的WM,但一次只能启动一个GNOME和KDE不是窗口管理器一些常见的WMTWM最早的WM,一切WM的原型FVWM (一个可扩展,完全自定义的WM)FreedomKWinKDE的WMenglightenment, sawmill, iceWM ,metacityGNOME常用的WMSawfish 类似与FVWM,但可以用LISP语言编程控制实验三 Twm :1 Fvwm :10看看原始的WM是个什么样子问题?KDE和GNOME到底是什么?他们和WM又有什么关系?两个误区:Gnome和KDE 是窗口管理器Gnome和KDE是 Xwindow经常看到有人问:“装哪种 Xwindow 好啊?Gnome 还是 KDE?”Widget小器件,装饰品常规的工具库用于构造象按钮和菜单这样的标准控件(一个应用程序使用的wedget集是由程序员来选择的,而不是用户。

可以同时运行使用不同widget set写的程序实际上是一种图形组件集 EX:GTK、QT等WidgetGTK和Qt(Qt是KDE使用的Troll Tech的产品)都是widget集也就是说,它们提供了按钮,菜单,滚动条和各种各样 的对象给程序开发人员使用注意,非基于GNOME或KDE的应用程序能够使用GTK+或Qt,但是所有的GNOME程序都使用GTK+, 所有的KDE应用程序都使用QtDesktopGnome 和 KDE 是“桌面环境”,或者也可以叫做桌面系统.一种很多程序和函数库的集合它们的设计目的是提供一致的方便的操作方式来满足普通用户的需要它们不但包含窗口管理器,还有很多实用程序和应用程序,桌面环境这是一个最新的也最模糊的X术语 它基本的意思是指“ Mac OS 和 Windows的图形界面有,而X没有却应该有的东西” 通常是一组有着共同外观和操作感的应用程序,和程序库,以及创建新的应用程序的方法 你同时可以安装多个桌面环境,而且你可以在一个桌面环境中运行另一个不同的桌面环境的应用程序, 而不用切换到过去(当然你要安装那个桌面才行)就是说,如果你使用GNOME,但是你喜欢KDE的字处理器KLyX, 那么你可以运行KLyX,而不运行任何其他的KDE程序,但是它就不能和你那些GNOME的程序互相交互了。

你甚至可以同时运行GNOME和KDE的核心程序,事实上这没有什么意义,你会同时有两个文件管理器,两个面板,等等1)程序可能不是同时基于GNOME和KDE的, 2) 你不得不安装GNOME的库来运行基于KDE的软件,3) 你可以并行的运行GNOME的应用程序和KDE的应用程序, 4) 如果你使用任何一个环境,你总是可以运行非基于该环境的应用程序 Xwindow vs windows1.你不得不在你想看到这个程序的同一台机器上运行它 2.如果你不喜欢windows的工作方式,你不能选择另外一个窗口管理器 3.不论怎样设置windows,如果仅有一个你需要的东西没有被做进去,那也是没有办 法而使用X,你可以使用不同的窗口管理器,桌面,widget集,无论什么 Xwindow vs windows当一个程序挂起的时候,它会占居你的屏幕,直到你关掉它这时你通常没有办法移动它或最小化它这是windows 设计上的第二个缺陷每个MS Windows的程序都有一些代码来处理标题条、关闭、最大化、最小化按钮 这些代码在一个共享库里,因此你不是必须自己写Xwindow vs windows每个 X应用程序(任何窗口xterm netscape xclock)查看DISPLAY这个环境变量来找出它应该让谁画出它自己。

如果你的DISPLAY被设置成 computer1:0.0 而你在computer2上,当你键入xterm是它将会在computer1的屏幕上弹出来X window VS windows由于在Xserver和Xclient多了网络层和WM,Xwindow的效率不及windows这是非常致命的Confusion comes with Freedom 没有一个统一的标准,许多的软件直接存在着不兼容性这是最致命的Unstable come Confusion外围的应用程序不稳定这也是比较致命的Xwindow的启动过程Startx方式文本方式,在控制台下敲入startx也可以直接采用xinit或X启动,但这样得到界面一般来说非常的朴素Display Mannager方式图形方式,也就是每次开机的时候就进入的那个login界面两个重要文件xinitrc -X视窗启动文件Xdefaults - X视窗资源文件.xinitrc倘若我们以startx或xinit启动X,这指令会启动X server并且会执行$HOME/.xinitrc文件内的所设置的指令倘若 $HOME没有这个文件,则系统会使用内定的的配置文件/usr/XR116/lib/X11/xinit/xinitrc。

xinitrc文件一般只包含有启动X时所要执行clients的shell script, 启动必要的应用程序Xinitrc exampleexport LANG LC_ALL LC_CTYPE KDE_LANGexport XMODIFIERS=im=Chinput/usr/bin/chinput &exec kde3killall chinput Xdefault主要是设置合适自己喜欢的应用程序的操作操控环境或界面一般会执行X后,会自动读取$HOME/.Xdefaults.一些应用程序会自己产生的的资源文件,一般放在/usr/XR116/lib/X11/app-defaultsLinux的一个普遍原则就是所有的局部设置都高于全局设置,你永远可以用你的局部配置覆盖掉全局的配置Startx的启动过程Startxstartx就是xinit的前端界面front-endstartx主要是设置X client和X server所在的位置,并处理相关参数,最后交给xinit处理Xinitxinit,则根据startx传过来的参数启动X server,成功后根据xinitrc启动X clientStartx的启动过程1)xinit启动X server程序;2)X server会寻找$HOME/.xinintrc文件,有就执行它,没有就会转到/etc/X11/xinit/xinitrc读取系统内定的启动文件。

3)接着就会读取$HOME/.Xdefaults,倘若没有,就会转到/usr/X11/xinit/Xcilents从文件名Xclients看来,这个是用来设置时执行哪些X应用的程序的文件性质和xinitrc类似,同样是个shell script但要注意的是:.Xdefaults是的权限具有755,即可执行Startx的启动过程4)在正常的情况下,$HOME/.xinintrc是用来指派可以让X Window System正常运行的应用程序了而.Xdefaults则被建议用来载入X资源设置和应用应用,以适合每个用户本身的喜爱程度而已5)X server建立一个属于它自己的根视窗(Root windows),并设置视窗的背景与执行所指定的应用程序,显示一个大的X光标,便完成启动了6)在X server执行的期间,它一直控制着你的鼠标的键盘Startx的启动过程7)接下来,xinitrc脚本的执行会启动xterm程序它对X server而言是一个X Clietn程序而已DM方式1)执行/etc/X11/xdm/Xserver启动X出现console登录的界面(是执行/etc/X11/xdm/ GiveConsole&TakeConsole所产生的)2)执行/etc/X11/xdm/Xsessions来启动xdm或者是gdm。

如果启动的是xdm,则装入用户家目录上的配置文件,.xsession和.Xclients如果是gdm,则装载入/etc/X11/gdm/Sesseion与.Xclients到此为止,就会出现X视窗的登录的界面选项DM方式3)gdm则会检查/etc/X11/gdm/Session目录的Session操作比如Fvwm,Wmaker,Default,Failsafe,Gnome,Kde与Default等并将显示给用户选择进入那个那个X Window Manager其实这些Sessions都是Shell Script file如果你选择Kde,就进入KDE DeskTo。

下载提示
相似文档
正为您匹配相似的精品文档
相关文档