Linux操作系统简介

上传人:飞*** 文档编号:48603812 上传时间:2018-07-18 格式:PPT 页数:112 大小:746.50KB
返回 下载 相关 举报
Linux操作系统简介_第1页
第1页 / 共112页
Linux操作系统简介_第2页
第2页 / 共112页
Linux操作系统简介_第3页
第3页 / 共112页
Linux操作系统简介_第4页
第4页 / 共112页
Linux操作系统简介_第5页
第5页 / 共112页
点击查看更多>>
资源描述

《Linux操作系统简介》由会员分享,可在线阅读,更多相关《Linux操作系统简介(112页珍藏版)》请在金锄头文库上搜索。

1、第七章 Linux操作系统简介 第七章 Linux操作系统简介 7.1 Linux简介 7.2 Linux进程管理 7.3 进程间的通讯机制 7.4 Linux存储管理 7.5 Linux文件系统 7.6 Linux设备管理 第七章 Linux操作系统简介 7.1 Linux 简 介 7.1.1 Linux的发展过程 1. UNIX的简明历史2. Linux的发展 3. Linux开发过程 (1) 它是基于天才的思想开发而成的。 (2) 它的开发是基于一组优秀的概念。 (3) 它的开发过程是公开的。 第七章 Linux操作系统简介 7.1.2 Linux内核结构 1. 内核设计的目标2. (1

2、) 清晰性(Clarity)。 3. (2) 兼容性(Compatibility)。 4. 兼容异种文件系统。 5. 提供对网络的兼容。 6. 提供对硬件的兼容。 7. (3) 可移植性(Portability)。 8. (4) 健壮性和安全性(Robustness and Security)。 9. (5) 速度(Speed)。 第七章 Linux操作系统简介 2. 内核体系结构的设计方法 图7.1 内核体系结构基本结构图 第七章 Linux操作系统简介 图7.1是一种类UNIX操作系统的标准视图, 它表明所有期望具有平台无关特性的操作系统其内核应有下面两个特性: (1) 内核将应用程序和硬

3、件分离开来; (2) 部分内核是体系结构和硬件特有的, 而部分内核则是可移植的。 第七章 Linux操作系统简介 图7.2 详细的内核体系结构图 第七章 Linux操作系统简介 图7.2显示了内核概念化的一种可能方式。这里进程和内核的交互通常需要通过如下步骤: 用户应用程序调用系统调用,通常是使用libc。 该调用被内核的system-call函数截获,此后该函数将调用请求转发给另外的执行请求的内核函数。 该函数随即和相关内部代码模块建立通讯,而这些模块还可能需要和其它的代码模块或者底层硬件通讯。 结果按照同样的路径依次返回。 第七章 Linux操作系统简介 3. Linux系统内核设计方法

4、(1) 微内核(Microkernel Kernel)。 一般微内核只提供4种最小的服务: 进程间通讯机制; 某些内存管理功能; 少量的低层进程管理和调度; 低层输入/输出服务。 第七章 Linux操作系统简介 (2) 单内核(Monolithic Kernel)。 单内核基本上是目前的集中式操作系统,它是一个很大的进程。它的内部又可以被分为若干模块(或者是层次或其它)。但是在运行的时候,它是一个独立的二进制大映像。用户是通过系统调用,而不是通过消息传递到达内核的。在内核中完成所需要的工作, 然后内核再将所要求的结果返回给用户进程。内核中模块间的通讯是通过直接调用其它模块中的函数实现的。Lin

5、ux内核基本上是使用单内核,但是它并不是一个纯粹的集成内核。 它将微内核的许多优点引入到Linux的单内核设计中。 第七章 Linux操作系统简介 4. 内核源程序目录结构内核源程序代码一般安装在/usr/src/linux目录下。在该目录下还有几个其它目录,每一个都代表一个特定的内核功能性子集。 (1) documentation: 该目录下没有内核代码, 只有一套有 用的文档。 (2) arch:该目录下的所有子目录中都是与体系结构相关的代码。 每种体系结构特有的子目录下又至少都包含三个子目录 ; kernel: 存放支持体系结构特有的诸如信号量处理和SMP 之类特征的实现; lib: 存

