home tags events about rss login

Things happen.

opennet honked 23 Sep 2026 17:00 +0000

Доступна децентрализованная система отслеживания ошибок git-bug 0.11

Опубликован выпуск проекта git-bug 0.11.0 , развивающего систему отслеживания ошибок, хранящую информацию об проблемах и комментарии в форме объектов в репозитории Git. По аналогии с изменениями в исходном коде инструментарий git-bug позволяет помещать информацию об отслеживаемых ошибках во внешние репозитории, используя операцию push, а также извлекать данные из внешнего в локальный репозиторий операцией pull. Код проекта написан на языке Go и распространяется под лицензией GPLv3

Проект git-bug использует обычный репозиторий Git для хранения описаний проблем, базы пользователей и комментариев в версионированном виде. Децентрализованная архитектура Git позволяет работать в offline-режиме с периодической синхронизацией изменений. Из возможностей выделяется поддержка работы с сообщениями об ошибках через командную строку, консольный интерфейс или web-интерфейс, и очень быстрое выполнение операций поиска и навигации по сообщениям об ошибках. Предоставляются прослойки для синхронизации с сервисами отслеживания ошибок GitHub, GitLab, Jira и Launchpad.

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

  • Реализован новый web-интерфейс для навигации по сообщениям о проблемах. Предоставляются такие возможности как поиск и фильтрация содержимого, создание новых отчётов о проблемах, добавление и редактирование комментариев, изменение меток и статуса, просмотр профилей пользователей. Предоставляются по два варианта светлой и тёмной тем оформления. Поддерживается работа с разными репозиториями.

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

  • Решены проблемы в реализации кэша, приводившие к состояниям гонки, рассогласованию данных и неатомарной обработке коммитов.
  • В API добавлена поддержка подписки на события через GraphQL, позволяющая получать сведений об изменениях без периодического опроса состояния.
  • Для сборки релизов задействован инструментарий GoReleaser, позволивший сформировать пакеты в форматах deb, rpm, apk и pkg (Arch Linux), а также задействовать верификацию загрузок по цифровой подписи.


  • Источник: https://www.opennet.ru/opennews/art.shtml?num=66330

continue honked 23 Sep 2026 15:49 +0000

Hi @neauoire
New version of drifblim is no longer compatible with uxnmin:

$ cat tictactoe.tal | ./uxnmin drifblim.rom > tictactoe.rom
ERROR: bank 1 unsupported
Usage: in.tal out.rom

opennet honked 23 Sep 2026 14:00 +0000

Дистрибутив Peppermint OS переходит с X.Org Server на XLibre

Разработчики Linux-дистрибутива Peppermint OS , построенного на пакетной базе Debian GNU/Linux и предлагающего пользовательское окружение на основе рабочего стола Xfce и файлового менеджера Thunar, анонсировали переход на использование по умолчанию XLibre , форка X.Org Server. XLibre будет задействован в следующем обновлении iso-образов PeppermintOS, до публикации которых для тестирования предложены экспериментальные сборки .

В обозримом будущем Peppermint OS планирует оставаться на стеке X11 так как в среде рабочего стола Xfce намерены продолжать полноценную поддержку X11. По мнению разработчиков Peppermint OS, проект XLibre отлично подходит для пользователей, предпочитающих использовать X11 вместо Wayland, так как в нём продолжена работа по исправлению ошибок, сопровождению, чистке и модернизации оригинальной кодовой базы X.Org Server.

Источник: https://www.opennet.ru/opennews/art.shtml?num=66329

opennet honked 23 Sep 2026 10:00 +0000

Выпуск музыкального проигрывателя Fooyin 0.13

Состоялся выпуск музыкального проигрывателя Fooyin 0.13 , нацеленного на предоставление расширенных возможностей по настройке и адаптации программы под свои предпочтения. В Fooyin предложен набор виджетов с реализацией различных режимов управления музыкальной коллекцией и воспроизведения музыки. Дополнительные возможности могут подключаться в форме плагинов. Для настройки интерфейса предлагается конфигуратор раскладки элементов на экране. Проект написан на языке С++ с использованием библиотеки Qt и распространяется под лицензией GPLv3. Готовые пакеты сформированы для Fedora, Debian и Ubuntu, а также в формате flatpak .

Поддерживается воспроизведение файлов в формате FLAC, MP3, MP4, Vorbis, Opus, WavPack, WAV, AIFF, Musepack, Monkey's Audio, VGM и различных трековых форматов. Среди возможностей Fooyin: извлечение сведений о порядке и длительности звуковых треков из CUE-файлов, воспроизведение без пауз (gapless), создание, импорт и экспорт списков воспроизведения в форматах M3U/M3U8, фильтрация содержимого музыкальной библиотеки по любым полям, древовидное представление коллекции, редактирование тегов, визуализации при помощи спектрограмм, навигация на уровне каталогов в файловой системе с возможностью прямого воспроизведения выбранных файлов. Для внешнего управления проигрывателем может использоваться D-Bus-интерфейс MPRIS (Media Player Remote Interfacing Specification).

Наиболее заметные улучшения:

  • Добавлена поддержка воспроизведения и риппинга звуковых CD. Реализована проверка целостности файлов и верификация точности оцифровки всего диска. Предложены два режима воспроизведения CD - с использованием плейлистов и очереди треков.
  • В музыкальной библиотеке появилась поддержка сохраняемых фильтров и реализован вывод статистки популярности композиций с возможностью синхронизации с Last.fm. Реализован поиск метаданных MusicBrainz.
  • Добавлена поддержка глобальных комбинаций клавиш.
  • Добавлены настраиваемые пользователем кнопки "Run Services", к которым можно привязать запуск внешних приложений.
  • Предоставлена возможность управления громкостью, зацикливанием и повторным воспроизведением через интерфейс командной строки.
  • Добавлена настройка для блокировки перевода экрана в спящий режим.


  • Источник: https://www.opennet.ru/opennews/art.shtml?num=66320

opennet honked 23 Sep 2026 10:00 +0000

Первый выпуск scan, библиотеки разбора текста для C++ с построением конечного автомата при компиляции

Опубликован первый выпуск библиотеки scan (0.1.0), разбирающей текст в значения по шаблону, известному на этапе компиляции. Шаблон или формат записывается как аргумент шаблона C++ и превращается при компиляции в размеченный детерминированный конечный автомат (tagged deterministic finite automaton, TDFA), обход которого разворачивается по состояниям в код на этапе компиляции с использованием шаблонов C++. Результатом выполнения является значение запрошенного типа. Код проекта написан на C++23 и распространяется под лицензией GPLv3.
   import scan;

   // Совпадает ли вся строка. Каждая точка входа - ещё и адаптор диапазона.
   scan::match‹"[a-z]+@[a-z.]+">(address);
   address | scan::match‹"[a-z]+@[a-z.]+">;

   // С группами.
   const auto found = scan::match‹"([0-9]+)-([a-z]+)">("42-abc");
   found.get‹1>().to_view();            // "42"

   // Начало строки, занятое шаблоном, и первое совпадение где угодно.
   scan::starts_with‹"[a-z]+">("abc123").whole().to_view();   // "abc"
   scan::search‹"[0-9]+">("id=4210x").to_view();              // "4210"

   // Все совпадения и куски между ними - ленивые представления.
   for (const auto& one : text | scan::search_all‹"[a-z]+">) { ... }
   const auto fields = "a,bb,,ccc" | scan::split‹","> | std::ranges::to‹std::vector>();

   // Значения, а не текст.
   struct row { int id; std::string_view name; };
   const row one = scan::scan‹"{},{[a-z]+}">(line);

   // Список, сумма типов, вложенная форма.
   struct all { std::vector‹int> values; std::variant‹int, std::string_view> tail; };
   const all got = scan::scan‹"{{}{*,?}} {{[0-9]+}|{[a-z]+}}">("1,2,3 abc");

   // Начало ввода и то, что от него осталось.
   const auto [value, rest] = scan::scan_prefix‹"{},{}">(line).take‹point>();

   // По записи за раз, из чего угодно.
   for (const row& one : scan::each‹"{},{[a-z]+}\\n">(text).of‹row>()) { ... }

Диапазон, который можно прочитать лишь однажды, читается без буферизации, поля собираются по мере поступления символов. Сколько символов придётся удержать, шаблон задаёт при компиляции; там, где такого числа нет, чтение отклоняется при компиляции.

   std::istringstream source("set speed 42\\nset gain 7\\n");
   source › std::noskipws;
   struct command { scan::held‹16> name; int value; };
   for (const command& one :
        scan::each‹"set {[a-z]+} {[0-9]+}\\n">(std::views::istream‹char>(source))
            .of‹command>()) { ... }
Производительность.

Замеры проведены на Ryzen 9 9950X, clang 22.1.8 с libc++, -O3 -march=native,LTO. Тридцать две записи за проход, медиана семи проходов.

   "([a-z]+),([a-z]+),([a-z]+),([a-z]+),([a-z]+)"    "alpha,bravo,charlie,delta,echo"

     scan::scan‹f>.sentinel()      477 нс
     re2c                          554 нс
     scan::scan‹f>                 659 нс
     CTRE                          717 нс
     RE2                         15986 нс

   те же пять полей, по двести букв каждое

     scan::scan‹f>.sentinel()     57.8 нс
     re2c                          637 нс
     CTRE                          692 нс
     RE2                         11751 нс

   "first.last@subdomain.example.com"   распознавание, ничего не извлекается

     scan::match‹p>.sentinel().scalar()   436 нс
     scan::match‹p>.scalar()              545 нс
     re2c                                1186 нс
     RE2                                 2616 нс
     CTRE                               14339 нс

Свёртка групп по ходу разбора

Типу сообщается, к какой из его групп относится очередной символ, и вычисление выполняется на месте: ни одна итерация цикла не сохраняется, ни одной подстроки не создаётся.

   struct tally { unsigned long value = 0; };
   struct reading { tally number; std::string_view tail; };

   template ‹>
   struct scan::scanner‹tally> {
     static constexpr std::string_view pattern() { return R"(\\(((_+)(X|Y)*)*\\))"; }
     struct state_type { unsigned long total = 0; unsigned place = 0, marks = 0; };
     static constexpr state_type begin_groups() { return {}; }
     static constexpr void opened_group(state_type& one, scan::group_at‹0>) {
       one.place = 0; one.marks = 0;
     }
     static constexpr void closed_group(state_type& one, scan::group_at‹0>) {
       unsigned long weight = 1;
       for (unsigned step = 1; step ‹ one.place; ++step) weight *= 10;
       one.total += weight * one.marks;
     }
     static constexpr void push_group(state_type& one, scan::group_at‹1>, char) {
       ++one.place;
     }
     static constexpr void push_group(state_type& one, scan::group_at‹2>, char letter) {
       one.marks += letter == 'Y' ? 2u : 1u;
     }
     static constexpr tally finish_groups(state_type one) { return {one.total}; }
   };

   const reading got =
       scan::scan‹"value={}{[a-z]*}">("value=(__X_XX)abcdefgh").of‹reading>();
   // got.number.value == 12, got.tail == "abcdefgh"
heap scan::scan‹f>.scalar() написанное вручную scan::scan‹f>
10 141 ns 41.4 ns 42.5 ns 170 ns
100 439 ns 341 ns 392 ns 1176 ns
1000 3314 ns 3170 ns 3797 ns 11887 ns



Контексты и аллокаторы

Любой объект вызывающей стороны - аллокатор, пул, арену, что угодно ещё - можно передать в тот вызов, который создаёт значение. Тип контекста при этом не теряется: состояние сканера и каждый его хук могут быть шаблонами по нему, так что в сканере не упомянут ни один тип вызывающей стороны.

   struct arena {
     std::pmr::memory_resource* where = nullptr;
     std::pmr::memory_resource* resource() const { return where; }
   };

   struct numbers { std::pmr::vector‹int> values; };
   struct both { numbers left; numbers right; };

   template ‹>
   struct scan::scanner‹numbers> {
     static constexpr std::string_view pattern() { return "([0-9]+)(?:,([0-9]+))*"; }

     template ‹class Told>
     struct state { std::pmr::vector‹int> values; int running = 0; };

     static state‹scan::default_context_t> begin_groups() { return {}; }

     template ‹class Told>
       requires requires(const Told& one) { one.resource(); }
     static state‹Told> begin_groups(const Told& told) {
       return {std::pmr::vector‹int>(told.resource()), 0};
     }

     template ‹class Told, std::size_t Which>
     static void push_group(state‹Told>& one, scan::group_at‹Which>, char digit) {
       one.running = one.running * 10 + (digit - '0');
     }
     template ‹class Told, std::size_t Which>
     static void closed_group(state‹Told>& one, scan::group_at‹Which>) {
       one.values.push_back(one.running);
       one.running = 0;
     }
     template ‹class Told>
       static numbers finish_groups(state‹Told> one) { return {std::move(one.values)}; }
   };

   std::pmr::monotonic_buffer_resource bytes;
   const arena mine{&bytes};

   scan::scan‹"{} {}">(text).of‹both>(mine);                            // один на оба места
   scan::scan‹"{} {}">(text).of‹both>(mine, scan::default_context);     // по одному на место
   scan::scan‹"{} {}">(text).of‹both>({mine, scan::default_context});   // то же в скобках
   const both got = scan::scan‹"{} {}">(text).with(mine);

   // Контексту не обязательно быть своим типом: аллокатор доходит до того,
   // что строит чтение.
   struct two { std::pmr::string name; std::pmr::string tail; };
   const two kept = scan::scan‹"{[a-z]+} {[a-z]+}">(text).of‹(
       std::pmr::polymorphic_allocator‹>(&bytes));


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


Прочие особенности

  • Два слоя: слой шаблонов (match, starts_with, search, search_all, split) и слой форматов, где "{}" - поле, а значение места определяют поля самого типа.
  • Правило разрешения неоднозначности - leftmost-first, как в Perl, RE2 и CTRE.
  • Всё перечисленное работает и в константных выражениях.
  • Нет lookaround, обратных ссылок и свойств Unicode; шаблоны работают с байтами.
  • Не поддерживаются шаблоны, известные только во время выполнения.
  • Сборка

    Собирается в clang и GCC. Модули C++ не обязательны: доступны заголовочные файлы (include/), которые генерирует из тех же модулей утилита demodulizer - каждый push в main пересобирает, линкует и коммитит их обратно. Единственная зависимость, Boost.PFR, не нужна при включённых binding packs из C++26.

       FetchContent_Declare(scan
         GIT_REPOSITORY https://github.com/j4niwzis/scan.git
         GIT_TAG        v0.1.0)
       FetchContent_MakeAvailable(scan)
       target_link_libraries(mine PRIVATE scan::scan)
    


    Источник: https://www.opennet.ru/opennews/art.shtml?num=66327

opennet honked 23 Sep 2026 09:00 +0000

Выпуск системного менеджера systemd 262

После трёх месяцев разработки доступен релиз системного менеджера systemd 262 . В новой версии реализовано встраивание в процесс минимального набора unit-файлов, обеспечена поддержка сборки со статическим связыванием, проведена интеграция c dm-clone для клонирования блочных устройств, добавлено ведение БД установленных файлов в systemd-sysupdate и обеспечена криптографическая верификация отчётов systemd-report.

Среди изменений в новом выпуске:

  • В исполняемый файл системного менеджера встроен набор базовых unit-файлов (basic.target, sysinit.target, multi-user.target, reboot.target, shutdown.target, systemd-poweroff.service и т.п.), которые используются при невозможности загрузить unit-файлы с диска. Подобное встраивание позволяет запускать контейнеры с init-процессом (PID1) на базе systemd без установки unit-файлов.
  • Добавлена поддержка сборки в форме одного статически скомпонованного исполняемого файла, который может применяться для инициализации и запуска сервисов в контейнерах с минимальной начинкой. Для сборки со статическим связыванием при запуске meson следует указать флаги: "--default-library=static --prefer-static -Dbuild-static=true -Dsystemd-multicall-binary=true".
  • Интегрирована поддержка модуля ядра dm-clone, позволяющего на основе доступного в режиме только для чтения блочного устройства создать его клон, допускающий запись. Настройки из /etc/clonetab обрабатываются systemd-clonesetup-generator и сохраняются в форме юнитов systemd-clonesetup@.service, привязанных к clonesetup.target. Для создания и удаления клонов блочных устройств добавлена утилита systemd-clonesetup.
  • Расширены возможности инструментария systemd-sysupdate, предназначенного для автоматического определения, загрузки и установки обновлений с использованием атомарного механизма замены разделов, файлов или каталогов (используются два независимых раздела/файла/каталога, на одном из которых находится текущий работающий ресурс, а на другом устанавливается очередное обновление, после чего разделы/файлы/каталоги меняются местами). Реализовано поддержание БД с информацией о всех установленных файлах. Добавлена команда "systemd-sysupdate cleanup" для удаления файлов, ставших лишними после обновления системы или не соответствующих текущему шаблону конфигурации. Добавлены команды "systemd-sysupdate enable-feature/disable-feature/enable-component/disable-component" для управления включением функциональности и компонентов. Реализована концепция рекомендуемых компонентов, например, командой "systemd-sysupdate enable-component --component-suggested" могут быть включены драйверы, необходимые для работы имеющегося оборудования. В команду "systemd-sysupdate update" добавлена опция "--component-all" для обновления разом всех компонентов.
  • В systemd-report добавлена опция "--sign=", реализующая возможность заверения цифровой подписью отчётов, выдаваемых командами "generate" и "upload". Предложены три бэкенда для заверения отчётов: systemd-report-sign-plain (Ed25519), systemd-report-sign-tsm (configfs TSM) и systemd-report-sign-tpm2 (TPM2 PCR).



  • Для сглаживания нагрузки в случае массового перезапуска сервисов после сбоев предложен параметр RestartRandomizedDelaySec, добавляющий случайную задержку перед автоматическим перезапуском сервиса, ограниченную заданными рамками.
  • В slice-юниты добавлен параметр ActivatingConcurrencyMax для ограничения максимального числа одновременно активированных юнитов в иерархии.
  • Для сервисов реализован параметр LUOSession, предназначенный для создания сеансов Live Update Orchestrator, применяемых для обновления ядра в Live-режиме без остановки работы и не теряя состояние системы, устройств и процессов.
  • В socket-юнитах реализованы параметры XAttrEntryPoint, XAttrListen и XAttrAccept, позволяющие прикреплять к UNIX-сокетам расширенные атрибуты (xattr) для их маркировки.
  • Для автоматического назначения легко запоминаемых имён хостов (/etc/hostname) реализован новый символ подстановки "$", заменяемый на элемент из списка слов, выбранный через хэширование с привязкой к идентификатору системы.
  • В утилиту run0 добавлены sudo-совместимые опции -k/--reset-timestamp, -K/--remove-timestamp и -v/--validate для отзыва или обновления временной авторизации, выполненной через polkit.
  • В утилиту systemd-escape добавлена опция "--stdin" для чтения строк из стандартного ввода.
  • В vconsole добавлена переменная окружения FONT_SCALE для настройки уровня масштабирования шрифтов по аналогии с параметром ядра vconsole.font_scale (из значений пока поддерживается только 100% и 200%).
  • Во все команды, поддерживающие опцию "--help", добавлена опция "--introspect-cli" для вывода подсказки в формате JSON для упрощения автоматизации проверки наличия требуемых опций из надстроек и скриптов.
  • При аутентификации с использованием токенов FIDO2 обеспечен показ счётчика оставшихся попыток введения PIN-кода.
  • В systemd-networkd в секции "[Match]" файлов .link, .network и .netdev добавлена проверка MachineTag, позволяющая привязать настройки сети к наличию или отсутствию определённых тегов. В команду "networkctl reload" добавлена опция "--no-reconfigure" для перезагрузки файлов .network и .netdev с диска без перенастройки существующих сетевых линков. В файлах .network в параметрах IPoIB, IPVLAN, IPVTAP, MACsec, MACVLAN, MACVTAP, Tunnel, VLAN, VXLAN и Xfrm разрешено указывать несколько имён сетевых устройств, разделённых пробелом.
  • В systemd-journald механизм FSS (Forward Secure Sealing), позволяющий гарантировать неизменность логов, переведён на использование криптофункций из библиотеки OpenSSL вместо libgcrypt. Библиотека libsystemd больше не связывается с libgcrypt.
  • В утилиту systemd-sysctl добавлена опция "--verify", при которой значение параметра sysctl читается после выставления и сверяется с исходным значением для проверки было ли применено изменение. Добавлены опции "--save=FILENAME" и "--revert=FILENAME" для сохранения и восстановления настроек sysctl, размещённых в каталоге /run/sysctl.d/.
  • Добавлена поддержка сборки с библиотекой OpenSSL 4.


  • Источник: https://www.opennet.ru/opennews/art.shtml?num=66326

opennet honked 22 Sep 2026 21:00 +0000

Релиз операционной системы NetBSD 10.2

Опубликован релиз операционной системы NetBSD 10.2 , который отнесён к категории корректирующих обновлений и включает в основном исправления проблем и уявзимостей, выявленных с момента публикации NetBSD 10.1 в декабре 2024 года. Ветка NetBSD 10 будет поддерживаться до релиза NetBSD 12.0. Для загрузки подготовлены установочные образы размером 639 МБ, доступные в сборках для 57 системных архитектур и 16 различных семейств CPU. Для новых установок рекомендуется использовать недавно опубликованный релиз NetBSD 11.0 .

