Rust no_std Kernel
Project for the "Systems & low-level programming - Rust no_std" course (M1 SI, supervised
by Mr. Maxime Bourry), built with a project partner. A small operating system written in Rust
no_std (no dependency on the standard library), compiled for the
x86_64-unknown-none target, bootable and run under QEMU via the
bootimage tool. The goal: understand what actually happens between powering on a
machine and running a shell, with no host OS safety net.
Context
Two versions were built by iterating on the same base: kernel_fat32_v_ameliore
(2711 lines of Rust) followed by a more advanced bonus version, Kernel_FAT32_bonus
(6106 lines), which adds integration tests and an automatically validated scheduler/timer.
Each partner produced their own implementation of the same spec, which made it possible to
compare two architectural approaches under the same low-level constraints.
Features implemented
- A complete FAT32 filesystem driver: boot sector parsing, cluster chain traversal, directory navigation.
- A custom SLAB memory allocator,
no_std-compatible (no systemmallocavailable at this level). - Interrupt handling and memory paging (x86-64 page tables).
- Multi-core support: APIC configuration, synchronization primitives, thread scheduler.
- Minimal syscalls, a keyboard driver, and an interactive shell to drive everything at boot.
Tech stack
Status
Project completed and submitted. Both versions (standard and bonus) compile, boot under QEMU, and run the interactive shell with access to the FAT32 filesystem.