实验七 Linux 内核如何装载和启动一个可执行程
一、编译链接的过程和 ELF 可执行文件格式
(1)编译链接过程
(2)ELF
在Windows下可执行文件的格式一般为PE,而在Linux下可执行文件的格式为ELF。ELF文件的全称是Executable and Linkable Format,意为可执行的、可连接的格式。ELF文件分为三类:
1.可重定位(relocabtable)文件,保存着代码和适当的数据,用来和其他的object文件一起来创建一个可执行文件或者是一个共享文件。
2.可执行(executable)文件,保存着一个用来执行的程序,该文件指出了exec(BA_OS)如何来创建程序进程映像。
3.共享object文件,保存着代码和合适的数据,用来被下面的两个链接器链接。第一个是链接编辑器(静态链接),可以和其他的可重定位和共享object文件一起来创建object文件;第二个是动态链接器,联合一个可执行文件和其他的共享object文件来创建一个进程印象。
(3)两种方式
静态库:直接执行可执行程序的入口。
动态库:由ld来动态链接这个程序,再把控制权交