Из не связанных с исправлением ошибок изменений отмечается поддержка новых версий компиляторов, повышение стабильности работы WiFi-драйвера iwm, решение проблем при работе на системах Olimex A64 и MIPS R5000SC, реализация возможности загрузки ядра для amd64 при вызове qemu с опцией "-kernel". Добавлена поддержка устройств ASIX AX88179A USB Ethernet, Asus USB-N10 Nano B1 Wi-Fi, Realtek RTL8126 5Gbps Ethernet, RTL8125D (rev 0x6890000), RIoTboard i.MX6S IOMUX, VMware PV SCSI. Устранены уязвимости в ipfilter, telnet, TCP-стеке ядра, OpenSSL, Unbound и X.Org. Обновлены версии openssl 3.0.21, tmux 3.6a и xkbcomp 1.5.0.

Источник: https://www.opennet.ru/opennews/art.shtml?num=66324

opennet honked 22 Sep 2026 20:00 +0000

Выпуск операционной системы Solaris 11.4 SRU95

Компания Oracle опубликовала выпуск операционной системы Solaris 11.4 SRU 95 (Support Repository Update), в котором предложена серия значительных изменений и улучшений для ветки Solaris 11.4 . Для установки предложенных в обновлении исправлений достаточно выполнить команду 'pkg update'. Пользователи также могут воспользоваться бесплатной редакцией Solaris 11.4 CBE (Common Build Environment), развиваемой с использованием модели непрерывной публикации новых версий.

Среди изменений в новой версии:

  • В команде "zpool monitor" реализована поддержка выбора нескольких провайдеров (отслеживаемых подсистем, таких как send, receive, destroy, scrub и resilver) и задания провайдера по умолчанию.
  • Добавлена возможность использования формата CTF (Compact C Type Format) с таблицей отладочных символов .SUNW_ldynsym для вывода информации о типах и именах функций.
  • В компоновщик ld добавлена опция "-zrelax=relocfit" и флаг DF_SUNW_RELAX_RELOCFIT для ELF-файлов, включающие гибкий режим упаковки перемещений адресов (relocation).
  • Обновлены версии программ, среди которых Ansible Core 2.21.1, Apache HTTP Server 2.4.67, BIND 9.20.23, Erlang 28.5.0.2, Firefox 140.10.0esr, Go 1.25.11, MySQL 8.4.10, OpenSSH 10.4p1, Rust 1.96.0, SQLite 3.53.2, Vim 9.2.0513.
  • Устранены уязвимости в 7-Zip, Ansible Core, Apache HTTP Server, Apache Tomcat, BIND, Django, Elixir, Erlang, Firefox, Thunderbird, Go, GnuTLS, ImageMagick, libarchive, libexpat, libgcrypt, libsodium, MySQL, NSS, OpenSSH, Rust, SQLite, Squid, Vim и Wireshark, GNOME , Avahi, curl, libtiff, Memcached, Net-SNMP, ProFTPD, CUPS, jq, Kerberos, Node.js, Perl, Python, Samba и компонентах стека X11.

    Источник: https://www.opennet.ru/opennews/art.shtml?num=66323

opennet honked 22 Sep 2026 19:00 +0000

Выпуск медиаплеера VLC 3.0.24 с устранением 130 уязвимостей

Представлен выпуск мультимедийного проигрывателя VLC 3.0.24 . Код написан на языке Си и распространяется под лицензией LGPLv2.1. В VLC и во встроенных библиотеках устранено более 130 проблем с безопасностью, вызванных переполнениями буфера, обращением к памяти после её освобождения, целочисленными переполнениями и двойным освобождением памяти (детали пока не раскрываются ). Некоторые из уязвимостей могут эксплуатироваться при обработке специально оформленного контента.

Среди изменений, не связанных с уязвимостями и исправлением ошибок:

  • Добавлена поддержка декодирования звуковых форматов Atrac3 и Atrac9 (Adaptive Transform Acoustic Coding).
  • Добавлен декодировщик для формата APV (Advanced Professional Video).
  • Реализована поддержка субтитров CEA-708 в мультимедийном контейнере MP4.
  • В распаковщик медиаконтейнеров MPEG добавлена поддержка метаданных ID3v2.
  • На платформе Windows реализована возможность захвата видео в формате NV12, используя API DirectShow.
  • В реализации протокола SRT (Secure Reliable Transport) появилась поддержка режима приёма запросов на соединение (listener).
  • Улучшена логика определения языка субтитров по именам файлов и метаданным SSA/ASS.
  • Добавлена поддержка обращения к контенту по протоколу SFTP, используя аутентификацию по открытым ключам.
  • Улучшено определения сетевых разделов SMB2.
  • Добавлена поддержка сборки пакета в формате Flatpak.
  • Удалены плагины NPAPI и youtube.lua. Отключена по умолчанию сборка плагина RealRTSP.
  • Осуществлён переход на использование нового ключа RSA-4096 для верификации обновлений.
  • Обновлено 49 сторонних библиотек. Пакет FFmpeg обновлён с версии 4.4 до 8.1.2.


  • Источник: https://www.opennet.ru/opennews/art.shtml?num=66322

contrinitiator bonked 22 Sep 2026 13:39 +0000
original: petez@mk.phreedom.club

С одной стороны есть намерение сесть в лодку и устроить себе сплав из Оки в Волгу и дальше вниз по течению, сколько влезет. Посмотреть на Дятловых горы в золотой осени. С другой стороны - не хочется суетиться. Нужно делать массу телодвижений: частично собрать разобрать лодку, подготовить снаряжение, отвезти на точку старта. Это лень делать. Очень.

Последние две недели у меня было слишком много работы и слишком мало времени - не было сил даже на вел залезть. Все лишнее уходило в сон. С одной стороны я вроде смог за выходные отдохнуть, с другой стороны - очень не хочется совершать лишних телодвижений. К своим нежеланиям я склонен прислушиваться. С другой стороны - этим летом мне движка не хватило. На велосипед я на этой неделе сяду, а вот пока с псевдопоходом как быть - хз. Оставить себя в покое или выйти из зоны комфорта?

opennet honked 22 Sep 2026 12:00 +0000

Компания Valve представила экспериментальный видеокодек Pyrowave

Компания Valve объявила о включении в состав бета-версии клиента Steam видеокодека Pyrowave, оптимизированного для потокового вещания видео с низкими задержками в сетях с высокой пропускной способностью. Кодек добавлен в качестве опции в сервис Steam Remote Play, позволяющий вести вещания игрового процесса или транслировать вывод на свою систему при игре на других устройствах. В Linux-версии кодек становится доступен при активации в настройках режима Steam SteamRT3 Steam Client. Реализация кодека написана на языке C++ и распространяется под лицензией MPL.

Кодек поддерживает только раздельное кодирование каждого кадра (intra-only), независимо от соседних кадров (все кадры являются ключевыми, межкадровое сжатие не используется). Подобный подход позволяет добиться очень высокой точности передачи картинки и исключить появление артефактов при движении и резкой смене заднего плана. При кодировании изображений применяется дискретное вейвлет-преобразование с фильтром CDF 9/7 , по аналогии с форматом JPEG2000, и тривиальным энтропийным кодированием, позволяющим эффективно распараллеливать вычисления.

Кодек очень требователен к пропускной способности канала связи - по сравнению с другими потоковыми кодеками Pyrowave требует передачи в 5-10 раз больше трафика. Рекомендовано использование кодека для трансляции и доступа к играм в локальной сети с подключением к гигабитным портам Ethernet. По умолчанию битрейт выбирается автоматически в зависимости от контента, но при ограниченной пропускной способности сетей предоставляется настройка для задания верхней границы битрейта (допустимые значения от 100 до 500 Mbit/s).

Pyrowave оптимизирован для очень быстрого кодирования и декодирования с задействованием GPU и полностью реализован в форме вычислительных шейдеров. При наличии достаточной пропускной способности (битрейт на уровне ~200+ mbit/s) кодек демонстрирует минимальные задержки на уровне 0.1 мс при качестве 1080p и 0.2 м при качестве 4K. Для устойчивости к потере пакетов в Pyrowave применяется изолированное кодирование блоками 64x64.

Поддерживается HDR и цветовые пространства YCbCr 4:2:0 и 4:4:4. HDR включается автоматически при его поддержке на стороне хоста и клиента. Формат кодирования цвета 4:4:4 требует более ресурсоёмких вычислений и увеличивает трафик, поэтому отключён по умолчанию и рекомендован для активации при трансляции рабочего стола или необходимости повышения читаемости текста на видео.

Источник: https://www.opennet.ru/opennews/art.shtml?num=66317

opennet honked 21 Sep 2026 20:00 +0000

Проект Convey развивает форк почтового клиента Geary

Опубликован почтовый клиент Convey , продолжающий развитие проекта Geary , новые версии которого не публиковались с мая 2024 года. Наиболее заметным отличием от Geary является переход на использование библиотек GTK4 и libadwaita. Код написан на языке Vala и распространяется под лицензией LGPL.

Среди изменений:

  • Добавлен бэкенд Microsoft Graph для работы с учётными записями Outlook и Microsoft 365.
  • Предоставлена возможность создания, переименования и удаления папок из боковой панели, а также создания вложенных папок через контекстное меню.
  • Переработан код автодополнения вводимых адресов.
  • Плагины переведены на использование libpeas-2, gcr-4 и gck-2.
  • Библиотеки libcanberra и gsound звменены на GStreamer для воспроизведения звуков уведомлений.
  • Возможность навигации по панелям при помощи клавиатуры.
  • Обновлены пиктограммы.
  • Добавлен режим "All Inboxes" для показа входящих сообщений для всех учётных записей.


  • Источник: https://www.opennet.ru/opennews/art.shtml?num=66315

opennet honked 21 Sep 2026 19:00 +0000

Выпуск дистрибутива MX Linux 25.3

Опубликован релиз легковесного дистрибутива MX Linux 25.3 , созданного в результате совместной работы сообществ, образовавшихся вокруг проектов antiX и MEPIS . Выпуск основан на пакетной базе Debian с улучшениями от проекта antiX и пакетами из собственного репозитория. В дистрибутиве на выбор можно использовать системы инициализации sysVinit и systemd. Поставляются собственные инструменты для настройки и развёртывания системы. Для загрузки доступны 64-разрядные сборки (x86_64) с рабочим столом Xfce (2.7 ГБ), а также сборки с рабочим столом KDE (3.4 ГБ) и сборки (2.3 ГБ) с оконным менеджером Fluxbox.

