Die Veröffentlichung des Betriebssystems Redox 0.8 wurde herausgebracht, entwickelt mit der Programmiersprache Rust und dem Mikrokernel-Konzept. Die Entwicklungen des Projekts werden unter der freien MIT-Lizenz verbreitet. Zur Testung von Redox OS werden Demonstrations-Builds mit einer Größe von 768 MB sowie Images mit einer grundlegenden grafischen Umgebung (256 MB) und Konsolenwerkzeugen für Serversysteme (256 MB) angeboten. Die Builds sind für die x86_64-Architektur erstellt und stehen für Systeme mit UEFI und BIOS zur Verfügung. Das Demobild umfasst neben der grafischen Umgebung Orbital auch den Emulator DOSBox, eine Sammlung von Spielen (DOOM, Neverball, Neverputt, sopwith, syobonaction), Tutorials, den Musik-Player rodioplay und den Texteditor Sodium.
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.
In der neuen Ausgabe wurde die Arbeit an der Realbetriebsausstattung fortgesetzt. Neben der x86_64-Architektur wurde die Unterstützung für 32-Bit-Systeme x86 (i686, Pentium II und neuer) hinzugefügt. Der Port auf ARM64 (aarch64) CPU wird gerade durchgeführt. Der Betrieb auf echtem ARM-Hardware wird derzeit noch nicht unterstützt, jedoch ist das Laden über die Emulation von ARM64 in QEMU möglich. Standardmäßig ist das Audiosubsystem aktiviert, und es gibt erste Unterstützung für Multi-Monitor-Konfigurationen (auf Systemen mit UEFI-Framebuffer). Unter der Hardware, die in Redox OS unterstützt wird, sind die Audiochips AC’97 und Intel HD Audio, die Grafikleistung über die VESA BIOS oder UEFI GOP API, Ethernet (Intel 1/10 Gigabit Ethernet, Realtek RTL8168), Eingabegeräte (Tastaturen, Mäuse, Touchpads), SATA (AHCI, IDE) und NVMe aufgeführt. Die Unterstützung für Wi-Fi und USB ist noch nicht bereitgestellt (USB funktioniert nur in QEMU).
Weitere Neuerungen:
- Die Boot-Images für Systeme mit BIOS und EFI wurden zusammengeführt.
- Die Implementierung der Systemaufrufe clone und exec wurde in den Benutzerraum verlagert.
- Der Bootprozess wurde vereinfacht. Ein Bootstrap-Programm wurde implementiert, das vom Kernel gestartet wird und den weiteren Ladevorgang von ELF-Dateien wie dem Init-Prozess übernimmt.
- Ein neues escalated Programm wurde hinzugefügt, um die Ausführung von setuid-Programmen wie sudo zu gewährleisten.
- Ein crate-Paket namens redox-daemon wurde eingeführt, um die Erstellung und Installation von Hintergrundprozessen zu vereinfachen.
- Das Build-System wurde überarbeitet, um die Möglichkeit zu bieten, verschiedene Architekturen in einem einzigen Quellbaum zu erstellen. Ein Skript namens build.sh wurde hinzugefügt, um die Erstellung unterschiedlicher Konfigurationen zu vereinfachen. Die Unterstützung für den Build-Prozess mit dem Podman-Tool wurde hinzugefügt. Der Kernel, der Bootloader und das initfs wurden einheitlich mit anderen Paketen gestaltet.
- Eine Demo-Konfiguration wurde hinzugefügt, um die Erstellung von Beispielprogrammen zu zeigen, die nicht im Basis-Installationsabbild mit grafischer Oberfläche enthalten sind.
- Das Audiosubsystem audiod hat die Unterstützung für die Softwaresteuerung der Lautstärke erhalten.
- Ein Treiber für AC’97-basierte Audiocontroller wurde hinzugefügt. Der Treiber für Intel HD Audio-Chips wurde verbessert.
- Ein Treiber für IDE-Controller wurde hinzugefügt.
- Die Unterstützung für NVMe-Speichergeräte wurde verbessert.
- Die Treiber für PCI, PS/2, RTL8168, USB HID und VESA wurden optimiert.
- Die Organisation des Installationsprozesses wurde überarbeitet: Bootloader, Bootstrap, Kernel und initfs werden jetzt im Verzeichnis /boot abgelegt.
- Im Kern wurde die Arbeit mit dem Speicher vereinfacht, und die Möglichkeit zur Manipulation von Adressräumen auf Benutzerebene hinzugefügt.
- In der grafischen Oberfläche Orbital wurde die Unterstützung für Multimonitorsysteme hinzugefügt, die Verarbeitung des Mauszeigers verbessert und ein Indikator zur Lautstärkeregelung integriert. Im Menü wurde die Möglichkeit zur Kategorisierung von Anwendungen implementiert.
Quelle: opennet.ru
