可执行文件 (和 Core Dump) 都是描述进程状态的数据结构。对于 ELF 文件来说,其中最重要的部分是一些 PT_LOAD 的数据段,正确在进程地址空间中 (用 mmap) 映射它们,就能实现程序的加载——就像我们在 Funny Little Executable 里做的那样。
本讲内容:当开发者希望把库函数和应用程序 “分离” 开,但又希望库函数可以被调用,应该怎么办?
Take-away Messages: 找到正确的思路,我们就能在复杂的机制中找到主干:在动态链接的例子里,我们试着自己实现动态链接和加载——在这个过程中,我们 “发明” 了 ELF 中的重要概念,例如 Global Offset Table, Procedure Linkage Table 等。
教科书 Operating Systems: Three Easy Pieces: