A modern, lightweight operating system for handheld retro gaming devices, inspired by ArkOS but built with Rust for performance, safety, and maintainability.
RexOS = Retro Experience OS - Delivering the ultimate retro gaming experience on handheld devices.
RexOS aims to provide a streamlined, performant, and user-friendly operating system for handheld gaming devices like Anbernic RG series, with a focus on:
- Fast boot times (< 10 seconds)
- Efficient resource management
- Easy game library management
- Seamless emulator integration
- Modern development practices
Language Distribution:
- Rust (60%): Core system, hardware abstraction, game library manager
- Shell (30%): System scripts, updates, maintenance tools
- C (10%): Emulator bridges, hardware-specific optimizations
- Build System: Buildroot (minimal, purpose-built)
- Bootloader: U-Boot (optimized)
- Kernel: Linux 5.10 (Rockchip BSP, custom config)
- C Library: glibc (for emulator compatibility)
- Init: Custom
rexos-init(fast boot, no systemd) - Core Utilities: BusyBox (~1MB vs 50MB for coreutils)
- Core System: Rust-based system services
- Frontend: Custom Rust TUI launcher
- Emulators: RetroArch + standalone emulators
- Root FS: SquashFS (read-only, ~50MB compressed)
| Metric | Target |
|---|---|
| Root filesystem | < 100MB |
| Boot time | < 5 seconds |
| RAM usage (idle) | < 100MB |
| Power consumption | Optimized for battery |
- Project structure
- Boot system (< 10 second boot)
- Hardware abstraction layer (HAL) in Rust
- Basic input handling (buttons, analog sticks)
- Display/framebuffer management
- Audio system integration
- Game library scanner with SQLite database
- RetroArch core management
- Save state management
- Init system and TUI launcher
- WiFi/Bluetooth management
- Over-the-air (OTA) updates with signature verification
- C emulator bridge for RetroArch integration
- Performance profiles (battery/performance modes)
- Hotkey system
- Storage management (mount, partition, watch)
- Cloud save sync
- Scrapers (game metadata/artwork)
- Theme engine
- Screenshot/video recording
- Achievement system (RetroAchievements)
- Port management system (similar to PortMaster)
- Shader management
- Netplay support
- Remote play
- Custom overlay system
- Multi-language support
- Accessibility features
- Advanced power management
- BIOS/firmware manager
- Automatic ROM organization
rexos/
โโโ core/ # Rust core system components
โ โโโ hal/ # Hardware Abstraction Layer
โ โโโ input/ # Input management
โ โโโ display/ # Display/GPU management
โ โโโ audio/ # Audio system
โ โโโ storage/ # Storage & filesystem
โ โโโ power/ # Power management
โโโ services/ # System services (Rust)
โ โโโ library/ # Game library manager
โ โโโ emulator/ # Emulator launcher/manager
โ โโโ update/ # Update system
โ โโโ network/ # Network services
โโโ ui/ # User interface
โ โโโ frontend/ # Main UI (EmulationStation or custom)
โ โโโ themes/ # Theme support
โโโ scripts/ # Shell scripts
โ โโโ install/ # Installation scripts
โ โโโ update/ # Update scripts
โ โโโ maintenance/ # System maintenance
โโโ emulators/ # Emulator integration
โ โโโ retroarch/ # RetroArch integration
โ โโโ standalone/ # Standalone emulators
โโโ tools/ # Development & build tools
โ โโโ buildroot/ # Buildroot configuration
โ โโโ deploy/ # Deployment tools
โโโ docs/ # Documentation
โ โโโ dev/ # Developer guides
โ โโโ user/ # User manuals
โ โโโ api/ # API documentation
โโโ tests/ # Test suites
โโโ unit/ # Unit tests
โโโ integration/ # Integration tests
โโโ hardware/ # Hardware-specific tests
- Anbernic RG353M/V/VS: RK3566 chipset
- Anbernic RG35XX series: ARM-based devices
- Anbernic RG351 series
- Anbernic RG552
- Other similar ARM-based handhelds
# Rust toolchain
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Cross-compilation tools
rustup target add aarch64-unknown-linux-gnu
rustup target add armv7-unknown-linux-gnueabihf
# Build dependencies
# (Will be documented as project develops)# Clone repository
git clone https://github.com/santosr2/rexos.git
cd rexos
# Build all components (native)
./scripts/build/build.sh all
# Build for ARM64 (RG353 series)
TARGET=aarch64-unknown-linux-gnu ./scripts/build/build.sh all
# Build for ARM32 (RG35XX series)
TARGET=armv7-unknown-linux-gnueabihf ./scripts/build/build.sh all
# Build C emulator bridge only
make -C c/emulator-bridge
# Run tests
cargo test --all
# Create distribution package
./scripts/build/build.sh package- Download the appropriate image for your device from releases
- Flash to an SD card:
sudo ./scripts/build/flash-image.sh flash rexos-<version>.img.gz /dev/sdX
- Insert the SD card and power on your device
We welcome contributions! Areas where help is needed:
- Rust systems programming
- Linux kernel customization
- Hardware driver development
- EmulationStation theming
- Documentation
- Testing on various devices
- Safety First: Leverage Rust's safety guarantees
- Performance: Optimize for battery life and responsiveness
- Modularity: Clear separation of concerns
- User-Friendly: Simple for users, powerful for developers
- Open: Transparent development and community-driven
- Memory safety without garbage collection
- Zero-cost abstractions
- Excellent embedded systems support
- Modern tooling and package management
- Growing embedded/gaming community
- Reuse proven shell script patterns from ArkOS
- Leverage existing C-based emulators
- Gradual migration path
- Practical for hardware interfacing
- ArkOS Project - Inspiration
- RetroArch - Emulation frontend
- EmulationStation - UI framework
- Rust Embedded Book
This project will be licensed under MIT License (TBD - to be decided with community input).
Q1 2025: Project setup, core architecture, HAL development Q2 2025: Basic boot system, EmulationStation integration Q3 2025: First alpha release for RG353 series Q4 2025: Beta release with full feature set
Status: ๐ก Active Development - Core functionality implemented
Join us: [Discord/Matrix community link coming soon]
| Component | Status | Coverage |
|---|---|---|
| Core HAL | โ Complete | 80% |
| Storage | โ Complete | 75% |
| Config | โ Complete | 85% |
| Emulator Service | โ Complete | 70% |
| Library Service | โ Complete | 75% |
| Update Service | โ Complete | 80% |
| Network Service | โ Complete | 75% |
| C Bridge | โ Complete | N/A |
| Shell Scripts | โ Complete | N/A |
| CI/CD | โ Complete | N/A |