
🔥 创作专栏:《算法分析》 | 《无味生》 |《C语言》 | 《C练习解析》|《C++讲解》|《软件测试》|《Linux》|《数据结构》|《计组》
🏆我的格言:一切只是时间问题。

目录
[1.1 概念](#1.1 概念)
[1.1.1 引例:一台电脑的诞生](#1.1.1 引例:一台电脑的诞生)
[1.1.2 定义](#1.1.2 定义)
[1.2 功能和目标](#1.2 功能和目标)
[1.2.1 作为系统资源的管理者](#1.2.1 作为系统资源的管理者)
[1.2.2 向上层提供方便易用的服务](#1.2.2 向上层提供方便易用的服务)
[1.2.3 实现了对计算机功能的扩充](#1.2.3 实现了对计算机功能的扩充)
[1.3 操作系统的特征](#1.3 操作系统的特征)
[1.3.1. 并发](#1.3.1. 并发)
[1.3.2. 共享](#1.3.2. 共享)
[1.3.3 虚拟](#1.3.3 虚拟)
[1.3.4 异步](#1.3.4 异步)
[2.1 手工操作阶段](#2.1 手工操作阶段)
[2.2 批处理阶段](#2.2 批处理阶段)
[2.2.1 批处理阶段 ------ 单道批处理系统](#2.2.1 批处理阶段 —— 单道批处理系统)
[2.2.2 批处理阶段 ------ 多道批处理系统](#2.2.2 批处理阶段 —— 多道批处理系统)
[2.3 分时操作系统](#2.3 分时操作系统)
[2.4 实时操作系统](#2.4 实时操作系统)
[2.5 其他几种操作系统](#2.5 其他几种操作系统)
[3.1 处理器运行模式](#3.1 处理器运行模式)
[3.1.1 特权指令vs非特权指令](#3.1.1 特权指令vs非特权指令)
[3.1.2 内核态vs用户态](#3.1.2 内核态vs用户态)
[3.2 中断和异常](#3.2 中断和异常)
[3.2.1 中断的作用](#3.2.1 中断的作用)
[3.2.2 中断的类型](#3.2.2 中断的类型)
[3.2.3 中断的分类](#3.2.3 中断的分类)
[3.2.4 中断机制的基本原理](#3.2.4 中断机制的基本原理)
[3.3 系统调用](#3.3 系统调用)
[3.3.1 什么是系统调用](#3.3.1 什么是系统调用)
[3.3.2 系统调用与库函数的区别](#3.3.2 系统调用与库函数的区别)
[3.3.3 小例子](#3.3.3 小例子)
[3.3.4 什么功能要用到系统调用](#3.3.4 什么功能要用到系统调用)
[3.3.5 系统调用的过程](#3.3.5 系统调用的过程)
[4.1 计算机系统的层次结构](#4.1 计算机系统的层次结构)
[4.2 大内核(宏内核)](#4.2 大内核(宏内核))
[4.3 微内核](#4.3 微内核)
[4.4 最新结构大总结](#4.4 最新结构大总结)
[5.1 磁盘相关数据](#5.1 磁盘相关数据)
[5.2 操作系统引导过程](#5.2 操作系统引导过程)
[5.3 应用案例](#5.3 应用案例)
[6.1 传统计算机](#6.1 传统计算机)
[6.2 虚拟机](#6.2 虚拟机)
[6.2.1 虚拟机的定义](#6.2.1 虚拟机的定义)
[6.2.2 虚拟机管理程序](#6.2.2 虚拟机管理程序)
一、基本概念
1.1 概念
1.1.1 引例:一台电脑的诞生
-
层次结构:计算机系统分为四层,从下到上依次是:裸机(纯硬件)→操作系统→应用程序→用户
-
裸机定义:仅包含CPU、内存等硬件组件,不含任何软件的机器
-
典型安装流程:厂家组装裸机→安装操作系统(如Windows)→用户安装应用程序(如QQ)→使用应用程序
-
边界特点:用户与操作系统、应用程序与操作系统之间存在交互边界。
1.1.2 定义
- 核心定义:操作系统是控制和管理整个计算机系统的硬件和软件资源,并合理组织调度计算机工作和资源分配的系统软件
1.2 功能和目标
1.2.1 作为系统资源的管理者
引例:用QQ和朋友视频聊天的过程
-
四步流程:
-
文件管理:通过目录结构查找QQ.exe(如D:/Tencent/QQ/Bin)
-
存储器管理:将程序从磁盘加载到内存,并确定存放位置
-
处理机管理:为QQ分配CPU资源
-
设备管理:分配摄像头等设备资源
-
1.2.2 向上层提供方便易用的服务

1)封装的思想
裸机只能识别二进制指令(如010101),所以操作系统将硬件功能封装为友好接口,类比汽车将复杂机械结构封装为方向盘等简单控制部件。
2)程序接口
系统调用
-
使用方式:通过程序代码间接使用(如C语言的printf函数)
-
实现机制:库函数→系统调用→硬件操作
-
术语注意:系统调用又称广义指令
GUI图形化用户接口
-
特点:通过图形界面操作,无需记忆复杂命令
-
实例:Windows中将文件拖拽到回收站即可删除
-
发展:现代操作系统普遍提供,早期系统不具备
3)命令接口
联机命令接口
-
交互特点:用户说一句,系统做一句(如 命令提示符)
-
典型流程:输入命令→系统响应→用户输入新指令
脱机命令接口
-
文件特征:以C盘中 *.bat为后缀的命令集合
-
执行特点:用户提供命令清单,系统批量执行
-
与联机区别:联机是交互式(说一句做一句),脱机是批处理式
1.2.3 实现了对计算机功能的扩充
-
机器拓展:操作系统将裸机改造为功能更强的扩充机器/虚拟机
-
实现方式:协调组织CPU、内存等硬件,使其协同工作
-
类比说明:如同传动系统将发动机的转动转化为汽车行进
1.3 操作系统的特征
1.3.1. 并发
-
定义:指两个或多个事件在同一时间间隔内发生,宏观上同时发生,微观上交替发生
-
并行对比:并行指两个或多个事件在同一时刻同时发生,并发强调时间间隔内的交替执行,并行强调物理上的同时执行

-
操作系统并发性:计算机中同时运行多个程序,宏观同时运行,微观交替运行
-
硬件影响:
-
单核CPU只能并发执行程序(交替发生)
-
多核CPU可并行执行程序(如4核CPU可并行同时4个程序)
-
1.3.2. 共享
-
定义:系统资源供多个并发进程共同使用
-
互斥共享:一个时间段内只允许一个进程访问(如摄像头)
-
同时共享:宏观上允许多个进程"同时"访问(微观可能交替)
1)例题:互斥共享方式
-
典型案例:QQ和微信争抢摄像头
-
现象说明:当一个视频应用占用摄像头时,其他应用无法同时使用
-
答案:互斥共享的本质是资源的独占性访问
2)例题:同时共享方式
-
典型案例:QQ和微信同时发送文件
-
微观机制:进程交替访问硬盘(宏观表现为同时)
-
答案:同时共享分为逻辑同时和物理同时两种
并发和共享的关系
-
互为条件:无并发则共享失去意义,无共享则无法实现并发;
-
基础地位:这两个特征是虚拟和异步特性的前提。
1.3.3 虚拟
-
定义:将物理实体变为多个逻辑对应物
-
空分复用:如虚拟存储器(4GB物理内存表现为更大逻辑内存)
-
时分复用:如虚拟处理器(单核CPU表现为多逻辑CPU)
1.3.4 异步
-
定义:多道程序并发执行时因资源竞争导致的执行不确定性
-
核心表现:程序执行走走停停,速度不可预知
-
产生原因:有限资源被多个程序争抢
例题:约会争抢资源
-
题目解析
-
类比案例:老渣与两个女友争抢"真心"资源
-
程序表现:指令执行可能在不同位置被阻塞
-
答案:异步性是并发执行的必然结果
-

二、发展历史
2.1 手工操作阶段
-
工作方式:
-
编程介质:使用穿孔纸带(有孔=1,无孔=0)
-
执行流程:人工装纸带→计算机读取→计算→输出到纸带→人工取结果
-
-
主要缺点:
-
独占性:用户独占全机资源
-
效率问题:人机速度矛盾严重(人工操作/IO速度慢 vs CPU计算速度快)
-
资源浪费:CPU利用率极低(忙碌时间占比约20%)
-
2.2 批处理阶段
2.2.1 批处理阶段 ------ 单道批处理系统
-
技术改进:
-
脱机IO技术:通过外围机+磁带实现(速度比纸带机快)
-
监督程序:自动控制作业输入/输出流程
-
-
执行特点:
-
串行处理:内存中仅驻留一道程序
-
流程优化:作业从磁带读取→计算→输出到另一磁带
-
-
优缺点:
-
优点:缓解人机速度矛盾,CPU利用率提升
-
缺点:资源利用率仍较低(IO时CPU空闲)
-
2.2.2 批处理阶段 ------ 多道批处理系统
-
核心创新:
-
多道程序技术:内存同时驻留多个程序
-
资源复用:CPU计算时并行执行IO操作
-
-
系统特性:
-
正式诞生:首个真正意义上的操作系统
-
并发执行:程序共享CPU/IO设备资源
-
-
优缺点:
-
优点:资源利用率大幅提升(CPU忙碌时间达80%+)
-
缺点:缺乏人机交互功能(用户无法调试程序)
-
2.3 分时操作系统
-
核心机制:
-
时间片轮转:以固定时间片(如50ms)轮流服务各用户
-
终端交互:支持键盘/鼠标等交互设备
-
-
典型特征:
-
及时响应:用户请求最大延迟=时间片×用户数
-
虚拟独占:每个用户感知独占计算机
-
-
局限性:无法优先处理紧急任务(公平调度)
2.4 实时操作系统
-
核心特性:
-
优先级响应:紧急任务无需排队
-
严格时限:必须在规定时间内完成处理
-
-
分类对比:
-
硬实时系统:绝对严格时限(如导弹控制、自动驾驶)
-
软实时系统:允许偶尔超时(如12306票务系统)
-
-
设计重点:及时性(响应速度)和可靠性(结果正确)
2.5 其他几种操作系统
-
网络操作系统:
-
功能:实现数据传送、资源共享(如文件共享)
-
实例:Windows NT(典型网站服务器系统)
-
-
分布式操作系统:
- 特点:分布性+并行性(多机协同完成任务)
-
个人计算机系统:
- 实例:Windows XP、MacOS(单用户友好设计)

三、运行环境
3.1 处理器运行模式
3.1.1 特权指令vs非特权指令
-
程序分类:
-
应用程序:普通程序员开发的程序(如QQ、微信),运行在操作系统之上
-
内核程序:操作系统开发者编写的程序,组成操作系统内核(kernel)
-
-
指令区别:
-
特权指令:可能严重影响系统(如内存清零),仅允许内核程序使用
-
非特权指令:常规运算指令(如加减乘除),所有程序均可使用
-
-
硬件支持:CPU设计时已划分特权/非特权指令,执行时可自动识别指令类型
3.1.2 内核态vs用户态
-
状态标识:
-
内核态(核心态/管态):运行内核程序,可执行特权指令
-
用户态(目态):运行应用程序,仅能执行非特权指令
-
-
实现机制:通过PSW(程序状态字)寄存器中的二进制位标记当前状态
引例:CPU状态切换过程
-
开机过程:
-
初始为内核态,执行系统初始化内核程序
-
完成后通过特权指令修改PSW切换为用户态
-
-
异常处理:
-
应用程序尝试执行特权指令会触发中断
-
CPU自动切换回内核态执行中断处理程序
-
-
切换方式:
-
内核态→用户态:执行修改PSW的特权指令(主动让权)
-
用户态→内核态:由中断触发,硬件自动完成(强制夺权)
-

3.2 中断和异常
3.2.1 中断的作用
-
核心功能:
- 强制使CPU从用户态切换至内核态,使操作系统能强行夺回CPU控制权
-
必要性:
-
若无中断机制,应用程序将独占CPU无法实现多道程序并发
-
是操作系统实现进程管理的基础
-
-
状态转换:通过特权指令主动让权,通过中断机制被动夺权
3.2.2 中断的类型
1)内中断
-
本质特征:中断信号来源于CPU内部,与当前执行指令直接相关
-
别称:在考试和教材中常称为"异常"
-
例题1
-
触发场景:用户态程序尝试执行特权指令
-
处理流程:
-
CPU检测到非法指令
-
触发中断信号拒绝执行
-
自动切换至内核态执行处理程序
-
-
结果:操作系统重新获得CPU控制权
-
-
例题2
-
典型情况:执行除法指令时除数为零
-
特点:即使是非特权指令,参数非法也会触发内中断
-
-
例题3
-
特殊指令:陷入指令(trap)
- 非特权指令但会引发内中断,用于应用程序主动请求内核服务
-
应用:系统调用的底层实现机制
-
2)外中断
-
本质特征:中断信号来自CPU外部,与当前指令无关
-
检测时机:CPU在每个指令周期末尾例行检查
-
例题1
-
硬件来源:时钟部件周期性发送(如每50ms)
-
并发实现:
-
应用程序1执行时收到时钟中断
-
CPU切换至内核态处理中断
-
内核调度应用程序2运行
-
循环切换实现多道程序并发
-
-

-
例题2
-
典型场景:I/O设备完成任务后发送中断信号
- 如打印机完成打印任务
-
处理方式:由对应内核程序处理设备通知
-
3.2.3 中断的分类
-
术语对照:
-
内中断 = 异常
-
外中断 = 中断(狭义)
-
-
异常子类:
-
陷入(trap):程序主动引发(如系统调用)
-
故障(fault):可修复错误(如缺页故障)
-
终止(abort):致命错误(如除零、非法特权指令)
-

3.2.4 中断机制的基本原理
-
处理流程:
-
CPU检测中断信号
-
查询中断向量表获取处理程序地址
-
执行对应的内核处理程序
-
-
检测差异:
-
内中断:执行指令时立即检查
-
外中断:指令周期末尾例行检查
-
3.3 系统调用
3.3.1 什么是系统调用
-
定义: 系统调用是应用程序请求操作系统内核服务的编程接口,由一组系统调用组成。
-
作用: 作为程序接口提供给应用程序使用,与命令接口(GUI/命令行)并列构成操作系统对外的两大接口类型。
-
类比: 类似于函数调用,但属于更底层的服务请求机制。
3.3.2 系统调用与库函数的区别
-
实现差异:
-
部分库函数(如math.hmath.hmath.h中的数学运算)无需系统调用
-
必须特权的操作(如文件创建)最终会调用系统调用
-
-
编程视角:
-
现代编程多使用高级语言库函数
-
底层可通过汇编直接发起系统调用
-
3.3.3 小例子
-
案例描述: WPS和Word并发打印导致内容混杂
-
问题本质: 共享资源(打印机)未受管控的并发访问
-
解决方案:
-
操作系统统一管理共享资源
-
通过系统调用实现资源分配
-
保证互斥访问避免冲突
-
-
核心启示: 系统调用是解决资源共享问题的必要机制
3.3.4 什么功能要用到系统调用
-
功能分类
-
共同特征: 涉及共享资源操作
-
管理必要性: 有限资源需统一分配,确保系统稳定性
3.3.5 系统调用的过程

-
执行流程:
-
用户态传参(通过寄存器)
-
执行陷入指令(trap)
-
触发内中断转入核心态
-
执行系统调用处理程序
-
返回用户态继续执行
-
-
关键指令:
-
陷入指令(非特权指令)
-
别名:trap指令/访管指令
-
-
状态转换:
-
请求在用户态发起
-
处理在核心态完成
-
-
高级语言封装:
-
库函数隐藏底层细节
-
参数传递和陷入指令由库函数处理
-
总结:

四、结构

4.1 计算机系统的层次结构

-
基本组成: 从下到上依次为裸机(纯硬件)、非内核功能(如GUI)、用户应用程序(软件)
-
内核功能:
-
时钟管理: 通过时钟中断实现计算机计时功能,是程序并发的基础
-
中断处理: 负责实现中断机制
-
原语: 具有原子性的特殊程序,执行过程不可中断,运行时间短且调用频繁
-
-
内核与非内核:
-
内核是操作系统最核心、最基本的部分,由一系列运行在内核态的程序组成
-
非内核功能如Ubuntu、CentOS等Linux发行版主要实现的是非内核部分
-
4.2 大内核(宏内核)
-
定义: 将所有操作系统功能(包括进程管理、存储器管理、设备管理等)都包含在内核中
-
运行模式: 所有内核功能都运行在内核态
-
特点:
-
优点: 性能高,应用程序请求服务时CPU状态转换次数少
-
缺点: 内核代码庞大,结构混乱,难以维护
-
-
典型系统: Linux、UNIX等
4.3 微内核
-
定义: 只保留与硬件关系最紧密的功能(时钟管理、中断处理、原语)在内核中
-
运行模式:
-
内核功能运行在内核态
-
其他功能(如进程管理、存储管理等)运行在用户态
-
-
特点:
-
优点: 内核功能少,结构清晰,方便维护
-
缺点: 需要频繁在核心态和用户态之间切换,性能较低
-
-
典型系统: Windows NT等
-
性能影响:
-
服务请求涉及多个模块时,每个模块访问内核都需要CPU状态转换
-
例如同时涉及进程管理、存储管理、设备管理的请求,需要6次状态转换(相比大内核只需2次)
-

4.4 最新结构大总结

五、引导
操作系统引导:指计算机开机时使操作系统运行起来的过程
5.1 磁盘相关数据
-
初始状态:新磁盘内部为空,类似空钱包需要安装操作系统后才能使用
-
MBR结构:
-
位置: 磁盘开头区域
-
组成:
-
磁盘引导程序:负责后续引导过程
-
分区表:记录各分区空间大小和地址范围的数据结构
-
-
分区示例: 常见的C/D/E/F盘划分
-
-
活动分区:
-
定义: 安装了操作系统并用于启动的分区(通常为C盘)
-
内部结构:
-
PBR(分区引导记录):负责找到启动管理器
-
根目录:包含操作系统文件和文件夹
-
-
5.2 操作系统引导过程
-
硬件基础:
-
主存组成: RAM(易失性) + ROM(非易失性)
-
BIOS存储: 存储在主板ROM芯片中的基本输入输出系统
-
-
四步引导流程:
-
ROM引导:CPU从固定地址执行ROM引导程序(自举程序),先进行硬件自检(检查磁盘、内存等)
-
读取MBR:将磁盘第一块(MBR)读入内存,执行磁盘引导程序并扫描分区表
-
读取PBR:从活动分区读取分区引导记录(PBR),执行PBR中的程序
-
启动管理器:从根目录找到并执行启动管理器,完成操作系统初始化(开机转圈圈阶段)
-
-
关键程序链: ROM引导程序 → 磁盘引导程序 → PBR程序 → 启动管理器
-
数据流向: ROM → MBR → PBR → 根目录文件

5.3 应用案例
-
例题:Windows操作系统文件夹
-
实践验证:
-
路径: C盘Windows文件夹下的Boot文件夹
-
内容: 包含操作系统初始化程序(启动管理器)
-
观察建议: 可自行查看但不要随意修改
-
-
启动管理器特征:
-
位于系统根目录下的深层路径
-
包含多个与启动相关的配置文件和程序
-
实际开机过程会按顺序调用这些文件
-
-
六、虚拟机
6.1 传统计算机
-
架构特点:一台物理机器上只能运行一个操作系统,操作系统之上运行各种用户进程
-
资源利用问题:在商业化环境中会导致硬件资源利用率不足,例如高性能服务器只能运行单一操作系统
-
安全隐患:不同应用(如游戏服务器)运行在同一操作系统上会相互争夺资源并产生安全风险
-
解决方案缺陷:将应用迁移到另一台物理机器虽能隔离风险,但会造成硬件资源浪费
6.2 虚拟机
6.2.1 虚拟机的定义
-
核心概念:使用虚拟化技术将一台物理机器虚拟化为多台虚拟机器(VM),每台VM可独立运行操作系统
-
商业价值:解决传统架构的资源浪费问题,允许单个高性能服务器同时安全运行多个隔离环境
6.2.2 虚拟机管理程序
-
术语说明:虚拟机管理程序(Virtual Machine Monitor, VMM)又称Hypervisor或虚拟机监控程序
-
资源分配原理:
-
CPU通过时间片划分模拟多处理器
-
磁盘和内存通过空间划分分配给各VM
-
类似传统OS的资源分配方式,但虚拟化层级更深
-
-
两类虚拟机管理程序
-
两类虚拟机管理程序的对比
-