边缘思考 发表于 2004-11-1 23:53:09

请教高手关于KDE和gnome

有点不太清楚的请高手指教:
我知道KDE和GMOME都应该是LINUX的一种GUI.在LINUX里叫X WINDOWS吧.
不知道它俩有什么区别,请高手指教.多谢

边缘思考 发表于 2004-11-2 00:02:47

我是绝对的LINUX初学者.希望大家多帮助一下.拜托啦:wink:

fox_eagle2003 发表于 2004-11-2 00:04:40

X於1984年在麻省理工学院 (MIT)电脑科学研究室开始发展, 当时 Bob
Scheifler 正在发展分散式系统 (distributed system),同一时间 DEC公司
的 Jim Gettys 正在麻省理工学院做 Athena 计画的一部份, 两个计画都需
要一个相同的东西 ------ 一套在 UNIX 机器上优良的视窗系统. 因此合作
关系开始展开, 他们从史丹佛 (Stanford) 大学得到了一套叫做W的实验性
视窗系统, 因为是根据W视窗系统的基础开始发展,当发展到了足以和原先
系统有明显区别时,他们把这个新系统叫做X.

严格地说, X视窗系统并不是一个软体, 而是一个协定 (protocal),这
个协定定义一个系统成品所必需具备的功能 (就如同 TCP/IP, DECnet 或
IBM的 SNA,这些也都是协定, 定义软体所应具备的功能).任何系统能满足此
协定及符合X协会其他的规□, 便可称为X.
Xinit - 初始(initialization)程式, 启动系统和设定Server执行.

Xdm - X显示管理器(display manager),一个提供便利和弹性地启动系统
, 使系统启动成个别需求的程式, 可以和 Xinit两者择一.

Uwm - X视窗管理器(Window Manager), 此程式决定如何管理你的 "案头"、
移动视窗、重定视窗大小等等, 你可以利用选单结合滑鼠的按钮
或键盘完成视窗操作.

只有Server程式是绝对必需的, 不需其它的程式, 你就可以在X系统上
跑其它的应用程式 (虽然笨了一点). (Xinit 等程式可由其它相同功能程式
替代.)

以上程式包含了视窗系统, 但除了在视窗上移动游标外, 什麽事也不能
做. 因此实际上, 你需要更多的公用程式和应用程式.

以下的工具程式并不是视窗系统的一部份, 但它们是你要更方便的使用
系统或利用系统做更多的事所不可或缺的, 它们分为以下两个部份:

1. 视窗系统操作常用工具程式

只要你用视窗系统代替一般的电脑终端机, 这些程式几乎是天天需
要的:

xterm - X终端机模拟器 (terminal emulator), 你的系统内大多
数的程式并非特别为使用视窗系统设计. 举例来说, 一些
最普通的系统程式 -- 列出档案目录, 编辑器, 编译器等,
它们在普通的终端机可以正常的执行, 可是它们如何在连
视窗系统是什麽都不知道的情况下, 在X下操作? Xterm
就是建立一个X的视窗, 且允许这些普通的 "笨哑终端机
(dumb terminal)"程式能够在这个视窗中执行的工具程式.
这些普通程式会认为它们是在 "真的" 终端机上执行. 当
然, 你也可以用xterm 去启动其它的X程式而并非一定是
那些普通程式.

xhost - 让你控制网路上那些被允许存取你的显示萤幕的其他主机。

xkill - 一个可杀掉不想要之应用程式的工具程式。

xwd - 将你视窗内目前的影像倾印 (dump) 到一个档案中,使得你可
以在稍後重建这个视窗、列印它或做一些你想做的事。

xpr - 将先前 xwd所抓取 (capture)的视窗影像转换成适合硬拷贝
(hardcopy)印出的格式.

xdpr - 结合了 xwd和 xpr,允许你在一个步骤就印出视窗的内容.

xmag - 将萤幕上被选取的一部份影像加以放大。

