By goyox86 on

This is the 36th 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?

Hello again!

Welcome to another issue of TWiRx!

First of all, Sorry for the gap between the last release and this one. It has just been crazy at work!

Maybe the most exciting news for this period is the birth of a new project, relibc. Yes!, A C standard library written in Rust. Why? Mainly because it’s easier to develop than newlib (our current C library), better cross platform support and it has the potential to improve security. It’s a cool project with great potential and needs tons of help! We would be happy to mentor you, just send a mail to info@redox-os.org and we will give you access to our Mattermost or just ask on the Discourse forum for more info.

As usual, we start our journey from the bottom of the stack making our way up to userland. There at the bottom, we have the kernel, where Mr @jackpot51 switched to a linked list allocator and added the ACPI cargo feature. He also shipped a fix for a bug the signals mechanism. Basically, if a signal was delivered while the process was blocked, it would handle the signal and then go back to an unblocked state.

Moving up a bit, we get to the drivers level, where we have a couple of fixes for vesad and ps2d by @xTibor and @jackpot51 respectively. The vesad one was related to Unicode character input and the one in ps2d was related to resizing ps2d bounding box when vesad resizes. Also, @dlrobertson allowed PCI config space parsing to handle types.

One of the surprising news on this issue, is related to Ion, Redox’s shell. There has been significantly less activity on it, mainly because of the fact that @mmstick Ion’s maintainer and original creator is transitioning to a new job. He has been busy with System76-related Rust projects. Particularly distinst, and recently a GTK3 front-end for muff. We are glad he is doing great!

Anyways, here is what happened in Ion in the last few weeks: @abeaumont fixed some typos in the manual, @Sag0Sag0 made popd / pushd update PWD and @forbjok fixed cd’ing into a symlinked directory.All of this, along various issues fixes by @Sag0Sag0 and @zen3ger.

In the cookbook front, most of the activity came from @jackpot51 and @xTibor in the shape of updates and tweaks for the rust and cargo packages, a new package for netsurf plus lots of improvements to the sdl package: updates video to the latest orbital protocol, support for mouse wheel scrolling and middle/right buttons, the implementation of SDL_RESIZABLE and SDL_WM_SetCaption along with a fix for a page fault on SDL_Quit .

Our next station is GUIs where Orbclient, the Orbital client library, saw a few improvements, such as the implementation of faster image rendering and the implementation of parallel rendering and window overwriting by @robbycerantola.

Orbutils was ported to the most recent version of the users crate by @MggMuggins, FileManager got a fix for a panic on Unicode filenames.

Orbterm, Redox’s terminal emulator (also compatible with Linux) saw a fix for Unicode character input by @xTibor.

Also GUI related, the Sodium text editor compilation was fixed by @jamessral.

Our users crate has been under a lot of activity, mostly from @MggMuggins who implemented: removal of users and groups, “unset” passwords (not to be confused with blank ones), improvements of users and groups writing, timeouts and lastly he brought iterators over users and groups back. Nicely done!

As usual, our last stop is on the *_utils crates: Userutils, Coreutils and Netutils.

Userutils was ported to users ’s new API. It got also implementations for usermod , groupmod , userdel and groupdel added to the migration from our own ArgParser to the more powerful clap-rs crate. All of this by @MggMuggins.

In Coreutils, @dlrobertson made the update to the new users API.

Finishing with Netutils where @batonius implemented dhcpd support for netcfg and @Nickforall fixed deprecation warning on the ping and dns binaries.

Now I leave you with the details!

See you soon!

Kernel

The Redox microkernel

@jackpot51 Updated lock file. Details here.

@jackpot51 Updates for new nightly. Details here.

@jackpot51 Added linked list allocator with automatic resizing, fixed memory leaks in exec and removed some warnings. Details here.

@jackpot51 Removed some debug messages. Details here.

@jackpot51 Added the ACPI feature. Details here.

@jackpot51 Fixed the delivery of signals when a signal uses the default handler, make context status update on every switch. Details here.

Drivers

Redox OS Drivers

@jackpot51 Removed unnecessary parenthesis. Details here.

@jackpot51 Removed unnecessary parenthesis. Details here.

@jackpot51 Removed unnecessary unsafe. Details here.

@dlrobertson Allowed using a device ID range in TOML config. Details here.

@xTibor Fixed Unicode character input in vesad . Details here.

. Details here. @jackpot51 Resized ps2d bounding box when vesad resizes. Details here.

bounding box when resizes. Details here. @dlrobertson Allowed PCI Config space parsing to handle types. Details here.

@jackpot51 Fixed BAR variables. Details here.

Ion

The Ion Shell. Compatible with Redox and Linux.

@abeaumont Fixed some typos in the manual. Details here.

@Sag0Sag0 Made popd and pushd update PWD to fix issue #683. Details here.

and update to fix issue #683. Details here. @braco Made README clearer. Details here.

clearer. Details here. @forbjok Fixed cd’ing into a symlinked directory losing the original path. Details here.

@chrisbarrett Made some small grammatical fixes to readme. Details here.

@PigeonF Fixed color code in setup.ion. Details here.

@Sag0Sag0 Made pushd change directory. Fix issue #697. Details here.

change directory. Fix issue #697. Details here. @zen3ger Fixed doctests. Details here.

@Sag0Sag0 Fix issue #699. Details here.

@Sag0Sag0 Added dummy --login argument to ion. Details here.

Cookbook

A collection of package recipes for Redox.

@jackpot51 Updated branch to use for Redox rust. Details here.

@jackpot51 Updated branch of cargo. Details here.

@jackpot51 Used llvm-tblgen-4.0 to fix build on newer Ubuntu. Details here.

