My Oranda Project

MnemOS x86_64

This directory contains the MnemOS platform implementation for x86_64/amd64 CPUs.

Folder Layout

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_64 binary 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.