xwud - 将先前 xwd所抓取的视窗影像重新显示於萤幕上。

x10tox11 - 将能在第10版X执行的程式转换成可在第11版执行。

xrefresh - 更新 (refresh)显示, 将某些或全部的视窗全部重画
一遍。

2. 便利的程式

xclock - 一个指针或数字型的时钟。

xclac - 一个计算器,可模拟科学工程型的计算器。

xload - 用累计图 (histogram)来显示目前机器的负载分布。

xbiff - X版的 biff,信件到达告知 (barfs if mail arrives) 程
式,xbiff 会显示一个信箱的表徵图,当信箱上的旗子升起时,
表示有你的信。
X不像早期的视窗系统,把一堆同类软体集中在一起,而是由三个相关的
部份组合起来。

1. 一个"server"(供应者):是控制实际显示器和输入装置的程式。

2. "Client" (顾客) 程式:需藉著server在指定的视窗中完成特定的
操作。

3. 一个 "通讯通道(communication channel)":client和server用来作
为彼此交谈之用。

基本的"server","client"和 "通讯通道" 的关系图如图2-1 。

┌??????????????????????????????????????????
│ p16 fig 2.1 │
│ │
│ 图 2-1 X的基础成员 │
└??????????????????????????????????????????

底下我们描述一下这三个部份。

Server是控制实际显示器和它的输入装置 (键盘和滑鼠或其它指示装置)
的软体,server可以建立视窗、在视窗中画图形影像和文字、回应client程式
的 "需求" (requests),它不会自己动作,只有在client程式提出需求後才完
成动作。

每一个显示器只有一个唯一的server。server一般由系统的供应厂商提供
,通常无法被使用者修改。针对作业系统而言,server只是一个普通的使用者
程式而已,因此很容易换一个新的版本,或许甚至是由第三集团提供的原始程
式 (注1) 。

注1:这是Unix系统上的情况,有些供应厂商会选择将server的部份或全部放
在作业系统核心(kernel)。
Client是使用系统视窗功能的一些应用程式。把X下的应用程式称作
"client",原因是因为它是server的 "顾客" :它要求server应它的需求
完成特定的动作。

Client无法直接影响视窗或显示,它们只能送一个 "需求" (request) 给
server,让server来完成它们的需求。典型的 "需求" 通常是: "在 XYZ视窗
中写一列 'Hello, world' 的字串" ,或 "在 CDE视窗中用这种颜色从 A点到
B点画一条直线" 。

当然,对视窗操作提 "需求" 只是client程式的一部份,其它的部份是那
些让使用者执行的程式部份。例如:编辑文字、画一个系统的工程图、执行计
算表的计算等等。一般来说,client程式的这个部份和视窗是独立的,对於视
窗几乎不需要知道什麽,通常 (特别是指大型的标准绘图套装软体,统计套装
软体等) 应用程式对许多的输出装置具有输出的能力。在X视窗上的显示只是
client程式许多输出格式中的一种,所以,client程式中和X相关的部份在整
个程式中,只占了非常小的一部份。

使用者可由不同的来源来使用client程式:一些是由系统提供的 (例如时
钟) ,一些来自於第三集团,一些是使用者为了特殊应用而撰写他自己的client
程式。

X的第三个元素为通讯通道,client藉著它送 "需求" 给server,而server
藉著它回送状态 (status) 及一些其它的资讯 (information)。

只要 client 和 server 都知道如何使用通道,通道的本身并不是很重要
,在系统或网路上支援通讯型态的需求是内建於系统基本的X视窗函数馆(library)
,所有和通讯型态有关的事都从函数馆独立出来,client和server之间的通讯
只要藉著使用这函数馆(在标准X版为xlib)即可,如图2-2 。

┌??????????????????????????????????????????
│ p17 fig 2.2 │
│ │
│ 图 2-2 xlib函数馆的功能│
└??????????????????????????????????????????

总结来说,只要client程式利用函数馆,自然有能力用到所有可用的通讯
方法。

