<!-- title: 8个仓库，亲手造一遍计算机 -->

# 别再收藏教程了：8个让你亲手造一遍计算机的源码课堂

## 概述：这一轮，反着挖

前五轮我们都在追新：新仓库、新赛道、新风口。这一轮换一种挖法——去挖那些**十年后依然不会过时的仓库**。它们共同的特征是：不是给你用的工具，而是给你“亲手造一遍”的课堂。从软光栅渲染器到 Unix 内核，从解释器到数据库内核，直到花一顿饭钱流片一颗真芯片。造过一遍的人，和只看过一百篇教程的人，是两种工程师。按惯例交代一句：本仓库的 Star 均为约数、更新节奏为长期规律，精确数据请以各仓库页面实时显示为准。

---

## 1. [codecrafters-io/build-your-own-x](https://github.com/codecrafters-io/build-your-own-x)｜六位数星级｜长期居 awesome 类榜首

**一句话定位**：一张“亲手造一切”的藏宝图，帮你解决“想深入却不知道从哪下手”的选择困难。

这个仓库可能是 GitHub 上被收藏最多的学习资源之一：纯 README 结构，没有一行需要运行的代码，却收录了几百条“Build Your Own X”教程的索引——数据库、编译器、操作系统、Docker、Git、区块链、机器人、神经网络，按学科分门别类，每条都指向免费原文。它的用法很简单：先当目录浏览一遍，圈定一个“造什么”，再顺着链接进入具体教程。**上手难度：⭐**

值得拆的是它的商业设计：仓库维护方 CodeCrafters 本身是一家创业公司，做的事是“陪练式编程课”——你在真实代码库里逐步重建 Redis、Git、Docker，平台自动判题。仓库免费获客，平台收费陪练，堪称“开源目录导流、付费服务变现”的教科书案例。想做技术付费产品的读者，值得把它当商业模式样本研究。

**适用人群**：所有想系统性“造轮子”的工程师；二次开发方向：按垂直领域（嵌入式、游戏后端、数据基建）裁剪出子目录，就是一门现成课程的骨架。

---

## 2. [ssloy/tinyrenderer](https://github.com/ssloy/tinyrenderer)｜约2万星级｜低频维护的完成体课程

**一句话定位**：图形程序员的“公认第一课”——不碰 OpenGL，纯 CPU 写出一个软光栅渲染器。

大多数图形学入门者的痛苦是：教材一上来就是矩阵推导，环境一上来就是 GPU、着色器、驱动版本，跑不起来的挫败感劝退率极高。tinyrenderer 反其道而行：它把图形学拆成一串循序渐进的编程作业——从画一条 Bresenham 直线开始，到三角形光栅化、z-buffer 消隐、法线贴图、阴影、环境光遮蔽——全程只用最朴素的 C++，不依赖任何图形 API。全部作业做完，你能在屏幕上渲染出一张带真实光影的人脸头像，而此刻你对 GPU 一无所知，却已经理解了 GPU 在替你做什么。**上手难度：⭐⭐**

它的课程载体全在仓库 Wiki 里，免费、无广告、无注册。社区里流传着大量“靠这一课转进图形岗位”的经历帖，堪称小而美课程的长期标杆。

**适用人群**：后端/客户端工程师想横跳图形方向、或游戏开发者想补渲染内功的人。变现角度：以它为骨架做中文实战营、或延伸到 WebGL 版本，都是被验证过的课程形态。

---

## 3. [munificent/craftinginterpreters](https://github.com/munificent/craftinginterpreters)｜约1万星级｜持续可读的开源整书

**一句话定位**：一本完整开源的《手写解释器》，一本书吃透两种解释器架构。

仓库即全书：作者 Bob Nystrom（曾在 Google 参与 Dart 语言）把整本《Crafting Interpreters》的排版稿、示例代码、配图全部开源，官网可以免费通读，纸质书纯属自愿支持。内容的精妙在于**对称结构**：前半部分用 Java 写一个树遍历解释器 jlox，重点讲词法、语法、解析、静态解析这些“语言学”功底；后半部分推倒重来，用纯 C 写一个字节码虚拟机 clox，重点讲指令编码、栈帧、哈希表 Interning、增量 GC 这些“工程学”功底。读完你等于亲手做过两类主流解释器，看 Lua、Python、JS 的实现思路时会有“我见过这个套路”的既视感。**上手难度：⭐⭐⭐**

想直接啃成品源码的读者，可以把它当上集，把 rui314/chibicc 当下集——后者是一个能编译真实 C 项目的迷你编译器，偏读不偏写。

**适用人群**：想做 DSL、想给自家产品嵌脚本引擎、或想搞懂“语言到底怎么跑起来”的工程师。二次开发方向：把书里的 Lox 换成任意方言（加类型、加并发）做毕设或个人作品集，门槛低、辨识度高。

---

## 4. [mit-pdos/xv6-riscv](https://github.com/mit-pdos/xv6-riscv)｜近万星级｜随 MIT 课程滚动更新

**一句话定位**：麻省理工操作系统课的官方教学内核，几千行代码装下一个 Unix。

