一个完整的Linux发行版本大概可以分为如下四个层次:
Base System ——> X protocal ——> Windows Manager ——> Application
(1). Base System
所谓的Base System, 也就是一个最小的基本系统,需要包含一些系统必备的开源组件,比如
kernel, filesystem, glibc, bash等。
(2). X protocal
当构建完一个基本系统后,这个系统只支持命令行终端字符模式,而无法支持图形化界面,如果想要
使得Linux系统支持图形化界面,必须要有X Protocal的支持,基于这样的一个协议,就可以在最小系统
的层次上,构建Linux的窗口管理器。
X Protocal仅仅是一个协议,对于这样一个协议,具体由什么来实现呢?在早期的时候,是通过XFree86
来实现X协议,经过多年的发展,XFree86硬经更替为今天的Xorg项目。
不管是XFree86,还是XOrg,在实现X协议的时候,都是基于C/S架构的,也就是X Server/X Client的交互
模式。如果我们需要支持图形化界面,就需要有X相关的组件来作为一个沟通的桥梁。
(3). Windows Manager
有了X层的支持以后,广大开源软件开发者或者组织,就可一基于这样一个接口,来开发上层的图形化窗口
管理器,即Windows Managr。比如KDE、GNOME等,这些图形化的桌面环境也就是对上面的提到的Xclient的
一种具体实现,来和X Server进行交流。
(4). Application
Application也就是指我们的上层图形化应用程序,比如LibreOffice办公软件,FireFox、ThunderBird等。
Linux大多数图形化应用程序都是基于Qt或者GTK+这两个开发套件来开发的,当然也就像Java、Python编写
的应用程序。
如下图所示: