Третий выпуск операционной системы Redox OS, написанной на языке Rust
26 июля 2017 года
Доступен выпуск операционной системы Redox 0.3, разработанной с использованием языка Rust и концепции микроядра. Наработки проекта распространяются под свободной лицензией 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".
Проектом также развивается собственный пакетный менеджер, набор стандартных утилит (binutils, coreutils, netutils, extrautils), командная оболочка ion, vim-подобный текстовый редактор sodium и файловая система TFS, развиваемая на основе идей ZFS (модульный вариант ZFS на языке Rust). Конфигурация задаётся на языке Toml. Система поддерживает запуск на процессорах с архитектурой x86_64 c VBE-совместимой графической картой (nvidia, intel, amd), AHCI-дисками и сетевыми картами на базе чипов E1000 или RTL8168.
Из новшеств, добавленных в выпуске Redox 0.3, можно отметить:
- Сборочная система переведена на cookbook, коллекцию shell-скриптов с инструкциями по сборке различных компонентов Redox и патчами для обеспечения совместимости. Основным преимуществом новой системы является использования одного набора типовых рецептов (скриптов) для сборки как отдельных пакетов, так и установочных образов. Каждый файл в предлагаемом по умолчанию установочном наборе теперь устанавливается как пакет и управляется пакетным менеджером. В настоящее время пользователям предлагается около 40 пакетов;
- Вместо скрипта-обвязки вокруг 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;
- Добавлен драйвер для ethernet-адаптеров Atheros ALX;
- Продолжена работа над файловой системой TFS, в которую перенесена очередная порция возможностей ZFS;
- Внесены многочисленные улучшения в реализации утилит на языке Rust, в том числе добавлены недостающие опции в утилиты mv, dd, ls, ln, tail, wc, sort. Добавлены команды shutdown и unique.
Источники
правитьЛюбой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.