Linux 编程基础
上QQ阅读APP看书,第一时间看更新

1.1.2 Linux操作系统组成部分

Linux内核加上来自于开源组织GNU(GNU's Not UNIX)的各种应用软件及开发库组成了Linux操作系统,如图1.1所示。Linux内核负责对计算机硬件的管理并通过Shell向用户提供使用计算机硬件资源的接口。应用层中包含了多种应用软件,例如,开发工具包括Linux操作系统中的GCC编译器、Make工具、GDB调试器、Bash Shell环境、Emacs编辑器等,还包括用户使用的一些娱乐软件、办公软件等。Linux是一个类UNIX操作系统,因此它上面的很多软件可以不加改变地运行在UNIX操作系统中。同样,UNIX操作系统中的软件也可以以二进制的形式运行在Linux操作系统中。与UNIX一样,Linux操作系统具有多用户、多任务、多进程、多线程、实时性好等特点,它比UNIX更加灵活,允许用户针对内核进行定制。

图1.1 Linux操作系统

Linux操作系统主要由内核、Shell、文件结构和实用工具组成。内核是Linux的心脏,是在系统引导时装入系统执行的应用程序。它为应用程序访问底层硬件各种资源提供了统一的接口,使得应用程序开发人员不需关心太多的物理硬件的细节。内核主要包括了进程管理、内存管理、硬件设备驱动管理、文件系统驱动、网络管理等部分。因此内核是操作系统的核心部分,负责管理各种资源。Shell是用户与内核交互操作的接口,它接收用户的命令然后传递给内核,内核执行命令并将执行结果通过该Shell返回给用户。Shell有自己的脚本语言,用户可根据需要利用Shell脚本执行各种任务。Shell既是一种命令解释器,也是一种编程语言。它有自身的语言结构,例如循环、条件语句等。Shell有很多种版本,目前主要包括如下版本的Shell:

Bourne Shell,源于UNIX早期版本的Shell;

Bash,又名Bourne Again Shell,来自GNU项目,它是Linux的主要Shell,可以免费获取其源代码,它与Korn Shell有许多相似的地方;

Korn Shell,它是对Bourne Shell的发展;

C Shell,是SUN公司Shell的BSD版本。