X Window、GNOME和KDE之间的关系

分类: Linux2011-04-25 23:06 3570人阅读 评论(1) 收藏 举报
桌面环境文件管理器unix图形linuxqt

目录(?)[+]

X Window,

即X Windows图形用户接口,它并不是一个软件,而是一个协议(protocal),这个协议定义一个系统成品所必需具备的功能(就如同 TCP/IP, DECnet 或IBM的 SNA,这些也都是协议,定义软件所应具备的功能)。任何系统能满足此协议及符合X协会其他的规范,便可称为X。

------------------------------------------------------------------------------------------

简介  X Window系统X Window System,也常称为X11X)是一种以位图方式显示的软件窗口系统。最初是1984年麻省理工学院的研究,之后变成UNIX、类UNIX、以及OpenVMS等操作系统所一致适用的标准化软件工具包及显示架构的运作协议。X Window系统通过软件工具及架构协议来建立操作系统所用的图形用户界面,此后则逐渐扩展适用到各形各色的其他操作系统上。现在几乎所有的操作系统都能支持与使用X。更重要的是,今日知名的桌面环境——GNOME和KDE也都是以X Window系统为基础建构成的。

  由于X只是工具包及架构规范,本身并无实际参与运作的物理,所以必须有人依据此标准进行开发撰写。如此才有真正可用、可运行的物理,始可称为实现体。目前依据X的规范架构所开发撰写成的实现体中,以X Org最为普遍且最受欢迎。X Org所用的协议版本,X11,是在1987年9月所发布。而今最新的参考实现(参考性、示范性的实现体)版本则是X11 Release 7.5(简称:X11R7.5),而此项目由X Org基金会所领导,且是以MIT授权和相似的授权许可的自由软件。

------------------------------------------------------------------------------------------

X Window的历史  由于改进工作持续进行,新的版本(version)不断产生(当软件和前一版不相容时,新的版本便产生了)。在1985年。制定了任何人只要付版权费便可使用X的授权许可。以下为一些最近的记事:

第10版

  1985年底。直到此时,在MIT以外的人和组织,才开始对X有实质的贡献。

  第一套商业化的X产品DEC于1986年1月推出 VAXstation-II/GPX。

  第10版第3次发行:1986年 2月。从此时起,X开始流传于世,人们把它移植到许多新的系统上。

  第10版第4次发行:1986年11月。

  1987年 1月在MIT举办第一次X技术会议。

  在1986年,第10版X无法满足所有的需求已非常明显。MIT 和 DEC便从事于完整协议(protocal)的重新设计。这就是X第11版(这就是所谓的X11)。

第11版

  第 1次发行:1987年 9月。

  X协会成立:MIT X协会成立的目的是为了研究发展及控制标准。

  第二次X技术会议:1988年 1月。

  第11版第 2次发行:1988年 3月。

  第11版第 3次发行:1988年10月。

-------------------------------------------------------------------------------------------

X-Window、GNOME和KDE之间的关系

至于GNOME、KDE和X-Window之间的关系,可以简单地认为GNOME和KDE是并列关系,如图5-1所示,它们都是基于X-Window的桌面环境,通过X-Window其才能运行。

有人说GNOME或KDE仅是一个桌面管理器而已,笔者认为这样称呼或定义是不恰当的,这不仅仅是因为它们比桌面管理器要复杂和强大很多,更在于它大多支持其他桌面管理器,以及包含完整的应用环境以及开发工具。以GNOME为例,它除了可以搭配多种桌面管理器之外,还集成了丰富的应用,以及强大完备的开发工具和环境。

所以说,GNOME和KDE是基于X-Window经过不同组织进行整合之后的桌面环境。至于GNOME和KDE的区别,下面就来介绍一下GNOME和KDE的主要区别。

遵循的协议不同

KDE项目是2006年由德国自由程序员发起的,采用了挪威奇趣(Troll Tech)公司的Qt图形界面库作为基础开发平台,C++是其主要开发语言。KDE项目发展很快,1999年KDE 1.1.2发行以后,基本成为Linux“事实”上的桌面标准。然而,由于KDE项目使用Qt库,其遵循的软件版权协议QPL不是真正的自由软件协议,所以这在开源软件界引发了一个很大的非议,如以纯自由软件构成的Linux发行版Debian就拒绝使用KDE。

