mirror of
https://github.com/rcore-os/rCore.git
synced 2024-11-22 16:16:16 +04:00
41 lines
1.2 KiB
Markdown
41 lines
1.2 KiB
Markdown
|
# x86_64
|
|||
|
|
|||
|
## 运行
|
|||
|
|
|||
|
### QEMU
|
|||
|
|
|||
|
```
|
|||
|
make run arch=x86_64 LOG=info
|
|||
|
```
|
|||
|
|
|||
|
使用开源 UEFI 固件实现 [OVMF](https://github.com/tianocore/tianocore.github.io/wiki/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](https://github.com/rcore-os/rboot) 是一个标准的 UEFI OS Loader 程序。它完成以下主要工作:
|
|||
|
|
|||
|
* 加载 kernel ELF 文件到内存,建立虚拟内存映射。
|
|||
|
* 设置图形显示模式
|
|||
|
* 启动多核处理器
|
|||
|
* 跳转到 ELF 入口点,并传递 BootInfo 信息
|
|||
|
|
|||
|
更多参考:[uefi-rs 文档](https://github.com/rust-osdev/uefi-rs/blob/master/BUILDING.md)
|