Mirror of https://gitlab.redox-os.org/redox-os/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
rustcbefore building (for more troubleshooting, see "Help! Redox won't compile!").
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
Sometimes things go wrong when compiling. Try the following before opening an issue:
make clean pull.
git remote add upstream [email protected]:redox-os/redox.git; git pull upstream master).
git submodule update --recursive --init).
and then rebuild!
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.
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!
$ 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
$ 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
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.
To manually clone, build and run Redox using a Unix-based host, run the following commands (with exceptions, be sure to read the comments): ```bash $ cd path/to/your/projects/folder/
$ git clone https://gitlab.redox-os.org/redox-os/redox.git --origin upstream --recursive
$ git clone [email protected]:redox-os/redox.git --origin upstream --recursive
$ cd redox/
$ ./bootstrap.sh -d
$ curl https://sh.rustup.rs -sSf | sh $ source $HOME/.cargo/env
$ cargo install xargo cargo-config
$ git submodule update --recursive --init
$ make all
$ make qemu
$ make qemu kvm=no
make qemu kvm=no vga=no ```
We also provide docker image. After cloning this repository, please follow README under the
To update the codebase run:
make pull; make fetch
make pullpulls and updates the submodules, and
make fetchupdates the sources for cookbook recipes.