启动代码
顾名思义,启动代码就是使进程启动的代码。它包含了进程运行的第一条指令。
每个程序都有一段启动代码。启动代码初始化进程环境,调用main函数,使程序正式开始运行。
glibc为我们提供了进程的启动代码,本文将详细讲解glibc提供的启动代码。(基于glibc2.7)
启动代码的实现
接下来,我们将详细讲解启动代码的实现。
让我们来看一下glibc源代码中启动代码的实现。
glibc的启动代码包含在一个汇编文件和几个c语言文件中。这些文件将在本文中详细讲解。
start.S
首先是汇编文件start.S文件。该文件位于sysdeps/i386/elf/start.S。
.text
.globl _start
.type _start,@function
_start:
xorl %ebp, %ebp
popl %esi
movl %esp, %ecx
andl $0xfffffff0, %esp
pushl