由于在下水平相当有限,不当之处,还望大家批评指正^_^
基于Linux 2.6.32
include\asm-generic\Vmlinux.lds.h中有如下定义:
这等于是安排了名称如.initcall<level>[s].init的一系列section的顺序,level越小,越靠前。
符号__initcall_start记录了这片区域的开始,__initcall_end符号记录了这片区域的结束。
__early_initcall_end则将这片区域更进一步分成了两段。
#define INITCALLS \
*(.initcallearly.init) \
VMLINUX_SYMBOL(__early_initcall_end) = .; \
*(.initcall0.init) \
*(.initcall0s.init) \
*(