My Oranda Project
MnemOS x86_64
This directory contains the MnemOS platform implementation for x86_64/amd64 CPUs.
Folder Layout
bootloader/- Target for building a bootable image usingrust-osdev/bootloaderas the bootloadercore/- MnemOS core kernel for x86_64
Supported Bootloaders
Currently, rust-osdev/bootloader is the only supported bootloader. A MnemOS
image using this bootloader is built by the bootloader/ crate in this
directory.rust-osdev/bootloader can be used to build both BIOS and UEFI
images.
Getting started with MnemOS on the ESP32-C3
Building
To build x86_64 boot images, either run
cargo build -p mnemos-x86_64-bootloader, or use the just build-x86
just recipe.
After running this command, BIOS and UEFI boot image files (named
mnemos-x86_64-bios.img and mnemos-x86_64-uefi.img, respectively) will be
output to the build script's Cargo $OUT_DIR. By default, the
$OUT_DIR is target/{debug, release}/build/mnemos-x86_64-bootloader-{hash}/out.
Running in QEMU
To run MnemOS in QEMU, either run cargo run -p mnemos-x86_64-bootloader or
use the just run-x86 just recipe.
[!IMPORTANT]
In order to run either of these commands, a
qemu-system-x86_64binary must beinstalled.
MnemOS can boot using either legacy BIOS or UEFI (using ovmf-prebuilt).
The --boot argument can be passed to just run-x86 to determine which boot
method is used:
$ just run-x86 --boot uefi # boots using UEFI $ just run-x86 --boot bios # boots using legacy BIOS
UEFI-based boot is the default if no argument is passed.
Additional command-line arguments can be passed to configure the behavior of the
bootimage builder. Run just run-x86 --help to list them.
License
MIT + Apache 2.0.