side_projects.md 3.06 KB
Newer Older
Ticki's avatar
Ticki committed
1 2 3
Side projects
=============

Skyler Berg's avatar
Skyler Berg committed
4 5
Redox is a complete Rust operating system.
In addition to the kernel, we are developing several side projects, including:
Ticki's avatar
Ticki committed
6

Emanuele Antonio Faraone's avatar
typo  
Emanuele Antonio Faraone committed
7
- [TFS]: A file system inspired by ZFS.
k0pernicus's avatar
k0pernicus committed
8 9 10
- [Ion]: The Redox shell.
- [Orbital]: The display server of Redox.
- [OrbTK]: A widget toolkit.
11
- [pkgutils]: Redox's package management library and its command-line frontend.
k0pernicus's avatar
k0pernicus committed
12 13 14 15 16
- [Sodium]: A Vi-like editor.
- [ralloc]: A memory allocator.
- [libextra]: Supplement for libstd, used throughout the Redox code base.
- [games-for-redox]: A collection of mini-games for Redox (alike BSD-games).
- and a few other exciting projects you can explore [here].
Ticki's avatar
Ticki committed
17

Skyler Berg's avatar
Skyler Berg committed
18
We also have three utility distributions, which are collections of small, useful command-line programs:
19

k0pernicus's avatar
k0pernicus committed
20 21 22
- [Coreutils]: A minimal set of utilities essential for a usable system.
- [Extrautils]: Extra utilities such as reminders, calendars, spellcheck, and so on.
- [Binutils]: Utilities for working with binary files.
Ticki's avatar
Ticki committed
23

Dan Robertson's avatar
Dan Robertson committed
24 25 26 27 28 29
We also actively contribute to third party projects that are heavily used in Redox.

 - [uutils/coreutils]: Cross-platform Rust rewrite of the GNU coreutils.
 - [m-labs/smoltcp]: The network stack used by Redox.

What tools are fitting for the Redox distribution?
Ticki's avatar
Ticki committed
30 31
-------------------------------------------------

32
Some of these tools will in the future be moved out of the default distribution, into seperate optional packages. Examples of these are Orbital, OrbTK, Sodium, and so on.
Ticki's avatar
Ticki committed
33 34 35

The listed tools fall into three categories:

k0pernicus's avatar
k0pernicus committed
36 37 38
1. **Critical**, which are needed for a full functioning and usable system.
2. **Ecosystem-friendly**, which are there for establishing consistency within the ecosystem.
3. **Fun**, which are "nice" to have and are inherently simple.
Ticki's avatar
Ticki committed
39

40
The first category should be obvious: an OS without certain core tools is a useless OS. The second category contains the tools which are likely to be non-default in the future, but nonetheless are in the official distribution right now, for the charm. The third category is there for convenience: namely for making sure that the Redox infrastructure is consistent and integrated (e.g., pkgutils, OrbTK, and libextra).
Ticki's avatar
Ticki committed
41 42

It is important to note we seek to avoid non-Rust tools, for safety and consistency (see [Why Rust]).
Skyler Berg's avatar
Skyler Berg committed
43

44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
[TFS]: https://gitlab.redox-os.org/redox-os/tfs
[Ion]: https://gitlab.redox-os.org/redox-os/ion
[Orbital]: https://gitlab.redox-os.org/redox-os/orbital
[OrbTK]: https://gitlab.redox-os.org/redox-os/orbtk
[pkgutils]: https://gitlab.redox-os.org/redox-os/pkgutils
[Sodium]: https://gitlab.redox-os.org/redox-os/sodium
[ralloc]: https://gitlab.redox-os.org/redox-os/ralloc
[libextra]: https://gitlab.redox-os.org/redox-os/libextra
[games-for-redox]: https://gitlab.redox-os.org/redox-os/games
[here]: https://gitlab.redox-os.org/redox-os

[Coreutils]: https://gitlab.redox-os.org/redox-os/coreutils
[Extrautils]: https://gitlab.redox-os.org/redox-os/extrautils
[Binutils]: https://gitlab.redox-os.org/redox-os/binutils

[uutils/coreutils]: https://gitlab.redox-os.org/uutils/coreutils
[m-labs/smoltcp]: https://gitlab.redox-os.org/m-labs/smoltcp
Dan Robertson's avatar
Dan Robertson committed
61

Elijah Caine's avatar
Elijah Caine committed
62
[Why Rust]: ./introduction/why_rust.html