1
0
mirror of https://github.com/rcore-os/rCore.git synced 2024-11-25 09:26:17 +04:00
rCore/docs/x86_64.md
Runji Wang c2a80c54f9 x86_64: switch from legacy BIOS to UEFI. use rboot as new bootloader
- remove dependencies: rust-osdev/{bootloader, bootimage}
- remove kernel stack segment
- find a bug: IDT should be initialized after GDT
2019-09-04 10:37:31 +08:00

1.2 KiB
Raw Blame History

x86_64

运行

QEMU

make run arch=x86_64 LOG=info

使用开源 UEFI 固件实现 OVMF,预编译镜像已包含在 rboot 项目中。

真机

make build arch=x86_64 LOG=error board=pc graphic=console

需要一个支持 UEFI 的启动 U 盘,可使用“老毛桃”“大白菜”等工具制作。

完成后将 target/release/esp/EFI 文件夹复制到启动 U盘 的 EFI 系统分区ESP中。注意备份

将 U 盘插入电脑,进入 BIOS 设置,关闭安全启动,从 U 盘启动即可。

注:目前真机模式与 QEMU 的区别:

  • 文本输出到图形显示,而不是串口
  • 用户程序镜像直接链接在内核中,而不是从 AHCI 磁盘读取

Boot

rCore x86_64 基于 UEFI 标准,使用自己编写的 rBoot 作为 Bootloader。

rBoot 是一个标准的 UEFI OS Loader 程序。它完成以下主要工作:

  • 加载 kernel ELF 文件到内存,建立虚拟内存映射。
  • 设置图形显示模式
  • 启动多核处理器
  • 跳转到 ELF 入口点,并传递 BootInfo 信息

更多参考:uefi-rs 文档