Некоммерческий удостоверяющий центр Let's Encrypt, контролируемый сообществом и предоставляющий сертификаты безвозмездно всем желающим, объявил о решении поэтапно сократить срок действия выдаваемых TLS-сертификатов с 90 до 45 дней. 10 февраля 2027 года срок действия сертификатов будет сокращён до 64 дней, а 16 февраля 2028 года - до 45 дней. Опциональная возможность получения сертификатов, действующих 45 дней, появится 13 мая 2026 года
Одновременно поэтапно будет сокращён период действия авторизации -
10 февраля 2027 года он будет сокращён с 30 до 10 дней, а 16 февраля 2028 года - c 10 дней до 7 часов. Под периодом действия авторизации понимается время после подтверждения своих прав на домен, в течении которого сертификат может быть выдан без прохождения повторных проверок. После истечения данного времени требуется новое подтверждение прав.
В качестве причины сокращения срока действия сертификатов называются новые требования ассоциации CA/Browser Forum, которым должны следовать производители браузеров и удостоверяющие центры. Аналогичное сокращение срока действия будет внедрено всеми удостоверяющими центрами. CA/Browser Forum определил конечный срок завершения внедрения мартом 2029 года, а максимальное время действия сертификата - 47 днями. После марта 2029 года обработка в браузерах новых сертификатов, срок действия которых превышает 47 дней, будет приводить к выводу в ошибки "ERR_CERT_VALIDITY_TOO_LONG".
Из достоинств перехода на короткодействующие сертификаты отмечается возможность сокращения времени внедрения новых криптоалгоритмов в случае выявления уязвимостей в ныне действующих, а также повышение безопасности. Например, в случае незаметной утечки сертификата в результате взлома короткоживущие сертификаты помешают злоумышленникам длительное время контролировать трафик жертвы или использовать сертификаты для фишинга. Более частая проверка владения доменом и сокращение сроков действия сертификатов также уменьшат вероятность того, что сертификат продолжит действовать после потери актуальности содержащейся в нем информации и снизят риск распространения неправильно выпущенных сертификатов.
В связи с сокращением срока действия сертификатов Let's Encrypt рекомендовал пользователями не обновлять сертификаты в ручном режиме, а перейти на автоматические системы управления сертификатами. При этом пользователям, уже применяющим автоматизированные системы, необходимо убедиться, что их инструментарии корректно поддерживают сертификаты с сокращённым сроком действия. Для координации своевременного автоматического обновления сертификатов администраторы могут использовать расширение протокола ARI (ACME Renewal Information), позволяющее получать сведения о необходимости обновления сертификатов и выбирать оптимальное время для обновления. Так же имеет смысл настроить систему мониторинга для выявления ситуаций, когда сертификат не был обновлён своевременно.
Для упрощения подтверждения прав на домен проект Let's Encrypt планирует внедрить в 2026 году новый метод проверки DNS-PERSIST-01, который в отличие от методов HTTP-01 и DNS-01 не требует обновления информации при каждой проверке и наличия у ACME-клиента доступа к web-инфраструктуре или DNS-серверу. В PERSIST-01 достаточно один раз добавить в DNS определённую TXT-запись ('_validation-persist.example.com. IN TXT ("ca.example;"
" accounturi=https://ca.example/acct/123")') и ACME-клиент сможет проводить авторизацию без обновления данных в DNS.
Опубликован выпуск ONLYOFFICE DocumentServer 9.2 с реализацией сервера для online-редакторов ONLYOFFICE и организации совместной работы. Редакторы можно использовать для работы с текстовыми документами, таблицами и презентациями. Код проекта распространяется под свободной лицензией AGPLv3. Готовые сборки сформированы для Linux, Windows и macOS.
Одновременно сформирован выпуск продукта ONLYOFFICE DesktopEditors 9.2, построенного на единой кодовой базе с online-редакторами. Десктоп-редакторы оформлены в виде приложений для рабочего стола, которые написаны на JavaScript с использованием web-технологий, но объединяют в одном наборе клиентские и серверные компоненты, оформленные для самодостаточного использования на локальной системе пользователя, без обращения к внешнему сервису. Для совместной работы на своих мощностях также можно использовать платформу Nextcloud Hub, в которой обеспечена полная интеграция с ONLYOFFICE.
В ONLYOFFICE заявлена полная совместимость с форматами MS Office и OpenDocument. Среди поддерживаемых форматов: DOC, DOCX, ODT, RTF, TXT, PDF, HTML, EPUB, XPS, DjVu, XLS, XLSX, ODS, CSV, PPT, PPTX, ODP. Предусмотрена возможность расширения функциональности редакторов через плагины, например, доступны плагины для создания шаблонов и добавления видео с YouTube. Готовые сборки сформированы для Windows и Linux (deb- и rpm-пакеты).
В десктоп-сборки встроен AI-ассистент, способный генерировать документы, заполнять формы в PDF-файлах, анализировать и резюмировать содержимое, выполнять операции с локальными файлами, обращаться к внешним AI-сервисам по протоколу MCP и осуществлять поиск информации через поисковые системы.
Предоставлена возможность настройки привязки действий к нажатиям комбинаций клавиш.
Во все редакторы, кроме редактора PDF, добавлена поддержка записи и сохранения выполняемых действий в форме макроса.
В редакторах презентаций и PDF реализована возможность вставки формул из внешних сервисов.
В редакторе форм появилась возможность прикрепления меток к кнопкам выбора. Добавлены локальные шаблоны PDF-форм.
В редактор PDF-файлов добавлена поддержка изменения цвета скрытого текста.
В интерфейсе администратора улучшено оформление боковой панели и добавлены новые пиктограммы.
В DocumentServer устранены уязвимости: межсайтовый скриптинг (XSS) в denyEditingRights и возможность добавления именованного диапазона в защищённых документах через манипуляции с websocket. Обновлены СУБД Redis с устранением уязвимости СVE-2025-49844 и пакет linux-libc-dev с добавлением защиты от атаки VMScape.
После двух лет с момента публикации ветки 14.0 сформирован релиз FreeBSD 15.0. Установочные сборки подготовлены для архитектур amd64, aarch64, armv7, powerpc64, powerpc64le и riscv64. Дополнительно поставляются сборки для систем виртуализации (QCOW2, VHD, VMDK, raw) и облачных окружений Amazon EC2, Google Compute Engine и Vagrant.
Начиная с ветки FreeBSD 15, время сопровождения значительных веток после формирования первого релиза (15.0) сокращено с 5 до 4 лет, а новые значительные ветки будут формироваться раз в два года. Промежуточные выпуски (15.1, 15.2, 15.3) будут разрабатываться в рамках фиксированного цикла разработки, подразумевающего публикацию новых версий в одной ветке примерно через каждые 6 месяцев, а не раз в год как было до сих пор. C учётом одновременного сопровождения двух разных значительных веток, новый промежуточный выпуск будет публиковаться раз в 3 месяца (15.4, 16.1, 15.5, 16.2 и т.п.), за исключением подготовки первых релизов новых значительных веток, перед которыми будет 6-месячный перерыв в релизах (например, релиз 15.3 будет сформирован в июне 2027 года, 16.0 в декабре 2027, 15.4 - в марте 2028, 16.1 - в июне 2028).
Основные изменения во FreeBSD 15.0 (в официальном примечании к релизу, помимо специфичных для выпуска 15.0 изменений, упомянуты многие возможности, ранее добавленные в ветки 14.1, 14.2 и 14.3):
Предоставлена возможность использования пакетного менеджера pkg для установки и обновления компонентов базовой системы. Пакеты pkgbase могут поставляться на установочном носителе для offline-установки или загружаться из репозитория pkg.freebsd.org.
В конфигурации pkg (/etc/pkg/FreeBSD.conf) репозиторий FreeBSD-base не включён по умолчанию. Инсталлятор bsdinstall предлагает два варианта установки: традиционный и с использованием пакетов (pkgbase). Поддержку традиционного способа, при котором базовая система рассматривается как монолитное окружение, обновляемое при помощи утилиты freebsd-update, планируют удалить в ветке FreeBSD 16. Новый метод, подразумевающий установку базовой системы как набора пакетов из репозитория FreeBSD-base, предложен по умолчанию в сборках для виртуальных машин и образов для облачных окружений, но пока рассматривается как экспериментальный для обычных систем.
Добавлена поддержка сборки FreeBSD в непривилегированных окружениях, не требующих наличия прав root. Без прав root также могут создаваться установочные iso-образы и системные образы для виртуальных машин. На этапе сборки права root были необходимы для создания файлов устройств, выставления прав доступа и монтирования дополнительных файловых систем (например, при создании дисковых образов).
Реализована поддержка воспроизводимых сборок, позволяющих убедиться, что распространяемые бинарные файлы собраны из предоставляемого исходного кода и не содержат скрытых изменений.
Воспроизводимые сборки обеспечивают идентичность бинарных файлов, формируемых из исходного кода в разных сборочных окружениях.
Прекращено формирование установочных образов и сборок бинарных пакетов для 32-разрядных архитектур i386, armv6 и powerpc. Из 32-разрядных платформ оставлена только armv7. Возможность сборки 32-разрядных программ и использования режима COMPAT_FREEBSD32 для запуска 32-разрядных исполняемых файлов в окружении на базе 64-разрядного ядра сохранится как минимум до конца жизненного цикла ветки FreeBSD 16.
В ядро добавлены системные вызовы c реализацией Linux-совместимого механизма inotify для отслеживания изменений в файловых системах.
Добавлена поддержка именованных атрибутов файлов (расширенных атрибутов в стиле Solaris), которые планируют поддерживать в качестве альтернативного механизма управления расширенными атрибутами, доступного для ZFS и NFSv4. Отличия от традиционных для FreeBSD и Linux методов работы с расширенными атрибутами сводится к представлению атрибутов в служебной директории, не видимой в основном пространстве имён ФС и ассоциированной с файлом. Работа с атрибутами производится как с обычными файлами, например, для определения списка атрибутов можно выполнить функцию readdir().
Объявлен готовым к применению модуль mac_do, позволяющий задавать политики, разрешающие непривилегированным пользователям изменять учётные данные процессов. Для запуска команд под другим пользователем подготовлена утилита mdo похожая на утилиту su, но не требующая suid root.
Состояние DRM-драйверов i915 и amdgpu синхронизировано с ядром Linux 6.9. Драйверы беспроводных устройств rtw88 (Realtek 802.11n/ac), rtw89 (Realtek 802.11ax)
и iwlwifi (Intel 02.11a/b/g/n/ac/ax/be) синхронизированы с ядром Linux 6.17.
Включена по умолчанию реализация протокола TLS на стороне ядра (KTLS).
Добавлена утилита sndctl для управления настройками звуковых карт.
Добавлена утилита mididump для дампа событий MIDI 1.0 в режиме реального времени.
В гипервизор bhyve добавлен новый сетевой бэкенд "slirp", использующий библиотеку libslirp с реализацией сетевого стека в пространстве пользователя. Бэкенд "slirp" позволяет организовать доступ к сети гостевой системы из хост окружения без отдельной настройки сети на стороне хоста.
Реализация Kerberos в основном составе FreeBSD заменена c Heimdal Kerberos на MIT Kerberos. Для возвращения Heimdal Kerberos при сборке можно использовать флаг WITHOUT_MITKRB5. Во FreeBSD 16 поддержка сборки Heimdal Kerberos будет удалена.
Поведение системных вызовов setgroups, getgroups и initgroups при обработке групп пользователей приближено к другим платформам (отличие реализации во FreeBSD сводилось к хранению эффективного идентификатора группы процессов в нулевом элементе массива со списком групп).
В настройках пакетного менеджера pkg включён по умолчанию новый репозиторий FreeBSD-kmods, в котором размещены пакеты с модулями ядра, собранными для конкретных релизных веток 15.x-RELEASE, а не постоянно обновляемой ветки 15-STABLE. Репозиторий FreeBSD-kmods решает проблему с установкой драйверов, завязанных на нестабильные интерфейсы ядра (например, графические драйверы). Ранее присутствующие в /etc/pkg/FreeBSD.conf репозитории "FreeBSD" и "FreeBSD-kmods" переименованы в "FreeBSD-ports" и "FreeBSD-ports-kmods".
В NFS добавлена поддержка операции CLONE, определённой в спецификации NFSv4.2 и позволяющей организовать быстрое копирование файлов через клонирование блоков на сервере. Режим пока работает только при экспорте через NFS разделов ZFS.
На системах amd64 добавлена возможность использования более 4TB ОЗУ.
Добавлен драйвер ufshci для поддержки контроллеров систем хранения с интерфейсом UFSHCI (Universal Flash Storage Host Controller Interface).
Sysctl net.link.bridge.member_ifaddrs по умолчанию выставлен в 0, т.е. в сетевые мосты можно добавлять интерфейсы без IP-адресов.
Повышена надёжность работы разделов с ФС UFS, содержащих более 2,000,000,000 inode. В реализации ФС UFS1 решена проблема 2038 года (можно использовать даты до 2106 года).
Добавлена опция сетевых сокетов SO_SPLICE для объединения TCP-соединений (подобие прокси, работающего без копирования данных в пространство пользователя).
В утилите grep по умолчанию отключён обход символических ссылок при рекурсивном поиске.
Добавлен модуль ядра nvmftа для поддержки контроллеров NVMe over Fabric и утилита nvmecontrol для подключения к внешнему контроллеру NVMe over Fabric.
В утилиту date добавлена поддержка вывода времени с наносекундной точностью, например, "date -Ins" выведет "2024-04-22T12:20:28,763742224+02:00".
В jail добавлена поддержка опции zfs.dataset для добавления в изолированное jail-окружение раздела, снапшота или клона ZFS. В команду jail добавлена поддержка параметров "meta" и "env", через которые можно привязывать метаданные или передавать переменные окружения. Добавлена возможность адресации jail-окружений по jail-дескрипторам, для работы с которыми предложены функции jail_set и jail_get, а также системные вызовы jail_attach_jd и jail_remove_jd. Добавлена возможность использовать фильтры kevent для отслеживания операций создания, удаления, изменения и прикрепления Jail.
В утилите newsyslog реализован параметр для задания используемого по умолчанию метода сжатия (bzip2, xz, zstd, gzip), избавляющего от необходимости указания отдельный флагов (J, X, Y, Z) в каждой строке newsyslog.conf.
В стандартной C-библиотеке во многих функциях для работы со строками и памятью задействованы оптимизации на базе инструкций SIMD.
В шрифт Gallant, используемый в виртуальных терминалах, добавлено более 4300 новых глифов, включая глифы с символами кириллицы и математическими знаками.
В tty по умолчанию выставлен флаг IUTF8, при котором корректно работает удаление символов UTF-8 при нажатии Backspace.
Утилита dialog, применяемая в конфигураторе bsdconfig и инсталляторе bsdinstall, заменена на bsddialog.
В утилите adduser, применяемой в bsdinstall, обеспечено создание отдельного ZFS dataset (раздела, снапшота или клона) для домашнего каталога пользователя, если ZFS dataset уже используется для родительского каталога. Также добавлена возможность использования шифрования домашних каталогов средствами ZFS. Для управления активацией данных возможностей в adduser.conf добавлены параметры "Zcreate" и "Zencrypt" .
Обеспечено формирование OCI-совместимых образов контейнеров и системных образов для Oracle Cloud.
Добавлен новый тип образов "small" для облачных окружений, совместимых с AWS EC2. В отличие от базовых образов из них исключены отладочные данные, тесты, 32-разрядные библиотеки, отладчик LLDB, Amazon SSM Agent и AWS CLI. На 76% ускорена загрузка образов "base" для EC2.
По умолчанию отключена и объявлена устаревшей настройка net.inet.tcp.nolocaltimewait, т.е. возвращено создание по умолчанию TIME_WAIT-записей для TCP-соединений, разорванных на стороне локальной системы. Для настройки времени нахождения соединения в состоянии TIME_WAIT добавлен новый sysctl net.inet.tcp.msl_local.
По умолчанию отключена поддержка создания сетевых соединений к localhost в которых указывается INADDR_ANY. Для возвращения поддержки можно выставить sysctl net.inet.ip.connect_inaddr_wild sysctl в значение 1.
Удалён менеджер логических томов gvinum, который использовался для программных RAID. Разработка Gvinum остановилась около 15 лет назад, при том, что в коде имеется ряд известных проблем, которые никто так и не взялся исправить. Вместо gvinum рекомендовано использовать gconcat, gmirror, gstripe, graid или zfs.
Намечен к удалению во FreeBSD 16 драйвер agp (Accelerated Graphics Port), необходимый для работы многих драйверов для старых видеокарт. Также объявлены устаревшими и запланированы к удалению драйверы: fdc (IBM PC Floppy Disk Controller), firewire (IEEE1394 Serial Bus), le (AMD Am7900 LANCE и Am79C9xx Ethernet) и upgt (USB 802.11g).
Объявлена устаревшей функция readdir_r.
В SNMP-сервере bsnmpd прекращена поддержка транспорта UDP.
Прекращена генерация хостовых ключей RSA для SSH и EC2 AMI. Из OpenSSH удалена поддержка DSA. Удалена БД publickey, завязанная на алгоритм DES.
Из базовой системы удалены ftpd и shar, вместо которых следует использовать порты ftp/freebsd-ftpd и sysutils/freebsd-shar.
Объявлена устаревшей утилита fdisk, вместо которой следует использовать gpart.
В категорию устаревших переведён драйвер syscons, который несовместим с UEFI, не поддерживает UTF-8 и завязан на глобальную блокировку.
Обновлены версии LLVM 19.1.7, OpenSSH 10.0p2, OpenSSL 3.5.4, OpenZFS 2.4.0rc4, Lua 5.4.8, jemalloc 5.3.0, Awk 20250804 (с поддержкой UTF-8), bc 7.1.0, unicode 16.0.0, ncurses 6.5, libarchive 3.8.2, tcpdump 4.99.5, unbound 1.24.1, less 679, file 5.46, GoogleTest 1.15.2.
Представлен релиз дистрибутива NixOS 25.11, основанного на пакетном менеджере Nix и предоставляющего собственные разработки для упрощения настройки и сопровождения системы. В NixOS вся настройка системы осуществляется через единый файл системной конфигурации configuration.nix. Предоставляются возможности для быстрого отката системы на предыдущую версию конфигурации и переключения между различными состояниями системы. Поддерживается установка индивидуальных пакетов отдельными пользователями и возможность одновременного использования нескольких версий одной программы. Обеспечены воспроизводимые сборки. Для архитектур x86_64 и ARM64 подготовлены установочный образы с графическим окружением (3.6 ГБ) и сокращённым консольным вариантом (1.5 ГБ).
При использовании Nix результат сборки пакетов хранится в отдельном подкаталоге в /nix/store. Например, после сборки пакет firefox может записываться в /nix/store/8onlv1pc3ed6n5nskg8ew4twcfd0d5ae4ed5c4-firefox-145.0.1/, где "8onlv1pc3ed6n5nskg8ew4twcfd0d5ae4ed5c4" является хешем всех его зависимостей и инструкций сборки. Под установкой пакета подразумевается его сборка или скачивание уже собранного (при условии, что он был уже собран на Hydra - сервисе сборки проекта NixOS), а также формирование директории с символическими ссылками на все пакеты в профиле системы или пользователя, с последующим добавлении этой директории в список PATH. Аналогичный подход применяется в пакетном менеджере GNU Guix, который основан на наработках Nix. Коллекция пакетов представлена в специальном репозитории Nixpkgs.
Добавлено 7002 пакета, удалено 6338 пакетов, обновлено 25252 пакета. Добавлено 107 новых модулей и 1778 опций конфигурации, удалено 807 опций и 41 модуль. В разработке и сопровождении пакетов приняли участие 2742 разработчика, подготовивших 59430 изменений.
Добавлена система инициализации nixos-init, инициализирующая систему во время загрузки и настраивающая окружение для запуска systemd.
Код nixos-init написан на Rust и не привязан к bash. При помощи nixos-init можно сформировать урезанные окружения NixOS, поставляемые без командных оболочек, perl, python и прочих интерпретаторов.
Предложен выпуск среды рабочего стола GNOME 49, в котором прекращена поставка сеанса для X11 (для запуска X11-приложений можно использовать XWayland). Для управления сервисами в
gnome-session задействованы компоненты systemd.
Обновлён инструментарий LLVM 21 и система сборки CMake 4. GCC оставлен на ветке 14.x.
Добавлена поддержка межсетевого экрана firewalld, реализованного в форме обвязки над пакетным фильтром nftables, поддерживающей изменение правил через D-Bus. FirewallD может запускаться как отдельный сервис
services.firewalld или как бэкенд, выставляемый через настройку "networking.firewall" (в "networking.firewall" добавлена опция backend для смены бэкенда).
Задействован по умолчанию инструментарий nixos-rebuild-ng, вариант nixos-rebuild целиком переписанный на Python. Для отключения предложена настройка "system.rebuild.enableNg", но её планируют удалить в следующем релизе.
Добавлен rEFInd, графический менеджер загрузки для систем с UEFI (включается через настройку boot.loader.refind.enable).
Для загрузчика Limine включена поддержка UEFI Secure Boot (boot.loader.limine.secureBoot.enable). Цифровая подпись создаётся скриптом установки загрузчика, а хэши для проверки целостности ядра генерируются во время пересборки системы. На практике новая возможность позволяет разрешить только загрузку ядер, установленных через NixOS.
По умолчанию задействована ветка СУБД PostgreSQL 17.
Прекращена поставка по умолчанию набора VPN-плагинов в модуле с NetworkManager. Все VPN-плагины теперь должны явно активироваться через настройку "networking.networkmanager.plugins".
Удалены устаревшие версии KDE Gear, KDE Plasma, Maui и Deepin, использовавшие Qt 5. Рекомендован переход на KDE Plasma 6.x и Gear 25.08.
После двух месяцев разработки Линус Торвальдс представил релиз ядра Linux 6.18. Среди наиболее заметных изменений: dm-pcache для дискового кэширования в энергонезависимой памяти (PMEM), удаление Bcachefs, online-режим проверки XFS, драйверы Binder (Android IPC) и Tyr (GPU Mali) на Rust, возможность создания USB-драйверов на Rust, оптимизация кэширования в аллокаторе памяти SLUB, адресация пространств имён по файловым дескрипторам, ускорение работы подкачки (swap), верификация BPF-программ по цифровой подписи, виртуализация Intel CET в KVM, сетевой протокол PSP (гибрид TLS и IPsec), поддержка IP-расширения AccECN, оптимизация UDP-стека.
В новую версию принято 15035 исправлений от 2217 разработчиков,
размер патча - 45 МБ (изменения затронули 13142 файлов, добавлено 601897 строк кода, удалено 355006 строк). В прошлом выпуске было
14334 исправлений от 2118 разработчиков, размер патча - 46 МБ. Около 40% всех представленных в 6.18 изменений связаны с драйверами устройств, примерно 16% изменений имеют отношение к обновлению кода, специфичного для аппаратных архитектур, 12% связано с сетевым стеком, 5% - с файловыми системами и 3% c внутренними подсистемами ядра.
Дисковая подсистема, ввод/вывод и файловые системы
В Device Mapper добавлен обработчик dm-pcache для использования постоянной памяти (CXL-память, адресуемая через DAX-устройство) в качестве дополнительного высокопроизводительного кэша перед более медленными традиционными дисковыми или флэш накопителями. Dm-pcache обеспечивает сохранение содержимого кэша в случае аварий (crash-safe) за счёт использования энергонезависимой памяти, дублирования метаданных и проверки целостности данных и метаданных по контрольным суммам CRC32. В настоящее время поддерживается только кэширование в режиме отложенной записи (write-back).
Из ядра удалён код файловой системы Bcachefs, которая теперь будет распространяться в форме внешнего модуля, собираемого с использованием инструментария DKMS (Dynamic Kernel Module Support). Код Bcachefs может быть возвращён в состав ядра после того как Кент Оверстрит на деле докажет возможность корректного взаимодействия с другими разработчиками ядра и способность следовать устоявшимся правилам разработки.
В системный вызов pwritev2() добавлен флаг RWF_NOSIGNAL, отключающий отправку сигнала SIGPIPE при записи в разорванные неименованные каналы или сокеты.
В Procfs добавлена опция монтирования "pidns" для указания пространств имён идентификаторов процессов (PID namespace). Например: "mount -t proc -o pidns=/proc/self/ns/pid proc /tmp/proc".
В XFS объявлена стабильной и включена по умолчанию возможность применения утилиты fsck для проверки и исправления выявленных проблем в online-режиме, без отмонтирования файловой системы. Добавлены системные вызовы file_getattr и file_setattr для изменения атрибутов специальных файлов (любых inode).
В KConfig по умолчанию отключены опции XFS_SUPPORT_V4 (4 версия XFS) и XFS_SUPPORT_ASCII_CI (режим без учёта регистра символов ASCII), объявленные устаревшими. Удалены устаревшие опции монтирования attr2, noattr2, ikeep и noikeep.
В MD RAID реализован новый тип битовых карт - llbitmap (lockless bitmap), работающих без блокировок и обеспечивающих более высокую производительность.
Из общей структуры "inode" вынесена информация, связанная с шифрованием и верификацией (указатели i_crypt_info и i_verity_info). Изменение позволяет снизить потребление памяти в файловых системах, не поддерживающих шифрование и верификацию.
В подсистему FUSE добавлена поддержка системного вызова copy_file_range() и прямого копирования диапазонов с использованием размера с 64-разрядным типом (ранее поддерживался только 32-разрядный размер). Добавлена поддержка инициализации в синхронном режиме во время монтирования (FUSE_DEV_IOC_SYNC_INIT).
В ФС ext4 реализована возможность использования 32-разрядных идентификаторов пользователей (uid) и групп (gid) при доступе к зарезервированным блокам. Добавлены ioctl-операции для установки и чтения параметров суперблока примонтированных ФС (tune2fs сможет менять параметры в суперблоке без прав на запись в блочное устройство). Полностью удалены устаревшие настройки, специфичные для ext3.
В f2fs добавлена опция монтирования "lookup_mode" для выбора режима поиска: perf - поиска по хэшу, compat - линейный поиск, auto - автоматический выбор. Изменение режима имеет смысл для конфигураций с директориями, в которых не учитывается регистр символов. Текущий режим поиска можно узнать через файл
"/sys/fs/f2fs/<device>/effective_lookup_mode". Добавлена возможность резервирования inode, доступных только привилегированным пользователям.
В Overlayfs добавлен режим работы без учёта регистра символов, включаемый на уровне слоёв ФС (выставление для отдельных директорий пока не поддерживается).
В BTRFS улучшено распараллеливание операций при высокой нагрузке на чтение и низкой нагрузке на запись, сокращено время фиксации транзакций, значительно сокращено время синхронизации (с минут до десятков секунд). Предоставлена возможность использования блоков (bs), размером больше страницы памяти (ps).
В ksmbd (работающий на уровне ядра SMB-сервер) добавлен параметр для ограничения максимального числа соединений с одного IP-адреса. smbdirect, smbclient и smbserver переведены на использование типовых структур ядра.
В SQUASHFS добавлена возможность использования в системном вызове lseek() опций SEEK_DATA и SEEK_HOLE для поиска данных и пустот в разреженных файлах. В некоторых тестах зафиксировано увеличение поизводительности копирования разреженных файлов до 150 раз.
В EXFAT добавлена поддержка ioctl FS_IOC_GETFSLABEL и FS_IOC_SETFSLABEL для чтения и записи меток разделов. Предоставлена возможность изменения опций монтирования во время перемонтирования. Ускорена загрузка битовых карт.
В NTFS3 добавлена поддержка ioctl FS_IOC_GETFSLABEL и FS_IOC_SETFSLABEL для чтения и установки меток разделов.
Память и системные сервисы
В состав принята реализация механизма межпроцессного взаимодействия Binder, написанная на языке Rust. Binder используется в Android для организации взаимодействия между процессами и удалённого вызова методов (один процесс Android может вызвать метод или функцию в другом процессе Android, используя Binder для идентификации, вызова и передачи аргументов между процессами). Код Binder был переписан на языке Rust в рамках инициативы Google по усилению защищённости Android.
В SLUB, аллокаторе памяти ядра, реализован опциональный слой кэширования "sheaves", использующий несколько кэшей, каждый из которых привязан к отдельному ядру CPU, что позволяет локализовать одним ядром операции при выделении или освобождении памяти. Подобный кэш повысил производительность выделения и освобождения памяти в ядре, благодаря избавлению от излишних примитивов синхронизации, требуемых при вовлечении разных ядер CPU. В проведённых тестах прирост производительности составил от 6.3% до 31% в зависимости от вида нагрузки.
Добавлена возможность создания файловых дескрипторов, отождествлённых с определённым пространством имён (namespace). В отличие от обращения к пространствам имён по идентификаторам (/proc/<pid>/ns/), файловый дескриптор закрепляется за конкретным экземпляром пространства имён и исключает ситуацию, когда идентификатор повторно выделен и указывает уже на другой объект. По аналогии с использованием pidfds открытие файловых дескрипторов, ссылающихся на пространства имён, осуществляется через функции open_by_handle_at() и name_to_handle_at().
Реализован механизм "Swap Table", позволяющий повысить производительность подкачки. Ускорение достигается благодаря уменьшению конкуренции за доступ к кэшу подкачки, более эффективного поиска в кэше и снижения фрагментации. Бэкенд на базе Swap Table задействован для кэширования подкачки вместо бэкенда XArray и позволил в среднем на 5-20% повысить производительность. В тесте usemem пропускная способность возросла на 17-28%, в тесте на многопоточную пересборку ядра время сборки уменьшилось на 1.12-3.19%, тест redis-benchmark
с BGSAVE показал увеличение числа обрабатываемых запросов на 6-7%.
Подсистема Zswapпереведена на прямое использование системы выделения памяти zsmalloc вместо слоя zpool, который больше нигде не используется и теперь удалён из ядра.
Для управления поведением загрузчика микрокода на системах x86 реализована опция командной строки "microcode=список флагов". В текущем виде новая опция пришла на смену "microcode.force_minrev" и также позволяет задать минимально допустимую для загрузки версию микрокода.
Началась работа по реорганизации излишне раздутой структуры "page", используемой для управления страницами оперативной памяти. Добавлен тип 'memdesc_flags_t" для полей с универсальными флагами, которые смогут использоваться после ожидаемого в будущем выделения из структуры "page" отдельных структур для slab и фолиантов (folio).
В конфигурацию ядра (KConfig) добавлен атрибут "transitional", который можно использовать для пометки настроек, не отображаемых в пользовательских интерфейсах, таких как
"make menuconfig", и не включаемых в сгенерированные файлы конфигурации. Основным назначением атрибута является упрощение переименования опций с сохранением обратной совместимости.
Минимальная версия компилятора Clang, которым может быть собрано ядро, повышена до инструментария LLVM 15. В Debian 12 и Ubuntu 22.04 поставляется LLVM 14.
Продолжен перенос изменений из ветки Rust-for-Linux, связанных с использованием языка Rust в качестве второго языка для разработки драйверов и модулей ядра (поддержка Rust не активна по умолчанию, и не приводит ко включению Rust в число обязательных сборочных зависимостей к ядру). В новой версии для кода на языке Rust реализованы атомарные операции с памятью, структура maple tree, возможность создания файлов DebugFS и функции для манипуляции битовыми картами. Расширен доступ к API для разработки драйверов. Добавлен полный набор абстракций для разработки драйверов USB-устройств (пример USB-драйвера). В утилиту perf добавлена поддержка отладочных символов, генерируемых компилятором rustc.
Виртуализация и безопасность
Добавлена поддержка криптографической верификации загружаемых BPF-программ по цифровой подписи. В дальнейшем данная возможность будет расширена средствами для определения правил загрузки подписанных BPF-программ и предоставления непривилегированным пользователям возможности использования верифицированных BPF-программ.
В гипервизоре KVM реализована поддержка виртуализации расширения Intel CET (Control-flow Enforcement Technology), применяемого для защиты от эксплоитов, использующих методы возвратно-ориентированного программирования (ROP - Return-Oriented Programming). Суть защиты в том, что после передачи управления функции, адрес возврата сохраняется процессором не только в обычном стеке, но и в отдельном теневом стеке, который не может быть изменён напрямую.
Добавлена возможность использования более 255 CPU в гостевых системах, работающих под управлением гипервизора Bhyve на хостах с FreeBSD 15.
Добавлена прослойка dibs (Direct Internal Buffer Sharing) для управляемого совместного использования буферов внутри изолированной среды, такой как гипервизор или экземпляр ядра Linux.
В подсистему аудита добавлена поддержка работы c несколькими одновременно включёнными модулями LSM (Linux Security Module).
Добавлен virtio-драйвер spi-virtio для доступа к SPI-устройству (Serial Peripheral Interface) из виртуальных машин.
В гипервизор KVM добавлена поддержка режима SEV-SNP CipherText Hiding, блокирующего чтение шифротекста памяти защищённых гостевых систем в неавторизированном CPU.
Добавлен драйвер qtee для TEE-окружений (Trusted Execution Environment) чипов Qualcomm.
Сетевая подсистема
Добавлена поддержка шифрования TCP-соединений, используя протокол PSP (PSP Security Protocol), разработанный компанией Google для шифрования трафика между датацентрами. PSP обеспечивает шифрование, криптографический контроль целостности и аутентификацию источника, реализуя своеобразную комбинацию возможностей протоколов TLS и IPsec. В PSP применяется шифрование на уровне отдельных сетевых соединений, а не всего канала связи. PSP использует отдельные ключи шифрования для разных туннелируемых TCP-соединений для строгой изоляции трафика от разных приложений и обработчиков. Для снижения нагрузки на CPU поддерживается вынос операций шифрования и расшифровки на сторону сетевых карт (offload). В качестве транспорта для передачи данных используется протокол UDP, поверх которого пробрасывается содержимое оригинального пакета TCP.
Добавлена начальная поддержка расширения AccECN (Accurate Explicit Congestion Notification), представляющего собой улучшенный вариант расширения ECN, позволяющего хостам в случае перегрузки маркировать IP-пакеты вместо их отбрасывания, что даёт возможность определять возникновение начальной стадии затора в каналах связи без потери пакетов. Исходное расширение ECN имеет ограничение, допускающее выставление только одного сигнала о перегрузке в рамках одного цикла приёма-передачи TCP (RTT, Round-Trip Time, отправка запроса и получение ответа). AccECN снимает данное ограничение и даёт возможность получателю передавать отправителю более одной метки о перегрузке в заголовке TCP-пакета. Алгоритмы управления перегрузкой могут использовать полученную информацию для более точного реагирования на перегрузки и не прибегать к резкому снижению интенсивности отправки пакетов при появлении незначительной перегрузки.
В UDP-стеке оптимизирована обработка входящих пакетов в условиях
DDoS-атак, приводящих к поступлению большого числа пакетов в один или несколько UDP-сокетов. Внесённые оптимизации, такие как снижение конкурирующих блокировок, оптимизация размещения структур данных в памяти и задействование блокировок, учитывающих архитектуру NUMA (Non-Uniform Memory Access), позволили повысить производительность при приёме UDP-пакетов на 47% и выше в экстремальных условиях.
Реализована возможность отключения кэширования ввода/вывода в NFS-сервере, что позволяет использовать NFS-сервер в системах с небольшим объёмом памяти (например, урезанных облачных окружениях). Отключение кэша также может быть полезно на нагруженных NFS-серверах для избежания вытеснения из кэша данных, связанных с локальными накопителями, из-за освобождении памяти для кэша NFS.
Максимальный размер буферов поступающих и отправляемых пакетов для сетевых сокетов (net.core.rmem_max и net.core.wmem_max) увеличен с 2 МБ до 4 МБ. Выставляемый по умолчанию размер не изменился (net.core.rmem_default и net.core.wmem_default = 2 МБ).
Добавлен драйвер для ускорителя сетевых операций Qualcomm PPE (Packet Processing Engine), применяемого в SoC Qualcomm IPQ9574.
Оборудование
В состав ядра принят драйвер Tyr, написанный на языке Rust и обеспечивающий работу с GPU ARM Mali, в которых применяется технология CSF (Сommand Stream Frontend), таких как Mali G310, G510 и G710. Драйвер пока не готов для постоянного использования обычными пользователями и рассматривается как экспериментальный прототип для тестирования абстракций для разработки драйверов на языке Rust.
В драйверы для устройств ввода с интерфейсом HID (Human interface device) добавлена поддержка тачпадов с тактильной связью и датчиками силы нажатия.
Продолжена работа над drm-драйвером (Direct Rendering Manager) Xe для GPU на базе архитектуры Intel Xe, которая используется в видеокартах Intel семейства Arc и интегрированной графике, начиная с процессоров Tiger Lake. В новой версии добавлен интерфейс madvise, включена поддержка SR-IOV PF (Single Root I/O Virtualization Physical Function), добавлена поддержка режима Intel PSMI для валидации оборудования, обеспечена обработка передаваемой прошивками информации об ошибках, реализован профиль энергопотребления SLPC, добавлена поддержка загрузки вспомогательных прошивок (например, к контроллеру кулера и регулятору напряжения) во время проверки драйвера.
В драйвер AMDGPU добавленаподдержка устройств с APU Cyan Skillfish, улучшена поддержка AMD GCN 1.0, реализована совместимость с инструментарием criu, в sysfs добавлены метрики температуры, разрешены запросы ремапинга MMIO из пространства пользователя.
В драйвере i915 включена поддержка чипов семейства Wildcat Lake и улучшена работа с GPU Jasper Lake, Elkhart Lake, Gen7 и Gen6.
В драйвере Nouveau по умолчанию задействованы GSP-прошивки NVIDIA и улучшена обработка ошибок.
Продолжена интеграция компонентов драйвера Nova для GPU NVIDIA, оснащённых GSP-прошивками, используемыми начиная с серии NVIDIA GeForce RTX 2000 на базе микроархитектуры Turing. Драйвер написан на языке Rust. В новой версии расширена поддержка прошивок GSP, улучшена реализация макроса "register!", добавлена поддержка классов PCI-устройств и идентификаторов производителей.
Добавлен драйвер rocket для NPU ускорителей, применяемых в SoC Rockchip RK3588.
Добавлен параметр ядра "boot_display" для выбора устройства вывода для отображения процесса загрузки на системах с несколькими GPU.
В драйвере vesadrm реализована поддержка 8-разрядных палитр.
В драйвер msm добавлена поддержка GPU Adreno 663 и реализована поддержка технологии снижения энергопотребления IFPC (Inter Frame Power Collapse).
В драйвер panthor добавлена поддержка GPU Mali-G710, Mali-G510, Mali-G310, Mali-Gx15, Mali-Gx20 и Mali-Gx25.
Добавлена поддержка звуковых систем ASoC Qualcomm Glymur и PM4125, Realtek RT1321, Shanghai FourSemi FS2104/5S, Texas Instruments PCM1754 и TAS2783A, qcs615, CS35L56 B2, tas2118, tas2x20, tas5825. Добавлена поддержка звуковых USB-карт Tascam US-144mkII и Presonus S1824c.
Добавлена поддержка ARM CPU Cortex-A320/A520AE/A720AE и
C1-Nano/Pro/Premium/Ultra.
Добавлена поддержка ARM-плат, SoC и устройств: Apple M2 Pro, M2 Max и M2 Ultr, Sony Xperia SP, Samsung Galaxy S22, Samsung Galaxy S20 FE, ASUS Eee Pad Slider SL101, Lenovo ThinkBook 16, HP Omnibook X14 X1P42100, Dell Inspiron 7441 / Latitude 7455, Sige1, NanoPi Zero2, Axis Artpec8, NXP i.MX91, ROCK 2A/2F, Qualcomm Lemans Auto, Renesas RZ/T2H, RZ/N2H, RZ/T2H и RZ/N2H, Aspeed AST27xx, Meta Clemente BMC, Netcube Nagami som, Tqma91xx, Ultratronik i.MX8MP Ultra-MACH, i.MX8ULP EVK9, Buffalo WXR-1750DHP,
Одновременно латиноамериканский Фонд свободного ПО сформировал
вариант полностью свободного ядра 6.18 - Linux-libre 6.18-gnu, очищенного от элементов прошивок и драйверов, содержащих несвободные компоненты или участки кода, область применения которых ограничена производителем. В выпуске 6.18 обновлён код чистки blob-ов в драйверах Nova-Core, Intel XE, TI PRUeth, Lantiq GSWIP, Marvell WiFi-Ex. Выполнена чистка имён blob-ов в dts-файлах (devicetree) для ARM-чипов Qualcomm, Mediatek и TI ARM64. Нейтрализована загрузка blob-ов в новых драйверах FourSemi fs2104/5s, TI TAS2783 и Qualcomm GENI.
После 8 месяцев разработки опубликован первый прототип Unix-подобного ядра Moss, частично совместимого с Linux. Код написан на языке Rust с ассемблерными вставками и распространяется под лицензией MIT. В настоящее время проект поддерживает только архитектуру Aarch64, может запускаться в QEMU и протестирован на платах Raspberry Pi 4, Jetson Nano, AMD Kria и imx8. По утверждению разработчиков ядро легко может быть портировано для других архитектур, таких x86_64 и RISC-V, благодаря прослойке для абстрагирования поддержки оборудования.
На данном этапе разработки в Moss реализован 51 системный вызов Linux и обеспечена бинарная совместимость с приложениями для Linux, достаточная для запуска командной оболочки Bash и большинства утилит из набора BusyBox. Из особенностей архитектуры Moss отмечается использование модели async/await для обеспечения асинхронного выполнения компонентов ядра, исключающей основные классы взаимных блокировок. В форме асинхронно выполняемых функций реализованы все нетривиальные системные вызовы.
Основные возможности:
Система управления памятью с поддержкой страниц памяти в режиме CoW (Copy-on-Write), таблиц страниц памяти, асинхронных функций копирования памяти между ядром и пространством пользователя, обработки исключений (page fault) на стороне ядра и пространства пользователя.
Система управления процессами с планировщиком задач и поддержкой миграции задач через IPI (inter-processor interrupt). Поддержка ответвления процессов через вызов clone(). Возможности для доставки сигналов процессам и потокам.
Асинхронно работающий слой VFS (Virtual File System), блочное устройство Ramdisk, драйвер FAT32 и устройство devtmpfs.
Вынос основной функциональности в библиотеку libkernel, не привязанную к аппаратным архитектурам.
HAL-прослойка (Hardware Abstraction Layer) для обеспечения поддержки оборудования.
Тестовый набор, включающий более 230 тестов.
Из существенных ограничений отмечается отсутствие сетевой подсистемы и наличие лишь урезанного драйвера файловой системы, поддерживающего ФС Fat32 в режиме только для чтения. Среди приоритетных задач упомянуто продолжение реализации системных вызовов Linux, создание TCP/IP стека, поддержка балансировки нагрузки в планировщике задач и предоставление полноценного драйвера для файловой системы (ext2/4).
Опубликован релиз СУБД Redis 8.4, относящейся к классу NoSQL-систем. Redis предоставляет функции для хранения данных в формате ключ/значение, расширенные поддержкой структурированных форматов данных, таких как списки, хэши и множества, а также возможностью выполнения на стороне сервера скриптов-обработчиков на языке Lua. Код проекта написан на язык Си и распространяется под лицензией AGPLv3.
СУБД Redis поддерживает транзакции, позволяющие выполнить за один шаг группу команд, гарантируя непротиворечивость и последовательность (команды от других запросов не могут вклиниться) выполнения заданного набора команд, а в случае проблем позволяя откатить изменения. Все данные в полном объёме кэшируются в оперативной памяти. Клиентские библиотеки доступны для большинства популярных языков, включая Perl, Python, PHP, Java, Ruby и Tcl.
Для управления данными предоставляются такие команды, как инкремент/декремент, стандартные операции над списками и множествами (объединение, пересечение), переименование ключей, множественные выборки и функции сортировки. Поддерживается два режима хранения: периодическая синхронизация данных на диск и ведение на диске лога изменений. Во втором случае гарантируется полная сохранность всех изменений. Возможна организация master-slave репликации данных на несколько серверов, осуществляемая в неблокирующем режиме. Доступен также режим обмена сообщениями "публикация/подписка", при котором создаётся канал, сообщения из которого распространяются клиентам по подписке.
Добавлена команда "FT.HYBRID" с реализацией гибридного поиска, сочетающего в одном запросе возможности полнотекстового и векторного поиска, учитывающего как прямые совпадения, так и близость по смыслу. Поддерживаются возможности агрегирования результатов с синтаксисом как у команды "FT.AGGREGATE".
Повышена пропускная способность в типовых применениях Redis для кэширования. Например, при нагрузках, включающих 10% операций записи (SET) и 90% операций чтения (GET) и хранении строковых значений размером 1 Кб прирост пропускной способности составил 30%.
Повышена производительность операций поиска (FT.SEARCH) и агрегирования результатов (FT.AGGREGATE). В нагруженных системах с большим числом параллельных запросов наблюдается прирост пропускной способности и снижение задержек до 4.7 раз при выполнении поиска и до 1.4 раза при агрегировании результатов.
Проведена оптимизация выделения памяти при выполнении запросов и предоставлена возможность настройки поведения при исчерпании доступной памяти (OOM, out-of-memory).
Снижено потребление памяти при хранении мелких строк (до 7 байт) в структурах с типом JSON. Например, массив в JSON, включающий 500 мелких элементов в формате ключ/значения теперь занимает на 37% меньше памяти.
Повышена эффективность хранения числовых массивов JSON, все элементы в которых имеют один тип (если раньше для каждого элемента в подобном массиве сохранялся тип и значение, то теперь тип сохраняется один раз для всего массива). В проведённом тесте подобные массивы с миллионом однородных элементов теперь требуют на 50-92% меньше памяти в зависимости от типа.
В команду SET добавлены опции IFEQ, IFNE, IFDEQ и IFDNE, позволяющие обойтись одной командой для обновления строкового ключа в ситуациях, когда связанное с ним значение не было изменено другим клиентом с момента его извлечения.
Добавлена команда XDELEX для атомарного удаления строкового ключа, если связанное с ним значение не изменилось с момента извлечения.
Добавлена команда DIGEST, возвращающая хэш от значения, связанного с указанным ключом.
В команду XREADGROUP добавлена опция "CLAIM <min-idle-time>" для чтения как ожидающих (idle pending), так и поступивших (incoming) сообщений.
Добавлена команда MSETEX для атомарного выставления или обновления разом нескольких строковых ключей, а также обновления времени их жизни.
Добавлен механизм атомарной миграции слотов межу узлами кластера (ASM - Atomic Slot Migration), напоминающий полную синхронную репликацию, но работающий на уровне отдельных слотов хранения данных.
Добавлена команда CLUSTER MIGRATION, при помощи которой можно импортировать слоты с других узлов, отследить прогресс миграции и при необходимости отметить ожидающие выполнения операции миграции.
Добавлена команда CLUSTER SLOT-STATS для оценки статистики в кластере в разрезе отдельных слотов, такой как число ключей, нагрузка на CPU и сетевой ввод/вывод.
Доступен выпуск дистрибутива Whonix 18.0, нацеленного на предоставление гарантированной анонимности, безопасности и защиты частной информации. Дистрибутив основан на Debian GNU/Linux и использует Tor для обеспечения анонимности. Наработки проекта распространяются под лицензией GPLv3. Для загрузки подготовлены образы виртуальных машин в формате ova для VirtualBox (2.5 ГБ c LXQt и 1.6 ГБ консольный) и qcow2 для гипервизора KVM (3.4 ГБ c LXQt и 2.3 ГБ консольный).
Особенностью Whonix является разделение дистрибутива на два отдельно запускаемых компонента - Whonix-Gateway с реализацией сетевого шлюза для анонимных коммуникаций и Whonix-Workstation с рабочим столом. Компоненты представляют собой отдельные системные окружения, поставляемые внутри одного загрузочного образа и запускаемые в разных виртуальных машинах. Выход в сеть из окружения Whonix-Workstation производится только через шлюз Whonix-Gateway, что изолирует рабочее окружение от прямого взаимодействия с внешним миром и допускает использование только фиктивных сетевых адресов. Подобный подход позволяет защитить пользователя от утечки реального IP-адреса в случае взлома web-браузера или эксплуатации уязвимости, дающей атакующему root-доступ к системе.
Взлом Whonix-Workstation позволят атакующему получить только фиктивные сетевые параметры, так как реальный IP и параметры DNS скрыты за границей сетевого шлюза, работающего на базе Whonix-Gateway, который направляет трафик только через Tor. При этом следует учитывать, что компоненты Whonix рассчитаны на запуск в форме гостевых систем, т.е. не исключена возможность эксплуатации критических 0-day уязвимостей в платформах виртуализации, которые могут предоставить доступ к хост-системе. В связи с этим, не рекомендуется запускать Whonix-Workstation на том же компьютере, что и Whonix-Gateway.
В Whonix-Workstation по умолчанию предоставляется пользовательское окружение LXQt. В поставку включены такие программы, как VLC и Tor Browser. В поставке Whonix-Gateway можно найти набор серверных приложений, в том числе Apache httpd, ngnix и IRC-серверы, которые могут использоваться для организации работы скрытых сервисов Tor. Возможен проброс поверх Tor туннелей для Freenet, i2p, JonDonym, SSH и VPN. При желании, пользователь может обойтись только Whonix-Gateway и подключить через него свои обычные системы, в том числе Windows, что позволяет обеспечить анонимный выход для уже находящихся в обиходе рабочих станций.
Системное окружение базируется на параллельно развиваемом теми же разработчиками защищённом дистрибутиве Kicksecure, расширяющем Debian дополнительными механизмами и настройками для повышения безопасности: AppArmor для изоляции, установка обновлений через Tor, использование PAM-модуля tally2 для защиты от подбора паролей, расширение энтропии для RNG, отключение suid, отсутствие открытых сетевых портов по умолчанию, использование рекомендаций от проекта KSPP (Kernel Self Protection Project), добавление защиты от утечки сведений об активности CPU и т.п.
Основные изменения:
Пакетная база дистрибутива обновлена c Debian 12 до Debian 13.
Среда рабочего стола Xfce заменена на LXQt. По умолчанию задействован протокол Wayland.
В состав включена утилита ram-wipe, очищающая содержимое ОЗУ перед перезагрузкой системы.
В состав включён пакет USBGuard для управления активацией подключаемых USB-устройств с целью защиты от атак через вредоносные USB-устройства, таких как BadUSB.
Для запуска привилегированных процессов задействован фреймворк privleap (аналог sudo).
В поставку включены утилиты nmap и nping.
Из поставки удалён xpdf.
Для управления подсветкой задействован пакет backlight-tool-dist.
Для управления раскладками клавиатуры задействованы пакеты
set-system-keymap,
set-console-keymap,
set-labwc-keymap,
set-grub-keymap.
Ускорена загрузка и оптимизировано потребление памяти.
Полностью переписан и портирован на Wayland пакет Kloak, применяемый для противостояния идентификации пользователя по характеру ввода с клавиатуры и движению мыши.
Добавлена поддержка IPv6.
На стороне Whonix-Gateway по умолчанию активирован пакет user-sysmaint-split, реализующий раздельные загрузочные сеансы для работы и сопровождения (SYSMAINT - system maintenance).
Компания Collabora опубликовала офисный пакет Collabora Office, представляющий собой редакцию продукта Collabora Online (LibreOffice Online), адаптированную для обособленного использования на десктоп-системах. Сборки публикуются для Linux (flatpak), macOS и Windows. Отдельно доступна редакция для разработчиков Collabora Office Development Edition (CODE). Ранее распространяемый компанией Collabora стационарный офисный пакет, построенный на классическом LibreOffice, переименован в Collabora Office Classic.
Компания Collabora является одним из ключевых участников разработки LibreOffice, передающим развиваемые для Collabora Online и Collabora Office новые возможности в основной состав LibreOffice. Код Collabora Online и Collabora Office полностью открыт под лицензией MPL 2.0.
Продукт Collabora Online позволяет организовать удалённую работу с офисным пакетом через Web и может применяться в качестве альтернативы таким сервисам, как Google Docs и Office 365. В отличие от монолитных LibreOffice и Collabora Office Classic, пакет Collabora Online имеет клиент-серверную архитектуру, при которой на сервере выполняется LibreOffice Core, отвечающий за компоновку и отрисовку документов, электронных таблиц и презентаций, а за интерфейс отвечает web-приложение.
Collabora Office объединяет серверный и браузерный компоненты в одном пакете, который можно использовать как обычное локальное приложение, выполняемое полностью на системе пользователя.
В новом пакете сохранены все расширенные возможности Сollabora Online, такие как поддержка совместной работы нескольких пользователей над одним документом. При этом Collabora Office лучше интегрируется с окружением операционной системы и поддерживает работу в offline-режиме.
Из отличий от классических LibreOffice и Collabora Office Classic упоминается полное избавление от компонентов на языке Java, упрощённые настройки, иные значения по умолчанию и более современный интерфейс пользователя, использующий Javascript, WebGL и CSS вместо VCL-виджетов. По уровню поддержки форматов документов Collabora Office соответствует LibreOffice. В состав входят редакторы документов, электронных таблиц, презентаций, векторной графики и диаграмм. Исключены компоненты для работы с БД (Base) и редактор макросов (возможность запуска макросов сохранена).
Опубликован выпуск проекта IvorySQL 5.0, развивающего редакцию СУБД PostgreSQL, обеспечивающую совместимость с приложениями, рассчитанными на работу с СУБД Oracle. В IvorySQL заявлена возможность работы в качестве прозрачной замены последней версии PostgreSQL, отличие от которой сводится к появлению настройки "compatible_db", включающей режим совместимости с Oracle. Код написан на языке Си и распространяется под лицензией Apache 2.0.
IvorySQL реализует процедурный язык PL/iSQL, повторяющий синтаксис PL/SQL в Oracle, поддерживает пакеты в стиле Oracle и операции с пакетами, такие как "CREATE PACKAGE". Предоставляется совместимый с Oracle набор функций и типов, а также поддерживается специфичный для Oracle синтаксис операций, выражений и операторов, таких как ALTER TABLE, DELETE, UPDATE, CONNECT BY (иерархические запросы), GROUP BY, UNION и MINUS.
Улучшена совместимость с СУБД Oracle: реализована поддержка вложенных подпрограмм, ROWID, параметров NLS и OUT, трансляции пустых строк в NULL, смены парсеров в привязке к сеансам, кодировки GB18030, функций SYS_GUID, SYS_CONTEXT и USERENV.
Добавлены совместимые с Oracle операторы INSTR, FORCE VIEW и LIKE.
Расширены возможности PL/iSQL: добавлена поддержка CALL-синтаксиса, %ROWTYPE и %TYPE.
Реализована полная поддержка Docker Compose, Docker Swarm и Kubernetes с пакетным менеджером Helm. В IvorySQL Operator 5.0 и IvorySQL Cloud 5.0 добавлены средства для визуального управления жизненным циклом.
Обеспечена поддержка десяти расширений к PostgreSQL: pg_cron, pgAudit, PostGIS, pgRouting, PGroonga, ddlx, pgsql-http, system_stats, plpgsql_check и pgvector.
Сформированы установочные пакеты для архитектур X86_64, ARM64, MIPS и LoongArch.
Подготовлено online-окружение для работы с IvorySQL из браузера, позволяющее обойтись без установки IvorySQL на своей системе.
Дополнительно можно отметить релиз расширения SynchDB 1.3, предназначенного для репликации в PostgreSQL данных из одной или нескольких сторонних СУБД, таких как MySQL, MS SQLServer и Oracle. Подобные внешние СУБД выступают источниками данных, которые напрямую переносятся в одну целевую БД на базе PostgreSQL, без использования дополнительных прослоек для оркестровки процесса синхронизации данных (все операции синхронизации обрабатываются расширением SynchDB). Код проекта написан на языках Си и Java, и распространяется под лицензией Apache 2.0.
Система включает компоненты:
Debezium Runner Engine - движок на Java, предоставляющий модули для обработки потоков изменений данных из различных СУБД (MySQL, MS SQLServer и Oracle) и трансляции полученных данных в универсальном формате JSON.
SynchDB Worker - запускает экземпляры Debezium Runner Engine для репликации данных из конкретных СУБД, принимает от них изменения в формате JSON и передаёт в модуль Format Converter.
SynchDB Launcher - создаёт и завершает работу обработчиков SynchDB, используя API PostgreSQL для запуска фоновых процессов.
Format Converter - разбирает поток изменений в формате JSON, преобразует сторонние типы данных и DDL-запросы в типы и запросы, совместимые с PostgreSQL.
Replication Agent - обрабатывает вывод в формате HeapTupleData из Format Converter и запускает методы для подстановки данных в PostgreSQL.
В SynchDB 1.3 реализован новый движок формирования снапшотов, основанный на FDW (Foreign Data Wrapper) и поддерживающий
работу с OpenLog Replicator. По сравнению со старым движком на базе Debezium новый движок позволяет значительно повысить производительность и снизить задержки при репликации данных из больших БД Oracle. Кроме того, в новой версии предложены дополнительные представления со статистикой (synchdb_genstats, synchdb_snapstats и synchdb_cdcstat), в OpenLog Replicator появилась поддержка выражений MODIFY и DEFAULT ON NULL, добавлена поддержка СУБД PostgreSQL 18 и IvorySQL 5.
Представлены порты игры Doom, использующие для отрисовки игрового процесса САПР KiCAD и осциллограф. Порт KiDoom формирует игровое поле в редакторе печатных плат, симулируя векторную графику через расстановку дорожек и элементов на печатной плате. Дорожки используются для формирования стен, транзисторы SOT-23 для отображения мелких предметов, микросхемы SOIC-8 для декораций, а микросхемы QFP-64 для игрока и врагов. Всего обеспечено сопоставление более 150 игровых сущностей с соответствующими элементами плат.
Для вывода в редакторе KiCAD модифицированная версия Doom отправляет сформированные векторные данные через Unix-сокет в установленный в KiCad плагин, написанные на языке Python. Плагин расставляет дорожки и элементы в редакторе печатной платы, периодически изменяет их местоположение и вызывает функцию pcbnew.Refresh() для обновления содержимого экрана. Отмечается, что узким местом является вызов pcbnew.Refresh(), но при этом производительности достаточно для отображения 10-25 кадров в секунду.
Порт ScopeDoom генерирует картинку на осциллографе, работающем в режиме X-Y, используя звуковую карту в качестве двухканального цифрового аналогового преобразователя. Режим X-Y реализует векторный дисплей, координаты для которого по оси X передаются через канал осциллографа CH1, а по оси Y - через CH2. Для генерации векторных данных задействован код вышеописанной реализации KiDoom и Python-скрипт для преобразования координат и их передачи в форме звуковых сигналов. Частота обновления кадров при таком подходе упирается в частоту дискретизация звука и составляет 4-8 кадров в секунду.
Проект KDE принял решение прекратить поддержку протокола X11 в выпуске KDE Plasma 6.8, запланированном на начало 2027 года. После этого KDE Plasma будет содержать только сеанс для работы с использованием протокола Wayland, возможность запуска X11-приложений в котором будет обеспечиваться при помощи DDX-сервера XWayland. До этого поддержку X11 было решено прекратить в GNOME 50, намеченном на весну 2026 года.
По июньской статистике 73% пользователей KDE Plasma 6, активировавших отправку телеметрии, уже применяют сеанс на базе Wayland. Пользователям, желающим продолжить использование сеанса KDE на базе X-сервера, рекомендовано использовать дистрибутивы с длительным сроком поддержки, продолжающие сопровождение пакетов с X11. В качестве примера приводится дистрибутив AlmaLinux 9, сопровождаемый до 2032 года и предоставляющий сеанс KDE Plasma на базе X11.
Прекращение поддержки X11 затрагивает только сеанс среды рабочего стола KDE Plasma и не касается возможности запуска приложений KDE в окружениях на базе X-сервера (планов по прекращению поддержки X11 в приложениях KDE пока нет). Кроме того, для тех, кому требуется X11, по возможности будет сохранена поддержка данного протокола в различных компонентах рабочего стола и будут добавлены дополнительные изменения для улучшения совместимости при запуске приложений поверх XWayland. Например, при работе поверх XWayland намерены обеспечить поддержку глобальных комбинаций клавиш, дробного масштабирования и эмуляции устройств ввода.
Среди причин прекращения поддержки X11 упоминается общая стагнация разработки X-сервера и желание не распылять ограниченные ресурсы разработчиков на параллельную поддержку двух дисплейных систем и типов сеансов. Заявлено, что в долгосрочной перспективе избавление от X11 предоставит новые возможности для расширения функциональности, повышения стабильности, оптимизации кода и ускорения процесса разработки.
В текущем виде X11 не может удовлетворить современные потребности, касающиеся многомониторных конфигураций, экранов с высокой плотностью пикселей, HDR, VRR (адаптивное изменение частоты обновления монитора), одновременной работы с несколькими GPU, устойчивости к сбоям, обработки ввода и обеспечения безопасности. При этом в сеансе KDE на базе Wayland имеются нерешённые проблемы, большую часть из которых намерены устранить до выпуска KDE Plasma 6.8.
Исследователи безопасности из компании Morphisec обратили внимание на серию атак против пользователей системы 3D-моделирования Blender, осуществляемую через распространение blend-файлов в популярных каталогах 3D-моделей, таких как CGTrader. Активация вредоносного кода при открытии 3D-модели производится благодаря возможности включения в blend-файлы автоматически запускаемых скриптов на языке Python, предназначенных для автоматизации действий и выполнения расширенных операций, таких как формирование каркаса модели.
Атака прежде всего нацелена на пользователей, включающих в настройках опцию автоматического запуска скриптов из blend-файлов. Автоматический запуск по умолчанию запрещён, но пользователь может не задумываясь подтвердить запуск в диалоге с предупреждением или изменить настройки по умолчанию, если его раздражает необходимость постоянного ручного подтверждения операции. Вредоносные blend-файлы могли не вызвать подозрений, так как в них поставлялись востребованные рабочие модели, например, 3D-модели скафандров, а предлагаемый для запуска Python-скрипт Rig_Ui.py включал известную реализацию системы автоматического риггинга.
В выявленных исследователями blend-файлах в исходный легитимный вариант Rig_Ui.py были внесены изменения для загрузки и запуска вредоносного ПО StealC V2. Для запутывания следов загрузка вредоносного ПО производилсь с использованием промежуточного сайта blenderxnew.tohocaper1979.workers.dev, работающего через платформу Cloudflare Workers. Обнаруженные на системе конфиденциальные данные отправлялись в зашифрованном виде. Вредоносное ПО ограничено атакой на пользователей Windows.
После активации StealC V2 оставался в системе и осуществлял перехват, поиск и отправку конфиденциальных данных, таких как токены доступа, ключи шифрования и пароли. Поддерживалось извлечение конфиденциальных данных из 15 криптокошельков, более 100 браузерных дополнений для работы с криптовалютами и платёжными системами, 23 браузеров (Chromium, Firefox, Opera, Brave и т.д.), а также различных мессенджеров (Telegram, Discord, Tox, Pidgin), VPN (ProtonVPN, OpenVPN) и почтовых клиентов (Thunderbird).
Зафиксирована вторая атака на пакеты в репозитории NPM, проводимая с использованием модификации самораспространяющегося червя Shai-Hulud, подставляющего вредоносное ПО в зависимости. В результате атаки опубликованы вредоносные выпуски 605 пакетов, насчитывающих в сумме более 100 млн загрузок.
Для проведения атаки злоумышленники путём фишинга перехватили параметры учётной записи сопровождающего одного из популярных пакетов, используемого в качестве зависимости у большого числа пакетов. Воспользовавшись захваченной учётную записью атакующие опубликовали релиз пакета, в который был добавлен код для активации червя при установке поражённого пакета в числе зависимостей. Запущенный червь выполняет поиск учётных данных в текущем окружении, загружая и запуская утилиту TruffleHog.
В случае обнаружения токена подключения к каталогу NPM червь автоматически публикует новые вредоносные релизы для пакетов, разрабатываемых в текущем окружении. Таким способом по цепочке поражается всё дерево зависимостей. Помимо NPM-токена червь сохраняет ключи доступа к GitHub и облачным сервисам AWS, Azure и GCP (Google Cloud Platform), а также переменные окружения и другие конфиденциальные данные, которые способен обнаружить сканер TruffleHog.
Найденные в системе конфиденциальные данные размещаются в GitHub через создание репозиториев с хаотичными именами (например, "qzx15djl71alh6p80h") и фразой "Sha1-Hulud: The Second Coming" в описании, а также в закодированном виде выводятся в логи GitHub Actions. В создаваемом репозитории размещатся файл в формате JSON (например, jsonactionsSecrets.json или contents.json), в котором присутствует строка с закодированной методом base64 информацией о системе, переменными окружения и захваченными данными. Для передачи информации вовне из систем непрерывной интеграции на базе GitHub червь создаёт обработчик GitHub Actions с именем ".github/workflows/formatter_123456789.yml" и настраивает runner с именем SHA1HULUD.
Отличия от похожей сентябрьской атаки сводятся к иному методу подстановки вредоносного кода в пакет. В формируемых червём вредоносных релизах заявляется реализация поддержи JavaScript-платформы Bun. В файл package.json в секцию "preinstall", определяющую скрипты, запускаемые до начала установки, добавляется команда "node setup_bun.js".
В файле "setup_bun.js" присутствует код для выполнения обфусцированного скрипта "bun_environment.js", содержащего код червя. Для своего дальнейшего распространения червь находит код пакетов, вносит изменения в файл package.json (увеличивает номер версии и включает вызов setup_bun.js), добавляет файлы setup_bun.js и bun_environment.js, переупаковывает пакет и выполняет команду "npm publish" для размещения нового релиза.
Дополнение: Выявлен деструктивный вариант червя, который пытается удалить все данные в системе в случае одновременной потери доступа к захваченным учётным данным к GitHub и NPM. В Windows червь удаляет все файлы и перезаписывает содержимое секторов на диске, а в Unix-подобных системах удаляет файлы, предварительно записав в них другое содержимое.
Эрик Мигиковски (Eric Migicovsky), основатель компании Pebble Technology, объявил об открытии недостающего исходного кода программного обеспечения Pebble Watch - все приложения, необходимые для работы с умными часами Pebble, теперь можно самостоятельно собрать из исходного кода. Отмечается, что до этого открытым было около 95% программных компонентов. Финальным звеном, заполняющим недостающие 5%, стала публикация кода мобильного приложения для Android и iOS, а также используемой в нём библиотеки libpebble3, предоставляющей функции для взаимодействия с носимыми устройствами Pebble. Код мобильного приложения написан на языке Kotlin и распространяется под лицензией GPL 3.0.
Код используемой на умных часах операционной системы PebbleOS в январе 2025 года был открыт корпорацией Google после поглощения компании Fitbit. С тех пор в кодовую базу PebbleOS при участии сообщества было внесено более тысячи изменений и улучшений. Открытыми также являются инструменты для разработчиков (SDK) и реализация каталога для распространения приложений и тем оформления экрана, устанавливаемых на умных часах.
Для исключения привязки экосистемы с одному каталогу приложений объявлено о подготовке к внедрению поддержки подписки на альтернативные каталоги и предоставление всем желающим возможности создавать свои каталоги приложений. В качестве примера запущен собственный каталог Pebble Appstore и интерфейс для разработчиков Developer Dashboard. Организован процесс поддержания независимой публично доступной резервной копии всего содержимого каталога, поддерживаемой проектом Archive.org.
Разработчики исходного каталога Rebble, содержимое которого было использовано для создания нового каталога Pebble Appstore, выразили недовольство подобным шагом и обвинили Эрика Мигиковски в заимствовании чужой работы. Эрик пояснил свои действия предоставлением возможности выбора, разногласиями при попытке договориться о совместной работе и желанием не привязывать каталог к сторонней организации, чтобы не допустить повторения ситуации со сворачиванием проекта. По поводу обвинений в заимствовании кода, Эрик указал на то, что создание форков открытых проектов не нарушает лицензию на код и не является воровством, даже если разработку этого открытого кода кто-то финансировал. После пояснения Эрика представители Rebble объявили, что погорячились, обвинив его в воровстве, и выразили готовность возобновить работу над соглашением с компанией Эрика, которое будет выгодно всем сторонам конфликта и сообществу.
Одновременно объявлено о переносе даты начала поставки умных часов
Pebble Time 2 с января на март. Модель Pebble Time 2 оснащена 64-цветным 1.5-дюймовым экраном на базе электронной бумаги. Экран сенсорный и накрыт плоской стеклянной линзой, которая в отличие от изогнутой линзы прошлых моделей часов Pebble Time вносит меньше искажений и бликов. Доступны функции отслеживания продолжительности сна, шагомера, пульсометра и компаса. Имеется два микрофона (один для подавления шумов) и громкоговоритель. Обеспечен уровень защиты от попадания влаги IPX8. Время автономной работы заявлено в 30 дней. Цена по предзаказам - $225.
Схемы и проектные файлы (KiCad) для выпущенной в августе упрощённой модели Pebble 2 Duo доступны на GitHub (для модели Pebble Time 2 аналогичные файлы будут опубликованы после завершения работы над прототипом). В используемой на устройствах прошивке и в сборках мобильного приложения остаются некоторые проприетарные компоненты и блобы, например, библиотека Memfault и компоненты для пульсометра, а также код для обращения к внешним проприетарным API, таким как сервис распознавания речи Wispr-flow. Подобные возможности являются необязательными и при желании энтузиасты могут собрать вариант прошивки без них.
Принципы, реализованные в умных часах Pebble:
Использование экрана на основе электронной бумаги, который хорошо читается при солнечном свете и не привлекает внимание окружающих своим свечением.
Длительная автономная работа от одной зарядки аккумулятора.
Простой интерфейс пользователя, предлагающий базовый набор наиболее часто используемых возможностей (показ времени, уведомления, управления воспроизведением музыки, будильник, прогноз погоды, календарь, шагомер и учёт времени сна).
Наличие кнопок, позволяющих совершать действия не смотря на экран (например, остановка воспроизведения музыки или переход к следующей композиции).
Доступность для модификации (hackable), расширения функциональности, создания своих надстроек и смены оформления.
Платформа PebbleOS поддерживают все основные возможности старых часов Pebble, такие как вывод уведомлений и сообщений со смартфона (уведомления о входящих звонках и событиях календаря-планировщика, информация о новых SMS, email и сообщениях из популярных мессенджеров), списки действий, смена тем оформления экрана, будильник, таймер, календарь, управление воспроизведением музыки, функции фитнес-трекера, расширение функциональности через установку приложений.