Мы в Selectel любим изучать разные операционные системы. Сейчас в наше поле зрения попала Redox OS, которая считается альтернативой Linux/BSD системам. Она написана на языке Rust. По словам разработчиков, теперь ОС более безопасная и производительная, чем раньше. Надавно они представили новый релиз. Подробности под катом!


Что это за ОС?


Впервые о ней мы писали еще в 2020 году, тогда вышла версия 0.6. Недавно был релиз релиз 0.9.0. Операционная система многозадачна, она обеспечивает частичную совместимость с POSIX-стандартом.


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

Кроме того, разработчики использовали для своей ОС принцип «все есть URL». Так, для записи в лог может использоваться URL log://, для взаимодействия между процессами — bus://, для сетевого взаимодействия — tcp:// и т. п. А модули, которые могут быть реализованы в форме драйверов, расширений ядра и пользовательских приложений, могут регистрировать свои обработчики URL. Пример: написание модуля обращения к портам ввода/вывода и привязать его к URL port_io://, после чего можно использовать его для доступа к 60 порту через открытие URL port_io://60.


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

Ну хорошо, а что изменилось?


Разработчики утверждают, что сейчас значительно улучшены производительность и стабильность таких компонентов системы, как вызовы и переключение контекста. А еще оптимизированы механизмы управления виртуальной и физической памятью, повышена скорость работы файловой системы и загрузчика UEFI.

Кроме того, удалось упростить процесс портирования софта с Linux/BSD систем. Например, разработчики решили перейти на обычный для Unix формат файловых путей вместо URI, который применялся ранее. Также расширены возможности инструментария для сборки софта. А еще авторы проекта продолжают улучшать реализацию стандартной библиотеки C Redox, почти на 100% написанной на Rust.

Кроме того, удалось улучшить поддержку архитектуру ARM64, что крайне важно для практически любой операционной системой. Сейчас Redox OS частично совместима с одноплатником Raspberry Pi 3B+. Также разработчики приняли решение добавить драйверы VirtIO. Они улучшают производительность ОС в виртуальных машинах.

Если говорить о софте, то уже давно удалось портировать такие модули, как Apache HTTP Server (веб-сервер), RustPython (интерпретатор Python, написанный на Rust), Lua (интерпретатор языка Lua), Perl 5 (интерпретатор языка Perl), текстовые редакторы GNU Nano и Helix, инструменты из графического Linux-окружения COSMIC: файловый менеджер, эмулятор терминала и текстовый редактор.

Сейчас готовы образы с демонстрационной сборкой операционной системы. Образ «весит» полтора гигайбайта, в него входит окружение Orbital, DOSBox (эмулятор DOS), несколько вариантов культовой игры Doom (оригинальная условно-бесплатная версия и FreeDOM), OpenGL-игры Neverball и Neverputt, Sodium — vi-подобный текстовый редактор, rodioplay — аудиоплеер с поддержкой форматов WAV/FLAC и другое ПО.

image
Операционная система работает на базе 64-битных процессоров Intel, AMD (x86_64, AMD64), с ограничениями — на 32-битных процессорах (i686), начиная с Pentium II, и 64-разрядных CPU ARM (Aarch64). Если есть желание ознакомиться с QEMU и VirtualBox — добро пожаловать, они совместимы с Redox.

К сожалению, не все так и хорошо, есть проблемы. Например, в этой операционной системе проблемы с работой беспроводных модулей связи от Atheros. Этот недостаток компенсируется тем, что тот же Ethernet от Intel рабочий. Плюс без проблем работают графические чипы как от Intel, так и от AMD.

В том, что ОС не так быстро меняется, как хотелось бы, вины команды нет. Она состоит из более чем 40 человек. Во главе с момента запуска проекта стоит Джереми Соллер (Jeremy Soller). Первый релиз Redox OS состоялся в апреле 2015 г. Сейчас руководство проекта ускоренными темпами пытается решить существующие проблемы с добавлением нужных этой ОС функций и возможностей.

Если вам удалось поработать с этой операционной системой, расскажите в комментариях, как она вам. Способна заменить ОС, к которой вы привыкли?

Комментарии (1)


  1. arteast
    14.09.2024 11:30

    До замены "настоящих" ОС Redox пока очень далеко. Она делается с прицелом на "полноценность", т.е. это не игрушечная поделка, но пока о какой-либо продуктовости говорить смешно. Это не MVP, а PoC.

    На текущий момент она даже не поддерживает selfhosting, т.е. собрать Redox из-под Redox нельзя (и даже просто бинарь, запускаемый на Redox, емнип нельзя из-под Redox собрать, а надо из-под линукса). Поддержка железа в довольно плачевном состоянии (usb хабы не поддерживаются, точпады не поддерживаются, видео через svga/uefi на старте настраивается и в процессе работы разрешение экрана не сменить, аудио - ac97 или intel hda, несколько моделей сетевых карт и все, bluetooth нет, wifi нет). Нет поддержки динамической линковки...

    40 человек в команде - это звучит гордо, но как и в любом OpenSource проекте это число ничего не значит. Фактически есть 2-3 человека, которые весьма активно работают над проектом и кучка интересующихся, которые иногда что-то поделывают (справедливости ради, это что-то может быть и непростым - прямо сейчас один такой интересующийся взялся пилить поддержку usb хабов и вроде как это довольно шустро продвигается). Проект получает донаты, поэтому часть более сложных вещей делаются на платной основе (RSoc, типа GSoC но только R - так, например, была сделана упомянутая в статье поддержка virtio).

    Хочется надеяться, что проект станет популярнее и положительная обратная связь (популярность -> разработчики -> популярность) заставит его развиваться активнее.