如何制作 "Hello world" 内核
How to make a "Hello world" kernel
我关注了this article on how to make a very simple kernel which prints "Hello, World". The files to my project are available on Github。
我用这个 project 构建了我的交叉编译器。我使用这些命令交叉编译,assemble,并构建我的 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 上执行它时,它给出了以下消息:
FATAL: No bootable medium found! System halted.
为什么会出现此错误,我该如何解决?
P.S。我将 Ubuntu 子系统用于 Windows 10
可能缺少 GRUB 组件或 Xorriso 版本不正确。在你链接到它的 Bare Bones 文章中说:
You can easily create a bootable CD-ROM image containing the GRUB bootloader and your kernel using the program grub-mkrescue. You may need to install the GRUB utility programs and the program xorriso (version 0.5.6 or higher).
当使用 grub-mkrescue
制作 ISO 映像时,无法启动的 ISO 通常是 Xorisso 安装丢失的结果。如果 grub-mkrescue
运行但根本不生成 ISO,则可能缺少 GRUB 组件。为确保您安装了所有 GRUB 和 Xorriso 组件,请在现代 Ubuntu 版本上安装组件:
sudo apt-get install grub2-common grub-pc xorriso
然后尝试在 VirtualBox 中重建并重新运行您的 ISO 映像。
我关注了this article on how to make a very simple kernel which prints "Hello, World". The files to my project are available on Github。
我用这个 project 构建了我的交叉编译器。我使用这些命令交叉编译,assemble,并构建我的 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 上执行它时,它给出了以下消息:
FATAL: No bootable medium found! System halted.
为什么会出现此错误,我该如何解决?
P.S。我将 Ubuntu 子系统用于 Windows 10
可能缺少 GRUB 组件或 Xorriso 版本不正确。在你链接到它的 Bare Bones 文章中说:
You can easily create a bootable CD-ROM image containing the GRUB bootloader and your kernel using the program grub-mkrescue. You may need to install the GRUB utility programs and the program xorriso (version 0.5.6 or higher).
当使用 grub-mkrescue
制作 ISO 映像时,无法启动的 ISO 通常是 Xorisso 安装丢失的结果。如果 grub-mkrescue
运行但根本不生成 ISO,则可能缺少 GRUB 组件。为确保您安装了所有 GRUB 和 Xorriso 组件,请在现代 Ubuntu 版本上安装组件:
sudo apt-get install grub2-common grub-pc xorriso
然后尝试在 VirtualBox 中重建并重新运行您的 ISO 映像。