01 Abstract

Posted: 2025 Mar 17

Outline

I am going to develop a 64-bit kernel, which will abide by the following rules:

  1. be written completely in the Rust programming language
  2. support at least the x86_64 architecture
  3. support the multiboot2 standard (GRUB)
  4. work on BIOS (and UEFI)
  5. have a functional
    1. exception/interrupt handling system
    2. memory management system
    3. task management system
  6. 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).

Previous Post
00 Intro
Osdev