背景回顾:我们已经知道 “可执行文件” 是描述进程初始状态的数据结构,并通过 Funny Little Executable 了解了可执行文件生成的编译、链接、加载过程。随着软件生态系统的发展,我们有了 “拆解” 软件的需求和动态链接。
本讲内容:动态链接和加载:原理与实现。
找到正确的思路,我们就能在复杂的机制中找到主干:在动态链接的例子里,我们试着自己实现动态链接和加载——在这个过程中,我们 “发明” 了 ELF 中的重要概念,例如 Global Offset Table, Procedure Linkage Table 等。
教科书 Operating Systems: Three Easy Pieces: