Linux图像化历程

来源:互联网 发布:浙江大学网络 编辑:程序博客网 时间:2024/05/21 06:48
  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系统设计一流的视觉界面、系统图标,而所有的自由软件程序员都有一个共同的目标,那就是开发出一流水准的软件提供给大众使用。这种基于挑战自我、带有浓烈精神色彩的软件开发模式成为商业软件之外的另外一极。现在,微软面对的并不是那些只在业余时间鼓捣代码的程序员,而是分布在全球各地、数量庞大、且拥有一流技术水平的开发者,这些开发者被有效地组织起来,形成一个个有序的协作团队,大量实力雄厚的商业公司在背后提供支持。