从使用层次上来看, GNU/Linux体系结构分为两层:

1. 用户空间:C库、用户应用程序

2. 内核空间:系统调用接口、内核、硬件平台依赖代码

当然实际上,我们操作系统一般是会访问系统资源---硬件,所以在以上两层之下,还有硬件层。所以共三层。

 

GNU/Linux系统组成

深入理解linux架构 linux系统架构有哪些_bash

 

如图所示,你看到内核空间中内核有五大作用(详细点的介绍请看:):

1. 进程管理

2. 内存管理

3. 文件系统支持

4. 设备控制

5. 网络服务

 

看到这里可能会对shell有困惑,它到底是个啥东西?

Shell功能有二,一可以说是软件(命令解析器),为使用者提供操作界面,应用空间和内核空间沟通的桥梁;二可以说是一种交互式命令语言,支持控制/循环/函数等高级语言语法,可以组合各种命令到一个脚本文件中,然后进行按照特定逻辑连续处理。

 

Shell的类型有很多,所以在使用方式上,有命令行式的,也有图形界面式的。在UNIX中主要有:

1. Bourne shell (包括 sh,ksh,and bash)

2. Korn shell ( ksh)

3. Bourne Again shell ( bash)

4. POSIX shell ( sh)

5. C shell (包括 csh and tcsh)

6. C shell ( csh)

比较常用的有 POSIX shell(sh)和Bourne Again shell (bash).

Bourne Again Shell (bash)

bash是GNU计划的一部分,用来替代Bourne shell。它用于基于GNU的系统如Linux.大多数的Linux(Red Hat,Slackware,Caldera)都以bash作为缺省的shell,并且运行sh时,其实调用的是bash。

POSIX Shell

POSIX shell 是Korn shell的一个变种. 一部分操作系统的缺省的shell就是/bin/sh

 

深入理解linux架构 linux系统架构有哪些_操作系统_02