Среди изменений:
COSMIC развивается как универсальный проект, не привязанный к конкретному дистрибутиву и соответствующий спецификациям Freedesktop.
Для построения интерфейса в COSMIC задействована библиотека Iced, которая использует безопасные типы, модульную архитектуру и модель реактивного программирования, а также предлагает архитектуру, привычную для разработчиков, знакомых с языком декларативного построения интерфейсов Elm. Предоставляется несколько движков отрисовки, поддерживающих Vulkan, Metal, DX12, OpenGL 2.1+ и OpenGL ES 2.0+. Разработчикам предлагается готовый набор виджетов, возможность создавать асинхронные обработчики и использовать адаптивную компоновку элементов интерфейса в зависимости от размера окна и экрана.
Помимо использования языка Rust из особенностей COSMIC выделяются режимы гибридной мозаичной компоновки окон и стекового закрепления окон (группировка окон по аналогии со вкладками в браузере), которые могут включаться в привязке к виртуальным рабочим столам. Проектом также разрабатывается композитный сервер cosmic-comp на базе Wayland.
Среди изменений:
В новой версии помимо исправления ошибок добавлен autoconf-макрос AM_OPTIONAL_AUTOMAKE, делающий необязательной обработку указанных опций «dist-XXX» при выполнении команды «make dist». На практике, новый макрос даёт возможность пропускать создание архивов без вывода ошибки, если в системе отсутствуют необходимые утилиты сжатия. Например, операция «make dist» не будет прервана, если в настройках указаны dist-zip, dist-xz и dist-zstd, но не удалось найти утилиты zip, xz и zstd.
]]>В состав выпуска включены некоторые улучшения, бэкпортированные из выпуска Ubuntu 26.04. Предложены пакеты с ядром Linux версии 7.0 (базовое ядро Ubuntu 24.04 — 6.8). Обновлены компоненты графического стека, включая Mesa 26.0.3. Добавлены свежие версии видеодрайверов для чипов Intel, AMD и NVIDIA.
В сборках для рабочего стола (Ubuntu Desktop) новые ядро и графический стек предложены по умолчанию. Для серверных систем (Ubuntu Server) новое ядро добавлено в качестве опции в инсталляторе. Использовать новые сборки имеет смысл только для новых установок — системы, установленные ранее, могут получить все присутствующие в Ubuntu 24.04.5 изменения через штатную систему установки обновлений.
Для отката Ubuntu Desktop на базовое ядро 6.8 следует выполнить команду:
sudo apt install --install-recommends linux-generic
Для установки нового ядра в Ubuntu Server следует запустить:
sudo apt install --install-recommends linux-generic-hwe-24.04
Поддерживается трансляция видео и звука; навигация по коллекции фильмов, фотографий, электронных книг и музыки; просмотр и запись телеэфира при наличии ТВ-тюнера; синхронный совместный просмотр контента несколькими пользователями (SyncPlay); автоматическое обнаружение, каталогизация и сортировка контента; загрузка дополнительной информации (например, обложки альбомов и сведения о музыкантах); функции родительского контроля. Возможно перекодирование форматов на лету c ускорением при помощи технологий Intel QSV, NVIDIA NVENC и AMD AMF или отдача видео в исходном формате, если клиент поддерживает необходимый кодек.
Для взаимодействия с фронтэндами применяется клиент-серверная модель на основе протокола HTTP. Поддерживается вещание с использованием протоколов HLS (HTTP Live Streaming), DLNA и Google Cast (для Chromecast). Возможно расширение функциональности через плагины.
Сервер может быть запущен в Linux, macOS и Windows. Для упрощения развёртывания предлагается преднастроенный образ Docker-контейнера.
Среди изменений в новой версии:
Управление фоновым процессом и операции с сервисами может осуществляться через прямую передачу команд в UNIX-сокет или при помощи утилиты командной строки rctl. Unit-файлы с параметрами сервисов оформляются в формате UCL, который напоминает формат файлов конфигурации nginx и bind с элементами для упрощения автоматизированной обработки, заимствованными из JSON. Предоставляется возможность создания шаблонов типовых unit-файлов и написания встроенных обработчиков на языке Lua. Пример unit-файла для запуска nginx:
name = "nginx";
description = "Nginx HTTP Server";
type = "simple";
command = "/usr/local/sbin/nginx";
command_args = "-g 'daemon off;'";
provides = ["nginx", "http"];
requires = ["NETWORKING", "sshd"];
restart {
policy = "always";
max_retries = 10;
delay = 2000;
backoff = "linear";
}
process {
user = "www";
group = "www";
cpuset = "0-3";
}
rctl {
memoryuse = { action = "deny"; amount = "2g"; };
pcpu = { action = "throttle"; amount = "80"; };
}
Вместо работы с PID-файлами отслеживание активности запущенных процессов осуществляется с использованием дескрипторов, возвращаемых системным вызовом pdfork(). Имеется поддержка активации сервисов только при обращении к сетевому сокету и возможность защиты важных сервисов от принудительного завершения в случае нехватки памяти в системе. Возможно обновление версии фонового процесса rcd на лету без потери состояния.
Для ограничения доступных сервису ресурсов применяется rctl, а для полной изоляции сервисов поддерживается их запуск в jail-окружениях. Возможна настройка доступа к управляющему UNIX-сокету в привязке к отдельным сервисам. Поддерживается переход в спящий режим.
Системный менеджер полностью обратно совместим с существующей системой последовательного запуска сервисов rc.d и может работать без изменения имеющихся rc.d-скриптов и файлов конфигурации. Достаточно установить rcd на работающую систему и после перезапуска всё продолжит функционировать как раньше, за исключением сокращения времени загрузки за счёт распаралелливания запуска сервисов. Подобная совместимость упростит миграцию систем на rcd и даст возможность постепенно переводить в формат unit-файлов имеющиеся rc.d-скрипты.
Для совместимости с rc.d поддерживается специальный тип unit-ов «legacy». Rcd сканирует содержимое /etc/rc.d/ и /usr/local/etc/rc.d/, разбирает заголовки PROVIDE/REQUIRE/BEFORE/KEYWORD в скриптах, читает настройки rc.conf и определяет состояние запуска скриптов, после чего обрабатывает каждый скрипт как виртуальный legacy unit. В случае использования команды rcctl для управления подобными виртуальными unit-ами, операции транслируются в старый формат, например, выполнение «rcctl reload sshd» приведёт к запуску «/etc/rc.d/sshd reload».
]]>Основные изменения:
modprobe nvidia "NVreg_RegistryDwords=RmDisableDisplayGlitchPerfLimit=1"
Дополнительно можно отметить объявление Дэйвом Эйрли (David Airlie), мэйнтейнером стека графических драйверов в ядре Linux, о реализации поддержки в модуле ядра nouveau и Mesa-драйвере NVK рабочей станции NVIDIA DGX Spark на базе чипа NVIDIA GB10 Grace Blackwell (CPU+GPU), преподносимой как персональный суперкомпьютер для запуска автономных AI-агентов. Для достижения возможности загрузки и отображения информации при использовании драйвера nouveau потребовалось внести около 100 изменений, адаптировать драйвер для новых прошивок NVIDIA, переработать работу дисплейным контроллером и решить проблемы с использованием общей с CPU памяти без отдельной видеопамяти и L2-кэшированием.
]]>В yserver решено не поддерживать устаревшие и специфичные возможности, такие как обработка нескольких X11-экранов в одном сервере (многомониторный вывод поддерживается), отличные от TrueColor режимы цветности, непрямой рендеринг (indirect GLX), API драйверов DDX, старые методы работы со шрифтами и подключение клиентов с другим порядком следования байтов (трансляция между big-endian и little-endian).
Вывод графики организован через DRM/KMS и Vulkan-драйверы Mesa. Для управления сеансом и организации доступа к совместно используемым устройствам ввода и вывода используется библиотека libseat. Помимо обособленного X-сервера поставляется ynest — бэкенд для вложенного запуска, поддерживающий работу из Xwayland или другого X11-сервера.
Работа протестирована на системах в GPU AMD Ryzen 9 6900HX (Rembrandt, RDNA2, mesa-драйвер RADV), AMD RX580 (Polaris/GCN4, RADV), Intel i5-7200U (Kaby Lake, mesa-драйвер ANV), NVIDIA GTX 1050, Snapdragon X1 X1E80100 (Adreno X1, Turnip), Apple M1 MBA, M2 MBP, а также в системах виртуализации с virtio-gpu и виртуальным GPU Venus. Поддерживается работа в Linux и FreeBSD.
В новой версии:
Проект включает ядро/runtime, BCI-интеграцию, архитектурные спецификации, модель предоставления полномочий на основе явного согласия пользователя (consent/permissions) и инструменты real-time анализа. В настоящее время ОС AxonOS развивается для процессоров ARM Cortex-M и находится на стадии верификации работы на оборудовании и независимой проверки real-time характеристик. Архитектура AxonOS рассматривает нейрокомпьютерные интерфейсы как многоуровневую систему: нейрокомпьютерное устройство → HAL → детерминированный runtime → IPC → модель доступа permissions/consent → слоя для приложений и AI.
Основная идея проекта — создать контролируемый слой выполнения приложений, функционирующий между нейрокомпьютерным устройством и AI, в котором требования к детерминизму, изоляции, доступу к нейронным данным и времени отклика являются частью системной архитектуры, а не функцией прикладного приложения. Отдельное направление проекта — анализ максимального времени выполнения запросов (WCRT, Worst-Case Response Time) для задач с фиксированными приоритетами. Для этого развивается независимый инструмент «dy-wcet» — «no_std» Rust crate-пакет, реализованный без использования операций с плавающей запятой.
]]>