You are currently browsing the 博百优 | yaozer 博客 blog archives for 5月, 2009.

Archive for 5月, 2009

Linux桌面两大阵营 GNOME与KDE的战争

星期日, 5月 31st, 2009

写的真精彩,来源: http://tech.ccidnet.com/art/738/20060404/496321_1.html

虽然在商业方面存在竞争,GNOME与KDE两大阵营的开发者关系并没有变得更糟,相反他们都意识到支持对方的重要性—如果KDE和GNOME无法实现应用程序的共享,那不仅是巨大的资源浪费,而且将导致Linux出现根本上的分裂。

KDE 与GNOME是目前Linux/UNIX系统最流行的图形操作环境。从上个世纪九十年代中期至今,KDE和GNOME都经历了将近十年的漫漫历程,两者也 都从最初的设计粗糙、功能简陋发展到相对完善的阶段,可用性逼近Windows系统。图形环境的成熟也为Linux的推广起到至关重要的作用,尽管 Linux以内核健壮、节省资源和高质量代码著称,但缺乏出色的图形环境让它一直难以在桌面领域有所作为,导致Linux桌面应用一直处于低潮。如果大家 还有印象,一定会记得1999-2001年间Linux发展如火如荼,当时国内涌现出大量的Linux发行版厂商,但当用户发现Linux距离实用化还有 十万八千里的时候,Linux热潮迅速冷却。业界也对此一度灰心失望,其中一部分厂商因无法盈利迅速销声匿迹,另一部分厂商则不约而同将重点放在服务器市 场—与桌面市场形成鲜明对比的是,Linux以稳定可靠和低成本的优势在服务器领域获得了巨大的成功。

在一些Linux厂商放弃 桌面化努力的同时,国际开源社群却不断发展壮大,自由的理念吸引越来越多一流的程序员参与。与商业模式不同,自由软件程序员在开始时都只是利用业余时间开 发自己感兴趣的东西,并将其自由公开,这是一种不折不扣的贡献行为。尽管开发进度缓慢,但认同自由软件理念的开发者越来越多,一个个开源项目逐渐发展壮 大。

在此期间一个被人忽视的重大事件就是商业巨头也积极参与进来,IBM、RedHat、SuSE、Ximian、 Novell、SUN、HP等商业公司都直接介入各个开源项目,这些企业或者是将自身的成果免费提供给开源社群,或者直接派遣程序员参与项目的实际开发工 作,例如SuSE(现已为Novell收购)在KDE项目上做了大量的工作,RedHat、Ximian(现已为Novell收购)则全程参与Gnome 项目,IBM为Linux提供了大量的基础性代码,是推进Linux进入服务器领域的主要贡献者,SUN公司则将StarOffice赠送给开源社群,并 资助成立著名的OpenOffice.org项目。这样,大量的自由软件程序员都可以从各个项目的基金会中领到薪水。在这一阶段,开源项目摆脱了程序员业 余开发的模式,而由高水平的专职程序员主导,这也成为各个自由软件项目的标准协作模式。与商业软件公司不同,自由软件项目的参与者都是首先为个人兴趣而工 作,他们的共同目标都是拿出品质最好的软件,在协作模式稳定成形之后,各个软件就进入到发展的快行道。进入2005年后,这些项目基本上都获得了丰硕的成 果,其中最突出的代表就是Firefox浏览器的成功,而作为两大图形环境,KDE和GNOME分别发展到3.5和2.12版本,两者的可用性完全可以媲 美Windows。更重要的是,开源社群的发展壮大为这些项目的未来发展奠定了坚实的基础:KDE项目将超越Windows作为自己的目标,力量更强大的 GNOME项目更是将开发目标定在超越Mac OS X的Aqua图形环境;Firefox则计划运用GPU的硬件资源来渲染图像,达到大幅度提高速度的目的;OpenOffice.org在努力提升品质的 同时奠定了开放文档格式标准。除了上述主要项目之外,我们也看到如Mplayer播放器、Xine播放器、Thunderbird邮件客户端、SCIM输 入平台等其他开源项目也在快速发展成熟之中,且几乎每一天都有新的项目在诞生。有意思的是,除了涉及到软件开发外,还出现了为Linux设计视觉界面的开 放协作项目,全球各地有着共同目标的艺术家通过互联网组织到一起,共同为Linux系统设计一流的视觉界面、系统图标,而所有的自由软件程序员都有一个共 同的目标,那就是开发出一流水准的软件提供给大众使用。这种基于挑战自我、带有浓烈精神色彩的软件开发模式成为商业软件之外的另外一极。现在,微软面对的 并不是那些只在业余时间鼓捣代码的程序员,而是分布在全球各地、数量庞大、且拥有一流技术水平的开发者,这些开发者被有效地组织起来,形成一个个有序的协 作团队,大量实力雄厚的商业公司在背后提供支持。虽然今天的Linux系统还无法在桌面领域被广为接纳,但只需要两、三年时间,高速进化的Linux平台 将可达到全面进军桌面的水准,也正是看到其中的机会,Novell、RedHat等重量级Linux企业都不断在技术和市场推广方面加大投入,Linux 桌面化近在咫尺。

在介绍完必要的背景之后,我们将进入关于KDE与GNOME的技术专题。如果你是刚刚接触Linux的新手,一 定会对KDE和GNOME感到困惑不已—为何会有两个功能重复、操作习惯迥异的图形环境?这不仅麻烦也耗费开发者精力。通过本文,你将获得清晰的答案。而 更重要的是,我们将在本文中向大家介绍KDE与GNOME的实际水平、各自的优点和未来发展趋势。如果你对Linux桌面应用有些兴趣,那么未来的 KDE/GNOME一定会让你感到震惊不已。

X Window打造桌面环境

