计算机基础实战课 · 深度学习指南(细化版)
作者:彭东(手写 CPU 系列)| 真实结构:42 讲正文 + 加餐/福利(共 61 个文件) 定位:以「手写一颗 RISC-V mini CPU」为主线,把计算机底层串起来——不是泛泛讲概念,而是让你真的看懂「代码怎么变成电路、怎么跑起来」。
一、这门课到底讲什么
很多「计算机基础」课只是画个冯·诺依曼结构图就完事,这门课不一样——它让你亲手写一颗 CPU:从硬件描述语言(Verilog)到指令架构(RISC-V),一步步实现取指、译码、执行、访存、写回五级流水线,最后跑通 Hello World。
学完这条主线,再往上层走:C 语言、内存、进程、文件系统、浏览器原理,你会发现全部「通了」。
二、真实讲次大纲(按模块)
模块 1:指令集与 CPU 设计(第 1–13 讲)
| 讲次 | 核心知识点 | 课程原案例 |
|---|---|---|
| 01 | CISC vs RISC 的由来 | 复杂指令集 vs 精简指令集的历史 |
| 02 | RISC 特性;RISC-V 为什么是「半导体的 Linux」 | 开源指令集的红利 |
| 03–04 | 硬件语言筑基(Verilog);代码怎么生成电路 | 从 Verilog 到门电路 |
| 05 | RISC-V 指令架构优势 | 精简、模块化、可扩展 |
| 06–11 | 手写 CPU 五级流水线:取指→译码→执行→访存→写回 | mini CPU 完整实现 |
| 12–13 | QEMU 构建、跑通 RISC-V 的 Hello World | 真实跑起来 |
模块 2:从高级语言到机器指令(第 14–22 讲)
| 讲次 | 核心知识点 |
|---|---|
| 14–15 | C 语言怎么抽象执行逻辑;编译器「搬砖」日常 |
| 16–22 | RISC-V 指令精讲:算术、跳转、原子、加载、访存指令的实现与调试 |
模块 3:内存与进程(第 23–32 讲)
| 讲次 | 核心知识点 | 课程原案例 |
|---|---|---|
| 23–24 | 内存地址空间;虚拟内存与物理内存 | 地址的三种产生方式 |
| 25–27 | 堆与栈;延迟分配三种机制;Linux 应用内存管理 | 堆栈区别 |
| 28 | 进程调度:应用为什么能「并行」 | 时间片与调度 |
| 29–30 | 进程间通信(Linux IPC) | 管道、消息队列、共享内存 |
| 31–32 | IO Cache、IO 调度;Linux 如何管外设 | 外设通信 |
模块 4:文件系统(第 33–36 讲)
| 讲次 | 核心知识点 |
|---|---|
| 33 | iotop / iostat 命令背后的原理 |
| 34–36 | 文件与文件系统;Linux 如何存放文件(inode、目录、挂载) |
模块 5:浏览器原理与内功心法(第 37–42 讲)
| 讲次 | 核心知识点 |
|---|---|
| 37–38 | 浏览器为什么要多进程模型;进程通信与网络渲染 |
| 39 | 源码解读:V8 执行 JS 代码全过程 |
| 40–41 | 内核和后端通用的设计思想(内功心法) |
| 42 | 性能调优:eBPF 与调优方法 |
三、必须吃透的核心知识点
-
五级流水线:CPU 不是「做完一条再做下一条」,而是像流水线一样同时处理多条指令的不同阶段。取指、译码、执行、访存、写回五个阶段并行——这是 CPU 能「每秒几十亿条指令」的根本原因。
-
虚拟内存:每个程序都以为独占一整块内存,其实是操作系统用「页表」把虚拟地址映射到物理地址。这正是阶段一《内存知识》要深入的主题,两门课互为表里。
-
进程调度:为什么你同时开浏览器、听歌、写代码,感觉它们在「同时」跑?因为 CPU 在极短的时间片里快速切换进程。
-
内功心法(第 40–41 讲是精华):内核和后端通用的设计思想——分层、抽象、缓存、异步。学完你会发现「Linux 内核」和「你的后端服务」用的是同一套设计哲学。
四、引发思考
- RISC 和 CISC 的本质区别?为什么手机(ARM,RISC)和服务器(x86,CISC)走了不同路线,现在又在「精简」上殊途同归?
- 手写 CPU 时,「译码」模块到底在做什么?为什么说它是「把 0/1 翻译成动作」的关键?
- 虚拟内存解决了哪两个问题?(隔离 + 超卖)没有它,多进程会怎样?
- 堆和栈的区别,除了「大小、方向」,在「分配速度」和「生命周期」上还有什么本质不同?
- 浏览器为什么用「多进程」而不是「多线程」?(一个标签页崩溃不拖垮整个浏览器)
五、学完自测
- 能画出 CPU 五级流水线,并说出每一级干什么
- 能解释「虚拟地址 → 物理地址」的映射过程
- 能说出进程调度为什么让程序「看起来在并行」
- 能说清「文件系统」和「块设备」的分层关系
配套建议:先读本课建立「从电路到进程」的全景,再精读《编程高手必学的内存知识》把内存这块吃透。