This Week in Redox 33

By goyox86 on

This is the 33rd 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 and welcome back to another issue of TWiRx!

First of all, apologies for disappearing for a while but I’ve been super busy at work.

With that out of the way, let’s start our tour!

The fact that I was super busy these last couple of weeks did not mean that the rest of the team was idle too, in fact, they were super busy which means I have a ton of progress to share!

Lets’s start with the main repo where @sajattack and @HarryU made some fixes to the bootstrap.sh script and @dlrobertson made it possible to keep debug info in a .sym file. Also, @jackpot51 switched us to the smolnetd network stack!

The bootloader that has been updated to Redoxfs version 3.

In lower land of the kernel @jackpot51 implemented fchown and fchmod. He also improved multi-core support while @dlrobertson was busy improving the debugging support by preventing the discarding of the .debug section as well as documenting on how to use gdb.

Keeping things low level (not really because Redox drivers are in userspace ;)), we have the drivers where @jackpot51 made some vesad related updates in ransid and a fix of an error (E0133) on pcid was shipped by @ghatdev.

Also driver-related is ransid, the ANSI terminal driver, who got two new versions released (0.4.4 and 0.4.5) containing an ICH implementation and fixes to DCH.

The system call interface, AKA the syscall crate saw the birth of fchown and fchmod which should make porting easier.

Before departing from the lower level layer we have Redoxfs with it’s new major version, 3, with a new block size of 4096 bytes. This new version also includes changes enabling to set block size programmatically, a simplified disk cache and implementations of fchmod and fchown.

That’s it with low level stuff. Let’s move up in the stack!

What do we have there? Well, unsurprisingly, Ion is the first. As always it was a busy period for the Ion folks. Notably: The addition of the status, bool, and is builtins by @Sag0Sag0 as well as the migration to XDG and the implementation of a “command not found” hook by @jD91mZM2. All of that along @mmstick’s work on implementation of recursive aliases, the start of the migration of the error handling to the failure crate, the implementation of huponexit and the fixed to multi-line array assignments.

Continuing our trip, we stop at the cookbook, our software packages recipes repository. Let’s see, we have new packages for: libzip, libpng, cmatrix, netdb, mdp, TiMidity++ and the GeneralUser GS sound fonts along with a big increase in the set of binaries we use from uutils.

Switching gears to the GUI is Orbclient where @robbycerantola implemented antialiased circles and lines.

Also in the GUI department, the Orbtk toolkit saw new version 0.2.26 including a Grid by @FloVanGH, fixes to label backgrounds, splitting of CSS into separate files, addition of border radii to button to Button and many more from @jackpot51, without forgetting @jsalzbergedu who allowed the user to specify a theme.

Orbutils was the object of @BojanKogoj’s attention this period with updates on the run instructions and the addition of a new shinny Calendar app. Also, @MggMuggins updated all the code related to redox_users as we changed that API quite a lot during the last few weeks.

Next in the queue, is Orbterm, the terminal emulator. Orbterm released two new versions: 0.3.1 and 0.3.2 with improved resize performance by @jackpot51 and the extraction of width and heights into fields by @xTibor.

Sodium, the text editor got a bit of love from @sajattack who made a change to infer file to save to from file opened.

On the utils section, the userutils crate was under heavy refactoring and improvement primarily by @MggMuggins who added groupadd and useradd as well refactored of almost all the rest of the tools. Related to this work is the one done by @goyox86 on the redox_users crate improving error handling and propagation by moving it to the failure crate. @MggMuggins also extended redox_users API with the add_user, add_group and get_gid functions.

The coreutils package got lots of attention too. Here @Mojo4242 simplified dd, @Tommoa made some performance improvements for cat, while @jackpot51 was shipping chown and using more utilities from uutils instead of our own.

Lastly but not least is extrautils who experienced a small change to use cksum from uutils.

Phew! That was a lot of work <3

See you soon!

Redox

Redox: A Rust Operating System.

Bootloader

Redox OS Bootloader.

Book

The Redox book.

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.

Orbclient

The Orbital Client Library. Compatible with Redox and SDL2.

Orbtk

The Orbital Widget Toolkit. Compatible with Redox and SDL2.

Orbutils

The Orbital Utilities. Compatible with Redox and SDL2.

Orbterm

Orbital Terminal, compatible with Redox and Linux.

ransid

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

Redoxfs

The Redox Filesystem.

syscall

Redox Rust Syscall Library.

Sodium

Sodium: The Text Editor.

users

Redox OS APIs for accessing users and groups information.

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.