GNOME、KDE是什么

GNOME:GNU Network Object Environment(什么是 GNU:https://blog.woyou.cool/post/2202

KDE:Kool Desktop Environment

早期 windows 只是 DOS 下的一个软件,启动 DOS 系统后只会进入命令行环境,需手动启动 windows 才会进入桌面环境

后面又将 windows 写入内核,每次启动系统后自动打开 windows 进入桌面环境,相当于设置了开机自启动。随着 windows 与内核的耦合性不断增大,windows 逐渐成为内核的一部分,成为了 windows 系统,并在后面彻底抛弃了 DOS 实现了翻身农奴把歌唱。

若将 linux 类比早期的 DOS 系统,则 KDE 和 GNOME 则类比于两个不同的 windows 软件,直观来说,KDE风格和windows系统类似,而GNOME则更像macos一些。

故现在 linux 系统是可以切换和选择不同的桌面环境的,例如 ubuntu 默认使用 GNOME,但可以再安装 KDE,启动系统后就可以选择使用哪一个桌面环境

安装教程:https://zhuanlan.zhihu.com/p/338666316

你也可以将 KDE 和 GNOME 类比为 Unity3D 和 UE 两种游戏引擎,或者 chrome 和 firefox 两种内核的浏览器,它们的作用就是渲染各种不同的界面,但其底层实现是不同的。

早期unix或linux没有桌面环境,后来有人开发出一套GUI接口(只是对资源的调度,并不是UI的渲染),称为 X Window,任何人都可以基于它开发出自己的GUI环境。

X Window 分为三层,unix内核、X server 和 X client。

X server 负责与unix内核通信,接收输入输出并维护系统相关资源,X client负责渲染GUI界面。可以简单将三者理解为 webUI、后台服务、数据库 三个关系。

而上述的 GNOME、KDE等就是 X client 的实现,这就是为什么可以在一个系统上安装多种GUI界面。因为它们使用的 x server 是相同的(相当于调用的API相同,而只是显示UI的不同)

从渲染方式上来说,它们的区别是 gnome 使用 gtk 而 kde 使用 qt

开发不同的GUI桌面就好比开发不同的游戏,你总不可能给每个游戏单独开发一个游戏引擎吧。而这里的 gtk 和 qt 就是GUI的渲染引擎。同样你也可以使用这些东西取开发新的GUI桌面。

最开始只有KDE,但它从一开始就打算面向商业的,就选择了qt作为渲染引擎,但qt是需要授权使用的,这就为KDE的后续发展造成困难。一些有志之士就说,与其被束手束脚,我们为什么不抛弃qt重新开发一套GUI环境呢,于是就有了 GNOME,它使用完全免费开源的 gtk 作为渲染引擎。而 GNOME 一开始就是冲着民用去的,所以其尽可能减少配置项,所以就参考了macos

后来使用 X window 体系的一些缺陷就暴露了出来,现在又开发出了 Wayland 体系,广受欢迎,GNOME 和 KDE 一看势头不对,立刻就开发了基于 Wayland 的分支。现在ubuntu默认就是使用 wayland 的,你也可以在启动时切换成 x window

xorg 就是 x window server 的实现(ubuntu on Xorg 指的就是基于 x window 的 GNOME,因为ubuntu默认使用基于wayland的GNOME),当然,如果你又安装了KDE或其他GUI环境,这里就会有更多选项

参考:https://blog.csdn.net/wankaiming/article/details/7696439

https://www.zhihu.com/question/503270852

Leave a Comment