Skip to content
Snippets Groups Projects
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

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.

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.

What is a Unix-like OS?

Any OS compatible with Single Unix Specification and POSIX, expect a shell, "everything is a file" concept, multitasking and multiuser.

Unix was a highly influential multitasking system and impacted the design choices of most modern systems.

How Redox is inspired by other systems?

Plan 9 - This Bell Labs OS brings the concept of "everything is a file" to the highest level, doing all the system communication from the filesystem.

Minix - The most influential Unix-like system with a microkernel, it has advanced features such as system modularity, kernel panic resistence, driver reincarnation, protection against bad drivers and secure interfaces for process comunication.

Redox is largely inspired by Minix, it has a similar architecture and feature set written in Rust.

BSD - This Unix OS family included several improvements on Unix systems, the most notable is BSD sockets, that brings network communication with file-like operation (before Plan 9).

Linux - the most advanced monolithic kernel of the world and biggest open-source project of the world, it brings several improvements/optimizations to Unix-like systems.

Redox tries to implement the Linux performance improvements in a microkernel design.

What is a microkernel?

A microkernel is the near-minimum amount of software that can provide the mechanisms needed to implement an operating system, which runs on the highest privilege of the processor.

This approach to OS design brings more stability and security, with a small cost on performance.

What programs can Redox run?

Redox is designed to be source-compatible with most Unix, Linux and POSIX-compilant applications, only requiring compilation.

Currently, most GUI applications require porting, as we don't support X11 or Wayland yet.

Some important software that Redox supports:

You can see all Redox components/ported programs here.

How to install programs on Redox?

Redox has a package manager similar to apt (Debian) and pkg (FreeBSD), you can see how to use it on this page:

Which are the Redox variants?

Redox has some variants for each task, take a look on them below:

  • server-minimal - The most minimal variant with a basic system, aimed for embedded devices, very old computers and developers.

  • desktop-minimal - The most minimal variant with the Orbital desktop environment included, aimed for embedded devices, very old computers and developers.

  • server - The server variant with a complete system and network tools, aimed for server administrators, embedded devices, low-end computers and developers.

  • desktop - The standard variant with a complete system, Orbital desktop environment and useful tools, aimed for daily usage, producers, developers and gamers.

  • dev - The development variant with a complete system and development tools, aimed for developers.

  • demo - The demo variant with a complete system, tools, players and games, aimed for testers, gamers and developers.

Which devices does Redox support?

There are billions of devices with hundreds of models/architectures in the world, we try to write drivers for the most used devices to support more people, some drivers are device-specific and others are architecture-specific.

Have a look at HARDWARE.md to see all tested computers.

CPU

  • x86_64/AMD64 - (Intel/AMD)
  • x86/i686 - (Intel/AMD from Pentium II and after supported with limitations)
  • ARM64 - (supported with limitations)

Hardware Interfaces

(USB soon)

Video

  • VGA - (BIOS)
  • GOP (UEFI)
  • LLVMpipe - Software Rendering

(Intel/AMD and others in the future)

Sound

(Sound Blaster soon)

Storage

(USB soon)

Input

(USB soon)

Internet

(Wi-Fi/Atheros ethernet soon)

Which virtual machines does Redox have integration with?

In the future the microkernel could act as a hypervisor, similar to Xen.

A hypervisor is software providing the ability to run multiple isolated operating system instances simultaneously.

How do I build Redox?

Currently Redox has a bootstrap script for Debian/Ubuntu/Pop OS! with unmaintained support for other distributions.

We are moving to use Podman as our main compilation method, it is the recommended build process for non-Debian systems because it avoids environment problems on compilation.

How to launch QEMU without GUI

Run:

  • make qemu vga=no

How to troubleshoot your build in case of errors

Refer to the Redox Book to see if the problem is your build configuration or toolchain, if you still have problems, see the following or join us on Redox Chat.

How to report bugs on Redox

Check GitLab Issues first to see if your problem is already known.

How do I contribute to Redox?

You can contribute to Redox in many ways, you can see them on CONTRIBUTING.

I have a problem/question for Redox team

  • Have a look at the Documentation page for more details of Redox internals.
  • Have a look at the Redox Book to see if it answers your questions/fixes your problem.
  • If the book does not answer your question, ask your question/say your problem in Redox Support or Redox Dev rooms on Matrix.