В новом выпуске:

  • Осуществлена синхронизация с пакетной базой Debian 13.7. Ядро Linux обновлено до версии 6.12.107.
  • Обновлены сборки с расширенной поддержкой оборудования (AHS), которые поставляются с Xfce, ядром 7.2 c патчами от проекта liquorix и Мesa 26.1.4.
  • Обновлён интерфейс утилит MX-Welcome, MX-Tools и custom-toolbox.
  • Добавлена утилита Verify-iso-sig для проверки iso-образов по цифровой подписи.
  • Добавлена утилита MX-Theme-Colors, для создания собственных цветовых тем на основе существующих тем оформдения GTK.


  • Источник: https://www.opennet.ru/opennews/art.shtml?num=66314

opennet honked 21 Sep 2026 19:00 +0000

Выпуск утилиты для загрузки web-контента GNU Wget2 2.3.0

Опубликован релиз проекта GNU Wget2 2.3.0 , развивающего переписанный с нуля и полностью переработанный вариант программы для автоматизации рекурсивной загрузки контента GNU Wget . Wget2 предоставляет набор дополнительных опций, поддерживает загрузку в несколько потоков, позволяет использовать доступную функциональность через библиотеку libwget, поддерживает протоколы HTTP/2 и TLS 1.3, даёт возможность загружать только изменившиеся данные, может сохранять данные с серверов потокового вещания, корректно обрабатывает интернационализированные доменные имена и может перекодировать загружаемое содержимое. Утилита wget2 поставляется под лицензией GPLv3+, а библиотека под LGPLv3+.

В новой версии основное внимание уделено исправлению ошибок, из изменений в функциональности выделяется расширение поддержки платформы OS/2, обеспечение конвертации ссылок в CSS при указании опции "--convert-links", поддержка атрибута srcdoc в элементе iframe, разбор HTML-тегов data-src и data-srcset, опция "--spider -S" для показа заголовков без загрузки содержимого и опция "--progress=dot" для визуализации прогресса выполнения загрузки.

Источник: https://www.opennet.ru/opennews/art.shtml?num=66313

opennet honked 21 Sep 2026 17:00 +0000

Представлены первые ноутбуки Googlebook, оснащённые Android

Компания Google объявила о доступности для предзаказа трёх первых моделей ноутубков Googlebook , созданных компаниями Acer, Dell и Lenovo (в разработке также находятся модели от ASUS и HP). Отправка устройств по предзаказам начнётся 4 октября. Серия Googlebook построена на базе платформы Android 17 и идёт на смену устройствам Chromebook, поставлявшимся с операционной системой ChromeOS. Платформа Googlebook преподносится как переход от традиционных операционных систем к умным системам, в которые тесно интегрированы AI-сервисы.

Интерфейс пользователя основан на реализованном в Android десктоп-режиме для больших экранов, позволяющем одновременно работать с окнами нескольких приложений по аналогии с традиционной средой рабочего стола. Из Android также задействованы ядро Linux, GKI-модули (Generic Kernel Image), компоненты взаимодействия с оборудованием (HAL), Android Runtime, Android API, системные фоновые процессы и библиотеки. Из Chrome OS перенесён интерфейс запуска приложений (Launcher), файловый менеджер, а также отдельные системные сервисы.

Поддерживается бесшовное взаимодействие со смартфонами на базе платформы Android и предоставляется возможность устанавливать созданные для Android приложения из каталога Google Play. Из интерфейса Googlebook также можно запускать приложения, установленные на связанном смартфоне, не доставая смартфон и не переустанавливая приложения на ноутбуке. В файловом менеджере предоставляется доступ к содержимому Android-смартфонов и имеется возможность переносить, просматривать и искать файлы на разных Android-устройствах пользователя.

В платформу встроен AI-ассистент Gemini, который активируется при помощи умного курсора - достаточно подёргать курсор из стороны в сторону, и курсор перейдёт в режим вывода контекстных подсказок, появляющихся при его наведении на любой интересующий контент на экране. Например, после наведения курсора на дату в письме AI-ассистент предложит назначить встречу, а при выборе курсором нескольких изображений можно сгенерировать новое изображение на их основе. Подобным образом можно сравнивать контент и задавать AI-ассистенту вопросы о содержимом. Gри помощи AI также осуществляется создание пользовательских виджетов - достаточно нажать кнопку создания виджета и естественным языком описать, что хочется получить.

В базовую поставку входят такие приложения, как Google Chrome, Google Docs, Gmail, Google Drive, Google Gemini, Google Calendar, Google Photos и YouTube. Помимо Android-приложени и игр из Google Play, предоставляется возможность установки Adobe Photoshop, Adobe Lightroom, CapCut, Microsoft 365. Для запуска игр, выпускаемых для ПК, можно использовать сервис GeForce NOW. Возможен просмотр видео с платформ Netflix и HBO Max. Для запуска Linux-программ поставляется изолированное окружение, для строгой изоляции памяти в котором применяется pKVM (Protected KVM).

Доступные для предзаказа устройства:

  • Lenovo Googlebook ($1,349) 15.3” (2880 x 1800), Intel Core Ultra 5 325, NPU (Neural Processing Unit), ОЗУ 16GB LPDDR5X, 512GB NVMe SSD, Wifi 7, Bluetooth 5.4, 2x USB Type-C Thunderbolt 4, 1x USB 3.2 Type-A, 3.5mm Audio, HDMI 2.0, аккумулятор 70 Wh (до 13 часов автономной работы), вес 1.281 кг.
  • Dell XPS Googlebook ($1,199) 13.4" (2560 x 1600), Qualcomm Snapdragon X Elite X1E-80-100, NPU, ОЗУ 16GB LPDDR5X, 512GB PCIe Gen 4 SSD, Wifi 7, Bluetooth 5.4, 2x USB Type-C 3.2 (10Gbps) с DisplayPort 1.4, аккумулятор 52 Wh (до 18 часов автономной работы), вес 1 кг.
  • Acer Googlebook ($899) 14.0" (2880 x 1800), Intel Core Ultra 5 325, NPU, ОЗУ 16GB LPDDR5X, 512GB PCIe Gen 4 SSD, Wifi 7, Bluetooth 6, USB Type-C 3.2 (10Gbps) с DisplayPort 1.4 через USB Type-C, аккумулятор 71 Wh (до 16 часов автономной работы), вес 1.139 кг.


  • Источник: https://www.opennet.ru/opennews/art.shtml?num=66312

continue honked 21 Sep 2026 09:00 +0000

Лекции Петра Рябова -- Апология "Единственного": проповедник полного освобождения личности Макс Штирнер

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

continue honked 21 Sep 2026 08:36 +0000

В связи с распространением контента от генеративных моделей термин "де-генеративное искусство" заиграл новыми красками

continue bonked 21 Sep 2026 06:20 +0000
original: gustav@merveilles.town

Feeling the urge to finally add support for the #uxn file device to uxnfloppy.. and finally boot it from a floppy..

Then just spend the evenings copying roms to floppys.. from uxn :0

opennet honked 20 Sep 2026 19:00 +0000

Valve опубликовала инструментарий Lepton для запуска Android-игр в Linux

Компания Valve развивает инструментарий Lepton , позволяющий запускать в Linux игры, поставляемые для платформы Android. Проект рассчитан на интеграцию со Steam Client и создан для предоставления возможности запуска Android-игр с поддержкой устройств виртуальной реальности на VR-шлеме Steam Frame , поставляемом с Linux.

Lepton формирует изолированный контейнер с системным образом платформы Android, включающий всё необходимое для запуска Android-игр. Начинка сформирована c использованием патчей и компонентов от проектов Waydroid, Anbox, Halium и Hybris. Наработки для сборки образа с Android, применяемого для исполнения игр в Linux, распространяются под лицензией GPLv3, а инструментарий для организации процесса запуска игр с использованием подготовленного образа - под лицензией MIT.

В Lepton также включены дополнительные возможности, помогающие разработчикам игр перенести свои Android-игры в Steam. В формируемое Android-окружение пробрасываются используемые в хостовой ОС библиотеки Steam/Steamworks, графические драйверы (mesa, zink) и Vulkan-прослойки для оптимизации рендеринга и снижения детализации по краям экрана. Поддерживается интеграция с различными отладчиками (strace, gdb, lldb, renderdoc) и профилировщиками (perfetto).

Отличия Lepton от существующих проектов, реализующих окружения для запуска Android-приложений в Linux:

  • Запуск под непривилегированным пользователем и отсутствие настроек и действий для которых нужны права root.
  • Все процессы в Lepton запускаются под одним непривилегированным пользователем. Отсутствует изоляция между играми, запускаемыми в Android-окружении - предполагается, что каждая Android-игра запускается в отдельном Android-контейнере.
  • Lepton не рассчитан на универсальное применение и содержит только минимальную функциональность, необходимую для запуска игр. Отключены многие Android-сервисы, не применяемые в играх.
  • Кэширование состояния различных компонентов для ускорения запуска Android-окружений.


  • Источник: https://www.opennet.ru/opennews/art.shtml?num=66309

continue bonked 20 Sep 2026 07:50 +0000
original: rl_dane@polymaths.social

@c64whiz

Have you thought about picking up something new?

Try a new OS: One of the BSDs, Haiku, RedoxOS, ArcaOS, AROS?

Try a new programming language: FreePascal/Haiku, Go, Hare, Nim, Zig?

Try a new environment: #uxn, Classic Mac VM, Bootstrapping your own tools on a C64, FreeDOS, PC Engine, RiscOS?

opennet honked 20 Sep 2026 06:00 +0000

Опасные уязвимости в ядре Linux, KVM, Exim, Unbound, Ghostscript и Suricata

