As part of that I also decided to replace the current Just-based build system with a [cargo xtask] project.
The xtask currently supports three operations:
build Builds the kernel using cargo. It also checks if the needed target is installed using rustup
run Builds and runs the kernel in QEMU.
This works by packaging up the kernel binary as well as the bootloader files into a FAT image and booting it with OVMF.
iso Builds and packages a 'hybrid' iso that can be burned on a disk or formatted on a drive.
Only the Limine bootloader currently supports this, since the Rust Bootloder cannot boot from a CD
license Applies missing license headers to all .rs files in the needed folders.
The primary and secondary stack sizes where moved into the interface crate, since they should be the same between each bootloader and are technically part of the contract between the kernel and bootloader.
The CriticalSection has been removed from the common crate and replaced by the interrupt library which is now re-exported by the common crate.
Adds support for a new bootloader, the Rust Bootloader from the rust-osdev project.
As part of that I also decided to replace the current
Just
-based build system with a [cargo xtask
] project. Thextask
currently supports three operations:build
Builds the kernel usingcargo
. It also checks if the needed target is installed usingrustup
run
Builds and runs the kernel in QEMU.iso
Builds and packages a 'hybrid' iso that can be burned on a disk or formatted on a drive.license
Applies missing license headers to all .rs files in the needed folders.The primary and secondary stack sizes where moved into the
interface
crate, since they should be the same between each bootloader and are technically part of the contract between the kernel and bootloader.The
CriticalSection
has been removed from thecommon
crate and replaced by theinterrupt
library which is now re-exported by thecommon
crate.