在介绍KDE和Gnome之前,我们 有必要先来介绍UNIX/Linux图形环境的概念。对一个习惯Windows的用户来说,要正确理解UNIX/Linux的图形环境可能颇为困难,因为 它与纯图形化Windows并没有多少共同点。Linux实际上是以UNIX为模板的,它继承了UNIX内核设计精简、高度健壮的特点,无论系统结构还是 操作方式也都与UNIX无异。简单点说,你可以将Linux看成是UNIX类系统中的一个特殊版本。我们知道,微软Windows在早期只是一个基于 DOS的应用程序,用户必须首先进入DOS后再启动Windows进程,而从Windows 95开始,微软将图形界面作为默认,命令行界面只有在需要的情况下才开启,后来的Windows 98/Me实际上也都隶属于该体系。但在Windows 2000之后,DOS被彻底清除,Windows成为一个完全图形化的操作系统。但UNIX/Linux与之不同,强大的命令行界面始终是它们的基础,在 上个世纪八十年代中期,图形界面风潮席卷操作系统业界,麻省理工学院(MIT)也在1984年与当时的DEC公司合作,致力于在UNIX系统上开发一个分 散式的视窗环境,这便是大名鼎鼎的“X Window System”项目。不过,X Window(请注意不是X Windows)并不是一个直接的图形操作环境,而是作为图形环境与UNIX系统内核沟通的中间桥梁,任何厂商都可以在X Window基础上开发出不同的GUI图形环境。MIT和DEC的目的只在于为UNIX系统设计一套简单的图形框架,以使UNIX工作站的屏幕上可显示更 多的命令,对于GUI的精美程度和易用程度并不讲究,毕竟那时候能够熟练操作UNIX的都是些习惯命令行的高手,根本不在乎GUI存在与否。1986 年,MIT正式发行X Window,此后它便成为UNIX的标准视窗环境。紧接着,全力负责发展该项目的X协会成立,X Window进入了新阶段。与此同步,许多UNIX厂商也在X Window原型上开发适合自己的UNIX GUI视窗环境,其中比较著名的有SUN与AT&T联手开发的“Open Look”、IBM主导下的OSF(Open Software Foundation,开放软件基金会)开发出的“Motif”。而一些爱好者则成立了非营利的XFree86组织,致力于在X86系统上开发X Window,这套免费且功能完整的X Window很快就进入了商用UNIX系统中,且被移植到多种硬件平台上,后来的Linux也直接从该项目中获益。当然,这些早期的X Window环境都设计得很简单,许多GUI元素模仿于微软的Windows,但X Window拥有一个小小的创新:当鼠标指针移动到某个窗口时,该窗口会被自动激活,用户无需点击便能够直接输入,简化了用户操作—这个特性在后来的 KDE和Gnome中也都得到完整的继承。

由于必须以UNIX系统作为基础,X Window注定只能成为UNIX上的一个应用,而不可能与操作系统内核高度整合,这就使得基于X Window的图形环境不可能有很高的运行效率,但它的优点在于拥有很强的设计灵活性和可移植性。X Window从逻辑上分为三层:最底层的X Server(X服务器)主要处理输入/输出信息并维护相关资源,它接受来自键盘、鼠标的操作并将它交给X Client(X客户端)作出反馈,而由X Client传来的输出信息也由它来负责输出;最外层的X Client则提供一个完整的GUI界面,负责与用户的直接交互(KDE、Gnome都是一个X Client),而衔接X Server与X Client的就是“X Protocol(X通讯协议)”、它的任务是充当这两者的沟通管道。尽管UNIX厂商采用相同的X Window,但由于终端的X Client并不相同,这就导致不同UNIX产品搭配的GUI界面看起来非常不一样。

图1 X Window系统架构示意图KDE项目的发起

MIT 的X Window推出之后就成为UNIX图形界面的标准,但在商业应用上分为两大流派:一派是以Sun公司领导的Open Look阵营,一派是IBM/HP领导的OSF(Open Software Foundation)的Motif,双方经过多年竞争之后,Motif最终获得领先地位。不过,Motif只是一个带有窗口管理器(Window- Manager)的图形界面库(Widget-Library),而非一个真正意义上的GUI界面。经过协商之后IBM/HP与SUN决定将Motif与 Open Look整合,并在此基础上开发出一个名为“CDE(Common Desktop Environment) ”的GUI作为UNIX的标准图形界面。 遗憾的是,Motif/CDE和UNIX系统的价格都非常昂贵,而当时微软的Windows发展速度惊人并率先在桌面市场占据垄断地位,CDE则一直停留 在UNIX领域提供给root系统管理员使用,直到今天情况依然如此。

图2 KDE 1.0尽管设计粗糙,但它奠定了整个KDE项目的基础。

在 上个世纪九十年代中期,以开源模式推进的Linux在开发者中已经拥有广泛的影响力。尽管X Window已经非常成熟,也有不少基于X Window的图形界面程序,但它们不是未具备完整的图形操作功能就是价格高昂(如CDE),根本无法用于Linux系统中。如果Linux要获得真正意 义上的突破,一套完全免费、功能完善的GUI就非常必要。1996年10月,图形排版工具Lyx的开发者、一位名为Matthias Ettrich的德国人发起了KDE(Kool Desktop Environment)项目,与之前各种基于X Window的图形程序不同的是,KDE并非针对系统管理员,它的用户群被锁定为普通的终端用户,Matthias Ettrich希望KDE能够包含用户日常应用所需要的所有应用程序组件,例如Web浏览器、电子邮件客户端、办公套件、图形图像处理软件等等,将 UNIX/Linux彻底带到桌面。当然,KDE符合GPL规范,以免费和开放源代码的方式运行。

