By jackpot51 on

We’re Back!

It has been one year and four days since the last release of Redox OS! In this time, we have been hard at work improving the Redox ecosystem. Much of this work was related to relibc, a new C library written in Rust and maintained by the Redox OS project, and adding new packages to the cookbook. We are proud to report that we have now far exceeded the capabilities of newlib , which we were using as our system C library before. We have added many important libraries and programs, which you can see listed below.

Standard Images

You can download the 0.5.0 images here.

At first glimpse, the standard ISO does not look much different from 0.3.5, our last real release. We still have the same login screen, and the same default background and applications. This, in and of itself, was an accomplishment. Work on relibc was intense, and touched nearly every part of the system.

Once one digs a little deeper, the changes become more obvious. The event system was redesigned to provide correct support for select and poll , and complete memory mapping support was implemented. Pthreads was implemented, and also a number of signal-related system calls. The whole of these changes provided better support for LLVM, and from that, rustc and mesa with llvmpipe .

In addition, there are new images based on new bootloaders for both coreboot and EFI. Significant work has been done to provide libraries for EFI Rust development, and to develop coreboot payloads in Rust. Either bootloader project can be forked and repurposed as desired. See the following projects:

bootloader-coreboot - Coreboot payload that can boot Redox

bootloader-efi - EFI bootloader for Redox

coreboot-table - A parser for the coreboot table.

uefi - UEFI protocol definitions

uefi_alloc - UEFI allocator

uefi_std - UEFI runtime

New Packages

The result of the relibc work can be seen in the massive addition of new packages that can be added to your filesystem.toml when building locally, or installed with pkg install . You can see all available packages and versions here.

audiod - Daemon for mixing audio and delivering it to audio hardware

cairo - Vector graphics renderer

cairodemo - C example using cairo

cpal - Rust audio library

dosbox - DOS emulator

eduke32 - Duke Nukem 3D Engine

ffmpeg - Multimedia framework

freedoom - Free content Doom-style game

gears - Classic OpenGL example

gettext - Localization library

gigalomania - Real-time strategy game

glib - System libraries for GTK+ and GNOME

glium - OpenGL wrapper for Rust

glutin - OpenGL context creation in Rust

gstreamer - Multimedia framework

harfbuzz - Text shaping library

hematite - Minecraft viewer in Rust

ipcd - IPC daemon providing shared memory and channels (similar to UNIX sockets)

lci - LOLCODE interpreter in Rust

libc-bench - C library tests

libffi - FFI library

libiconv - Implementation of iconv

libogg - Library for parsing OGG containers

liborbital - C library for accessing Orbital window manager

libsodium - Cryptography library

libvorbis - Library for decoding and encoding Vorbis audio

llvm - Compiler framework

mesa - 3D graphics library

mesa_glu - OpenGL utility library

mgba - GBA emulator

ncdu - NCurses disk usage

openjazz - Jazz Jackrabbit engine

openttd - Remake of Transport Tycoon Deluxe, a business simulation game

openttd-opengfx - OpenTTD graphics

openttd-openmsx - OpenTTD music

openttd-opensfx - OpenTTD sound effects

osdemo - OSMesa example

pcre - Perl compatible regular expressions

pixman - Low-level pixel manipulation library

powerline - Rust implementation of powerline

prboom - Doom engine

relibc - C library in Rust

ripgrep - extremely fast search tool

rodioplay - simple sound player using rodio

rust-cairo - Rust library for using cairo

rust-cairo-demo - Rust example using rust-cairo

schismtracker - Reimplementation of Impulse Tracker, a music creation program

scummvm - Interpreter for numerous adventure games

sdl2 - Video game abstraction layer

sdl2_gears - Example of using SDL2 and associated libraries

sdl2_image - SDL2 image library

sdl2_mixer - SDL2 sound mixing library

sdl2_ttf - SDL2 font library

sdl_gfx - SDL graphics library

sdl_image - SDL image library

sdl_mixer - SDL sound mixing library

sdl_ttf - SDL font library

sopwith - Port of Sopwith, a side scrolling shooting game, to SDL

syobanaction - Cat Mario

ttf-hack - Hack typeface

webrender - GPU-based renderer, compiles but renders black screens on Redox

winit - Window handling library in Rust

Code Changes

Please use the following links to see all the code changes since 0.3.5:

redox

cookbook

kernel

relibc is completely new

orbtk is going through a redesign

Many other repositories have changed, but are not tracked in the main Redox repository. I encourage you to browse through our projects on the Redox OS GitLab

Discussion

Please see the following links for discussion: