Skip to content
Snippets Groups Projects
faq.en.md 16.03 KiB
title = "FAQ"

This page covers questions/answers for newcomers and end-users.

What is Redox?

Redox is a microkernel-based operating system, a complete, fully-functioning, general-purpose operating system with a focus on safety, freedom, reliability, correctness, and pragmatism.

Wherever possible, the system components are written in Rust and run in user-space.

Current status

Redox is a alpha/beta quality software, because we implement new features while fix the bugs.

Thus it's not ready for daily usage yet, feel free to test the system until its maturity and don't store your sensitive data without a proper backup.

The version 1.0 will be released once all system APIs are considered stable.

What does Redox mean?

Redox is the chemical reaction (reduction–oxidation) that creates rust, as Redox is an operating system written in Rust, it makes sense.

It sounds like Minix/Linux too.

What features does Redox have?

Microkernel benefits

True modularity

You can modify/change many system components without a system restart, similar to but safer than livepatching.

Bug isolation

Most system components run in user-space on a microkernel system, a bug in a non-kernel component won't crash the system/kernel.

No-reboot design

A mature microkernel changes very little (bug fixing), so you won't need to restart your system very often to update the system.

Since most of the system components are in userspace, they can be replaced on-the-fly (reducing downtime for server administrators).

Easy to develop and debug

Most of the system components run in userspace, simplifying testing/debugging.

Rust benefits

Less likely to have bugs

The restrictive syntax and compiler suggestions reduce the probability of bugs a lot.

No need for C/C++ exploit mitigations

The microkernel design written in Rust protects against C/C++ memory defects.

By isolating the system components from the kernel, the attack surface is very limited.

Improved security and reliability without significant performance impact

As the kernel is small, it uses less memory to do its work and the limited kernel code size helps to keep it close to bug-free status (KISS goal).

Rust's safe and fast language design, combined with the small kernel code size, helps ensure a reliable, performant and easy to maintain core.

Thread-safety

The C/C++ support for thread-safety is quite fragile, and it is very easy to write a program that looks safe to run across multiple threads, but which introduces subtle bugs or security holes. If one thread accesses a piece of state at the same time that another thread is changing it, the whole program can exhibit some truly confusing and bizarre bugs.

But in Rust this kind of bug is easy to avoid, the same type system that keeps us from writing memory unsafety prevents us from writing dangerous concurrent access patterns

Rust-written Drivers

Drivers written in Rust are likely to have fewer bugs and therefore are more secure.

ZFS-inspired filesystem

Redox uses RedoxFS as the default filesystem, it supports similar features as ZFS with a written-in-Rust implementation.

Expect high performance and data safety (copy-on-write, data integrity, volumes, snapshots, hardened against data loss).

What is the purpose of Redox?

The main goal of Redox is to be a general-purpose OS, while maintaining security, reliability and correctness.

Redox aims to be an alternative to existing Unix systems (Linux/BSD), with the ability to run most Unix programs with only recompilation or minimal modifications.

What I can do with Redox?

As a general-purpose operating system, you will be able to do almost any task on most devices with high performance/security.

Redox is still under development, so our list of supported applications is currently limited, but growing.