bootloader部分
由于涉及到启动,引导部分,所以需要从模拟器启动,比如qemu启动:
qemu-system-x86_64 -hda boot-bios-basic_example.img
bootloader的例子中配置workspace,然后配置runner中的包为workspace的包名,通过编译workspace项目 来简化编译,启动盘生成,模拟器运行。
bootloader的create_disk_images和启动qemu-system-x86_64都需要使用root
cargo kbuild #构建内核 cargo kimage #生成启动盘 cargo krun #运行qemu并且设置磁盘为生成的启动盘
#![no_std]
代码中使用no_std指示不包含标准库函数,但这样编译的时候就确实了panic函数。于是需要手动写个panic函数
#![no_main]
表示代码中没有main函数,可以适用entry_point宏将指定的函数作为入口函数,如:
entry_point!(kernel_main);