注册 登录
  • 欢迎访问"运维那点事",推荐使用Google浏览器访问,可以扫码关注本站的"微信公众号"。
  • 如果您觉得本站对你有帮助,那么可以扫码捐助以帮助本站更好地发展。

Linux图形化界面浅讲

系统初识 彭东稳 8178次浏览 已收录 0个评论

Linux桌面相关组件介绍

平时使用Windows的用户一定熟悉图形化界面,而UNIX/Linux的图形环境与纯图形化的Windows并没有多少共同点。对于一个习惯了Windows的用户来说,要正确理解UNIX/Linux的图形环境可能是有点困难。Windows是从DOS开始一步一步发展起来的。从Windows95开始微软将图形化界面作为默认启动,命令行界面只有在需要的情况下才开启。在windows 2000之后,DOS被彻底抛弃了,Windows成为一个完全图形化的操作系统。而Linux实际上是以UNIx为模板的,无论系统结构还是操作方式都与UNIX无异,可将它看成是类UNIX系统中的一个特殊版本。它继承了unix内核设计精简,高度健壮的特点。并且强大的命令行始终是它们的基础,Linux不可能放弃这个光荣传统的。但是识时务者为俊杰,图形界面风潮席卷操作系统业界,Unix系统肯定不甘心落后,在上个世纪八十年代,MIT1984年与当时的DEC公司合作,致力于在UNIX系统上开发一个分散式的视窗环境,这便是大名鼎鼎的“X Window System”项目。

 

X Window不是一个直接的图形操作系统,而是作为图形环境与Unix系统内核沟通的中间桥梁,任何厂商都可以在X Window基础上开发出不同的GUI环境。MITDEC的目的只在于为UNIX系统设计一套简单那的图形框架,以使UNIX工作站的屏幕上可现实更多的命令,对于GUI的精美程度和易用程度并不讲究。因为那个时候能熟练操作Unix的都是习惯命令行的高手,他们不在乎GUI存在与否。经两年的努力,在1986年,MIT正式发行了X Window,此后它便成为Unix的标准视窗环境。紧接着,全力负责发展该项目的X协会成立,X Window进入了一个崭新的阶段。与此同时,许多UNIX厂商也在X Window原型上开发适合自己的Unix GUI视窗环境,其中比较著名的有SunAT&T联手开发的“open look”、以及后起之秀的XFree86。致力于在X86系统上开发X Window。他们开发的免费且功能完整的X Window很快就进入了商用Unix系统中,并且被移植到多种硬件平台上。后来,Linux也直接从该项目中获益。当然,这些早期的X Window环境都设计的很简单。许多Gui元素模仿于微软的windows。由于GUI元素功能越来越丰富,Linux桌面系统也随之发展。KDEGnome桌面系统就有X Window的功劳。

 

X Window是一种图形应用的标准,作为一个应用存在,拥有很强的设计灵活性和可移植性。从逻辑上了解它,它可以被分为三层:

X Server:最底层的X服务器,主要处理输入输出信息并维护相关资源,它接受来自键盘、鼠标的操作并将它交给X Client作出反馈,而又X Client传来的输出信息也由它来负责输出。

X Client:处在最底层,负责与用户的直接交互,但它不能直接控制显示设备,只能使用用户面前的X服务器提供的显示资源。例如KDEGnome都是X client

X ProtocolX通信协议,衔接X ServerX Client,它的任务是充当这两者的沟通管道。

如图:

Linux图形化界面浅讲

 

尽管Linux厂商都采用相同的X Window,但由于终端的X Client并不相同,各个厂商发行的Linux所搭配的GUI界面看起来就可以非常不一样。需要特别指出的是X window system采用C/S结构,是一种特殊的C/S关系,和我们常见的C/S不同。X Server也不是我们以前理解的服务器的概念。通常X serverX Clinent运行在同一台机器上,但是它也支持远程模式。X clientX server各司其职,X Client与硬件无关,它不关心什么显卡什么显示器什么鼠标键盘的,这些事情都留给X server。我们平常安装完XFree86后运行xf86configxf86cfg实际上就是配置X Server

 

X Xindow整个运行过程如下:

1.用户通过鼠标/键盘对X Server下达操作命令
2.X Server利用Event传递用户操作信息给X Client
3.X Client进行程序运算
4.X Client利用Request传回所要显示的结果
5.X Server将结果显示在屏幕上

在运行过程中,X ServerX Client的交流是靠X Protocol穿针引线的。X Protocol是一个以包为基础的协议。X Client可以在不同的机器上运行,X Protocol使用TCP/IP等网络传输服务通过LAN路由到X Server。当X ServerX Client运行在同一个机器上,就使用Linux系统内部的进程间通信方式,最快的通信渠道就是Unix套接字。报文分组传输时会限制一次传输数据的最大长度,如果传输数据超过规定的最大长度,发送结点就将它分成多个报文分组发送。X Protocol的架构组成分为以下几个部分:窗口管理器、应用文件管理器、应用之间的接口和协议。

 Linux桌面程序介绍

Xorg

