This Week in Redox 31

By goyox86 on

This is the 31st 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.

Don’t forget that if you would like to see any package ported to Redox or are working porting one, please jump on the chat and we are there to help you! Also, suggestions on packages you would like to see to ported are more than welcome!

What’s new in Redox?

TL;DR

Hello and welcome to another issue of This Week in Redox!

The Last two weeks we have been busy working on some cool and exciting stuff!

Let’s start with the no-so-exciting things. That is: bootloader and drivers got their LICENSE file.

Moving on to the super exciting territory we have @jackpot51 (who else!?), who has been pretty busy standing on @ids1024’s shoulders and his GSoC work on self hosting. He has been implementing the remaining tasks and fixing the outstanding issues preventing us to run rustc and cargo inside Redox. This is a big deal! As is the crucial step on making Redox OS self hosted.

kernelwise @jackpot51 implemented interrupting on signals on pipes. He also made a hack to allow rustc to wait on non-child processes and incorporated a new sys:syscall scheme with the objective of seeing active system calls. He also migrated the kernel from the collections library and shipped many fixes to waitpid.

On the Ion side of things (and pretty much as always) we have a ton of stuff! But without a doubt, the highlights are for @chrisvittal’s implementation of multiple redirection, enabling us to do things like: cmd <file1 <file2 ^>> err-log > output | cmd2 (Go see the PR for more info). There were also a number of performance optimizations on assignments and parsing (remember that one of Ion’s goals is to remain at minimum as fast as the Dash shell) along better process expansion support (via forking). Lastly, @Shiwin implemented $regex_replace while @mmstick implemented !!, !$ !0, !^ and !*.

There was lots of activity on the cookbook too: The addition of man pages by @jackpot51, @NilSet adding a recipe for PrBoom (Yes! we almost run doom!). Mr @goyox86 adding support for the recently released fd, @sajattack porting termplay finishing up with @xTibor who added a vttest recipe.

Orbterm saw @jackpot51 updating ransid which improved significantly ANSI compliance. Versions 0.2.0, 0.2.1 and 0.2.2 were also released while @xTibor made some updates to use the new ransid color handling.

As mentioned before, ransid, our backend for terminal emulators got some love. It’s ANSI compliance was improved significantly. Notably, versions 0.3.1, 0.3.2, 0.3.3 and 0.3.4 shipped improvements to unknown escapes parsing, corrections on csi handling of missing escapes and fixes for cursor movement csis.

Stopping on the utilities station we have: userutils, coreutils and extrautils getting man pages and netutils’s dhcpd gaining the ability to broadcast packets.

Our C standard library, newlib (our fork of newlib with Redox support, which we implement in Rust :)) saw some networking header additions additions by @sajattack.

Last but not least! @ids1024 is working on a Rust port of cook.sh (our package builder script). Take a look at the issue tracking it here and join the design discussion!

Looking forward to a next issue potentially talking about rustc and cargo running on Redox <3.

See you soon!

Bootloader

Redox OS Bootloader.

Kernel

The Redox microkernel.

Ion

The Ion Shell. Compatible with Redox and Linux.

drivers

Redox OS Drivers.

cookbook

A collection of package recipes for Redox.

Orbterm

Orbital Terminal, compatible with Redox and Linux.

ransid

Rust ANSI Driver - a backend for terminal emulators in Rust.

Userutils

User and group management utilities.

Coreutils

The Redox coreutils.

Extrautils

Extra utilities for Redox (and Unix systems).

Netutils

Network Utilities for Redox.

Newlib

A fork of newlib from git://sourceware.org/git/newlib-cygwin.git with Redox support.

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.