FreeBSD 4.0 Kernel Hacking Guide--kern/init_main.c

王朝system·作者佚名  2006-11-23
宽屏版  字体: |||超大  

kern/init_main.c

mi_startup(), 171行. 由 locore 呼叫, locore 为 kernel binary 最先被执行

的程式区段. locore 对机器环境进行初始, 准备一个让 kernel 可以

顺利执行的环境, 例如准备一个可以让 gcc compile 的式码执行的

环境. 在 locore 的最後会呼叫, mi_startup(). mi_startup() 利

用 linker 会主动将同一 section 的资料组合成连续区块的特性, 收

集所有 sub-system 的 initial function. 这部分功能由 macro

SYSINIT(), sys/kernel.h, 225行, 达成. mi_startup 依据收集到

的资料, 依其顺序执行各 sub-system 的 initial function. 各个

sub-system 的执行顺序定义在 sysinit_sub_id, sys/kernel.h, 107行,

mi_startup 从小到大依序执行. 同一 sub-system 若有多个 initial

function, 则由 sysinit_elem_order, sys/kernel.h, 163行, 定

义之次序执行.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有