能力缺口:背过进程状态图,却答不出程序怎么跑起来

这门课解决的是底层逻辑断层问题。很多转岗或自学的开发者,能熟练调用系统接口,也能用高级语言写出并发逻辑,但一旦被追问“应用程序代码和操作系统代码是怎么混在一起运行的”“虚拟内存到底是怎么映射的”,往往只能背概念,讲不清底层机制。如果你写了好几年业务代码,却从没搞懂裸机程序和带操作系统程序的加载区别,或者对进程控制块、进程状态切换的具体触发条件只是一知半解,这就是你需要补的缺口。课程适合有一定编程经验、能看懂基础代码逻辑,但在计算机底层运行机制上存在盲区的学习者,不需要你精通汇编,但最好接触过基础的开发环境。

建议先看这几块:从加载运行到进程调度

资料包的线索是按从浅到深排的,但别从头硬啃。建议先看程序加载运行相关的内容,直接对比裸机程序加载和操作系统下程序加载的区别,把“代码怎么变成运行实体”这个基础打牢。接着重点看进程与进程控制块,不要只记状态切换的五状态图,要弄懂状态切换详述里的具体场景,比如什么操作会触发就绪到运行、什么情况会导致阻塞。进程调度和进程间通信这块,结合进程关系一起看,理解父子进程等概念在实际运行中的意义。最后落到虚拟内存的基本原理,这部分是难点,把虚拟内存的原理和实现机制看透,很多内存泄漏、指针异常的底层原因就能自己推导出来。

学完能做什么与资料配合练习方法

学完这门课,你应该能独立分析程序运行时的资源占用问题,能从操作系统调度和内存管理的角度去排查性能瓶颈,而不是只会用工具看表面数据。面对多线程并发冲突,能讲清楚轻量级进程和普通进程的区别,知道操作系统在背后做了什么调度动作。资料配合练习时,不要光看视频,建议自己写几个简单的程序,用系统工具观察进程状态切换,比如手动制造阻塞看状态变化。虚拟内存部分,结合资料里的原理,自己画一遍地址映射图,确保每个转换步骤都能说清楚。看完后问自己几个问题:进程控制块里到底存了什么?虚拟内存怎么解决内存不足问题?如果答不上来,就回去把对应章节再看一遍,别假装会了。

课程目录

1 操作系统知识点大纲 (28:35)
2 软件分类和库、框架、SDK之间的关系 (22:23)
3 OS概述 (15:11)
4 OS的组成 (22:02)
5 应用程序和OS代码是如何一起运行在计算机上的 (17:40)
6 什么是进程与进程控制 (25:25)
7 进程控制块(PCB) (16:48)
8 进程的状态切换关系 (09:40)
9 进程状态切换详述 1 (15:38)
10 进程状态切换详述 2 (13:38)
11 进程调度和进程间通信 (18:36)
12 进程关系 (30:29)
13 轻量级的进程—线程 (22:31)
14 裸机程序加载运行 (22:10)
15 DOS操作系统下程序的加载和运行 (20:21)
16 虚拟内存的基本原理1 (24:36)
17 虚拟内存的基本原理2 (13:57)
18 虚拟内存基本实现原理2 (13:57)
19 虚拟内存的详细实现原理 (34:16)
20 虚拟内存的详细实现原理 (34:16)
21 动态库的运作原理 (35:42)
22 虚拟内存总结 (33:23)
23 什么是电脑的外部设备 (23:15)
24 驱动程序工作原理1 (32:50)
25 驱动程序工作原理2 (30:44)
26 裸机驱动程序的开发 (28:32)
27 基于OS的驱动 (23:34)
28 有关驱动开发这个工作 (27:36)
29 驱动开发与纯应用开发对比 (23:54)
30 为什么驱动开发的岗位较少 (25:53)
31 驱动开发是从零写一个驱动吗 (23:08)
32 OS文件管理——文件 (36:56)
33 文件系统是个啥 (27:08)
34 文件系统与OS和磁盘的关系 (31:40)
35 磁盘的空间管理格式 (16:21)
36 文件属性存储区 (15:38)
37 文件数据存储区 (27:02)
38 文件的访问过程 (34:42)
39 打开文件、读写文件数据 (14:02)
40 什么是API (25:30)
41 文件系统 与 磁盘驱动 (29:08)
42 OS API所提供的服务有哪些 (19:35)