Несколько недавно выявленных опасных уязвимостей, позволяющих получить root-доступ в системе или добиться удалённого выполнения кода.
  • Раскрыты сведения о четырёх уязвимостях в ядре Linux, дающих непривилегированному локальному пользователю возможность выполнить код с правами root. Проблемы устранены в обновлениях ядра Linux 5.10.270, 5.15.221, 6.1.188, 6.6.157, 6.12.109, 6.18.50 и 7.2.4. Для всех уязвимостей подготовлены эксплоиты, работа которых продемонстрирована в Fedora 43/44 и Ubuntu 24.04. Для эксплуатации первых трёх уязвимостей требуется возможность создания пространств имён идентификаторов пользователей (user namespace) или наличие прав CAP_NET_ADMIN, а также включение поддержки подсистем, в которых присутствуют уязвимости (AH6/XFRM, TUN, PPPoE и SCTP).
    • DirtyAH6 (CVE-2026-80844, эксплоит) - переполнение буфера в обработчике IPsec AH (Authentication Header), возникающее из-за отсутствия проверки указанных в заголовке значений. Помимо локального осуществления атаки, уязвимость при специфичных условиях теоретически может быть эксплуатирована удалённо.
    • TUNderflow (CVE-2026-81000, эксплоит) - запись за пределы выделенного буфера при разборе некорректно оформленного TUN-пакета.
    • PPPoEject (CVE-2026-68121, эксплоит) - обращение к уже освобождённой памяти в драйвере PPPoE.
    • DiagSpill (CVE-2026-74469, эксплоит) - переполнение буфера в средствах диагностки протокола SCTP. Помимо локального осуществления атаки, уязвимость при специфичных условиях теоретически может быть эксплуатирована удалённо.
    • Уязвимость (CVE-2026-89775) в гипервизоре KVM, позволяющая получить доступ к хост-окружению из гостевой системы. При наличии доступа непривилегированных пользователей к устройству /dev/kvm (по умолчанию в RHEL) уязвимость также можно использовать для повышения своих привилегий в системе. Проблема проявляется только на системах с архитектурой ARM64 при включённой поддержке вложенной виртуализации. Уязвимость вызвана тем, что процедура расчёта размера возвращала "0", подразумевая, что размер неизвестен, а функция освобождения страниц памяти обрабатывала "0" как фактическое значение и не очищала страницы памяти.
    • В выпуске почтового сеовера Exim 4.100.1 устранены 4 уязвимости: чтение данных из области за границе буфера и использование неинициализированных данных в реализации протокола Proxy; обращение к памяти после её освобождения в TLS-on-connect при использовании GnuTLS; подстановка сообщения в чужой поток (SMTP smuggling).
    • В пакете Ghostscript 10.08.0 устранена уязвимость (CVE-2026-39919), вызванная переполнением буфера в коде для разбора формата JPEG 2000 при указании некорректных значений субсэмплинга. Проблема может привести к выполнению кода при обработке в Ghostscript специально оформленных файлов PDF с интегрированными изображениями в формате JPEG 2000. Опасность уязвимости усугубляет то, что Ghostscript вызывается в процессе создания миниатюр на рабочем столе, при фоновой индексации данных и при преобразовании изображений. Для успешной атаки во многих случаях достаточно просто загрузить файл с эксплоитом или просмотреть каталог с ним в Nautilus. Уязвимости в Ghostscript также можно эксплуатировать через обработчики изображений на базе пакетов ImageMagick и GraphicsMagick, передав в них JPEG или PNG-файл, в котором вместо картинки находится код PostScript (такой файл будет обработан в Ghostscript, так как MIME-тип распознаётся по содержимому, а не полагаясь на расширение). Проблема устранена в Ghostscript 10.08.0.
    • В DNS-сервере Unbound 1.26.1 устранено 9 уязвимостей, среди которых проблема CVE-2026-81642, приводящая к переполнению буфера при обработке определённых DNSKEY. Уязвимость может использоваться для удалённого выполнения кода на сервере. Также устранены: переполнение буфера в коде работы с DNSSEC, повреждение данных в памяти в обработчике CNAME, обращение к уже освобождённой памяти в коде DoQ и DoH.
    • В системе обнаружения и предотвращения атак Suricata 8.0.7 устранено 67 уязвимостей, из которых две помечены как критические. Сведения о проблемах пока не раскрываются, но судя по уровню опасности уязвимости допускают удалённое выполнение кода при обработке специально оформленного трафика.


    • Источник: https://www.opennet.ru/opennews/art.shtml?num=66310

opennet honked 19 Sep 2026 13:00 +0000

Новые версии Wine 11.18 и Wine-staging 11.18

Опубликован экспериментальный выпуск открытой реализации Win32 API - Wine 11.18 . С момента выпуска 11.17 был закрыто 44 отчёта об ошибках и внесено 380 изменений.

Наиболее важные изменения:

  • В прослойке симуляции ядра NT (ntoskrnl.exe) реализованы функции PsGetThreadProcess, PsGetProcessPeb, PsGetContextThread, PsReferencePrimaryToken, MmGetPhysicalMemoryRanges, SeLocateProcessImageName, MmGetVirtualForPhysical, KeCapturePersistentThreadState, PsDereferencePrimaryToken, PsGetProcessImageFileName, необходимые для корректной поддержки драйверов устройств.
  • В поставляемые для языка Си заголовочные файлы внесены исправления для повышения совместимости.
  • Закрыты отчёты об ошибках, связанные с работой приложений: QuickTime 2.x, Adobe Creative Cloud, Adobe Express Photos, SlingPlayer 1.5.
  • Закрыты отчёты об ошибках, связанные с работой игр: Assassin's Creed Rogue, Super Meat Boy, Screamer 4x4 1.2, Enclave, Star Wars: Knights of the Old Republic, Return to Krondor, The Bard's Tale IV Director's Cut.
  • Отдельно сформирован выпуск проекта Wine Staging 11.18, предоставляющего расширенные сборки Wine, включающие не полностью готовые или рискованные патчи, пока непригодные для принятия в основную ветку Wine. По сравнению с Wine в Wine Staging предоставляется 273 дополнительных патчей. В новом выпуске Wine Staging осуществлена синхронизация с кодовой базой Wine 11.18 и обновлён код vkd3d. В основной состав Wine перенесён патч, преобразующий заголовочный файл d3d10_1shader.h в файл в формате idl (Interface Definition Language). Добавлены патчи для преобразования представления цвета YV12 в RGB в коде отрисовки и выполнения проверок исполняемых файлов для архитектуры WoW64 (64-bit Windows-on-Windows), позволяющей выполнять 32-разрядные Windows-приложения в 64-разрядных Unix-системах.



    Источник: https://www.opennet.ru/opennews/art.shtml?num=66307

opennet honked 18 Sep 2026 20:00 +0000

Опубликована библиотека управления памятью jemalloc 5.3

Представлен релиз библиотеки управления памятью jemalloc 5.4.0 , предлагающей альтернативную реализацию функций malloc, оптимизированную для снижения фрагментации и работы на многопроцессорных системах. Для решения проблем с блокировками на многоядерных системах в jemalloc для каждого ядра CPU используется своя изолированная область распределения памяти, что позволяет добиться линейной масштабируемости при росте числа потоков.

В июне 2025 года автор проекта прекратил сопровождение и перевёл репозиторий jemalloc в архивный режим, но в марте этого года разработку возобновила компания Meta, применяющая jemalloc в своей инфраструктуре. Изначально библиотека была разработана для FreeBSD и используется в данной ОС по умолчанию с 2005 года. Код библиотеки написан на Си и распространяется под лицензией BSD.

Среди изменений:

  • Упрощена логика заполнения и сброса tcache (Thread Local Cache), а также диспетчеризации выделения памяти.
  • Унифицированы аллокаторы страниц памяти PAC (Page Allocator Classic) и HPA (Huge Page Allocator). Удалён усложнённый механизм косвенных вызовов через vtable (PAI vtable).
  • Для упрощения сопровождения и расширения платформ все платформо-зависимые операции вынесены в отдельные заголовочные файлы.
  • Упрощена диспетчеризация команд mallctl, а также переработана инфраструктура генерации и вывода статистики.
  • Добавлен флаг EXTENT_ALLOC_FLAG_PINNED, позволяющий помечать невытесняемые области маппинга памяти, такие как страницы HugeTLB, для их приоритетного повторного использования. Для получения статистики об использовании закреплённой памяти добавлены новые интерфейсы mallctl: stats.pinned, stats.arenas.‹i›.pinned, stats.arenas.‹i›.extents.‹j›.npinned, stats.arenas.‹i›.extents..pinned_bytes и stats.arenas.‹i›.mutexes.extents_pinned.{counter} .
  • Синхронизировано содержимое статистики malloc в читаемом и JSON форматах.
  • Удалены устаревшие параметры lg_tcache_nslots_mul, tcache_nslots_small_min, tcache_nslots_small_max, tcache_nslots_large, tcache_gc_delay_bytes, lg_tcache_flush_small_div и lg_tcache_flush_large_div.


  • Источник: https://www.opennet.ru/opennews/art.shtml?num=66304

opennet honked 18 Sep 2026 19:00 +0000

Стабильный выпуск СУБД MariaDB 13.0

Представлен выпуск СУБД MariaDB 12.0.2 , который отмечен как первый стабильный релиз ветки 13.0. Ветка MariaDB 13.0 отнесена к промежуточным выпускам (rolling), продолжающим постепенное развитие функциональности и сопровождаемым до стабильного релиза следующей ветки. Одновременно доступен выпуск MariaDB 13.1.1, имеющий статус кандидата в релизы.

Проектом MariaDB развивается ответвление от MySQL, сохраняющее обратную совместимость и отличающееся интеграцией дополнительных движков хранения и расширенных возможностей. Развитие MariaDB курирует независимая организация MariaDB Foundation в соответствии с открытым и прозрачным процессом разработки, не зависящим от отдельных производителей. MariaDB поставляется вместо MySQL во многих дистрибутивах Linux (RHEL, SUSE, Fedora, openSUSE, Slackware, OpenMandriva, ROSA, Arch Linux, Debian) и внедрён в таких крупных проектах, как Wikipedia, Google Cloud SQL и Nimbuzz.

Среди изменений в ветке MariaDB 13.0:

  • Добавлено выражение "TYPE .. IS REF CURSOR" для объявления ссылочного типа данных для курсора, который может использоваться для возвращения результата SQL-запроса или набора строк из хранимых процедур и функций.
  • Предоставлена возможность использования типа RECORD в параметрах процедур и в значениях, возвращаемых функциями.
  • Добавлен хинт оптимизатора QB_NAME(), позволяющий присвоить имя блоку запроса для последующего применения инструкций по оптимизации этого блока.
  • Добавлена поддержка исполняемых комментариев "/*!! ... */", раскрываемых только в версиях, старее заданной. Например, если в версии MariaDB 10.0 нужно выполнить конструкцию "CREATE OR REPLACE TABLE", а более старых версиях - "CREATE TABLE IF NOT EXISTS":
       CREATE /*!100000 OR REPLACE */ TABLE /*!!100000 IF NOT EXISTS */ t1 ...
    
  • В таблицу INFORMATION_SCHEMA.SYSTEM_VARIABLES добавлен столбец IS_DEPRECATED для пометки устаревших переменных, а в таблицах INFORMATION_SCHEMA.STATISTICS и INFORMATION_SCHEMA.COLUMNS появился столбец CREATE_OPTIONS со сведениями о специфичных для движков возможностях выражения "CREATE TABLE".
  • Предоставлена возможность настройки формата времени, указываемого в логах плагина для проведения аудита.
  • Обеспечено атомарное выполнение операции "CREATE OR REPLACE TABLE".
  • Реализована конструкция "UPDATE ... RETURNING", позволяющая обновить строки и сразу вернуть их изменённые значения.
  • Добавлена переменная innodb_log_archive для включения режима сохранения файлов с WAL-логами (вместо цикличной перезаписи лога в одном файле, после заполнения запись переключается на новый файл).
  • В движке MEMORY ускорена работа индексов (UNIQUE INDEX) для столбцов типа CHAR.


  • Источник: https://www.opennet.ru/opennews/art.shtml?num=66303

undeadly honked 18 Sep 2026 12:00 +0000

GEFS, the "Good Enough File System" on the horizon for OpenBSD

Filesystems on OpenBSD have come in two varieties, UFS1 or UFS2 . Ori Bernstein has set out to possibly introduce a new option, the "Good Enough File System", which Ori describes as

"a new, crash-safe, snapshotting, copy on write FS that I wrote for 9front, and which I am in the process of moving to OpenBSD.

Ori gave a presentation about the work at EuroBSDCon 2026, and posted a summary message titled GEFS on OpenBSD: A very early preview to tech@, inviting hacking and testing:

List:       openbsd-tech
Subject:    GEFS on OpenBSD: A very early preview
From:       ori () eigenstate ! org
Date:       2026-09-15 15:45:05
Message-ID: EBB049B251DCF60A8C9A0575F6FC7DC9 () eigenstate ! org

Before anyone asks: I am *not* proposing to put
this in tree for a while yet.

What is it
----------
So, as people may have seen at EuroBSD, I've got a
rough, buggy, issue-filled preview of GEFS running
on OpenBSD. The port is NOT ready for production,
and data loss is currently expected, especially on
error.

Read more…

contrinitiator honked back 18 Sep 2026 09:58 +0000
in reply to: https://friendica.ironbug.org/objects/3217dd65-216a-ad08-9d44-119723793048

@iron_bug
Конечно, спиртовая настойка в мягком пластике это очень плохая идея! Но этот производитель стремится к монополии, видимо, да ещё и бадяжит свой раствор. Пустырник на спирту быстрее находит дорожку к душе.
@vikingkong

continue bonked 18 Sep 2026 09:10 +0000
original: tibibo@mastodon.ml

Местный Бэнкси. Очень старое его творение. Говорят, на отсутствии головы у курицы - шляпа-цилиндр.

contrinitiator honked 18 Sep 2026 06:28 +0000

Пустырник за 50 рублей, вкуснее и в стекле vs пустырник за 75 и ещё в мягком пластике! Но первый достать сложнее.

opennet honked 18 Sep 2026 02:00 +0000

Выпуск ESP-KVM 0.51.0, открытой прошивки IP-KVM , с записью экрана на microSD

Опубликован выпуск ESP-KVM 0.51.2 , открытой прошивки, превращающей плату на микроконтроллере ESP32-P4 в IP-KVM с доступом к экрану, клавиатуре и мыши удалённого компьютера через браузер, без установки агента на управляемую машину. Код написан на языке Си и распространяется под лицензией Apache 2.0. Основное изменение выпуска - запись происходящего на экране цели на карту microSD самого устройства.

Запись включается кнопкой в веб-интерфейсе и сохраняется в каталог VIDEO в виде файлов .ts с видео H.264. Устройство пишет тот же поток, который отдаёт зрителям, поэтому повторное кодирование не требуется: на плате Espressif ESP32-P4 Function EV при воспроизведении видео на целевой машине частота кадров во время записи осталась на уровне 21-22 в секунду без потерь. Файл .ts воспроизводится в VLC и mpv, а прерванный извлечением карты или отключением питания открывается до момента обрыва. Длинная запись делится на файлы по 10 минут и останавливается через час; оба значения настраиваются. Отдельной кнопкой сохраняется снимок экрана в формате JPEG в папку SCREENSHOTS, в том числе при работе кодека H.264: для снимка задействуется простаивающий аппаратный кодировщик JPEG.

Нажатия клавиш и щелчки мышью можно записывать в файл субтитров .srt рядом с видео - в виде строк "Typed: root", "Ctrl+Alt+Delete", "Left click (812, 440)". По умолчанию набранный текст заменяется точками, при необходимости он сохраняется полностью. Раскладка берётся из настроек целевой клавиатуры.

Добавлен режим видеорегистратора, работающий по тому же принципу, что автомобильный: устройство постоянно держит последние минуты экрана и сохраняет их вместе с последующими секундами, когда что-то происходит - экран становится однотонным (характерно для экрана аварийной остановки), появляется отслеживаемая фраза, гаснет индикатор питания ATX или оператор нажимает кнопку. Полученный ролик преобразуется в MP4 с главами по каждому событию, а при включённых уведомлениях отправляется в Telegram как воспроизводимое в чате видео.

Хранить прошлое можно двумя способами: в оперативной памяти PSRAM, где оно ничего не занимает на карте до наступления события, или на самой карте короткими фрагментами с удалением устаревших - второй способ работает и на платах с ревизией чипа до 3.0, где после запуска кодировщика H.264 свободной PSRAM остаётся около 3 МБ против 11 МБ на новых ревизиях.

Появился режим таймлапса: сохраняется один кадр раз в заданное число секунд, воспроизведение идёт со скоростью 25 кадров в секунду, поэтому час работы при интервале 10 секунд укладывается в 14 секунд видео. Записи и снимки собраны в отдельной панели интерфейса, откуда их можно скачать, удалить и воспроизвести без предварительной загрузки файла целиком: MP4 открывается штатным плеером браузера, а .ts разбирается на кадры в самой консоли и декодируется тем же декодером H.264, что и живая картинка, с перемоткой и показом субтитров. Для перемотки на стороне устройства реализована поддержка диапазонов HTTP.

Реализован поиск по тексту на экране. Во время записи устройство раз в три секунды читает экран как набор символов и сохраняет прочитанное в файл рядом с видео; в панели записей поиск по фразе показывает, когда она была на экране, и воспроизводит запись с этого момента. Читаются только экраны, нарисованные знакогенератором - BIOS, меню загрузки, программа установки, консоль.

Запись, ускоренную съёмку и снимок экрана можно запускать из сценариев устройства ("record 300", "timelapse 60", "screenshot") и из Home Assistant, где для этого есть переключатель и кнопки. Часы устройства теперь синхронизируются по NTP, а часовой пояс выбирается из списка городов в настройках - раньше он хранился в разделе, который интерфейс не показывал.

Другие изменения в выпусках, вышедших после 0.45.0:

  • 0.46. Добавлены сборки для плат VIEWE ESP32-P4-Pi и Waveshare ESP32-P4-NANO-WIFI6-DB. Прошивка стала собираться с оптимизацией -O2, мелкие выделения памяти перенесены в PSRAM, а зависшая задача теперь приводит к перезагрузке с сохранением дампа.
  • 0.47. Появились сценарии (runbooks) - макросы, которые умеют ждать появления или исчезновения фразы на текстовом экране и выполняются на самом устройстве при закрытом браузере; принимаются скрипты в формате DuckyScript. Добавлены планировщик с синтаксисом cron и уведомления в Telegram (со снимком экрана) или на webhook.
  • 0.48. Карта microSD и модуль WiFi заработали одновременно - раньше оба использовали один слот SDMMC.
  • 0.49. Карта microSD на платах Function EV и Waveshare ESP32-P4-ETH заработала на частоте шины 40 МГц вместо 4 (чтение около 9 МБ/с, запись около 4 МБ/с): не было включено питание линий слота от встроенного стабилизатора. Загрузка образа через веб-интерфейс ускорена примерно в 50 раз, до 3,5 МБ/с по Ethernet. Добавлен режим клавиатуры для старых BIOS - целевая машина видит единственное устройство на скорости USB 1.1, без мыши и накопителя. Устройство сообщает, если режим HDMI превышает пропускную способность двух линий MIPI CSI.
  • 0.49.1. Чтение виртуального накопителя целевой машиной ускорено с 5,6 до 9 МБ/с за счёт чтения с карты блоками по 256 КБ. Смена образа стала видна целевой машине без переподключения USB.
  • 0.50. Карту microSD можно менять на работающем устройстве, в том числе выдернув её в середине копирования: слот проверяется каждые пять секунд. Исправлена задержка в MJPEG, из-за которой на неподвижном экране браузер показывал кадр, предшествующий последнему нажатию клавиши.


  • Источник: https://www.opennet.ru/opennews/art.shtml?num=66301

opennet honked 17 Sep 2026 21:00 +0000

Релиз децентрализованной видеовещательной платформы PeerTube 8.3

Опубликован выпуск платформы PeerTube 8.3 , предназначенной для создания независимых децентрализованных систем видеохостинга и видеовещания, альтернативных таким сервисам, как YouTube, Dailymotion и Vimeo. Создаваемая при помощи PeerTube сеть распространения контента основывается на связывании браузеров посетителей между собой и использовании P2P-коммуникаций. Код проекта распространяется под лицензией AGPLv3.

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

Для взаимодействия серверов в федеративной сети применяется протокол ActivityPub. Идентификатор пользователя формируются как "@имя_пользователя@домен_сервера". При просмотре видео данные по возможности загружаются через обращение к браузерам других посетителей, просматривающих тот же контент. Если запрошенное видео никто не просматривает, отдача организуется сервером, на который загружено видео (используется протокол WebSeed).

Помимо распределения трафика между пользователями, просматривающими видео, PeerTube позволяет серверам кэшировать видео других авторов. Таким образом формируется распределённая сеть не только из клиентов, но и из серверов, а также обеспечивается отказоустойчивость. Кроме распространения готового видео имеется поддержка потокового вещания (live streaming) с доставкой контента в режиме P2P. Для управления стримингом могут использоваться типовые программы, такие как OBS.

Для начала вещания через PeerTube пользователю необходимо загрузить на один из серверов видеоролик, описание и набор тегов. После этого ролик станет доступен во всей федеративной сети, а не только на сервере первичной загрузки. Для работы с PeerTube и участия в распространении контента достаточно обычного браузера. Распространять видео с использованием P2P-коммуникаций можно добавив на свой сайт специальный виджет со встроенным web-плеером, по аналогии с тем как на страницы встраиваются ролики с YouTube. Отслеживать появление видео можно через подписку на выбранные видеоканалы в федеративных социальных сетях (например, в Mastodon и Pleroma) или через RSS.

В настоящее время в федеративную сеть входит 1779 серверов, поддерживаемых добровольцами и организациями. Если пользователя не устраивают правила размещения видео на определённом сервере PeerTube, он может подключиться к другому серверу или запустить свой собственный сервер. Для быстрого развёртывания сервера предоставляется преднастроенный образ в формате Docker (chocobozzz/peertube).

