System Architecture
Redox OS consists of multiple layers and components working together:Core Components
Kernel
The Redox microkernel is the heart of the system:Size
~20,000 lines of Rust code
Role
Process management, memory, IPC, core schemes
Repository
Maintainer
@jackpot51
- Process and thread scheduling
- Virtual memory management
- System call handling
- Basic scheme providers (memory, pipe, irq, time)
Base System Components
Thebase repository contains essential system components and drivers:
- Scheme Providers
- Device Drivers
- Services
File Systems
RedoxFS
The default file system for Redox OS:RedoxFS is a Copy-on-Write (CoW) file system inspired by ZFS and BTRFS, designed specifically for Redox.
- Copy-on-Write semantics
- Built-in compression
- Checksumming for data integrity
- Snapshots
- Written entirely in Rust
Other File Systems
ext4
Linux ext4 support for compatibility
FAT32
FAT32 for USB drives and boot partitions
ISO 9660
CD/DVD file system support
tmpfs
RAM-based temporary file system
Network Stack
smolnetd
Redox’s network service based on the smoltcp library:- Network Layer
- Transport Layer
- Application Layer
- IPv4 (full support)
- IPv6 (planned)
- ICMP (ping, traceroute)
- ARP (address resolution)
Display Server - Orbital
Orbital is Redox’s display server and window manager:Architecture
Compositing window manager with GPU acceleration
Features
Window management, event handling, 2D graphics
Scheme
Provides
orbital: and display: schemesDesktop
Integrates with COSMIC desktop apps
Shell - Ion
Ion is the default shell for Redox:Modern Syntax
Modern Syntax
Functions
Functions
Error Handling
Error Handling
C Library - relibc
Relibc is Redox’s C standard library, written in Rust:Relibc provides POSIX compatibility, enabling many Linux and BSD programs to run on Redox with minimal or no modifications.
- POSIX function implementations
- Thread support (pthreads)
- Dynamic linking
- C++ standard library support (via libstdc++)
- Rust implementation for memory safety
System Library - libredox
Libredox provides Rust access to Redox-specific functionality:Package Manager - pkgutils
Redox’s package manager for installing and managing software:- Installation
- Updates
- Management
System Initialization
Redox uses init scripts for system startup:Base Initialization
Driver Initialization
Network Initialization
Init scripts use
notify for services that should complete startup before continuing, and nowait for background services.System Utilities
Redox includes essential Unix-like utilities:uutils
Rust implementation of core Unix utilities (ls, cp, mv, etc.)
userutils
User management tools (login, sudo, passwd)
netutils
Network utilities (ping, wget, nc)
coreutils
Additional system utilities
Device Management
Devices in Redox are accessed through schemes:Component Diagram
Complete system overview:Key Repositories
Kernel
Core microkernel implementation
Base
Essential system components and drivers
RedoxFS
Default file system
relibc
C standard library
Ion
Default shell
Orbital
Display server
pkgutils
Package manager
libredox
System library
Next Steps
Scheme System
Learn about the scheme system in detail
Contributing
Start contributing to Redox components