Linux学习笔记:Linux的桌面环境

32 sec read

在了解桌面环境之前,必须要知道的是Linux本身没有图形界面,本身只是一个基于命令行的操作系统。具体实现是通过如下的机制进行实现的:

linux-gui

左边是Linux系统的架构,右边是Windows系统的架构,可以看到Linux比Windows中间多了一层,这就导致Linux在图形界面的性能要比Windows慢。但是苹果公司的 MAC OS (Unix系统)却是个例外,因为苹果公司在X Server与X Client之间所采用的协议是二进制,而其他Linux系统均是采用的纯文本。

在Linux系统中,可以在命令行系统中输入 startx ,X并不表示具体的软件,指的是协议。x.org则是实现x协议的服务器,相当于实现实现了HTTP协议的Apache、Nginx等,而各种X client 好比是不同的交互界面。主流的交互界面有:GNOME、KDE、XFCE和LXDE。各种不同桌面环境的区别:

  • GNOME 目前较流行的桌面环境了,主流的Linux发行版,如Ubuntu、CentOS等都以GNOME为默认桌面,GNOME 3的界面也非常的绚丽,操作手感有点类似与MAC OS X。
  • KDE 与GOME类似,但是界面等操作手感更像Windows,KDE的衰败是从KDE 3 升级到KDE 4的时候,中间出现了很多的不稳定版本,导致一些忠实粉丝转头到了其他阵营。
  • XFCE 相比GNOME和XKDE更加轻量,是Unix模块化、重用代码理念的践行者。其中包含各种功能的组件,各个组件划分成不同的包,用户可以自由选取需要的安装使用。
  • LXDE 比起其他桌面环境,LXDE占用更少的CPU、内存,是为上网本、移动设备、旧机器特别设计的轻量桌面环境。

了解了各个桌面系统的不同,其中又涉及到一个新的概念点,QT与GTK+,其中KDE是基于QT开发的,而GNOME、XFCE、LXDE均是基于GTK+进行开发的,两者有什么区别?

  • GTK+ GTK+使用C语言开发,用C写面向对象所比较复杂艰涩,而且充满大量宏,使用和除错都不是很容易。虽然在思想上比较先进,但是使用起来麻烦。
  • QT Qt是一个跨平台的C++图形应用程序框架,Qt是诺基亚的一个产品。 相比GTK+,Qt的最大优势面向对象,Qt的良好封装机制使得 Qt的模块化程度非常高,可重用性较好,对于用户开发来说是非常方便的。

GTK+和QT相当于Windows上的MFC。另外还有一个概念是Xlib。Xlib实际上是对底层X协议的封装,可通过该函数库进行一般的图形输出。由于Xlib的接口太原始而且复杂,因此一般的图形程序选择其他高级一些的图形库作为基础。所以才有了GTK、QT 等。Xlib、QT、GTK直接关系如下图:

xlib-qt-gtk

QT是直接使用xlib库的,GTK不能直接使用xlib,而是使用更低层的函数库GDK和Glib。这种结构使得Gtk可以更方便地移植到其它系统上,或使用与XWindows系统无关的图形库。

其他参考资料:

打赏作者
微信支付标点符 wechat qrcode
支付宝标点符 alipay qrcode

使用Python更换外网IP

在进行数据抓取时,经常会遇到IP被限制的情况,常见的解决方案是搭建代理IP池,或购买IP代理的服务。除此之外,还有一个另外的方法就是使用家里的宽带网络进行抓取。由于家里的宽带每次断开重新连接时都会分配一个新的IP,所以在我们抓取数据的时候,判断 ...
36 sec read

Python多线程与多进程

7 min read

Python Requests 抓取失败时的重试设置

最近在抓取数据的时候,经常遇到连接超时的问题,分析原因居然是DNS污染导致的,为了让程序更加稳健,需要对requests请求实现失败重试的逻辑。
2 min read

Leave a Reply

Your email address will not be published. Required fields are marked *