个人主页: 叶落闲庭
我的专栏:
c语言
数据结构
javaweb
石可破也,而不可夺坚;丹可磨也,而不可夺赤。
操作系统结构
- 一、操作系统体系结构
-
- 1.1操作系统的内核
-
- 1.1.1大内核(又名:宏内核/单内核)
- 1.1.2微内核
- 1.3分层结构
- 1.4模块化
- 1.5外核(exokernel)
- 二、操作系统引导
-
- 2.1什么是操作系统引导?
- 2.2操作系统引导过程
- 三、虚拟机
一、操作系统体系结构
1.1操作系统的内核
- 内核是操作系统最基本、最核心的部分
- 实现操作系统内核功能的那些程序就是内核程序
- 与硬件关系较紧密的模块:
-
-
-
-
-
-
- 这种程序的运行具有原子性 – – 其运行只能一气呵成,不可中断
-
- 对资源系统进行管理的功能:
-
-
-
- 注意:这些管理工作更多的是对数据结构的操作,不会直接涉及硬件
1.1.1大内核(又名:宏内核/单内核)
- 将操作系统的主要功能模块都作为系统内核,运行在核心态
- 优点:高性能
- 缺点:
-
-
- 2.大内核中某个功能模块出错,就可能导致整个系统崩溃
- 典型的大内核/宏内核/单内核 操作系统:Linux、UNIX
- 特征、思想:
-
- 所有系统功能都放在内核里(大内核结构的OS通常也采用了“模块化”的设计思想)
1.1.2微内核
- 只把最基本的功能保留在内核
- 优点:
-
-
- 缺点:
-
-
- 2.用户态下的各功能模块不可以直接相互调用,只能通过内核的“消息传递”来间接通信
- 典型的微内核操作系统:Windows NT
1.3分层结构
- 特征、思想:内核分多层,每层可单向调用更低一层提供的接口
- 优点:
-
-
- 缺点:
-
-
1.4模块化
模块化是将操作系统按功能划分为若干个具有一定独立性的模块,每个模块具有某方面的管理功能,并规定好各模块间的接口,使各模块之间能通过接口进行通信,还可以进一步将各模块细分为若干个具有一定功能的子模块,同样也规定好各子模块之间的接口,把这种设计方法称为模块–接口法。
- 特征、思想:将内核分为多个模块,各模块之间相互协作
- 内核=主模块+可加载内核模块
- 主模块:只负责核心功能,如进程调度、内存管理
- 可加载内核模块:可以动态加载新模块到内核,而无需重新编译整个内核
- 优点:
-
- 1.模块间逻辑清晰易于维护,确定模块间接口后即可多模块同时开发
-
- 2.支持动态加载新的内核模块(如:安装设备驱动程序、安装新的文件系统模块到内核),增强OS适应性
-
- 3.任何模块都可以直接调用其他模块,无需采用详细传递进行通信,效率高
- 缺点:
-
-
1.5外核(exokernel)
- 特征、思想:内核负责进程调度、进程通信等功能,外核负责为用户进程分配未经抽象的硬件资源,且由外核负责保证资源使用安全
- 优点:
-
- 1.外核可直接给用户进程分配“不虚拟、不抽象”的硬件资源,使用户进程可以更灵活的使用硬件资源
-
- 缺点:
-
-
**
二、操作系统引导
2.1什么是操作系统引导?
操作系统引导:开机的时候,怎么让操作系统运行起来
安装操作系统后:
- 磁盘包括:
-
- 主引导记录(MBR)(包含:磁盘引导程序和分区表)
-
-
-
-
- 主存:
-
- 由ROM(BIOS)包含:ROM引导程序,即自举程序和RAM组成
2.2操作系统引导过程
- 1.CPU从一个特定的主存地址开始,取指令,执行ROM中的引导程序(先进行硬件自检,再开机)
- 2.将磁盘的第一块 – – 主引导记录读入内存,执行磁盘引导程序,扫描分区表
- 3.从活动区(又称主分区,即安装了操作系统的分区)读入分区引导记录,执行其中的程序
- 4.从根目录下找到完整的操作系统初始化程序(启动管理器)并执行,完成“开机”的一系列动作
三、虚拟机
- 虚拟机:使用虚拟化技术,将一台物理机器虚拟化为多台虚拟机器(Virtual Machien ,VM),每个虚拟机器都可以独立运行一个操作系统
- 同义术语:虚拟机管理程序/虚拟机监控程序/Virtual Machien Monitor(VMM)/Hypervisor
|
第一类VMM |
第二类VMM |
对物理资源的控制权 |
直接运行在硬件之上,能直接控制和分配物理资源 |
运行在Host OS之上,依赖于Host OS为其分配的物理资源 |
资源分配方式 |
在安装Guest OS时,VMM要在原本的硬盘上自行分配存储空间,类似于“外核”的分配方式,分配未经抽象的物理硬件 |
Guest OS拥有自己的细腻==虚拟硬盘,该硬盘实际上是Guest OS文件系统中的一个大文件,Guest OS分配到的内存是虚拟内存 |
性能 |
性能更好 |
性能更差,需要Guest OS作为“中介” |
可支持的虚拟机数量 |
更多,不需要和Guest OS竞争资源,相同的硬件资源可以支持更多的虚拟机 |
更少,Guest OS本身需要使用物理资源,Guest OS上运行的其他进程也需要物理资源 |
虚拟机的可迁移性 |
更差 |
更好,只需导出虚拟机镜像文件即可迁移到另一台Guest OS上,商业化应用更广泛 |
运行模式 |
第一类VMM运行在最高特权级(Ring O),可以执行最该特权的指令 |
第二类VMM部分运行在用户态、部分运行在内核态,Guest OS发出的系统调用会被VMM截获,并转化为VMM对Guest OS的系统调用 |