KDE项目发起后,迅速吸引了 一大批高水平的自由软件开发者,这些开发者都希望KDE能够将Linux系统的强大能力与舒适直观的图形界面联结起来,创建最优秀的桌面操作系统。经过艰 苦卓绝的共同努力,KDE 1.0终于在1998年的7月12日正式推出。以当时的水平来说,KDE 1.0在技术上可圈可点,它较好的实现了预期的目标,各项功能初步具备,开发人员已经可以很好地使用它了。当然,对用户来说,KDE 1.0远远比不上同时期的Windows 98来得平易近人,KDE 1.0中大量的Bug更是让人头疼。但对开发人员来说,KDE 1.0的推出鼓舞人心,它证明了KDE项目开源协作的开发方式完全可行,开发者对未来充满信心。有必要提到的是,在KDE 1.0版的开发过程中,SuSE、Caldera等Linux商业公司对该项目提供资金上的支持,在1999年,IBM、Corel、RedHat、富士 通-西门子等公司也纷纷对KDE项目提供资金和技术支持,自此KDE项目走上了快速发展阶段并长期保持着领先地位。但在2004年之后,GNOME不仅开 始在技术上超越前者,也获得更多商业公司的广泛支持,KDE丧失主导地位,其原因就在于KDE选择在Qt平台的基础上开发,而Qt在版权方面的限制让许多 商业公司望而却步。

Qt是一个跨平台的C++图形用户界面库,它是挪威TrollTech公司的产品。基本上,Qt同X Window上的 Motif、Open Look、GTK等图形界面库和Windows平台上的 MFC、OWL、VCL、ATL是同类型的东西,但Qt具有优良的跨平台特性(支持Windows、Linux、各种UNIX、OS390和QNX等)、 面向对象机制以及丰富的API,同时也可支持2D/3D渲染和OpenGL API。在当时的同类图形用户界面库产品中,Qt的功能最为强大,Matthias Ettrich在发起KDE项目时很自然选择了Qt作为开发基础,也正是得益于Qt的完善性,KDE的开发进展颇为顺利,例如Netscape5.0在从 Motif移植到Qt平台上仅仅花费了5天时间。这样,当KDE 1.0正式发布时,外界看到的便是一个各项功能基本具备的GUI操作环境,且在后来的发展中,Qt/KDE一直都保持领先优势。有必要提到的 是,TrollTech公司实质性参与了KDE项目,如前面提到Netscape 5.0 的移植工作就是由TrollTech的程序员完成,而KDE工程的发起者、Matthias Ettrich本人也在1998年离开学术界加入TrollTech,并一直担任该公司的软件开发部主管,因此TrollTech公司对于KDE项目拥有 非常强的影响力(当然不能说绝对掌握,毕竟KDE开发工作仍然是由自由程序员协作完成的)。我们前面提到,KDE采用GPL规范进行发行,但底层的基础 Qt却是一个不遵循GPL的商业软件,这就给KDE上了一道无形的枷锁并带来可能的法律风险。一大批自由程序员对KDE项目的决定深为不满,它们认为利用 非自由软件开发违背了GPL的精神,于是这些GNU的狂热信徒兵分两路:其中一部分人去制作Harmonny,试图重写出一套兼容Qt的替代品,这个项目 虽然技术上相对简单,但却没有获得KDE项目的支持;另一路人马则决定重新开发一套名为“GNOME(GNU Network Object Environment)”的图形环境来替代KDE,一场因为思想分歧引发的GUI之战开始了。

图3 Qt是整个KDE的基础,它采用双重授权。GNOME与KDE交替发展

GNOME 项目于1997年8月发起,创始人是当时年仅26岁的墨西哥程序员Miguel De Icaza。关于GNOME的名称有一个非常有趣的典故:Miguel到微软公司应聘时对它的ActiveX/COM model颇有兴趣,GNOME(Network Object Model )的名称便从此而来。GNOME选择完全遵循GPL的GTK图形界面库为基础,因此我们也一般将GNOME和KDE两大阵营称为GNOME/GTK和 KDE/Qt。与Qt基于C++语言不同,GTK采用较传统的C语言,虽然C语言不支持面向对象设计,看起来比较落后,但当时熟悉C语言的开发者远远多于 熟悉C++的开发者。加之GNOME/GTK完全遵循GPL版权公约,吸引了更多的自由程序员参与,但由于KDE先行一步,且基础占优势,一直都保持领先 地位。1999年3月,GNOME 1.0在匆忙中推出,稳定性奇差无比,以至于许多人笑称GNOME 1.0还没有KDE 1.0 Alpha稳定,而同期的KDE 1.1.2无论在稳定性还是功能上都远胜于GNOME,直到10月份推出的GNOME 1.0.55版才较好解决了稳定性问题,给GNOME重新赢回声誉。由于思想分歧,当时GNOME的开发者与KDE的开发者在网络上吵得天翻地覆,几乎达 到相互仇视的地步。但不管怎么说,GNOME都跌跌撞撞迈出了第一步,尽管那时KDE几乎是所有Linux发行版默认的桌面环境。

图5 KDE2.0拥有丰富的应用软件,实力明显超过GNOME。

