前一节内容大概介绍了一下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层次:
 

Linux体系结构(二): Linux系统层次的更多相关文章

  1. Linux基础系列—Linux体系结构和Linux内核结构

    /** ****************************************************************************** * @author    暴走的小 ...

  2. Linux(二) 系统远程访问

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 1. Why?为什么需要远程访问? 人和人之间对话有两种方式,一种是面对面直接交谈,另一种是打电话. 我 ...

  3. linux 问题二 查看系统是32位还是64位

    方法: 1.uname -a 2.uname -m 3.file /sbin/init 4.arch 5.Settings -> Details 说明: 1. i386 适用于intel和AMD ...

  4. Linux入门(二)Linux基本命令及基本操作

    1 常用Linux命令 图形界面进入到字符界面: ctrl+alt+F2~F6 字符界面进入到图形界面:ctrl +alt+F7 查看本机ip:  ifconfig  (windows是:ipconf ...

  5. linux学习(二)-----Linux 的目录结构、远程登录、vi和vim

    linux目录结构 基本介绍 linux 的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录“/”,然后在此 目录下再创建其他的目录. 目录结构具体介绍 Linux 目录总结 1.lin ...

  6. linux体系结构与内核结构图解

    1.当被问到Linux体系结构(就是Linux系统是怎么构成的)时,我们可以参照下图这么回答:从大的方面讲,Linux体系结构可以分为两块: (1)用户空间:用户空间中又包含了,用户的应用程序,C库 ...

  7. 转载-lvs官方文档-Linux服务器集群系统(二)

    Linux服务器集群系统(二) LVS集群的体系结构 章文嵩 (wensong@linux-vs.org) 2002 年 4 月 本文主要介绍了LVS集群的体系结构.先给出LVS集群的通用体系结构,并 ...

  8. Linux学习之二-Linux系统的目录结构

    Linux学习之二-Linux系统的目录结构 在Linux的根目录下,有很多的目录,但是需要记住,对于Linux而言,一切皆文件.因此此处的目录也是文件.用ls / 命令就能看到根目录下的各类不同的目 ...

  9. Linux服务器集群系统(一)--转

    引用地址:http://www.linuxvirtualserver.org/zh/lvs1.html LVS项目介绍 章文嵩 (wensong@linux-vs.org)2002 年 3 月 本文介 ...

随机推荐

  1. Nginx 安装编译配置

    ./configure --prefix=/usr/local/nginx-1.8.0 --with-http_ssl_module --with-http_spdy_module --with-ht ...

  2. Interview----最长连续乘积字串

    题目描述: 给一个浮点数序列,取最大乘积连续子串的值,例如 -2.5,4,0,3,0.5,8,-1,则取出的最大乘积连续子串为3,0.5,8. 也就是说,上述数组中,3 0.5 8这3个数的乘积3*0 ...

  3. FR #2题解

    A. 考虑把(u,v)的询问离线挂在u上,然后dfs,每次从fath[x]到[x]相当于x子树dis区间加1,x子树以外区间-1,然后维护区间和区间平方和等. 常数略大. #include<io ...

  4. MySQL数据库系统概述

    了解MySQL数据库管理系统,内容如下:   一.基于数据库的PHP项目       目前动态网站都是基于数据库,将网站内容使用数据库管理系统去管理       用户, 栏目, 图片, 文章, 评论都 ...

  5. PHP面向对象中常用的关键字和魔术方法

    PHP面向对象中常用的关键字 final        1.final不能修饰成员属性(类中常量不是用这个关键字)        2.final只能修饰类和方法 作用:            使用fi ...

  6. The Cow Lineup_找规律

    Description Farmer John's N cows (1 <= N <= 100,000) are lined up in a row.Each cow is labeled ...

  7. Android Focusable in Touch Mode 介绍

    在学习 ListView 源码时,发现了 Focusable in Touch Mode 这个概念,注释的意思是: whether this view can receive focus while ...

  8. jquery 轮播图

    slider.js (function(){ /** parent //父容器 changeTime //每次间隔几秒切换下一条 leaveTime //鼠标从小图上离开过后几秒继续切换 index ...

  9. 英文VS2010安装中文版MSDN文档方法

    英文VS2010安装中文版MSDN文档方法 2010-06-01 11:52 by 李永京, 51409 阅读, 50 评论, 收藏, 编辑 在2010年4月12号发布Visual Studio 20 ...

  10. iOS-TCP/IP、Http、Socket的区别

    网络由下往上分为 物理层.数据链路层.网络层.传输层.会话层.表示层和应用层. 通过初步的了解,我知道IP协议对应于网络层,TCP协议对应于传输层,而HTTP协议对应于应用层, 三者从本质上来说没有可 ...