赞助连接

赞助连接

阅 读 文 章

[转贴]FreeBSD核心入门 作者:(日)大木敦雄 译:Liangvy

[来源:网上转载 (http://www.chinaunix.net) | 作者:网友(leolee761128) | 时间:2007-05-27 | 浏览:人次 ]


                 。main() 
                 逐步调用构成kernel模块的的初始化部分。


FreeBSD核心探讨(翻译)3

(续上,liangvy.icewolf.leon翻译) 

 但是,kernel构成的各个模块的初始化子程序一个个的列举出来运行很显然是 
 不行的。通常是利用时间连表的技能来运行它(ld command)。也就是,程序 
 是以很多个source分开编译和联结。相同的模块名字就对应于相同的地址来进 
 行调用。它在时间链表里面自动调节执行。 
 初始化时候,main()函数要call的模块利用在sys/kernel.h里面定义的宏 
 SYSINIT()和SYSINIT_KT()进行登记。这样,kernel在link的时候,ld命令就 
 能够得到那些信息和进行配置列表。这个列表就是kernel的组成模块的初始化 
 routine的登记。检查source, 
 就可以找到初始化routine的部分。 
         如表: 
         print_caddr_t(copyright)                kern/init_main.c 
         vm_men_init(NULL)                       vm/vm_init.c 
         syctl_order(&sysctl_)                   kern/kern_sysctl.c 
         kmemnit(NULL)                           kern/kern_malloc.c 
         fpu_init(NULL)                          i386/i386/math_emulate.c 
         cpu_startup(NULL)                       i386/i386/machdep.c 
         gnufpu_init(NULL)                       miscfs/devfs/devfs_tree.c 
         ... 
         各个device的major号与处理routine的登记  (major循序号) 
         ... 
         configure(NULL)                         i386/i386/autoconf.c 
论坛热门帖子: [lch203] 写得蛮好的linux学习笔记(10-21)
[黑马制造] 学习java的30个目标(10-19)
[笑傲股林] 做测试半年了,有点迷茫,应该再学些什么提高自己的测试水平和测试能力呢?(10-19)
[udp8589] 大家用google的来吱一声? 用百度的~~也来报道下?(10-18)
[沂偌掳兆] 本人总结的一些认为C++比较经典的书籍,希望对大家有用(10-18)
TAG标签: 作者 入门 核心 文件 进行 设备 系统 调用 操作 v-node

最新评论 共有0位网友发表了评论

发表评论

评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名:(注册)
密码:
验证码:
匿名发表

网站地图友情连接交流论坛网站投稿广告服务联系我们留言本站长统计
Some rights reserved: www.chmhome.com, 鄂ICP备07010232号 E-mail:chinakafei@live.com,QQ:552766
中国咖啡技术网(Chmhome):国外编程技术书籍,中文编程手册,经典编程文章,交流技术,技术软件下载,计算机论文,毕业论文.