GNOME 的转机来自于商业公司的支持。当时Linux业界的老大RedHat很不喜欢KDE/Qt的版权,在GNOME项目发起后RedHat立刻对其提供支持。 为了促进GNOME的成熟,RedHat甚至专门派出几位全职程序员参与GNOME的开发工作,并在1998年1月与GNOME项目成员携手成立了 RedHat高级开发实验室。1999年4月,Miguel与另一名GNOME项目的核心成员共同成立Helix Code公司为GNOME提供商业支持,这家公司后来更名为Ximian,它事实上就成为GNOME项目的母公司,GNOME平台上的Evolution 邮件套件便出自该公司之手。进入2000年之后,一系列重大事件接连发生,首先,一批从苹果公司出来的工程师成立Eazel公司,为GNOME设计用户界 面和Nautilus(鹦鹉螺)文件管理器。同年8月,GNOME基金会在Sun 、RedHat、Eazel、Helix Code(Ximian)的共同努力下正式成立,该基金会负责GNOME项目的开发管理以及提供资金,Miguel本人则担任基金会的总裁。此 时,GNOME获得许多重量级商业公司的支持,如惠普公司采用GNOME作为HP-UX系统的用户环境,SUN则宣布将StarOffice套件与 GNOME环境相整合,而GNOME也将选择OpenOffice.org作为办公套件,IBM公司则为GNOME共享了SashXB极速开发环境。同 时,GNOME基金会也决定采用Mozilla作为网页浏览器。KDE阵营也毫不示弱,在当年10月份推出万众瞩目的KDE 2.0。KDE 2.0堪称当时最庞大的自由软件,除了KDE平台自身外,还包括Koffice办公套件、Kdevelop集成开发环境以及Konqueror网页浏览 器。尽管这些软件都还比较粗糙,但KDE 2.0已经很好实现了Matthias Ettrich成立KDE项目的目标。也是在这个月,TrollTech公司决定采用GPL公约来发行Qt的免费版本,希望能够以此赢得开发者的支持。这 样,Qt实际上就拥有双重授权:如果对应的Linux发行版采用免费非商业性的方式进行发放,那么使用KDE无须向TrollTech交纳授权费用;但如 果Linux发行版为盈利性的商业软件,那么使用KDE时必须获得授权。由于TrollTech是商业公司且一直主导着KDE的方向,双许可方式不失为解 决开源与盈利矛盾的好办法。TrollTech宣称,双许可制度彻底解决了KDE在GPL公约方面的问题,但RedHat并不喜欢,RedHat不断对 GNOME项目提供支持,希望它能够尽快走向成熟,除RedHat之外的其他Linux厂商暂时都站在KDE这一边,但他们同时也在发行版中捆绑了 GNOME桌面。

在2001-2002年,火热一时的Linux运动开始陷入低潮期,几乎所有的厂商都发现桌面Linux版本不 可能盈利,而易用性的不足也让业界不看好Linux进入桌面的前途。但在服务器市场,Linux发展势头非常迅猛,直接对UNIX和Windows Server造成威胁。不过,秉承自由软件理念的开发者们并不理会外界的论调,他们一直将Linux桌面化作为目标,GNOME项目和KDE项目都在这期 间获得完善发展。2001年4月,GNOME 1.4发布,它修正了之前版本的Bug,功能也较为完善,但在各方面与KDE依然存在差距;同年8月,KDE发展到2.2版本。2002年4月,KDE跳 跃到3.0版本,它以Qt 3.0为基础,各项功能都颇为完备,具备卓越的使用价值;两个月后,GNOME阵营也推出2.0版本,它基于更完善的GTK 2.0图形库。进入到2003年后,KDE与GNOME进入真正意义上的技术较量。1月份,KDE 3.1推出,而GNOME 2.4则在随后的2月份推出,两大平台都努力进行自我完善。也是在这一年,Linux商业界出现一系列重大的并购案:1月份,Novell公司宣布收购德 国的SuSE Linux,而SuSE Linux是地位仅次于RedHat的全球第二大Linux商业企业;8月,Novell接着将GNOME的母公司Ximian收归旗下。这两起并购案让 Novell成为实力与RedHat不相上下的强大Linux企业,而Novell和RedHat就成为能够影响Linux未来的两家企业。在图形环境 上,SuSE一向选择KDE,并在KDE身上投入相当多的精力,在被Novell并购后,SuSE的桌面发行版尽管还侧重于KDE,但同样不喜欢Qt授权 的Novell已经开始向GNOME迁移。

图4 GTK库是GNOME项目的基础,它完全采用GPL授权因此获得广泛支持。GNOME获得商业公司的支持

进 入2004年后,KDE与GNOME依然保持快速发展,KDE阵营分别在2月份和8月份推出3.2、3.3版本,GNOME则在3月和9月推出2.6和 2.8,两者的版本升级步幅旗鼓相当。到3.3版本的KDE已经非常成熟,它拥有包括KOffice、Konqueror浏览器、Kmail套件、KDE 即时消息在内的一大堆应用软件,且多数都达到可用标准,功能上完全不亚于Windows 2000。而GNOME更是在此期间高速发展,GNOME 2.8版本的水准完全不逊于KDE 3.3,而且此时两者的技术特点非常鲜明:GNOME讲究简单、高效,运行速度比KDE更快;KDE则拥有华丽的界面和丰富的功能,使用习惯也与微软 Windows较类似。商业支持方面,RedHat还是GNOME的铁杆支持者,IBM、SUN、Novell、HP等重量级企业也都选择GNOME,而 KDE的主要支持者暂时为SuSE、Mandrake以及中科红旗、共创开源在内的国内发行商。2005年,厚积薄发的GNOME开始全面反超,3月份的 2.10、9月份的2.12让GNOME获得近乎脱胎换骨的变化,加之OpenOffice.org 2.0、Firefox 1.5等重磅软件的出台让GNOME如虎添翼;KDE方面则分别在3月和11月推出3.4和3.5,其中KDE 3.5也逼近完美境地,我们认为它的水平与GNOME 2.12不相伯仲。但KDE在商业支持方面每况愈下,Novell在11月宣布旗下所有的商业性发行版将使用GNOME作为默认桌面(仍会对KDE Libraries提供支持),SuSE Linux桌面版则会对KDE与GNOME提供同等支持,而社区支持的OpenSuSE仍将使用KDE体系—但谁都明白GNOME将成为Novell的重 心,KDE只是活跃在免费的自由发行版中。

图7 KDE3.5可实现半透明和阴影效果,界面华丽、软件丰富。

