GNU/Linux的GNU是什么
GNU是一个技术组织,GNU计划,又称革奴计划,是一个叫Richard Stallman在1983年9月27日公开发起的,他是Might and Magic时代的一个英雄(关于他的传说,请参考Eric Ramond的《黑客发展史》)。Richard Stallman最早是在net.unix-wizards新闻组上公布该消息,并附带一份《GNU宣言》等解释为何发起该计划的文章,其中一个理由就是要“重现当年软件界合作互助的团结精神”。
这个组织中黑客云集,而且多是掌握核心技术的真正高手,他们的作品多是编译器、词法/语法分析器、底层函数库等大作。更重要的不是他们的技术,而是他们的哲学!他们的哲学就是技术上的“共产主义”——人人为我,我为人人。他们发布了一种版权许可协议——GPL——一个神圣的宣言。与中庸而谦和的BSD协议不同,它充满着革命的活力和斗争精神,它的出现标志着一个新世界——GPL世界——的诞生!
GNU本来向开发自己的操作系统——HURD,但是因为种种原因进度非常慢。这时候,一个荷兰黑客制作出了Linux,并宣布:遵循GPL版权可协议。Linux的发展非常快,他本身遵循GPL版权可协议,同时又把GNU的很多软件集成了进去(注意,Linux仅仅是一个内核,不包含外围的应用程序),所以现在我们使用的Linux系统,应该完整地称之为GNU/Linux才对。
目标是基于自由软件,为Unix或者类Unix操作系统构造一个功能完善、操作简单以及界面友好的桌面环境,他是GNU计划的正式桌面。
GNOME是什么
GNU网络对象模型环境(The GNU Network Object Model Environment,缩写为GNOME),GNU计划的一部分,开放源码运动的一个重要组成部分。
KDE是什么
KDE(K Desktop Environment)是UNIX操作系统下的一个网络透明的现代桌面环境。UNIX工作站需要一种像MacOS和微软WINDOWS的桌面环境那样的易于使用的桌面,KDE因此诞生。
GNOME与KDE的比较
从编程的角度:
gnome是用基于面向对象的c语言结构实现的,又因为c语言借口的通用性,所以任何语言都可以使用gnome/gtk的接口。
但是kde是基于c++的,而且c++的源代码还要经过预处理才能成为纯粹的c++程序,所以导致的结果是kde 的编程语言没有gnome的多。
-----------------------------------------------------------
KDE与GNOME是很类似的:它们在本质上都是桌面环境,必须和窗口管理器配合使用,以提供类似于MS-Windows、CDE和MacOS的用户界面。所以他们都拥有图形化的文件管理器。在文件管理器中看到的对象可以是文件夹、子文件夹、程序、链接等。
KDE和GNOME都拥有许多的“本族程序”。“本族程序”的意思是:这些程序所用的库与桌面环境用的库相同,并且能够由桌面环境来定义程序与外界的交互方式。这些“本族程序”涵盖的范围很广,虽然大部分的程序看起来还很粗糙、没有特色,但这些程序使用起来还是很容易上手的。
虽然KDE和GNOME是两个不同的桌面环境,但是你会发现他们协作起来并没有太大的障碍。你可以在GNOME中运行KDE的kppp或是Konqueror。当然,这样会丧失一小部分功能,比如无法在GNOME中实现Konqueror的拖拽功能。另外,你必须同时在内存中加载QT和GTK+。
KDE和GNOME都是开放源代码的,他们都能很好的运行主流的Linux应用程序。
在网上人们对KDE和GNOME的评价并不能反映真实的情况。事实上,KDE比GNOME早推出一年,并且以精致、稳定的性能将其领先地位保留至今。与当时KDE的商业版QT库相对应,GNOME一开始就是免费的。偶倾向于GNOME是因为它是真正意义上的开放源代码软件,而不是因为它的技术而去使用它。
话虽这样说,但是对于一般用户,KDE和GNOME差不了多少。它们都提供了功能强大的图形界面,操作起来甚至比命令行还要高效。它们并不是最好的桌面环境(相比之下MacOS要更好一些),不过它们发展的很快,预计在以后不久就可以超过那些古老的桌面环境。
一些人声称GNOME不如KDE稳定,但实际上却恰恰相反,GNOME相对来说要健壮许多,总能顺利地执行任务。
两个系统的用户界面差别并不明显,但是一些潜在的东西起着至关重要的作用。就拿鼠标来说吧,在KDE所推崇的就是通过单击就可以打开程序,无论这个程序的图标是在桌面上、面板上还是在文件管理器中。而GNOME呢,在面板中是单击,在其他地方却要双击才行。很难说哪一种方式更好。KDE的方式似乎更统一一些,使用起来很舒服。但对于已经养成了双击习惯的人,一时忘记而不小心连击两下,就会打开两个窗口,这是一件很恼人的事情。
KDE的文件管理器Konqueror比GNOME的nautilus更加的精密和成熟。除了进行一般的文件管理,Konqueror还是一个网页浏览器,并且支持cookies。它采用插件式体系结构,这样就为在Konqueror中嵌入其他应用程序提供了可能。比如说,当你点击PDF格式的文件时,Konqueror会调用PDF阅读器,并将其内嵌到自己的框架里,看起来浑然一体。这一点,GNOME的文件管理器就做不到。
另一方面,GNOME的窗口管理器(Sawfish)较为成熟。KDE的窗口管理器可以在缺省方式下工作的很好,假如你修改了其中的选项,很可能会导致一些故障。比如,你在KDE中对文件进行托拽时,会弹出一个对话框,问你是要拷贝、移动还是链接。但是这个对话框经常会消失无踪,这是因为窗口管理器的鼠标聚焦功能出了问题。可能要试很多次才能托拽成功。在GNOME中就很少会发生这样的事。在用户界面元素的行为管理方面,GNOME的控制面板提供了出色的控制。
理论上,KDE和GNOME与其各自的窗口管理器都是分离的,所以能够选择不同的窗口管理器而不会丧失功能。实际上更换GNOME窗口管理器比KDE的要容易许多,只要在控制面板上更换选项就可以了。GNOME的灵活性相矛盾的是:窗口管理器往往会提供一些与GNOME本身相依赖、甚至是相冲突的特性。比如说,GNOME的总体外观由桌面主题来控制,但这些桌面主题由两个完全独立的控制中心来进行选择。一个是GNOME的,一个是Sawfish或者别的什么窗口管理器的。KDE的控制面板更统一一些。
GNOME的Sawfish有许多KDE窗口管理器所缺乏的特性。比如说,Sawfish可以轻松地修改快捷键。此外,Sawfish还能记住某一窗口的大小和位置,下一次运行时,窗口会和上一次一模一样。是不是比每次运行都呈现缺省状态要好得多?而KDE看起来有一些呆板。
KDE所用的QT,比GNOME用的GTK+在菜单嵌套方面强得多。选择子菜单时,GNOME经常会把父菜单丢掉,你必须小心翼翼地一层一层打开子菜单。在KDE中你可以把鼠标随意地在菜单间滑动(甚至是对角线),而不必担心会丢掉父菜单。这是KDE引以为荣的主要特性之一。
GNOME对标准Unix网页浏览器(Netscape)的支持比较好,并支持浏览器、文件管理器、Gnome-terminal之间的拖拽。虽然在Konqueror中也可以进行类似的操作,但是并不很彻底。GNOME还可以在OpenOffice中大跳“拖拽舞蹈”。
说了这么多,你究竟会选择KDE还是GNOME呢?
KDE适合那些想拥有友好的用户界面,但是又不太懂如何设定细节的那些用户。若能够稳定起来,KDE将为你提供非常好的服务,完成你的正当需求。KDE正在证明着一个开放源代码的团队是如何创造一个界面友好的桌面环境的。
GNOME比KDE稳定的多,至少现在是这样。GNOME背后的哲学思想与Unix的哲学是一致的:每一个程序完成它的单一任务,给用户所有他所需要的,以创造一个完美的、适合他的环境。虽然要费大量时间周旋于众多的设置选项,但是能创造一个更适合你的环境。GNOME的分布式对象模型更是下一代的GUI原型。