20. 动态链接和加载

背景回顾:我们已经知道 “可执行文件” 是描述进程初始状态的数据结构,并通过 Funny Little Executable 了解了可执行文件生成的编译、链接、加载过程。随着软件生态系统的发展,我们有了 “拆解” 软件的需求和动态链接。

本讲内容:动态链接和加载:原理与实现。

20.1 动态链接

20.2 实现动态加载

20.3 ELF 的动态链接和加载 🌶️

Take-away Messages

找到正确的思路,我们就能在复杂的机制中找到主干:在动态链接的例子里,我们试着自己实现动态链接和加载——在这个过程中,我们 “发明” 了 ELF 中的重要概念,例如 Global Offset Table, Procedure Linkage Table 等。

课后习题/编程作业

1. 阅读材料

📚阅读材料

教科书 Operating Systems: Three Easy Pieces

  • 第 15 章 - Address Translation
  • 第 16 章 - Segmentation
  • 第 17 章 - Free Space Management
  • 第 18 章 - Introduction to Paging