發布用 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 外殼混淆)和 OrbTk 工具包構建的,它提供了類似於 Flutter、React 和 Redux 的 API。 Netsurf 用作網絡瀏覽器。 該項目還開發了自己的包管理器、一組標準實用程序(binutils、coreutils、netutils、extrautils)、ion 命令 shell、relibc 標準 C 庫、類似 sodium v​​im 的文本編輯器、網絡堆棧和文件系統。 配置是用 Toml 語言設置的。

來源: opennet.ru

添加評論