理解Xwindow与VNC.ppt
《理解Xwindow与VNC.ppt》由会员分享,可在线阅读,更多相关《理解Xwindow与VNC.ppt(78页珍藏版)》请在三一办公上搜索。
1、理解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被设计成为一种客户端-
2、服务器(client-server)的系统。这样做的优点是你可以把服务器运行于和你的显示器所在的机器不同的另一台机器上X Window System的组成可以分为X server,X client,X protocol三部分,Xserver,就是X的服务器端,负责所有有关图形显示的操作,包括所有你可以见到的图形元素的绘制。XServer负责和设备打交道,负责具体的管理的显卡,显示器的显示模式和参数设置(这也是整个x系统中最复杂的部分)Xsever还包括最低层的与设备相关的图形库,目前主要是xlib目前的Xserver主要有XFree86和Xorg两个,XClient,任何一个X应用程序,包括W
3、M在内都是XClientXClient不负责任何图形相关的具体操作,只和xserver交互,由xserver负责完成其图形显示任务,这种交互一般来说是通过在底层调用xlib实现的Xclient的核心任务是计算和数据处理。更确切的说是消息处理,X protocol,X protocol是Xserver与XCleint之间的通信协议。从本质上来说,它是一种远程显示协议。该显示协议与后面的vnc不同是基于胖客户端的。,Xwindow的工作过程,(1)用户通过鼠标键盘对X server下达操作命令(2)X server利用Event传递用户操作信息给X client(3)X client进行程序运算(
4、4)X client利用Request传回所要显示的结果(5)X server将结果显示在屏幕上,Xwindow的网络透明性,在一个xserer上面你可以显示多个机器上的x应用程序,而不必关心这些应用程序具体属于哪个机器Ex:使用鼠标选择一段字符,然后就可以在另外的程序里按鼠标中间,把字符粘贴过去。不论这个程序运行在哪里。不同机器上的xclient只要显示在当前的xserver上,他们就具有相似的行为,就服从当前xserver的统一的风格和工作方式。Xclient可以向xserer暗示它要如何如何,但xserver可以采纳也可以不采纳,实验一,看看Xserver的模样?在 Linux 下,你可
5、以直接输入“X&”,这样,一个占据整个屏幕的布满斜纹的窗口(根窗口)就出现了,这就是X Server.#X:1看看一个XClient到底是个什么样子Xterm:1,Xwindow的组件,显然Xwindow的核心原理是相当简单的但在x下面还有一大堆令人迷惑的概念,Window Manager,一个运行于 X Window 之上的application,主要功能是:移动窗口,改变窗口大小,图标化(最小化)窗口,改变窗口层叠顺序窗口上的标题,按钮,漂亮的边框,全都是窗口管理器提供的不同的机器在本机显示的窗口,由窗口管理器统一装饰和指挥你可以有多个不同的WM,但一次只能启动一个GNOME和KDE不是窗
6、口管理器,一些常见的WM,TWM最早的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,小器件,装饰品常规
7、的工具库用于构造象按钮和菜单这样的标准控件(一个应用程序使用的wedget集是由程序员来选择的,而不是用户。可以同时运行使用不同widget set写的程序实际上是一种图形组件集 EX:GTK、QT等,Widget,GTK和Qt(Qt是KDE使用的Troll Tech的产品)都是widget集。也就是说,它们提供了按钮,菜单,滚动条和各种各样 的对象给程序开发人员使用。注意,非基于GNOME或KDE的应用程序能够使用GTK+或Qt,但是所有的GNOME程序都使用GTK+,所有的KDE应用程序都使用Qt。,Desktop,Gnome 和 KDE 是“桌面环境”,或者也可以叫做桌面系统.一种很多程
8、序和函数库的集合。它们的设计目的是提供一致的方便的操作方式来满足普通用户的需要。它们不但包含窗口管理器,还有很多实用程序和应用程序,,桌面环境。这是一个最新的也最模糊的X术语。它基本的意思是指“Mac OS 和 Windows的图形界面有,而X没有却应该有的东西”。通常是一组有着共同外观和操作感的应用程序,和程序库,以及创建新的应用程序的方法。你同时可以安装多个桌面环境,而且你可以在一个桌面环境中运行另一个不同的桌面环境的应用程序,而不用切换到过去(当然你要安装那个桌面才行)。就是说,如果你使用GNOME,但是你喜欢KDE的字处理器KLyX,那么你可以运行KLyX,而不运行任何其他的KDE程序
9、,但是它就不能和你那些GNOME的程序互相交互了。你甚至可以同时运行GNOME和KDE的核心程序,事实上这没有什么意义,你会同时有两个文件管理器,两个面板,等等,1)程序可能不是同时基于GNOME和KDE的,2)你不得不安装GNOME的库来运行基于KDE的软件,3)你可以并行的运行GNOME的应用程序和KDE的应用程序,4)如果你使用任何一个环境,你总是可以运行非基于该环境的应用程序。,Xwindow vs windows,1.你不得不在你想看到这个程序的同一台机器上运行它。2.如果你不喜欢windows的工作方式,你不能选择另外一个窗口管理器。3.不论怎样设置windows,如果仅有一个你需
10、要的东西没有被做进去,那也是没有办 法。而使用X,你可以使用不同的窗口管理器,桌面,widget集,无论什么。,Xwindow vs windows,当一个程序挂起的时候,它会占居你的屏幕,直到你关掉它。这时你通常没有办法移动它或最小化它。这是windows 设计上的第二个缺陷。每个MS Windows的程序都有一些代码来处理标题条、关闭、最大化、最小化按钮。这些代码在一个共享库里,因此你不是必须自己写。,Xwindow vs windows,。每个 X应用程序(任何窗口xterm netscape xclock)查看DISPLAY这个环境变量来找出它应该让谁画出它自己。如果你的DISPLAY
11、被设置成 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启动,但这样
12、得到界面一般来说非常的朴素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 exa
13、mple,LANG=zh_CN.GB2312LC_ALL=zh_CN.GB2312LC_CTYPE=zh_CN.GB2312KDE_LANG=zh_CN.GB2312export 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-
14、defaultsLinux的一个普遍原则就是所有的局部设置都高于全局设置,你永远可以用你的局部配置覆盖掉全局的配置,Startx的启动过程,Startxstartx就是xinit的前端界面front-endstartx主要是设置X client和X server所在的位置,并处理相关参数,最后交给xinit处理Xinitxinit,则根据startx传过来的参数启动X server,成功后根据xinitrc启动X client。,Startx的启动过程,1)xinit启动X server程序;2)X server会寻找$HOME/.xinintrc文件,有就执行它,没有就会转到/etc/X11
15、/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资源设置和应用应用,以适合每个用户本身的喜爱程度而
16、已。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来启动xd
17、m或者是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 DeskT
18、op environment,选择Gnome就会进入GNOME DeskTop environment了。,DM方式,4)用户如果选择是的Gnome,在输入用户名和password后,gdm就会找gnomerc script,$HOME/.gnomerc,如果没有这个文件,就会读会系统文件内定的GNOME resource file:/etc/X11/gdm/gnomerc,并且启动/usr/bin/gnome-session.5)对于使用何种X Window Manager与载入方式,并不属于Display Manager的范围。Display Manager只要负责启动各种Sessions
19、即可。,Xwindow的设置,Xwindow最关键的设置就是刷新频率和显示模式的设置这两个都在XF86Config4文件中进行设置归根结底就是两点:1)配置合适的显卡驱动2)设置正确的modeline,XFree86的显卡驱动,对于显卡驱动你首先要知道自己用的是什么显卡?一般来说linux的显卡驱动已经足够的全了在/usr/X11R6/lib/drivers目录下有各种显卡驱动。找一个适合你的就可以了如果实在找不到,就用vesa通用显卡驱动,XFree86的Modeline,XFree86自带了一个gtf用于生成XFree86需要的modeline。如下所示gtf 1024 768 85将上面
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 理解 Xwindow VNC
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-5407023.html