分类: 嵌入式
2010-06-29 21:58:42
Original Author:草木瓜
见到好文章,我就会忍不住留下来.本篇文字由草木瓜所写,收录的并不完整,下面是我整理的大纲.
1.UNIX厂商在X Window原型上开发适合自己的UNIX GUI视窗环境,OSF(自由软件基金会)开发出了Motif;
2.Motif只是一个带有窗口管理器(Window-Manager)的图形界面库(Widget-Library),等同于Open
Look和GTK;
3.Open Look 与Motif整合为CDE,成为了UNIX系统的标准图形界面(GUI),但价格与UNIX系统一样高昂;
4.Linux系统的图形界面也在发展中.挪威TrollTech公司推出了QT,Qt同X Window上的 Motif、Open Look、GTK
等图形界面库和Windows平台上的 MFC、OWL、VCL、ATL是同类型的东西.
5.德国人Matthias Ettrich开发了图形排版工具Lyx,也发起了KDE项目,以QT为基础.KDE采用GPL宣言,但QT
却有着商业版权,但后来为了与GNOME竞争,也更改了版权,变成了双重授权.
6.由于KDE并非纯正的GNU软件,一部分人在墨西哥人Miguel De Icaza组织下启动了一个称为GNOME的软件
项目, 采用GTK为基础.开始了与KDE的圣战(类似于Motif与Open Look的战争).
7.于是我们知道了普通PC的linux系统架构如下:
Linux Kernel + XLib + GLib + GNOME GNOME/GTK
Linux Kernel + XLib + Qt + KDE KDE/Qt
8.GNOME得到了RedHat等公司的支持,发展迅速.KDE得到了SuSE的支持,在suse10.3系统中表现完美.
9.后来GNOME与KDE相互合作,互相支持,现在两大平台的程序都是完全共享的,只要你安装了双方的基础库.
至此原文开始:
Linux实际上是以UNIX为模板的,它继承了UNIX内核设计精简、高度健壮的特
点,无论系统结构还是操作方式也都与UNIX无异。Linux本身也是没有图形界面,
只是一个基于命令行的操作系统。
早在Linux之前,Unix的图形界面一向是以麻省理工学院(MIT)的X Window
系统为标准。不过,X Window(请注意不是X Windows)并不是一个直接的图形操
作环境,而是作为图形环境与UNIX系统内核沟通的中间桥梁,任何厂商都可以在
X Window基础上开发出不同的GUI图形环境。MIT目的只在于为UNIX系统设计一套
简单的图形框架,以使UNIX工作站的屏幕上可显示更多的命令。许多UNIX厂商在
X Window原型上开发适合自己的UNIX GUI视窗环境,其中比较著名的有SUN与AT&T
联手开发的“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
系统管理员使用,直到今天情况依然如此。
上个世纪九十年代中期,以开源模式推进的Linux在开发者中已经拥有广泛的
影响力。尽管X Window已经非常成熟,也有不少基于X Window的图形界面程序,
但它们不是未具备完整的图形操作功能就是价格高昂(如CDE),根本无法用于
Linux系统中。如果Linux要获得真正意义上的突破,一套完全免费、功能完善的
GUI就非常必要。
在这时,挪威TrollTech一批程序员抓住机遇推出了Qt,一个跨平台的C++图
形用户界面库。基本上,Qt同X Window上的 Motif、Open Look、GTK等图形界面
库和Windows平台上的 MFC、OWL、VCL、ATL是同类型的东西,但Qt具有优良的跨
平台特性(支持Windows、Linux、各种UNIX、OS390和QNX等)、面向对象机制以
及丰富的API,同时也可支持2D/3D渲染和OpenGL API。
1996年10月,由开发图形排版工具Lyx的德国人Matthias Ettrich发起了KDE
(K Desktop Environment)计划。在当时的同类图形用户界面库产品中,Qt的功能
最为强大,Matthias Ettrich在发起KDE项目时很自然选择了Qt作为开发基础。
KDE本身采用GPL(GNU通用公共许可证)宣言的,但是KDE底层的基础却是Qt。
Qt是一个不遵循GPL的商业软件,一大批自由程序员对KDE项目的决定深为不
满,它们认为利用非自由软件开发违背了GPL的精神,于是GNU拥护者,一批人去
开发Harmonny(Harmony是一个兼容替代库,设计用来在没有Qt的情况下也有可能
运行KDE软件。),试图重写一套兼容于Qt的替代品,另一一批由一个墨西哥程序
员Miguel De Icaza组织下重新开发了一套称为GNOME(GNU Network Object
Enviroment)来替代KDE。
Linux业界老大RedHat不喜欢KDE/Qt的版权,甚至专门派出了几个全职程序员
来加入GNOME的开发工作,于是一场与Motif和Openlook相似的圣战就这么打起来
了。
Trolltech为了KDE曾数次修改Qt的版权,从成立KDE Free Qt 基金会到采用
GPL,可谓是费尽心机,但是GNOME采用的GTK从一开始就是完全的GPL,因此在这个
方面GNOME有一定的优势,加上Qt/KDE采用C++,在当时并不为很多人熟悉,因此
GNOME吸引了更多的自由软件开发者,但是KDE毕竟先走一步,推出的KDE1.1.2也十
分稳定,而当时急忙中推出的GNOME1.0的系统稳定性奇差,有人甚至笑称GNOME1.0
还没有KDE1.0Alpha稳定。
2000年,可谓是风云突变,一个接一个重大的事件先后发生: 首先是一批从
Apple公司出来的工程师成立了一个Eazel的公司替GNOME设计界面,然后是一批
GNOME程序员成立了一个Helix Code公司替GNOME提供商业支持,而大家期待以久的
KDE 2.0也终于发布了,这也是相当庞大的自由软件,除KDE本身,还包括Koffice
套件和集成开发环境Kdevelop等等一大批软件,其主力软件Kounqueror也是第一个
可以同微软的InternetExploer相抗衡的浏览器。
Sun公司,RedHat公司,Eazel公司,Helix Code等一批公司成立了一个GNOME
基金会,Sun还宣布将把重量级办公软件Star office同GNOME集成,Trolltech公司
自然不能坐以待毙,于2000年10月将Qt的free edition变为GPL宣言,彻底解决了
KDE的版权问题,给了GNOME阵营一个有力的回击。
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项目都在这期间获得完善发展。
进入2004年后,KDE与GNOME依然保持快速发展。商业支持方面,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提供同
等支持。
到这里,我们发现一个颇富戏剧性的结局:致力于商业化的KDE反而失去了重
量级商业企业的支持。其实道理非常简单—没有哪一家重量级企业喜欢受制于人,
也许KDE的Qt不需要很多授权费,但谁知道TrollTech公司以后会不会漫天要价?
既然有免费的GNOME可以选择,那为什么不呢?
虽然在商业方面存在竞争,GNOME与KDE两大阵营的开发者关系并没有变得更糟,
相反他们都意识到支持对方的重要性。如果KDE和GNOME无法实现应用程序的共享,
那不仅是巨大的资源浪费,而且将导致Linux出现根本上的分裂。事实上,无论是
GNOME的开发者还是KDE的开发者,他们都有着共同的目标,就是为Linux开发最好的
图形环境,只是因为理念之差而分属不同的阵营。KDE与GNOME的商业竞争对开发者
们其实没有任何利益影响(只有TrollTech会受影响),基于共同的目的,KDE与
GNOME阵营大约从2003年开始逐渐相互支持对方的程序—只要你在KDE环境中安装GTK
库,便可以运行GNOME的程序,反之亦然。经过两年多的努力,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桌面应用的全面铺开指日可待,而除了开发者和厂商的努力外,如何向
企业和个人用户推广以及提供培训将是厂商要考虑的主要问题,我们今天恰好站在
这样的一道门槛上。
全球各地有着共同目标的艺术家通过互联网组织到一起,共同为Linux系统
设计一流的视觉界面、系统图标,而所有的自由软件程序员都有一个共同的目标,
那就是开发出一流水准的软件提供给大众使用。这种基于挑战自我、带有浓烈精神
色彩的软件开发模式成为商业软件之外的另外一极。现在,微软面对的并不是那些
只在业余时间鼓捣代码的程序员,而是分布在全球各地、数量庞大、且拥有一流技
术水平的开发者,这些开发者被有效地组织起来,形成一个个有序的协作团队,大
量实力雄厚的商业公司在背后提供支持。
原文地址 http://hi.baidu.com/pxrchen/blog/item/2418043693ed8ed9a3cc2b3c.html