欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > PPT文档下载
     

    理解X-window与VNC.ppt

    • 资源ID:2599412       资源大小:712.01KB        全文页数:78页
    • 资源格式: PPT        下载积分:8
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要8
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    理解X-window与VNC.ppt

    理解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在内都是XClient XClient不负责任何图形相关的具体操作,只和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) 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 :1,Xwindow的组件,显然Xwindow的核心原理是相当简单的 但在x下面还有一大堆令人迷惑的概念,Window Manager,一个运行于 X Window 之上的application,主要功能是:移动窗口,改变窗口大小,图标化(最小化)窗口,改变窗口层叠顺序 窗口上的标题,按钮,漂亮的边框,全都是窗口管理器提供的 不同的机器在本机显示的窗口,由窗口管理器统一装饰和指挥 你可以有多个不同的WM,但一次只能启动一个 GNOME和KDE不是窗口管理器,一些常见的WM,TWM 最早的WM,一切WM的原型 FVWM (一个可扩展,完全自定义的WM) Freedom KWin KDE的WM englightenment, sawmill, iceWM ,metacity GNOME常用的WM Sawfish 类似与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等,Widget,GTK和Qt(Qt是KDE使用的Troll Tech的产品)都是widget集。也就是说,它们提供了按钮,菜单,滚动条和各种各样 的对象给程序开发人员使用。注意,非基于GNOME或KDE的应用程序能够使用GTK+或Qt,但是所有的GNOME程序都使用GTK+, 所有的KDE应用程序都使用Qt。,Desktop,Gnome 和 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 windows,1.你不得不在你想看到这个程序的同一台机器上运行它。 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 example,LANG=zh_CN.GB2312 LC_ALL=zh_CN.GB2312 LC_CTYPE=zh_CN.GB2312 KDE_LANG=zh_CN.GB2312 export LANG LC_ALL LC_CTYPE KDE_LANG export XMODIFIERS=im=Chinput /usr/bin/chinput & exec kde3 killall chinput,Xdefault,主要是设置合适自己喜欢的应用程序的操作操控环境或界面。一般会执行X后,会自动读取$HOME/.Xdefaults. 一些应用程序会自己产生的的资源文件,一般放在/usr/XR116/lib/X11/app-defaults Linux的一个普遍原则就是所有的局部设置都高于全局设置,你永远可以用你的局部配置覆盖掉全局的配置,Startx的启动过程,Startx startx就是xinit的前端界面front-end startx主要是设置X client和X server所在的位置,并处理相关参数,最后交给xinit处理 Xinit xinit,则根据startx传过来的参数启动X server,成功后根据xinitrc启动X client。,Startx的启动过程,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 DeskTop 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即可。,Xwindow的设置,Xwindow最关键的设置就是刷新频率和显示模式的设置 这两个都在XF86Config4文件中进行设置 归根结底就是两点: 1)配置合适的显卡驱动 2)设置正确的modeline,XFree86的显卡驱动,对于显卡驱动你首先要知道自己用的是什么显卡? 一般来说linux的显卡驱动已经足够的全了在 /usr/X11R6/lib/drivers目录下有各种显卡驱动。找一个适合你的就可以了 如果实在找不到,就用vesa通用显卡驱动,XFree86的Modeline,XFree86自带了一个gtf用于生成XFree86需要的modeline。如下所示 gtf 1024 768 85 将上面命令的输出写入XF86config4的monitor 一节,然后将Hsync和Vsync写上一个合适的范围 就可以得到你想要的刷新频率了。 前提是你的显卡驱动可以支持这样的刷新频率,我得GUI起不来了?,通过上面的讨论,很显然是Xserver出了问题. 根据经验不外乎两个主要问题: 刷新率设置太高了 显示卡驱动不正确,Xwindow的美化,Xwindow的美化归根揭底: XTheme 这个无需多谈,你可以根据你用的窗口管理器和桌面系统到网上下载相关的主题,其中有些主题相当的pp,在某些方面甚至可以超过windows XFont Linux的图形界面的字体历来是linux让人头疼的地方,XFont System简介,another problem comes from History & Freedom。 Its another weakness of linux,Two Types font subsystem,传统的基于字体服务器的字体子系统 xtt(传统 X 字体服务器,XFree86 带了模块) + defoma dfontmgr psfontmgr 新兴的fontconfig字体子系统 xft2 + fontconfig libpango 一种新兴的允许应用程序自己绘制和渲染的字体 当然还有一些不在这两个之列的: 比如:ArcoRead, openoffices, Mozlia Mozlia尽管是基于第二种字体,但其有自己单独的配置文件font.conf,传统的基于字体服务器的字体子系统,原始的(已有 15 年以上历史)子系统被称为“核心 X 字体子系统”。由这个子系统绘制的字体不是平滑字体,它们由 X 服务器处理,名称类似: -misc-fixed-medium-r-normal-10-100-75-75-c-60-iso8859-1 Xmms ,gimp,新兴的fontconfig字体子系统,新的字体子系统被称为“fontconfig”。它允许应用程序直接使用字体文件。fontconfig 经常与“Xft”库一起使用,这会允许应用程序在屏幕上绘制平滑字体。fontconfig 显示的字体更有“人情味儿”。 随着时间的推移,fontconfig/Xft 将会取代核心 X 字体子系统。 Gtk和QT,如何使用windows下的字体,1. 找一个windows下的simsun字体,例如simsun.ttc 2.Xserver需要两个文件来认识响应的字体 Fonts.scale 和fonts.dir,下面生成这两个文件 建目录/usr/share/fonts/zh_CN/MoreTrueType,把simsun.ttc放进去,然后在那个目录里执行:ttmkfdir fonts.scale 然后执行:cp fonts.scale fonts.dir,如何使用windows下的字体,3.告诉Xserver让它可以找到新加的字体 编辑/etc/X11/XF86Config,把设置字体路径的部分改为: Section “Files“ RgbPath “/usr/X11R6/lib/X11/rgb“ # FontPath “unix/:7100“ FontPath “/usr/share/fonts/zh_CN/MoreTrueType“ FontPath “/usr/share/fonts/zh_CN/TrueType“ FontPath “/usr/share/fonts/zh_TW/TrueType“ EndSection,如何使用windows下的字体,4.告诉Xserver用xtt方式渲染字体取代freeType方式 并且把调入模块部分下面两行改为如下所示: Section “Module“ # Load “freetype“ Load “xtt“ EndSection 5. 现在启动X,如何使用windows下的字体,将新字体添加到fontconfig的系统中比较简单 1)将新字体复知道一个目录下。然后在该目录下运行: Fccache v f即可,新兴字体的美化,对于新的字体系统比较关键的是两个文件 /etc/fonts/font.conf /etc/fonts/local.conf 这两个文件决定了字体的显示方式和渲染效果。它们是两个XML文件。可以直接编辑。 Local.conf的优先级高于font.conf。所以一般来说只要改local.conf就可以 但手动修改比较麻烦,建议到网上下载别人改好的即可。,X-window的一些技巧,CRTL+ALT+Backspace来结束你的X Window Manage 结束进程可以考虑Kill和Xkill 进程管理器:ps,X-window的Utilities,用什么抓图:import (ImageMagic工具包的一个程序) 用什么工具得到一个窗口的信息和和它的id: xwininfo 用什么工具得到一个窗口发生的事件: xev 用什么工具可以看到一个窗口的propery:xprop 怎样知道剪切板里面的内容: xclipboard 怎样知道当前的显示信息:xdpyinfo 怎样刷新所有的窗口: xrefresh,第二部分:Vnc简介,1) What isVNC? 2) How does VNC work? 3) VNC System Components 4) VNC Inside 5) VNC implement,What is VNC,1)a remote access to graphical user interfaces 2)Base on RFB (“remote framebuffer”) protocol 3) works at the framebuffer level 4) applicable to all windowing systems and applications (including X11, Windows and Macintosh),Why need vnc?,效率极高:只允许键击信息、鼠标点击和屏幕更新通过网络传输。因此,只需消耗通常所需的网络带宽的一小部分。 利用低端设备获得卓越的性能.最新的、最强大的32位应用也能从现有的个人计算机、Windows终端、网络计算机以及新一代的商务和个人信息设备上以卓越的性能进行访问 多机种计算环境和跨平台访问,本地及远程资源的无缝桌面集成 单点管理 ·在物理上和技术上的安全保密 ·关键任务的可靠性,Thin-client advantages,make very few requirements of the client clients can run on the widest range of hardware the task of implementing a client is made as simple as possible client stateless. completely mobile.,VNC System Utilities,Xvnc Vncserver vncviewer Vncconfig vncpasswd,Xvnc,the X VNC server The server endpoint application for vnc system Command: Xvnc options :display# Main Options: -geometry widthxheight Specify the size of the desktop to be created. Default is 1024x768. -depth depth Specify the pixel depth in bits of the desktop to be created. Default is 16, other possible values are 8, 15, and 24 - anything else is likely to cause strange behaviour by applications.,Xvnc,Main Options: -rfbauth passwd-file -PasswordFile passwd-file -desktop desktop-name -inetd Command Example: #Xvnc PasswordFile /root/.vnc/passwd geometry 800x600 depth 24 :10,vncserver,A script for starting or stopping the vnc Xvnc Command format: vncserver :display# -name desktop-name -geometry widthxheight -depth depth -pixelformat format Xvnc-options. vncserver -kill :display# Main Options: -name desktop-name -geometry widthxheight -depth depth -pixelformat format -kill :display#,vncserver,Command Ex: vncserver :13 Vncserver :10 geometry 800x600 depth 24,vncserver,Files: $HOME/.vnc/xstartup A shell script specifying X applications to be run when a VNC desktop is started. $HOME/.vnc/passwd The VNC password file. $HOME/.vnc/host:display#.log The log file for Xvnc and applications started in xstartup. $HOME/.vnc/host:display#.pid Identifies the Xvnc process ID, used by the -kill option.,Vncviewer,Vnc Client for X Command format: Vncviewer options host:display# Vncviewer options listen port Main options:,-display Xdisplay -geometry geometry -listen port -passwd password-file -Shared -ViewOnly,-FullScreen -FullColour -UseLocalCursor -MenuKey keysym-name,vncviewer,Command Ex: Vncviewer :10 Vncviewer :10 share fullscreen geometry 800x600,VncConfig,在没有参数的情况用于维护Xvnc和Vncviewer之间的剪切板同步.一般来说,它以一个含有几个复选框的窗口的形式呈现在屏幕上.如果你不想要这个窗口,但想要剪切板同步.那么你可以以-nowin为参数运行vncconfig -connect host:port 让Xvnc连接Host上监听的vncviewer. -disconnect 断开连接 -set Xvnc-param=value 设置Xvnc的参数 -list 列出所有可用的参数 -get Xvnc-param 取得Xvnc-param的值 -desc Xvnc-param 打印Xvnc-param的帮助 -display Xdisplay 指定要控制的Xvnc,Command Ex: Vncconfig Vncconfig list Vncconfig connect 10.0.0.70:1024 vncconfig -disconnect vncconfig -set Xvnc-param=value . vncconfig -get Xvnc-param vncconfig -desc Xvnc-param,Vncpasswd,Vncpasswd passwordfile 更改用户的vncpassword. Passwordfile 一般来说存在于用户的/.vnc/passwd文件中 Command Ex: Vncpasswd /home/.vnc/passwd2,Vnc Inside,RFB protocol: Display protocol based around a single graphics primitive: “put a rectangle of pixel data at a given x,y position”. update protocol is demand-driven by the client. Input protocol based on a standard workstation model of a keyboard and multi-button pointing device. Input events are simply sent to the server by the client,Vnc inside,Two Kind of Color type: True color method: Pesudo Color: base on the palette.,A Session procedure,Vnc inside,Securty type: None VNC Authentication,Client to Server Message: SetPixelFormat SetEncodings FramebufferUpdateRequest KeyEvent PointerEvent ClientCutText,Server To Client Message FramebufferUpdate SetColourMapEntries Bell ServerCutText Encodings,Encodes Raw encoding CopyRect encoding RRE encoding CoRRE encoding Hextile encoding ZRLE encoding Pseudo-encodings Cusor and desktopsize,VNC implement,有需要的可以我可以发给你们源码 里面做了很详细的注释,参考: www.linuxsir.org www.linuxbyte.net 王垠的个人主页 Smth linux board www.realvnc.com,OK!,谢谢,

    注意事项

    本文(理解X-window与VNC.ppt)为本站会员(本田雅阁)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开