By goyox86
on Friday, August 11, 2017

This is the 28th 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

Welcome to the 28th edition of “This Week in Redox”!

The team has been very busy working on cool stuff this last weeks!

Starting with the kernel, @cookie545445 improved the portability of the kernel codebase by isolating X86_64 dependent code into subfolders and @ids1024 added support for file descriptions, updated pipe to use FIFO flag, reverted a freeze caused by a double locking finishig with the implementation of F_DUPFD.

Ion flow continues fast and steady! Some cool features were added by @mmstick: $contains, $starts_with, $ends_with(), $replace(), $replacen() and $repeat(). He also removed the dependency on the peg crate, enabled function pipelining/redirecting, rustfmted the whole codebase and implemented contains, starts_with, and ends_with builtins. Also in Ion, @huntergoldstein implemented command line options for pushd and dirs. Meanwhile, @bb010g switched Ion from HISTORY_FILE to HISTFILE for history tracking.

On drivers land, the star of this week is the work being done by @jackpot51 in the XCHI controller driver (which means that USB support is around the corner!). He also simplified vesad control logic.

Next stop is Redoxfs, where @jackpot51 and @ids1024 enabled deallocating on resizing and fixed a freeze caused by a double lock respectively.

TFS folks where also very busy these last weeks! Notably @ticki who published a blog post about the new shiny conc crate which uses hazard pointers instead of epochs for doing concurrent memory reclamation. @ticki was also busy improving the documentation of the conc crate, rewriting conc::sync::treiber and adding conc::Guard::{try,maybe}_map while @cedenday added a few trait derivations to speck’s Key.

@Abogical added the whois utility to Netutils and @ids1024 added gzip and xz extraction support to extrautils’s tar.

And! Last but not least in the cookbook: @jackpot51 switched to a Redox patched version of findutils and uutils, while @ids1024 enabled C++ support in the gcc recipe, replaced the target triple from "x86_64-elf-redox-* to x86_64-unknown-redox-*. Ultimately, new recipes for bash, xz and patch were also added this week.

On a side note, I’m gonna be on holidays until September 7th and in consequence there will be radio silence during that period. But don’t panic! we will be back sooner than you think!

Ion

Ion is a shell for UNIX platforms, and is the default shell in Redox. It is still a work in progress, but much of the core functionality is complete. It is also currently significantly faster than Bash, and even Dash, making it the fastest system shell to date.