This Week in Redox 36
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. - @jackpot51 Resized
ps2d
bounding box whenvesad
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
andpushd
updatePWD
to fix issue #683. Details here. - @braco Made
README
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. - @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. - @jackpot51 Updated
rust
recipe config. Details here. - @jackpot51 Disabled submodule management and set verbosity level to 2 in rust recipe. Details here.
- @MggMuggins Linked
whoami
toid
. Details here. - @xTibor
sdl
: Updated video to the latest orbital protocol. Details here. - @xTibor Added
netsurf
recipe. Details here. - @xTibor
sdl
: Implement mouse wheel scrolling, middle and right buttons. Details here. - @jackpot51 Updated
netsurf
recipe. Details here. - @jackpot51 Fixed
pkg-config
with autotools programs. Details here. - @xTibor Added
libpng
andlibjpeg
and enabled JPEG support innetsurf
. Details here. - @xTibor
curl
: Enabled zlib support. Details here. - @xTibor
sdl
: ImplementedSDL_RESIZABLE
andSDL_WM_SetCaption
. Details here. - @xTibor
sdl
: Fixed page fault on SDL_Quit. Details here. - @jackpot51 Made some fixes for
pkg-config
. Add libpng to netsurf. Details here. - @jackpot51 Fixed
extrautils
build. Details here. - @xTibor
netsurf
: Enabled freetype support. Details here. - @jackpot51 Added
zlib
dependency tofreetype
. Details here. - @jackpot51 Added include flags to
freetype
. Details here. - @jackpot51 Fixed
expat
link. Details here. - @jackpot51 Fixed
libpng
link. Details here. - @jackpot51 Autogen for
libpng
. Details here. - @xTibor Updated
ffmpeg
to3.4
. Details here. - @xTibor Added
libpng
build dependency tofreetype
. 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. - @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. - @robbycerantola Implemented
PartialEq
forColor
, 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 fasterimage_fast()
. Details here.
Orbutils
The Orbital Utilities. Compatible with Redox and SDL2.
- @MggMuggins Ported to new
redox_users
. Details here. - @xTibor Fixed panic on unicode filenames in
FileManager
. Details here. - @robbycerantola Made a temporary patch for displaying JPG files with
Viewer
. 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. - @MggMuggins Fixed #26. Details here.
- @MggMuggins Implemented
usermod
,groupmod
,userdel
,groupdel
. Also, fixedpasswd
anduseradd
. Details here. - @MggMuggins Ported CLI args parsing to
clap-rs
. Details here. - @MggMuggins Remove
ArgParser
dependency andwhoami
. Details here. - @MggMuggins Implement missing functionality in
groupmod
andusermod
. 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 fornetcfg
. 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.
Handy links
- The Glorious Book
- The Holiest Forum
- The Shiny ISOs
- Redocs
- Fancy GitHub organization
- Our Holy Grail of a Website
- The Extreme Screenshots
New contributors
- @abeaumont 🎂
- @Arzte 🎂
- @braco 🎂
- @chrisbarrett 🎂
- @Coding-Doctors 🎂
- @forbjok 🎂
- @jamessral 🎂
- @PigeonF 🎂
- @victorz 🎂
- @ZakCodes 🎂
- @zen3ger 🎂
If I missed something, feel free to contact me @goyox86 or send a PR to Redox website.