Опубликован выпуск операционной системы Redox 0.8, разработанной с использованием языка Rust и концепции микроядра. Наработки проекта распространяются под свободной лицензией MIT. Для тестирования Redox OS предложены демонстрационные сборки размером 768 МБ, а также образы с базовым графическим окружением (256 МБ) и консольным инструментарием для серверных систем (256 МБ). Сборки сформированы для архитектуры x86_64 и доступны для систем с UEFI и BIOS. Демонстрационный образ кроме графического окружения Orbital включает эмулятор DOSBox, подборку игр (DOOM, Neverball, Neverputt, sopwith, syobonaction), обучающие программы, музыкальный проигрыватель rodioplay и текстовый редактор Sodium.
Операционная система развивается в соответствии с философией Unix и заимствует некоторые идеи из SeL4, Minix и Plan 9. Redox использует концепцию микроядра, при котором на уровне ядра обеспечивается только взаимодействие между процессами и управление ресурсами, а вся остальная функциональность вынесена в библиотеки, которые могут использоваться как ядром, так и пользовательскими приложениями. Все драйверы выполняются в пространстве пользователя в изолированных sandbox-окружениях. Для совместимости с существующими приложениями предоставляется специальная POSIX-прослойка, позволяющая запускать многие программы без портирования.
В системе применяется принцип “все есть URL”. Например, для записи в лог может использоваться URL “log://”, для взаимодействия между процессами “bus://”, для сетевого взаимодействия “tcp://” и т.п. Модули, которые могут быть реализованы в форме драйверов, расширений ядра и пользовательских приложений, могут регистрировать свои обработчики URL, например, можно написать модуль обращения к портам ввода/вывода и привязать его к URL “port_io://”, после чего можно использовать его для доступа к 60 порту через открытие URL “port_io://60”.
Пользовательское окружение в Redox построено на базе собственной графической оболочки Orbital (не путать с другой оболочкой Orbital, использующей Qt и Wayland) и тулкита OrbTk, предоставляющего API, похожий на Flutter, React и Redux. В качестве web-браузера применяется Netsurf. Проектом также развивается собственный пакетный менеджер, набор стандартных утилит (binutils, coreutils, netutils, extrautils), командная оболочка ion, стандартная Си-библиотека relibc, vim-подобный текстовый редактор sodium, сетевой стек и файловая система. Конфигурация задаётся на языке Toml.
В новом выпуске продолжена работа по обеспечению работы на реальном оборудовании. Помимо архитектуры x86_64 добавлена возможность работы на 32-разрядных системах x86 (i686, Pentium II и новее). Ведётся портирование на CPU ARM64 (aarch64). Работа на реальном ARM-оборудовании пока не поддерживается, но возможна загрузка при эмуляции ARM64 в QEMU. По умолчанию активирована звуковая подсистема и обеспечена начальная поддержка многомониторных конфигураций (на системах с фреймбуфером UEFI). Из оборудования, которое поддерживается в Redox OS, названы звуковых чипы AC’97 и Intel HD Audio, вывод графики через API VESA BIOS или UEFI GOP, Ethernet (Intel 1/10 Gigabit Ethernet, Realtek RTL8168), устройства ввода (клавиатуры, мыши, тачпады), SATA (AHCI, IDE) и NVMe. Поддержка Wi-Fi и USB пока не доведена до готовности (USB работает только в QEMU).
Другие новшества:
- Объединены загрузочные образы для систем с BIOS и EFI.
- Реализация системных вызовов clone и exec перенесена в пространство пользователя.
- Упрощён процесс загрузки. Внедрена программа bootstrap, запускаемая ядром и обеспечивающая дальнейшую загрузку ELF-файлов, таких как процесс init.
- Добавлена программа escalated для обеспечения работы setuid-программ, таких как sudo.
- Для упрощения создания и установки фоновых процессов предложен crate-пакет redox-daemon.
- Переделана сборочная система, в которой появилась возможность сборки для разных архитектур в одном дереве исходных текстов. Для упрощения сборки разных конфигураций предложен скрипт build.sh. Добавлена поддержка сборки с использованием инструментария podman. Сборка ядра, загрузчика и initfs унифицирована с другими пакетами.
- Добавлена демонстрационная конфигурация для сборки примеров программ, не входящих в базовый загрузочный образ с графическим окружением.
- В звуковую подсистему audiod добавлена поддержка программного управления громкостью.
- Добавлен драйвер для звуковых чипов на базе AC’97. Улучшен драйвер для чипов Intel HD Audio.
- Добавлен драйвер для IDE-контроллеров.
- Улучшена поддержка накопителей NVMe.
- Улучшены драйверы PCI, PS/2, RTL8168, USB HID, VESA.
- Переработана организация процесса установки: загрузчик, bootstrap, ядро и initfs теперь размещаются в каталоге /boot.
- В ядре упрощена работа с памятью, добавлена возможность манипуляции с адресными пространствами из пользовательского уровня.
- В графической оболочке Оrbital добавлена поддержка многомониторных систем, улучшена обработка курсора мыши, добавлен индикатор для изменения громкости. В меню реализована возможность разделения приложений по категориям.