Skip to content
Snippets Groups Projects

Add the August 2024 report

Merged Ribbon requested to merge august-report into master
1 file
+ 34
10
Compare changes
  • Side-by-side
  • Inline
@@ -14,13 +14,15 @@ 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/)
## Massive Performance Improvements
## Massive Performance Improvement On Virtual Machines
4lDO2 reduced the time to make a context switch in a virtual machine by 60-70% !
Thanks to the recent kernel proflling implementation, 4lDO2 discovered that a huge bottleneck in the context switching code, was simply reading the system time. That involves reading hardware registers from the [HPET](https://en.wikipedia.org/wiki/High_Precision_Event_Timer), which although reasonably fast on real hardware, is particularly slow on VMs as it requires expensive VM exits. This cost is now avoided by using the [TSC](https://en.wikipedia.org/wiki/Time_Stamp_Counter) using [KVM's](https://en.wikipedia.org/wiki/Kernel-based_Virtual_Machine) paravirtualized system time API, resulting in a massive speedup.
He disabled the need to make a context switch to get the host system time, it was done by using paravirtualization on [TSC](https://en.wikipedia.org/wiki/Time_Stamp_Counter) using KVM.
Thus all system tasks have a much better performance now, from more IO throughput to network speed. We are doing benchmarks to determine the scale of this improvement.
Redox is becoming faster than Linux in some virtual machine workloads (with all exploit mitigations disabled), more exciting optimizations are coming.
This improvement is unfortunately not applicable for Redox running on real hardware. However, most recent CPUs support an *invariant TSC*, in which case the logic would be very similar to the paravirtualized logic, after the frequency has been determined at boot time by calibration. This will be implemented in the future, but for now, the real HPET is reasonably fast.
Running in a VM, Redox is now becoming slightly faster than Linux at certain synthetic benchmarks, for example the same-core context switch latency when using POSIX pipes (tested with `mitigations=off`). More exciting optimizations are coming, both to reduce context switch overhead further towards the hardware limit, and to reduce unnecessary context switches overall.
## Testing Redox
@@ -40,15 +42,17 @@ bjorn3 updated most system components to use the new scheme path format, as we c
## VirtualBox
Ribbon documented the instructions to run the Redox image on VirtualBox. See [the instructions in the book](https://doc.redox-os.org/book/ch02-01-running-vm.html#virtualbox-instructions) if you want to try it out.
Ribbon documented the instructions to run the Redox image on VirtualBox. See the [instructions in the book](https://doc.redox-os.org/book/ch02-01-running-vm.html#virtualbox-instructions) if you want to try it out.
## Programs
Perl5 has been ported to Redox (at least partly)! Perl uses a complicated build system, but contributor Bendeguz Pisch (bpisch) managed to conquer it! We still have some challenges with dynamic library support, but basic perl scripting is now available on Redox.
Perl 5 has been ported to Redox (at least partly)! Perl uses a complicated build system, but contributor Bendeguz Pisch (bpisch) managed to conquer it! We still have some challenges with dynamic library support, but basic perl scripting is now possible on Redox.
bpisch also updated our GNU make to 4.4. Another challenging build system overcome!
Ribbon added the `promote` TODO on the packaging convention for working recipes under the WIP category of Cookbook, it will improve the packagers communication.
Ribbon added the `promote` TODO on the packaging convention for working recipes under the WIP category of Cookbook, it will improve the packagers communication. As many of our WIP packages are now ready to go, they need to be moved to the main categories at `cookbook/recipes`.
If you would like to help test and promote recipes, please join our [GitLab](https://gitlab.redox-os.org/redox-os/redox/) and [Matrix](https://matrix.to/#/#redox-join:matrix.org).
More programs were packaged as usual.
@@ -66,7 +70,7 @@ Ribbon fixed a typo on the scripts that disabled the shebangs.
The [scheme documentation](https://doc.redox-os.org/book/ch05-00-schemes-resources.html) (system API) is finally up-to-date! thanks to Ron Williams.
We dropped the previous scheme path format (`scheme-name:resource-name`) to reduce the effort to port programs, now the schemes use the Unix path format (`/scheme/scheme-name/resource-name`) like other Unix-like operating systems.
We dropped the previous scheme path format (`scheme-name:resource-name`) to reduce the effort to port programs, now the schemes use the Unix path format (`/scheme/scheme-name/resource-name`).
(The `/scheme/` before the scheme daemon name is to avoid it to be treated as a file resource from RedoxFS, removing any confusion)
@@ -82,11 +86,31 @@ People are diving in and looking for ways to help make Redox better!
We added a policy to request that developers add their Matrix or Discord usernames on the "About" section of their GitLab profiles, to improve our awareness of who is submitting merge requests and issues.
By linking the identity of the accounts we avoid people claiming to be other person in the community.
Now we also request that people creating issues on GitLab to send the issue links on the chat, to help improve visibility of new issues.
## RustConf
Ron Williams will be at [RustConf](https://rustconf.com/) in Montreal September 10-13.
Look for person in the [bright blue Redox hoodie](https://redox-os.creator-spring.com/listing/redox-hoodie?product=227&variation=2665&size=1247).
Ron will give demos of Redox as opportunity allows. Come say hi!
## Join us on Matrix Chat
If you want to contribute, give feedback or just listen in to the conversation,
join us on [Matrix Chat](https://matrix.to/#/#redox-join:matrix.org).
<!--
## Discussion
Here are some links to discussion about this news post:
- [Fosstodon @redox]()
- [Fosstodon @soller]()
- [Patreon]()
- [Phoronix]()
- [Reddit /r/pop\_os]()
- [Reddit /r/redox]()
- [Reddit /r/rust]()
- [Twitter @redox\_os]()
- [Twitter @jeremy\_soller]()
-->
Loading