Nach anderthalb Jahren Entwicklungszeit veröffentlichten die Autoren des Betriebssystems Redox 0.6, das in der Sprache Rust geschrieben wurde, eine neue Version. Die Neuheit kann getestet werden - dafür wurden Boot-Images im Netzwerk gepostet. Ihr Volumen beträgt 61 MB. Die neueste Version kann auf normaler Hardware getestet werden, nicht in QEMU und VirtualBox.
Das Betriebssystem wird unter der kostenlosen MIT-Lizenz vertrieben. Was ist neu in Version 0.6?
- Der Kernel - Speicher - Management - System wurde neu geschrieben von Grund auf neu . Wir sprechen über rmm, Kernel Memory Manager. Den Entwicklern gelang es, die Speicherlecks zu beseitigen, die bei Verwendung des alten Speichermanagers zu Problemen führten. Die Stabilität der Unterstützung für Mehrkernsysteme wurde ebenfalls verbessert.
- , RSoC (Redox OS Summer of Code), , io_uring, ptrace, strace, gdb, .
- - Relibc, Redox, Linux.
- pkgar . . , , , . , pkgar , .
- cookbook , Rust. Shell- Tomt.
- , Asm.
Die Funktionen dieses Betriebssystems werden vollständig gemäß der Unix-Philosophie entwickelt. Die Autoren haben eine Reihe von Ideen aus SeL4, Minix und Plan 9 ausgeliehen. Einer der wichtigsten "Tricks" ist die Verwendung des Mikrokernel-Konzepts, bei dem nur die Interaktion zwischen Prozessen und Ressourcenmanagement bereitgestellt wird. Der Rest der Funktionalität wurde in Bibliotheken verschoben, die sowohl vom Kernel als auch von benutzerdefinierten Anwendungen verwendet werden können. Alle Treiber werden im Benutzerbereich in isolierten Sandbox-Umgebungen ausgeführt. Zur Kompatibilität mit vorhandenen Anwendungen wird eine POSIX-Schicht bereitgestellt, mit der viele Programme ohne Portierung ausgeführt werden können.
Darüber hinaus verwendeten die Entwickler das Prinzip "Alles ist eine URL" für ihr Betriebssystem. Für die Protokollierung kann die URL "log: //" verwendet werden, für die Interaktion zwischen Prozessen "bus: //", für die Netzwerkkommunikation "tcp: //" usw. Für Module, die in Form von Treibern implementiert werden können, können Kernel-Erweiterungen und benutzerdefinierte Anwendungen ihre URL-Handler registrieren. Ein Beispiel ist das Schreiben eines Moduls für den Zugriff auf E / A-Ports und das Binden an die URL "port_io: //". Anschließend können Sie damit auf Port 60 zugreifen, indem Sie die URL "port_io: // 60" öffnen.
Die benutzerdefinierte Umgebung basiert auf der OrbTk-eigenen grafischen Shell, die APIs ähnlich wie Flutter, React und Redux bereitstellt. Browser - Netsurf. Während der Entwicklung des Projekts stellten die Entwickler ihren eigenen Paketmanager, eine Reihe von Standarddienstprogrammen (binutils, coreutils, netutils, extrautils), die ion-Befehlsshell, die relibc-Standard-C-Bibliothek, einen vim-ähnlichen Natriumtexteditor, einen Netzwerkstapel und das auf Basis von entwickelte TFS-Dateisystem zur Verfügung Ideen für ZFS (modulare Version von ZFS in Rust). Die Konfiguration ist in der Toml-Sprache festgelegt.