我如何 运行 来自 .iso 中同一文件的 .bin 文件

How can I run a .bin file from the same file inside .iso

语言不好提前致歉,我主要用的是Google翻译器。 我决定做一些像我的 OS 那样的事情(自然地,它只是“Hello World”)。我有一个包含以下代码并位于 .iso 文件中的引导加载程序文件:

org 7C00h
cli
hang:
jmp hang
times 510-($-$$) db 0
db 0x55
db 0xAA

如何确保在执行引导加载程序后,我将运行另一个.bin文件,例如kernel.bin? 而且,我可以编写 C 代码,将其编译为 .bin 文件并以某种方式 运行 它在我的“OS”中吗?

软盘 映像开始对于初学者来说要简单得多。

暂时不要考虑文件系统或尝试从文件系统加载,只需创建一个写入软盘映像的二进制 blob。

使用引导加载程序创建二进制 blob,然后附加内核本身。然后引导加载程序可以只将软盘的剩余扇区读入内存,然后绝对跳转到内核映像。

内核映像本身是一个二进制blob,其第一个位置是汇编指令建立堆栈等,然后调用内核main函数。


虽然创建自己的引导块和内核加载程序是一个很好的练习,但我的建议是仅将其用作垫脚石和学习练习。

一旦你完成它并且它有效,那么我的建议是你使用现有的工作引导加载程序,例如 GRUB.

使用例如GRUB 你可以专注于内核方面。