Выпущена ОС на замену Linux и BSD. Она написана на Rust, имеет микроядро и поддерживает ПО для Unix

Системное ПО Открытое ПО
, Текст: Дмитрий Степанов
Значительно обновилась операционная система Redox OS, позиционируемая разработчиками как альтернатива современным Linux/BSD-системам. Почти полностью написанная на модном типобезопасном Rust с выходом релиза 0.9.0 стала безопаснее, быстрее, а также поддерживает больше «железа» и Unix-программ.

Релиз Redox OS

Спустя почти два года разработки состоялся релиз операционной системы Redox OS версии 0.9.0, написанной преимущественно на типобезопасном языке программирования Rust.

Согласно списку изменений, опубликованному на официальном сайте проекта, в релизе Redox OS 0.9.0 значительно улучшены производительность и стабильность ряда компонентов ОС: системные вызовы и переключение контекста теперь выполняются быстрее. Улучшены механизмы управления виртуальной и физической памятью, повышена скорость работы файловой системы и загрузчика UEFI.

Кроме того, предприняты шаги по упрощению процесса портирования программ с Linux/BSD-систем – в частности, теперь в системных интерфейса применяется типичный для Unix-систем формат файловых путей вместо ранее использовавшегося URI-формата; расширены возможности инструментария для сборки ПО. Продолжается совершенствование Relibc – собственной реализации стандартной библиотеки C Redox, который почти целиком написана на Rust (непереведенной остается libm).

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

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

Команда разработчиков подготовила сборку Unix-подобной ОС Redox OS 0.9.0, написанной на Rust

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

Особенности Redox OS

Redox OS – Unix-подобная многозадачная операционная система общего назначения на основе микроядра. Разработчиками позиционируется в качестве безопасной альтернативы Unix-системам семейств Linux и BSD и обеспечивает частичную совместимость со стандартом POSIX.

Микроядро Redox OS в частности и все компоненты ОС в целом написаны на ассемблере и набирающем популярность языке программирования Rust, благодаря чему снижается вероятность возникновения багов и уязвимостей, отмечают разработчики. Большинство системных компонентов в Redox OS изолировано от ядра (к примеру, драйверы работают в пространстве пользователя), за счет чего снижена поверхность атаки – общего количества возможных уязвимых мест системы.

Приложения экосистемы COSMIC в Redox OS

При создании Redox OS команда разработчиков вдохновлялась идеями, заложенными в знаковые проекты прошлого и настоящего: Plan 9 (концепция «все является файлом»), Minix (модульность, устойчивость к критическим сбоям ядра, безопасные интерфейсы межпроцессной коммуникации и др.), Sel4 (минималистичное и высокопроизводительное микроядро).

Исходный код ОС распространяется на условиях свободной лицензии MIT. Он размещен в публичном репозитории на платформе GitLab.

Команда разработчиков Redox OS состоит из более чем 40 человек. У руля проекта с момента запуска проекта стоит Джереми Соллер (Jeremy Soller). Первый релиз Redox OS состоялся в апреле 2015 г.

Финансирование проекта осуществляется через некоммерческую организацию в США, принимающую пожертвования посредством различных каналов – через платформы Patreon, Donorbox, переводами на Bitcoin- и Ethereum-кошельки проекта. Кроме того, проект получает доходы от продажи одежды и сувениров с фирменной символикой.

Текущие возможности ОС и планы на будущее

Одной из конечных целей разработки Redox OS является обеспечение совместимости с существующим программным обеспечением для популярных Unix-платформ: по задумке создателей системы, большинство Unix-программ должно работать в Redox OS после простой перекомиляции из исходного кода с внесением минимального количества изменений. Однако на сегодняшний день большая часть приложений с графическим пользовательским интерфейсом (GUI) нуждается в портировании, требующем значительных усилий, поскольку в ОС пока не реализована поддержка популярных протоколов X11 или Wayland, следует из информации, опубликованной в разделе ответов на часто встречающиеся вопросы (FAQ) официального сайта проекта.

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

В качестве файловой системы по умолчанию в Redox OS применяется фирменная RedoxFS, функционально схожая с ZFS, разработанной Sun Microsystems (поглощена Oracle) для Unix-системы Solaris.

Установка и удаление программ в Redox OS ПО осуществляется при помощи менеджера пакетов pkg, схожего по возможностям и синтаксису с apt (Debian и производные) и pkg из FreeBSD.

Управление операционной системой также может осуществляется через командую строку – при помощи знакомых пользователям Unix-подобных систем утилит (ls, cp, cat и пр.). В частности, с Redox OS поставляется uutils – реализация GNU Coreutils на Rust.

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

Redox OS обеспечивает лишь ограниченную поддержку распространенного оборудования. Так, к примеру, в ОС пока не работают Wi-Fi и Ethernet-решения Atheros (зато работает Ethernet Intel), USB-накопители, полноценно – видеочипы Intel и AMD.

Надежды на Rust

Rust – мультипарадигменный компилируемый язык программирования общего назначения, гарантирующий безопасную работу с памятью. Его история началась в сообществе Mozilla в 2006 г. а до версии 1.0 он дорос лишь к 2015 г. Для сравнения, С++ появился на десятки лет раньше – в 1983 г. На момент выхода материала ему исполнился 41 год против 18 лет у Rust.

Интерес к Rust как типобезопасному языку проявляют крупнейшие ИТ-компании мира. В частности, Microsoft переписывает отдельные системные компоненты Windows и серверный код платформы Microsoft 365 на этом ЯП. Код на Rust пишут и разработчики в Google, при этом демонстрируя более высокую производительность труда в сравнении с командами, применяющими C++.

В начале 2024 г. Офис национального директора по кибербезопасности (Office of the National Cyber Director; ONCD), агентства при правительстве США, заявил о необходимости кардинально изменить подход к написанию ПО для уменьшения количества ошибок, которые позволяют злоумышленникам злоупотреблять тем, как софт управляет памятью компьютера.

В августе 2024 г. Управление перспективных исследовательских проектов Министерства обороны США (DARPA) запустило проект по переносу устаревшего и небезопасного кода, написанного на языке программирования C, на Rust.