KDE与GNOME之圣战.docx
- 文档编号:2866885
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:9
- 大小:320.86KB
KDE与GNOME之圣战.docx
《KDE与GNOME之圣战.docx》由会员分享,可在线阅读,更多相关《KDE与GNOME之圣战.docx(9页珍藏版)》请在冰豆网上搜索。
KDE与GNOME之圣战
XWindow打造桌面环境
在介绍KDE和Gnome之前,我们有必要先来介绍UNIX/Linux图形环境的概念。
对一个习惯Windows的用户来说,要正确理解UNIX/Linux的图形环境可能颇为困难,因为它与纯图形化Windows并没有多少共同点。
Linux实际上是以UNIX为模板的,它继承了UNIX内核设计精简、高度健壮的特点,无论系统结构还是操作方式也都与UNIX无异。
简单点说,你可以将Linux看成是UNIX类系统中的一个特殊版本。
我们知道,微软Windows在早期只是一个基于DOS的应用程序,用户必须首先进入DOS后再启动Windows进程,而从Windows95开始,微软将图形界面作为默认,命令行界面只有在需要的情况下才开启,后来的Windows98/Me实际上也都隶属于该体系。
但在Windows2000之后,DOS被彻底清除,Windows成为一个完全图形化的操作系统。
但UNIX/Linux与之不同,强大的命令行界面始终是它们的基础,在上个世纪八十年代中期,图形界面风潮席卷操作系统业界,麻省理工学院(MIT)也在1984年与当时的DEC公司合作,致力于在UNIX系统上开发一个分散式的视窗环境,这便是大名鼎鼎的“XWindowSystem”项目。
不过,XWindow(请注意不是XWindows)并不是一个直接的图形操作环境,而是作为图形环境与UNIX系统内核沟通的中间桥梁,任何厂商都可以在XWindow基础上开发出不同的GUI图形环境。
MIT和DEC的目的只在于为UNIX系统设计一套简单的图形框架,以使UNIX工作站的屏幕上可显示更多的命令,对于GUI的精美程度和易用程度并不讲究,毕竟那时候能够熟练操作UNIX的都是些习惯命令行的高手,根本不在乎GUI存在与否。
1986年,MIT正式发行XWindow,此后它便成为UNIX的标准视窗环境。
紧接着,全力负责发展该项目的X协会成立,XWindow进入了新阶段。
与此同步,许多UNIX厂商也在XWindow原型上开发适合自己的UNIXGUI视窗环境,其中比较著名的有SUN与AT&T联手开发的“OpenLook”、IBM主导下的OSF(OpenSoftwareFoundation,开放软件基金会)开发出的“Motif”。
而一些爱好者则成立了非营利的XFree86组织,致力于在X86系统上开发XWindow,这套免费且功能完整的XWindow很快就进入了商用UNIX系统中,且被移植到多种硬件平台上,后来的Linux也直接从该项目中获益。
当然,这些早期的XWindow环境都设计得很简单,许多GUI元素模仿于微软的Windows,但XWindow拥有一个小小的创新:
当鼠标指针移动到某个窗口时,该窗口会被自动激活,用户无需点击便能够直接输入,简化了用户操作—这个特性在后来的KDE和Gnome中也都得到完整的继承。
由于必须以UNIX系统作为基础,XWindow注定只能成为UNIX上的一个应用,而不可能与操作系统内核高度整合,这就使得基于XWindow的图形环境不可能有很高的运行效率,但它的优点在于拥有很强的设计灵活性和可移植性。
XWindow从逻辑上分为三层:
最底层的XServer(X服务器)主要处理输入/输出信息并维护相关资源,它接受来自键盘、鼠标的操作并将它交给XClient(X客户端)作出反馈,而由XClient传来的输出信息也由它来负责输出;最外层的XClient则提供一个完整的GUI界面,负责与用户的直接交互(KDE、Gnome都是一个XClient),而衔接XServer与XClient的就是“XProtocol(X通讯协议)”、它的任务是充当这两者的沟通管道。
尽管UNIX厂商采用相同的XWindow,但由于终端的XClient并不相同,这就导致不同UNIX产品搭配的GUI界面看起来非常不一样。
图 49.1. XWindow系统架构示意图
KDE项目的发起
MIT的XWindow推出之后就成为UNIX图形界面的标准,但在商业应用上分为两大流派:
一派是以Sun公司领导的OpenLook阵营,一派是IBM/HP领导的OSF(OpenSoftwareFoundation)的Motif,双方经过多年竞争之后,Motif最终获得领先地位。
不过,Motif只是一个带有窗口管理器(Window-Manager)的图形界面库(Widget-Library),而非一个真正意义上的GUI界面。
经过协商之后IBM/HP与SUN决定将Motif与OpenLook整合,并在此基础上开发出一个名为“CDE(CommonDesktopEnvironment)”的GUI作为UNIX的标准图形界面。
遗憾的是,Motif/CDE和UNIX系统的价格都非常昂贵,而当时微软的Windows发展速度惊人并率先在桌面市场占据垄断地位,CDE则一直停留在UNIX领域提供给root系统管理员使用,直到今天情况依然如此。
图 49.2. KDE1.0尽管设计粗糙,但它奠定了整个KDE项目的基础。
在上个世纪九十年代中期,以开源模式推进的Linux在开发者中已经拥有广泛的影响力。
尽管XWindow已经非常成熟,也有不少基于XWindow的图形界面程序,但它们不是未具备完整的图形操作功能就是价格高昂(如CDE),根本无法用于Linux系统中。
如果Linux要获得真正意义上的突破,一套完全免费、功能完善的GUI就非常必要。
1996年10月,图形排版工具Lyx的开发者、一位名为MatthiasEttrich的德国人发起了KDE(KoolDesktopEnvironment)项目,与之前各种基于XWindow的图形程序不同的是,KDE并非针对系统管理员,它的用户群被锁定为普通的终端用户,MatthiasEttrich希望KDE能够包含用户日常应用所需要的所有应用程序组件,例如Web浏览器、电子邮件客户端、办公套件、图形图像处理软件等等,将UNIX/Linux彻底带到桌面。
当然,KDE符合GPL规范,以免费和开放源代码的方式运行。
KDE项目发起后,迅速吸引了一大批高水平的自由软件开发者,这些开发者都希望KDE能够将Linux系统的强大能力与舒适直观的图形界面联结起来,创建最优秀的桌面操作系统。
经过艰苦卓绝的共同努力,KDE1.0终于在1998年的7月12日正式推出。
以当时的水平来说,KDE1.0在技术上可圈可点,它较好的实现了预期的目标,各项功能初步具备,开发人员已经可以很好地使用它了。
当然,对用户来说,KDE1.0远远比不上同时期的Windows98来得平易近人,KDE1.0中大量的Bug更是让人头疼。
但对开发人员来说,KDE1.0的推出鼓舞人心,它证明了KDE项目开源协作的开发方式完全可行,开发者对未来充满信心。
有必要提到的是,在KDE1.0版的开发过程中,SuSE、Caldera等Linux商业公司对该项目提供资金上的支持,在1999年,IBM、Corel、RedHat、富士通-西门子等公司也纷纷对KDE项目提供资金和技术支持,自此KDE项目走上了快速发展阶段并长期保持着领先地位。
但在2004年之后,GNOME不仅开始在技术上超越前者,也获得更多商业公司的广泛支持,KDE丧失主导地位,其原因就在于KDE选择在Qt平台的基础上开发,而Qt在版权方面的限制让许多商业公司望而却步。
Qt是一个跨平台的C++图形用户界面库,它是挪威TrollTech公司的产品。
基本上,Qt同XWindow上的Motif、OpenLook、GTK等图形界面库和Windows平台上的MFC、OWL、VCL、ATL是同类型的东西,但Qt具有优良的跨平台特性(支持Windows、Linux、各种UNIX、OS390和QNX等)、面向对象机制以及丰富的API,同时也可支持2D/3D渲染和OpenGLAPI。
在当时的同类图形用户界面库产品中,Qt的功能最为强大,MatthiasEttrich在发起KDE项目时很自然选择了Qt作为开发基础,也正是得益于Qt的完善性,KDE的开发进展颇为顺利,例如Netscape5.0在从Motif移植到Qt平台上仅仅花费了5天时间。
这样,当KDE1.0正式发布时,外界看到的便是一个各项功能基本具备的GUI操作环境,且在后来的发展中,Qt/KDE一直都保持领先优势。
有必要提到的是,TrollTech公司实质性参与了KDE项目,如前面提到Netscape5.0的移植工作就是由TrollTech的程序员完成,而KDE工程的发起者、MatthiasEttrich本人也在1998年离开学术界加入TrollTech,并一直担任该公司的软件开发部主管,因此TrollTech公司对于KDE项目拥有非常强的影响力(当然不能说绝对掌握,毕竟KDE开发工作仍然是由自由程序员协作完成的)。
我们前面提到,KDE采用GPL规范进行发行,但底层的基础Qt却是一个不遵循GPL的商业软件,这就给KDE上了一道无形的枷锁并带来可能的法律风险。
一大批自由程序员对KDE项目的决定深为不满,它们认为利用非自由软件开发违背了GPL的精神,于是这些GNU的狂热信徒兵分两路:
其中一部分人去制作Harmonny,试图重写出一套兼容Qt的替代品,这个项目虽然技术上相对简单,但却没有获得KDE项目的支持;另一路人马则决定重新开发一套名为“GNOME(GNUNetworkObjectEnvironment)”的图形环境来替代KDE,一场因为思想分歧引发的GUI之战开始了。
图 49.3. Qt是整个KDE的基础,它采用双重授权。
GNOME与KDE交替发展
GNOME项目于1997年8月发起,创始人是当时年仅26岁的墨西哥程序员MiguelDeIcaza。
关于GNOME的名称有一个非常有趣的典故:
Miguel到微软公司应聘时对它的ActiveX/COMmodel颇有兴趣,GNOME(NetworkObjectModel)的名称便从此而来。
GNOME选择完全遵循GPL的GTK图形界面库为基础,因此我们也一般将GNOME和KDE两大阵营称为GNOME/GTK和KDE/Qt。
与Qt基于C++语言不同,GTK采用较传统的C语言,虽然C语言不支持面向对象设计,看起来比较落后,但当时熟悉C语言的开发者远远多于熟悉C++的开发者。
加之GNOME/GTK完全遵循GPL版权公约,吸引了更多的自由程序员参与,但由于KDE先行一步,且基础占优势,一直都保持领先地位。
1999年3月,GNOME1.0在匆忙中推出,稳定性奇差无比,以至于许多人笑称GNOME1.0还没有KDE1.0Alpha稳定,而同期的KDE1.1.2无论在稳定性还是功能上都远胜于GNOME,直到10月份推出的GNOME1.0.55版才较好解决了稳定性问题,给GNOME重新赢回声誉。
由于思想分歧,当时GNOME的开发者与KDE的开发者在网络上吵得天翻地覆,几乎达到相互仇视的地步。
但不管怎么说,GNOME都跌跌撞撞迈出了第一步,尽管那时KDE几乎是所有Linux发行版默认的桌面环境。
图 49.4. KDE2.0拥有丰富的应用软件,实力明显超过GNOME
GNOME的转机来自于商业公司的支持。
当时Linux业界的老大RedHat很不喜欢KDE/Qt的版权,在GNOME项目发起后RedHat立刻对其提供支持。
为了促进GNOME的成熟,RedHat甚至专门派出几位全职程序员参与GNOME的开发工作,并在1998年1月与GNOME项目成员携手成立了RedHat高级开发实验室。
1999年4月,Miguel与另一名GNOME项目的核心成员共同成立HelixCode公司为GNOME提供商业支持,这家公司后来更名为Ximian,它事实上就成为GNOME项目的母公司,GNOME平台上的Evolution邮件套件便出自该公司之手。
进入2000年之后,一
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- KDE GNOME 圣战
![提示](https://static.bdocx.com/images/bang_tan.gif)