欢迎来到天天文库
浏览记录
ID:34572818
大小:339.14 KB
页数:111页
时间:2019-03-08
《计算机操作系统教程(机类本科)第7章》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第七章Linux操作系统简介第七章Linux操作系统简介7.1Linux简介7.2Linux进程管理7.3进程间的通讯机制7.4Linux存储管理7.5Linux文件系统7.6Linux设备管理第七章Linux操作系统简介7.1Linux简介7.1.1Linux的发展过程1.UNIX的简明历史2.Linux的发展3.Linux开发过程(1)它是基于天才的思想开发而成的。(2)它的开发是基于一组优秀的概念。(3)它的开发过程是公开的。第七章Linux操作系统简介7.1.2Linux内核结构1.内核设
2、计的目标(1)清晰性(Clarity)。(2)兼容性(Compatibility)。①兼容异种文件系统。②提供对网络的兼容。③提供对硬件的兼容。(3)可移植性(Portability)。(4)健壮性和安全性(RobustnessandSecurity)。(5)速度(Speed)。第七章Linux操作系统简介2.内核体系结构的设计方法用户应用程序系统库(libc)内核与结构无关部分内核部内核与结构有关部分分硬件图7.1内核体系结构基本结构图第七章Linux操作系统简介图7.1是一种类UNIX操作系统
3、的标准视图,它表明所有期望具有平台无关特性的操作系统其内核应有下面两个特性: (1)内核将应用程序和硬件分离开来; (2)部分内核是体系结构和硬件特有的,而部分内核则是可移植的。第七章Linux操作系统简介用户应用程序系统库(libc)系统调用接口内进程控制核部I/O进程调度分进程间通讯内存管理硬件图7.2详细的内核体系结构图第七章Linux操作系统简介图7.2显示了内核概念化的一种可能方式。这里进程和内核的交互通常需要通过如下步骤: ①用户应用程序调用系统调用,通常是使用libc。 ②该调用被内
4、核的system-call函数截获,此后该函数将调用请求转发给另外的执行请求的内核函数。 ③该函数随即和相关内部代码模块建立通讯,而这些模块还可能需要和其它的代码模块或者底层硬件通讯。 ④结果按照同样的路径依次返回。第七章Linux操作系统简介3.Linux系统内核设计方法(1)微内核(MicrokernelKernel)。一般微内核只提供4种最小的服务: ①进程间通讯机制; ②某些内存管理功能; ③少量的低层进程管理和调度; ④低层输入/输出服务。第七章Linux操作系统简介(2)单内核(Mon
5、olithicKernel)。单内核基本上是目前的集中式操作系统,它是一个很大的进程。它的内部又可以被分为若干模块(或者是层次或其它)。但是在运行的时候,它是一个独立的二进制大映像。用户是通过系统调用,而不是通过消息传递到达内核的。在内核中完成所需要的工作,然后内核再将所要求的结果返回给用户进程。内核中模块间的通讯是通过直接调用其它模块中的函数实现的。Linux内核基本上是使用单内核,但是它并不是一个纯粹的集成内核。它将微内核的许多优点引入到Linux的单内核设计中。第七章Linux操作系统简介4
6、.内核源程序目录结构 内核源程序代码一般安装在/usr/src/linux目录下。在该目录下还有几个其它目录,每一个都代表一个特定的内核功能性子集。(1)documentation:该目录下没有内核代码,只有一套有用的文档。 (2)arch:该目录下的所有子目录中都是与体系结构相关的代码。每种体系结构特有的子目录下又至少都包含三个子目录;①kernel:存放支持体系结构特有的诸如信号量处理和SMP之类特征的实现; ②lib:存放高速的体系结构特有的一些通用函数的实现;③存放体系结构特有的内存管理程
7、序的实现第七章Linux操作系统简介(3)drivers:该目录是内核中非常大的一块。它包括显卡、网卡、SCSI适配器、软盘驱动器、PCI设备和其它Linux支持的外围设备的驱动程序。 (4)fs:Linux支持的所有文件系统在fs目录下都有一个对应的子目录。 (5)include:该目录包含了Linux源程序树中大部分的包含(.h)文件,它可分为: ①include/asm*/:arch的子目录,每个目录下的文件中包含了支持给定体系结构所必需的预处理器宏和短小的内联函数; ②include/li
8、nux/:包含内核和用户应用程序请求特定内核服务所使用的常量和数据结构,它在头文件中定义;第七章Linux操作系统简介③include/net/:供与网络子系统有关的头文件使用; ④include/scsi/:供与SCSI控制器和SCSI设备有关的头文件使用;⑤include/video/:供与显卡和帧显示缓存有关的头文件使用。(6)init:其较重要的一个文件是main.c,它包含了大部分协调内核初始化的代码。 (7)ipc:该目录下的文件实现了SystemV的进程间通讯(IPC
此文档下载收益归作者所有