rust-osdev 笔记

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);
发布日期:
分类:技术

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据