读 Linux 内核的人大多死在半路：两千万行代码、几十年的历史包袱，任何一页都有十个坑。xv6 是这个问题的经典解法——MIT 把 1975 年第六版 Unix 的设计思想，用现代 RISC-V 指令集重写成几千行可通读的教学内核：进程调度、虚拟内存、文件系统、中断陷阱，每个子系统都小到能在一周内读完，又真实到能在 QEMU 里跑起来、加系统调用、写驱动。仓库与 MIT 6.1810（前身 6.828/6.S081）课程同步维护，每个新学年都会随课程作业滚动更新，配套的 xv6 book 免费 PDF 逐章对应源码，这是它“基础质量”项近乎满分的原因：几十年课程迭代背书，不是个人爱好项目。**上手难度：⭐⭐⭐⭐**

**适用人群**：后端/嵌入式工程师冲击系统岗、或准备面试“讲讲虚拟内存”的人——通读过 xv6 的人面试时是有气场的。商业方向：国内多个系统岗面试 Checklist 都暗含 xv6 知识点，围绕它的训练营与 Rust 移植项目（社区已有多个）长期有需求。

---

## 5. [cmu-db/bustub](https://github.com/cmu-db/bustub)｜数千星级｜每学期随 CMU 开课更新

**一句话定位**：卡内基梅隆数据库课 15-445 的官方作业框架，亲手填出一个关系型数据库的骨架。

会用数据库的人千千万，懂数据库内核的人凤毛麟角，这就是薪资差距所在。BusTub 是 Andy Pavlo 那门著名课程的配套工程：框架给你搭好，学生逐年轮换着亲手实现缓冲池管理器、B+ 树索引、查询执行器、并发控制这四大件——做完四份作业，你对“一条 SQL 是怎么跑起来的”的理解会从黑盒变成透视图。配套的课程视频全部公开，讲义质量在业内有口皆碑。仓库 README 明确声明它仅用于教学、不建议生产使用，这份坦诚反而保证了它永远简单可读。**上手难度：⭐⭐⭐⭐**

**适用人群**：冲数据库内核岗（国产数据库大厂常年招不满这类人）、或想给 ORM 调优时“知其所以然”的后端。变现思路：BusTub + 课程视频组合是现成的“数据库内核训练营”素材库，这类训练营客单价在培训市场里长期位居前列。

---

## 6. [rxi/fe](https://github.com/rxi/fe)｜约1千星级｜小而美：一门不到四千行的 C 语言实现

**一句话定位**：把一门完整脚本语言塞进不到四千行 C99，通读一遍胜读十篇“手写解释器”博客。

fe 是 lite 编辑器作者 rxi 的“配角项目”：语法刻意贴近 Lua，提供解释器加字节码虚拟机的完整实现，全部源码控制在四千行以内——这意味着一个周末就能从头读到尾，亲眼看到“词法分析如何变成指令、指令如何在栈上流转、表和闭包如何分配回收”。市面上的语言实现教材大多在五万行起步，fe 是罕见的“体量小到能全部装进脑子”的样本。它不是给你生产用的语言，而是一张被精确裁剪过的语言实现剖面图。**上手难度：⭐⭐⭐**

**适用人群**：读过《Crafting Interpreters》想看真实工程化收尾的人；需要给嵌入式设备或桌面软件嵌一个可控小脚本的团队——fork 它改个语法，一两天就能得到私有 DSL，这是它最实际的二次开发方向。

---

## 7. [tsoding/nob.h](https://github.com/tsoding/nob.h)｜约1千多星级｜小而美：一个头文件颠覆构建系统

**一句话定位**：“no-build”哲学的官方实现——别学构建系统了，用 C 自己写构建脚本。

每个项目都有一段不堪回首的经历：Makefile 缩进报错、CMake 版本地狱、新构建工具学了三年就过时。长年直播写代码的 tsoding 给出的答案是激进的：**构建脚本本身就是一段普通的 C 程序**。用法是写一个 nob.c，先用 `cc nob.c` 编译成可执行文件再运行，它负责拼接编译命令、拷贝产物、跑测试——仓库提供的 nob.h 只是围绕这套思路的 conveniences 头文件（命令执行、目录遍历、重建自身等）。没有 DSL、没有缓存黑魔法、没有版本兼容问题，构建逻辑可以下断点、可以 printf、可以用 git 管理。这个思路正在直播社区里悄悄扩散，越来越多中小项目开始“造自己的 nob”。**上手难度：⭐**

**适用人群**：被构建系统折磨过的所有 C/C++ 开发者；中小项目维护者。它证明了一个反直觉的产品逻辑：打败复杂工具的，往往不是更复杂的工具，而是一段五十行的朴素代码。

---

## 8. [TinyTapeout/tinytapeout](https://github.com/TinyTapeout/tinytapeout)｜数百星级｜小而美：拼团流一颗自己的芯片

**一句话定位**：把动辄数万美元的 ASIC 流片费做成“拼团”，让普通工程师也能拿到刻着自己设计的实体芯片。

