Релиз Redox OS 0.9.0 — операционной системы на языке Rust и концепции микроядра

9 сентября 2024 года состоялся релиз операционной системы Redox OS 0.9.0. Проект разрабатывается сообществом Redox OS с использованием языка Rust и концепции микроядра. Исходный код Redox размещён на GitLab под лицензией MIT.

Для тестирования Redox OS разработчиками проекта опубликованы загрузочные live-окружения для реального оборудования и системные образы для виртуальных машин (512 МБ и 1,5 ГБ), подготовленные для архитектур x86_64 и i686.

По информации OpenNET, демонстрационный образ Redox OS 0.9.0 включает эмулятор DOSBox, подборку игр (DOOM, Neverball, Neverputt, sopwith, syobonaction), обучающие программы, музыкальный проигрыватель rodioplay с поддержкой форматов FLAC и WAV, web-браузер Netsurf, просмотрщик изображений, консольный текстовый редактор Sodium, файловый менеджер, эмулятор терминала и текстовый редактор от проекта COSMIC. Пользовательское окружение построено на базе собственной графической оболочки Orbital и тулкита OrbTk, предоставляющего API, похожий на Flutter, React и Redux. Имеется поддержка GUI-библиотек Slint, Iced и winit.

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

В пул поддерживаемого Redox оборудования входят устройства ввода с интерфейсом USB (клавиатуры, мыши, тачпады), вывод графики через API VESA BIOS или UEFI GOP (драйверы для GPU не поддерживаются), звуковые чипы AC’97 и Intel HD Audio, SATA (AHCI, IDE) и NVMe. Поддержка Wi-Fi и устройств хранения с интерфейсом USB пока не доведена до готовности. Работа с графическим окружением протестирована на ноутбуках Lenovo IdeaPad Y510P, System76 Galago Pro и System76 Lemur Pro. С отдельными ограничениями обеспечена поддержка ноутбуков Dell XPS 13, HP Dev One, ASUS X554L, ASUS ROG g55vw, Toshiba Satellite L500 и ASUS Eee PC 900. Из ARM-систем поддерживается Raspberry Pi 3 Model B+.

Основные изменения и доработки в Redox OS 0.9.0:

• расширены возможности, связанные с управлением процессами, потоками, памятью и сигналами, что привело к улучшению работы многих приложений. Например, система достигла уровня, позволяющего собирать простые программы компиляторами GCC и Rust, при этом поддержка самосборки пока не достигнута;

• из пользовательского окружения COSMIC в Redox перенесены файловый менеджер, текстовый редактор и эмулятор терминала, работающие в графическом режиме;

• улучшена переносимость с программами из Linux и BSD-систем. Общее число портов приложений доведено примерно до 1700. Из значительных достижений отмечается портирование HTTP-сервера Apache, Simple HTTP Server, RustPython, GNU Make, Lua, Perl 5, текстовых редакторов GNU Nano и Helix;

• внесены разнообразные оптимизации производительности и исправлены многие проблемы, влияющие на стабильность работы. Повышена производительность файловой системы RedoxFS, системы управления памятью, системных вызовов и переключения контекста. Значительно ускорена работа в виртуальных машинах;

• в дисплейный сервер Orbital добавлена поддержка GUI-библиотек Slint, Iced и winit. Через winit в Orbital реализована возможность декорирования окон на стороне клиента, создания скрытых окон, развёртывания окон на весь экран. Добавлена возможность воспроизведения музыки и видео из GUI-программ через двойной щелчок мышью. Улучшено оформление среды рабочего стола Orbital;

• вместо адресации через URL (например, для записи в лог мог использоваться URL «log://», а для сетевого взаимодействия «tcp://») задействован традиционный для Unix-систем формат файловых путей, что положительно повлияло на совместимость с программами и библиотеками POSIX/Linux;

• доработана реализация стандартной Си-библиотеки Relibc, которая кроме libm теперь полностью написана на Rust. Расширена поддержка POSIX-функций. Предложена инициативы по предоставлению стабильного ABI для пространства пользователя. Все системные компоненты переведены с redox_syscall на libredox;

• улучшена работа загрузчика для UEFI;

• улучшена поддержка архитектуры ARM64 (Aarch64) и обеспечена частичная совместимость с платой Raspberry Pi 3B+;

• расширены возможности драйвера Contain для изолированного выполнения приложений. Добавлена демонстрация использования драйвера Contain (desktop-contain.toml);

• улучшены драйверы для PCI и PCIe. Добавлены драйверы VirtIO;

• расширены возможности системы сборки.

В начале сентября 2024 года команда разработчиков проекта по внедрению Rust для ядра Linux потерпела поражение в сражении с разработчиками на С. Лидер Rust для Linux объявил, что уходит из проекта из-за «нетехнической ерунды» (nontechnical nonsense). Ведсон Алмейда Филхо (Wedson Almeida Filho), сотрудник Microsoft, объявил о своей отставке с поста сопровождающего (мейнтейнера) проекта Rust для Linux из-за разногласий с некоторыми членами сообщества разработчиков ядра Linux, которые не хотят изучать Rust.

Профильные эксперты считают, что теперь непонятно, как именно будет развиваться проект Rust для Linux. Текущие молодые разработчики из этой команды на Rust всё чаще начали сталкиваться с коллегами, которые используют C более 30 лет для сборки Linux, а изменить их понимание необходимости внедрения Rust и найти компромисс для работы в режиме чтения и восприятия нового и старого кода на разных языках оказалось очень сложно.

Источник: habr.com

0 0 голоса
Рейтинг новости
1401
0
Подписаться
Уведомить о
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии