计算机底层基础:编译原理 · 操作系统 · 计算机网络 — 学习路线图

第三阶段补充一:资深工程师底蕴 面向:初级 H5 游戏程序员 | 前置:第一阶段 + 第二阶段 预计学习时间:3-4 个月


这个项目是什么?

前两个阶段你学了"怎么做":前端优化、后端开发、架构设计。但有个问题——你理解的都是"别人封装好的东西"。

  • 你用 V8 引擎,但不知道编译器怎么把源代码变成机器码
  • 你用线程池,但不知道操作系统怎么调度线程
  • 你用 WebSocket,但不知道 TCP 为什么会队头阻塞

本项目补的就是"底层理解"。 学完后你会发现:

  • 以前觉得 V8 编译流水线是黑魔法,现在和编译原理对照后一目了然
  • 以前觉得 JVM GC 参数不知道怎么调,现在理解了操作系统内存管理后调起来有底气
  • 以前觉得网络问题只能碰运气,现在能从协议层面分析根因

核心理念:底层原理不会直接让你写出更好的代码,但能让你在遇到问题时快速定位根因,而不是瞎猜。


学习路线

第01章:编译原理深度理解 ── 词法分析 → 语法分析 → 语义分析 → IR → 代码生成
  │  理解编译器的核心流程,才能看懂 V8 编译流水线
  ▼
第02章:链接器与加载器 ── 静态链接 vs 动态链接 · 符号解析 · 重定位
  │  理解编译产物怎么变成可执行文件,才能排查链接问题
  ▼
第03章:操作系统核心原理(进程与线程)── 调度 · 上下文切换 · 进程间通信
  │  理解 CPU 调度和线程模型,才能优化并发程序
  ▼
第04章:操作系统核心原理(内存管理)── 虚拟内存 · 分页 · 页表 · TLB
  │  理解内存管理,才能理解 GC 和内存泄漏的底层机制
  ▼
第05章:操作系统核心原理(I/O与文件系统)── I/O模型 · inode · 日志文件系统
  │  理解 I/O 模型,才能理解 Node.js/Netty 的事件循环
  ▼
第06章:TCP/IP 协议栈深度 ── 滑动窗口 · 拥塞控制 · 连接状态机
  │  理解 TCP 协议,才能排查网络延迟和拥塞问题
  ▼
第07章:UDP 与可靠传输 ── QUIC协议 · 自定义可靠UDP
  │  理解 UDP 和 QUIC,才能理解为什么游戏用 UDP
  ▼
第08章:HTTP/2 与 HTTP/3 ── 多路复用 · 头部压缩 · 服务器推送
  │  理解 HTTP 演进,才能优化游戏资源加载
  ▼
第09章:网络安全基础 ── TLS握手 · 证书链 · 中间人攻击
  │  理解网络安全,才能保护游戏通信安全
  ▼
第10章:实战篇:用底层知识排查游戏问题
     把前面学的知识串起来,变成可落地的排查能力

章节详细目录

章节 文件 核心内容 关键实践
第01章 01-编译原理深度理解/01-编译原理深度理解.md 词法分析、语法分析、语义分析、IR、优化Pass、代码生成 手写词法分析器+递归下降解析器
第02章 02-链接器与加载器/01-链接器与加载器.md 静态链接vs动态链接、符号解析、重定位 objdump/nm/readelf分析目标文件
第03章 03-操作系统进程与线程/01-操作系统进程与线程.md 进程模型、上下文切换、调度算法、IPC 多线程程序+生产者消费者模型
第04章 04-操作系统内存管理/01-操作系统内存管理.md 虚拟内存、分页、TLB、页面置换、大页面 pmap观察进程内存+大页面测试
第05章 05-操作系统IO与文件系统/01-操作系统IO与文件系统.md 五种I/O模型、epoll、inode、日志文件系统 strace跟踪系统调用+epoll性能对比
第06章 06-TCPIP协议栈深度/01-TCPIP协议栈深度.md TCP状态机、滑动窗口、拥塞控制、队头阻塞 Wireshark抓包分析TCP
第07章 07-UDP与可靠传输/01-UDP与可靠传输.md UDP特点、QUIC协议、0-RTT连接 curl --http3测试+手写可靠UDP
第08章 08-HTTP2与HTTP3/01-HTTP2与HTTP3.md HTTP演进、多路复用、HPACK头部压缩 DevTools查看HTTP/2流+Nginx配置
第09章 09-网络安全基础/01-网络安全基础.md TLS握手、证书链、常见攻击与防御 openssl连接HTTPS+Wireshark分析TLS
第10章 10-实战篇用底层知识排查游戏问题/01-实战篇用底层知识排查游戏问题.md 卡顿排查、消息延迟排查、内存增长排查 底层知识图谱+实战案例分析