当然,最终用户并不关心软件许可的问题,对他们来说易用性和强大的功能才是硬道理,所以KDE还是得到了广泛的应用。为了与KDE相抗衡,世界最大的自由软件组织GNU(自由软件基金会)发起了GNOME桌面环境项目。GNOME采取了完全松散的自由软件开发模式,整个项目由一系列独立的软件项目组成,这种松散的开发模式使得GNOME项目进展缓慢。所以1999年推出的GNOME 1.0与KDE 1.1.2相比在各个方面都相差很多,直到2000年推出GNOME 1.2后才有了很大的进步。然而与即将推出的KDE 2.0相比,GNOME在许多方面还非常不完善,如没有一个统一的办公套件,没有类似KDE下Konqueror一样强大的、集文件管理器和网络浏览器等功能于一身的文件管理程序。更为麻烦的是,GNOME还缺乏成熟的电子邮件、个人信息助理等实用程序,而且与KDE相比,GNOME的各个程序之间的集成度、操作及风格还不够统一和完善,不同程序之间的风格及操作差别都很大。当时的一切似乎都对KDE有利而对GNOME不利。所以当时很多人都在担心GNOME会半路夭折。

与KDE不同,GNOME采用了符合GPL自由软件协议的GDK、GTK作为其底层开发平台,也就是说GNOME是真正意义上的GPL自由软件,商业公司无须支付任何费用就可以自由使用它。可以说,这是商业公司选择GNOME而不选KDE的首要因素。当然,仅仅因为这个原因还不足以令人满意,要想成为名副其实的桌面环境标准,在技术上也必须有过硬表现才行。

底层技术平台不同

为了实现各个软件之间甚至基于网络的组件复用,GNOME采用了通用的CORBA组件模型,而KDE虽然前期也采用了CORBA技术,但后来由于速度和复杂性等原因,逐渐转而采用了自己独有的KPart组件模型。这使得KDE在与其他软件的兼容性方面大打折扣。

GNOME由于坚持使用CORBA,使得它在这方面具有相当大的优势。为了更好地使用CORBA模型,GNOME在ORBit(一套轻量级的CORBA实现)基础上开发了Bonobo组件层,不仅简化了编程工作,而且实现了灵活的组件复用。GNOME甚至能够通过网络使用其他平台下的CORBA组件。这一点真正体现了GNOME名称的精髓所在。

最后,为大家拓展一下思路,虽然GNOME最初是为Linux开发的,但是它具有极其优秀的跨平台能力。目前GNOME至少可以支持Solaris、Linux等大主流UNIX和类UNIX操作系统,Sun的Solaris 10的JDS就是一个GNOME的典型应用,相信不久的将来GNOME就能够支持包括Windows在内的所有常用系统平台。
--------------------------------------------------------------------------------------------

GNOME和KDE两种图形界面有什么区别?
  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原型。

  偶在自己的机器上用了一段时间的KDE,然后换成了GNOME(当然本本上是用fvwm2)。GNOME也并

不完美,但偶认为花时间作一些调整是值得的。不过,KDE和GNOME发展地都非常快,很难说以后偶用

的是什么啊(现在偶有点心仪KDE3.1的那个透明主题了^_^但GNOME身后的APPLE工程师们给偶使用

GNOME强力的心理支持,所以~~~)。