到 这里,我们发现一个颇富戏剧性的结局:致力于商业化的KDE反而失去了重量级商业企业的支持,尽管一些中小规模的Linux企业因技术能力问题将继续支持 KDE,但它的商业前途有限。而遵循GPL、完全不以商业化为目的的GNOME反而在该领域大获成功。许多Linux发烧友都不明白为什么优秀的KDE会 受到如此待遇,其实道理非常简单—没有哪一家重量级企业喜欢受制于人,也许KDE的Qt不需要很多授权费,但谁知道TrollTech公司以后会不会漫天 要价?既然有免费的GNOME可以选择,那为什么不呢?基于此种理由,RedHat、Novell两家最大的Linux企业和SUN都采用GNOME,而 它们对GNOME的鼎力支持也让该项目可拥有足够多的技术保证,为今后的高速发展奠定坚实的基础。需要纠正一个可能的误解,虽然Novell收购了 Ximian,但RedHat并没有受到太大影响,双方对GNOME的贡献都是相互共享的,因为GNOME以GPL自由版权公约发行,合作即共赢。至于 KDE项目,虽然它失去这些商业巨头的支持,但没有能力转换桌面的中小Linux厂商将继续追随KDE,而且在非商业的社区Linux发行版中,KDE依 然有强大的生命力。

图6 GNOME 1.4解决了稳定性问题,功能初步完善。

虽 然在商业方面存在竞争,GNOME与KDE两大阵营的开发者关系并没有变得更糟,相反他们都意识到支持对方的重要性。如果KDE和GNOME无法实现应用 程序的共享,那不仅是巨大的资源浪费,而且将导致Linux出现根本上的分裂。事实上,无论是GNOME的开发者还是KDE的开发者,他们都有着共同的目 标,就是为Linux开发最好的图形环境,只是因为理念之差而分属不同的阵营。KDE与GNOME的商业竞争对开发者们其实没有任何利益影响(只有 TrollTech会受影响),基于共同的目的,KDE与GNOME阵营大约从2003年开始逐渐相互支持对方的程序—只要你在KDE环境中安装GTK 库,便可以运行GNOME的程序,反之亦然。经过两年多的努力,KDE和GNOME都已经实现高度的互操作性,两大平台的程序都是完全共享的,例如你可以 在GNOME中运行Konqueror浏览器、Koffice套件,也可以在KDE中运行Evolution和OpenOffice.org,只不过执行 本地程序的速度和视觉效果会好一些。在未来一两年内,KDE和GNOME将进行更高等级的融合,但两者大概永远都不会合为一体—GNOME还是 GNOME,KDE也还是KDE。或许你觉得这是浪费开发资源而且很可能让用户无从选择,但我们告诉你这就是Linux,它与Windows和Mac OS X有着绝然不同的文化。更何况全球有越来越多自由软件开发者(所以不必担心浪费开发资源),Linux用户的使用偏好也不可能总是相同,保持两个并行发展 的图形环境项目没有什么不妥。至于GNOME项目和KDE项目的开发者们,曾经因为理念不同而吵得天翻地覆,但他们现在尽释前嫌,因为所有人都意识到,他 们其实彼此需要,团结在一起可以让他们在硬件厂商面前有更大的发言权,从而促使厂商在推出Windows驱动的同时也提供相应的Linux版本,而且彼此 可以相互借鉴优秀的设计,确保Linux拥有一个最出色的图形桌面环境。

图8 GNOME 2.12保持惯有的简洁和高效KDE与GNOME走向融合

2006 年,GNOME与KDE都站在一个全新的起点,获得商业公司和更多自由程序员支持的GNOME踌躇满志,将超越的目光放在Mac OS X系统。也许你认为Windows Vista的半透明和三维界面将Linux远远抛在后面,那么我们告诉你这是绝对的误解,GNOME目前已经可以实现类似的效果,Novell在前几个月 就向外界作过详细的演示。当前的KDE也可支持相当不错的半透明和阴影特效,技术上毫不落后于GNOME。现在,GNOME项目朝向革命性的3.0版本迈 进,KDE则致力于开发同样有重大技术变革的4.0,这两个成果大概在2007年可进入现实,届时Linux系统将具备更卓越的可用性。也就是 说,Linux桌面应用的全面铺开指日可待,而除了开发者和厂商的努力外,如何向企业和个人用户推广以及提供培训将是厂商要考虑的主要问题,我们今天恰好 站在这样的一道门槛上。

分享家:Addthis中国

让 centos 在同一窗口中打开文件夹

星期日, 5月 31st, 2009

centos默认的gnome nautilus打开文件夹时,总是另开一个新窗口显示,大部分都不会习惯吧?
勾选 Edit -> Preferences -> Behavior -> Always open in browser windows , 就可以了。

而在ubuntu中, 这个是默认勾选的, 从这个小细节可以看出, centos 确实不太重视桌面应用。

分享家:Addthis中国

大型网站在用什么web服务器?Apache, nginx, lighttpd?

星期六, 5月 30th, 2009

Apache, nginx (发音 engine x), lighttpd ( 发音 lighty) 是主流的web server, 大型网站都在用哪些web 服务器? yaozer做了个简单的调查, 可以发现: Apache 目前还是占据主导地位, 但是nginx有异军突起之势,大型网站新上线的网站开始渐渐使用nginx了。 而 Microsoft-IIS 和 lighttpd 在大型网站中使用较少。

1.门户网站类:

www.sina.com Apache/2.0.54 (Unix)
blog.sina.com.cn nginx/0.6.36

www.sohu.com Apache
blog.sohu.com nginx
map.sougou.com Apache/2.2.4 (Unix) DAV/2 PHP/5.2.6

www.163.com nginx/0.6.36
news.163.com nginx/0.7.59

www.qq.com Apache

www.aol.com Apache-Coyote/1.1
www.bbc.com Apache
www.cnn.com Apache

2 搜索引擎类
www.baidu.com BWS/1.0
tieba.baidu.com apache 2.7.17.0
news.baidu.com apache2.0.29.0
zhidao.baidu.com apache 1.1.1.0
mp3.baidu.com apache 1.6.14.0
image.baidu.com apache 1.7.16.0
video.baidu.com apache 1.0.5.0

www.google.com gws
mail.google.com GFE/1.3
reader.google.com gws
maps.google.com mfe
docs.google.com GFE/2.0