Client和Server通讯大略分为两类,相对应於二种基本X系统的操作模式:

1. server和client在同一部电脑执行,则它们彼此均可使用机器上任何
可用的方法做交互处理通讯(inter-process communication
(简称IPC)), 见图2-3
,在这种模式下,X可以像许多传统的视窗系统一样有效率
的操作。

┌??????????????????????????????????????????
│ p18 fig 2.3 │
│ │
│ 图 2-3 在相同机器上的 │
│ client和server │
└??????????????????????????????????????????

2. client在一部机器上执行,显示器和server则在另一部机器上,则
client和server的通讯必需透过网路利用彼此同意的协定(protocol)
方可。目前,最常见的协定为TCP/IP和DECnet,但其它任何被提供的
可信赖地协定亦可使用。图2-4 显示一个典型的Ethernet网路的通讯。

┌??????????????????????????????????????????
│ p18 fig 2.4 │
│ │
│ 图 2-4 在不同机器上的 │
│ client和server │
└??????????????????????????????????????????

这种透过网路,使得应用程式的操作,如同在本地机器一样的能力称
为网路透通性(network transparence),几乎是X独一无二的特性
(注1)。这种特性使得它非常适合建立在有弹性地多目标混合机器
网路上。

注1:有几种例如Sun Microsystems 的NEWS的视窗系统有使用到网路结构,
但没有一种被广泛地使用,而有超过一家以上的制造厂商使用它们。

因为client和server完全独立,一种名之为X-terminal 的新型态显示器
被发展出来。简单的说,X-terminal 是一种除了能直接在上面执行X server
程式外,什麽也没有的工作站,它有键盘,滑鼠和萤幕,以及一些和网路互相
通讯的方法(所以在其它主机上的client可在它上面显示),但并没有档案系
统,也不提供一般目的 (general purpose)的程式,一般目的的程式需要在网
路上执行。

kde或是gnome只是建立在X上的client端而已,负责把用户与X server之间的
交互罢了




X是平台,gnome和kde是在这平台上运行的软件。

hew 发表于 2004-11-2 00:07:08

gnome和kde 应该算是桌面环境,窗口管理器+软件工具的整合。

边缘思考 发表于 2004-11-2 00:12:54

多谢多谢!先收了.回去慢慢看

tonnyxu 发表于 2004-11-3 01:38:02

看了楼上大侠的,你肯定晕了吧?我来说句简单的:我看两个实在是差不多。你两个都可以尝试一下,觉得哪个顺手就用哪个。不过我现在用的是xfce,和他们两个差的比较远,xfce属于简洁快速的,绝对干净利落。kde和gnome相比,我的感觉kde更好,使用方面更像windows那样方便(虽然xp骂声很多,不过你不能否认它的易用性还是很高的八?)另外速度方面好像也kde快些(也有人说gnome快,我这里kde快)。好了,简单吧?嘿嘿。

gucuiwen 发表于 2004-11-3 09:39:21

关于linux图形界面的基本知识[新手必读]


很多LINUX的初学者分不清除linux和X之间,X和Xfree86之间,X和KDE,gnome等之间是什么关系.常常混淆概念,我想以比较易于理解的方式说明一下X,X11,XFREE,WM,KDE,GNOME等之间的关系.由于本人水平有限肯可能存在错误,请高手指正.

一,linux本身没有图形界面,linux现在的图形界面的实现只是linux下的应用程序实现的.

图形界面并不是linux的一部分,linux只是一个基于命令行的操作系统,linux和Xfree的关系就相当于当年的DOS和WINDOWS3.0一样,windows3.0不是独立的操作系统,它只是DOS的扩充,是DOS下的应用程序级别的系统,不是独立的操作系统,同样XFree只是linux下的一个应用程序而已.不是系统的一部分,但是X的处在可以方便用户使用电脑.WINDOWS95及以后的版本就不一样了,他们的图形界面是操作系统的一部分,图形界面在系统内核中就实现了,没有了图形界面windows就不成为windows了,但linux却不一样,没有图形界面linux还是linux,很多装linux的WEB服务器就根本不装X服务器.这也WINDOWS和linux的重要区别之一.