X Window、GNOME和KDE之间的关系相关推荐

  1. linux图形界面基本知识(X、X11、Xfree86、Xorg、GNOME、KDE之间的关系)

    LINUX初学者经常分不清楚linux和X之间,X和Xfree86之间,X和KDE,GNOME等之间是什么关系.常常混淆概念,本文以比较易于理解的方式来解释X,X11,XFREE,WM,KDE,GNO ...

  2. linux 图形界面 x x11 gnome xorg kde 之间的关系

    LINUX初学者经常分不清楚linux和X之间,X和Xfree86之间,X和KDE,GNOME等之间是什么关系.常常混淆概念,本文以比较易于理解的方式来解释X,X11,XFREE,WM,KDE,GNO ...

  3. 基本linux加载图形界面,linux图形界面基本知识(X、X11、Xfree86、Xorg、GNOME、KDE之间的关系)...

    LINUX初学者经常分不清楚linux和X之间,X和Xfree86之间,X和KDE,GNOME等之间是什么关系.常常混淆概念,本文以比较易于理解的方式来解释X,X11,XFREE,WM,KDE,GNO ...

  4. 【linux】图形界面基础知识(X、X11、GNOME、Xorg、KDE的概念和它们之间的关系)

    转载自:https://blog.csdn.net/zhangxinrun/article/details/7332049 简介 LINUX初学者经常分不清楚linux和X之间,X和Xfree86之间 ...

  5. 基于X的GNOME、GTK、GDK、XLib、GLib等之间的关系

    基于X的GNOME.GTK.GDK.XLib.GLib等之间的关系 什么是Xlib? The X Library是X Window程式最低階的API,如果拿來和Windows 比較起來,Xlib 就和 ...

  6. x11 gtk qt gnome kde 之间的区别和联系

    转自:http://blog.csdn.net/lanmayi003/article/details/6584521 一,Linux本身没有图形界面,linux现在的图形界面的实现只是linux下的应 ...

  7. android 如何获得activity的view对象,Android的Activity 、 Window 、 View之间的关系

    什么是Activity .View . Window? Activity:是Android 四大组件之一, 是存放View对象的容器,也是我们界面的载体,可以用来展示一个界面.它有一个SetConte ...

  8. 深入理解WMS(三):剖析Activity,View,Window之间的关系

    这篇课程开头就说在"接触 Android 开发时,我始终认为它就是负责将 layout 布局中的控件渲染绘制出来的".的确,对于layout布局怎么跟Activity关联起来的,都 ...

  9. 【Android 界面效果10】Android中View,ViewGroup,Window之间的关系

    一.首先说说View和ViewGroup吧 Android系统中的所有UI类都是建立在View和ViewGroup这两个类的基础上的.所有View的子类成为"Widget",所有V ...

最新文章

  1. 计算机数据恢复教程视频,视频删了怎么恢复?小技巧帮你快速解决
  2. Xcode 7中Static Cells自动计算高度失效的解决方法
  3. 在centos上搭建redis集群并附测试(真集群非伪集群)
  4. javascript四个方向无间隙滚动合集(多浏览器IE,firefox兼容)
  5. 安卓APP_ Fragment(5)—— Fragment + ViewPager2 模拟微信首页 (2)两者联动翻页
  6. CuteEditor6.0使用配置心得体会(转)
  7. 移动推送消息送达常见问题与解决办法
  8. Javascript笔记:(实践篇)从jQuery插件技术说起-分析extend方法的源码(发现extend方法里有bug)(下篇)...
  9. JustOJ1500: 蛇行矩阵
  10. android 字体点击变色,Android TextView 中实现部分文字变色以及点击事件
  11. php日期分页,php – Laravel分页不适用于日期搜索
  12. mbed OS - ARM关于物联网(IoT)的战略布局
  13. CSS图片重叠效果~秒懂
  14. 数学建模美赛历年优秀论文(O奖)
  15. cmd 卸载mysql_彻底卸载MySQL图文教程
  16. 转贴一组 Delphi 官方网站介绍 IDE 功能的动画
  17. RS-232C接口定义(DB9)
  18. 在office2003中打开office2007文件的补丁(.docx文件,pptx文件打开方法)
  19. CVPR2020/2021行人检测重识别等论文,共33篇
  20. (SQL)修改表结构[字段类型]、表字段长度,

热门文章

  1. cambridge phd in engineering
  2. c# typeof 与 Type.GetType 使用与效率对比
  3. Scala - 快速学习08 - 函数式编程:高阶函数
  4. JDK在centos和Ubuntu 三种安装方式
  5. designer.cs 删除后怎么恢复?(复制aspx修改名字后重新生成页面)
  6. Unbuntu 下安装node 环境
  7. (诊断)处理错误fatal error: Python.h: No such file or directory
  8. 职场中一路走来却拂不去一丝失落——一个女IT的告白
  9. fzu - 2164 Jason's problem
  10. Golang之理解错误输出