Shell Makefile Nix
Clone or download
jackpot51 Merge branch 'patch-1' into 'master'
Add missing packages to filesystem.toml

See merge request redox-os/redox!1192
Latest commit 1f52948 Jul 7, 2018
Permalink
Failed to load latest commit information.
.github Update ISSUE_TEMPLATE Oct 9, 2017
bootloader @ 615d9e1 Update to RedoxFS 3 Nov 20, 2017
bootloader-efi @ de305ff Update bootloader efi Apr 21, 2018
cookbook @ 79e8d44 Update cookbook Jun 10, 2018
docker Add script for entering docker environment Jun 13, 2018
installer @ 999db45 Update to RedoxFS 3 Nov 20, 2017
isolinux @ 3cf79d3 Move isolinux to submodule Jan 5, 2017
kernel @ 054fc41 Update kernel Jun 24, 2018
mk Make images in gitlab ci Jun 10, 2018
redoxfs @ 72b0492 Update redoxfs May 24, 2018
rust @ fbb1fd1 Update rust Jun 19, 2018
.gitignore Convert to cookbook based build May 11, 2017
.gitlab-ci.yml Add artifacts Jun 11, 2018
.gitmodules Remove gitrepoman submodule Jun 12, 2018
.travis.yml Make images in gitlab ci Jun 10, 2018
CONTRIBUTING.md Update CONTRIBUTING.md Jun 18, 2018
LICENSE Add license Aug 13, 2016
Makefile Make images in gitlab ci Jun 10, 2018
README.md Update build steps Apr 2, 2018
bochs.x86_64 Allow compiling both livedisk and harddrive Nov 20, 2016
bootstrap.sh Update bootstrap.sh to gitlab.redox-os.org instead of github.com Jun 14, 2018
ci.toml Add general section to ci.toml Jun 10, 2018
filesystem.toml Add missing packages to filesystem.toml Jul 6, 2018
initfs.toml Set default keymap Oct 10, 2017
initfs_live.toml Set default keymap Oct 10, 2017
rust-toolchain Update rust Jun 19, 2018
shell.nix Add shell.nix for NixOS users May 8, 2018

README.md

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 (co.: @ticki, **@nilset)
binutils @ticki
bots (custom Mattermost bots) @ticki
cookbook @jackpot51
coreutils @ticki (co.: @stratact)
extrautils @ticki
games @ticki
Ion (shell) @skylerberg & @jackpot51
kernel @jackpot51
libextra @ticki
libpager @ticki
netutils @jackpot51
orbclient (Orbital client) @jackpot51
orbdata @jackpot51
orbgame (Orbital 2D game engine) @FloVanGH
Orbital (windowing and compositing system) @jackpot51
orbtk (Orbital toolkit) @stratact
orbutils (Orbital utilities) @jackpot51
pkgutils (current package manager) @jackpot51
playbot (internal REPL bot) @ticki
ralloc @ticki
RANSID (Rust ANSI driver) @jackpot51
redoxfs (old filesystem) @jackpot51
syscall @jackpot51
Sodium (Vim-inspired text editor) @ticki
TFS (ticki filesystem) @ticki
The Redox book @ticki
userutils @jackpot51
libstd abandoned, Rust's official libstd is now used
The old kernel abandoned
ZFS abandoned, superseded by TFS

Help! Redox won't compile!

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

  1. Make sure you have a Redox toolchain (x86_64-unknown-redox-gcc).
    • You can install from .deb packages (https://static.redox-os.org/toolchain/apt/) or build redox-os/libc manually.
  2. Run rustup update
  3. Run make clean pull.
  4. 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).
  5. Update GNU Make, NASM and QEMU/VirtualBox.
  6. Pull the upstream master branch (git remote add upstream git@github.com:redox-os/redox.git; git pull upstream master).
  7. 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://raw.githubusercontent.com/redox-os/redox/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://github.com/redox-os/redox.git --origin upstream --recursive
# SSH
$ git clone git@github.com: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
$ cargo install xargo

# 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.