前一节内容大概介绍了一下Linux的历史由来,各大Linux发行厂商都是基于GNU项目下的所有开源软件,来构建各自己的Linux发行版本,一个完整的Linux发行版本大概可以分为以下四个层次结构:
Base System => X Protocol => Windows Manager => Application
1. Base System
所谓Base System,也就是一个最小的基本系统,需要包含一些系统必备的开源组件,比如:kernel, filesystem, glibc, bash等。
这个最小系统最终能达到的层次就是能够启动我们的命令行字符控制终端,也就是一个bash环境,这样一个最小系统可以精简、控制在几十M的大小以内。
2. X Protocol
当我们构建完了最小的基本系统以后,这样一个系统只支持命令行字符终端模式,而无法支持图形化界面,如果想要使我们的Linux系统能够支持图形化界面,必须要有X Protocol的支持,基于这样的一个X协议,就可以在最小系统的层次上,构建Linux的窗口管理器。
X Protocol仅仅只是一个协议,对于这样一个协议,具体是由什么来实现的呢?在Linux早期的时候,是通过XFree86来实现X协议,经过多年的发展,XFree86已经更替为今天的X.Org项目。
不管是XFree86, 还是现在的X.Org,在实现X协议的时候,都是基于C/S架构,也就是X Server 和 X Client 的交互模式。关于X Server 和 X Client 之间的关系,在接下来的一节中将详细介绍。在这里大家只需明确:如果我们需要支持图形化界面,就需要有X相关的组件来作为一个沟通的桥梁。
当然,X 并不是唯一的桥梁,有像Wayland这样的新生替代品也已经面世,只是目前尚不成熟,也许在未来的某一天,Wayland将会全面代替现在的 X。
3. Windows Manager
有了X层的支持以后,广大开源软件开发者或开发组织,就可以基于这样的一个接口,来开发上层的图形化窗口管理器,即Windows Manager, 比如我们熟知的KDE,Gnome, Xfce, Openbox等,这些图形化的桌面环境也就是对上面提到的X Client的一个具体实现,来和 X Server进行交互通信。
在一下章节中,将具体讲解X Server, X Client, Xlib, QT, GTK, KDE, Gnome之间的关系。
4. Application
Application也就是指我们的上层图形化应用程序,比如 Liberoffice办公套件,Firefox,Thunderbird,Pidgin等。
Linux系统中的大多数图形化应用程序都是基于QT或GTK+这两个开发套件来开发的,当然也有像Java, Python等编写的应用程序。
综上,Linux发行厂商组合上面所描述的四个层次的GNU项目组件,最终提供给用户一个完整的Linux操作系统,下面还是以一张结构图来展示这一节所阐述的Linux层次:
[注] 转载请注明出处,谢谢!