0172-执行内核文件

环境

  • Time 2022-11-11
  • WSL-Ubuntu 22.04
  • QEMU 6.2.0
  • NASM 2.15.05

前言

说明

参考:https://os.phil-opp.com/multiboot-kernel/

目标

将编写好的内核可执行文件,制作成 ISO 镜像,然后从 QEMU 启动。

建立文件目录

isofiles
└── boot
    ├── grub
    │   └── grub.cfg
    └── kernel.bin

grub.cfg

set timeout=0
set default=0

menuentry "my os" {
    multiboot2 /boot/kernel.bin
    boot
}

制作 ISO

安装依赖:apt-get install grub-pc-bin grub-common xorriso

制作镜像

root@jiangbo12490:~/git/game# grub-mkrescue -o os.iso isofiles
xorriso 1.5.4 : RockRidge filesystem manipulator, libburnia project.

Drive current: -outdev 'stdio:os.iso'
Media current: stdio file, overwriteable
Media status : is blank
Media summary: 0 sessions, 0 data blocks, 0 data,  233g free
Added to ISO image: directory '/'='/tmp/grub.or37ho'
xorriso : UPDATE :     294 files added in 1 seconds
Added to ISO image: directory '/'='/root/git/game/isofiles'
xorriso : UPDATE :     298 files added in 1 seconds
xorriso : NOTE : Copying to System Area: 512 bytes from file '/usr/lib/grub/i386-pc/boot_hybrid.img'
ISO image produced: 2475 sectors
Written to medium : 2475 sectors at LBA 0
Writing to 'stdio:os.iso' completed successfully.

启动命令

qemu-system-x86_64 -cdrom os.iso -curses

打印OK

总结

创建了一个内核可执行程序 kernel.bin,并且制作成 ISO 镜像,在 QEMU 中运行。

附录

posted @ 2024-07-13 08:44  jiangbo4444  阅读(49)  评论(0)    收藏  举报