读书·《程序员的自我修养》

Posted by inhann on 2021-03-03
Page views

[toc]

菜鸡这几天看到一本好书,《程序员的自我修养》,读了读其中关于 linux 中 elf 文件格式和程序的链接、装载的部分,感觉挺不错的,这里分享一下相关的知识整理

概述

书的链接:

https://book.douban.com/subject/3652388/

写得还是挺好的,作者已经尽其所能讲得有条理了,值得读一读

ELF 文件格式

可重定位文件

目标文件,即扩展名为 .o 的文件,是可重定位文件的典型,其文件格式为 elf

下面是相关的知识点

可执行文件

一般没有扩展名,格式也是 elf,可以参考目标文件

相关知识点如下

共享对象

一般以 .so 为扩展名,格式也是 elf ,可参考 目标文件,当然也有许多特殊的结构

以下是知识点

静态链接

静态链接,可以简单地理解为把 目标文件组合起来,生成一个可执行文件的过程,具体过程可以参考以下整理

装载与进程

进程的建立,实际上就是装载的过程之一,装载将文件的部分从硬盘复制到了物理内存

理解装载和进程,对理解动态链接还是比较重要的

下面是整理的知识点

动态链接

动态链接,简单地说就是可执行文件装载、运行的时候才对引用的一些符号进行修正

下面是知识点