Skip to main content

Overview

RedoxFS is the default filesystem for Redox OS, designed specifically for the operating system’s microkernel architecture. It’s written in Rust and provides reliable, copy-on-write storage with modern filesystem features.

RedoxFS Repository

View the RedoxFS source code on GitLab

Key Features

Copy-on-Write

Efficient copy-on-write operations for data integrity

Rust Implementation

Memory-safe implementation preventing corruption

Snapshots

Support for filesystem snapshots

POSIX Compatible

Compatible with POSIX filesystem semantics

Architecture

RedoxFS is designed to work seamlessly with Redox’s scheme-based I/O system:
  • Scheme integration: Accessed through the file:// scheme
  • Userspace daemon: Runs as a userspace process for better isolation
  • Block device support: Works with various storage backends
  • Journaling: Ensures data consistency across crashes

File Scheme Access

In Redox OS, filesystem access is handled through the scheme system:
// Files are accessed through the file scheme
let file = File::open("file:///home/user/document.txt")?;

// Or using standard POSIX paths (automatically resolved)
let file = File::open("/home/user/document.txt")?;

Filesystem Structure

RedoxFS follows a standard Unix-like directory hierarchy:
/
├── bin -> usr/bin      # User binaries (symlink)
├── dev/                # Device files
├── etc/                # Configuration files
├── home/               # User home directories
├── lib -> usr/lib      # Libraries (symlink)
├── tmp/                # Temporary files
├── usr/                # User programs and data
   ├── bin/           # User binaries
   ├── lib/           # Libraries
   └── share/         # Shared data
└── var/                # Variable data
    ├── cache/
    ├── log/
    └── tmp/

Configuration

RedoxFS is included in the base system configuration:
[packages]
redoxfs = {}

File Scheme Access Control

The filesystem integrates with Redox’s security model through scheme permissions:
[user_schemes.user]
schemes = [
  "file",  # Access to filesystem
  # ... other schemes
]
Root access is required for system-level filesystem operations. Regular users have restricted access based on file permissions.

Device Files

RedoxFS works with device files that are mapped to kernel and userspace schemes:
# Device file symlinks to schemes
/dev/null -> /scheme/null
/dev/random -> /scheme/rand
/dev/urandom -> /scheme/rand
/dev/zero -> /scheme/zero

Performance

RedoxFS is optimized for:
  • Fast metadata operations: Efficient directory traversal
  • Low latency: Minimal overhead for small operations
  • Scalability: Handles large filesystems efficiently
  • Concurrent access: Safe multi-threaded access

Resources

RedoxFS Repository

Source code and development

Redox Book

Filesystem documentation

Build System

How RedoxFS is built

Hardware Support

Storage device compatibility

Maintainer

Jeremy Soller (@jackpot51)

Primary maintainer of RedoxFS

Build docs developers (and LLMs) love