个人做芯片曾经只有一条路：进晶圆厂。TinyTapeout 把这件事改造成了社区拼团：每期 shuttle 把几百个小 tile 拼成一片 multi-project 晶圆送去代工厂流片，每个参与者买一个 tile，放上几十到几百个逻辑门的设计——支持写 Verilog，也支持图形化工具生成的简单逻辑。当期工艺用 IHP 开源的 SG13G2 PDK 与 SkyWater sky130 等开源工艺库，仓库文档把从提交设计到拿回实体芯片的流程拆成了保姆级步骤，每隔约一个季度滚动开新一期，节奏稳定、社区活跃，基础质量在冷门项目里属第一梯队。等你手里捏着那颗印着自己名字的芯片时，简历上“了解数字后端”六个字就再也不虚了。**上手难度：⭐⭐⭐**（需一点 Verilog 基础）

**适用人群**：数字IC初学者、硬件教育者、想给项目加“真芯片”光环的独立开发者。变现思路非常直白：培训机构可以开“三个月流片一颗真芯片”的高价课；手作品牌把芯片做成徽章、名片、挂件，天然自带传播属性。官网 [tinytapeout.com](https://tinytapeout.com) 有当期价格与日程。

---

## 本期横向对比

| 仓库 | 领域 | Star（约） | 上手难度 | 一句话场景 |
|---|---|---|---|---|
| build-your-own-x | 学习目录 | 六位数 | ⭐ | 圈定你要造什么 |
| ssloy/tinyrenderer | 图形学 | 2万+ | ⭐⭐ | 一个周末写软光栅 |
| craftinginterpreters | 语言实现 | 1万+ | ⭐⭐⭐ | 一本书两种解释器 |
| mit-pdos/xv6-riscv | 操作系统 | 近万 | ⭐⭐⭐⭐ | 几千行读完一个 Unix |
| cmu-db/bustub | 数据库内核 | 数千 | ⭐⭐⭐⭐ | 四大作业填出数据库 |
| rxi/fe | 迷你语言 | 约1千 | ⭐⭐⭐ | 四千行通读一门语言 |
| tsoding/nob.h | 构建系统 | 约1千多 | ⭐ | 用 C 干掉 CMake |
| TinyTapeout/tinytapeout | 开源芯片 | 数百 | ⭐⭐⭐ | 拼团流片真芯片 |

## 一张图看懂本期：从软件到硅片，亲手造一遍计算机

```mermaid
mindmap
  root((源码课堂))
    入口
      build-your-own-x 藏宝图
    图形学
      tinyrenderer 软光栅
    语言实现
      craftinginterpreters 双解释器
      fe 四千行迷你语言
    操作系统
      xv6-riscv 教学内核
    数据库
      BusTub 课程内核
    构建系统
      nob.h 一个头文件
    芯片
      TinyTapeout 拼团流片
```

## 本期之最

- **最值得立即尝试：tsoding/nob.h**——五十行代码当天生效，是本期唯一“今晚就能用进生产项目”的仓库，顺便接受一次构建哲学的再教育。
- **最有商业潜力：cmu-db/bustub**——数据库内核人才缺口长期存在，以它为骨架的陪练课程、训练营、面试题库都是高客单价生意，CodeCrafters 已经证明了这条路。
- **最被低估：TinyTapeout/tinytapeout**——数百星级的仓库，做的事却是“把晶圆厂开放给普通人”。等它像 Arduino 一样进入中学课堂的那天回头看，现在的星数会显得可笑。

## 参考来源

1. [build-your-own-x 仓库](https://github.com/codecrafters-io/build-your-own-x) — 本文入口类仓库的目录结构与定位说明
2. [tinyrenderer 仓库及 Wiki](https://github.com/ssloy/tinyrenderer) — 课程结构与“纯软渲染”路线的原始出处
3. [Crafting Interpreters 官网](https://www.craftinginterpreters.com) — jlox/clox 双篇结构与免费阅读方式
4. [xv6-riscv 仓库](https://github.com/mit-pdos/xv6-riscv) 与 [MIT PDOS 课程页](https://pdos.csail.mit.edu/6.828/) — 教学内核定位与课程同步机制
5. [BusTub 仓库](https://github.com/cmu-db/bustub) 与 [CMU 15-445 课程站](https://15445.courses.cs.cmu.edu/) — 四大作业构成与教学用途声明
6. [TinyTapeout 仓库](https://github.com/TinyTapeout/tinytapeout) 与 [官网](https://tinytapeout.com) — 拼团流片机制、开源 PDK 与当期流程

> [!tip] 51学通信知识星球
> **星主：爱卫生**（微信：gprshome201101）——公众号「51学通信」创办者，19 年通信行业运维与讲师经验，著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书（各大电商平台有售）。
> **星球定位**：深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域，主打运维岗位与信令分析。
> **当前规模**：5200 篇主题 / 990 个回答，198 元/年。
> **加入福利**：加入星球后请加爱卫生微信，拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题，另有群内分享。
> **AI 加持**：51学通信知识星球已作为 skill 接入 WorkBuddy，使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例，做总结、找文档和 PPT 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
