实现这个合同的常用服务器有:apacheIIS等
恳求那些服务器传输文件的顾客有:IE,MOZILLA,NETSCAPE等.
合同是X
实现这个合同的常用服务器有Xfree86,Xorg,Xnest等
恳求那些服务器来完成显示任务的顾客:所有的X应用程序.
只
不过HTTP合同的服务器和顾客端一般都在两台不同的笔记本(服务器和顾客机)之间来实现,所以通常人对这个比较容易理解.而X合同的服务器和顾客端程序通
常在同一台笔记本上,因而好多用户都倍感对此很难理解.既然是合同,这么肯定和平台无关的,因而可以让X应用程序显示在任何装有X服务器的远程计算机上.甚
至显示在装有Xnest服务器的windows系统上.只不过在大多数情况下,X应用程序都用本机的X服务器,之后X服务器将显示结果输出到本机的显示
器.这也是好多人不理解X是一种合同的诱因.
四,X和X11R6又是哪些关系?
不晓得初学者有没有注意到/usr/X11R6这个目录,这是XFree的默认安装目录
X11R6实际上是XProtocolversion11Release6
(X合同第11版第六次发行)的意思,就是说目前用的X合同是第11版的,之后经过了6次小的修正.不同版本的X合同是不能通信的.就像我们如今IPV4和IPV6不能通信一样,不过不用害怕puppy linux,如今的X服务器软件和X应用程序都遵守X11R6.
另外XFree863.3.6XFree864.3.6等这种版本是实现X合同的软件XFree86的版本号.这是初学者常常高混淆的概念.
合同版本和实现合同的软件的版本--这两个概念的区别你分清楚了吗?
五,X服务器和WM(windowmanager窗口管理器)之间是哪些关系.
平常你们起动图形界面是如何启动的呢?
假如你是一开己就步入图形界面那就太遗憾了.应为你错过了了解X服务器起动过程的好时机.不过没关系.你打开一个XTERM输入:
init3
就可以安全的回到字符界面.
好了,等做完以下实验你就完全明白X和WM(windowmanager窗口管理器)之间是哪些关系了.
先输入以下命令:
#startx
起动图形界面,你听到的是一个和平常使用一样的完整的图形界面操作环境.
你可以最大化,最小化,联通,关掉窗口等.
按ctrl+alt+backspace反回字符界面.
输入:
#xinit
再度启动图形界面linux 图形界面开发,你看见了哪些,你看见一个XTERM.并且不能联通.并且你可以在这个XTERM中输入命令打开X应用程序,假如我输入:
#mozilla
打开浏览器,你听到的浏览器和平常有哪些不同吗?他在屏幕中间,不能联通,不能最小化,不能最大化,没有边框.
为何同样一个X应用程序会有这样的不同呢?由于我们用startx起动图形界面的时侯同时也启动了一个WM(即窗口管理器),假如你用KDE就起动了KDE,假如你用GNOME就起动了GNOME.并且你用xinit起动图形界面的时侯却没有起动WM.
如今你明白窗口管理器的作用了吗?他的作用就是最大化,最小化,联通,关掉窗口等.而那些不是X服务器来负责完成的.
假如你用xinit起动图形界面并在xterm中输入twm,瞧瞧会有哪些?
xterm被加上了一个边框,你可以通过这个边框联通,最大化,最小化这个xterm,twm就是XFree86中自带的窗口管理器,是一个比较狭小的最简单的窗口管理器,并且他具有窗口管理器的全部特点.
假如你不输入twm而输入gnome-session就可以起动GNOME
或则输入startkde起动KDE.
通过以上的实验你就可以清楚的明白她们之间的关系.
六,关于KDE和GNOME
KDE和GNOME是LINUX里最常用的图形界面操作环境,她们不仅仅是一个窗口管理器这么简单,KDE是KDesktop
Environment的简写.他除了是一个窗口管理器,还有好多配套的应用软件和便捷使用的桌面环境,例如任务栏,开始菜单,桌面图标等等.
GNOME是GNUNetworkObjectModelEnvironment的简写.和KDE一样,也是一个功能强悍的综合环境.
另外在其它UNIX系统中,经常使用CDE作为这样一个环境.
其它的大型窗口管理器有:
windowmaker,afterstep,blackbox,fvwm,fvwm2,等等都是常用的优秀窗口管理器.REDHAT9中有
windowmaker并且默认不安装,你们可以装来试试.只要xinit再wmaker&就可以用windowmaker了.
七,linux图形界面层次关系总结
linux本身-->X服务器窗口管理器(综合桌面环境)-->X应用程序.
Xfree86服务器的实现包括两个部份,一部份是和主板直接打交道的低层linux 图形界面开发,一部份是和X应用程序打交道的下层.下层负责接收应用程序的恳求和键盘按键
的动作.而和主板直接打交道的底层负责指挥主板生成图形,虽然就是主板驱动.下层接收到应用程序的恳求后,将恳求内容做适当处理,之后交给主板驱动来指挥
主板完成作图的动作.另外,下层的捕捉鼠标和键盘动作的部份会向应用程序提供键盘和鼠标的状态信息,应用程序接收到这种信息后决定是否再有相应的动作.
平常说的VESA,VGA,fbdev等虽然就是针对不同模式主板的驱动程序.
VESA(VideoElectronicsStandardsAssociation)
VGA(VideoGraphicsArray)
fbdev(FrameBufferDevice)
等
都是不同的主板标准,不过这种标准都早已很老了.现今的主板都兼容这几种模式.
framebuffer模式的主板本身不具有任何运算数据的能力,他好比是一个暂时储存水的水池.CPU将运算后的结果放在这个水池linux vi 命令,水池再将结果流到显示器.中间不会对数据做处理.在这中情况下,所有显示任务都有CPU完成,CPU负担很重.
从frambuffer这个名子我们能够推测到他的功能了(数据侦缓冲).
在linux内核中有有framebuffer机制,贬抑framebuffer主板的这些功能.他的用处是把主板的硬件结构具象掉,把所有的主板都当作一个"水池"来用.应用程序也可以直接读取这个水池的内容.framebuffer的设备名是/dev/fb
可以用命令:
#ddif=/dev/zeroof=/dev/fb
清空屏幕.假如你的X用的是framebuffer的驱动,屏幕将全变黑.通过联通键盘,切换窗口等动作可以让原本的内容重新显示.
假如你不用framebuffer驱动,可以在字符模式下做这个试验.屏幕将全部被清空.
以下的命令:
#ddif=/dev/fbof=fbfile
可以将fb中的内容保存出来,之后可以重新写回屏幕:
#ddif=fbfileof=/dev/fb
作用类似于屏幕截图,并且截下的图不能用普通图片浏览器看.
如今晓得linux中framebuffer设备的神奇了吧.
linux字符界面在高码率下,启动时会有一个小企鹅logo,这个logo就是用framebuffer功能写上屏幕的.
VESA和VGA比FB要好好多,并且他的显示能力也很有限.CPU仍然要处理大部份的显示任务.
现
在的主板就不一样了,CPU几乎不参数显示任务,而专注于运算工作.我们平常在linux下装主板驱动,似乎就是替换掉XFree86中底层的那一部份.
使他有更强的显示能力.例如你的主板是nvidia的,XFree默认的驱动是"nv",他是一个nvidia主板的通用驱动,并且他不能发挥
nvidia主板的性能.这个"nv"驱动模块可以在:
/usr/X11R6/lib/modules/drivers
目录下找到,文件名是:nv_drv.o
这个目录下还有好多主板驱动模块.
apm_drv.odummy_drv.onsc_drv.osis_drv.o
ark_drv.ofbdev_drv.onv_drv.otdfx_drv.o
ati_drv.oglint_drv.or128_drv.otga_drv.o
atimisc_drv.oi128_drv.oradeon_drv.otrident_drv.o
chips_drv.oi740_drv.orendition_drv.otseng_drv.o
cirrus_alpine.oi810_drv.os3_drv.ovesa_drv.o
cirrus_drv.olinuxs3virge_drv.ovga_drv.o
cirrus_laguna.omga_drv.osavage_drv.o
cyrix_drv.oneomagic_drv.osiliconmotion_drv.o
fbdevvgaevsa等都在其中.
只要在XF86Conf文件中的Sectionmodule段手指定了哪些驱动,X就用那个驱动.
代码:
Section"Module"
Load"dbe"
Load"extmod"
Load"fbdevhw"#这儿用的是fbdev
Load"glx"
Load"record"
Load"freetype"
Load"type1"
Load"dri"
EndSection
这是XFree864.0以上版本的方式.即X主程序和驱动模块是分开的.
主程序是/usr/X11R6/bin/XFree86(即下层部份)
之后主程序启动的时侯按照配置文件决定用哪一个驱动.
然而,在XFree86先前的版本(3.3.6)中,X主程序和驱动模块是合在一起的,因而,原先的Xfree863.3.6有好多针对不同主板的版本.
另外其他的X服务器如KDrive也是驱动也主程序整合的,因而同样是KDriveX服务器会有VESA,SVGA,和fbdev的版本之分.由于这种都是轻量级的X服务器,为了简化结构他弄成这样.
Xfree864弄成驱动和主程序分离的用处是用户可以自己添加升级驱动.
阅读(955)|评论(1)|转发(0)|