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
2 files
+ 332
19
Compare changes
  • Side-by-side
  • Inline
Files
2
+ 332
19
@@ -4,33 +4,346 @@ author = "Jeremy Soller and Ron Williams"
date = "2024-04-18"
+++
(The computers image needs to be uploaded, like the previous release it should show the Jeremy computers running the current Redox version)
![Orbital in the 0.9.0 version](/img/screenshot/orbital-0.9.0.png)
## Overview
It's been a while since we had our last release, but we have been heads-down working hard this whole time,
and Release 0.9.0 is packed with improvements. Here are just a few of the highlights!
and Release 0.9.0 is packed with many improvements and cleanup.
We would like to thank all maintainers and contributors a lot by their hard work that make this release possible.
Here are just a few of the highlights!
- Huge improvements to portability of Linux command-line programs
- Phase one of creating of a stable API
- Improved paging and memory management, and faster system calls
- Wide-ranging clean-up and debugging of the kernel, PCIe support and drivers
- USB HID support
- Massive performance improvements
- Huge improvements to the portability of Linux/BSD programs
- Phase-One of the creation of a stable API
- Improved paging and memory management
- Faster system calls
- Wide-ranging clean-up and debugging of the kernel, drivers and PCIe support
- Improved USB HID support
- Improved filesystem performance
- Our [porting strategy](https://www.redox-os.org/news/porting-strategy/) was explained
- VirtIO drivers for better performance in virtual machines
- Relibc (our `libc` replacement) is now almost 100% Rust and much more complete
- A 100% Rust `libm`
- Significant progress on Aarch64/Arm64, including partial support for Raspberry Pi 3B+
- Redox's sandboxing driver Contain has been expanded and is available as a demo
- Slint, Iced and winit GUI libraries support the Redox Orbital Window Manager
- Key Cosmic Desktop apps available as demos
- Nano and Helix editors now supported
- RustPython available as a demo
- Many Build system improvements
- Tons more documentation, including examples, troubleshooting and a FAQ
- Relibc (our C library implementation) is now almost 100% Rust and much more complete
- 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`)
- Slint, Iced and winit GUI libraries support the Redox's display server (Orbital)
- Most COSMIC Desktop programs were ported
- 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, a complete book review and cleanup, almost 100% up-to-date information
- 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 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
- Now the website say that we aim to be a complete Linux/BSD alternative
## Stability and Performance Improvements
Jeremy Soller and 4lDO2 did massive improvements to stability and security, fixed many bugs, from easy to very hard.
We would like to thank 4lDO2 a lot for his massive work to improve the kernel and user-space daemons.
You can read about part of the 4lDO2 journey to improve the kernel on the following posts:
- [RSoC: on-demand paging](https://www.redox-os.org/news/kernel-8/)
- [RSoC: on-demand paging II](https://www.redox-os.org/news/kernel-9/)
- [Significant performance and correctness improvements to the kernel](https://www.redox-os.org/news/kernel-10/)
Jeremy rarely write posts and prefer to contribute in silence and report the progress later in the Matrix community.
## Software Updates
Our toolchains received some updates and currently our Rust, C and C++ toolchains use the latest stable versions or close to it, it's a great achievement compared to other OS projects that use very old toolchain versions (limiting the program compatibility)
Beyond the toolchain updates, we also updated important cross-platform libraries used by most programs and some important programs.
## Rust-first Program Porting!
We focus on Rust programs as they are more easy to port, Ribbon quickly ported hundreds of emerging Rust programs in 2023.
## C/C++ Programs
Ribbon also partially-ported the classic and widely-used C and C++ programs and libraries, he focused to package the most used (and best) programs of the Linux/BSD world.
Currently there are around 1,700 work-in-progress software ports, we need to write cross-compilation scripts and port/update some libraries to make them work.
## 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
uvnn cleaned and improved our ARM support a lot, we would like to thank his massive work in 2023.
We also would like to thank Ivan Tan to achieve the Redox support on the Raspberry Pi 3 B+ !
Jeremy also improved the ARM support to the level where we can start the Orbital session on the QEMU emulation.
## Better PCI Express Support
We would like to thank bjorn3 for his excellent work to improve our PCI Express support.
## Better Driver Organization and Code Cleanup
bjorn3 cleaned our driver code, deduplicated some drivers and moved our driver code to category folders, like Linux and BSD.
## Better USB Support!
Jeremy and 4lDO2 improved our USB support to the level where most USB HID devices can work!
Like mouse, keyboards, game controllers and other things.
## VirtIO Support
Anhad Singh from the [Aero](https://github.com/Andy-Python-Programmer/aero) project participated in our RSoC program from 2023 and implemented the VirtIO support on Redox.
He wrote some VirtIO drivers and improved the VirtIO GPU 2D acceleration to speed up our QEMU performance.
You can read about his work on the following posts:
- [RSoC: virtio drivers - 1](https://www.redox-os.org/news/rsoc-virtio-1/)
- [RSoC: virtio drivers - 2](https://www.redox-os.org/news/rsoc-virtio-2/)
## Build System Improvements
We would like to thank Ron Williams, bjorn3, Jeremy and 4lDO2 for their massive improvements to our build system configuration and tooling.
Ron Williams and Jeremy implemented new commands to ease the life of developers, packagers and testers.
bjorn3 simplified our filesystem configuration system, reducing duplication and our maintenance cost.
4lDO2 improved the performance of our recipe verification and image building process.
## Documentation
Our documentation was improved massively thanks to Ron Williams and Ribbon, in 2023 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.
We are glad to say that our website and book answer most of the end-user and developer questions about Redox.
You can read about the Ribbon's documentation adventure on [this](https://www.redox-os.org/news/documentation-improvements/) post and on the monthly updates.
## This Month in Redox
We started monthly updates in 2024 to improve our status report for the community and bring more excitement to Redox, these posts offer more details about the changes present on this post.
You can read them on the following links:
- [This Month in Redox - January 2024](https://www.redox-os.org/news/this-month-240131/)
- [This Month in Redox - February 2024](https://www.redox-os.org/news/this-month-240229/)
- [This Month in Redox - March 2024](https://www.redox-os.org/news/this-month-240330/)
- [This Month in Redox - April 2024](https://www.redox-os.org/news/this-month-240430/)
- [This Month in Redox - May 2024](https://www.redox-os.org/news/this-month-240531/)
- [This Month in Redox - June 2024](https://www.redox-os.org/news/this-month-240630/)
- [This Month in Redox - July 2024](https://www.redox-os.org/news/this-month-240731/)
- [This Month in Redox - August 2024](https://www.redox-os.org/news/this-month-240831/)
## Software Showcase
We started a series of videos showing many programs running on Redox!
<iframe width="800" height="640" src="https://www.youtube.com/embed/s-gxAsBTPxA?si=EbIRLwIrnuiwfvYZ" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
## Matrix
In 2023 we migrated from Mattermost to Matrix to fix some management problems, this big change helped us to improve many aspects of our community interaction.
The most important thing that Matrix fixed was the account creation approval for the chat and GitLab. Before Matrix you would need to wait the Mattermost approval of your account, but if the Mattermost email server went offline your account would never be approved, thus it was flooded with emails asking why their account was not approved, while Jeremy Soller didn't receive any emails.
In Matrix we fixed the account approval using the "Join Requests" room, where each new user request to join the Matrix space, the same for new GitLab accounts where each new contributor send its GitLab nickname for approval.
You can read more about it on [this](https://www.redox-os.org/news/community-announcements-1/) post.
## Discord
A Discord server was a long demand of the community because it's more convenient for most people, we didn't use Discord as the official platform because it's not free and open-source.
Ribbon took the task and solved the demand, the Discord messages are bridged to Matrix and the moderation system is the same of Matrix.
## Organization Improvements
We also did many other organization improvements to save time in most tasks and satisfy more end-users and developers.
<!--
## Discussion
To contact us, join in our Matrix space on [this](https://www.redox-os.org/community/) page.
- [Hacker News]()
- [Mastodon]()
- [Patreon]()
- [Reddit /r/redox]()
- [Reddit /r/rust]()
- [Redox OS Chat]()
- [X (previously known as Twitter)]()
-->
## Images
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
hardware to select for the best experience.
Remember to verify the images checksum with the `sha256sum` tool, use [this](https://static.redox-os.org/releases/0.9.0/x86_64/SHA256SUM) link for the x86_64 images.
## Compression
The images are compressed using the [Zstd](https://github.com/facebook/zstd) algorithm, to learn how to decompress them read [this](https://doc.redox-os.org/book/ch02-01-running-vm.html#decompression) section.
### Demo
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)
The demo image includes these additional packages:
- [DOSBox](https://www.dosbox.com/) - A DOS emulator
- Games using PrBoom:
- DOOM (Shareware)
- [FreeDOOM](https://freedoom.github.io/)
- [Neverball and Neverputt](https://neverball.org/) - OpenGL games using LLVMPipe (performance may vary!)
- [orbclient](https://gitlab.redox-os.org/redox-os/orbclient) - An Orbital client demo
- [Periodic Table](https://gitlab.redox-os.org/redox-os/periodictable) - A program for viewing information about chemical elements
- [Terminal games](https://gitlab.redox-os.org/redox-os/games) - Command-line games
- [rodioplay](https://gitlab.redox-os.org/redox-os/rodioplay) - A FLAC/WAV music player
- [Sodium](https://gitlab.redox-os.org/redox-os/sodium): A vi-like text editor
- [sopwith](http://www.sopwith.org/): A classic PC air combat game
- syobonaction - A freeware platforming game
### Desktop
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)
### 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)
## Changes
There have been quite a lot of changes since 0.8.0. We have manually enumerated
what we think is important in this list. Links to exhaustive source-level change
details can be found in the [Changelog](#changelog) section.
## In Depth
We should do a bit of a deep dive on some key topics, and we should link to other news posts where they exist.
The most important changes are shown below.
### Kernel
- The memory performance was improved a lot by the introduction of a new buddy allocator (p2buddy)
- The CPU cost of many system calls was reduced, improving the overral performance
- The kernel image became bootloader-agnostic
### RedoxFS
- The reading and writting performance was improved a lot by the introduction of the "records" concept, where RedoxFS use an optimal block size for the context switch
- The context switch roundtrips were reduced
- The copy-on-write reliability was improved with some bugs fixed
### System API
- All system components migrated from `redox_syscall` to `libredox` to have a stable ABI
- The scheme path format is now converted at runtime (relibc/kernel) to avoid the patching of many libraries and programs, the Redox system interfaces are treated like the Linux target now
- New user-space schemes were introduced
- Many improvements to the scheme interface
### Programs
- A lot of new functions were added to relibc, improving the software compatibility
- Many bugs were fixed
- Many programs started to work
- More than 1600 programs and libraries were packaged (work-in-progress)
### Build System
- New recipe options
- New cleanup options
- New QEMU options
- New scripts
- A new filesystem configuration was added, it helped us to deduplicate files and improved the flexbility a lot
- The `rust` submodule fetch was disabled, reducing the download time a lot
### Documentation
- Porting documentation was added
- A developer FAQ was added
- The build system dependencies for each supported Unix-like system was documented
- A feature comparison was added
- A page to learn Rust, OS development, driver development and computer science was added
- The driver descriptions and interfaces was documented
- The RedoxFS features were documented
- The current security system was documented
- The "Quick Workflow" page for advanced testers and developers was added
### Community
- Our chat migrated from Mattermost to Matrix
- A moderation system was implemented
- A nonprofit organization was created to help our money management
## Changelog
## All the Details
As many changes happened it's not possible to write everything on this post, this section contains all commits since the 0.8.0 version generated by the [changelog](https://gitlab.redox-os.org/redox-os/redox/-/blob/master/changelog.sh) script:
We should capture a list of all changes here to make sure we don't miss anything.
- [redox](https://gitlab.redox-os.org/redox-os/redox/-/compare/c8634bd...f2fc8e6)
- [cookbook](https://gitlab.redox-os.org/redox-os/cookbook/-/compare/3d72057d...29bf5784)
- [audiod](https://gitlab.redox-os.org/redox-os/audiod/-/compare/20474ef...f7c2426)
- [bootloader](https://gitlab.redox-os.org/redox-os/bootloader/-/compare/d398e37...c7588a1)
- [bootstrap](https://gitlab.redox-os.org/redox-os/bootstrap/-/compare/1effea3...94ac220)
- [ca-certificates](https://gitlab.redox-os.org/redox-os/ca-certificates/-/compare/b42b9c5...4df67f2)
- [contain](https://gitlab.redox-os.org/redox-os/contain/-/compare/42b381b...e6b8856)
- [coreutils](https://gitlab.redox-os.org/redox-os/coreutils/-/compare/690460d...b52a1b2)
- [cosmic-edit](https://github.com/pop-os/cosmic-edit) - new project
- [cosmic-files](https://github.com/pop-os/cosmic-files) - new project
- [cosmic-icons](https://github.com/pop-os/cosmic-icons) - new project
- [cosmic-term](https://github.com/pop-os/cosmic-term) - new project
- [curl](https://gitlab.redox-os.org/redox-os/curl/-/compare/8b9c5bef9...f50c28394)
- [drivers](https://gitlab.redox-os.org/redox-os/drivers/-/compare/fc4a69c...897866d)
- [escalated](https://gitlab.redox-os.org/redox-os/escalated/-/compare/7e02fe4...06fe299)
- [extrautils](https://gitlab.redox-os.org/redox-os/extrautils/-/compare/1f9cf9c...2218a14)
- [findutils](https://gitlab.redox-os.org/redox-os/findutils/-/compare/2b3a88f...116c044)
- [initfs](https://gitlab.redox-os.org/redox-os/redox-initfs/-/compare/89b8fb8...7dd9b2e)
- [installer](https://gitlab.redox-os.org/redox-os/installer/-/compare/f710fa7...087810a)
- [installer-gui](https://gitlab.redox-os.org/redox-os/installer-gui) - new project
- [ion](https://gitlab.redox-os.org/redox-os/ion/-/compare/b9c354eb...b1b9475f)
- [ipcd](https://gitlab.redox-os.org/redox-os/ipcd/-/compare/c930dfd...db2322c)
- [kernel](https://gitlab.redox-os.org/redox-os/kernel/-/compare/d298459...0c99e1b)
- [kibi](https://github/-/compare/4dd0962...a22a3bd)
- [netstack](https://gitlab.redox-os.org/redox-os/netstack/-/compare/54d64d6...640e548)
- [netutils](https://gitlab.redox-os.org/redox-os/netutils/-/compare/34d1ec9...c78b13c)
- [orbdata](https://gitlab.redox-os.org/redox-os/orbdata/-/compare/1d6d330...3ca60ee)
- [orbital](https://gitlab.redox-os.org/redox-os/orbital/-/compare/e93c270...8b5497a)
- [orbutils](https://gitlab.redox-os.org/redox-os/orbutils/-/compare/b5aaf1e...4878e07)
- [pkgutils](https://gitlab.redox-os.org/redox-os/pkgutils/-/compare/8cc4d84...87e2dc8)
- [pop-icon-theme](https://github.com/pop-os/icon-theme/-/compare/ab3e9b1497...3126c6a3f6)
- [ptyd](https://gitlab.redox-os.org/redox-os/ptyd/-/compare/d1709e5...ab26604)
- [redoxfs](https://gitlab.redox-os.org/redox-os/redoxfs/-/compare/f601b2a...5c8f22b)
- [relibc](https://gitlab.redox-os.org/redox-os/relibc/-/compare/ee0193aa...7a86d101)
- [resist](https://gitlab.redox-os.org/redox-os/resist/-/compare/8d420dc...1a09fad)
- [userutils](https://gitlab.redox-os.org/redox-os/userutils/-/compare/0621709...7a96dab)
- [uutils](https://github/-/compare/af804df9a...9d82fa3b9)
- [init](https://gitlab.redox-os.org/redox-os/init/-/compare/0c87d80...f5aaf7f)
- [logd](https://gitlab.redox-os.org/redox-os/logd/-/compare/734bb92...e0f930a)
- [ramfs](https://gitlab.redox-os.org/redox-os/ramfs/-/compare/d3fd7f2...f404d64)
- [randd](https://gitlab.redox-os.org/redox-os/randd/-/compare/934f130...1c88eea)
- [zerod](https://gitlab.redox-os.org/redox-os/zerod/-/compare/4b1b17c...286bd4a)
\ No newline at end of file
Loading