一、linux的图形界面引用地址:图形界面层次关系:linux本身--X服务器-[通过X协议交谈]-窗口管理器(综合桌面环境)--X应用程序X是协议,就像HTTP协议,IP协议一样。一个基于X的应用程序需要运行并显示内容时他就联接到X服务器(XWindowsserver),开始用X协议和服务器交谈。比如一个X应用程序要在屏幕上输出一个圆,X应用程序只负责告诉X服务器在屏幕的什么地方用什么颜色画一个多大的圆,而具体的画的动作,比如这个圆如何生成,用什么显卡的驱动程序去指挥显卡完成等等工作是由X服务器来完成的。X服务器还负责捕捉键盘和鼠标的动作,假设X服务器捕捉到鼠标的左键被按下了,他就告诉X应用程序:亲爱的应用程序先生,我发现鼠标被按下了,您有什么指示吗?协议是需要具体的软件来实现的。为了便于理解,拿HTTP协议来比较:协议是HTTP实现这个协议的常用服务器有:apacheIIS等请求这些服务器传输文件的客户有:IE,MOZILLA,NETSCAPE等.协议是X实现这个协议的常用服务器有Xfree86,Xorg,Xnest等请求这些服务器来完成显示任务的客户:所有的X应用程序.只不过HTTP协议的服务器和客户端通常都在两台不同的电脑(服务器和客户机)之间来实现。而X协议的服务器和客户端程序通常在同一台电脑上,X应用程序都用本机的X服务器,然后X服务器将显示结果输出到本机的显示器。在Windows下运行的XWindowServer有不少,最常用的免费XWindowServer可能是Xcygwin。作为Linux程序员,在大多数情况,服务器在机房里,而本机在Windows下运行一个终端(如SecureCRT)连接到同一台服务器上。图形界面并不是linux的一部分,linux只是一个基于命令行的操作系统,Linux内核为linux系统中的图形界面提供了显示设备驱动,更新内核可以支持更多的硬件,并提供驱动。图形界面XFree只是linux下的一个应用程序而已。实现X协议的软件如XFree86((现在的linux发行版都用Xorg了),它是实现X协议的一个免费X服务器软件。Xfree86服务器的实现包括两个部分,一部分是和显卡直接打交道的低层,一部分是和X应用程序打交道的上层.上层负责接收应用程序的请求和鼠标键盘的动作.而和显卡直接打交道的底层负责指挥显卡生成图形,其实就是显卡驱动.上层接收到应用程序的请求后,将请求内容做适当处理,然后交给显卡驱动来指挥显卡完成画图的动作.另外,上层的捕捉键盘和鼠标动作的部分会向应用程序提供鼠标和键盘的状态信息,应用程序接收到这些信息后决定是否再有相应的动作.。XFree86内容包括X服务器,字体,一个X下的终端程序(xterm),一个简单的窗口管理器(twm),很多有用的小工具,显示输出驱动和包括键盘鼠标在内的许多输入模块。平时说的VESA,VGA,fbdev等其实就是针对不同模式显卡的驱动程序.VESA(VideoElectronicsStandardsAssociation)VGA(VideoGraphicsArray)fbdev(FrameBufferDevice)等都是不同的显卡标准,不过这些标准都已经很老了.现在的显卡都兼容这几种模式。framebuffer(数据侦缓冲)模式的显卡本身不具有任何运算数据的能力,他好比是一个暂时存放水的水池。CPU将运算后的结果放到这个水池,水池再将结果流到显示器.中间不会对数据做处理。在这中情况下,所有显示任务都有CPU完成,CPU负担很重。在linux内核中有framebuffer机制,摹仿framebuffer显卡的这种功能.他的好处是把显卡的硬件结构抽象掉,把所有的显卡都当做一个水池来用.应用程序也可以直接读取这个水池的内容。framebuffer的设备名是/dev/fb可以用命令:#ddif=/dev/zeroof=/dev/fb清空屏幕。如果你的X用的是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.oark_drv.ofbdev_drv.onv_drv.otdfx_drv.oati_drv.oglint_drv.or128_drv.otga_drv.oatimisc_drv.oi128_drv.oradeon_drv.otrident_drv.ochips_drv.oi740_drv.orendition_drv.otseng_drv.ocirrus_alpine.oi810_drv.os3_drv.ovesa_drv.ocirrus_drv.olinuxs3virge_drv.ovga_drv.ocirrus_laguna.omga_drv.osavage_drv.ocyrix_drv.oneomagic_drv.osiliconmotion_drv.ofbdevvgaevsa等都在其中.只要在XF86Conf文件中的Sectionmodule段中指定了什么驱动,X就用哪个驱动.代码:SectionModuleLoaddbeLoadextmodLoadfbdevhw#这里用的是fbdevLoadglxLoadrecordLoadfreetypeLoadtype1LoaddriEndSection这是XFree864.0以上版本的方法.即X主程序和驱动模块是分开的.主程序是/usr/X11R6/bin/XFree86(即上层部分)然后主程序启动的时候根据配置文件决定用哪一个驱动./usr/X11R6是XFree的默认安装目录。X11R6实际上是XProtocolversion11Release6(X协议第11版第六次发行)。不同版本的X协议是不能通信的,现在的X服务器软件和X应用程序都遵循X11R6。另外XFree863.3.6XFree864.3.6等这些版本是实现X协议的软件XFree86的版本号XDM即“XDisplayManager”,配置文件在/etc/X11/xdm,由它来启动XWindow服务器,并管理图形客户端程序的登录、会话、启动窗口管理器(KDE、Gnome)等。KDE和Gnome也提供了自己的xdm的实现,分别叫kdm和gdm。X服务器和WM(windowmanager窗口管理器)之间的关系:先输入以下命令:#startx起动图形界面,你看到的是一个和平时使用一样的完整的图形界面操作环境。你可以最大化,最小化,移动,关闭窗口等。按ctrl+alt+backspace反回字符界面。输入:#xinit,再次启动图形界面,你看到一个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界面切换到xfce4安装xfce4:debian:~#apt-getinstallxfce4以前我在系统中安装了KDE,所以默认是进入KDE桌面环境。现在我要把默认的桌面环境切换到Xfce4。要实现该功能,我们只要使用update-alternatives命令把默认的窗口管理器换成Xfce4的即可。可用以命令显示当前系统安装的窗口管理器:debian:~#update-alternatives--displayx-window-managerx-window-manager-statusismanual.linkcurrentlypointsto/usr/bin/kwin/usr/bin/kwin-priority50/usr/bin/xfwm4-priority60slavex-window-manager.1.gz:/usr/share/man/man1/xfwm4.1.gzCurrent`best'versionis/usr/bin/xfwm4.用以下命令设置:update-alternatives--configx-window-managerThereare2alternativeswhichprovide`x-window-manager'.SelectionAlternative-----------------------------------------------1/usr/bin/kwin*+2/usr/bin/xfwm4Pressentertokeepthedefault[*],ortypeselectionnumber:2Using`/usr/bin/xfwm4'toprovide`x-window-manager'.输入startx启动X系统时就会自动进入Xfce4桌面环境了。Xfce的Logo是一个奔跑的小老鼠,喻意小巧、快速。进入Xfce4桌面环境,我们可看到一个很简洁的桌面。屏幕顶部是一条任务栏,屏幕底部是一组快捷按钮。Xfce的中文支持做得不错,界面基本上都是中文的,使用起来很方便。要配置Xfce,我们可点击屏幕底部的“设置”快捷按钮来配置。它会打开一个Xfce配置管理器,可对Xfce桌面环境的窗口管理器、文件管理器和会话管理器等进行配置。通过右击桌面还可显示一个弹出菜单,Xfce所有的功能都可在这里配置和使用。安装了登录管理器后,启动系统会进入登陆界面,在左下角可以设置进入哪个窗口界面二、配置网络1修改/etc/network/interfaces1)如果设成DHCP:autoloifaceloinetloopback#Theprimarynetworkinterfaceautoeth0ifaceeth0inetdhcp2)如果设成静态IP:autoloifaceloinetloopback#Theprimarynetworkinterfaceautoeth0#ifaceeth0inetdhcpifaceeth0inetstaticaddress192.168.20.55netmask255.255.224.0gateway192.168.10.2542、重新启动networking服务#/etc/init.d/networkingrestart二、快速打开终端打开systemsetting--keyboard--ShortCut在这里我们需要