No description
  • Rust 91.5%
  • POV-Ray SDL 4.7%
  • PowerShell 2%
  • Assembly 0.8%
  • Shell 0.8%
  • Other 0.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
official-markus-maurer 0f2e1f7de6
Some checks failed
Documentation / build-docs (push) Has been cancelled
Build RyuuOS / build (push) Has been cancelled
Implement enhanced process management commands and serial byte writing
- Added `write_bytes` function to `serial.rs` for direct byte slice output to COM1.
- Extended shell command handling in `shell.rs`:
  - Introduced new commands: `proccheck`, `ps`, `wait`, and `kill` for improved process management.
  - Enhanced `proc` command to display additional process statistics.
  - Updated command parsing to handle arguments more effectively.
- Updated user-space assembly in `demo_user.asm` to include new syscall numbers for `wait`, `wait_blocking`, `getpid`, `kill`, and `sleep`.
2026-07-21 02:18:30 +02:00
.cargo Initial RyuuOS implementation 2026-07-20 21:56:09 +02:00
.forgejo/workflows feat(memory): implement bitmap-backed physical frame allocator 2026-07-20 22:55:55 +02:00
.vscode Initial RyuuOS implementation 2026-07-20 21:56:09 +02:00
bootloader Initial RyuuOS implementation 2026-07-20 21:56:09 +02:00
docs Implement enhanced process management commands and serial byte writing 2026-07-21 02:18:30 +02:00
kernel Implement enhanced process management commands and serial byte writing 2026-07-21 02:18:30 +02:00
types feat(memory): implement bitmap-backed physical frame allocator 2026-07-20 22:55:55 +02:00
.gitignore Initial RyuuOS implementation 2026-07-20 21:56:09 +02:00
build.sh feat(memory): implement bitmap-backed physical frame allocator 2026-07-20 22:55:55 +02:00
Cargo.lock Initial RyuuOS implementation 2026-07-20 21:56:09 +02:00
Cargo.toml Initial RyuuOS implementation 2026-07-20 21:56:09 +02:00
README.md Implement user-space process management and syscall support 2026-07-21 01:03:32 +02:00
run.ps1 Implement user-space process management and syscall support 2026-07-21 01:03:32 +02:00
rust-toolchain.toml Initial RyuuOS implementation 2026-07-20 21:56:09 +02:00

RyuuOS

RyuuOS is an early-stage x86-64 operating system written in Rust. It boots through UEFI and now provides the first complete interactive kernel foundation:

  • Bounds-checked ELF loading and a versioned boot ABI.
  • GDT, TSS, exception handling, and a double-fault IST.
  • Bitmap physical-frame allocation from the final UEFI memory map.
  • A kernel-owned P4, high-half heap mapping, and coalescing global allocator.
  • ACPI RSDP/XSDT/RSDT/MADT parsing with checksum validation.
  • Local APIC and I/O APIC interrupt routing with an 8259 fallback.
  • A 100 Hz PIT tick, cooperative kernel tasks, PS/2 input, and a serial or framebuffer shell.
  • A ring-3 userspace prototype: minimal ELF loading into per-process address spaces, timer-driven preemptive switching, and a basic syscall ABI.

Storage, networking, SMP, and richer process lifecycle/security still remain future work.

Build and run

The repository pins its Rust nightly toolchain in rust-toolchain.toml. QEMU plus OVMF are recommended for testing.

On Windows:

.\run.ps1

On Linux:

./build.sh
qemu-system-x86_64 -bios /usr/share/ovmf/OVMF.fd \
  -drive file=ryuuos.img,format=raw -m 512M -serial stdio

Use .\run.ps1 -NoQemu for a build-only Windows run and RELEASE=true ./build.sh for optimized Linux images. At the ryuu> prompt, run help to list commands.

The detailed architecture and development guide lives in docs/.