Skip to content
Snippets Groups Projects

Add the June 2024 report

Merged Ribbon requested to merge june-report into master
@@ -4,7 +4,7 @@ author = "Ribbon and Ron Williams"
date = "2024-06-30"
+++
May was a very exciting month for Redox! Here's all the latest news.
June was a very exciting month for Redox! Here's all the latest news.
## Donate to Redox
@@ -14,17 +14,50 @@ If you would like to support Redox, please consider donating or buying some merc
- [Patreon](https://www.patreon.com/redox_os)
- [Merch](https://redox-os.creator-spring.com/)
## Funding!
### NLnet NGI Zero Core
We are very excited to announce that the [NGI Zero Core](https://nlnet.nl/thema/NGIZeroCore.html) program
from the [NLnet Foundation](https://nlnet.nl/)
will be funding our project [Redox OS Unix-style Signals](https://nlnet.nl/project/RedoxOS-Signals/).
Redox currently has a basic implementation of Signals, but this project will allow us to move most of signals code
out of the kernel into user-space, and bring us much closer to POSIX compliance.
The project also includes a Process Manager Daemon in user-space,
to manage the session/process group/process/thread hierarchy, especially with respect to signals,
and to help support [sigqueue](https://pubs.opengroup.org/onlinepubs/009695399/functions/sigqueue.html).
4lDO2 will do the heavy lifting on this project,
with the Redox team creating a test suite for the work and acting as backup for bug fixes.
### Radworks
[Radworks](https://radworks.org/) has very generously provided a donation of $13,000 USD in USDC and Rad tokens
using the [Drips Network](https://drips.network/), to support Redox's [termion](https://gitlab.redox-os.org/redox-os/termion) library.
The [Radicle](https://radicle.xyz/) project is funded by Radworks.
"Radicle is a sovereign peer-to-peer network for code collaboration, built on top of Git."
The `termion` library, a Redox sub-project, is a terminal manipulation library used for writing text-based user interfaces (TUI),
written in Rust, and supporting Linux, Redox, BSD, and Mac OS X.
`termion` is a dependency of Radicle.
## New Orbital Visual
We changed our default wallpaper, title bar and panel bar colors to make the user experience more pleasant, you can see it below:
![New Orbital Visual](/static/img/screenshot/orbital-visual.png)
(The wallpaper is the "Tarantula Nebula" from NASA, also available on the COSMIC desktop)
The wallpaper is the [Tarantula Nebula](https://webbtelescope.org/contents/media/images/2022/041/01GA76MYFN0FMKNRHGCAGGYCVQ) from NASA, also available on the COSMIC desktop.
## Software Showcase #1
## Software Showcase 1
We did the first software showcase in our YouTube channel!
We have uploaded our first software showcase to our [YouTube channel](https://www.youtube.com/@RedoxOS)!
This is just a small part of the software that works on Redox.
We will be uploading more showcases in the near future.
Like, Subscribe, and Comment to help bring more attention to 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>
@@ -36,21 +69,25 @@ He also applied this improvement on the SATA, NVMe, USB SCSI and VirtIO Block dr
## Relibc Improvements
The pread() and pwrite() system calls were implemented on relibc.
The `pread()` and `pwrite()` functions are now implemented using the proper syscalls (rather than seek-based emulation) in relibc.
This is part of an effort to improve the handling of file offsets across Redox.
## Scheme Improvements
4lDO2 updated the bootstrap and initfs to use the new scheme interface through the `redox-scheme` library.
4lDO2 improved the `redox-scheme` crate and the scheme protocol to provide a cleaner API for drivers and daemons.
He also improved the scheme protocol to remove the need for ugly workarounds.
He updated `bootstrap` and `initfs` to use the new scheme interface.
## User-Space Debugging From GDB
Thanks to bjorn3 the GNU Debugger can read the Redox user-space now (where most of the system components run).
Thanks to bjorn3, the GNU Debugger, running outside the VM,
can read the Redox user-space tasks when the `gdbserver` is not available.
This is helpful if you are debugging, for example, drivers during startup, but is not for general use.
## USB Improvements
bjorn3 added a 2ms sleep on the poll lopp of the xHCI driver to reduce the CPU usage a lot.
bjorn3 added a 2ms sleep on the poll loop of the xHCI driver to reduce the CPU usage a lot,
while we await the implementation of xHCI interrupts.
Quoting his MR description:
@@ -65,25 +102,28 @@ mice don't support polling at 500Hz anyway."
## PCI Improvements and Cleanup
bjorn3 should explain his improvements here.
He also cleaned up more PCI code as usual on his series of driver cleanups and simplifications.
Continuing his work on driver cleanup and improvement,
bjorn3 did a wide-ranging cleanup of the PCI/PCIe driver, refactoring, removing unneeded code,
and generally improving the clarity and maintainability of the code.
## VirtIO Improvements
bjorn3 implemented the VirtIO modern transport on x86!
He also removed the legacy transport which is rarely used.
bjorn3 implemented the Modern transport for our x86 VirtIO drivers.
The original implementation was using the Legacy transport,
which is not commonly used.
## Recoverable Components
4lDO2 adapted the `lived` system component to be stateless!
4lDO2 adapted the `lived` system component to use the new offset-based read/write scheme protocol!
On microkernel-basded operating systems most system components are restarted in case of a crash without a system reboot (on-the-fly), a stateless daemon is a requirement to restart system components in case of a crash.
On microkernel-based operating systems, it is desirable to have most system components able to be restarted in case of a crash,
without needing a system reboot.
Using the offset-based read/write protocol allows us to remove file position tracking from the driver,
bringing us one step closer to having the ability to restart drivers.
## Programs
Ribbon added an ABI separation on the LLVM recipe, it protect programs with a dependency on LLVM from breakage when the LLVM version is updated.
Ribbon added an ABI separation on the LLVM recipe, to protect programs with a dependency on LLVM from breakage when the LLVM version is updated.
(Like most Linux distributions does)
@@ -91,27 +131,33 @@ He also fixed many recipe scripts, many Rust programs built successfully for the
Many Rust libraries were fixed with the recent changes on Redox, Ribbon is checking the TODOs of each program.
Many WIP software ports were missing cross-compilation scripts for CMake, Ribbon fixed this.
These CMake scripts may be incomplete but it saves a lot of time from packagers trying to complete our cross-compilation scripts.
## Build System Improvements
The grnmeira contributor discovered that our "server-minimal" variant lacked network support and created confusion about the name.
Contributor grnmeira discovered that our "server-minimal" variant lacked network support and created confusion about the name.
Based on the 4lDO2 suggestion for the new variant name, Ribbon renamed the "server-minimal" configuration to "minimal".
Based on 4lDO2's suggestion for the new variant name, Ribbon renamed the "server-minimal" configuration to "minimal".
He also created the "minimal-net" configuration for network support.
Now the most minimal OS image is called "minimal"
(The system still need more improvements to reduce the CPU and memory usage)
We have not yet attempted to make the "minimal" system suitable for a truly minimal computer,
but we have several ideas for future improvement.
Ribbon added the "Development Tools" package group from Fedora to avoid any possible development package missing and reduce the number of packages on the installation command for the Fedora target on the build system bootstrap script.
Ribbon added the "Development Tools" package group from Fedora to our setup script `bootstrap.sh`, to avoid missing any development packages and reduce the number of items to be installed for the Fedora target in the script.
## USB Support Status
When we announced the support for USB input devices on the [April report](https://www.redox-os.org/news/this-month-240430/) we were busy and forgot to update the documentation to change the USB status.
When we announced the support for USB input devices on the [April report](https://www.redox-os.org/news/this-month-240430/) we neglected to update the documentation to change the USB status.
We recently added support for USB input devices and this support is being improved, thus some devices not working is expected.
We recently added support for USB input devices, and this support is being improved,
but it is to be expected that some devices are not working.
Sadly the nightly images are frozen since May 30 (because Jeremy did a feature freeze to test changes and hunt bugs), thus if you tested after that date you didn't receive the latest improvements for USB.
Our nightly images have been frozen since May 30, so if you tested after that date you would not have received the latest improvements for USB.
If you want to test the latest USB improvements we recommend that you download the build system and build the Redox image, you can learn how to that on [this](https://doc.redox-os.org/book/ch02-05-building-redox.html) page.
@@ -133,7 +179,7 @@ He also updated the FAQ to report that we support USB HID devices, improved the
## Discord Server
Now we have a Discord server! it's for people that don't want to use Matrix and is more convenient for most people.
We now have a Discord server! It's for people that don't want to use Matrix, and hopefully it will be more convenient.
The messages from Matrix are sent to Discord and the messages from Discord are sent to Matrix througn a Matrix bridge bot.
@@ -141,24 +187,6 @@ Once you join the server, request to be a member on the #join-requests room.
You can open the invite [here](https://discord.gg/JfggvrHGDY).
## Sponsorship Update #1
This is our first sponsorship report, on these reports we will report our current sponsorship status from companies and funds.
### Radworks
The [Radworks](https://radworks.org/) nonprofit organization sent a donation of 13,000 USD in Ethereum using the [Drips Network](https://drips.network/) to fund the development of the [termion](https://gitlab.redox-os.org/redox-os/termion) library.
The [Radicle](https://radicle.xyz/) project is funded by this organization, it aims to offer a decentralized (peer-to-peer) Git hosting.
Similar to how the BitTorrent protocol works, where people download and upload pieces of files to other people.
### Nlnet
The Nlnet nonprofit organization accepted our proposal to the NGI Zero program to improve the POSIX support on Redox.
You can see the project on [this](https://nlnet.nl/project/RedoxOS-Signals/) link.
## Join us on Matrix Chat
If you want to contribute, give feedback or just listen in to the conversation,
Loading