Complete ch1

This commit is contained in:
Penguin-SAMA
2023-03-18 17:54:01 +08:00
parent 30b9caf649
commit 64c61dc400
3 changed files with 99 additions and 1 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

View File

@@ -405,8 +405,106 @@ CPU 通常执行两种不同性质的程序:一种是**操作系统内核程
**共享库**:该区域用于存放公共的共享库代码和数据。
用户栈:该区域用来存放局部变量、返回地址、函数调用参数等信息。
**用户栈**:该区域用来存放局部变量、返回地址、函数调用参数等信息。
**操作系统内核区**:该区域是操作系统内核使用的地址空间,包括内核程序、代码、内核栈等信息,这些信息对用户程序不可见。
## 1.4 操作系统的体系结构
### 1.4.1 分层结构
特性:内核分多层,每层可单向调用更低一层提供的接口。
优点:
- 便于调试和验证,自底向上逐层调试验证。
- 易扩充和易维护,各层之间调用接口清晰固定。
缺点:
- 仅可调用相邻低层,难以合理定义各层的边界。
- 效率低,不可跨层调用,系统调用执行时间长。
### 1.4.2 模块化
特性:将内核划分为多个模块,各模块之间相互协作。
- 内核 = 主模块 + 可加载内核模块
- 主模块:只负责核心功能。
- 可加载内核模块:可以动态加载新模块到内核,而无需重新编译整个内核。
优点:
- 模块间逻辑清晰易于维护,确定模块间接口后即可多模块同时开发。
- 支持动态加载新的内核模块增强OS适应性。
- 任何模块都可以直接调用其他模块,无需采用消息传递进行通信,效率高。
缺点:
- 模块间的接口定义未必合理、实用。
- 模块间相互依赖,更难调试和验证。
### 1.4.3 宏内核(大内核)
特性:所有的系统功能都放在内核里。
优点:性能高,内核内部各种功能都可以直接相互调用。
缺点:
- 内核庞大功能复杂,难以维护。
- 大内核中某个功能模块出错,就可能导致整个系统崩溃。
### 1.4.4 微内核
特性:
- 只把中断、原语、进程通信等最核心的功能放入内核。
- 进程管理、文件管理、设备管理等功能以用户进程的形式运行在用户态。
优点:
- 内核小功能少、易于维护,内核可靠性高。
- 内核外的某个功能模块出错不会导致整个系统崩溃。
缺点:
- 性能低,需要频繁切换用户态和核心态。
- 用户态下的各功能模块不可以直接相互调用,只能通过内核的“消息传递”来间接通信。
### 1.4.5 外核
特性:内核负责进程调度、进程通信等功能,外核负责为用户进程分配未经抽象的硬件资源,且由外核负责保证资源使用安全。
优点:
- 外核可直接给用户进程分配“不虚拟、不抽象”的硬件资源,使用户进程可以更灵活的使用硬件资源。
- 减少了虚拟硬件资源的“映射层”,提升效率。
缺点:
- 降低了系统的一致性。
- 使系统变得更复杂。
## 1.5 操作系统引导
基本输入输出系统BIOS是一种固化到计算机内主板上的一个只读存储器芯片内的一种固件。
常见操作系统的引导过程:
![image-20230318174400336](./assets/image-20230318174400336.png)
## 1.6 虚拟机
**基本概念**:虚拟机是一台逻辑计算机,是指利用特殊的虚拟化技术,通过隐藏特定计算平台的实际物理特性,为用户提供抽象的、统一的、模拟的计算环境。
#### 两类虚拟机管理程序(VMM)的对比
| | 第一类VMM | 第二类VMM |
| ------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
| 对物理资源的控制权 | 直接运行在硬件之上,能直接控制和分配物理资源 | 运行在Host OS之上依赖于Host OS为其分配物理资源 |
| 资源分配方式 | 安装Guest OS时VMM在原本的硬盘上自行分配存储空间。<br />类似于外核,分配未经抽象的物理硬件。 | GuestOS拥有自己的虚拟磁盘该盘实际上是Host OS文件系统中的一个大文件。<br />GuestOS分配到的内存是虚拟内存。 |
| 性能 | 性能更好 | 性能更差需要HostOS作为中介 |
| 可支持的虚拟机数量 | 更多不需要和HostOS竞争支援相同的硬件资源可以支持更多的虚拟机 | 更少HostOS本身需要使用物理资源HostOS上运行的其他进程也需要物理资源 |
| 虚拟机的可迁移性 | 更差 | 更好 |
| 运行模式 | 运行在最高特权级(Ring0),可以执行最高特权的指令 | 部分运行在用户态,部分运行在内核态。 |