Go under the hood Go 源码研究 | 当前基于 go1.12beta2 [TOC] 目录 引言 第一部分: 基础 第一章 程序基础 第二章 并行与并发计算 第三章 排队与调度理论 第四章 内存管理工程 垃圾回收统一理论 第五章 Go 程序生命周期 程序引导 初始化概览 主 goroutine 第二部分:运行时机制 第六章 调度器 基本结构 调度器初始化 调度循环 系统监控 线程管理 信号处理机制 执行栈管理 协作与抢占 note 与 mutex 过去、现在与未来 第七章 内存分配器 基本知识 组件 初始化 大对象分配 小对象分配 微对象分配 内存统计 过去、现在与未来 第八章 垃圾回收器 基本知识 初始化 屏障 三色标记 并发回收 标记过程 清扫过程 存活与终结 过去、现在与未来 第九章 调试 race 竞争检测 trace 运行时调试 第十章 兼容与契约 参与运行时的系统调用: Linux 参与运行时的系统调用: Darwin cgo WebAssembly 第三部分:编译系统 第十一章 关键字 go defer panic 与 recover map chan 与 select interface 第十二章 模块链接器 初始化 模块链接 第十三章 编译器 unsafe 词法与文法 类型系统 编译后端 SSA [过去、现在与未来] 第四部分:标准库 第十四章 sync 与 atomic 包 信号量 sema 机制 sync.Pool sync.Once sync.Map sync.WaitGroup sync.Mutex sync.Cond sync/atomic.* 第十五章 其他 syscall.* os/signal.* reflect.* net.* time.* 结束语 参考文献 附录 附录A: 源码索引 附录B: 术语表 捐助 您的捐助将用于帮助我购买一台 MacBook Pro: Acknowledgement The author would like to thank @egonelbre for his charming gopher design. 许可 Go under the hood | CC-BY-NC-ND 4.0 & MIT © changkun