Skip to main content

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
Key Responsibilities:
  • Process and thread scheduling
  • Virtual memory management
  • System call handling
  • Basic scheme providers (memory, pipe, irq, time)

Base System Components

The base repository contains essential system components and drivers:

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.
Features:
  • 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:
Supported Protocols:
  • IPv4 (full support)
  • IPv6 (planned)
  • ICMP (ping, traceroute)
  • ARP (address resolution)
Network Scheme Example:

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: schemes

Desktop

Integrates with COSMIC desktop apps
Orbital Operations:

Shell - Ion

Ion is the default shell for Redox:
Ion Features:

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.
Key Features:
  • 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:
Package Configuration:

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:
Unlike Linux’s /dev which contains thousands of device nodes, Redox uses lightweight symlinks to scheme URLs.

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