to fix build on newer Ubuntu. Details here. @jackpot51 Updated rust recipe config. Details here.

recipe config. Details here. @jackpot51 Disabled submodule management and set verbosity level to 2 in rust recipe. Details here.

@MggMuggins Linked whoami to id . Details here.

to . Details here. @xTibor sdl : Updated video to the latest orbital protocol. Details here.

: Updated video to the latest orbital protocol. Details here. @xTibor Added netsurf recipe. Details here.

recipe. Details here. @xTibor sdl : Implement mouse wheel scrolling, middle and right buttons. Details here.

: Implement mouse wheel scrolling, middle and right buttons. Details here. @jackpot51 Updated netsurf recipe. Details here.

recipe. Details here. @jackpot51 Fixed pkg-config with autotools programs. Details here.

with autotools programs. Details here. @xTibor Added libpng and libjpeg and enabled JPEG support in netsurf . Details here.

and and enabled JPEG support in . Details here. @xTibor curl : Enabled zlib support. Details here.

: Enabled zlib support. Details here. @xTibor sdl : Implemented SDL_RESIZABLE and SDL_WM_SetCaption . Details here.

: Implemented and . Details here. @xTibor sdl : Fixed page fault on SDL_Quit. Details here.

: Fixed page fault on SDL_Quit. Details here. @jackpot51 Made some fixes for pkg-config . Add libpng to netsurf. Details here.

. Add libpng to netsurf. Details here. @jackpot51 Fixed extrautils build. Details here.

build. Details here. @xTibor netsurf : Enabled freetype support. Details here.

: Enabled freetype support. Details here. @jackpot51 Added zlib dependency to freetype . Details here.

dependency to . Details here. @jackpot51 Added include flags to freetype . Details here.

. Details here. @jackpot51 Fixed expat link. Details here.

link. Details here. @jackpot51 Fixed libpng link. Details here.

link. Details here. @jackpot51 Autogen for libpng . Details here.

. Details here. @xTibor Updated ffmpeg to 3.4 . Details here.

to . Details here. @xTibor Added libpng build dependency to freetype . Details here.

Orbtk

The Orbital Widget Toolkit. Compatible with Redox and SDL2.

@robbycerantola Made an update to use orbclient 0.3.13 with drawing mode property. Details here.

with drawing mode property. Details here. @jackpot51 Released v0.2.27. Details here.

@ZakCodes Filtered example fix. Details here.

@ZakCodes Fixed issue #84. Details here.

Orbclient

The Orbital Client Library. Compatible with Redox and SDL2.

@FloVanGH Updated to sdl2 0.31.0. Details here.

0.31.0. Details here. @robbycerantola Implemented PartialEq for Color , fixed compiler warnings. Details here.

for , fixed compiler warnings. Details here. @robbycerantola Implemented fast image rendering with falling back to legacy function. Details here.

@robbycerantola Implemented parallel rendering and window overwriting. Details here.

@robbycerantola Added an image opaque drawing method. Details here.

@robbycerantola Implemented window drawing mode property . Details here.

@jackpot51 Released v0.3.13. Details here.

@jackpot51 Fixed time dependency. Details here.

@robbycerantola Implemented faster pixel() and even faster image_fast() . Details here.

Orbutils

The Orbital Utilities. Compatible with Redox and SDL2.

@MggMuggins Ported to new redox_users . Details here.

. Details here. @xTibor Fixed panic on unicode filenames in FileManager . Details here.

. Details here. @robbycerantola Made a temporary patch for displaying JPG files with Viewer . Details here.

. Details here. @jackpot51 Deleted rust-toolchain . Details here.

Orbterm

Orbital terminal, compatible with Redox and Linux

@xTibor Fixed unicode character input. Details here.

@jackpot51 Prepared for using alpha in terminal. Details here.

@jackpot51 Implemented alpha blend orbterm. Details here.

Sodium

Sodium: The Text Editor

@jamessral Removed extra parenthesis around function argument to compile. Details here.

Users

Redox OS APIs for accessing users and groups information

@MggMuggins Implemented remove. Details here.

@MggMuggins Implemented unset. Details here.

@MggMuggins Improved write. Details here.

@MggMuggins Implemented timeouts, iters and some bugfixes. Details here.

Userutils

User and group management utilities

@MggMuggins Ported to redox_users break-api. Details here.

break-api. Details here. @MggMuggins Fixed #26. Details here.

@MggMuggins Implemented usermod , groupmod , userdel , groupdel . Also, fixed passwd and useradd . Details here.

, , , . Also, fixed and . Details here. @MggMuggins Ported CLI args parsing to clap-rs . Details here.

. Details here. @MggMuggins Remove ArgParser dependency and whoami . Details here.

dependency and . Details here. @MggMuggins Implement missing functionality in groupmod and usermod . Details here.

Coreutils

The Redox coreutils.

@dlrobertson Updated to use new redox_users API. Details here.

Netutils

Network Utilities for Redox

@batonius Implemented dhcpd support for netcfg . Details here.

support for . Details here. @Nickforall Fix deprecation warning on ping and dns binaries. Details here.

ptyd

Psuedo-terminal daemon

@jackpot51 Fix #2 by blocking if more than 64 packets are collected. Details here.

Book

The Redox book

@xTibor Various updates and fixes. Details here.

@victorz Fixed grammar in book.json. Details here.

@dlrobertson Random updates. Details here.

@MggMuggins Cleared up the documentation for setting up and compiling. Details here.

@Nickforall Fixed the “preparing the build” chapter linking back to a previous chapter as next step. Details here.

New contributors

If I missed something, feel free to contact me @goyox86 or send a PR to Redox website.