2009年5月11日星期一
LIve CD
很多 Linux® 发行版本已经被设计为所谓的“LiveCD”,即可以直接引导为可用 Linux 系统的 CD。与大多数广为应用的发行版本中可以使用的“拯救模式(rescue mode)”引导选项相反,这些 LiveCD 的设计是,当从 CD 引导起来后,提供一整套可以使用的工具,其中有一些是通用的,有一些是高度专用的。David Mertz 介绍了 Linux 市场中这一迅速成长的分支。 Linux 的 LiveCD 发行版本已经有若干年的历史,但是近一两年这种发行版本的数量已经增加了好几倍。现在的大部分专用 LiveCD 都起源于 LinuxTag 的 Knoppix 发行版本,那是个非常成功的发行版本。新奇的 LiveCD 发行版本 —— 一般来讲很像新的 Linux 发行版本 —— 为不同的用户群包装了不同的软件集,而且,为了体现它们的创建者的思想,它们也包装了微调配置和设置细节。 当前,就算是没有几百种,也有几十种可用的 LiveCD 发行版本;显然,我不能在本文中涉及所有这些发行版本。最受关注的 LiveCD 可能是特意用来向新用户展示 Linux 的通用办公软件包。不过,此外还有其他的更为专用的发行版本,比如用作系统群集、急救 CD、防火墙或安全工具。在很多情况下,更为专用的发行版本也会更小,因为它们舍弃了大部分通用的工具。 从 CD 引导 Linux 在本文中,我介绍了四个常见的通用发行版本:Knoppix、Slax、Mepis 和 GoboLinux。不过,尽管大部分情况下最后一个发行版本是用于 办公/网络/游戏 的通用的发行版本,但是,它的创建在很大程度上是为了论证关于文件系统设计的一些新颖想法。我还介绍了三个更为专用的 LiveCD:Feather Linux 是通用的,但是非常小;EVMix 基于 StrongBox,引入了 EVM2003/Open Voting Consortium 项目的大部分专用软件,我正在参与那个项目;IPCop 是另一个小型的 LiveCD,致力于创建基于 Linux 的防火墙。 对于这些发行版本中,其中大部分我将在它们各自的章节中对其进行描述。不过,在这里我将对 IPCop 进行简短的评论。我兴奋地使用这个只有 22 MB 的小巧 ISO 来体验一个小型的、专用的 Linux LiveCD。不幸的是,在尝试引导 IPCop 时,我有些失望了;不是发行版本本身的问题,而是我的期望问题。IPCop 仅仅名义上是一个 LiveCD 发行版本 —— 虽然它 确实 引导进入一个 Linux 系统,但是在那里您可以真正做的唯一的事情就是将系统安装到硬盘上。就此而言,IPCop 类似于任何其他可安装的 Linux 发行版本 —— 那些发行版本大部分也可以让您选择一个最小化的 shell 来完成管理功能。IPCop 中的屏幕截图功能令人关注,但是,当发现需要使用我的硬盘驱动器以后,我觉得更深入的测试超出了本次评论的范围。我的预感是,有很多其他大肆宣传的“LiveCD”也是像这样徒有其名。 顺便说一句,在本次评论中,我所寻找的是明显的或者容易去做的内容 —— 的确,除了我努力去完成的内容以外,其他的事情也是可能的。我特别评论的话题包括,一个发行版本是否可以将两次引导间的配置方便地保存下来,或者是否可以将其自身安装到硬盘驱动器上。我相信,只要付出足够多的体力劳动,我就可以在所有发行版本中完成那些事情,不过,我寻找的是执行那些动作的重要菜单项(menu item)或指令。 Knoppix 3.4 Knoppix 是最有名的 LiveCD 发行版本,所以,作为一个基础,首先对它进行研究。Knoppix 3.4 (2004-05-17)将尽可能多的内容压缩到一张 CD 上,最终得到一个 690 MB 大小的 ISO 映像(一定要买 700 MB 的 CD-R,而不要买 650 MB 的)。从它的大小就可以看出来,Knoppix 捆绑了大量的工具,既有面向开发人员的,也有面向办公用途的。我所研究的工具都是当前流行的,但并不是尖端的(bleeding edge):Linux 内核 2.4.26;KDE 3.2.2;OpenOffice.org 1.1.1;Gimp 2.0;Python 2.3.4c1。 Knoppix 倾向于附加功能重复的程序,这些可能会给新用户带来迷惑:有十个文本编辑器,我应该使用哪个?我应该使用 Mozilla 还是 Konqueror 进行浏览?另一方面,那些都是经验丰富的用户所非常乐于使用的; Knoppix 坚持使用 OpenOffice.org 作为它的办公套件,而舍弃了一些发行版本中所采用的 KOffice。 可以直接引导 Knoppix,不需要用户做任何事件就可以得到一个可以使用的 KDE 桌面。我的所有硬件(几年前的旧机器上的)都恰当地识别了出来,包括我的 1280x1024 的平板显示器以及与我的 nVidia TNT2 显卡相匹配的模式。默认的用户是 knoppix,但是我发现不需要密码就可以执行 su —— 可能是安全与用户友好性的折衷吧。只需要执行 passwd 就可以解决这一问题,因为系统中永远不应该存在没有密码的帐号。 我试验的所有通用发行版本所使用的窗口管理器都是 KDE(实际上,版本都是 3.2.2)。配置细节上有一些不同,比如哪些图标安放在面板上,选择是哪种主题,使用的是哪种点击模式(单击/双击)。我并不喜欢 Knoppix 的选择:单击、Keramik 主题;但是这纯粹是一个个人问题,很容易改变。Knoppix 也附加了一些其他的窗口管理器,不过它们之间的切换好像会破坏 X11 配置。 至于更多功能上的问题,Knoppix 引入了一个优秀的而且令人瞩目的“Save Knoppix Configuration”工具。您可以按意愿将设置部分保存到软盘或者硬盘分区上:如主目录文件、网络设置、X11 配置、打印机等等。Knoppix 还将我的所有硬盘分区自动挂载到桌面上,包括测试用的 OS/2 桌面上的 HPFS 分区。有一些可以在运行的系统上 “Install Software”的选项,但是除了这个有限的列表以外,如果我尝试添加其他应用程序,apt-get 就会指出安装目录只读的错误(对我来说没有显而易见的可以解决这一问题的其他方法)。与一些发行版本相反,Knoppix 没有 提供将其自身安装到硬盘驱动器上的重要选项。 Mepis 2004 Mepis 是一个类似于 Knoppix 的发行版本,但是它具备双重用途,既可以作为一个可安装的发行版本,也可以作为一个 LiveCD。与 Knoppix 类似,Mepis 也是一张几乎全满了的 CD,而且,实际上它还附带了额外第二张的 CD(不是直接可用的)。Mpeis 上的工具集与 Knoppix 上的那些大部分是相同的。 LiveCD 为开发人员考虑的较少,而为办公用户考虑得更多。例如,LiveCD 上同时包括了 OpenOffice.org 和 KOffice;但是包括的程序员所用的编辑器和开发用的 IDE 很少。 与 Knoppix 相反,Mepis 引入了一个将其自身安装到硬盘驱动器的非常好的应用程序,但是却缺少保存 LiveCD 配置的工具以及 LiveCD 环境运行时动态安装额外软件的工具。诚然,Mepis 的目标是让您在安装之前可以进行试验,而不是创建一个根本不需要任何持久安装的轻便的运行期环境。不过,不经修改的 Mepis LiveCD 环境就已经是很好用的了,您可以方便地将修改过的文档或文件保存到其他媒介。Mepis 不会自动挂载它发现的所有硬盘驱动器分区,但是在它的桌面上有用来挂载分区的图标(不需要用户了解 mount 命令的参数)。和 Knoppix 一样,Mepis 可以恰当地挂载我的 HPFS 分区(只读)和 ext2/3 分区(读/写)。 Mepis 的引导顺序与 Knoppix 稍有不同。更好的方面体现在,Mepis 为您提供了一个可导航的本文菜单来选择内核的版本(我试验的是 2.6,但是 2.4 也是可以使用的)。选择屏幕分辩率和一些其他配置选项的能力(也是要求)难言其利弊。全部以友好的可滚动菜单的形式给出,但是 Knoppix 根本不需要询问这些。另一方面,其余发行版本大部分都假定我希望以 1024x768 的分辩率来运行 X11,而不是 1280x768 —— 我宁愿自己来选择,而不愿让 CD 弄错它。Mepis 中的一个小问题是,它设置的 root 和 demo 帐号的密码在引导过程中并没有显示出来,也没有记录在顶层的 README 文件中。我只尝试了几次就猜出了 root 密码是“root”,但这毕竟是猜测出来的。 SLAX 4.1.2 SLAX 是一个基于 Slackware 的 LiveCD,它的大小相对较小,可能是与 Slackware 的原则一致。 SLAX 4.1.2 是一个 188 MB 的 ISO,这个 ISO 显然是足够小的,可以写入到一张 8 厘米直径的小型光盘中(有意如此)。SLAX 很好地选择了一组面向公办和家庭用户的软件,这很大程度上是通过消除更大的发行版本中的冗余而实现的。例如,SLAX 为您提供了 KOffice,而不提供 OpenOffice.org,为您提供了 Konqueror,而没有提供 Mozilla。它也没有提供 Python、Perl 或者 Ruby —— 它的目标用户显然不是开发人员。 引导 SLAX 是非常简单的。和 Knoppix 一样,它没有使用引导选项而是使用了开关,在它开始默认的引导之前几秒钟,您可以在 boot: 提示符中输入这些开关。它使用的是 2.4 内核。完成基本的 Slackware 引导序列后,SLAX 显示出 root 密码(“toor”)并说明您可以在命令行中启动的程序:(使用 gui 启动 KDE;使用 guifast 启动 Fluxbox;midnight commander;使用回退帧缓存的 X11;将配置的设置保存到软盘或从软盘恢复)。 输入 gui 后,我发现了第一个小问题。我只有一个 1024x768 的屏幕。怎么办?我知道去修改 /etc/X11/XF86Config 来设置新的分辩率,但是新用户可能不会想到这一点。我还发现 gui 将可以接受一个 --help 开关来指引我使用 X11 分辨率开关。这些对于不熟悉 Linux 的人来说都不是显而易见的。不过算了,这 是 Slackware。 进入了 X11 和 KDE 之后,我着实为其配置选项所吸引。我也喜欢 SLAX 选择的 Plastik 主题(尽管与 WinXP 有些类似)和桌面上双击方式的行为,而且在 Konqueror 中我感觉更为自然。我还发现了面板上的自定义图标,值得我们以稍微轻松的态度去看待 —— 尊重一个事实,它们大部分用于多媒体、IM、游戏和 Web 浏览(那个设置可能是来自其他某个地方,但是我仍然喜欢这个选择)。我的硬盘驱动器分区都自己挂载上来(包括 HPFS 分区),但是并没有被胡乱地堆放在桌面上。我还发现,Control Center 使用了一种我有些不太习惯的导航方式;这可能不是 SLAX 独有的改变,只是我以前没有见过的一种方式。每一个类别都有一个移动到上一级的“Back”图标,而不是使用配置类别的一个可折叠树。这看起来对新用户来说更为友好。 SLAX 的目标显然是定位于新用户,并向不了解 Linux 的人们来“推销”Linux。它的外观对此可以起到推动作用;但是,不能安装到硬盘,也不能向运行期的映像安装更多应用程序,同样会造成障碍。它正是一个大小适度的 ISO,您可以到处发放或者快速地刻录到 CD 上,给用户一个关于 Linux 的良好的初步印象(有试验中有足够的工具可以进行一些真正的工作和娱乐)。 GoboLinux 011 对新用户来说,它与 Mepis 或 Knoppix 非常相像。包含了一整张 CD 的软件,也是基于 2.4.26 内核和 KDE 3.2.2。应用程序大部分都是您所期待的那些,或许没有太注意种类的覆盖和重复。甚至比 SLAX 还要糟糕,我所能找到的获得正确的 X11 分辩率的唯一方法是手工编辑 /etc/X11/XF86Config。 GoboLinux 在一些小的方面比较差:不会自动挂载分区,显然不支持 HPFS(从命令行可以挂载 ext3);不能“保存设置”;不能动态安装;而且,最要命的是,GoboLinux 不能识别出我的网络。 GoboLinux 的“卖点”实际上并不在于它是一个特别好的 LiveCD(虽然它可能会不断得到完善),而是 GoboLinux 的关于 Linux 文件层次的新颖思想。GoboLinux 遵循了与 Mac OSX 在 FreeBSD 根上使用分层模式类似的模式,创建了根目录 /Depot、/Files、/Mount、/Programs、/System 和 /Users。有必要时,GoboLinux 使用符号链接将文件放置于其他工具希望它们存在的层次中位置。不过,在其固有的文件结构中 —— 同样,非常类似 Mac OSX —— 每个应用程序占用它们自己的目录,而不是集中在 /usr/bin 或 /usr/local/bin 目录中。 例如,FireFox 浏览器可执行文件位于 /Programs/FireFox/Current/bin/firefox 目录中。删除或安装应用程序(不是必须与可执行文件一一对应)只需要解包或删除文件系统树中的分支。自然,将 LiveCD 引导安装到硬盘驱动器是非常简单的,而且 GoboLinux 为您提供了这样一个选项。 GoboLinux 提出的概念是不错的,但是发行版本本身需要进一步完善。 Feather Linux 0.51 Feather Linux 比 SLAX 更有过之。Feather 的大小不到 64 MB,包装了一个基本的 Linux 系统,以及一个最小化的 Web 浏览器(Dillo)、字处理器(Ted)、窗口管理器(Fluxbox)和一些其他应用程序。 Feather Linux 小得可以放置在一个闪存卡(compact flash card)中,这是携带 Linux 的发行版本的一种更简洁方式。当然,一些年纪比较大的人会记得,WordPerfect 5.1 只需要软盘和 2 MB 内存就可以运行,因而将远不如它成熟的字处理程序加入到 64 MB 大小的系统中就不值得大惊小怪了(无可否认,还有适当数量的其他应用程序)—— 但就 2004 年的标准而言它是令人满意的。 相对于大部分直接可用的发行版本,Feather Linux 在自动检测硬件方面做得稍显不足;这是因为代码已经被精减了,还是为了让经验丰富的 Linux 用户获得对配置的更多的控制,我无法确定。幸运的是,通过可导航的本文菜单就可以完成配置,所以做出一些选择并不困难 —— 但是这确实需要更多关于您的硬件的知识,新用户可能不会具备这些知识。好的方面体现在,您可以将 Feather 配置保存到闪存、硬盘驱动器或者软盘;而且您还可以将运行着的 Feather 系统安装到硬盘上。除了 64 MB 大小的基本系统以外,还可以通过网络安装相当多的额外的应用程序 —— 尽管 Feather 系统仍然在运行。 总之,Feather Linux 是一个很好的结合成一个整体的发行版本,但是它显然是为经验丰富的 Linux 用户所准备的。没有新用户会去喜欢 Fluxbox —— 尽管我认识很多经验丰富的人,那些人是 Blackbox(Fluxbox 起源于它)的忠实信徒。 EVMix 0.1.5 在我所研究的发行版本中,EVMix 在很多方面都是独一无二的。即使是它的名称也还没有必要固定下来。让我来简单介绍一些背景。EVM2003 项目是一个由 SourceForge 托管开发完全使用自由软件的投票记录机软件项目,这些机器能够生成选民可验证的选票。这个项目解决了当前私有的“触摸屏投票” 机器中存在的很多问题。我是这个项目的一名开发人员和体系结构顾问。 投票记录机的一个特殊要求是,您 真正地希望它们运行 完全 相同的软件,那些软件通过了鉴定,要在选举中使用。没有任何 slipstream 补丁;没有任何“maintenance releases”;没有任何“trust Microsoft's latest security update”;所以,出于特殊的而且必要的理由,机器上没有任何软件。要完成可信任级别的发布控制,我们想到的最好办法恰好是将软件发布于 LiveCD 之上(只能是 CD-R,不能是 CD-RW)。选举工作人员可以在整个磁盘映象上运行 MD5 哈希加密,并确保它 确实 拥有正确的软件集 —— 从操作系统和驱动程序到正确的 Python 解释程序和正确的投票应用程序。 一张 EVMix CD 包含若干个应用程序,每个都需要稍有不同的工具链。StrongBox 的创建者 Liam Helmer 提出了一个基于 StrongBox 的系统。我们的每个组件 —— 触摸屏、“ballot reconciliation”、为阅读有障碍的人准备的(reading-impaired)音频接口、投票汇集 —— 都可以运行它们自己的虚拟系统。 StrongBox 与 Linux 的常规思路不同。StrongBox 是一个完全模块化的 Linux 发行版本,不再有运行所有程序的统一的系统。它加入了一个小的基于 RAM 的 OS 和用于管理和安全功能的工具集,这样就可以让使用任何 Linux 发行版本编译的应用程序包在其上运行。这些程序包每一个都运行在一个安全的虚拟上下文中(经过 x.509 密钥签名的),高度独立于底层 OS。这一安全的划分使 StrongBox 拥有了一些强大的特性。其中主要的特性包括 OS 版本控制、回退、自动硬件检测、引导过程中的容错、服务器之间方便的迁移,以及与其他 Linux 发行版本和已存在的装置(installations)之间的互操作性。 通过使用虚拟服务器、所有 OS 组件上的数字签名以及 OS 中大量的只读部分,StrongBox 可以非常有力地防御安全攻击。另外,它支持与媒介无关的虚拟引导,也就意味着,稍加修改或者不加改动,它就可以从 CDRom、闪存、 USB、SCSI 等等媒介上运行。这一独立特性使得 StrongBox 成为安全地部署嵌入式系统、计算机集群、企业 Linux 部署、安全的 Web 服务器、PBX 系统以及 kiosk 系统的理想选择。 结束语 LiveCD 发行版本有若干个用途。经常提及的一个用途是,它能“进行执行前的尝试”。对我来说,可能更重要的意义在于我可以在多台机器上运行一组已知的软件,而不需要担心机器上安装的程序库或工具的版本的不同。 我所研究的 LiveCD 中,大部分都可以很好地让您将设置和用户数据存储到不同的媒介中 —— 不管是本地的还是网络的。此外,在大部分 LiveCD 的运行期中能相对轻松地安装另外的软件,我感觉很惊喜
linux图形界面的基本知识
转: http://topic.csdn.net/t/20061030/16/5119702.html
关于linux图形界面的基本知识
很多LINUX初学者分不清楚linux和X之间,X和Xfree86之间,X和KDE,GNOME等之间是什么关系.常常混淆概念,我想以比较易于理解的方式说明一下X,X11,XFREE,WM,KDE,GNOME等之间的关系.由于本人水平有限可能存在错误,请高手指正.
一,linux本身没有图形界面,linux现在的图形界面的实现只是linux下的应用程序实现的. 图形界面并不是linux的一部分,linux只是一个基于命令行的操作系统,linux和Xfree的关系就相当于当年的DOS和WINDOWS3.0一样,windows3.0不是独立的操作系统,它只是DOS的扩充,是DOS下的应用程序级别的系统,不是独立的操作系统,同样XFree只是linux 下的一个应用程序而已.不是系统的一部分,但是X的存在可以方便用户使用电脑.WINDOWS95及以后的版本就不一样了,他们的图形界面是操作系统的一部分,图形界面在系统内核中就实现了,没有了图形界面windows就不成为windows了,但linux却不一样,没有图形界面linux还是 linux,很多装linux的WEB服务器就根本不装X服务器.这也WINDOWS和linux的重要区别之一.
二,X是协议,不是具体的某个软件: X 是协议,就像HTTP协议,IP协议一样.这个概念很多初学者甚至学习LINUX有一定时间的人都混淆,一个基于X的应用程序需要运行并显示内容时他就联接到X服务器,开始用X协议和服务器交谈.比如一个X应用程序要在屏幕上输出一个圆那么他就用X协议对X服务器说:喂!我需要在屏幕上画一个圆.X应用程序只负责告诉X服务器在屏幕的什么地方用什么颜色画一个多大的圆,而具体的"画"的动作,比如这个圆如何生成,用什么显卡的驱动程序去指挥显卡完成等等工作是由X服务器来完成的.X服务器还负责捕捉键盘和鼠标的动作,假设X服务器捕捉到鼠标的左键被按下了,他就告诉X应用程序:亲爱的应用程序先生,我发现鼠标被按下了,您有什么指示吗?如果X应用程序被设计成当按下鼠标左健后再在屏幕上画一个正方形的话,X应用程序就对X服务器说:请再画一个正方形,当然他会告诉服务器在什么地方用什么颜色画多大的正方形,但不关心具体怎么画--那是服务器的事情. 那么协议是需要具体的软件来实现的,这就是下面我要讲的:
三,X和XFree86的关系. 有了协议就需要具体的软件来实现这个协议.就好比我们有了交通法规就需要交警去根据法规维护交通秩序一样.Xfree86就是这样一个去根据法规实现协议的 "交警".他按照X协议的规定来完成X应用程序提交的在屏幕上显示的任务.当然不仅仅是某个特定的交警才可以去维护和实现这个法规,比如还可以由交通协管员来实现交通法规,必要的时候警察也可以介入,当然前提是他们都要懂得交通法规,也就是要懂得协议.所以实现X协议的软件也并不只有XFree86, XFree86只是实现X协议的一个免费X服务器软件.商业上常用MOTIF,现在还有XORG,还有很多很小的由爱好者写的小的X服务器软件.甚至可以在WINDOWS上有X服务器运行,这样你可以在linux系统上运行一个X应用程序然后在另一台windows系统上显示.多么神奇.你可以用 google找到这样的X服务器软件.只不过在LINUX上最常用的是XFree86.(现在的linux发行版都用Xorg了)顺便说一句,苹果电脑的图形界面用的也是X协议,而且被认为是做的最好的X协议图形界面,并且他对X协议的实施是做在系统内核里的,所以性能明显好很多,这就是为什么很多大型三维图形设计软件都是在苹果平台上的原因. 为了便于理解拿HTTP协议来比较: 协议是HTTP (hyper text transmission protocol) 实现这个协议的常用服务器有:apache IIS 等 请求这些服务器传输文件的客户有:IE ,MOZILLA ,NETSCAPE等. 协议是X 实现这个协议的常用服务器有Xfree86 ,Xorg ,Xnest等 请求这些服务器来完成显示任务的客户:所有的X应用程序. 只不过HTTP协议的服务器和客户端通常都在两台不同的电脑(服务器和客户机)之间来实现,所以一般人对这个比较容易理解.而X协议的服务器和客户端程序通常在同一台电脑上,因此很多用户都感到对此很难理解.既然是协议,那么肯定和平台无关的,因此可以让X应用程序显示在任何装有X服务器的远程计算机上.甚至显示在装有Xnest服务器的windows系统上.只不过在大多数情况下,X应用程序都用本机的X服务器,然后X服务器将显示结果输出到本机的显示器.这也是很多人不理解X是一种协议的原因.
四,X和X11R6又是什么关系? 不知道初学者有没有注意到/usr/X11R6这个目录,这是XFree的默认安装目录 X11R6 实际上是 X Protocol version 11 Release 6 (X协议第11版第六次发行)的意思,就是说目前用的X协议是第11版的,然后经过了6次小的修正.不同版本的X协议是不能通信的.就象我们现在IPV4和IPV6不能通信一样,不过不用担心,现在的X服务器软件和X应用程序都遵循X11R6. 另外XFree86 3.3.6 XFree86 4.3.6 等这些版本是实现X协议的软件XFree86的版本号.这是初学者经常高混淆的概念. 协议版本和实现协议的软件的版本--这两个概念的区别你分清楚了吗?
五,X服务器和WM(window manager 窗口管理器)之间是什么关系. 平时大家起动图形界面是怎么启动的呢? 如果你是一开己就进入图形界面那就太遗憾了.应为你错过了了解X服务器起动过程的好时机.不过没关系.你打开一个XTERM输入: init 3 就可以安全的回到字符界面. 好了,等做完以下实验你就完全明白X和WM(window manager 窗口管理器)之间是什么关系了. 先输入以下命令: #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和GNOME KDE 和GNOME是LINUX里最常用的图形界面操作环境,他们不仅仅是一个窗口管理器那么简单, KDE是K Desktop Environment 的缩写.他不仅是一个窗口管理器,还有很多配套的应用软件和方便使用的桌面环境,比如任务栏,开始菜单,桌面图标等等. GNOME是GNU Network Object Model Environment 的缩写.和KDE一样,也是一个功能强大的综合环境. 另外在其它UNIX系统中,常常使用CDE作为这样一个环境. 其它的小型窗口管理器有: window maker,after step,blackbox,fvwm,fvwm2,等等都是常用的优秀窗口管理器.REDHAT9中有 window maker 但是默认不安装,大家可以装来试试.只要xinit再wmaker&就可以用windowmaker了.
七,linux图形界面层次关系总结 linux本身-->X服务器<-[通过X协议交谈]->窗口管理器(综合桌面环境)-->X应用程序.
关于linux图形界面的基本知识
很多LINUX初学者分不清楚linux和X之间,X和Xfree86之间,X和KDE,GNOME等之间是什么关系.常常混淆概念,我想以比较易于理解的方式说明一下X,X11,XFREE,WM,KDE,GNOME等之间的关系.由于本人水平有限可能存在错误,请高手指正.
一,linux本身没有图形界面,linux现在的图形界面的实现只是linux下的应用程序实现的. 图形界面并不是linux的一部分,linux只是一个基于命令行的操作系统,linux和Xfree的关系就相当于当年的DOS和WINDOWS3.0一样,windows3.0不是独立的操作系统,它只是DOS的扩充,是DOS下的应用程序级别的系统,不是独立的操作系统,同样XFree只是linux 下的一个应用程序而已.不是系统的一部分,但是X的存在可以方便用户使用电脑.WINDOWS95及以后的版本就不一样了,他们的图形界面是操作系统的一部分,图形界面在系统内核中就实现了,没有了图形界面windows就不成为windows了,但linux却不一样,没有图形界面linux还是 linux,很多装linux的WEB服务器就根本不装X服务器.这也WINDOWS和linux的重要区别之一.
二,X是协议,不是具体的某个软件: X 是协议,就像HTTP协议,IP协议一样.这个概念很多初学者甚至学习LINUX有一定时间的人都混淆,一个基于X的应用程序需要运行并显示内容时他就联接到X服务器,开始用X协议和服务器交谈.比如一个X应用程序要在屏幕上输出一个圆那么他就用X协议对X服务器说:喂!我需要在屏幕上画一个圆.X应用程序只负责告诉X服务器在屏幕的什么地方用什么颜色画一个多大的圆,而具体的"画"的动作,比如这个圆如何生成,用什么显卡的驱动程序去指挥显卡完成等等工作是由X服务器来完成的.X服务器还负责捕捉键盘和鼠标的动作,假设X服务器捕捉到鼠标的左键被按下了,他就告诉X应用程序:亲爱的应用程序先生,我发现鼠标被按下了,您有什么指示吗?如果X应用程序被设计成当按下鼠标左健后再在屏幕上画一个正方形的话,X应用程序就对X服务器说:请再画一个正方形,当然他会告诉服务器在什么地方用什么颜色画多大的正方形,但不关心具体怎么画--那是服务器的事情. 那么协议是需要具体的软件来实现的,这就是下面我要讲的:
三,X和XFree86的关系. 有了协议就需要具体的软件来实现这个协议.就好比我们有了交通法规就需要交警去根据法规维护交通秩序一样.Xfree86就是这样一个去根据法规实现协议的 "交警".他按照X协议的规定来完成X应用程序提交的在屏幕上显示的任务.当然不仅仅是某个特定的交警才可以去维护和实现这个法规,比如还可以由交通协管员来实现交通法规,必要的时候警察也可以介入,当然前提是他们都要懂得交通法规,也就是要懂得协议.所以实现X协议的软件也并不只有XFree86, XFree86只是实现X协议的一个免费X服务器软件.商业上常用MOTIF,现在还有XORG,还有很多很小的由爱好者写的小的X服务器软件.甚至可以在WINDOWS上有X服务器运行,这样你可以在linux系统上运行一个X应用程序然后在另一台windows系统上显示.多么神奇.你可以用 google找到这样的X服务器软件.只不过在LINUX上最常用的是XFree86.(现在的linux发行版都用Xorg了)顺便说一句,苹果电脑的图形界面用的也是X协议,而且被认为是做的最好的X协议图形界面,并且他对X协议的实施是做在系统内核里的,所以性能明显好很多,这就是为什么很多大型三维图形设计软件都是在苹果平台上的原因. 为了便于理解拿HTTP协议来比较: 协议是HTTP (hyper text transmission protocol) 实现这个协议的常用服务器有:apache IIS 等 请求这些服务器传输文件的客户有:IE ,MOZILLA ,NETSCAPE等. 协议是X 实现这个协议的常用服务器有Xfree86 ,Xorg ,Xnest等 请求这些服务器来完成显示任务的客户:所有的X应用程序. 只不过HTTP协议的服务器和客户端通常都在两台不同的电脑(服务器和客户机)之间来实现,所以一般人对这个比较容易理解.而X协议的服务器和客户端程序通常在同一台电脑上,因此很多用户都感到对此很难理解.既然是协议,那么肯定和平台无关的,因此可以让X应用程序显示在任何装有X服务器的远程计算机上.甚至显示在装有Xnest服务器的windows系统上.只不过在大多数情况下,X应用程序都用本机的X服务器,然后X服务器将显示结果输出到本机的显示器.这也是很多人不理解X是一种协议的原因.
四,X和X11R6又是什么关系? 不知道初学者有没有注意到/usr/X11R6这个目录,这是XFree的默认安装目录 X11R6 实际上是 X Protocol version 11 Release 6 (X协议第11版第六次发行)的意思,就是说目前用的X协议是第11版的,然后经过了6次小的修正.不同版本的X协议是不能通信的.就象我们现在IPV4和IPV6不能通信一样,不过不用担心,现在的X服务器软件和X应用程序都遵循X11R6. 另外XFree86 3.3.6 XFree86 4.3.6 等这些版本是实现X协议的软件XFree86的版本号.这是初学者经常高混淆的概念. 协议版本和实现协议的软件的版本--这两个概念的区别你分清楚了吗?
五,X服务器和WM(window manager 窗口管理器)之间是什么关系. 平时大家起动图形界面是怎么启动的呢? 如果你是一开己就进入图形界面那就太遗憾了.应为你错过了了解X服务器起动过程的好时机.不过没关系.你打开一个XTERM输入: init 3 就可以安全的回到字符界面. 好了,等做完以下实验你就完全明白X和WM(window manager 窗口管理器)之间是什么关系了. 先输入以下命令: #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和GNOME KDE 和GNOME是LINUX里最常用的图形界面操作环境,他们不仅仅是一个窗口管理器那么简单, KDE是K Desktop Environment 的缩写.他不仅是一个窗口管理器,还有很多配套的应用软件和方便使用的桌面环境,比如任务栏,开始菜单,桌面图标等等. GNOME是GNU Network Object Model Environment 的缩写.和KDE一样,也是一个功能强大的综合环境. 另外在其它UNIX系统中,常常使用CDE作为这样一个环境. 其它的小型窗口管理器有: window maker,after step,blackbox,fvwm,fvwm2,等等都是常用的优秀窗口管理器.REDHAT9中有 window maker 但是默认不安装,大家可以装来试试.只要xinit再wmaker&就可以用windowmaker了.
七,linux图形界面层次关系总结 linux本身-->X服务器<-[通过X协议交谈]->窗口管理器(综合桌面环境)-->X应用程序.
2009年2月11日星期三
元宵节,中国的情人节
我相信有情人从相见开始,而元宵节恰是相见的节日
回到北京,正是元宵节晚上,总是不安分的我,刚到学校就去前门看灯会了,一路烟火很好,人很多
宿舍,打开收音机,有主持人说元宵节其实更像情人节。突然间,才觉得颇有道理。2.14是西方的经典,但它更属于鲜红的玫瑰,属于热恋的男女。想起多年前,我还很诧异为什么2.14 的广播总播放《没有情人的情人节》。原来,那晚不是所有人的节日。或许西风东进的缘故,七夕作为了中国又一个“洋味儿”的比喻。但是牛郎织女的悲情相思符合了中国人的审美,却见不到半点的温馨。苦情的事,可以面对,不要索取。想来,还真是元宵节好,人头攒动,佳人才子,灯光照亮了脸颊,灯谜着色了才情。美丽的心情,人群中那命中的知音人若隐若现身影,偶遇,对了,一定的偶遇,这位小姐,这位公子,欠身,点头,行礼,眼神,微笑,一见钟情。记起辛弃疾的词来,众里寻他千百度,蓦然回首,那人却在灯火阑珊处。
元宵节的晚上,我相信,有情人从相见开始
回到北京,正是元宵节晚上,总是不安分的我,刚到学校就去前门看灯会了,一路烟火很好,人很多
宿舍,打开收音机,有主持人说元宵节其实更像情人节。突然间,才觉得颇有道理。2.14是西方的经典,但它更属于鲜红的玫瑰,属于热恋的男女。想起多年前,我还很诧异为什么2.14 的广播总播放《没有情人的情人节》。原来,那晚不是所有人的节日。或许西风东进的缘故,七夕作为了中国又一个“洋味儿”的比喻。但是牛郎织女的悲情相思符合了中国人的审美,却见不到半点的温馨。苦情的事,可以面对,不要索取。想来,还真是元宵节好,人头攒动,佳人才子,灯光照亮了脸颊,灯谜着色了才情。美丽的心情,人群中那命中的知音人若隐若现身影,偶遇,对了,一定的偶遇,这位小姐,这位公子,欠身,点头,行礼,眼神,微笑,一见钟情。记起辛弃疾的词来,众里寻他千百度,蓦然回首,那人却在灯火阑珊处。
元宵节的晚上,我相信,有情人从相见开始
订阅:
博文 (Atom)