7. LoongArch目标文件和进程虚拟空间
目标文件(Object File)指的是编译器对源代码进行编译后生成的文件。前面章节介绍的经过GCC编译器编译生成的未链接的中间文件hello.o,以及最终经过链接生成的不带文件扩展名的可执行文件hello都属于目标文件。目标文件包含编译后的机器指令、数据(全局变量、字符串等),以及链接和运行时需要的符号表、调试信息、字符串等。目标文件格式涵盖了程序的编译、链接、装载和执行的各个方面,所以了解目标文件的格式对认识系统、了解编译器运行机理、熟悉汇编语言都是有很大帮助的。目前主流的目标文件格式是Windows系统采用的PE(Portable Executable,包括未链接的.obj文件和可执行的.exe文件)和Linux系统中采用的ELF(Executable Linkable Format,包括未链接的.o文件和可执行文件)。龙芯处理器上运行的国产操作系统源于Linux系统,故本章将具体介绍ELF格式的目标文件。