Skip to content
Snippets Groups Projects

0.9.0 release notes

Merged Ron Williams requested to merge rw_van/website:release090 into master
Compare and Show latest version
1 file
+ 110
65
Compare changes
  • Side-by-side
  • Inline
+ 110
65
+++
title = "Redox OS 0.9.0"
author = "Ron Williams, Ribbon and Jeremy Soller"
date = "2024-09-9"
date = "2024-09-09"
+++
![Programs running in Redox 0.9.0](/img/screenshot/programs1.png)
![Orbital in Redox 0.9.0](/img/screenshot/orbital-0.9.0.png)
<a href="/img/screenshot/programs1.png"><img class="img-responsive" src="/img/screenshot/programs1.png"/></a>
<a href="/img/screenshot/orbital-0.9.0.png"><img class="img-responsive" src="/img/screenshot/orbital-0.9.0.png"/></a>
## Overview
@@ -20,7 +21,6 @@ Here are just a few of the highlights!
- Massive performance and stability improvements
- Now featuring COSMIC Files, Editor and Terminal from the [COSMIC Desktop](https://system76.com/cosmic/)!
- Huge improvements to the portability of Linux/BSD programs
- USB Mouse and Keyboard support (with caveats)
- Wide-ranging clean-up and debugging of the kernel, drivers and PCIe support
## Donations and Funding
@@ -37,39 +37,13 @@ You can also buy Redox merch (t-shirts, hoodies and mugs!) at our [Redox store](
If you know an organization or foundation that may be interested in supporting Redox, please contact us at [donate@redox-os.org](donate@redox-os.org)
## Key Improvements for Release 0.9.0
## Overview Video
- Faster system calls and context switching
- Improved virtual and physical memory management, including the significantly faster `p2buddy` memory allocator
- Improved filesystem performance
- Self-hosting improvements
- Userspace ABI improvements, towards the long-term goal of a stable ABI
- VirtIO drivers for better performance in virtual machines
- Virtualized [TSC](https://en.wikipedia.org/wiki/Time_Stamp_Counter) gives a massive boost to context switching speed in virtual machines
- The [Unix path format](https://en.wikipedia.org/wiki/Path_(computing)#Unix_style) replaced the previous [URI format](https://en.wikipedia.org/wiki/Uniform_Resource_Identifier) used in our system interfaces,
improving compatibility with POSIX/Linux libraries and programs
- Relibc (our C library implementation) is almost 100% Rust (excluding `libm`) and much more complete
- Improvements to the bootloader for more hardware compatibility
- Significant progress on the ARM64 (Aarch64) support, including partial support for Raspberry Pi 3B+
- Contain (Redox's sandbox driver) has been expanded and is available as a demo (`desktop-contain.toml`)
- The first HTTP web server was ported ([Simple HTTP Server](https://github.com/TheWaWaR/simple-http-server))
- Slint, Iced and winit GUI libraries support the Redox's display server (Orbital)
- GNU Nano and [Helix](https://helix-editor.com/) editors were ported
- [RustPython](https://rustpython.github.io/) is working
- New build system options and improvements
- Lots of new documentation, lots of updates to reflect recent changes
- A [FAQ](https://www.redox-os.org/faq/) was added to the website
- A [developer FAQ](https://doc.redox-os.org/book/ch09-07-developer-faq.html) was added to the book
- The Redox software ports (recipes) system was almost completely documented
- The [Libraries and APIs](https://doc.redox-os.org/book/ch09-06-libraries-apis.html) page documented our system APIs and libraries
- The [Performance](https://doc.redox-os.org/book/ch09-10-performance.html) page documented how to profile Redox to improve the performance
- Some sections of the website FAQ were copied to the book for better reading and easy to find information
- [Feature comparison](https://doc.redox-os.org/book/ch04-11-features.html) tables were added to the book
- The [References](https://doc.redox-os.org/book/ch09-08-references.html) page documents the best references to learn Rust, OS development and computer science
- Our [porting strategy](https://www.redox-os.org/news/porting-strategy/) was explained
- Our [development priorities](https://www.redox-os.org/news/development-priorities-2023-09/) were explained
## Images
If you want to avoid the setup work of running Redox on real hardware or in a Virtual Machine,
have a look at our [Software Showcase 1](https://www.youtube.com/watch?v=s-gxAsBTPxA),
where we show off a programs running on Redox. (Embedded video below)
## Running Redox
It is recommended to try Redox OS in a virtual machine before trying on real hardware. See
the [supported hardware](https://www.redox-os.org/faq/#which-devices-does-redox-support) section for details on what
@@ -83,8 +57,8 @@ hardware to select for the best experience.
A 1536 MiB image containing the Orbital desktop environment as well as pre-installed demonstration programs.
- [Real Hardware Image](https://static.redox-os.org/releases/0.9.0/x86_64/redox_demo_x86_64_2024-09-06_1221_livedisk.iso.zst)
- [Virtual Machine Image](https://static.redox-os.org/releases/0.9.0/x86_64/redox_demo_x86_64_2024-09-06_1221_harddrive.img.zst)
- [Real Hardware Image](https://static.redox-os.org/releases/0.9.0/x86_64/redox_demo_x86_64_2024-09-07_1225_livedisk.iso.zst)
- [Virtual Machine Image](https://static.redox-os.org/releases/0.9.0/x86_64/redox_demo_x86_64_2024-09-07_1225_harddrive.img.zst)
The demo image includes these additional packages:
@@ -105,15 +79,42 @@ The demo image includes these additional packages:
A 512 MiB image containing the Orbital desktop environment and some programs for common tasks. Use this if you want to download a smaller image.
- [Real Hardware](https://static.redox-os.org/releases/0.9.0/x86_64/redox_desktop_x86_64_2024-09-06_1221_livedisk.iso.zst)
- [Virtual Machine Image](https://static.redox-os.org/releases/0.9.0/x86_64/redox_desktop_x86_64_2024-09-06_1221_harddrive.img.zst)
- [Real Hardware](https://static.redox-os.org/releases/0.9.0/x86_64/redox_desktop_x86_64_2024-09-07_1225_livedisk.iso.zst)
- [Virtual Machine Image](https://static.redox-os.org/releases/0.9.0/x86_64/redox_desktop_x86_64_2024-09-07_1225_harddrive.img.zst)
### Server
A 512 MiB image containing only the command-line environment. Use this if the desktop image is not working well for you.
- [Real Hardware](https://static.redox-os.org/releases/0.9.0/x86_64/redox_server_x86_64_2024-09-06_1221_livedisk.iso.zst)
- [Virtual Machine Image](https://static.redox-os.org/releases/0.9.0/x86_64/redox_server_x86_64_2024-09-06_1221_harddrive.img.zst)
- [Real Hardware](https://static.redox-os.org/releases/0.9.0/x86_64/redox_server_x86_64_2024-09-07_1225_livedisk.iso.zst)
- [Virtual Machine Image](https://static.redox-os.org/releases/0.9.0/x86_64/redox_server_x86_64_2024-09-07_1225_harddrive.img.zst)
## Key Improvements for Release 0.9.0
- Faster system calls and context switching
- Improved virtual and physical memory management, including the significantly faster `p2buddy` memory allocator
- Improved filesystem performance
- Self-hosting improvements
- Userspace ABI improvements, towards the long-term goal of a stable ABI
- VirtIO drivers for better performance in virtual machines
- Virtualized [TSC](https://en.wikipedia.org/wiki/Time_Stamp_Counter) gives a massive boost to context switching speed in virtual machines
- The [Unix path format](https://en.wikipedia.org/wiki/Path_(computing)#Unix_style) replaced the previous [URI format](https://en.wikipedia.org/wiki/Uniform_Resource_Identifier) used in our system interfaces,
improving compatibility with POSIX/Linux libraries and programs
- Relibc (our C library implementation) is almost 100% Rust (excluding `libm`) and much more complete
- Improvements to the bootloader for more hardware compatibility
- Significant progress on the ARM64 (Aarch64) support, including partial support for Raspberry Pi 3B+
- Contain (Redox's sandbox driver) has been expanded and is available as a demo (`desktop-contain.toml`)
- The first HTTP web server was ported ([Simple HTTP Server](https://github.com/TheWaWaR/simple-http-server))
- Slint, Iced and winit GUI libraries support the Redox's display server (Orbital)
- GNU Nano and [Helix](https://helix-editor.com/) editors were ported
- [RustPython](https://rustpython.github.io/) is working
- New build system options and improvements
- Lots of new documentation, lots of updates to reflect recent changes
- A [FAQ](https://www.redox-os.org/faq/) was added to the website
- Lots of content was added to the [Redox Book](https://doc.redox-os.org/book/) for developers that want to help with porting,
including a [Developer FAQ](https://doc.redox-os.org/book/ch09-07-developer-faq.html), [Libraries and APIs](https://doc.redox-os.org/book/ch09-06-libraries-apis.html), [educational content](https://doc.redox-os.org/book/ch09-08-references.html) and many other topics
- Our [development priorities](https://www.redox-os.org/news/development-priorities-2023-09/) and [porting strategy](https://www.redox-os.org/news/porting-strategy/) were explained
## Stability and Performance Improvements
@@ -126,7 +127,7 @@ Some of his work includes:
- Scheme deamon API encapsulation and refactoring
- Process lifecycle and signal management (our NLnet project)
- Context switching performance improvements
- Implementing the "Stable ABI" strategy (phase I - kernel ABI versioning)
- First steps in implementing the "Stable ABI" strategy
- Being a key resource for the Redox community
You can read about parts of 4lDO2's journey to improve the kernel in the following posts:
@@ -151,29 +152,55 @@ Many thanks to bjorn3 and all our driver contributors!
## Relibc Improvements
The Redox contributors improved relibc a lot, from new functions to important bug fixes.
This increased our software compatibility and fixed many programs, from Rust to C/C++
## Better ARM Support
The contributor uvnn cleaned and improved our ARM support a lot, we would like to thank his massive work in 2023.
Relibc is the Redox C Standard Library, an alternative to the POSIX libc, glibc and musl.
Relibc is written in Rust, and provides standard C and POSIX APIs, as well as many libc utility functions.
It was originally envisioned to be an alternative to libc for both Linux and Redox.
Increasingly, it has been the home for many Redox system services, including such things as fork, exec, pthred, and signal handling,
as we try to move functionality out of the kernel while still supporting POSIX APIs.
Many of the services have an underlying kernel or daemon scheme that implements part of the functionality,
but the scheme may have little of the service's complexity.
Relibc is also now key to our "stable ABI" strategy.
The plan is for files to dynamically link against Relibc, which will provide a stable ABI for the dynamic linker.
New POSIX functions will be added to Relibc, but none will be removed.
That will leave us free to change the implementation of the services as Redox evolves,
but still be able to run binaries compiled for older Redox versions.
4lDO2 has started the first phase of creating the stable ABI,
creating a consistent internal API for current kernel services.
He has also started to refactor relibc to separate services from APIs,
and to make it easier to provide a non-POSIX API for system services in the future.
Not to mention his extensive work on the NLnet-funded Signals and Process Lifecycle project,
including moving signal handling into Relibc.
And thank you to all our other Relibc contributors, who have implemented many libc functions,
tremendously helping our effort to port Linux/BSD software.
Special thanks to Darley Barreto, who has worked hard to remove any remaining C code from libc,
partitioning out libm (which is still largely in C) and replacing our malloc implementation with dlmalloc-rs.
## Better ARM64 Support
The contributor uvnn cleaned and improved our ARM64 support a lot, we would like to thank his massive work in 2023.
Ivan Tan got Redox to boot on the Raspberry Pi 3 B+,
and helped us improve the build tools to support multiple Raspberry Pi devices and other ARM platforms.
ARM is a different challenge than x86_64, because there is little standardization of hardware platforms.
We hope to get Redox running on more ARM hardware in the future.
We hope to get Redox running on more ARM64 hardware in the future.
Jeremy also improved the ARM support to the level where we can start the Orbital session on the QEMU emulation.
## Better USB Support!
## A Note about USB Support
USB support is under heavy development and is a key feature for us, but it did not quite make the cut for this release.
We hope to have an update for USB HID in the near future,
which will provide support for USB mouse and keyboard, as well as game controllers.
This will be followed by USB hub support, which is essential, as many motherboards route some or all USB ports through
an internal hub.
Then we will start work on USB storage.
Jeremy and 4lDO2 improved our USB support to the level where most USB HID devices will work!
Mouse and keyboard support, game controllers and similar devices are now supported.
And special thanks to new contributor Tim Finnegan for key emergency improvements just before the release,
including hot-plugging support, port numbering fixes and USB 2 vs USB 3 protocol differences.
Thanks to Jeremy and 4lDO2 for their work on this, and special thanks to new contributor Tim Finnegan for his emergency work
to try to squeeze this in under the wire.
Note that many computers route their ports through an internal hub, so some ports (maybe all of them) may not work for you.
Hub support is next on the agenda, so hopefully we will support your computer soon, if we don't already!
Watch for [News](https://redox-os.org/news/) about USB!
## VirtIO Support
@@ -189,7 +216,7 @@ You can read about his work on the following posts:
The NLnet-funded Signals and Process Lifecycle work has had the key side-effect of improving the operation of
many software tools.
The Rust and GCC toolchains are able to build basic programs, but with some limitations.
Self-hosting the build is high on our agenda, and these improvements have helped take a huge leap forward.
Self-hosting the build is high on our agenda, and these improvements have helped us take a huge leap forward.
## Software Updates
@@ -201,7 +228,7 @@ greatly simplifying the job of porting applications.
## Rust-first Program Porting!
We focus on Rust programs as they are easier to port.
We have been focusing our initial porting efforts on Rust programs as they are easier to port.
Ribbon created WIP ports for hundreds of emerging Rust programs in 2023,
and many are working with no modification.
@@ -219,13 +246,14 @@ Thanks very much to contributor bpisch for his work on porting many difficult pr
## Notable Programs
- Apache HTTP Server was ported and currently can serve a website on `localhost`
- RustPython was ported and currently is our only working Python interpreter implementation.
- RustPython was ported and is our first working Python interpreter implementation
- GNU Make was updated to a recent version
- The Lua interpreter was ported
- Perl 5 was ported
## Debugging Improvements
The process to debug the recipes of Rust programs was implemented and the debugging documentation was improved.
It's possible to enable the Rust debug symbols and get the backtrace from the build system.
## Build System Improvements
@@ -239,7 +267,7 @@ bjorn3 simplified our filesystem configuration system, reducing duplication and
Our documentation was improved massively thanks to Ron Williams and Ribbon. In 2023-2024 we covered many missing things in the website and book, removed most of the obsolete information and documented almost all build system commands.
Ron Williams and Ribbon did a hard work to make our website and book extremely rich in information for end-users, Rust programming newbies and veterans, and operating system development newbies and veterans.
Ron Williams and Ribbon worked hard to make our website and book extremely rich in information for end-users, Rust programming newbies and veterans, and operating system development newbies and veterans.
Many other contributors offered help with corrections and clarity for both the book and the website.
We are glad to say that our website and book answer most of the end-user and developer questions about Redox.
@@ -289,7 +317,7 @@ Ribbon took the task and created the official Discord server. The Discord messag
This is our first release since the creation of the Redox Nonprofit!
The purpose of the Nonprofit is to help raise and manage funds for Redox development,
to support the community, and to support the Redox brand.
to support the community, and to support the Redox OS name.
We have board meetings every quarter, which are recorded, and our minutes and notes are available in the [Nonprofit repo](https://gitlab.redox-os.org/redox-os/nonprofit).
## Changes
@@ -306,6 +334,7 @@ The most important changes are shown below.
- The memory performance was improved a lot by the introduction of a buddy memory allocator (p2buddy)
- The CPU cost of many system calls was reduced a lot, improving the overral performance
- The `futex` implementation was improved
- The i686 and x86_64 code was cleaned and deduplicated
- The debugging code received fixes
- The kernel image became bootloader-agnostic
@@ -330,7 +359,13 @@ The most important changes are shown below.
### Orbital
- The winit support for client side decorations, hidden windows, maximization, and updating flags after window creation was implemented.
- The winit support for client side decorations, hidden windows, maximization, and updating flags after window creation was implemented
- Videos and music can be played from GUI programs by a mouse double-click
- The Orbital visual was improved
### Ion Shell
- A LSP language server for the Ion's scripting language was implemented
### Programs
@@ -339,6 +374,14 @@ The most important changes are shown below.
- Many programs started to work
- More than 1700 programs and libraries were packaged (work-in-progress)
### Cookbook
- More recipes were converted to TOML
- All recipes were moved to categories
- ABI separation was added for some libraries
- Package policies were added to improve the quality of program packages
- A recipe for the Redox website was added
### Build System
- The `disk=` option was implemented to select the storage interface
@@ -368,6 +411,8 @@ The most important changes are shown below.
- The RedoxFS features were documented
- The current security system was documented
- The "Quick Workflow" page for advanced testers and developers was added
- The instructions to run Redox on VirtualBox were documented
- Huge improvements and cleanup in almost all pages of the book
### Community
Loading