目录
四、操作系统结构
分层法
将操作系统分为若干层,底层(0层)为硬件,顶层为用户接口,每层只能调用紧邻它的底层的功能和服务(单项依赖)。
- 分层法的优点:
- 便于系统的调试和实验,简化了系统的设计与实现;
- 易扩充和易维护。
- 分层法的缺点:
- 合理定义各层比较困难,显得不够灵活;
- 层层调用,效率较差。
模块化
这种模式下:内核=主模块+可加载内核模块,而后者(可加载内核模块)只起到锦上添花的作用。
衡量标准:内聚性越高,则耦合性越差;内聚性越高,模块之间的独立性越高。
- 模块化优点:
- 提高操作系统设计的正确性、可理解性和可维护性;
- 增强了操作系统的可适应性;
- 加速了操作系统的开发过程。
- 模块化缺点:
- 模块间的接口很难满足实际需求;
- 各模块的设计工作同时进行,无法找到一个可靠的先后顺序。
宏内核
宏内核,又称单内核或大内核,是指将操作系统主要模块作为整体运行在核心态。
优点:各模块之间共享信息,具有性能优势(不用来回在内核态和用户态之间来回切换)。
缺点:随着体系结构和应用需求的不断发展,操作系统提供的服务越来越复杂,会导致宏内核功能过多。
微内核
微内核是指将内核中最基本的功能保留在内核中,不需要在核心态执行的功能转到用户态,从而降低内核设计的复杂性。
- 微内核通常包括:
- 与硬件处理紧密相关的部分(如中断处理、IO请求等)
- 一些基本功能
- 客户与服务器之间的通信
- 基本功能包括:
- 进程(线程)管理
- 低级存储器管理
- 中断和陷入处理
微内核操作系统将进程管理、存储器管理以及IO管理这些功能一分为二,属于机制的很小一部分放入微内核,而绝大部分法如微内核外的各种服务器实现,大多数服务器都要比微内核要大。
- 微内核的特点:
- 拓展性和灵活性:增加功能只要修改或添加相应的服务器,不需要动内核的代码。
- 可靠性和安全性。
- 可移植性:windows -> linux 代价较小。
- 分布式计算:能很好地支持分布式系统和网络系统。
外核
外核为进程分配未经抽象的(连续的)内存资源/硬件资源,负责硬件资源的分配、回收和保护,但是进程相关的工作仍由内核完成。
五、操作系统引导
CPU通过运行特定程序,进而识别硬盘,识别硬盘分区,识别分区上的操作系统,最后通过启动程序加载操作系统中必要的部分到内存中。
引导过程:
1、激活CPU:CPU读取ROM中的boot程序,将指令寄存器IR设置为BIOS(Basic Input Output System:基本输入、输出系统)的第一条指令,开始执行BIOS。
2、硬件自检:BIOS在内存中构建中断向量表,开始进行POST(通电自检)过程:进行通电自检,检查硬件是否存在故障。若有,主板发出不同含义的蜂鸣,启动终止;若无,屏幕显示CPU、内存、硬盘等相关信息。
3、加载带有操作系统的硬盘:BIOS读取CMOS中保存的Boot Sequence,将引导扇区的内容加载到内存中。
4、加载主引导记录(MBR):硬盘以特定的标识符区别引导硬盘和非引导硬盘,而MBR的作用就是告诉CPU去硬盘的那个主分区找操作系统。
5、扫描硬盘分区表,并加载硬盘活动分区:MBR包含硬盘分区表,MBR扫描硬盘分区表,识别含有操作系统的硬盘分区(又称活动分区),并加载。
6、加载分区引导记录(PBR):读取活动分区的第一个扇区,寻找并激活分区根目录下用于引导操作系统的程序(这个程序又称启动管理器)。
7、加载启动管理器:PBR搜索活动分区中的启动管理器,并加载。
8、加载操作系统:将操作系统的初始化程序加载到内存中执行。(注意,这里是将必要的操作系统内容加载到内存中,其余的等到需要用到的时候再加载)
六、虚拟机
虚拟机是指利用虚拟化技术,将一台物理机器虚拟化为多台虚拟机器,通过隐藏特定计算平台的实际物理特性,为用户提供抽象的、统一的、模拟的计算环境。
虚拟机管理程序(Virtual Machine Monitor,VMM):将一台物理机虚拟化为多个虚拟机器要用到的程序。
第一类VMM:类似于操作系统,是一个运行在最高特权的程序(运行在硬件之上)。
第二类VMM:它是一个依赖于Windows、Linux等操作系统分配和调度资源的程序。Vmware Workstation是首个X86平台上的第二类VMM。
运行在两类VMM上的操作系统都称为客户操作系统,但对于第二类VMM,运行在底层硬件上的操作系统称为宿主操作系统。