Vydanie operačného systému Redox OS 0.7 napísaného v jazyku Rust

После полутора лет разработки опубликован выпуск операционной системы 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.

Vydanie operačného systému Redox OS 0.7 napísaného v jazyku Rust

Operačný systém je vyvinutý v súlade s filozofiou Unixu a preberá niektoré myšlienky zo SeL4, Minix a Plan 9. Redox využíva koncept mikrojadra, v ktorom je zabezpečená iba interakcia medzi procesmi a riadením zdrojov na úrovni jadra a všetky ostatné funkcionalita je umiestnená v knižniciach, ktoré je možné použiť ako jadro, tak aj používateľské aplikácie. Všetky ovládače bežia v používateľskom priestore v izolovaných prostrediach karantény. Pre kompatibilitu s existujúcimi aplikáciami je k dispozícii špeciálna vrstva POSIX, ktorá vám umožňuje spúšťať veľa programov bez portovania.

Systém využíva princíp „všetko je URL“. Napríklad URL „log://“ možno použiť na protokolovanie, „bus://“ na interakciu medzi procesmi, „tcp://“ na sieťovú interakciu atď. Moduly, ktoré môžu byť implementované vo forme ovládačov, rozšírení jadra a používateľských aplikácií, môžu zaregistrovať svoje vlastné obslužné programy URL, napríklad môžete napísať modul prístupu k I/O portu a naviazať ho na adresu URL „port_io:// “, potom ho môžete použiť na prístup k portu 60 otvorením adresy URL „port_io://60“.

Používateľské prostredie v Redox je postavené na základe vlastného grafického shellu Orbital (nezamieňať s iným Orbital shell, ktorý používa Qt a Wayland) a sady nástrojov OrbTk, ktorá poskytuje API podobné ako Flutter, React a Redux. Netsurf sa používa ako webový prehliadač. Projekt tiež vyvíja vlastného správcu balíkov, sadu štandardných nástrojov (binutils, coreutils, netutils, extrautils), shell príkazov ion, štandardnú knižnicu C relibc, textový editor sodík podobný vim, sieťový zásobník a súbor systém. Konfigurácia je nastavená v jazyku Toml.

Zdroj: opennet.ru

Pridať komentár