引导加载程序背后的理论

发布于 2024-09-30 11:07:41 字数 1539 浏览 2 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

好倦 2024-10-07 11:07:41

https://pdos.csail.mit.edu/6.828/ 2014/xv6/book-rev8.pdf

在附录 B 中,第一段给出了简短的概述:

当 x86 PC 启动时,它开始执行一个称为 BIOS 的程序,该程序存储在主板上的非易失性存储器中。 BIOS 的工作是准备硬件,然后将控制权转移给操作系统。具体来说,它将控制权转移到从引导扇区(引导盘的第一个 512 字节扇区)加载的代码。引导扇区包含引导加载程序:将内核加载到内存中的指令。 BIOS 在内存地址 0x7c00 处加载引导扇区,然后跳转(设置处理器的 %ip)到该地址。当引导加载程序开始执行时,处理器正在模拟 Intel 8088,加载程序的工作是将处理器置于更现代的操作模式,将 xv6 内核从磁盘加载到内存中,然后将控制权转移到内核。 xv6 引导加载程序包含两个源文件,一个以 16 位和 32 位 x86 程序集 (bootasm.S;(8900)) 的组合编写,另一个以在 C 中(bootmain.c;(9000))。

https://pdos.csail.mit.edu/6.828/2014/xv6/book-rev8.pdf

On Appendix B, it gives a short overview in the first paragraph:

When an x86 PC boots, it starts executing a program called the BIOS, which is stored in non-volatile memory on the motherboard. The BIOS’s job is to prepare the hardware and then transfer control to the operating system. Specifically, it transfers control to code loaded from the boot sector, the first 512-byte sector of the boot disk.The boot sector contains the boot loader: instructions that load the kernel int o memory. The BIOS loads the boot sector at memory address 0x7c00 and then jumps (sets the processor's %ip) to that address. When the boot loader begins executing, the processor is simulating an Intel 8088, and the loader's job is to put the processor in a more modern operating mode, to load the xv6 kernel from disk into memory, and then to transfer control to the kernel. The xv6 boot loader comprises two source files, one written in a combination of 16-bit and 32-bit x86 assembly (bootasm.S;(8900)) and one written in C (bootmain.c;(9000)).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文