二,X是协议,不是具体的某个软件:

X是协议,就像HTTP协议,IP协议一样,这个概念很多初学者甚至学习LINUX有一定时间的人都混淆,一个基于X的应用程序需要运行并显示内容时他就联接到X服务器,开始用X协议和服务器交谈.比如一个X应用程序要在屏幕上输出一个圆那么他就用X协议对X服务器说:喂!我需要在屏幕上画一个圆.X应用程序只负责告诉X服务器在屏幕的什么地方用什么颜色画一个多大的圆,而具体的"画"的动作,比如这个圆如何生成,用什么显卡的驱动程序去指挥显卡完成等等工作是由X服务器来完成的.X服务器还负责捕捉键盘和鼠标的动作,假设X服务器捕捉到鼠标的左键被按下了,他就告诉X应用程序:亲爱的应用程序先生,我发现鼠标被按下了,您有什么指示吗?
如果X应用程序被设计成当按下鼠标左健后再在屏幕上画一个正方形的话,X应用程序就对X服务器说:请再画一个正方形,当然他会告诉服务器在什么地方用什么颜色画多大的正方形,但不关心具体怎么画--那是服务器的事情.

那么协议是需要具体的软件来实现的,这就是下面我要讲的:

三,X和XFree86的关系.

有了协议就需要具体的软件来实现这个协议.就好比我们有了交通法规就需要交警去根据法规维护交通秩序一样.XFree86就是这样一个去根据法规实现协议的"交警".他按照X协议的规定来完成X应用程序提交的在屏幕上显示的任务.当然不仅仅是某个特定的交警才可以去维护和实现这个法规,比如还可以由交通协管员来实现交通法规,必要的时候警察也可以介入,当然前提是他们都要懂得交通法规,也就是要懂得协议.所以实现X协议的软件也并不只有XFree86,XFree86只是实现X协议的一个免费X服务器软件.
商业上常用MOTIF,现在还有XORG,还有很多很小的由爱号者写的小的X服务器软件.甚至可以在WINDOWS上有X服务器运行,这样你可以在linux系统上运行一个X应用程序然后在另一台windows系统上显示.多么神气.你可以用google找到这样的X服务器软件.
只不过在LINUX上最常用的是XFree86.顺便说一句,苹果电脑的图形界面用的也是X协议,而且被认为是做的最好的X协议图形界面,并且他对X协议的实施是做在系统内核里的,所以性能明显好很多,这就是为什么很多大型三维图形设计软件都是在苹果平台上的原因.

为了便于理解拿HTTP协议来比较:
协议是HTTP (hyper text transmission protocol)
实现这个协议的常用服务器有:apache IIS 等
请求这些服务器传输文件的客户有:IE ,MOZILLA ,NETSCAPE等.


四,X和X11R6又是什么关系?

不知道初学者有没有注意到/usr/X11R6这个目录,这是XFree的默认安装目录
X11R6 实际上是 X Protocol version 11 Release 6
(X协议第11版第六次发行)的意思,就是说目前用的X协议是第11版的,然后经过了6次小的修正.不同版本的X协议是不能通信的.就象我们现在IPV4和IPV6不能通信一样,不过不用担心,现在的X服务器软件和X应用程序都遵循X11R6.

另外XFree86 3.3.6 XFree86 4.3.6 等这些版本是实现X协议的软件XFree86的版本号.这是初学者经常高混淆的概念.

协议版本和实现协议的软件的版本--这两个概念的区别你分清除了吗?

五,X服务器和WM(window manager 窗口管理器)之间是什么关系.

平时大家起动图形界面是怎么启动的呢?
如果你是一开己就进入图形界面那就太遗憾了.应为你错过了了解X服务器起动过程的好时机.不过没关系.你打开一个XTERM输入:

init 3

就可以安全的回到字符界面.


好了,等做完以下实验你就完全明白X和WM(window manager 窗口管理器)之间是什么关系了.

先输入以下命令:
#startx

起动图形界面,你看到的是一个和平时使用一样的完整的图形界面操作环境.
你可以最大化,最小化,移动,关闭窗口等.

按ctrl+alt+backspace反回字符界面.

输入:
#xinit

再次启动图形界面,你看到了什么,你看到一个XTERM.而且不能移动.但是你可以在这个XTERM中输入命令打开X应用程序,如故我输入:
#mozilla
打开浏览器,你看到的浏览器和平时有什么不同吗?他在屏幕中间,不能移动,不能最小化,不能最大化,没有边框.

为什么同样一个X应用程序会有这样的不通呢?因为我们用startx起动图形界面的时候同时也启动了一个WM(即窗口管理器),如果你用KDE就起动了KDE,如果你用GNOME就起动了GNOME.但是你用xinit起动图形界面的时候却没有起动WM.

现在你明白窗口管理器的作用了吗?他的作用就是最大化,最小化,移动,关闭窗口等.而这些不是X服务器来负责完成的.



如果你用xinit起动图形界面并在xterm中输入twm,看看会有什么?
xterm被加上了一个边框,你可以通过这个边框移动,最大化,最小化这个xterm,twm就是XFree86中自带的窗口管理器,是一个比较简陋的最简单的窗口管理器,但是他具有窗口管理器的全部特征.

如果你不输入twm而输入gnome-session就可以起动GNOME
或者输入startkde起动KDE.

通过以上的实验你就可以清楚的明白他们之间的关系.

六,关于KDE和GNOME

KDE和GNOME是LINUX里最常用的图形界面操作环境,他们不仅仅是一个窗口管理器那么简单,
KDE是KING DESKTOP ENVIRMENT (桌面环境之王)的缩写.他不仅是一个窗口管理器,还有很多配套的应用软件和方便使用的桌面环境,比如任务栏,开始菜单,桌面图标等等.

GNOME是GNU Network Object Model Envirment 的缩写.和KDE一样,也是一个功能强大的综合环境.

另外在其它UNIX系统中,常常使用CDE作为这样一个环境.

其它的小型窗口管理器有:
window maker,after step,blackbox,fvwm,fvwm2,等等都是常用的优秀窗口管理器.REDHAT9中有 window maker 但是默认不安装,大家可以装来试试.只要xinit再wmaker&就可以用windowmaker了.



七,linux图形界面层次关系总结

linux本身--> X服务器--> 窗口管理器(综合桌面环境)

-->X应用程序.


以上就是linux图形界面的大概情况.
本人也是从各种书籍和资料上看来的,难免有理解错和看错的地方.说的不对的地方欢迎大家交流.

email :[email protected] author :gucuiwen

边缘思考 发表于 2004-11-3 15:10:50

受受益非浅啊,多谢楼上各位的高手指教.以后有问题还要请各位多帮忙

lizhuoru 发表于 2004-11-3 15:42:57

KDE是KING DESKTOP ENVIRMENT (桌面环境之王)的缩写
kde是k desktop environment
再说king desktop envirnment既不合语法,拼写还有错误

linky_fan2 发表于 2004-11-3 15:47:29

据说之所以用K是因为K在L(inux)之前,K无任何意思。

troll 发表于 2004-11-3 16:10:15

K最早代表Kool,不过现在已经没有什么特殊含义了,就象linky_fan2所说的那样。

边缘思考 发表于 2004-11-3 21:33:09

好像有点又点跑题了 :?

hong_1230 发表于 2004-11-3 22:39:23

哈哈,我觉得高手们回答问题真逗,喜欢讲大道理

边缘思考 发表于 2004-11-4 15:38:11

理论知识也是要的嘛
页: [1]
查看完整版本: 请教高手关于KDE和gnome