Redox OS 0.5.0
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: