关于 Linux 内核源码里的 bootsect.S 等三个汇编程序
分析 Linux 内核源代码的书中说到,对于 IBM PC 体系结构,由 ROM BIOS 把引导分区的第一扇区读入内存,然后跳至 0x7c0 执行。第一扇区的内容就是 bootsect.S 程序,它被用来读入 setup.S 和 Linux 内核。紧接其后的四个扇区是 setup.S 。setup.S 用来进行实模式下的初始化,为进入保护模式做好准备。
由此看来,这三个汇编程序应该是独立于内核之外的。但是编译内核之后好像并没有涉及到任和与这三个汇编程序有关的操作,也没有发现这三个编译程序的踪影。bootsect.S 和 setup.S 是怎么被放入引导分区的前五个扇区的呢?配置 GRUB 或 LILO 也未涉及到这三个汇编程序(书中也提到,LILO 完成任务之后,也跳转到 setup.S 程序进行实模式下的初始化工作)。在实际的 LINUX 操作系统中发现和书中描述的有很大的不同,这是为什么?谢谢。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
恳请对 Linux 内核有研究的大侠不啬赐教。谢谢啦。
这个问题涉及到磁盘数据结构的内容,翻本书看看。
严格说来已经不是linux的关系了,我认为。
晕ing
我还是不知道该怎么做。分析 Linux 源代码的书里有一章节专门用来描述 Linux 的文件系统,但是好像对此没有多少帮助。
能具体一些吗?我只想知道这三个汇编程到底何去何从。书上描述的和所接触的 Linux 系统有些不一样,这让我郁闷得不行。谢谢啦。
不知道哦,只是我觉得已经超出了linux的范畴了,属于磁盘数据结构的问题。我也一直想找本着方面的书研究,就是为了弄明白你说的问题,可惜一直没找到。
看看其他人怎么说。
see arch/i386/Makefile
俺也在研究这个问题,请高手指点一个
这些应该是在安装linux过程中做的,对分区进行格式化,并写入代码
tools/build.c
这要涉及到硬盘的结构、分区的理论,同时还跟PC系列的系统设计有关系。跟操作系统以及文件系统是没有直接的关系的。