Изначально платформа PeerTube основывалась на применении BitTorrent-клиента WebTorrent, запускаемого в браузере и использующего технологию WebRTC для организации прямого P2P-канала связи между браузерами. Позднее вместо WebTorrent был задействован протокол HLS (HTTP Live Streaming) в связке с WebRTC, позволяющий адаптивно управлять потоком в зависимости от полосы пропускания. Web-интерфейс построен с использованием фреймворка Angular.

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

  • Добавлена поддержка подписки на внешние списки блокировок для автоматического игнорирования платформ или учётных записей.
  • Администраторам предоставлена возможность открытия публичного доступа к своим спискам блокировки.
  • Реализована автоматическая модерация на основе списков слов. По аналогии с платформой Bluesky, видео и комментарии, содержащие слова из списка, снабжаются тегами, которые могут применяться для блокировки.
  • Добавлена возможность подписки на внешние списки слов для отслеживания видео и комментариев при модерации.
  • Добавлена отправка на email уведомлений о необычной активности при входе (например, при подключении с нового устройства).
  • Добавлена поддержка массовых действий с видео, например, для добавления сразу нескольких видео в список воспроизведения или изменения параметров у группы видео.
  • На странице управления каналом реализована вкладка для публикации ленты подкастов в сервисах Apple Podcasts и Podcast Index.
  • При локальном поиске теперь индексируется первые 1000 символов из описания видео.
  • Улучшен виджет для перевода речи в текст, в котором теперь постоянно показывается поле поиска, приостанавливается прокрутка при ручном перемещении по тексту и появилась кнопка "Синхронизировать с видео", позволяющая перейти к тексту воспроизводимой позиции.

    Источник: https://www.opennet.ru/opennews/art.shtml?num=66300

opennet honked 17 Sep 2026 20:00 +0000

Релиз языка программирования Mojo 1.1

Представлен релиз языка программирования Mojo 1.1 . Код компилятора и сопутствующего инструментария, необходимого для сборки проектов на языке Mojo, распространяется под лицензией Apache 2.0 c исключениями от проекта LLVM, допускающими смешивание с кодом под лицензией GPLv2. Выпуск Mojo 1.1 примечателен началом приёма в кодовую базу компилятора изменений от сторонних участников.

Язык Mojo развивается под руководством Криса Латнера (Chris Lattner), основателя и главного архитектора проекта LLVM и создателя языка программирования Swift. Синтаксис Mojo основан на языке Python, а система типов близка к C/C++. Проект преподносится как язык общего назначения, расширяющий возможности языка Python средствами системного программирования, подходящий для широкого круга задач и сочетающий простоту применения для исследовательских разработок и быстрого создания прототипов с пригодностью для формирования высокопроизводительных конечных продуктов.

Простота достигается благодаря использованию привычного синтаксиса языка Python, а разработке конечных продуктов способствуют возможность компиляции в машинный код, механизмы безопасной работы с памятью и задействование средств для аппаратного ускорения вычислений. Для достижения высокой производительности поддерживается распараллеливание вычислений с задействованием всех имеющихся в системе аппаратных ресурсов гетерогенных систем, таких как GPU, специализированные ускорители для машинного обучения и векторные процессорные инструкции (SIMD). При интенсивных вычислениях распараллеливание и задействование всех вычислительных ресурсов даёт возможность добиться производительности, превосходящей приложения на C/C++.

Язык поддерживает статическую типизацию и средства для безопасной низкоуровневой работы с памятью, напоминающие возможности языка Rust, такие как отслеживание времени жизни ссылок и проверка заимствования переменных (borrow checker). При этом в языке доступны и возможности для низкоуровневой работы, например, возможно прямое обращение к памяти в режиме unsafe с использованием типа Pointer, вызов отдельных SIMD-инструкций или доступ к аппаратным расширениям, таким как TensorCores и AMX.

Mojo может использоваться как в режиме интерпретации с использованием JIT, так и для компиляции в исполняемые файлы (AOT, ahead-of-time). В компилятор встроены современные технологии автоматической оптимизации, кэширования и распределённой компиляции. Исходный код на языке Mojo преобразуются в низкоуровневый промежуточный код MLIR (Multi-Level Intermediate Representation), развиваемый проектом LLVM. Компилятор позволяет применять для генерации машинного кода различные бэкенды, поддерживающие MLIR.

Среди изменений в Mojo 1.1:

  • Сокращено время компиляции за счёт более быстрой обработки t-строк и неявных преобразований. Повышена производительность генерируемого кода.
  • В LSP-сервере (Language Server Protocol) реализована возможность исправления частых опечаток в коде на языке Mojo.
  • Добавлен сокращённый синтаксис, позволяющий не указывать названия типов, которые можно автоматически определить исходя из контекста. Например, вместо "SIMD[DType.float64, 4]" теперь можно писать "SIMD[.float64, 4]".
  • Расширен перечень API в стандартной библиотеке, имеющих статус стабильных (например, стабилизированы String, SIMD и List).
  • Продолжен перевод API с устаревшей формы замыканий, передаваемых как параметры, обрабатываемые во время компиляции, на унифицированные замыкания, передаваемые в виде аргументов, обрабатываемых во время выполнения.
  • Удалены возможности, ранее помеченные как устаревшие: ключевые слова fn, alias, __comptime_assert, а также конструкции "@parameter if" и "@parameter for".
  • Одновременно сформирован выпуск движка MAX Framework 26.6, предлагающего платформу для разработок в области машинного обучения. MAX Framework дополняет инструментарий Mojo средствами для разработки и отладки приложений, использующих модели машинного обучения в различных форматах (TensorFlow, PyTorch, ONNX и т.п.). В MAX Framework 26.6 добавлена поддержка генерации звука с использованием модели MiniMax-Music3, позволяющая создавать стерео музыку с частотой дискретизации 44.1 кГц на основе текстового описания. Существенно повышена производительность при работе на системах с GPU NVIDIA и AMD. Добавлена поддержка AI-моделей Inkling и GLM-5.3, а также расширена поддержка семейств моделей Kimi, Qwen и Gemma.

    Источник: https://www.opennet.ru/opennews/art.shtml?num=66299

opennet honked 17 Sep 2026 14:00 +0000

Выпуск браузера Pale Moon 35.0

Опубликован релиз web-браузера Pale Moon 35.0.0 , ответвившегося от кодовой базы Firefox для обеспечения более высокой эффективности работы, сохранения классического интерфейса, минимизации потребления памяти и предоставления дополнительных возможностей по настройке. Сборки Pale Moon формируются для Windows и Linux (x86_64). Код проекта распространяется под лицензией MPLv2 (Mozilla Public License).

Проект придерживается классической организации интерфейса, без перехода к интегрированным в Firefox 29 и 57 интерфейсам Australis и Photon, и с предоставлением широких возможностей кастомизации. Из удалённых компонентов можно отметить DRM, Social API, WebRTC, PDF-просмотрщик, Сrash Reporter, код для сбора статистики, средства для родительского контроля и людей с ограниченными возможностями. По сравнению с Firefox, в браузер возвращена поддержка расширений, использующих XUL, и сохранена возможность применения как полноценных, так и легковесных тем оформления.

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

  • Включены по умолчанию прослойки для обеспечения совместимости с API Document.elementFromPoint, GetAnimations, image.decode(), Intl.DisplayNames, Intl.ListFormat, Intl.RelativeTimeFormat и Streams.
  • В CSS реализованы ключевое слово revert-layer и псевдо-класс ":has()".
  • В объекте CSSStyleSheet реализован метод replaceSync.
  • Добавлено свойство adoptedStyleSheets.
  • В режиме совместимости с Firefox по умолчанию выставлена версия 140.
  • Улучшена поддержка архитектур LoongArch64 и Mac/PPC.
  • Для Linux и FreeBSD добавлена опция для сборки поддержки NPAPI без GTK2.
  • На платформе Linux повышена производительность набора данных в формах на некоторых сложных страницах.


  • Источник: https://www.opennet.ru/opennews/art.shtml?num=66297

opennet honked 17 Sep 2026 13:00 +0000

Выпуск miracle-wm 0.11, композитного менеджера на базе Wayland и Mir

Опубликован выпуск композитного менеджера miracle-wm 0.11 , использующего протокол Wayland и компоненты для построения композитных менеджеров Mir . Miracle-wm поддерживает мозаичную (tiling) компоновку окон, схожую с аналогичной в проектах i3 и Sway . В качестве панели может применяться Waybar . Код проекта написан на языке C++ и распространяется под лицензией GPLv3. Готовые сборки сформированы в формате snap , а также в пакетах rpm и deb для Fedora и Ubuntu .

Целью miracle-wm является создание композитного сервера, применяющего мозаичное управление окнами, но более функционального и стильного, чем такие продукты, как Swayfx. При этом проект позволяет использовать и классические приёмы работы с плавающими окнами, например, можно размещать отдельные окна поверх мозаичной сетки или закреплять окна к определённому месту на рабочем столе. Поддерживается виртуальные рабочие столы с возможностью выставления для каждого рабочего стола своего режима работы с окнами по умолчанию (мозаичная компоновка или плавающие окна).

