Выпуск операционной системы Redox OS 0.6, написанной на языке Rust

26 декабря 2020 года

После полутора лет разработки опубликован выпуск операционной системы Redox 0.6, разработанной с использованием языка Rust и концепции микроядра. Наработки проекта распространяются под свободной лицензией MIT. Для тестирования Redox OS предложены готовые загрузочные образы (61 МБ). В отличие от прошлых выпусков, ветка 0.6 рассматривается как пригодная для экспериментов на реальном оборудовании, а не только в QEMU и VirtualBox.

Из новшеств, добавленных в выпуске Redox 0.6, можно отметить:

  • Полностью переписана система управления памятью ядра ( rmm, kernel memory manager). В новой реализации удалось избавиться от утечек памяти, которые создавали проблемы при использовании старого менеджера памяти. Кроме того, повышена стабильность поддержки многоядерных систем.
  • В состав включены многие проекты, разработанные студентами в рамках инициативы RSoC (Redox OS Summer of Code), включая разработки, связанные с поддержкой io_uring, ptrace, strace, gdb, дисковыми разделами и ведением логов.
  • Значительно доработана развиваемая проектом стандартная Си-библиотека Relibc, способная работать не только в Redox, но и в дистрибутивах на базе ядра Linux.
  • Добавлен собственный пакетный менеджер pkgar и связанный с ним формат пакетов, развиваемый с учётом специфики Redox OS. Пакетным менеджером предоставляется верификация источника по цифровой подписи, контроль целостности, возможность повторяемой сборки, автоматические обновления, передача только изменившихся данных, независимость от каталога установки. В отличие от других форматов, pkgar включает только метаданные, необходимые для извлечения пакета.
  • Скрипты cookbook, включающие инструкции по сборке различных компонентов Redox OS, переведены на новую сборочную систему, написанную на языке Rust. В новой сборочной системе вместо Shell-сценариев для описания логики сборки предложены файлы с формате Toml.
  • Много времени при подготовке новой версии было потрачено на борьбу с нарушающими совместимость изменениями в ночных сборках Rust, связанными с переработкой макроса Asm.

Напомним, что операционная система развивается в соответствии с философией Unix и заимствует некоторые идеи из SeL4, Minix и Plan 9. Redox использует концепцию микроядра, при котором на уровне ядра обеспечивается только взаимодействие между процессами и управление ресурсами, а вся остальная функциональность вынесена в библиотеки, которые могут использоваться как ядром, так и пользовательскими приложениями. Все драйверы выполняются в пространстве пользователя в изолированных sandbox-окружениях. Для совместимости с существующими приложениями предоставляется специальная POSIX-прослойка, позволяющая запускать многие программы без портирования.

В системе применяется принцип "все есть URL". Например, для записи в лог может использоваться URL "log://", для взаимодействия между процессами "bus://", для сетевого взаимодействия "tcp://" и т.п. Модули, которые могут быть реализованы в форме драйверов, расширений ядра и пользовательских приложений, могут регистрировать свои обработчики URL, например, можно написать модуль обращения к портам ввода/вывода и привязать его к URL "port_io://", после чего можно использовать его для доступа к 60 порту через открытие URL "port_io://60". Наработки проекта распространяются под свободной лицензией MIT.

Пользовательское окружение в Redox построено (Архивная копия от 26 июня 2018 на Wayback Machine) на базе собственной графической оболочки Orbital (не путать с другой оболочкой Orbital, использующей Qt и Wayland) и тулкита OrbTk, предоставляющего API, похожий на Flutter, React и Redux. В качестве web-браузера применяется Netsurf. Проектом также развивается собственный пакетный менеджер, набор стандартных утилит (binutils, coreutils, netutils, extrautils), командная оболочка ion, стандартная Си-библиотека relibc, vim-подобный текстовый редактор sodium, сетевой стек и файловая система TFS, развиваемая на основе идей ZFS (модульный вариант ZFS на языке Rust). Конфигурация задаётся на языке Toml.

Источники

править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Выпуск операционной системы Redox OS 0.6, написанной на языке Rust», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.