Nach anderthalb Jahren Entwicklung wurde die Version 0.7 des Betriebssystems Redox veröffentlicht, das mit der Programmiersprache Rust und dem Konzept eines Mikrokernels entwickelt wurde. Die Ergebnisse des Projekts werden unter der MIT-Lizenz verbreitet. Für Tests von Redox OS sind Installations- und Live-Images mit einer Größe von 75 MB verfügbar. Die Builds sind für die Architektur x86_64 erstellt und für Systeme mit UEFI und BIOS zugänglich.
Bei der Vorbereitung der neuen Version lag der Schwerpunkt auf der Gewährleistung der Funktionsfähigkeit auf echter Hardware. Die wichtigsten Neuerungen:
- Der Bootloader wurde vollständig neu geschrieben, wobei der Code für das Booten auf BIOS- und UEFI-Systemen einheitlich und hauptsächlich in Rust verfasst wurde. Die Änderung des Bootloaders hat es ermöglicht, die Palette der unterstützten Hardware erheblich zu erweitern.
- Im Kern wurden neben der Fehlerbehebung auch Leistungsoptimierungen und die Erweiterung der Hardwareunterstützung durchgeführt. CPU-spezifische Variablen wurden auf die Nutzung des GS-Registers umgestellt. Eine vollständige Abbildung des physikalischen Speichers wurde sichergestellt, und die Verwendung rekursiver Speicherseiten wurde eingestellt. Der Assembler-Code in Inline-Einfügungen wurde neu geschrieben, um die Kompatibilität mit zukünftigen Compiler-Versionen zu verbessern.
- Erste Unterstützung für die AArch64-Architektur wurde hinzugefügt.
- Es wurde auf die Verarbeitung aller Dateipfade in UTF-8-Kodierung umgestellt.
- Der Code zur Verarbeitung der ACPI AML (ACPI Machine Language) Spezifikation von uefi.org wurde aus dem Kernel in den Hintergrundprozess acpid, der im Benutzerspeicher ausgeführt wird, verschoben.
- Der Inhalt von Initfs wurde in eine neue Datei verschoben, was die Paketbildung vereinfacht hat.
- Das Dateisystem RedoxFS wurde umgeschrieben und verwendet jetzt den CoW-Mechanismus (Copy-on-Write), bei dem Änderungen nicht die bestehende Information überschreiben, sondern an einem neuen Ort gespeichert werden. Dies hat zu einer signifikanten Verbesserung der Zuverlässigkeit geführt. Zu den neuen Funktionen von RedoxFS gehören die Unterstützung für transaktionale Updates, die Verschlüsselung von Daten mithilfe des AES-Algorithmus sowie die Daten- und Metadatenverifizierung durch digitale Signaturen. Eine gemeinsame Nutzung des FS-Codes im System und Bootloader wurde sichergestellt.
- Die Weiterentwicklung der standardmäßigen C-Bibliothek Relibc, die nicht nur in Redox, sondern auch in Distributionen auf der Basis des Linux-Kernels funktioniert, wurde fortgesetzt. Die vorgenommenen Änderungen haben den Port von verschiedenen Programmen nach Redox erleichtert und Probleme mit vielen Programmen und Bibliotheken, die in C geschrieben sind, behoben.
- Eine Version des Compilers rustc wurde vorbereitet, die in Redox ausgeführt werden kann. Zu den verbleibenden Aufgaben gehören die Leistungsoptimierung und die Anpassung des Paketmanagers cargo für den Betrieb in der Umgebung von Redox.

Das Betriebssystem entwickelt sich gemäß der Unix-Philosophie weiter und übernimmt einige Ideen von SeL4, Minix und Plan 9. Redox nutzt das Konzept eines Mikrokernels, bei dem auf Kernel-Ebene lediglich die Interaktion zwischen Prozessen und die Ressourcenverwaltung sichergestellt wird, während alle weiteren Funktionalitäten in Bibliotheken ausgelagert sind, die sowohl vom Kernel als auch von Benutzeranwendungen verwendet werden können. Alle Treiber werden im Benutzerspeicher in isolierten Sandbox-Umgebungen ausgeführt. Um die Kompatibilität mit bestehenden Anwendungen zu gewährleisten, wird eine spezielle POSIX-Schicht bereitgestellt, die es ermöglicht, viele Programme ohne Portierung auszuführen.
Im System gilt das Prinzip "Alles ist eine URL". Zum Beispiel kann für einen Log-Eintrag die URL „log://“ verwendet werden, für die Interprozesskommunikation „bus://“, für die Netzwerkkommunikation „tcp://“ usw. Module, die als Treiber, Kernel-Erweiterungen und Benutzeranwendungen implementiert werden können, haben die Möglichkeit, ihre URL-Handler zu registrieren. So kann beispielsweise ein Modul zur Verarbeitung von Ein-/Ausgangsporten geschrieben und mit der URL „port_io://“ verbunden werden, sodass man über die URL „port_io://60“ auf Port 60 zugreifen kann.
Die Benutzerumgebung in Redox basiert auf der hauseigenen grafischen Shell Orbital (nicht zu verwechseln mit einer anderen Orbital-Shell, die Qt und Wayland verwendet) und dem Toolkit OrbTk, das eine API ähnlich wie Flutter, React und Redux bereitstellt. Als Webbrowser wird Netsurf eingesetzt. Das Projekt entwickelt auch einen eigenen Paketmanager, eine Reihe von Standard-Utilities (binutils, coreutils, netutils, extrautils), die Kommandozeile ion, die Standard-C-Bibliothek relibc, einen vim-ähnlichen Texteditor namens sodium, einen Netzwerk-Stack und ein Dateisystem. Die Konfiguration erfolgt in der Sprache Toml.
Quelle: opennet.ru
