| FreeBSD4.0KernelHackingGuide--kern/init_m | | 发布日期:2005-3-28 浏览:302次 | | 关键字: | kern/init_main.c
mi_startup(),171行.由locore呼叫,locore为kernelbinary最先被执行 的程式区段.locore对机器环境进行初始,准备一个让kernel可以 顺利执行的环境,例如准备一个可以让gcccompile的式码执行的 环境.在locore的最後会呼叫,mi_startup().mi_startup()利 用linker会主动将同一section的资料组合成连续区块的特性,收 集所有sub-system的initialfunction.这部分功能由macro SYSINIT(),sys/kernel.h,225行,达成.mi_startup依据收集到 的资料,依其顺序执行各sub-system的initialfunction.各个 sub-system的执行顺序定义在sysinit_sub_id,sys/kernel.h,107行, mi_startup从小到大依序执行.同一sub-system若有多个initial function,则由sysinit_elem_order,sys/kernel.h,163行,定 义之次序执行.
| | 关键字: |
|