工具内核

数据库、浏览器、消息队列等复杂软件内部的”内核”——存储引擎、渲染引擎、调度引擎。

为什么学”工具内核”

大多数工具软件不是”操作系统”, 但它们都包含一个”内核”——例如 SQLite 的 VDBE 虚拟机和 B-Tree 存储层, Nginx 的 epoll 事件循环和状态机。这些内核的设计原则与操作系统内核高度同构: 资源管理 (内存/磁盘/网络)、并发控制 (锁/MVCC)、虚拟化 (VDBE 字节码/Blink Layout)、调度 (事件循环/帧循环)。

文件索引

文件内容C/C++ 关联
SQLite内核tokenizer→parser→codegen, VDBE 虚拟机, B-Tree 存储, Pager+WAL, OS 抽象层[[../../ISSUES
Redis内核ae 事件循环, SDS/skiplist/dict, RDB+AOF 持久化, 主从复制[[../../ISSUES
MySQL内核InnoDB: B+Tree, MVCC, buffer pool, redo/undo log, 隔离级别; 查询优化器[[../../ISSUES
Chromium渲染内核Blink 渲染管线: HTML→DOM→Layout→Paint→Composite, V8 集成, GPU 合成[[../../ISSUES
Kafka核心不可变追加日志, 分区, 消费者组 offset 管理, ISR 复制[[../../ISSUES
Nginx事件驱动内核master+worker 进程模型, epoll 事件循环, HTTP 阶段状态机, 共享内存[[../../ISSUES

阅读路径

SQLite内核 → Redis内核 → MySQL内核 → Nginx事件驱动内核 → Kafka核心 → Chromium渲染内核
  • 从最简单的 SQLite (单文件嵌入式) 开始, 理解存储内核的基础
  • 然后看 Redis (内存存储), 理解事件循环和数据结构的融合
  • 再到 MySQL (磁盘存储 + 事务), 理解 ACID
  • 然后进入网络: Nginx (事件驱动 + HTTP), Kafka (分布式日志)
  • 最后是 Chromium (渲染 + V8 集成), 综合应用

相关模块