Lab1:练习4——如何分析bootloader加载ELF格式操作系统的过程?

2026-05-06 04:330阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计2835个文字,预计阅读时间需要12分钟。

Lab1:练习4——如何分析bootloader加载ELF格式操作系统的过程?

练习四:分析bootloader加载ELF格式的OS的过程

1. 项目要求: 通过阅读bootmain.c,了解bootloader如何加载ELF格式的OS。 分析源代码,并通过qemu运行和调试bootloader及OS,观察bootloader如何读取硬盘扇区。

练习四:分析bootloader加载ELF格式的OS的过程。 1.题目要求

通过阅读bootmain.c,了解bootloader如何加载ELF文件。通过分析源代码和通过qemu来运行并调试bootloader&OS,

  • bootloader如何读取硬盘扇区的?
  • bootloader是如何加载ELF格式的OS?

提示:可阅读“硬盘访问概述”,“ELF执行文件格式概述”这两小节。

2.整个流程

假定进入了保护模式之后,bootloader需要能够加载ELF文件。因为kenerl(就是ucore os)是以ELF的形式存在硬盘上的。

bootloader如何读取硬盘扇区的?就是说boot loader能够访问硬盘,bootloader把硬盘数据读取出来之后,要把其中ELF格式文件给分析出来。从而知道ucore它的代码段应该放在什么地方,应该有多大一块空间放这个代码段数据。哪一段空间是放数据段的数据,然后把它加载到内存中去,同时还知道跳转到ucore哪个位置去执行。

读取扇区是readsect函数,用到了in b,out b这种机器指令。in b,out b的实现都是内联汇编来实现的,它采取了一种IO空间的地址寻址方式,能够把外设的数据给读到内存中来,这也是x86里面的寻址方式。除了正常的memory方式之外,还有IO这一种寻址方式。

阅读全文

本文共计2835个文字,预计阅读时间需要12分钟。

Lab1:练习4——如何分析bootloader加载ELF格式操作系统的过程?

练习四:分析bootloader加载ELF格式的OS的过程

1. 项目要求: 通过阅读bootmain.c,了解bootloader如何加载ELF格式的OS。 分析源代码,并通过qemu运行和调试bootloader及OS,观察bootloader如何读取硬盘扇区。

练习四:分析bootloader加载ELF格式的OS的过程。 1.题目要求

通过阅读bootmain.c,了解bootloader如何加载ELF文件。通过分析源代码和通过qemu来运行并调试bootloader&OS,

  • bootloader如何读取硬盘扇区的?
  • bootloader是如何加载ELF格式的OS?

提示:可阅读“硬盘访问概述”,“ELF执行文件格式概述”这两小节。

2.整个流程

假定进入了保护模式之后,bootloader需要能够加载ELF文件。因为kenerl(就是ucore os)是以ELF的形式存在硬盘上的。

bootloader如何读取硬盘扇区的?就是说boot loader能够访问硬盘,bootloader把硬盘数据读取出来之后,要把其中ELF格式文件给分析出来。从而知道ucore它的代码段应该放在什么地方,应该有多大一块空间放这个代码段数据。哪一段空间是放数据段的数据,然后把它加载到内存中去,同时还知道跳转到ucore哪个位置去执行。

读取扇区是readsect函数,用到了in b,out b这种机器指令。in b,out b的实现都是内联汇编来实现的,它采取了一种IO空间的地址寻址方式,能够把外设的数据给读到内存中来,这也是x86里面的寻址方式。除了正常的memory方式之外,还有IO这一种寻址方式。

阅读全文