前置知识

你不需要是计算机专业,但需要以下基础:

  • 编程基础:能写简单的JavaScript/Java程序
  • 数据结构基础:了解数组、链表、树的基本概念
  • 网络基础:了解HTTP、TCP/IP的基本概念
  • Linux基础(推荐):会基本的Linux命令

如果你没有这些基础,本系列会从最基础的概念开始讲解。


核心概念:底层原理是通用的

为什么学底层原理?

1. 技术迁移能力
   学会了TCP拥塞控制,理解任何网络协议都容易
   学会了进程调度,理解任何并发模型都容易
   
2. 问题排查能力
   不懂底层,遇到问题只能"试试看"
   懂底层,能从原理层面分析问题根因
   
3. 技术选型能力
   不懂底层,只能"别人用什么我用什么"
   懂底层,能根据原理判断技术优劣
   
4. 学习能力
   不懂底层,新技术出来要重新学
   懂底层,新技术只是底层原理的新应用

学习建议

初学者必看

  1. 不要被术语吓到:每个术语都有生活化比喻
  2. 先理解概念:不要一上来就深究细节
  3. 画图辅助:进程、内存、网络,画图比文字更直观
  4. 联系实际:每个概念都联系到实际开发场景
  5. 动手实验:用代码验证理论

进阶学习

  1. 读经典书籍:《CSAPP》、《编译原理》、《TCP/IP详解》
  2. 看源码:V8源码、Linux内核源码、Chromium源码
  3. 做实验:写一个简单的编译器、实现一个简单的OS

时间规划

周期 学习内容 每日投入
第1~3周 01~02章:编译原理+链接器 3小时/天
第4~6周 03~05章:操作系统 3小时/天
第7~9周 06~09章:计算机网络 3小时/天
第10周 第10章:实战篇 3小时/天

与其他学习项目的关系

本项目内容 关联项目 关联点
编译原理 2_1_v8Learn V8 编译流水线是编译原理的完整实现
操作系统内存 2_3_browser-memory-mastery 虚拟内存是浏览器内存的底层机制
I/O 模型 3_1_java-backend-deep-dive Netty/NIO 基于操作系统 I/O 多路复用
TCP/IP 4_1_game-architecture 网络同步基于 TCP/UDP 协议
链接器 2_1_v8Learn V8 编译产物的链接过程
TLS 3_1_java-backend-deep-dive 游戏通信安全

学习资源推荐

书籍

  • 《深入理解计算机系统》(CSAPP)- Randal E. Bryant
  • 《编译原理》(龙书)- Alfred V. Aho
  • 《操作系统概念》- Abraham Silberschatz
  • 《TCP/IP详解》- W. Richard Stevens
  • 《现代操作系统》- Andrew S. Tanenbaum

在线资源


常见问题

Q:我不是计算机专业,能学懂这些吗?

A:能!本系列假设读者没有计算机专业背景,从最基础的概念开始讲解。每个概念都有生活化比喻和代码示例。

Q:这些内容太深奥,对游戏开发有用吗?

A:非常有用!

  • 编译原理:理解V8、Webpack、Babel的工作原理
  • 操作系统:理解进程、线程、内存管理
  • 网络:理解TCP、WebSocket、HTTP的工作原理

Q:学完能达到什么水平?

A:能达到资深工程师的底层知识水平。面试时能从原理层面回答问题,遇到复杂问题能从底层分析。

Q:需要学多久?

A:建议2-3个月。每天投入2-3小时,认真学完所有章节。


文档版本:2026年4月(精品合并版) 目标受众:初级 H5 游戏程序员 → 资深游戏开发者/架构师 前置项目:第一阶段 + 第二阶段 核心认知:底层原理不会直接让你写出更好的代码,但能让你在遇到问题时快速定位根因