Veröffentlichung des in Rust geschriebenen Betriebssystems Redox OS 0.8

Die Veröffentlichung des Betriebssystems Redox 0.8, das mit der Rust-Sprache und dem Mikrokernel-Konzept entwickelt wurde, wurde veröffentlicht. Die Entwicklungen des Projekts werden unter der kostenlosen MIT-Lizenz vertrieben. Zum Testen von Redox OS werden Demo-Assemblys mit einer Größe von 768 MB sowie Images mit einer grundlegenden grafischen Umgebung (256 MB) und Konsolentools für Serversysteme (256 MB) angeboten. Assemblys werden für die x86_64-Architektur generiert und sind für Systeme mit UEFI und BIOS verfügbar. Neben der grafischen Umgebung Orbital enthält das Demobild den DOSBox-Emulator, eine Auswahl an Spielen (DOOM, Neverball, Neverputt, sopwith, syobonaction), Tutorials, den Rodioplay-Musikplayer und den Sodium-Texteditor.

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.

Die Arbeit an der neuen Version wird fortgesetzt, um sicherzustellen, dass sie auf echter Hardware funktioniert. Zusätzlich zur x86_64-Architektur wurde die Möglichkeit hinzugefügt, auf 32-Bit-x86-Systemen (i686, Pentium II und neuer) zu arbeiten. Die Portierung auf die ARM64-CPU (aarch64) ist im Gange. Die Ausführung auf echter ARM-Hardware wird noch nicht unterstützt, das Laden mit ARM64-Emulation in QEMU ist jedoch möglich. Standardmäßig ist das Audio-Subsystem aktiviert und es wird zunächst Unterstützung für Konfigurationen mit mehreren Monitoren bereitgestellt (auf Systemen mit einem UEFI-Framebuffer). Zu den in Redox OS unterstützten Geräten gehören AC'97- und Intel HD Audio-Soundchips, Grafikausgabe über VESA BIOS API oder UEFI GOP, Ethernet (Intel 1/10 Gigabit Ethernet, Realtek RTL8168), Eingabegeräte (Tastaturen, Mäuse, Touchpads), SATA (AHCI, IDE) und NVMe. Die Unterstützung für WLAN und USB ist noch nicht verfügbar (USB funktioniert nur in QEMU).

Weitere Neuerungen:

  • Boot-Images für Systeme mit BIOS und EFI wurden zusammengeführt.
  • Die Implementierung der Systemaufrufe clone und exec wurde in den Benutzerbereich verschoben.
  • Der Ladevorgang wurde vereinfacht. Es wurde ein Bootstrap-Programm implementiert, das vom Kernel gestartet wird und das weitere Laden von ELF-Dateien ermöglicht, beispielsweise den Init-Prozess.
  • Eskaliertes Programm zur Unterstützung von Setuid-Programmen wie sudo hinzugefügt.
  • Um die Erstellung und Installation von Hintergrundprozessen zu vereinfachen, wurde das Paket redox-daemon crate vorgeschlagen.
  • Das Montagesystem wurde neu gestaltet, sodass es möglich ist, für verschiedene Architekturen in einem Quellbaum zu bauen. Um die Zusammenstellung verschiedener Konfigurationen zu vereinfachen, wird das Skript build.sh vorgeschlagen. Unterstützung für das Erstellen mit dem Podman-Toolkit hinzugefügt. Die Zusammenstellung von Kernel, Bootloader und InitFS ist mit anderen Paketen vereinheitlicht.
  • Eine Demokonfiguration zum Erstellen von Beispielprogrammen, die nicht im Basis-Boot-Image enthalten sind, mit einer grafischen Umgebung wurde hinzugefügt.
  • Dem Audiod-Sound-Subsystem wurde Unterstützung für Software-Lautstärkeregelung hinzugefügt.
  • Treiber für Soundchips basierend auf AC'97 hinzugefügt. Verbesserter Treiber für Intel HD Audio-Chips.
  • Treiber für IDE-Controller hinzugefügt.
  • Verbesserte Unterstützung für NVMe-Laufwerke.
  • Verbesserte PCI-, PS/2-, RTL8168-, USB-HID- und VESA-Treiber.
  • Der Installationsprozess wurde neu gestaltet: Bootloader, Bootstrap, Kernel und Initfs befinden sich jetzt im Verzeichnis /boot.
  • Der Kernel hat die Speicherverwaltung vereinfacht und die Möglichkeit hinzugefügt, Adressräume auf Benutzerebene zu manipulieren.
  • In der grafischen Shell von Orbital wurde Unterstützung für Systeme mit mehreren Monitoren hinzugefügt, die Mauszeigerverarbeitung wurde verbessert und eine Anzeige zum Ändern der Lautstärke hinzugefügt. Das Menü bietet die Möglichkeit, Anwendungen in Kategorien zu unterteilen.

Source: opennet.ru

Kommentar hinzufügen