This Week in Redox 35

By goyox86 on

This is the 35th 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 people! Welcome to the 35th edition of TWiRx!

We started this year with @jackpot51 being featured on the Changelog talking about building a secure operating system in Rust and about Redox in general. Make sure you listen to the episode, it’s pretty good! (specially the part on which Jeremy says SPOILER ALERT!: “Redox is not going away”)

This month we’ve also got the Redox Crash Challenge going on. An initiative to attempt to cause the system to:

Basically, a fun way of testing and discover bugs in the system, and ultimately hardening it!

So far, it has been productive! We have found (and successfully fixed) few bugs:

Without further ado, let’s start with this week’s work!

We begin with the kernel, where SIGCONT/SIGSTOP signals were implemented, a bug in the TLS when forking was fixed (this one was causing some programs to crash and/or miss behave), along with the implementation of waitpid on PGID.

One interesting thing I saw in the kernel was the start of the work on PTI (Page Table Isolation) as a mitigation for the recently discovered Meltdown vulnerability. I was gladly impressed while looking at the changes, how small, isolated they were. All of this, without mentioning the time frame in which they were made. One of the advantages of having a microkernel!

Also in the low level, syscall, our system call interface crate, got a bunch of additions like: WUNTRACED/WCONTINUED, wif* functions, and a few more wait calls.

A quick look at Redoxfs reveals a small change to enter into the null namespace by @jackpot51.

Moving up to the drivers @ids1024 have been busy working on an ATAPI driver which gives support for CD-ROM drives along with an implementation of the ISO-9660 filesystem (the standard filesystem for CD-ROM drives). I think is pretty cool!

On the Ion shell We saw the addition of the isatty builtin by @Sag0Sag0 as well as many small fixes and improvements.

In the Cookbook, the collection of package recipes for Redox, @zachlute added the logd package which implements a log daemon located at log: for collecting all log output.

During this period, I saw a lot of activity on the GUI front, particularly Orbtk and Orbutils namely: Changes to allow apps to add classes and pseudo-classes to widgets, the addition of a Style trait to remaining widgets, correction on the initialization of fonts in WindowBuilder, the implementation of KeyPressed and KeyReleased events plus some other goodies. Good work @blackle and @FloVanGH!

Lastly (but not least) we have the Userutils Coreutils and Extrautils with bugfixes for su, updates to README and some unused code removal respectively.

Looking forward to see you soon in the next issue of TWiRx.

BTW! keep trying to crash Redox and report bugs!

Redox

Redox: A Rust Operating System - Main Repo

book

The Redox book

kernel

The Redox microkernel

Drivers

Redox OS Drivers

Syscall

Redox Rust Syscall Library

Ion

The Ion Shell. Compatible with Redox and Linux.

Cookbook

A collection of package recipes for Redox.

Orbtk

The Orbital Widget Toolkit. Compatible with Redox and SDL2.

Orbutils

The Orbital Utilities. Compatible with Redox and SDL2.

Redoxfs

The Redox Filesystem.

Userutils

User and group management utilities.

Coreutils

The Redox coreutils.

Extrautils

Extra utilities for Redox (and Unix systems).

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.