Find a file
2022-08-26 12:27:09 -06:00
.gitlab Reorganize description templates for GitLab 2018-09-05 21:51:33 +02:00
bootloader@4fe947928e Update bootloader 2022-08-23 20:08:58 -06:00
bootloader-coreboot@6c31909f75 Update bootloader-coreboot 2020-03-10 19:27:39 -06:00
config Add a minimal i686 config for low-RAM systems 2022-08-26 12:27:09 -06:00
cookbook@603320f196 Update cookbook 2022-08-26 11:18:28 -06:00
docker Removes the need to sudo since the script is already running as sudo 2019-06-20 07:47:09 +00:00
installer@be5eefd44f Update all submodules 2022-08-23 08:20:56 -06:00
isolinux@3cf79d3354 Move isolinux to submodule 2017-01-05 11:28:34 -07:00
mk Always use live disk for aarch64 2022-08-26 11:30:14 -06:00
redoxfs@790ea59269 Update all submodules 2022-08-23 08:20:56 -06:00
relibc@c59b94d102 Update relibc 2022-08-25 19:04:03 -06:00
rust@3e6631a06e Update relibc and rust 2022-07-26 07:40:22 -06:00
.gitignore Add a file to hold a local make config. 2020-07-11 17:20:29 -07:00
.gitlab-ci.yml Install parted in gitlab CI 2020-12-24 15:47:10 -07:00
.gitmodules Update all submodules 2022-08-23 08:20:56 -06:00
bochs.i686 Add bochs i686 config 2022-08-11 14:43:45 -06:00
bochs.x86_64 FIX bochs 2022-05-30 16:03:31 +05:30
bootstrap.sh Remove fuse from ubuntu boostrap 2022-06-19 07:54:13 -06:00
ci.toml Enable CI for more packages 2022-08-04 09:23:00 -06:00
CONTRIBUTING.md Change CONTRIBUTING repo urls to point to gitlab 2018-08-26 09:25:51 -07:00
LICENSE Add license 2016-08-13 16:28:33 -06:00
Makefile Support distinct filesystem configs for each architecture 2022-08-26 11:26:05 -06:00
README.md Install cargo-config from bootstrap script 2020-02-15 08:36:29 -05:00
rust-toolchain Update toolchain to 2022-03-18 2022-03-27 13:30:27 +02:00

Redox

Redox is an operating system written in Rust, a language with focus on safety and high performance. Redox, following the microkernel design, aims to be secure, usable, and free. Redox is inspired by previous kernels and operating systems, such as SeL4, MINIX, Plan 9, and BSD.

Redox is not just a kernel, it's a full-featured Operating System, providing packages (memory allocator, file system, display manager, core utilities, etc.) that together make up a functional and convenient operating system. You can loosely think of it as the GNU or BSD ecosystem, but in a memory safe language and with modern technology. See this list for overview of the ecosystem.

The website can be found at https://www.redox-os.org.

Please make sure you use the latest nightly of rustc before building (for more troubleshooting, see "Help! Redox won't compile!").

Travis Build Status Downloads MIT licensed Rust Version

Contents

What it looks like

Redox Redox Redox Redox Redox Redox

Ecosystem

The ecosystem and software Redox OS provides is listed below.

Name (lexicographic order) Maintainer
acid (kernel integration tests) @jackpot51 @NilSet
binutils vacant
cookbook @jackpot51 @ids1024 @sajattack
coreutils vacant
extrautils vacant
games @enrico (AKA @HenryTheCat) @fabiao
Ion (shell) @mmstick @stratact
ipcd @jD91mZM2
kernel @jackpot51
libextra vacant
libpager vacant
netstack @batonius @dlrobertson
netutils @jackpot51
orbclient (Orbital client) @jackpot51 @FloVanGH
orbdata @jackpot51
orbgame (Orbital 2D game engine) @FloVanGH
Orbital (windowing and compositing system) @jackpot51
orbtk (Orbital toolkit) @FloVanGH
orbutils (Orbital utilities) @jackpot51
pkgutils (current package manager) @jackpot51
ralloc @Tommoa @NilSet
RANSID (Rust ANSI driver) @jackpot51
redoxfs (old filesystem) @jackpot51
relibc (C Library in Rust) @jD91mZM2 @sajattack @Tommoa @stratact
small (stack String and other collections) @Tommoa
syscall @jackpot51
Sodium (Vim-inspired text editor) vacant
TFS ((ticki) The File System) @Tommoa
The Redox book vacant
userutils @jackpot51

Help! Redox won't compile!

Sometimes things go wrong when compiling. Try the following before opening an issue:

  1. Run rustup update
  2. Run make clean pull.
  3. Make sure you have the latest version of Rust nightly! (rustup.rs is recommended for managing Rust versions. If you already have it, run rustup).
  4. Update GNU Make, NASM and QEMU/VirtualBox.
  5. Pull the upstream master branch (git remote add upstream git@gitlab.redox-os.org:redox-os/redox.git; git pull upstream master).
  6. Update submodules (git submodule update --recursive --init).

and then rebuild!

Contributing to Redox

If you're interested in this project, and you'd like to help us out, here is a list of ways you can do just that.

Cloning, Building and Running

Redox is big, even compressed. Downloading the full history may take a lot of bandwidth, and can even be costly on some data plans. Clone at your own risk!

Quick Setup

$ cd path/to/your/projects/folder/

# Run bootstrap setup
$ curl -sf https://gitlab.redox-os.org/redox-os/redox/raw/master/bootstrap.sh -o bootstrap.sh && bash -e bootstrap.sh

# Change to project directory
$ cd redox

# Build Redox
$ make all

# Launch using QEMU
$ make qemu
# Launch using QEMU without using KVM (Kernel-based Virtual Machine). Try if QEMU gives an error.
$ make qemu kvm=no

QEMU with KVM

To use QEMU with KVM (Kernel-based Virtual Machine), which is faster than without KVM, you need a CPU with Intel® Virtualization Technology (Intel® VT) or AMD Virtualization™ (AMD-V™) support. Most systems have this disabled by default, so you may need to reboot, go into the BIOS, and enable it.

Manual Setup

To manually clone, build and run Redox using a Unix-based host, run the following commands (with exceptions, be sure to read the comments):

$ cd path/to/your/projects/folder/

# HTTPS
$ git clone https://gitlab.redox-os.org/redox-os/redox.git --origin upstream --recursive
# SSH
$ git clone git@gitlab.redox-os.org:redox-os/redox.git --origin upstream --recursive

$ cd redox/

# Install/update dependencies
$ ./bootstrap.sh -d

# Install rustup.rs
$ curl https://sh.rustup.rs -sSf | sh
$ source $HOME/.cargo/env

# Install the sysroot manager Xargo and cargo-config
$ cargo install xargo cargo-config

# For successive builds start here. If this is your first build, just continue

# Update git submodules
$ git submodule update --recursive --init

# Build Redox
$ make all

# Launch using QEMU
$ make qemu

# Launch using QEMU without using KVM (Kernel-based Virtual Machine). Try if QEMU gives an error.
$ make qemu kvm=no

# Launch using QEMU without using KVM (Kernel-based Virtual Machine) nor Graphics
make qemu kvm=no vga=no

Setup using Docker

We also provide docker image. After cloning this repository, please follow README under the docker directory.

Updating the codebase using the Makefile

To update the codebase run:

make pull; make fetch

make pull pulls and updates the submodules, and make fetch updates the sources for cookbook recipes.