如何制作"Hello world"内核



我关注了这篇文章,介绍如何制作一个非常简单的内核来打印"Hello, World"。我的项目的文件可以在Github上找到。

我从这个项目构建了我的交叉编译器。我使用这些命令交叉编译、组装和构建我的 ISO(CD-ROM 映像(:

i686-elf-as boot.s -o boot.o
i686-elf-gcc -c kernel.c -o kernel.o -std=gnu99 -ffreestanding -O2 -Wall -Wextra
i686-elf-gcc -T linker.ld -o myos.bin -ffreestanding -O2 -nostdlib boot.o kernel.o -lgcc
mkdir -p isodir/boot/grub
cp myos.bin isodir/boot/myos.bin
cp grub.cfg isodir/boot/grub/grub.cfg
grub-mkrescue -o myos.iso isodir

当我尝试在VirtualBox上执行它时,它给出了以下消息:

致命:未找到可启动介质!系统已停止。

为什么我会收到此错误,如何解决它?

附言我使用 Windows 10 的 Ubuntu 子系统

可能缺少 GRUB 组件或 Xorriso 版本不正确。在你链接到的裸骨文章中,它是这样说的:

您可以使用程序 grub-mkrescue轻松创建包含 GRUB 引导加载程序和内核的可引导 CD-ROM 映像。您可能需要安装 GRUB 实用程序和程序 xorriso(版本 0.5.6 或更高版本(。

使用grub-mkrescue制作 ISO 映像时,通常无法启动的 ISO 是由于缺少 Xorisso 安装造成的。如果grub-mkrescue运行但根本不生成 ISO,则可能缺少 GRUB 组件。要确保您安装了所有 GRUB 和 Xorriso 组件,请在现代 Ubuntu 发行版上安装这些组件:

sudo apt-get install grub2-common grub-pc xorriso 

然后尝试在VirtualBox中重建并重新运行ISO映像。

相关内容

  • 没有找到相关文章