This Week in Redox 34

By goyox86 on

This is the 34th 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 last TWiRx of the year!

2017 has been fantastic! The project has been more active and vibrant than ever. The team worked super hard and shipped a ton of interesting stuff! I am preparing a summary of the most interesting things that happened in 2017 and I will be publishing it in a few days. So stay tuned!

Without further ado, here is what happened this last few weeks:

Big news! We were surprised this week by @jackpot51 and his news about the plans to create a foundation to support and foster Redox OS and it’s ecosystem. This is really good news! More on it on the upcoming issues.

In the main top-level repo (redox) netdb (which contains the default /etc/hosts and friends) is now included in the filesystem by default. Also, @jD91mZM2 fixed the rust toolchain to nightly-2017-12-21 as the ring does not work with the latest nightly.

In the kernel there was a super cool page table optimization made by @weclaw1, basically now we use bits 51-61 in the first entries of each page table as a counter for used entries. After this change, checking if page table is empty is a O(1) operation instead of O(n), where n is the number of entries, Neato!

The null and zero daemons which implement the null: and zero: schemes respectively where moved to userspace by @Arcterus, along with a shinny new frename implementation.

As you might suspect, the syscall crate the new, shinny frename call, <3.

Redoxfs got renaming support with the implementation of frename.

Ion, The Redox (and Linux) shell, saw a lot of activity, notably the addition of the exec builtin by @dlrobertson, the addition of a title bar setting and the ability to produce any character using hex code by @jackpot51. @nihathrael was busy adding the @lines() and @reverse() methods while @mmstick made a change to use a static map for simple color lookups, removed Shell::update_variables, added UID and EUID, added support for enabling forks to ignore streams, fixed EAGAIN error on forks and started to work on library/binary separation.

The cookbook saw the birth of a newlib test suite, packages for the recently moved to userspace nulld and zerod daemons, some improvements to the bash along a fixed the raw-bin (which was broken because of the recent changes to redox_users’s API).

On the GUI side of things, Orbtk the widget toolkit saw a change by @FloVanGH who used include_bytes! to load icons on ComboBoxes.

Also UI related, Orbterm, the terminal emulator, received an Ion related fix which unsets the COLUMNS and LINES variables while @jD91mZM2 landed the initial configuration support.

libextra got a new unwrap_or_exit helper meant to simplify a lot of repetitive code in the *utils (and CLI apps) packages.

Finally, in the land of the utils (coreutils and userutils), there were only two minor changes related to using unwrap_or_exit and the new APIs exposed by redox_users.

Thanks to all the people who supported the project this year, from the contributors to the patreons, and all the people that spread the word, and the Rust community for creating such an amazing tool, enabling us our ultimate objective: to create a modern, lightweight fast and above all, a safer operating system.

See you next year!

Redox

Redox: Main repository.

Kernel

The Redox microkernel

Ion

The Ion Shell. Compatible with Redox and Linux.

Cookbook

A collection of package recipes for Redox.

libextra

Extra stuff, we use in the Redox project.

Orbtk

The Orbital Widget Toolkit. Compatible with Redox and SDL2.

Orbterm

Orbital Terminal, compatible with Redox and Linux.

redoxfs

The Redox Filesystem

syscall

Redox Rust Syscall Library

userutils

User and group management utilities

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.