Предполагается, что miracle-wm может оказаться полезным пользователям, которые отдают предпочтение мозаичной компоновке, но желают получить визуальные эффекты и более яркое графическое оформление с плавными переходами и цветами. Конфигурация определяется в формате YAML. Для установки miracle-wm можно использовать команду "sudo snap install miracle-wm --classic".

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

  • Добавлен обзорный режим, упрощающий переключение между окнами и виртуальными рабочими столами. Вызывается одинарными или двойным нажатием клавиши Menu.


    <iframe src="https://www.youtube.com/embed/pT0FCLqUjUQ"></center> <li class="l"> Добавлена возможность привлечь внимание пользователя к неактивному окну, не переключая при этом фокус ввода с активного окна. Например, при поступлении нового сообщения в почтовом клиенте, он может запросить переключение фокуса, после чего miracle выставит окну и виртуальному рабочему столу флаг <a href="https://wiki.miracle-wm.org/develop/ipc/get_tree/#reply">urgent</a>, который может подхватить панель задач для вывода соответствующего индикатора. <li class="l"> В плагинах реализована возможность <a href="https://docs.miracle-wm.org/miracle_plugin/plugin/fn.publish_event">отправки IPC-событий</a> и <a href="https://docs.miracle-wm.org/miracle_plugin/plugin/trait.Plugin#method.handle_command">обработки IPC-команд</a>. <li class="l"> Добавлена настройка <a href="https://wiki.miracle-wm.org/develop/configuration/background_color/">background_color</a> для задания цвета, применяемого для очистки содержимого. <li class="l"> В IPC добавлена команда <a href="https://wiki.miracle-wm.org/develop/ipc/get_keybinds/">GET_KEYBINDS</a> для определения всех действий, привязанных к комбинациям клавиш. <li class="l">Задействованы Wayland-протоколы: <ul> <li class="l"> <a href="https://wayland.app/protocols/ext-image-capture-source-v1">ext_image_copy_capture_manager_v1 и ext_output_image_capture_source_manager_v1</a> для организация захвата контента, выводимого на экран. <li class="l"> <a href="https://gitlab.freedesktop.org/wayland/wayland-protocols/-/tree/main/staging/ext-foreign-toplevel-list">ext_foreign_toplevel_list_v1</a> для получение информации о поверхностях, размещённых на самом верхнем уровне (toplevel), которые позволяют организовать закрепление окон поверх другого содержимого, например, для подключения собственных панелей и переключателей окон. <li class="l"> <a href="https://gitlab.freedesktop.org/wayland/wayland-protocols/-/tree/main/staging/ext-data-control?ref_type=heads">ext_data_control_manager_v1</a> для управления обработкой данных, например, для реализации менеджеров буфера обмена. <li class="l"> <a href="https://github.com/canonical/mir/pull/4328">ext_input_trigger_action_manager_v1 и ext_input_trigger_registration_manager_v1</a> - для обработки глобальных горячих клавиш, кликов мышью и событий сенсорного экрана. </li> <li class="l"> Дисплейный сервер <a href="https://github.com/canonical/mir">Mir</a> обновлён до версии <a href="https://github.com/canonical/mir/releases/tag/v2.29.0">2.29</a>. </li> <center><a href="https://github.com/miracle-wm-org/miracle-wm/raw/develop/resources/screenshot1.png"><img src="https://www.opennet.ru/opennews/pics_base/CFD0C5CECEC5D4_1775709069.png" style="border-style: solid; border-color: #e9ead6; border-width: 15px;max-width:95%;" title="" border="0" /></a> <br /><br>Источник: <b><a href="https://www.opennet.ru/opennews/art.shtml?num=66296">https://www.opennet.ru/opennews/art.shtml?num=66296</a></b></br></center></li></li></li></ul></li></li></li></li></li></li></ul></p></p>

opennet honked 17 Sep 2026 09:00 +0000

NVIDIA представила CUDA Rust для разработки GPU-ядер на языке Rust

Компания NVIDIA объявила о развитии инструментария CUDA Rust, позволяющего использовать язык Rust для разработки ядер, выполняемых на стороне GPU. Инструментарий обеспечивает безопасность работы с памятью на этапе компиляции и предотвращает возникновение состояний гонки. В следующем году CUDA Rust планируют довести до уровня, пригодного для разработки рабочих проектов, аналогичного инструментариям CUDA C++ и CUDA Python.

Инструментарий CUDA Rust поддерживает две модели разработки параллельно исполняемых ядер - SIMT (Single Instruction, Multiple Threads) и Tale. Модель SIMT позволяет на низком уровне определять логику одного потока, запускать тысячи таких потоков и управлять ими. Модель Tile предлагает более высокий уровень абстракции, в котором вместо явного управления отдельными потоками определяются алгоритмы действия с блоками данных (tile), а все манипуляции с потоками, синхронизацию доступа, управление памятью и распределение данных по тензорным ядрам берёт на себя компилятор Tile IR.

Для разработки на языке Rust с использованием модели SIMT развивается компилятор cuda-oxide, позволяющий компилировать код на языке Rust, использующий штатную систему типов и модель владения Rust, напрямую в инструкции для выполнения в виртуальной машине CUDA PTX (Parallel Thread Execution). Ядра для GPU создаются на обычном Rust, но выполняются в окружении no_std и могут использовать только функции из библиотеки libcore и специализированные Rust-абстракции, без доступа к стандартной библиотеке Rust (libstd).

В CUDA-ядрах на Rust допускается применение защиты через систему типов (safe), использование блоков unsafe и обращение к низкоуровневым аппаратным инструкциям. Для обеспечения безопасности предлагается тип DisjointSlice, гарантирующий, что каждый поток получает эксклюзивный доступ только к своим данным. Код cuda-oxide распространяется под лицензией Apache 2.0.

Для применения модели Tail предлагается библиотека cutile-rs, позволяющая использовать идеоматический язык Rust для создания кода, компилируемого напрямую в CUDA-ядра. Cutile-rs применяет предлагаемые в Rust строгие правила владения и заимствования к коду, выполняемому на GPU. Ядро оформляется как однопоточная программа, работающая с блоком данных, а компилятор сам разбивает вычисления на потоки и обеспечивает их синхронизацию. Потокам предоставляется совместный доступ к неизменяемым тензорам, а для безопасного доступа к изменяемым тензорам применяется их разделение на непересекающиеся блоки. Код cutile-rs распространяется под лицензией Apache 2.0.

Источник: https://www.opennet.ru/opennews/art.shtml?num=66295

opennet honked 17 Sep 2026 06:00 +0000

Выпуск Java SE 27 и OpenJDK 27

После шести месяцев разработки компания Oracle опубликовала платформу Java SE 27 (Java Platform, Standard Edition 27), в качестве эталонной реализации которой используется открытый проект OpenJDK . За исключением удаления некоторых устаревших возможностей в Java SE 27 сохранена обратная совместимость с прошлыми выпусками платформы Java - большинство ранее написанных Java-проектов без изменений будут работоспособны при запуске под управлением новой версии. Готовые для установки сборки Java SE 27 (JDK, JRE и Server JRE) подготовлены для Linux (x86_64, AArch64), Windows (x86_64) и macOS (x86_64, AArch64). Разработанная в рамках проекта OpenJDK эталонная реализация Java SE 27 полностью открыта под лицензией GPLv2 с исключениями GNU ClassPath, разрешающими динамическое связывание с коммерческими продуктами.

Java SE 27 отнесён к категории выпусков с обычным сроком поддержки, обновления для которого будут выпускаться до следующего релиза. В качестве ветки с длительным сроком поддержки (LTS) следует использовать Java SE 25, Java SE 21 или Java SE 17, обновления для которых будут выпускаться до 2033, 2031 и 2029 годов соответственно (общедоступные - до сентября 2030, 2028 и 2026 годов). Расширенная поддержка LTS-ветки Java SE 8 продлится до 2030 года, а Java SE 11 - до 2032 года.

Среди изменений в Java SE 27 (1, 2, 3, 4):

  • По умолчанию для всех окружений задействован сборщик мусора G1 (Garbage-First), который ранее применялся для серверных окружений. G1 оптимизирован для использования на многопроцессорных системах с большим объёмом памяти и достижения баланса между предсказуемостью задержек и высокой пропускной способностью. В процессе работы G1 разделяет память на множество мелких регионов и в первую очередь очищает те регионы, где больше неиспользуемых объектов и меньше активно используемых данных.
  • В HotSpot JVM по умолчанию задействованы компактные заголовки объектов. Размер заголовков на 64-разрядных системах уменьшен с 96 до 64 бит, что сократило потребление памяти и повысило вероятность попадания данных в процессорный кэш. В тестах SPECjbb2015 потребление памяти снизилось на 22%, нагрузка на CPU уменьшилась на 8%, а число операций сборки мусора снизилось на 15%. При тестировании парсера JSON время прохождения тестов сократилось на 10%.
  • В реализацию TLS 1.3 добавлена поддержка гибридной схемы согласования ключей, использующей алгоритмы, устойчивые для подбора на квантовых компьютерах. В API javax.net.ssl данная схема включена по умолчанию и для применения не требует изменения приложений.
  • В инструментарий JDK Flight Recorder (JFR), применяемый для мониторинга, профилирования и диагностики производительности, добавлена поддержка очистки аргументов командной строки, начальных значений переменных окружения и системных свойств в сохраняемой диагностической информации. Изменение позволяет предотвратить утечку конфиденциальных данных, которые обрабатывает профилируемый процесс, таких как передаваемые через переменные окружения токены авторизации и ключи доступа к API.
  • Реализована третья предварительная редакция API Lazy Constants для работы с объектами, содержащими неизменяемые данные и обрабатываемыми в JVM как константы. К подобным объектам применяются оптимизации производительности, аналогичные полям с ключевым словом "final". В отличие от "final" новый API разделяет создание постоянных значений и их инициализацию, гарантирует, что значение может быть инициализировано только один раз, сокращает время запуска программ и позволяет применять в пользовательском коде оптимизации сворачивания констант (constant-folding), ранее использовавшиеся только во внутреннем коде JDK.
       class Application {
           // Было:
           // static final UserService USERS = new UserService();
           // Теперь можно:
           static final StableValue‹UserService› USERS = StableValue.of();
    
           public static UserService users() {
              return USERS.orElseSet(UserService::new);
           }
        }
    
    
  • В механизме сопоставления с образцом предложен пятый предварительный вариант возможности использования примитивных типов (int, byte, char и другие базовые типы, не являющиеся объектами) во всех видах шаблонов, в операторе "instanceof" и в блоках "switch".
       switch (x.getStatus()) {
           case 0 -› "okay";
           case 1 -› "warning";
           case 2 -› "error";
           case int i -› "unknown status: " + i;
       }
       if (i instanceof byte b) {
        ... b ...
       }
    
  • Предложен для тестирования седьмой предварительный вариант API для cтруктурированного параллелизма (Structured Concurrency), упрощающего разработку многопоточных приложений за счёт обработки нескольких задач, выполняемых в разных потоках, как единого блока.
  • Реализована двенадцатая тестовая реализация API Vector, предоставляющего функции для векторных вычислений, которые выполняются с использованием векторных инструкций процессоров x86_64 и AArch64 и позволяют одновременно применить операции сразу к нескольким значениям (SIMD). В отличие от предоставляемых в JIT-компиляторе HotSpot возможностей по автовекторизации скалярных операций, новый API даёт возможность явно управлять векторизацией для параллельной обработки данных.
  • Доступен третий предварительный вариант API для кодирования и декодирования объектов с криптографическими ключами, сертификатами и списками отозванных сертификатов, используя формат PEM (Pivacy-Enhanced Mail).
  • Дополнительно можно отметить публикацию обновления платформы для создания приложений с графическим интерфейсом JavaFX 27. В ближайшие часы также ожидается выпуск универсальной виртуальной машины GraalVM 27, поддерживающей запуск приложений на JavaScript (Node.js), Python, Ruby, R, любых языках для JVM (Java, Scala, Clojure, Kotlin) и языках, для которых может формироваться биткод LLVM (C, C++, Rust).

    Источник: https://www.opennet.ru/opennews/art.shtml?num=66293