This Week in Redox 29

By goyox86 on

This is the 29th 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 again! Did you missed us?

We hope you did!

Anyways, I have good news for you: it was only me! Because the rest of the team was super busy making Redox even awesomer ;)

There is a lot of stuff packed on this one. So… Buckle up!

First things first: During my absence there were 3 new releases 0.3.1, 0.3.2 and 0.3.3 focused on better POSIX compatibility, improved ACPI support and lower memory usage respectively (Along many other things I’m gonna cover next).

We also have a new login window and a file dialog thanks to @jackpot51.

Other important news is that we are now maintaining the RustType crate, which can be found here, under the redox-os Github organization.

Let’s start the more detailed view with the kernel where we have the huge ACPI revamp done by @CWood1 which implements (among other things) a full fledged AML parser. Mr @jackpot51 was busy improving the debugging code, implementing events on pipe (which in turn adds up to mios crate support AKA: this small sample now works in Redox). He also fixed the mapping of TLS (which now page aligned) as well as improved error information and cleaned the interrupt macros.

On the Ion front @glowing-chemist added support for polish notation, also, and thanks to @mmstick Ion now supports 8 color, 16 color, 256 color, and 24-bit color using standard ANSI encodings. He also added support for the $SWD and $MWD environment variables. A new exists builtin was added by @BafDyce and @nivkner made some refactoring on the match statements. But changes don’t stop there, read the details and you will see that there is a lot of other interesting stuff ni there!

The drivers saw a bunch of updates and fixes mostly by @jackpot51 who made some fixes to pcid, a change on Intel8254x network driver in order use a spin for reset instead of yielding along with the addition of a method for resizing display in bgad. He also disabled the XHCI driver due to lockups and removed some unused extern crates statements.

The RedoxFS got some attention from @ids1024 who made it not an error to open a directory without O_DIRECTORY or O_STAT, and futimens not to require O_RWONLY/O_RDWR. Also, we are temporarily using a nightly friendly version of the spin crate.

TFS land was visited by @ticki and among the highlights are: the introduction of a new control-flow crate to control control-flow outside closures, a fix for several compile errors in atomic-hashmap, the addition of conc::Guard::{try,maybe}_map followed by the switch to parking_lot in conc.

The cookbook (our collection of packages) was also very active during this period! @7h0ma5 added recipes for ncurses and readline while @ids1024 added one for perl and @xTibor added ffmpeg. python was updated to a new version and a new --debug argument was added to cook.sh (the package builder). Last but no least! @AgostonSzepessy added support for dependency info to packages. Nice!

Also, there are big news in coreutils: We are now using coreutils versions of the utilities where it makes sense. For example: @ids1024 removed our versions of chmod, env, and ls opening room for the better versions on uutils (our fork of coreutils). While all of that was being done, @dabbydubby was improving pwd’s description, reformatting, restructuring and fixing few bugs in mv and afterwhile porting those changes over to cp.

Finally on the GUI side of things Orbital experienced bunch of unused code removal and improvement of z-buffering (by @jackpot51) while Orbtk saw the birth of a new file dialog, got the ability to convert an orbclient window into an orbtk one, the addition of borders around menu entries and some fixes on textbox’s scrolling.

Bonus: Few days ago we saw this message from @jackpot51 on the Redox chat: “Gentlemen, I am going to port libservo”. Yes! some libservo work is on the way <3

Bonus 2: I also woke up one day and saw this MESA fork.

Exciting times! Aren’t they? Stay tunned for more!

Kernel

The Redox microkernel.

Ion

The Ion Shell. Compatible with Redox and Linux.

Drivers

Redox OS Drivers

Redoxfs

The Redox Filesystem

TFS

Next Generation File System

Cookbook

A collection of package recipes for Redox.

Userutils

User and group management utilities.

Coreutils

The Redox coreutils.

Netstack

Redox OS network stack.

Netutils

Network Utilities for Redox.

Extrautils

Extra utilities for Redox (and Unix systems).

Orbital

Redox Windowing and Compositing System.

Orbtk

The Orbital Widget Toolkit. Compatible with Redox and SDL2.

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 the Redox website.