新客网WWW.XKER.COM:致力做中国最专业的网络学院!
学院: 操作系统 - 网络应用 - 服务器 - 网络安全 - 工具软件 - 办公软件 - Web开发 - 数据库 - 网页设计 - 图形图像 - 媒体动画 - 硬件学堂 - 存储频道 - QQ专区
您的位置:首页 > 网络学院 > 操作系统 > Unix系统 > FreeBSD教程 > 正文:FreeBSD 4.0 Kernel Hacking Guide 6

FreeBSD 4.0 Kernel Hacking Guide 6

新客网 XKER.COM 2008-01-19 来源:新客网编辑整理 佚名 收藏本文

【新客网FreeBSD教程】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 SYSIN99v(), 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行, 定义之次序执行.

收藏】 【评论】 【推荐】 【投稿】 【打印】 【关闭
发表评论
要记得去论坛讨论,点击注册新会员匿名评论
评论内容:不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
阅读排行
随机推荐
实用信息推荐