В новом инсталляторе предоставляются возможности, необходимые для решения таких задач, как выбор начального набора приложений, настройка сетевого подключения, языка, клавиатуры, часового пояса и параметров локализации, подготовка устройства хранения и разбивка разделов, добавления пользователей в систему. Среди основных целей разработки Agama упоминается устранение имеющихся ограничений графического интерфейса, расширение возможностей по использованию функциональности YaST в других приложениях, уход от привязки к одному языку программирования и стимулирование создания альтернативных настроек представителями сообщества.
Для установки пакетов, проверки оборудования, разбивки дисков и прочих необходимых при инсталляции функций в Agama продолжают использоваться библиотеки YaST, поверх которых реализованы сервисы-прослойки, абстрагирующие доступ к библиотекам через унифицированный коммуникационный протокол на базе HTTP. В инсталляторе используется многопроцессная архитектура, благодаря которой интерфейс взаимодействия с пользователем не блокируется во время выполнения других работ. Базовый интерфейс для управления установкой построен с использованием web-технологий. Web-интерфейс написан на JavaScript с использованием фреймворка React и компонентов PatternFly. Сервис для обмена сообщениями, а также встроенный http-сервер, написаны на языке Ruby.
В новой версии предложена новая архитектура, ознаменовавшая переход от использования готовых модулей, развиваемых проектом Cockpit, в пользу независимого фреймворка и модернизированного интерфейса пользователя. Вместо D-Bus в качестве основного коммуникационного протокола для взаимодействия между компонентами Agama задействован HTTP. Замена D-Bus на HTTP расширила возможности проекта по интеграции с более крупными системами и упростила организацию установки в автоматизированном режиме.
Уход от привязки к Cockpit позволил исключить дополнительные внешние зависимости, например, Cockpit содержит в зависимостях компоненты на языках Python и Си, в то время как в Agama применяются языки Ruby и Rust. Прекращение использования Cockpit также избавило разработчиков от ограничений, с которыми они столкнулись при попытках реализовать автоматический режим установки и переработать интерфейс настройки хранилищ для достижения оптимального баланса простоты для начинающих и функциональности для опытных пользователей.
Кроме того, задействование новой архитектуры значительно сократило время запуска инсталлятора и повысило его производительность, сохранив при этом возможность использования уже проверенных низкоуровневых компонентов. Из возможностей, который пока не перенесены в новую реализацию упоминаются встроенный эмулятор терминала и инструменты для управления устройствами DASD (Direct Access Storage Device) и zFCP (SCSI-over-Fibre Channel).
Кроме новой архитектуры в Agama 8 предложен полностью переработанный и более функциональный интерфейс для настройки хранилища и разбивки дисковых разделов, в котором сохранены все базовые возможности классической системы настройки хранилищ YaST и оставлены средства для расширенной кастомизации, но при этом выполнена адаптация для упрощения восприятия новичками. Например, новый интерфейс позволяет выбрать место размещения каждого раздела или логического тома LVM, примонтировать или переформатировать ранее доступные файловые системы, настроить шифрование и параметры загрузки, изменить размер разделов.
Среди изменений также отмечается новый интерфейс для выбора наборов приложений, улучшение настройки полнодискового шифрования на базе TPM, полностью переписанный сетевой стек, модернизация некоторых виджетов, улучшение интерфейсов для редактирования параметров ФС и создания пользователей, более наглядная визуализация возникающих при установке проблем, перевод на 10 языков.
Через месяц ожидается выпуск Agama 9, в котором планируется провести значительную реорганизацию web-интерфейса, реализовать пропущенные при переходе на новую архитектуру возможности, а также расширить средства для установки в автоматическом режиме, проводимой без участия человека. Целью разработки является обеспечение совместимость с AutoYaST и предоставление возможности возможности использования Agama в качестве альтернативы AutoYaST.
Источник: http://www.opennet.ru/opennews/art.shtml?num=61206