This Week in Redox 30

By goyox86 on

This is the 30th post of a series of blog posts tracking the development and progress of Redox, the Rust operating system. If you want to know more about Redox in general, visit our Github page.

(edited by @goyox86)

PSA

If you have any questions, ideas, or are curious about Redox, we recommend joining #redox on irc.mozilla.org, our Discourse forum or you can get an invite to our chat by sending an email request to info@redox-os.org.

What’s new in Redox?

TL;DR

Hello there! And welcome to another edition of TWiR!

As usual, we have been busy making Redox better and we have a couple of exciting news to share. So, Let’s get started!

First of all, @andre pointed out that the Docker experience has been improved. Among others, consecutive builds are now way faster because cargo downloads are cached with named volumes. Also, there’s documentation for running the container interactively now. Please check it out here!

We are super excited about the work done by @jackpot51 towards the installer support. For example, the bootloader now supports filesystem UUID detection and is able to send that information to the kernel at boot time. The kernel has notably gained the ability to receive environment variables at the main entry point (kmain) this is needed to being able to receive that REDOXFS_UUID environment with the filesystem UUID to be mounted. It’s also worth mentioning that @jackpot51 made some refactoring to the kernel arguments infrastructure.

The other very important change is related to schemes. Redox now supports hierarchical schemes enabling for example, more than one disk controller.

Other exciting news in the kernel is the work on capability based security. Basically, capability mode will make a process unable to open new file descriptors unless it has required access to it, improving security and allowing more reasoning about the system. The sys:iostat scheme for example, should tell you what any process is allowed to do, once it is in capability mode. You can read more about capability based security here and also check out FreeBSD’s implementation of this model.

Along with this work is the support for disk hierarchies added to the AHCID driver and the support for capability mode added to all the drivers by using the 0 namespace (also known as null namespace). In addition to that, we have now a vmmouse driver which should improve significantly the mouse support in QEMU.

Redoxfs was cleaned to allow use of most functions when linking the library, including mounting and creating file systems. It was also extended to allow a bootloader to be written during redoxfs-mkfs but, without doubt, the most notable feature is the addition of UUID support, enabling file systems to be mounted by UUID (used by the installer).

Moving up to the userland we have Ion which experienced a lot of changes and improvements notably: The initial work on library support, the support for custom prompts via the PROMPT function, the implementation of $find() and @split_at(), support multi-line array assignments and lots of refactoring to the words module all by @mmstick.

The cookbook got some new packages (a lot of the related to games and emulators ;)): notably 2048, cleye, rust64 and rs-nes thanks to @jackpot51.

The coreutils yes utility was improved by @youknowone to show invalid parameter error rather than silencing ‘y’.

On the GUI side of things Orbital was updated to use the null namespace and @dummie999 was busy with Sodium adding line numbers, wrapping long lines, fixing a bug that could cause panic when deleting lines, fixing a bug when entering invalid commands in prompt and making buffers behave more consistent.

Bonus: There is a new release in the works. It should be out in the next few days, make sure you give it a spin!

Bootloader

Redox OS Bootloader

Kernel

The Redox microkernel

Drivers

Redox OS Drivers

Ion

The Ion Shell. Compatible with Redox and Linux.

Cookbook

A collection of package recipes for Redox.

Orbital

Redox Windowing and Compositing System

Redoxfs

The Redox Filesystem

Sodium

Sodium: The Text Editor

Coreutils

The Redox coreutils.

Handy links

  1. The Glorious Book
  2. The Holiest Forum
  3. The Shiny ISOs
  4. Redocs
  5. Fancy GitHub organization
  6. Our Holy Grail of a Website
  7. The Extreme Screenshots

New contributors

Since the list of contributors are growing too fast, we’ll now only list the new contributors. This might change in the future.

Sorted in alphabetical order.

If I missed something, feel free to contact me @goyox86 or send a PR to Redox website.