免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1405 | 回复: 2
打印 上一主题 下一主题

[内核入门] 内核初始化问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-10-30 11:09 |只看该作者 |倒序浏览
本帖最后由 baron_zz 于 2014-10-30 11:10 编辑

1.系统的引导和初始化
    Linux 系统的引导有好几种方式:常见的有 Lilo, Loadin引导和Linux的自举引导(bootsect-loader),而后者所对应源程序为arch/i386/boot/bootsect.S, 它为实模式的汇编程序, 限于篇幅在此不做分析; 无论是哪种引导方式, 最后都要跳转到 arch/i386/Kernel/setup.S, setup.S主要是进行时模式下的初始化, 为系统进入保护模式做准备; 此后, 系统执行 arch/i386/kernel/head.S (对经压缩后存放的内核要先执行 arch/i386/boot/compressed/head.S); head.S 中定义的一段汇编程序setup_idt, 它负责建立一张256项的 idt 表(Interrupt Descriptor Table),此表保存着所有自陷和中断的入口地址; 其中包括系统调用总控程序 system_call 的入口地址; 当然, 除此之外,head.S还要做一些其他的初始化工作;

2.系统初始化后运行的第一个内核程序asmlinkage void __init start_kernel(void) 定义在/usr/src/linux/init/main.c中



以上是抄自网上的

意思就是:bootsect.S---》setup.S---》head.S---》init/main.c中start_kernel()
但是,我在我的内核中,找不到bootsect.S、setup.S、head.S这些文件(我看的arch/X86/目录),我是2.6.32.2版本内核请问这是啥原因?????

论坛徽章:
0
2 [报告]
发表于 2014-10-30 13:11 |只看该作者
boot/compressed

论坛徽章:
16
天秤座
日期:2014-08-17 11:27:4215-16赛季CBA联赛之青岛
日期:2017-02-27 17:06:3015-16赛季CBA联赛之广夏
日期:2017-02-08 13:34:58白银圣斗士
日期:2015-11-30 20:57:05冥斗士
日期:2015-12-01 09:49:10嗜杀者
日期:2015-12-01 09:49:10白银圣斗士
日期:2015-11-27 23:56:51神斗士
日期:2015-12-01 09:49:10嗜杀者
日期:2015-12-01 09:49:10青铜圣斗士
日期:2015-12-01 09:49:10白银圣斗士
日期:2015-11-25 14:19:53黄金圣斗士
日期:2015-11-24 10:43:13
3 [报告]
发表于 2014-11-02 00:21 |只看该作者
linux内核2.6.34.1的初始化地图,根据网上牛人的博客整理出来的一个总结,你可以参考一下。

Linux内核初始化地图.pdf

196.75 KB, 下载次数: 87

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP