Veröffentlichung des in Rust geschriebenen Betriebssystems Redox OS 0.7

Nach anderthalb Jahren Entwicklungszeit wurde die Veröffentlichung des Betriebssystems Redox 0.7 veröffentlicht, das mit der Rust-Sprache und dem Mikrokernel-Konzept entwickelt wurde. Die Entwicklungen des Projekts werden unter der kostenlosen MIT-Lizenz vertrieben. Zum Testen von Redox OS werden Installations- und Live-Images mit einer Größe von 75 MB angeboten. Die Assemblys werden für die x86_64-Architektur generiert und sind für Systeme mit UEFI und BIOS verfügbar.

Bei der Vorbereitung des neuen Releases lag das Hauptaugenmerk darauf, sicherzustellen, dass es auf echter Hardware funktioniert. Wichtigste Neuerungen:

  • Der Bootloader wurde komplett neu geschrieben, wobei der Code zum Booten auf Systemen mit BIOS und UEFI vereinheitlicht und hauptsächlich in Rust geschrieben ist. Der Wechsel des Bootloaders hat das Spektrum der unterstützten Hardware deutlich erweitert.
  • Neben Fehlerbehebungen wurde im Kernel daran gearbeitet, die Leistung zu verbessern und die Hardwareunterstützung zu erweitern. CPU-spezifische Variablen wurden für die Verwendung des GS-Registers konvertiert. Es wird eine Reflexion (Zuordnung) des gesamten physischen Speichers bereitgestellt, die Verwendung rekursiver Speicherseiten wird gestoppt. 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 hinzugefügt.
  • Es wurde auf die Verarbeitung aller Dateipfade in UTF-8-Kodierung umgestellt.
  • Der Code für die Arbeit mit der ACPI AML (ACPI Machine Language)-Spezifikation – uefi.org wurde vom Kernel in den acpid-Hintergrundprozess verschoben, der im Benutzerbereich ausgeführt wird.
  • Der Inhalt von Initfs wurde in eine neue Datei verschoben, um das Generieren von Paketen zu erleichtern.
  • Das RedoxFS-Dateisystem wurde neu geschrieben und auf die Verwendung des CoW-Mechanismus (Copy-on-Write) umgestellt, bei dem Änderungen keine Informationen überschreiben, sondern an einem neuen Speicherort gespeichert werden, was zu einer deutlich verbesserten Zuverlässigkeit führt. Zu den neuen Funktionen von RedoxFS gehören die Unterstützung von Transaktionsaktualisierungen, die Datenverschlüsselung mithilfe des AES-Algorithmus sowie die Authentifizierung von Daten und Metadaten mit digitalen Signaturen. Die gemeinsame Nutzung des FS-Codes im System und Bootloader ist gewährleistet.
  • Die Verbesserung der vom Projekt entwickelten Standard-C-Bibliothek Relibc, die nicht nur in Redox, sondern auch in Distributionen auf Basis des Linux-Kernels funktioniert, wurde fortgesetzt. Die Änderungen erleichterten die Portierung verschiedener Programme auf Redox und lösten Probleme mit vielen in C geschriebenen Programmen und Bibliotheken.
  • Es wurde eine Version des Rustc-Compilers vorbereitet, die in Redox ausgeführt werden kann. Zu den verbleibenden Aufgaben gehören die Optimierung der Leistung und die Anpassung des Frachtpaketmanagers an die Arbeit in der Redox-Umgebung.

Veröffentlichung des in Rust geschriebenen Betriebssystems Redox OS 0.7

Das Betriebssystem wird in Übereinstimmung mit der Unix-Philosophie entwickelt und übernimmt einige Ideen von SeL4, Minix und Plan 9. Redox verwendet das Konzept eines Mikrokernels, bei dem auf Kernelebene nur die Interaktion zwischen Prozessen und die Ressourcenverwaltung bereitgestellt werden, und alle anderen Die Funktionalität ist in Bibliotheken untergebracht, die sowohl vom Kernel als auch von Benutzeranwendungen verwendet werden können. Alle Treiber laufen im Benutzerbereich in isolierten Sandbox-Umgebungen. Für die Kompatibilität mit bestehenden Anwendungen wird eine spezielle POSIX-Schicht bereitgestellt, die es ermöglicht, viele Programme ohne Portierung auszuführen.

Das System nutzt das „Alles ist eine URL“-Prinzip. Beispielsweise kann die URL „log://“ für die Protokollierung, „bus://“ für die Interaktion zwischen Prozessen, „tcp://“ für die Netzwerkinteraktion usw. verwendet werden. Module, die in Form von Treibern, Kernel-Erweiterungen und Benutzeranwendungen implementiert werden können, können ihre eigenen URL-Handler registrieren. Sie können beispielsweise ein I/O-Port-Zugriffsmodul schreiben und es an die URL „port_io://“ binden. Anschließend können Sie damit auf Port 60 zugreifen, indem Sie die URL „port_io://60“ öffnen.

Die Benutzerumgebung in Redox basiert auf der eigenen grafischen Shell von Orbital (nicht zu verwechseln mit einer anderen Orbital-Shell, die Qt und Wayland verwendet) und dem OrbTk-Toolkit, das eine API ähnlich wie Flutter, React und Redux bereitstellt. Als Webbrowser wird Netsurf verwendet. Das Projekt entwickelt außerdem einen eigenen Paketmanager, eine Reihe von Standarddienstprogrammen (Binutils, Coreutils, Netutils, Extrautils), die Ion-Befehlsshell, die Standard-C-Bibliothek RELIBC, einen VIM-ähnlichen Texteditor Sodium, einen Netzwerkstapel und eine Datei System. Die Konfiguration wird in der Toml-Sprache festgelegt.

Source: opennet.ru

Kommentar hinzufügen