3 视频网站类
www.tudou.com Apache
www.youku.com Apache
www.6.cn nginx/0.7.21

4 其他
www.hotmail.com Microsoft-IIS/6.0
www.msn.com Microsoft-IIS/6.0

www.cnbeta.com nginx/0.6.35
www.javaeye.com lighttpd/1.4.20
www.csdn.com.cn Microsoft-IIS/6.0

www.joomla.org Apache/2.0.63 (Unix) mod_ssl/2.0.63 OpenSSL/0.9.7a mod_bwlimited/1.4 PHP/5.2.6
www.magentocommerce.com nginx/0.6.36

www.yaozer.cn Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.6 with Suhosin-Patch mod_ssl/2.2.8 OpenSSL/0.9.8g

分享家:Addthis中国

如何成为CNNIC域名注册服务机构及域名注册服务机构申请书

星期六, 5月 30th, 2009

来源 : http://vnet.yesky.com/tech/internet/348/8309848.shtml

1、 如何成为CN域名注册服务机构?

1)申请者向CNNIC寄交盖有申请者公章的《CNNIC域名注册服务机构申请书》原件及相关申请材料。

2)CNNIC在收到申请材料5日内对申请材料进行格式审查,并通过电子邮件或电话通知申请者格式审查结果。申请表通过格式审查,申请者应当在接到通知后向CNNIC交纳一次性资格审查费人民币5,000元。

3)CNNIC收到资格审查费之后,将在30日内完成对申请者情况的资格审查,必要的情况下将赴申请者办公地考察。资格审查完成后CNNIC将通过电子邮件或电话通知申请者资格审查的结果,即通知申请者是否获得CNNIC注册服务机构认证资格。无论申请者是否能够获得CNNIC注册服务机构认证资格,已交纳的资格审查费将不予退回。

4)对于通过资格审查的申请者,CNNIC将通过电子邮件发送《服务认证协议》和《技术许可协议》。

5)通过资格审查的申请者,应当将《服务认证协议》和《技术许可协议》打印两份后并分别加盖单位公章,将协议原件寄至CNNIC,并同时向CNNIC交纳年费人民币20,000元,该年费将用于CNNIC为注册服务机构提供技术支持、会务、培训等相关服务项目。

6)CNNIC将在收到协议原件及年费后的3个工作日内将加盖CNNIC公章的协议邮寄给申请者。至此,申请者获得CNNIC域名注册服务机构认证资格。

7)当收到申请者交纳的年费后,CNNIC将通过电子邮件寄送相关技术文档。申请者应当向CNNIC提供用于接入注册系统的用户名和密码。 CNNIC收到后将通知申请者在CNNIC测试平台进行连接测试。测试成功后,CNNIC安排专人对申请者进行相关业务的综合培训和指导。

8)正式提供注册服务前,申请者应当根据协议要求准备注册界面、用户在线注册协议,提供whois查询,并学习了解有关管理规定。

9)申请者应当于开始提供注册服务前2个工作日通知CNNIC,CNNIC将把申请者信息加入CNNIC网站中公布的认证注册服务机构列表中。至此,注册服务机构认证程序全部完成,注册服务机构可以正式开始对外提供注册服务。

10)海外注册服务机构的申请:

如果您希望在海外提供cn域名的注册服务,请与CNNIC海外合作伙伴NEUSTAR公司联系:

网址:www.neustar.com.cn

联系人:FERNANDO ESPANA

电子邮件:fernando.espana@neulevel.biz

2、如何成为中文域名注册商?

1)申请者向CNNIC寄交盖有申请者公章的《CNNIC域名注册服务机构申请书》原件及相关申请材料。

2) CNNIC在收到申请材料5日内对申请材料进行格式审查,并通过电子邮件或电话通知申请者格式审查结果。申请表通过格式审查,申请者应当在接到通知后向CNNIC交纳一次性资格审查费人民币5,000元。

3) CNNIC收到资格审查费之后,将在30日内完成对申请者情况的资格审查,必要的情况下将赴申请者办公地考察。资格审查完成后CNNIC将通过电子邮件或电话通知申请者资格审查的结果,即通知申请者是否获得CNNIC注册服务机构认证资格。无论申请者是否能够获得CNNIC注册服务机构认证资格,已交纳的资格审查费将不予退回。

4)对于通过资格审查的申请者,CNNIC将通过电子邮件发送《服务认证协议》和《技术许可协议》。

5)通过资格审查的申请者,应当将《服务认证协议》和《技术许可协议》打印两份后并分别加盖单位公章,将协议原件寄至CNNIC,并同时向CNNIC交纳年费人民币20,000元,该年费将用于CNNIC为注册服务机构提供技术支持、会务、培训等相关服务项目。

6) CNNIC将在收到协议原件及年费后的3个工作日内将加盖CNNIC公章的协议邮寄给申请者。至此,申请者获得CNNIC域名注册服务机构认证资格。

7)当收到申请者交纳的年费后,CNNIC将通过电子邮件寄送相关技术文档。申请者应当向CNNIC提供用于接入注册系统的用户名和密码。 CNNIC收到后将 通知申请者在CNNIC测试平台进行连接测试。测试成功后,CNNIC安排专人对申请者进行相关业务的综合培训和指导。

8)正式提供注册服务前,申请者应当根据协议要求准备注册界面、用户在线注册协议,提供whois查询,并学习了解有关管理规定。

9)申请者应当于开始提供注册服务前2个工作日通知CNNIC,CNNIC将把申请者信息加入CNNIC网站中公布的认证注册服务机构列表中。至此,注册服务机构认证程序全部完成,注册服务机构可以正式开始对外提供注册服务。

10)海外注册服务机构的申请:

如果您希望在海外提供cn域名的注册服务,请与CNNIC海外合作伙伴NEUSTAR公司联系:

网址:www.neustar.com.cn

联系人:FERNANDO ESPANA

电子邮件:fernando.espana@neulevel.biz