早期Linux所使用的X Window的主要核心都是由XFree86这个项目提供的。但是现在的X11X window的版本号)现在是由Xorg组织提供服务。XFree86X.org虽然这两个软件名字上差别有些大但实际上是一个软件的不同分支、1992-2004年间就只有XFree86、且跟Linux内核一样以GPL许可证发行、但是2004年就发生了变化,XFree86的开发商公司改变了许可证。这引起了GNU社区的极大不满、于是从XFfree86 4.4衍生了xorg。目前几乎所有开源的类UNIX操作系统使用的都是xorg

/etc/X11/目录下有xorg.conf配置文件。它的作用就是配置X Server,设置鼠标、键盘、显示器以及显示卡等,这样才能启动X Window系统。

了解Linux系统的人都知道;只听说桌面有KDE或是GNOME并没有听说xorg这东西、而且还听说桌面系统都是X提供的;下面就说说它们之间的关系首先X是一种协议类似HTTP;而xorg则是实现X协议的服务器软件、xorg通过X协议来提供图形用户桌面服务,所以Linux上的那些拥有图形用户界面的软件实际都是xorg的客户端、它们利用X协议让xorg在屏幕上画出窗口或通过xorg获得键盘和鼠标事件。当然为了运行这些软件也就需要一个前提、xorg这个服务必须是启动的。现代大多数Linux发行版的默认安装都是自动支持图形用户界面的、也就是说它们会在系统启动之后自动执行xorg。而这些xorg的客户端还有一个专有名称窗口管理器window manager。诸如大家熟悉的KDEGNOME就是Centos下的窗口管理器。

 

KDE介绍

独立安装KDE(先配置好YUM)

yum groupinstall “X Window System”

yum groupinstall “KDE Desktop”

KDE是由德国人Matthis Ettrich1996年开始的一个计划;当时的Unix桌面没有一个应用程序的外观、感受或工作方式与其他程序一样、于是Matthias Ettrich就建议不仅是创建一套应用程序、而是要创建一个桌面环境能让用户拥有相同的外观、感受和工作方式;于是KDE诞生了。虽然KDE是给Unix的、视乎跟Linux没有什么关系,但是由于Linux是类Unix所以可以坐享这些成果;这也是Linux的优势。

KDE完全采用QT程序库开发的、虽然Qt是开放源代码的软件、但是在KDE早期的时候Qt并非是自由软件。这与KDE的自由软件授权相冲突所以很多人会担心惹上版权麻烦尽量避免使用KDE、这成为KDE初期推广的障碍;后来1998Qt程序库所属的公司发布了第一份自由软件许可QPLQt程序库授权;由于QPL授权与GPL上的某些条款不相容。这导致了red hat公司始终无法将KDE当默认桌面;直到2000年一个基于GPL协议的Qt程序库发布、大部分用户才对KDE生出信心。但是到2008Qt4相对与Qt3做了较大幅度的调整;所以KDE转投Qt4则必须做较大改动甚至重写、所以后来很长一段时间没有新的KDE版本使用。后来KDE4出来之后严重遭到各种吐槽知道4.2才稳定下来。

Qt其实是一个非常优秀的C++跨平台图形界面开发库,几乎可以媲美java的跨平台特性。不同的是java能够一次编译导出运行,而Qt是可以一次编码到处编译。也正因为如此,KDE已经被一直到了几乎所有硬件和操作系统平台上。现在的KDE已经不单单是一个桌面环境吗,他几乎就是基于Qt开发的程序的庞大集合。是Qt的一个超级平台。这里拥有功能异常丰富的应用,包括各种跨平台组件、办公套件和开发套件等。几乎可以找到任何Qt应用的样板。而且从任何角度来看Qt都是用C++开发跨平台图形应用的首选程序库、最新的WPS就选择了Qt;在安装操作系统的时候定制软件包组就可以选择安装KDEGnomeKDE的操作习惯与windows更接近。

 

 GNOME介绍

KDE受版权困扰和没有新版本可用的时候;陪伴在人们身份的是GNOME桌面;虽然GNOME3使得Nome从能用变得不能用了但是Gnome2是不可磨灭的经典、GNOMEGNU网络对象模型环境英文的缩写;它是GNU计划的一部分、开放源代码运动的重要组成部分。为Unix或者类Unix操作系统构造一个功能完善、操作简单以及节目友好的桌面环境。它是GNU计划的正式桌面。

GNOME主要是为了当初使用没有采用GPL授权的QtKDE而出现的。GIMP toolkit就成了Qt的替代者。担当GNOME桌面的基础。GTK+使用LGPL许可证授权。Gnome本身是使用C语言编程的、但并不受限于C这种单一语言。GNOME提供了两个东西一是GNOME桌面环境。一个对最终用户来说符合直觉并十分吸引人的桌面。

 

XFCE介绍

KDEGNOME虽然雍容华贵、但是也恰恰就有些太过“雍容”,对于喜欢“清谈”口味或只有“小马力战车”的人,XFCE是一个相当不错的选择。XFCE是一个轻量级的Linux或类Unix的桌面系统。XFCE的设计目的就是;快速加载并用来执行程序,且占用系统资源少。

XFCE的使用率仅次于KDEGNOME的桌面环境。各大发行版基本都会将其作为可选桌面提供。XFCEGNOME一样也是基于GTK+开发的。


如果您觉得本站对你有帮助,那么可以支付宝扫码捐助以帮助本站更好地发展,在此谢过。
喜欢 (0)or分享 (0)
关于作者:

您必须 登录 才能发表评论!