Доступен (https://github.com/redox-os/redox/releases/tag/0.3.0) выпуск операционной системы Redox 0.3 (http://www.redox-os.org), разработанной с использованием языка Rust и концепции микроядра. Наработки проекта распространяются (https://github.com/redox-os/redox) под свободной лицензией MIT. После сборки систему можно опробовать при помощи VirtualBox или QEMU.Пользовательское окружение в Redox построено на базе графической оболочки Orbital. Операционная система использует концепцию микроядра, при котором на уровне ядра обеспечивается только взаимодействие между процессами и управление ресурсами, а вся остальная функциональность вынесена в библиотеки, которые могут использоваться как ядром, так и пользовательскими приложениями. Все драйверы выполняются в пространстве пользователя в изолированных sandbox-окружениях. Для совместимости с существующими приложениями предоставляется специальная POSIX-прослойка, позволяющая запускать многие программы без портирования.
Redox развивается в соответствии с философией Unix c заимствованием некоторых идей из SeL4, Minix и Plan 9. В системе применяется принцип "все есть URL". Например, для записи в лог может использоваться URL "log://", для взаимодействия между процессами "bus://", для сетевого взаимодействия "tcp://" и т.п. Модули, которые могут быть реализованы в форме драйверов, расширений ядра и пользовательских приложений, могут регистрировать свои обработчики URL, например, можно написать модуль обращения к портам ввода/вывода и привязать его к URL "port_io://", после чего можно использовать его для доступа к 60 порту через открытие URL "port_io://60".
Проектом также развивается собственный пакетный менеджер (https://github.com/redox-os/pkgutils), набор стандартных утилит (binutils, coreutils, netutils, extrautils), командная оболочка ion (https://github.com/redox-os/ion), vim-подобный текстовый редактор sodium (https://github.com/redox-os/sodium) и файловая система TFS (https://github.com/redox-os/tfs), развиваемая на основе идей ZFS (модульный вариант ZFS на языке Rust). Конфигурация задаётся на языке Toml (https://github.com/toml-lang/toml). Система поддерживает запуск на процессорах с архитектурой x86_64 c VBE-совместимой графической картой (nvidia, intel, amd), AHCI-дисками и сетевыми картами на базе чипов E1000 или RTL8168.
Из новшеств, добавленных в выпуске Redox 0.3, можно отметить:
- Сборочная система переведена на cookbook (https://github.com/redox-os/cookbook), коллекцию shell-скриптов с инструкциями по сборке различных компонентов Redox и патчами для обеспечения совместимости. Основным преимуществом новой системы является использования одного набора типовых рецептов (скриптов) для сборки как отдельных пакетов, так и установочных образов. Каждый файл в предлагаемом по умолчанию установочном наборе теперь устанавливается как пакет и управляется пакетным менеджером. В настоящее время пользователям предлагается около 40 пакетов (https://static.redox-os.org/pkg/x86_64-unknown-redox/);
- Вместо скрипта-обвязки (https://github.com/redox-os/libc-artifacts) вокруг GCC теперь применяется полноценный кросс-компилятор, что позволяет значительно поднять уровень поддержки программ на языке Си и обеспечить возможность самосборки системы (Self-hosting, сборка redox из кружения redox). В настоящее время для Redox уже портированы binutils, newlib, gcc, nasm, llvm и rustc, ведётся портирование git. По мере портирования стороннего ПО параллельно всплывают и исправляются многочисленные проблемы с совместимостью с POSIX и добавляется неодостающая функциональность;
- Продолжено усовершенствование ядра системы: добавлен новый стек ACPI, включающий парсер AML. Поддержка ACPI позволила наладить обработку сигнала завершения работы, спящий режим и поддержку HPET (High Precision Event Timer);
- В командную оболочку ion внесено 139 изменений, добавлена поддержка новых возможностей и элементов синтаксиса, например, появилась возможность использования арифметических выражений в блоках let/export, переработана реализация циклов while, добавлены операторы "&&" и "||", реализованы псевдонимы (alias);
- Добавлена поддержка драйверов для гостевых систем VirtualBox;
- Добавлен драйвер для etherne-адаптеров Atheros ALX;
- Продолжена работа над файловой системой TFS (https://github.com/redox-os/tfs#resources-on-design), в которую перенесена очередная порция возможностей ZFS;
- Внесены многочисленные улучшения в реализации утилит на языке Rust, в том числе добавлены недостающие опции в утилиты mv, dd, ls, ln, tail, wc, sort. Добавлены команды shutdown и unique.
URL: https://github.com/redox-os/redox/releases/tag/0.3.0
Новость: http://www.opennet.ru/opennews/art.shtml?num=46919