Izdaja operacijskega sistema Redox OS 0.7, napisanega v Rustu

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

Izdaja operacijskega sistema Redox OS 0.7, napisanega v Rustu

Operacijski sistem je razvit v skladu s filozofijo Unixa in si izposoja nekaj idej iz SeL4, Minixa in Plana 9. Redox uporablja koncept mikrojedra, v katerem je na ravni jedra zagotovljena le interakcija med procesi in upravljanje virov, vsi drugi funkcionalnost je postavljena v knjižnice, ki jih je mogoče uporabljati tako v jedru kot v uporabniških aplikacijah. Vsi gonilniki se izvajajo v uporabniškem prostoru v izoliranih okoljih peskovnika. Za združljivost z obstoječimi aplikacijami je na voljo posebna plast POSIX, ki omogoča zagon številnih programov brez prenosa.

Sistem uporablja načelo »vse je URL«. Na primer, URL "log://" se lahko uporablja za beleženje, "bus://" za interakcijo med procesi, "tcp://" za omrežno interakcijo itd. Moduli, ki jih je mogoče implementirati v obliki gonilnikov, razširitev jedra in uporabniških aplikacij, lahko registrirajo lastne upravljalnike URL-jev, na primer, lahko napišete modul za dostop do V/I vrat in ga povežete z URL-jem "port_io:// ", nato pa ga lahko uporabite za dostop do vrat 60 tako, da odprete URL "port_io://60".

Uporabniško okolje v Redoxu je zgrajeno na podlagi Orbitalove lastne grafične lupine (ne sme se zamenjevati z drugo orbitalno lupino, ki uporablja Qt in Wayland) in orodij OrbTk, ki ponuja API, podoben Flutterju, Reactu in Reduxu. Netsurf se uporablja kot spletni brskalnik. Projekt razvija tudi lastnega upravitelja paketov, nabor standardnih pripomočkov (binutils, coreutils, netutils, extrautils), ukazno lupino ion, standardno knjižnico C relibc, vimu podoben urejevalnik besedil sodium, omrežni sklad in datoteko sistem. Konfiguracija je nastavljena v jeziku Toml.

Vir: opennet.ru

Dodaj komentar