Linux系统
一、Linux系统结构:
1、内核
- 操作系统的基本组件。没有它,操作系统将无法工作。内核管理着系统的资源,并与硬件进行通信。它负责内存、进程、设备驱动程序、文件管理、网络管理等。
- 系统调用接口:SCI 层提供了某些机制执行从用户空间到内核的函数调用。这个接口依赖于体系结构,甚至在相同的处理器家族内也是如此。SCI 实际上是一个非常有用的函数调用多路复用和多路分解服务。在 ./linux/kernel 中可以找到 SCI 的实现,并在 ./linux/arch 中找到依赖于体系结构的部分。
- 系统调用按功能大致可分为如下几类:
1).设备管理。完成设备的请求或释放,以及设备启动等功能。
2).文件管理。完成文件的读、写、创建及删除等功能。
3).进程控制。完成进程的创建、撤销、阻塞及唤醒等功能。
4).进程通信。完成进程之间的消息传递或信号传递等功能。
5).内存管理。完成内存的分配、回收以及获取作业占用内存区大小及地址等功能。
2、系统用户空间
系统级任务(如配置和软件安装)的管理层。它包括 shell(或称为命令行)、守护进程(在后台运行的进程)和桌面环境(用户交互界面)。
- 又分为Shell和文件系统
- Shell 是操作系统的用户界面之一,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行,是一个命令解释器。另外,Shell 编程语言具有普通编程语言的很多特点,用这种编程语言编写的 Shell 程序与其他应用程序具有同样的效果。
- 目前主要有下列版本的 Shell:
1).Bourne Shell:是贝尔实验室开发的。
2).Bash:是 GNU 的 Bourne Again Shell,是 GNU 操作系统上默认的 Shell,大部分 Linux 的发行套件使用的都是这种 Shell。
3).Korn Shell:是对 Bourne Shell 的发展,在大部分内容上与 Bourne Shell 兼容。
4).C Shell:是 SUN 公司 Shell 的 BSD 版本。
- 文件系统:
3、应用
一种用于执行任务的软件。应用的范围涵盖了从桌面工具和编程语言到多用户业务套件等各种软件。大多数 Linux 发行版都会提供一个中央数据库,用于搜索和下载其他应用。
设备驱动程序
设备驱动程序是 Linux 内核的主要部分。和操作系统的其它部分类似,设备驱动程序运行在高特权级的处理器环境中,从而可以直接对硬件进行操作,但正因为如此,任何一个设备驱动程序的错误都可能导致操作系统的崩溃。设备驱动程序实际控制操作系统和硬件设备之间的交互。
设备驱动程序提供一组操作系统可理解的抽象接口完成和操作系统之间的交互,而与硬件相关的具体操作细节由设备驱动程序完成。一般而言,设备驱动程序和设备的控制芯片有关,例如,如果计算机硬盘是 SCSI 硬盘,则需要使用 SCSI 驱动程序,而不是 IDE 驱动程序。
网络接口
提供了对各种网络标准的存取和各种网络硬件的支持。网络接口可分为网络协议和网络驱动程序。网络协议部分负责实现每一种可能的网络传输协议。众所周知,TCP/IP 协议是 Internet 的标准协议,同时也是事实上的工业标准。
Linux 的网络实现支持 BSD Socket,支持全部的 TCP/IP 协议。Linux 内核的网络部分由 BSD 套接字、网络协议层和网络设备驱动程序组成。网络设备驱动程序负责与硬件设备通讯,每一种可能的硬件设备都有相应的设备驱动程序。