CNNIC联系方式:

网站地址:http://www.cnnic.cn

电 话:010-58813099

传 真:010-58812666-126

电子邮件:accredit@cnnic.net.cn

来访地址:北京中关村南四街四号中国科学院软件园1号楼1层

邮政地址:北京349信箱6分箱

邮政编码:100190

附录:

中国互联网络信息中心
域名注册服务机构申请书

《域名注册服务机构申请书》是按照《中国互联网络信息中心域名注册服务机构认证办法》而制定。中国互联网络信息中心每年都进行新一批域名注册服务机构的认证。

一、注册服务机构申请说明

(一)申请CNNIC国家顶级域名注册服务机构材料:
请仔细阅读、填写《域名注册服务机构申请书》,并加盖单位公章。
一份完整的CNNIC认证注册服务机构申请材料包括:
1.详细回答后并加盖申请单位公章的《域名注册服务机构申请书》;
2.申请单位营业执照的副本的复印件;
3.从事经营互联网信息服务许可证或者备案证明;
4.提供长期服务能力证明(包括但不限于企业财产保险或其他相关材料)。

(二)申请书递交地址与方式:
1.来访地址:
北京中关村南四街四号
中国科学院软件园1号楼中国互联网络信息中心域名及可信网络服务事业部

2.邮政地址:
北京349信箱6分箱CNNIC域名及可信网络服务事业部
邮编:100190

3.可以先通过电子邮件或者传真的形式递交《域名注册服务机构申请书》,然后再根据CNNIC的通知递交正式申请书

(三)认定处理:

CNNIC接到申请单位的申请材料后,将会进行必要的审核。CNNIC将根据申请单位就《域名注册服务机构申请书》中所列问题进行的回答并综合其它因素,来判断申请单位是否能符合《域名注册服务机构认证办法》中的基本条件,此外还将就申请单位所在的地区分布等因素进行综合考虑。申请单位应当保证《域名注册服务机构申请书》中全部内容的真实性和准确性。如有不实之处,CNNIC将停止接受此单位的申请,或取消该单位已经获得的CNNIC认证注册服务机构资格。

二、域名注册服务机构申请书
(一)基本信息:
1.申请单位信息
单位名称(中文):
(英文):
单位负责人:
单位现有员工人数:
通信地址(中文):
(英文):
邮政编码:
单位所在地点:
网络IP地址范围:
主 页:
域名服务器地址:

2.联系人信息
姓名(中文):
(英文):
单位名称(中文):
(英文):
通信地址(中文):
(英文):
邮政编码:
电话:
传真:
电子邮件:

3.申请单位主要技术人员情况列表(此表的行数可以根据需要增加)

姓名
职务
职称
文化程度
专业
E-mail地址

4.申请客户服务人员情况列表(此表的行数可以根据需要增加)

姓名
职务
职称
文化程度
专业
E-mail地址

5.客户服务专用电话号码
专用电话号码:
值班时间:

(二)营业情况:
6.从事域名及相关产品服务的从业时间?原属于哪家注册服务机构?作为原注册服务机构的代理商,从事相关产品服务的业绩如何?

7.请给出贵单位与域名申请相关的商业计划或营销计划。

8.成为CNNIC认证服务机构后,贵单位预计每月注册域名的数量将达到何种程度,半年内注册域名的数量将达到何种程度?

9.为用户提供解析服务的DNS的详细信息(包括操作系统和机型)、放置在何处、通过什么方式接入到INTERNET?带宽如何?

10.贵公司有哪些主要的经营项目或经营产品,其经营特色是什么,是否提供虚拟主机的服务?贵公司的主要客户群体是哪些?请描述。

11.贵公司是一个跨省市经营的公司,还是一个本地经营的公司?若是跨省市经营的公司,请详细列出各个分公司的所在城市以及注册公司的名称。

12.贵公司是否通过下级代理机构开展业务?合作主要是在哪些方面?请详细列出下级代理机构所在的地区及代理机构名称及联系方式(包括电话、传真、Email、网址)。

13.贵公司是否曾为本公司或者其他的公司做过系统开发的工作,成功的案例请列举一二;对于各种编程语言的使用情况如何?

本单位保证在此《域名注册服务机构申请书》所提供的全部信息的真实性和准确性,并愿意承担因虚假信息而产生的一切后果。

申请单位:

负责人:

签章:

年 月 日

分享家:Addthis中国

centos5.3的字符界面和图形界面占用资源对比图

星期日, 5月 24th, 2009

同一个centos5.3 ,上图是运行了 startx 的结果,显示有 133个 进程; 下图是字符界面的运行情况, 有102个进程。图形界面多了约 30% 的进程, 多占用cpu资源约为 1% 。

centos5.3 字符界面与图形界面 对比

centos5.3 字符界面与图形界面 对比

分享家:Addthis中国

Centos 5.3服务器完美配置

星期日, 5月 24th, 2009

写的很不错, 分6个部分, 来源 :http://www.ondev.net

CentOS 5 / RHEL 5 中iptables的配置

设置防火墙对于你的Linux服务器来说非常重要。但是默认情况下CentOS的设置通常不能满足我们的需要。你可以通过如下步骤简单设置 iptables防火墙: 首先要禁用掉SELinux,通常来说SELinux没有什么特别大的用处。用root用户打开/etc/selinux/config: vi /etc/selinux/config 将其中的SELINUX=enforcing删除并用下面一行字替换: …

Centos 5.3服务器完美配置(三)

编辑/etc/hosts 用vi打开/etc/hosts: vi /etc/hosts 内容大概类似于这样: # Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 localhost.localdo …

Centos 5.3服务器完美配置(六)

Apache2以及PHP,Ruby,Python 现在我们开始安装apache和php: yum install php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc curl curl-devel perl-libwww-perl ImageMagick libxml2 libx …

Centos 5.3服务器完美配置(五)

Postfix邮件服务器 现在安装Postfix以及Dovecot(Dovecot可以用作pop/imap服务器)。 yum install cyrus-sasl cyrus-sasl-devel cyrus-sasl-gssapi cyrus-sasl-md5 cyrus-sasl-plain postfix dovecot 现在配置SMTP-AUTH以及TLS(如果你的smtp服务器不需要认证 …

Centos 5.3服务器完美配置(四)

安装Quota Quota允许你设置用户的磁盘限额。所以如果你的服务器将来会有多个用户使用,安装Quota还是很有用的。 用root用户运行yum安装quota: yum install quota 编辑/etc/fstab,对根目录(/)添加,usrquota,grpquota vi /etc/fstab 编辑后的文件类似这样: ext3 defaults,usrquota,grpquot …

Centos 5.3服务器完美配置(二)

选择需要安装的软件包,这里因为我们只需要安装服务器,所以只选择“Server”就可以。同时要把“Packages from CentOS Extras”的选择框去掉。 之后选择“Customize Now”,然后选择Next。 现在需要定制软件包,这里选择Editors, Text-based Internet, Development Libraries, Development Tools, …

Centos 5.3服务器完美配置(一)

这一系列文章目的是解释如何在Centos 5.3上设置一些必须的服务器,包括:apache web服务器,postfix邮件服务器,FTP服务器,DNS服务器,MySQL,防火墙,等等。这一系列文章的步骤是在Centos 5.3的x64版本上进行实验的,不过你应该可以可以在x32版本上按照相同的步骤进行设置。在这一系列文章中我们将使用以下软件: Web 服务器: Apache 2.2,PHP 5. …

yum以及apt常用命令列表

APT 常用指令如下: apt-get update 更新软件包列表 apt-get dist-upgrade 升级 rpm apt-cache search 搜索软件包,ex: apt-cache search httpd apt-get install 安裝软件包,这里的软件包安裝,会考虑到依赖性的问题 ex: apt-get install httpd apt-get remove 移除软件 …

在Linux上安装mod_security

在使用apache的httpd服务器时,安全是你不得不考虑的一个问题。mod_security是为apache httpd服务器(1.x和2.x)设计的一个安全模块,mod_security可以阻止多种形式的攻击,比如SQL注入,跨站点脚本等等。这篇文章说 明了如何在各种Linux上安装mod_security: RHEL / CentOS 在CentOS / RHEL上安装mod_security …

分享家:Addthis中国

CentOS 5.3 通过yum升级php到5.2.9版本的方法

星期日, 5月 24th, 2009

来源 :开源ISPCP社区    http://www.ispcpcn.com/article/13/
CentOS5.3的php版本默认为5.1.6,然后在5.2.9版本之前的的php都存在一个漏洞,但是目前网上很多地方都无法使用yum update php*升级到5.2.9,比较常见的是升级到5.2.6版本的,经过搜索国外资料,现在终于找到一种升级CentOS的php到5.2.9的方法。
注意,此方法只能在官方的php版本上升级,如果你使用网上的升级到5.2.6版本的升级方法已经升级了,将无法使用本方法升级php。
运行下面命令:

wget http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm
wget http://rpms.famillecollet.com/enterprise/5/remi/i386/remi-release-5-7.el5.remi.noarch.rpm
rpm -Uvh remi-release-5*.rpm epel-release-5*.rpm

然后编辑/etc/yum.repos.d/remi.repo
#vi /etc/yum.repos.d/remi.repo
在这个文件的最后增加一行:
priority=1

保存退出。

/etc/yum.repos.d/epel.repo和/etc/yum.repos.d/epel-testing.repo这两个文件也按照上面的方法进行编辑!

使用下面的命令进行升级,但是经过测试,如果单独升级php将提示失败,只有联通mysql一起升级才可以,所以我们必须执行以下命令才能升级php到5.2.9版本:
yum –enablerepo=remi update php* mysql*

分享家:Addthis中国

英文centos如何显示中文字符

星期日, 5月 24th, 2009

安装centos时如果选择 English, 默认的安装似乎是不能正确显示中文的, firefox,  gedit中文都是乱码。解决方法是:

1  在安装时的“supported language”里面打钩 “Chinese ”, 即可。 要注意区分安装使用的语言和支持的语言是两回事。

或者

2  如果已经安装了, 可以 yum install fonts-chinese 来安装中文字体。这样, firefox, gedit就能正确显示中文了 。

分享家:Addthis中国

禁用Centos GUI图形界面

星期日, 5月 24th, 2009
vi /etc/inittab
把默认的
id:5:initdefault:
改成
id:3:initdefault:

这样登录的默认界面就是字符界面了, 需要gui时,  startx 即可。
分享家:Addthis中国

vsftpd出现500 OOPS:cannot change directory 的解决方法

星期日, 5月 24th, 2009

来源: sunnyu  http://www.sunnyu.com/?p=50

刚装好的Linux用准备ftp上传一些文件,结果用客户端连接ftp后提示 500 OOPS:cannot change directory: /home/xxx
问题很奇怪,好长一会时间突然想起可能是由于启用了SELinux引起的问题

vi /etc/sysconfig/selinux

将 SELINUX=enforcing 修改为SELINUX=disabled, 关闭SELINUX后, 重新启动机器,问题解决。

网上查找一下有使用命令

setsebool ftpd_disable_trans 1

将SELINUX中关于ftp服务传输控制的默认设置修改后再将vsftp服务重新启动一下

/sbin/service vsftpd restart

也可以解决问题,貌似这种方法更好,因为保留了selinux其他方面的安全特性。

注:打开了SELINUX安全控制后一些服务的行为会受影响。
可以到 /selinux/booleans目录下看selinux都对哪些服务的功能做了控制,根据需要可以用setsebool命令修改相关选项的boolean值,使selinux相对应的控制项起作用或不起作用。

可以使用sestatus命令查看selinux的运行状态。

分享家:Addthis中国