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:
- The main website for Redox OS.
- The Redox Book and Build Instructions.
- Redox Chat and Support.
- Patreon, Donate and Merch.
- Scroll down for a list of key Redox components and their repositories.
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.
More Links
- Book
- Contribute
- Hardware Compatibility
- Run Redox in a Virtual Machine or on Real Hardware
- Trying Out Redox
- Building Redox
- Build System Documentation
- Developer FAQ
- Chat/Discussions/Help
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
curl -sS https://webi.sh/hugo | sh; \
source ~/.config/envman/PATH.envOr install it manually:
- Download the executable for your CPU architecture on this link
- Move the extracted
hugofile to the~/.local/bindirectory on your user folder - Verify if the
~/.local/binis present on yourPATH(runecho $PATHto verify) - If the
~/.local/bindirectory is not present on yourPATHenvironment 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
curl -sS https://webi.sh/node | sh; \
source ~/.config/envman/PATH.envOr install it manually:
- Download the executable for your CPU architecture on this link
- Move the extracted
nodefile to the~/.local/bindirectory on your user folder - Verify if the
~/.local/binis present on yourPATH(runecho $PATHto verify) - If the
~/.local/bindirectory is not present on yourPATHenvironment 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:
export PATH=$PATH:$HOME/.local/binPreview
To preview the site, run the following command, wait it to finish and open the link http://localhost:1313
./hugo.sh serveThe 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).
Verify Broken Links
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:
lychee content