Rustで書かれたRedox OS 0.7オペレーティングシステムのリリース

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

Rustで書かれたRedox OS 0.7オペレーティングシステムのリリース

オペレーティング システムは Unix の哲学に従って開発され、SeL4、Minix、および Plan 9 からいくつかのアイデアを借用しています。 Redox はマイクロカーネルの概念を使用しており、プロセス間の通信とリソース管理のみがカーネル レベルで提供され、他のすべての機能は配置されます。カーネル アプリケーションとユーザー アプリケーションの両方で使用できるライブラリ内。 すべてのドライバーは、分離されたサンドボックス環境のユーザー空間で実行されます。 既存のアプリケーションとの互換性を確保するために、多くのプログラムを移植せずに実行できるようにする特別な POSIX レイヤーが提供されています。

このシステムは「すべては URL である」という原則を適用します。 たとえば、URL「log://」はログ記録に使用でき、「bus://」はプロセス間通信に、「tcp://」はネットワーク通信に使用できます。 ドライバー、カーネル拡張機能、およびカスタム アプリケーションとして実装できるモジュールは、独自の URL ハンドラーを登録できます。たとえば、I/O アクセス モジュールを作成し、それを「port_io://」URL にバインドできます。これを使用して、URL「port_io://60」を開いてポート 60 にアクセスできます。

Redox のユーザー環境は、Orbital 独自のグラフィカル シェル (Qt および Wayland を使用する他の Orbital シェルと混同しないでください) と、Flutter、React、Redux に似た API を提供する OrbTk ツールキットを中心に構築されています。 WebブラウザとしてNetsurfを使用します。 このプロジェクトでは、独自のパッケージ マネージャー、標準ユーティリティのセット (binutils、coreutils、netutils、extrautils)、ion コマンド シェル、relibc 標準 C ライブラリ、sodium v​​im 風のテキスト エディター、ネットワーク スタック、およびファイルも開発されています。システム。 設定はToml言語で設定されます。

出所: オープンネット.ru

コメントを追加します