Outline
I am going to develop a 64-bit kernel, which will abide by the following rules:
- be written completely in the
Rust
programming language - support at least the
x86_64
architecture - support the
multiboot2
standard (GRUB
) - work on
BIOS
(andUEFI
) - have a functional
- exception/interrupt handling system
- memory management system
- task management system
- abide by the
microkernel
architecture
Actions to take
My first course of action is to set up a development environment. I will use my nix-shell
setup to manage my environment (read more) with one difference: I am going to use rustup
to be able to manage my toolchains in a rust-toolchain.toml
file.
Second course of action is to set up a build script (will try build.rs
or rust-osdev/bootimage
) to create a GRUB
image with grub-mkimage
, add the kernel binaries and boot the OS in qemu
.
Third course of action is to make the kernel binaries bootable with the multiboot2
standard. I will use the rust-osdev/multiboot2
crate.
And then we roll (translation: I have no idea what exactly we do next).