This Week in Redox 27

By goyox86 on

This is the 27th 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 27th edition of “This Week in Redox”!

As always, we have a bunch of good news to share with you. So lets get the ball rolling!

This week, one of the biggest changes is that we started to track the Cargo.lock file of most of Redox crates in Git as an attempt to improve the reproducibility of builds.

@jackpot51 did a bunch of work in the kernel in order to add support for process groups. Result: as of this week, you can send signals to process groups!

There was a also a small change on the kernel making an error to pass an non-empty buffer to dup in schemes, basically, after this change you will get EINVAL if you do so. @jackpot51 also prevented handling of nested signals.

The streak on Ion seems like a never ending one! They continue to ship new features and improvements at a steady (and rather fast!) pace. This week @jackpot51 simplified signal handling by adding an atomic bitmask of pending signals and removing the extra signal handling thread. Work by @mmstick on the mdBook based user manual continues, @huntergoldstein added support to allow builtins to be executed as part of pipelines, and made the RawFDs now managed by forked process when possible, along some other bug-fixes. Also in Ion, @bblancha implemented associative arrays, the and and or builtins and he added an option to the drop builtin for dropping arrays. Mr @drosseau added support for stepped ranges while @memoryleak47 implemented command line options for popd.

There was work done on moving the OS related #[cfg] functions to sys by @bb010g and @pithonsmear who added reverse, to_lowercase and to_uppercase to Ion’s word expansion parser.

The XHCI driver got a lot of love by @jackpot51 with a big general refactoring plus the addition of runtime registers, tests for the TLB, a revamp of the events mechanism, fixes of the mapping size and the addition of a lot of debugging. It looks very cool now!

Redoxfs saw the birth of directory symbolic links, a fix for readdir when directories don’t fit in the buffer and a FUSE update allowing setting mtime to earlier times. All of those by @ids1024.

On the TFS department we have for the first time in a while new contributors! This work includes @m4b’s usage of debug_map in chashmap enabling maps pretty printing, @cedenday’s remotion of specks dependency on std and the fix for an infinite loop in chashmap’s scan() by @memoryleak47. Well done people!

@ticki continues improving TFS’s test suite along with an interesting work in reserving reserved special pointers for conc::hazard::State to avoid overlapping with pointers used in Protect. Also, if you are an compression algorithm aficionado you might want to look at @ticki’s notes on zmicro, as they were updated this week.

In coreutils land @ids1024 allowed directory as second argument to ln and implemented octal escapes in tr.

Continuing his last week’s work on userutils @goyox86 made revisions to getty, passwd, login and su in order to update them to coreutils conventions and new APIs while Mr @jackpot51 made updates to getty in order to use PTY to provide line control for raw consoles and vesad.

We end this week’s tour on the cookbook which saw the addition of a status.sh script for checking git modifications, an update.sh one to, well, update everything and the corresponding updates to cook.sh caused by Cargo.lock being now tracked in version control. All of that by @jackpot51.

@ids1024 added recipes for GNU grep, diffutils and made a patch in the git recipe to use ; as PATH separator.

Enjoy the rest, and see you next week!

Kernel

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.

Drivers

Redoxfs

TFS

TFS is a modular, fast, and feature rich next-gen file system, employing modern techniques for high performance, high space efficiency, and high scalability.

Coreutils

Userutils

Netstack

Netutils

Orbital

Cookbook

The cookbook the collection of package recipes of Redox.

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.