Redox OS 0.6

Redox — Unix-подобная микроядерная операционная система, написанная на языке программирования Rust с фокусом на безопасность и высокую производительность.

Redox OS является полнофункциональной операционной системой, компонуемой из функциональных пакетов (таких, как распределитель памяти, файловая система, диспетчер дисплея, основные утилиты и так далее). Полагается на экосистему программного обеспечения, написанную на Rust

Некоторые компоненты:

  • Микроядро, выполненное по типу ядра MINIX;
  • Библиотека Newlib для программ на Си (аналог glibc);
  • Драйверы работают в пространстве пользователя;
  • Имеется опционально включаемый GUI — Orbital;
  • Ion shell — базовая библиотека для оболочек и выполнения команд в Redox, а также оболочка по умолчанию;
  • Файловая система TFS, аналог ZFS;
  • Пакетный менеджер Magnet;
  • Менеджер памяти Ralloc.

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

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

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.

Наработки проекта Redox OS распространяются под свободной лицензией MIT.