Skip to content

SammmE/samux

Repository files navigation

Samux

Language Status License GitHub Actions Workflow Status

A no_std operating system kernel written from scratch in Rust.


Goals

  • 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.

Building and Running

Prerequisites

  1. QEMU:

    sudo apt-get update && sudo apt-get install -y qemu-system-x86
  2. Rust nightly toolchain:

    rustup toolchain install nightly
    rustup override set nightly
  3. rust-src component:

    rustup component add rust-src
  4. llvm-tools-preview component:

    rustup component add llvm-tools-preview
  5. bootimage:

    cargo install bootimage

Running

  1. Clone the repository:

    git clone https://github.com/sammme/samux.git
    cd samux
  2. Run the OS:

    cargo run -- uefi

Roadmap

Phase 1: Core Kernel and Bootstrapping

  • Project setup (no_std Rust binary)
  • Bootloader integration (bootimage crate)
  • Framebuffer-based text output
  • Panic handler

Phase 2: Interrupts and Memory Management

  • GDT (Global Descriptor Table)
  • IDT (Interrupt Descriptor Table)
  • Paging (4-level page tables)
  • Heap allocator (linked_list_allocator)
  • Physical frame allocator

Phase 3: Hardware and Concurrency

  • PIC/APIC interrupt handling
  • PIT (Programmable Interval Timer)
  • PS/2 keyboard driver
  • Preemptive multitasking

Phase 4: Userspace and Filesystems

  • Syscall interface
  • Userspace program execution
  • FAT32 filesystem
  • Basic shell

Documentation

Memory Layout


Contributing

Contributions are welcome. Please follow these guidelines:

  1. Fork the repository.
  2. Create a new branch: git checkout -b feature/your-new-feature
  3. Make your changes.
  4. Format your code: cargo fmt
  5. Lint your code: cargo clippy
  6. Ensure the project builds: cargo build
  7. Open a Pull Request with a clear description of your changes.

License

This project is licensed under the MIT License. See the LICENSE file for details.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors