Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kernel 从引导加载程序加载内核_Kernel_Bootloader - Fatal编程技术网

Kernel 从引导加载程序加载内核

Kernel 从引导加载程序加载内核,kernel,bootloader,Kernel,Bootloader,因此,我有一个用gcc编译的内核&用ld链接到一个bin。我还有一个用NASM编译的引导加载程序。我想从bootloader.bin加载kernel.bin(在我的ISO上),并跳转到加载的代码 (我不想使用grub/任何其他对我的精神健康有益的已经制作好的引导加载程序)。如果你将ELF链接到二进制文件,你就会忽略ELF文件的意义。我建议使用GCC编译一个elf,并从汇编解析elf文件,然后跳到入口点。这非常简单,因为您只需要解析程序头和主头中的入口点。ELF文件用于虚拟地址处理。根据你想走多远

因此,我有一个用gcc编译的内核&用ld链接到一个bin。我还有一个用NASM编译的引导加载程序。我想从bootloader.bin加载kernel.bin(在我的ISO上),并跳转到加载的代码


(我不想使用grub/任何其他对我的精神健康有益的已经制作好的引导加载程序)。

如果你将ELF链接到二进制文件,你就会忽略ELF文件的意义。我建议使用GCC编译一个elf,并从汇编解析elf文件,然后跳到入口点。这非常简单,因为您只需要解析程序头和主头中的入口点。ELF文件用于虚拟地址处理。根据你想走多远,最好在跳转到elf文件之前设置分页