redox Documentation

Rust bsd & freebsd repository by @redox-os. Model Context Protocol (MCP) server & tools with 16k stars.

16,498 stars Rust Rust 1 file ยท ~1,853 tokens #bsd#freebsd#gnu#gnu-hurd#linux#microkernel#minix#open-source
RAW Doc

1. Project Overview & Quickstart (redox-os/redox)

This repository is the Build System for Redox OS.

Redox is under active development by a vibrant community, you can see the key links below:

Redox is an open-source operating system written in Rust, a language with focus on safety, efficiency and high performance. Redox uses a microkernel architecture, and aims to be reliable, secure, usable, correct, and free. Redox is inspired by previous operating systems, such as seL4, MINIX, Plan 9, Linux and BSD.

Redox is not just a kernel, it's a full-featured operating system, providing components (file system, display server, core utilities, etc.) that together make up a functional and convenient operating system. Redox uses the COSMIC desktop apps, and provides source code compatibility with many Rust, Linux and BSD programs.

Ecosystem

Some of the key repositories on the Redox GitLab:

Essential Repositories Maintainer
Kernel @jackpot51
Base (essential system components and drivers) @jackpot51
RedoxFS (default filesystem) @jackpot51
relibc (C POSIX library written in Rust) @jackpot51
Ion (defauilt shell) @jackpot51
Termion (terminal library) @jackpot51
pkgutils (current package manager) @jackpot51
Orbital (display server and window manager) @jackpot51
This repo - the root of the Build System @jackpot51 @hatred_45
Redoxer (tool for easy Redox development on Linux) @jackpot51
The Redox Book @jackpot51 @hatred_45
Website @jackpot51 @hatred_45

What it looks like

See Redox in Action for photos and videos.

2. Official Technical Reference & Guides (redox-os/website)

Website

This is the source for redox-os.org website.

Setup

To build this site, you must install Hugo and Nodejs and run the hugo.sh file.

Install Hugo

You can install Hugo from automated script using webi

sh
curl -sS https://webi.sh/hugo | sh; \
source ~/.config/envman/PATH.env

Or install it manually:

  • Download the executable for your CPU architecture on this link
  • Move the extracted hugo file to the ~/.local/bin directory on your user folder
  • Verify if the ~/.local/bin is present on your PATH (run echo $PATH to verify)
  • If the ~/.local/bin directory is not present on your PATH environment variable, you must add it on the configuration file of your terminal shell

Install Nodejs

NOTE: Nodejs is only needed for PostCSS during building the site. You can skip Node.js if you only want to preview the site.

You can install Nodejs from automated script using webi

sh
curl -sS https://webi.sh/node | sh; \
source ~/.config/envman/PATH.env

Or install it manually:

  • Download the executable for your CPU architecture on this link
  • Move the extracted node file to the ~/.local/bin directory on your user folder
  • Verify if the ~/.local/bin is present on your PATH (run echo $PATH to verify)
  • If the ~/.local/bin directory is not present on your PATH environment variable, you must add it on the configuration file of your terminal shell

Bash PATH

To add the ~/.local/bin directory on the PATH of your GNU Bash, add the following text on the end of the .bashrc file at your user folder:

sh
export PATH=$PATH:$HOME/.local/bin

Preview

To preview the site, run the following command, wait it to finish and open the link http://localhost:1313

sh
./hugo.sh serve

The hugo.sh is a script that enables content written for the English language webpage (in the content/ directory) to be visible in pages of other languages.

But this results in a quirk where hugo does not watch for changes in the content/ directory when you use ./hugo.sh serve command.

So, you can use the hugo serve command instead, which makes sure that content/ directory is also watched (just for when you're writing the pages).

Use the lychee tool to verify broken links, it's very advanced and fast.

Read this page to install the tool.

Customizing Bulma

The bulma.css used in this page is a trimmed version from the production CSS. We're not using the v1 version because Netsurf can't use CSS variables which v1 is heavily using it.

To add more classes from Bulma, copy the full production CSS into bulma.css then run hugo to create another trimmed version of it using PostCSS, then copy the generated bulma.css back into the repository.

Usage

Run the following command inside the repository folder:

sh
lychee content