6、放高速的体系结构特有的一些通用函数的实现; mm: 存放体系结构特有的内存管理程序的实现。 第七章 Linux操作系统简介 (3) drivers:该目录是内核中非常大的一块。它包括显卡 、 网卡、SCSI适配器、软盘驱动器、PCI设备和其它Linux支持 的外围设备的驱动程序。 (4)fs:Linux支持的所有文件系统在fs目录下都有一个对 应的子目录。 (5)include:该目录包含了Linux源程序树中大部分的包含 (.h)文件,它可分为: include/asm */: arch的子目录, 每个目录下的文件中包含了支持给定体系结构所必需的预处理器宏和短小的内联函 数; include

7、/linux/: 包含内核和用户应用程序请求特定内核服务所使用的常量和数据结构,它在头文件中定义; 第七章 Linux操作系统简介 include/net/: 供与网络子系统有关的头文件使用; include/scsi/: 供与SCSI控制器和SCSI设备有关的头文件使用; include/video/: 供与显卡和帧显示缓存有关的头文件使用。 (6) init: 其较重要的一个文件是main.c, 它包含了大部分 协调内核初始化的代码。(7) ipc: 该目录下的文件实现了System V的进程间通讯( IPC)程序。 (8) kernel: 这个目录中包含了Linux中最重要的部分: 实

8、现平台无关的基本功能。其中包括进程调度(kernel/sched.c)、 进程创建和进程撤销的代码(kernel/fork.c和kernel/exit.c)。 第七章 Linux操作系统简介 (9) lib: 该目录包含lib/inflate.c中的函数, 它能够在系统启动时展开经过压缩的内核。lib目录下剩余的其它文件实现一个标准C库的有用子集。 (10) mm: 该目录包含了体系结构无关的内存管理代码,为每个平台实现最低层的原语与体系结构特有的内存管理程序 , 它存储在arch/platform/mm中。 (11) net:该目录包含了Linux应用的网络协议代码, 例如AppleTalk

9、,TCP/IP等。 (12) scripts: 该目录下没有内核代码,它包含了用来配置内核的脚本。当运行make menuconfig或者make xconfig之类的命令配置内核时, 用户就是和位于该目录下的脚本进行交互的。 第七章 Linux操作系统简介 7.1.3 Linux 运行模式、 地址空间与上下文 运行Linux系统的计算机硬件至少需要提供两种运行模式: 高优先级的核心模式(特权模式)与低优先级的用户模式。核心运行在高优先级, 称之为核心态, 其它外围软件包括Shell、编辑程序、 X-Windows等都运行在低优先级,称之为用户态。采用不同的执行模式是为了系统保护。当用户进程需

10、要完成特权模式下才能完成的某些功能时,必须严格按照系统调用提供的接口才能进入特权模式,然后执行调用所提供的有限的功能。每一种运行态都有自己的堆栈,Linux中分为用户栈和核心栈。 第七章 Linux操作系统简介 采用特权模式进行保护的根本目的是对地址空间的保护, 用户进程不能访问所有的地址空间,只有通过系统调用才能进入内核, 访问受保护的那些地址空间的数据。另外,进程与进程之间的地址空间也不能随便互访。Linux通过虚存管理机制很好地实现了这种保护。在虚存系统中,进程所使用的地址不直接对应物理的存储单元,每个进程都有自己的虚拟地址空间,对虚拟地址空间的引用通过地址变换机制转换成物理地址的引用。

11、 虚拟地址空间分为两部分:用户空间和系统空间。在用户模式下只能访问用户空间,而在核心模式下可以访问用户空间和系统空间。 第七章 Linux操作系统简介 一个进程的上下文可以分为三个部分: 用户级上下文、寄存器上下文以及系统级上下文。用户级上下文有:正文、数据、用户栈及共享存储区。寄存器上下文有:程序计数器(PC),即CPU将执行的下条指令地址,处理机状态寄存器,栈指针,通用寄存器。系统级上下文有:进程表结构task-struct、存储表及页表和核心栈等。 全部的上下文信息组成了一个进程的运行环境。当发生进程调度时,必须对全部上下文信息进行切换,新调度的进程才能运行。 进程就是上下文集合的一个抽

12、象概念。 第七章 Linux操作系统简介 7.2 Linux进 程 管 理 7.2.1 Linux进程控制块结构 (1) 状态信息(State) 运行(Running) 等待(Waiting) 停止(Stopped) 死亡(Zombie) 第七章 Linux操作系统简介 图7.3 进程之间状态转换图 第七章 Linux操作系统简介 (2) 调度信息(Scheduling Information ) 除上述State信息外, 主要包括policy(策略)、priority(优先级)、rt-priority(实时优先级)和counter(计数)。调度程序利用这些信息完成进程之间的切换。 第七章 L

13、inux操作系统简介 (3) 进程标识符(Identifiers)。系统中每个进程都有惟一的进程标识符。标识符是个数字,用来控制进程对系统中文件和设备的存取权限。Linux系统中所有的文件都有所有者和允许的权限, 这些权限描述了系统使用者对文件或者目录的使用权。基本的权限是读、写和可执行,这些权限被分配给三类用户:文件的所有者,属于相同组的进程以及系统中的其它进程。每类用户具有不同的权限,例如一个文件允许其拥有者读写,但是同组的只能读而其它进程不允许访问。 第七章 Linux操作系统简介 task-struct结构中有4对进程和组标识符: uid, gid : 表示运行进程的用户标识符和组标识

14、符。 有效 uid 和有效 gid :一般情况下它与进程的uid和gid相同,但在其它用户允许的情况下,可用系统调用setuid(setgid)将它改变为其它用户的uid(gid),以获得对该用户的文件进行操作的权限。 文件系统uid 和 gid : 用于文件系统操作的合法性访问权限。 保留 uid 和 gid : 根据POSIX标准引入这两个标识符。 第七章 Linux操作系统简介 (4) 进程间通讯信息(Inter Process Communication)。 Linux支持经典的UNIX IPC机制,如信号、管道和SYSTEM V中IPC机制,包括共享内存、信号量和消息队列。系统利用这

15、些信息实现进程间的通讯。 (5) 进程链信息(Links)。 Linux系统中除了初始化进程外,任一进程都有一个父进程。每个新进程都是从父进程中复制过来,或者从父进程克隆而来的。 每个进程对应的task-struct结构中包含有指向其父进程和兄弟进程(具有相同父进程的进程)以及子进程的指针。另外,系统中所有进程都用一个双向链表链接起来,而它们的根是init进程的task-struct数据结构。这个链表被Linux内核用来寻找系统中的所有进程。 第七章 Linux操作系统简介 (6) 时间和定时器(Times and Timers)。系统在这些字段中保存进程的建立时间以及在其生命期中所花费的CP

16、U时间。这一时间记录进程在系统和用户两种模式下所花费的时间。Linux也支持与进程相关的interval定时器,当定时器到,操作系统会向该进程发送信号。(7) 文件系统信息(File System)。进程可以自由地打开或关闭文件,进程的task-struct结构中包含指向每个打开文件描述符的指针*file以及指向两个VFS inode的指针*fs。每个VFS Inode惟一地标记文件中的一个目录或者文件, 同时还对底层文件系统提供统一的接口。这两个指针分指向进程的根目录和进程的当 前目录。 这两个VFS inode包含同一个count域,当有多个进程引用时,它的值将增加。 第七章 Linux操作系统简介 (8) 虚拟内存(Virtual Memory)。多数进程都有一些虚拟内存(内核线程和后台进程没有),task-struct的数据成员mm指向关于

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 其它文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号