После полутора лет разработки опубликован выпуск операционной системы Redox 0.7, разработанной с использованием языка Rust и концепции микроядра. Наработки проекта распространяются под свободной лицензией MIT. Для тестирования Redox OS предложены установочные и Live-образы, размером 75 МБ. Сборки сформированы для архитектуры x86_64 и доступны для систем с UEFI и BIOS.
При подготовке нового выпуска основное внимание было уделено обеспечению работы на реальном оборудовании. Основные новшества:
- Полностью переписан загрузчик, в котором унифицирован и преимущественно написан на Rust код для загрузки на системах с BIOS и UEFI. Изменение загрузчика позволило существенно расширить спектр поддерживаемого оборудования.
- В ядре помимо исправления ошибок проведена работа по повышению производительности и расширению поддержки оборудования. Специфичные для CPU переменные переведены на использование регистра GS. Обеспечено отражение (мапинг) всей физической памяти, прекращено использование рекурсивных страниц памяти. Ассемблерный код в inline-вставках переписан для улучшения совместимости с будущими выпусками компилятора.
- Добавлена начальная поддержка архитектуры AArch64.
- Осуществлён переход на обработку всех файловых путей в кодировке UTF-8.
- Код для работы с ACPI AML (ACPI Machine Language) Specification — uefi.org перенесён из ядра в фоновый процесс acpid, выполняемый в пользовательском пространстве.
- Содержимое Initfs перенесено в новый файл, что упростило формирование пакетов.
- Файловая система RedoxFS переписана и переведена на использование механизма CoW (Copy-on-Write), при котором изменения не перезаписывают информацию, а сохраняются в новое место, что позволило добиться существенного повышения надёжности. Из новых возможностей RedoxFS отмечается поддержка транзакционных обновлений, шифрования данных с использованием алгоритма AES, а также заверения данных и метаданных цифровыми подписями. Обеспечено совместное использование кода ФС в системе и загрузчике.
- Продолжено усовершенствование развиваемой проектом стандартной Си-библиотеки Relibc, способной работать не только в Redox, но и в дистрибутивах на базе ядра Linux. Внесённые изменения упростили перенос различных программ в Redox и решили проблемы со многими программами и библиотеками, написанными на языке Си.
- Подготовлена версия компилятора rustc, способная запускаться в Redox. Из остающихся задач отмечается оптимизация производительности и адаптация пакетного менеджера cargo для работы в окружении Redox.
Operativni sistem se razvija u skladu sa Unix filozofijom i posuđuje neke ideje iz SeL4, Minixa i Plana 9. Redox koristi koncept mikrokernela, u kojem je samo komunikacija između procesa i upravljanja resursima obezbeđena na nivou kernela, a sve ostale funkcionalnosti su smeštene u bibliotekama koje se mogu koristiti i za jezgro i za korisničke aplikacije. Svi upravljački programi rade u korisničkom prostoru u izolovanim okruženjima sandbox-a. Za kompatibilnost sa postojećim aplikacijama, obezbeđen je poseban POSIX sloj koji omogućava pokretanje mnogih programa bez portiranja.
Sistem primjenjuje princip "sve je URL". Na primjer, URL “log://” se može koristiti za evidentiranje, “bus://” za međuprocesnu komunikaciju, “tcp://” za mrežnu komunikaciju i tako dalje. Moduli, koji se mogu implementirati kao drajveri, ekstenzije kernela i prilagođene aplikacije, mogu registrovati vlastite URL rukovaoce, na primjer, možete napisati I/O pristupni modul i vezati ga za URL "port_io://", nakon čega možete ga koristiti za pristup portu 60 otvaranjem URL-a "port_io://60".
Korisničko okruženje u Redox-u je izgrađeno oko Orbital-ove vlastite grafičke ljuske (ne treba je brkati s drugom Orbital-ovom ljuskom koja koristi Qt i Wayland) i OrbTk alata, koji pruža API sličan Flutteru, Reactu i Reduxu. Netsurf se koristi kao web pretraživač. Projekat takođe razvija sopstveni menadžer paketa, skup standardnih uslužnih programa (binutils, coreutils, netutils, extrautils), ionsku komandnu ljusku, relibc standardnu C biblioteku, uređivač teksta nalik na vim, mrežni stek i fajl sistem. Konfiguracija je postavljena na Toml jeziku.
izvor: opennet.ru