零零社区|百姓的网上家园-互动交流平台!(0.0)=^_^=(00社区)

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz

FreeBSD 4.0 Kernel Hacking Guide--kern/init_m

2013-4-8 13:44| 发布者: 123456000000| 查看: 17| 评论: 0

摘要: kern/init_main.c mi_startup(),171行.由locore呼叫,locore为kernelbinary最先被执行 的程式区段.locore对机器环境进行初始,准备一个让kernel可以 顺利执行的环境,例如准备一个可以让gcccompile的式码执行的 环境.在 ...
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行, 定
义之次序执行.

路过

雷人

握手

鲜花

鸡蛋

相关阅读

发表评论

最新评论

相关分类


Archiver|手机版|小黑屋|00社区

GMT+8, 2023-1-31 10:49 , Processed in 0.041829 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部