A no_std operating system kernel written from scratch in Rust.
- Learn OS design and implementation fundamentals.
- Explore Rust for safe, efficient systems-level code.
- Understand hardware interaction, memory management, and process scheduling from the ground up.
-
QEMU:
sudo apt-get update && sudo apt-get install -y qemu-system-x86 -
Rust nightly toolchain:
rustup toolchain install nightly rustup override set nightly -
rust-src component:
rustup component add rust-src
-
llvm-tools-preview component:
rustup component add llvm-tools-preview
-
bootimage:
cargo install bootimage
-
Clone the repository:
git clone https://github.com/sammme/samux.git cd samux -
Run the OS:
cargo run -- uefi
- Project setup (
no_stdRust binary) - Bootloader integration (
bootimagecrate) - Framebuffer-based text output
- Panic handler
- GDT (Global Descriptor Table)
- IDT (Interrupt Descriptor Table)
- Paging (4-level page tables)
- Heap allocator (
linked_list_allocator) - Physical frame allocator
- PIC/APIC interrupt handling
- PIT (Programmable Interval Timer)
- PS/2 keyboard driver
- Preemptive multitasking
- Syscall interface
- Userspace program execution
- FAT32 filesystem
- Basic shell
Contributions are welcome. Please follow these guidelines:
- Fork the repository.
- Create a new branch:
git checkout -b feature/your-new-feature - Make your changes.
- Format your code:
cargo fmt - Lint your code:
cargo clippy - Ensure the project builds:
cargo build - Open a Pull Request with a clear description of your changes.
This project is licensed under the MIT License. See the LICENSE file for details.