Доступен релиз проекта Droidian 99, развивающего сборку на основе пакетной базы Debian GNU/Linux, предназначенную для использования на смартфонах вместо платформы Android. В качестве графического окружения предлагается оболочка Phosh, основанная на технологиях GNOME и библиотеке GTK. Системное и пользовательское окружение построены с использованием репозиториев Debian и Mobian. В отличие от дистрибутива Mobian, который нацелен на использование на платах и специализированных Linux-смартфонах, таких как PinePhone, Droidian ориентирован на установку на обычные Android-смартфоны.
Для обеспечения совместимости с аппаратным обеспечением смартфонов в Droidian задействовано ядро из платформы Android, набор системных компонентов от проекта Halium и прослойка libhybris, позволяющая применять драйверы, созданные для платформы Android и работающие в пространстве пользователя. Для запуска Android-приложений из окружения на базе Debian применяется платформа Waydroid. Для решения задач, связанных с телефонией и совершением звонков, задействован стек oFono2MM. Поддерживается установка дополнительных программ в формате Flatpak.
Проектом заявлена официальная поддержка установки на смартфоны Xiaomi Poco M2 Pro / Redmi Note 9 Pro / Pro Max / 9S, Fxtec Pro1, Sony Xperia 5, Google Pixel 3a/3a XL и Volla Phone. Отдельно сообществом формируются неофициальные прошивки для Sony Xperia 1, OnePlus 3/3T и Xiaomi Redmi Note 7 Pro.
В новой версии:
- Пакетная база обновлена до Debian sid по состоянию на 21 августа.
- Задействован новый графический стек, использующий протокол Wayland и такие компоненты, как wlroots 0.17.4, phosh 0.41.0, phoc 0.41.0, gtk 4.14.4, phosh-mobile-settings 0.41.0, libhybris 0.0.5.53 и feedbackd 0.4.1.
- В телефонном стеке ofono2mm расширены возможности, связанные с ведением логов и отображением состояния модема.
- Из GNOME 47 перенесены приложения Maps, Weather, Initial Setup и Eye of GNOME.
- Для приложений на базе Qt5 реализован автоматический вызов экранной клавиатуры при установке фокуса на полях ввода.
- Прослойка для запуска Android-приложений Waydroid обновлена до версии 1.4.3.
- Ядро Linux обновлено до версии 5.10 из состава Android 12.
- Для смартфона Google Pixel 3a в настройках реализована опция для выхода из ждущего режима двойным касанием.
- Разрешено использование другого компилятора Clang и указание дополнительных блоков конфигурации.
Доступен релиз проекта Droidian 99, развивающего сборку на основе пакетной базы Debian GNU/Linux, предназначенную для использования на смартфонах вместо платформы Android. В качестве графического окружения предлагается оболочка Phosh, основанная на технологиях GNOME и библиотеке GTK. Системное и пользовательское окружение построены с использованием репозиториев Debian и
Во FreeBSD устранено несколько уязвимостей, позволяющих локальному пользователю поднять свои привилегии, выполнить код в контексте ядра или выйти из изолированного окружения:
- CVE-2024-43102 - состояние гонки в реализации системного вызова _umtx_op может использоваться для организации обращения к уже освобождённой области памяти (Use-After-Free) через одновременную отправку нескольких подзапросов UMTX_SHM_DESTROY. Потенциально уязвимость позволяет обойти ограничения механизма изоляции Capsicum или добиться выполнения кода на уровне ядра. Уязвимости присвоен наивысший уровень опасности (10 из 10). Проблема устранена в обновлениях 14.1-RELEASE-p4, 14.0-RELEASE-p10 и 13.3-RELEASE-p6.
- CVE-2024-45287, CVE-2024-45288 - уязвимости в библиотеке libnv, используемой в ядре и в пространстве пользователя для обработки списков в формате ключ/значение. Первая проблема связана с целочисленным переполнением, приводящим к выделению буфера, размером меньше, чем записываемый в буфер блок данных. Вторая проблема вызвана невыставлением завершающего нулевого символа в последнем элементе массива, что приводит к возможности записи за границу выделенного буфера. Уязвимость потенциально может использоваться для повышения своих привилегий путем перезаписи областей памяти в системных процессах или ядре.
- CVE-2024-32668, CVE-2024-41928, CVE-2024-8178, CVE-2024-42416, CVE-2024-43110, CVE-2024-45063 - уязвимости в гипервизоре bhyve, позволяющие добиться выполнения кода в процессе, выполняемом на стороне хост-системы (обычно с правами root), при манипуляциях внутри гостевой системы с драйверами виртуального USB-контроллера (XHCI), TPM или ctl (эмуляция SCSI через CAM Target Layer).
- CVE-2024-6119 - уязвимость в OpenSSL, приводящая к аварийному завершению приложений при проверке специально оформленных имён сертфикатов X.509, заданных в поле otherName.
Во FreeBSD устранено несколько уязвимостей, позволяющих локальному пользователю поднять свои привилегии, выполнить код в контексте ядра или выйти из изолированного окружения:
- CVE-2024-43102 - состояние гонки в реализации системного вызова _umtx_op может использоваться для организации обращения к уже освобождённой области памяти (Use-After-Free) через одновременную отправку нескольких подзапросов UMTX_SHM_DESTROY....
Представлен релиз операционной системы Chrome OS 128, основанной на ядре Linux, системном менеджере upstart, сборочном инструментарии ebuild/portage, открытых компонентах и web-браузере Chrome 128. Пользовательское окружение Chrome OS ограничивается web-браузером, а вместо стандартных программ задействованы web-приложения, тем не менее, Chrome OS включает в себя полноценный многооконный интерфейс, рабочий стол и панель задач. Вывод на экран осуществляется при помощи графического стека Freon (ведётся работа по переходу на использование Wayland) и оконного менеджера Aura. Исходные тексты распространяются под свободной лицензией Apache 2.0. Сборка Chrome OS 128 доступна для большинства актуальных моделей Chromebook. Для использования на обычных компьютерах предлагается редакция Chrome OS Flex.
- Реализованы группы привязок (Snap groups), формируемые при закреплении двух окон в режиме разделения экрана и позволяющие в дальнейшем возвращать данные сочетания окон, одновременно изменять размер или перемещать привязанные окна в виде неделимой группы. https://honk.any-key.press/d/wMVY14Hgm5k881G43W.pnghttps://honk.any-key.press/d/ftd84Sm3d7frD5l7Xd.pnghttps://honk.any-key.press/d/4Jb9Qc2YntqZhN7V5P.png
- В приложение для работы с камерой встроена система оптического распознавания текста (OCR), позволяющая извлекать текст из снятых фотографий. Система поддерживает 77 языков, может распознавать горизонтальный и вертикальный текст, копировать распознанный текст в буфер обмена, использовать его при поиске, создавать текстовые PDF и проговаривать через движок синтеза речи. По умолчанию распознавание отключено и требует активации в настройках (Settings > Text detection). https://honk.any-key.press/d/zXw1fC7W6MKJydYXRb.png
- Включён по умолчанию режим автоматической нормализации громкости (AGC - Auto Gain Control), без участия пользователя выбирающий оптимальный уровень чувствительности микрофона для достижения наилучшего качества записи. Для возвращения к ручному выставлению уровня микрофона следует изменить настройку "Settings > Device > Audio and deselect Allow apps to automatically adjust mic volume". https://honk.any-key.press/d/P4KK4J4xzJP9w3S46Y.png
- На странице с настройками приложений при изменении полномочий отдельного приложения обеспечен вывод дополнительного уведомления о необходимости включения доступа к микрофону или камере, в случае блокировки к ним доступа на уровне системы. https://honk.any-key.press/d/pKH5Jbd5Ll326My964.png
- Обеспечено хранение собираемых метаданных о работе Android-приложений, таких как статистика о производительности и аварийных завершениях, в течение года для оценки динамики их изменения.
- Упрощён интерфейс для просмотра, добавления и управления точками доступа (APN Access Point Names) при подключении через сеть мобильного оператора связи.
- Реализовано визуальное разделение закреплённых и обычных уведомлений, чтобы более наглядно различать уведомления об отдельных событиях и уведомления о продолжающихся процессах.
- На страницу "Settings > Privacy and security > Privacy controls" добавлены отдельные настройки для управления доступом к сведениям о местоположении, например, позволяющие запретить доступ к данным о местоположении для всех приложений и сайтов, но оставить для системных сервисов или полностью отключить для любых применений.
- Устранено 10 уязвимостей, 5 из которых помечены как опасные (выход за границу буфера в библиотеке отрисовки 2D-графики Skia, движке обработки шрифтов и механизме автозаполнения форм, проблемы в JavaScript-движке V8). Размер вознаграждений, выплаченных выявившим проблемы исследователям, составил 50 тысяч долларов.
Представлен релиз операционной системы Chrome OS 128, основанной на ядре Linux, системном менеджере upstart, сборочном инструментарии ebuild/portage, открытых компонентах и web-браузере Chrome 128. Пользовательское окружение Chrome OS ограничивается web-браузером, а вместо стандартных программ задействованы web-приложения, тем не менее, Chrome OS
Компания Mozilla продлила сопровождение прошлой ESR-ветки Firefox 115 ещё на пол года до марта 2025 года. Таким образом, срок сопровождения Firefox 115 составит не год как обычно, а полтора года. Дополнительное время ветка Firefox 115 будет сопровождаться параллельно с новой ESR-веткой Firefox 128.
В качестве причины увеличения времени жизни Firefox 115 называется желание продлить публикацию обновлений браузера, способных работать в операционных системах Windows 7, 8 и 8.1, и macOS 10.12, 10.13 и 10.14. Ветка Firefox 115 является последней с поддержкой данных систем. В примечании к изменению упоминается, что в марте, не исключено, что сопровождение ветки Firefox 115 будет продлено снова.
В соответствии со статистикой Mozilla 10.5% пользователей Firefox продолжают использование Windows 7 и Windows 8, несмотря на прекращение компанией Microsoft сопровождения данных операционных систем с января 2020 года. Год назад данный показатель составлял 13.7%, а два года назад - 19.1%. В Google Chrome поддержка Windows 7 и Windows 8 была прекращена в феврале 2023 года, поэтому Firefox остаётся единственным значительным браузером с поддержкой Windows 7/8.
Компания Mozilla продлила сопровождение прошлой ESR-ветки Firefox 115 ещё на пол года до марта 2025 года. Таким образом, срок сопровождения Firefox 115 составит не год как обычно, а полтора года. Дополнительное время ветка Firefox 115 будет сопровождаться параллельно с новой ESR-веткой
После почти двух лет разработки опубликован выпуск операционной системы Redox 0.9, разработанной с использованием языка Rust и концепции микроядра. Наработки проекта распространяются под свободной лицензией MIT. Для тестирования Redox OS предложены загрузочные live-окружения для реального оборудования и системные образы для виртуальных машин (512 МБ и 1.5 ГБ), подготовленные для архитектур x86_64 и i686.
Демонстрационный образ включает эмулятор DOSBox, подборку игр (DOOM, Neverball, Neverputt, sopwith, syobonaction), обучающие программы, музыкальный проигрыватель rodioplay с поддержкой форматов FLAC и WAV, web-браузер Netsurf, просмотрщик изображений, консольный текстовый редактор Sodium, файловый менеджер, эмулятор терминала и текстовый редактор от проекта COSMIC. Пользовательское окружение построено на базе собственной графической оболочки Orbital и тулкита OrbTk, предоставляющего API, похожий на Flutter, React и Redux. Имеется поддержка GUI-библиотек Slint, Iced и winit.
Операционная система развивается в соответствии с философией Unix и заимствует некоторые идеи из SeL4, Minix и Plan 9. Redox использует концепцию микроядра, при котором на уровне ядра обеспечивается только взаимодействие между процессами и управление ресурсами, а вся остальная функциональность вынесена в библиотеки, которые могут использоваться как ядром, так и пользовательскими приложениями. Все драйверы выполняются в пространстве пользователя в изолированных sandbox-окружениях. Для совместимости с существующими приложениями предоставляется специальная POSIX-прослойка, позволяющая запускать многие программы без портирования.
Проектом развивается собственный пакетный менеджер, набор стандартных утилит (binutils, coreutils, netutils, extrautils), командная оболочка ion, стандартная Си-библиотека relibc, vim-подобный текстовый редактор sodium, сетевой стек и файловая система. Конфигурация задаётся на языке Toml.
Среди поддерживаемого оборудования отмечены устройства ввода с интерфейсом USB (клавиатуры, мыши, тачпады), вывод графики через API VESA BIOS или UEFI GOP (драйверы для GPU не поддерживаются), звуковые чипы AC’97 и Intel HD Audio, SATA (AHCI, IDE) и NVMe. Поддержка Wi-Fi и устройств хранения с интерфейсом USB пока не доведена до готовности. Работа с графическим окружением протестирована на ноутбуках Lenovo IdeaPad Y510P, System76 Galago Pro и System76 Lemur Pro. С отдельными ограничениями обеспечена поддержка ноутбуков Dell XPS 13, HP Dev One, ASUS X554L, ASUS ROG g55vw, Toshiba Satellite L500 и ASUS Eee PC 900. Из ARM-систем поддерживается Raspberry Pi 3 Model B+.
Основные изменения:
- Значительно расширены возможности, связанные с управлением процессами, потоками, памятью и сигналами, что привело к улучшению работы многих приложений. Например, система достигла уровня, позволяющего собирать простые программы компиляторами GCC и Rust, при этом поддержка самосборки пока не достигнута.
- Из пользовательского окружения COSMIC в Redox перенесены файловый менеджер, текстовый редактор и эмулятор терминала, работающие в графическом режиме.
- Улучшена переносимость с программами из Linux и BSD-систем. Общее число портов приложений доведено примерно до 1700. Из значительных достижений отмечается портирование HTTP-сервера Apache, Simple HTTP Server, RustPython, GNU Make, Lua, Perl 5, текстовых редакторов GNU Nano и Helix.
- Внесены разнообразные оптимизации производительности и исправлены многие проблемы, влияющие на стабильность работы. Повышена производительность файловой системы RedoxFS, системы управления памятью, системных вызовов и переключения контекста. Значительно ускорена работа в виртуальных машинах.
- В дисплейный сервер Orbital добавлена поддержка GUI-библиотек Slint, Iced и winit. Через winit в Orbital реализована возможность декорирования окон на стороне клиента, создания скрытых окон, развёртывания окон на весь экран. Добавлена возможность воспроизведения музыки и видео из GUI-программ через двойной щелчок мышью. Улучшено оформление среды рабочего стола Orbital. https://honk.any-key.press/d/3KwR61Qwkkv3tQXkPG.png
- Вместо адресации через URL (например, для записи в лог мог использоваться URL "log://", а для сетевого взаимодействия "tcp://") задействован традиционный для Unix-систем формат файловых путей, что положительно повлияло на совместимость с программами и библиотеками POSIX/Linux.
- Доработана реализация стандартной Си-библиотеки Relibc, которая кроме libm теперь полностью написана на Rust. Расширена поддержка POSIX-функций. Предложена инициативы по предоставлению стабильного ABI для пространства пользователя. Все системные компоненты переведены с redox_syscall на libredox.
- Улучшена работа загрузчика для UEFI.
- Значительно улучшена поддержка архитектуры ARM64 (Aarch64) и обеспечена частичная совместимость с платой Raspberry Pi 3B+.
- Расширены возможности драйвера Contain для изолированного выполнения приложений. Добавлена демонстрация использования драйвера Contain (desktop-contain.toml).
- Улучшены драйверы для PCI и PCIe. Добавлены драйверы VirtIO.
- Расширены возможности системы сборки.
После почти двух лет разработки опубликован выпуск операционной системы Redox 0.9, разработанной с использованием языка Rust и концепции микроядра. Наработки проекта распространяются под свободной лицензией MIT. Для тестирования Redox OS предложены загрузочные live-окружения для реального оборудования и системные образы для виртуальных машин (512 МБ и 1.5 ГБ), подготовленные для архитектур
После шести месяцев разработки опубликован релиз многоплатформенного тулкита для создания графического интерфейса пользователя - GTK 4.16.0. GTK 4 развивается в рамках процесса разработки, который пытается предоставить разработчикам приложений стабильный и поддерживаемый в течение нескольких лет API, который можно использовать не опасаясь, что каждые полгода придётся переделывать приложения из-за изменения API в очередной ветке GTK.
- Добавлена настройка gtk-font-rendering, предоставляющая гибкие высокоуровневые возможности для управления отрисовкой шрифтов. Для использования низкоуровневых настроек шрифтов следует выставить параметр gtk-font-rendering в значение 'manual'.
- В библиотеке GSK (GTK Scene Kit), предоставляющей возможности отрисовки графических сцен через OpenGL и Vulkan, по умолчанию для отрисовки в окружениях на базе протокола Wayland задействован движок отрисовки "vulkan", напрямую использующий графический API Vulkan. В остальных случаях продолжает использоваться движок отрисовки "ngl", предлагающий реализацию OpenGL, работающую поверх API Vulkan. Для изменения движка можно использовать переменную окружения "GSK_RENDERER". Так как движки "vulkan" и "ngl" по иному взаимодействуют с графическими драйверами, для стабильной работы с ними рекомендуется использовать последний релиз Mesa 24.2.
- Среди других изменений в библиотеке GSK:
- Реализована техника оптимизации "occlusion culling", исключающая отрисовку объектов, скрытых за другими непрозрачными объектами или находящимися вне поля зрения.
- В процессе композитинга обеспечен учёт информации о цветовом пространстве.
- Улучшено кэширование глифов и текстур.
- Реализована поддержка плиточного наложения (tiling) больших текстур для создания бесшовной поверхности путём повторения текстуры.
- Улучшена отрисовка теней.
- Добавлена возможность привлечения средств аппаратного ускорения для обработки преобразованных текстур, например, для вывода повёрнутого содержимого на экран.
- Улучшено использование механизмов аппаратного ускорения на системах с композитным менеджером kwin.
- Добавлена отладочная опция "GDK_DEBUG=linear" для включения режима линейного композитинга. Улучшено ведение лога при использовании опций "GDK_DEBUG=offload" и "GSK_DEBUG=renderer".
- При работе в окружениях на базе протокола Wayland и композитного менеджера kwin реализована возможность использования расширения протокола (color-management) для управление цветом. При выводе закреплённых диалогов использовано Wayland-расширение xdg-dialog. При композитинге задействована шестая версия объекта wl_compositor. Разрешено использование dmabuf в процессе аппаратного ускорения обработки текстур для OpenGL.
- Улучшения в библиотеке GDK, предоставляющей прослойку между GTK и графической подсистемой:
- Существенно расширены возможности для работы с цветовыми пространствами. Обеспечена поддержка цветовых пространств srgb, srgb-linear, rec2100-pq и rec2100-linear, и проведена подготовка к реализации поддержки цветовых пространств для HDR. Предложен объект GdkColorState, предоставляющий информацию об интерпретации цветов, которую можно использовать для преобразования одного цветового пространства в другое. Для создания объектов с информацией о цветовых пространствах добавлен объект Gdk.CicpParams. В объект GdkTexture, а также в объекты создания, загрузки и преобразования текстур добавлена возможность использования цветовых пространств.
Реализован новый API для работы с курсором, основанный на callback-вызовах.
- Реализована возможность выполнения операций MIP-текстурирования (MipMap, создание уменьшенных версий текстур, используемых при удалении объекта от камеры) силами CPU.
- Для преобразования цветов и MIP-текстурирования задействован пул потоков (thread pool) .
- Добавлена поддержка переменной окружения XDG_ACTIVATION_TOKEN с токеном активации для протокола xdg-activation-v1, при помощи которого одно приложение может переключить фокус на другое.
- Добавлен класс GdkMemoryTextureBuilder, позволяющий формировать объекты с текстурами (GdkTexture) из данных, хранимых в оперативной памяти.
- Расширены возможности по созданию тем оформления на базе CSS. Добавлена поддержка переменных и пользовательских свойств. Реализованы CSS-функции color(), oklab(), color-mix(), а также математические функции. Предоставлена возможность использования относительного определения цветов (изменения абсолютных цветов функциями), а также задания уровня прозрачности в процентах. При работе с цветами, рамками, тенями и текстом обеспечен учёт информации о цветовых пространствах.
- В утилиту rendernode-tool добавлены команды "extract" для загрузки данных по URL и image для манипуляции текстурами. Реализована возможность генерации файлов в формате PDF.
- В интерфейс gtk4-node-editor добавлена операция 'Paste as node'.
- В виджет выбора файлов GtkFileChooserWidget добавлена поддержка комбинации Ctrl-Shift-N для создания каталогов.
- В виджете создания всплывающих окон GtkPopover улучшена обработка изменения размера и позиции.
- В виджет GtkGraphicsOffload, используемый для прямой отправки контента, такого как видео, через композитный менеджер минуя рендер GSK, добавлено свойство "black-background" для вывода чёрного фона.
- В виджет GtkGLArea, предназначенном для вывода с использованием OpenGL, добавлена возможность формирования текстур в dmabuf, что позволяет использовать виджет GtkGraphicsOffload для прямого вывода напрямую через композитный сервер. Повышена эффективность взаимодействия с композитным сервером. https://honk.any-key.press/d/Pmy9K3MQD3zS3SRvrn.png
- В виджет GtkTextView добавлена поддержка вывода текста с тенью и реализована возможность использования уведомлений GtkTextBufferCommitNotify.
- В виджет GtkCheckButton добавлена поддержка группировки стиля кнопок.
- Расширены возможности отладки. В интерфейс инспектирования добавлена информация о цветовых пространствах, а также сведения о разрешении монитора. Переменная окружения GDK_DEBUG разделена на GDK_DEBUG и GDK_DISABLE. Добавлены режимы GDK_DISABLE=color-mgmt и GDK_DISABLE=offload. Добавлен режим GTK_DEBUG=css для вывода предупреждений при использовании устаревших возможностей CSS. Добавлены клавиатурные комбинации Super-r для записи лога событий и Super-c для создания скриншота.
- Подняты требования к зависимостям и сборочному окружению. Для сборки теперь необходим компилятор с поддержкой C11 и как минимум версии gstreamer 1.24, pango 1.52 и cairo 1.18. Прекращена поддержка устаревших сборочных режимов gtk_doc (следует использовать documentation), update_screenshots (-> screenshots), demo-profile (-> profile) и demos (-> build-demos).
- Для macOS 10.15+ реализован интерфейс определения цвета пикселей на экране (color picker).
- Для Windows включён режим инкрементального рендеринга с использованием API WGL.
После шести месяцев разработки опубликован релиз многоплатформенного тулкита для создания графического интерфейса пользователя - GTK 4.16.0. GTK 4 развивается в рамках процесса разработки, который пытается предоставить разработчикам приложений стабильный и поддерживаемый в течение нескольких лет API, который можно использовать не опасаясь, что каждые полгода придётся переделывать приложения из-за изменения API в очередной ветке GTK.
Разработчики проекта KDE подвели итоги голосования по выбору целей, которым будет уделено повышенное внимание при разработке в ближайшие 2 года. Из 10 предложенных вариантов выбраны три основные цели:
- Унификация и модернизация средств для разработки приложений. Цель направлена на улучшение процесса разработки приложений и охватывает как упрощение средств разработки для привлечения новых участников, так и расширение возможностей разработки приложений на языках, отличных от C++, таких как Rust и Python. Среди намеченных работ упоминается улучшение интеграции с IDE, уменьшение фрагментации API, чистка устаревших API, улучшение совместимости инструментария с QML, разработка QML-замен для функциональности, используемой в приложениях на QtWidgets (например, виджет для dock-панели), улучшение реализации всплывающих окон и меню в QtQuick, расширение документации.
- Модернизация и приведение в порядок стека для поддержки устройств ввода (от качественной поддержки расширенных устройств, таких как графические планшеты и игровые контроллеры, до возможности голосового ввода, режима быстрого ввода emoji и интеграции виртуальной клавиатуры).
- Формализация и форсирование процессов для рекрутинга новых участников проекта.
Прошлые цели были определены в 2022 году и затрагивали доступность для всех категорий пользователей, разработку приложений с учётом влияния на окружающую среду и систематизацию внутренних процессов.
Разработчики проекта KDE подвели итоги голосования по выбору целей, которым будет уделено повышенное внимание при разработке в ближайшие 2 года. Из 10 предложенных вариантов выбраны три основные цели:
- Унификация и модернизация средств для разработки приложений. Цель направлена на улучшение процесса разработки приложений и охватывает как упрощение средств разработки для привлечения новых участников, так и расширение возможностей разработки...
Опубликован выпуск библиотеки libmdbx 0.13.1 (MDBX) с реализацией высокопроизводительной компактной встраиваемой базы данных класса ключ-значение. Код libmdbx распространяется под лицензией Apache 2.0. Поддерживаются все актуальные операционные системы и архитектуры, а также российский Эльбрус 2000. Для libmdbx предлагается развитое API для C++, а также поддерживаемые энтузиастами привязки к языкам Rust, Haskell, Python, NodeJS, Ruby, Go, Nim, Deno, Scala.
Исторически libmdbx является глубокой переработкой СУБД LMDB и превосходит своего прародителя по надёжности, набору возможностей и производительности. В сравнении с LMDB, в libmdbx большое внимание уделяется качеству кода, стабильной работе API, тестированию и автоматическим проверкам. Поставляется утилита проверки целостности структуры БД с некоторыми возможностями восстановления. Технологически libmdbx предлагает ACID, строгую сериализацию изменений и неблокирующее чтение с линейным масштабированием по ядрам ЦПУ. Поддерживается автокомпактификация, автоматическое управление размером БД, оценка объёма выборок по диапазонам (range query estimation).
Основные изменения:
- Изменение лицензии на код с OpenLDAP Public License на Apache 2.0.
- Расширение API курсоров более удобными и очевидными операциями позиционирования по аналогии условиям ‹, ‹=, ==, ›=, › как для ключей, так и для пар ключ-значение. Добавлены функции mdbx_cursor_unbind(), и mdbx_txn_release_all_cursors() для гибкого управления курсорами в сценариях повторного использования для уменьшения накладных расходов. Функции mdbx_cursor_scan() и mdbx_cursor_scan_from() для сканирования таблиц с использованием функционального предиката и уменьшением сопутствующих накладных расходов.
- Переработка курсоров для унификации поведения, более регулярного кода, уменьшения количества ветвлений и машинных операций.
- Перенос функциональности утилиты mdbx_chk внутрь библиотеки в виде функции mdbx_env_chk() для проверка целостности структуры БД, в том числе с вовлечением логики приложения.
- Опция MDBX_opt_gc_time_limit для более гибкого контроля времени расходуемого на поиск последовательностей соседствующих свободных страниц в GC.
- Существенное снижение накладных расходов на запуск транзакций в сценариях с большим количеством DBI-хендов, за счёт отложенной/ленивой инициализации элементов служебных таблиц. В том числе, механизм поддержки разрежённых наборов DBI-хендов, управляемый опцией сборки MDBX_ENABLE_DBI_SPARSE, которая включена по умолчанию.
- Снижение накладных расходов на открытие DBI-хендов. В том числе, механизм отложенного освобождения и поддержки быстрого пути открытия без использования блокировок, управляемый опцией сборки MDBX_ENABLE_DBI_LOCKFREE, которая включена по-умолчанию.
- Поддержка “парковки” читающих транзакций с их вытеснением ради переработки старых MVCC-снимков и предотвращения проблем вызываемых приостановкой переработки мусора. Механизм парковки и вытеснения припаркованных транзакций является как дополнением, так и более простой в использовании альтернативой обратному вызову Handle-Slow-Readers. Для удобства функции mdbx_txn_park() и mdbx_txn_unpark() имеют дополнительные аргументы, позволяющие запросить автоматическую “распарковку” припаркованных и перезапуск вытесненных транзакций. В утилиту mdbx_copy добавлены соответствующие опции -d и -p.
- Поддержка восстановления открытой среды работы с БД в дочернем процессе после ветвления/расщепления процесса посредством mdbx_env_resurrect_after_fork().
- Поддержка переименования таблиц посредством mdbx_dbi_rename() и mdbx_dbi_rename2(). Добавлена функция mdbx_enumerate_tables() для получение информации об именованных пользовательских таблицах.
- Режим работы MDBX_NOSTICKYTHREADS вместо MDBX_NOTLS для упрощения интеграции с легковесными потоками/нитями их мультиплексирования вместе с транзакциями по потокам операционной системы.
- Для идентификации БД добавлен UUID доступный в поле mi_dxbid структуры MDBX_envinfo, получаемой посредством mdbx_env_info_ex(). Реализовано получение информации о БД без её открытия посредством mdbx_preopen_snapinfo().
- Поддержка функций логирования обратного вызова без функциональности vprintf(), что существенно облегчает использование логирования в привязках к другим языкам программирования.
- Добавление в API функций mdbx_txn_copy2pathname() и mdbx_txn_copy2fd().
- Реструктуризация исходного кода с рефакторингом.
- Использование термина "таблица" вместо "subDb".
- Объявление устаревшими опций MDBX_COALESCE и MDBX_NOTLS. Замена сборочной опции MDBX_USE_VALGRIND на общепринятую ENABLE_MEMCHECK.
Опубликован выпуск библиотеки libmdbx 0.13.1 (MDBX) с реализацией высокопроизводительной компактной встраиваемой базы данных класса ключ-значение. Код libmdbx распространяется под лицензией Apache 2.0. Поддерживаются все актуальные операционные системы и архитектуры, а также российский Эльбрус 2000. Для libmdbx предлагается развитое
В списке рассылки ядра Linux опубликован набор патчей с реализацией возможности сборки ядра Linux для архитектуры ARM64 в окружении macOS со штатным сборочным инструментарием на базе LLVM. Кроме изменения сборочных сценариев в ядре и включения дополнительных заголовочных файлов в несколько файлов с кодом, для сборки также требуется установка в macOS пакета со специфичными для Linux-окружения заголовочными файлами (byteswap.h, elf.h и endian.h).
В списке рассылки ядра Linux опубликован набор патчей с реализацией возможности сборки ядра Linux для архитектуры ARM64 в окружении macOS со штатным сборочным инструментарием на базе LLVM. Кроме изменения сборочных сценариев в ядре и включения дополнительных заголовочных файлов в несколько файлов с кодом, для сборки также требуется установка в macOS
После двух с половиной лет разработки представлен релиз динамического языка программирования Clojure 1.12, базирующегося на языковых конструкциях Lisp и сочетающего в себе возможности функционального и многопоточного программирования с чертами современных скриптовых языков. Код программ на языке Clojure транслируется в Java байт-код и выполняется на виртуальной машине JVM. Код компилятора Clojure, библиотек и runtime-компонентов распространяется в рамках лицензии Eclipse Public License.
Среди изменений в новой версии:
- Добавлены функции для динамической загрузки библиотек в интерактивном режиме REPL (Read-Eval-Print Loop) без перезапуска JVM и без потери состояния выполнения.
- В Clojure CLI добавлена функция invoke-tool для вызова вспомогательных функций в отдельных процессах.
- В дополнение к clojure.java.shell добавлено новое пространство имён clojure.java.process, упрощающее запуск внешних процессов и организацию обмена данными с ними.
- Предоставлена возможность обращения к Java-методам как к обычным функциям (компилятор автоматически сгенерирует обёртку).
- Добавлена поддержка нового синтаксиса вызова методов с указанием имени класса, в котором они определены: Class/method (вызов статического метода), Class/.method (вызов экземпляра метода) и Class/new (вызов конструктора).
- Предоставлена возможность обращения к массивам, используя синтаксис "ComponentClass/#dimensions", например, для ссылки на класс c двумерным массивом строк можно указать "String/2".
- Устранена уязвимость (CVE-2024-22871), приводящая к зацикливанию при чтении определённым образом сериализированных объектов.
После двух с половиной лет разработки представлен релиз динамического языка программирования Clojure 1.12, базирующегося на языковых конструкциях Lisp и сочетающего в себе возможности функционального и многопоточного программирования с чертами современных скриптовых языков. Код программ на языке Clojure транслируется в Java байт-код и выполняется на виртуальной машине JVM. Код компилятора Clojure, библиотек и runtime-компонентов
Разработчики ядра Linux объявили о передаче в ветку linux-next, которая будет использоваться при формировании выпуска 6.12, финальных изменений, необходимых для сборки ядра с опцией PREEMPT_RT, включающей средства для работы в режиме реального времени. После принятия изменений в основную ветку ядра режим PREEMPT_RT станет доступен для архитектур X86, ARM64 и RISC-V. Позднее будет добавлена поддержка архитектур ARM и POWERPC, для которых в ядро переданы пока не все патчи.
Разработка реализации режима реального времени для ядра Linux ведётся с 2005 года в рамках проекта "Realtime-Preempt" ("-rt") и с 2015 года курируется организацией Linux Founation. До сих пор реализация режима PREEMPT_RT поставлялась в форме внешних патчей, на основе которых некоторые дистрибутивы, такие как RHEL, SUSE и Ubuntu, создавали отдельные Realtime-редакции своих продуктов, востребованные в таких областях, как финансовые системы, устройства обработки звука и видео, авиация, медицина, робототехника, телекоммуникационные и промышленные системы, в которых необходимо обеспечить предсказуемое время обработки событий.
В 2019 году началось продвижение развиваемых в PREEMPT_RT патчей в основной состав ядра. В файл конфигурации ядра 5.3 была добавлена опция PREEMPT_RT для включения режима реального времени, но интеграция необходимых для её работы изменений растянулась на 5 лет. Теперь данный путь близится к завершению и скорее всего уже в выпуске 6.12 ядро можно будет собрать в режиме PREEMPT_RT без применения дополнительных патчей.
Последней отсутствующей в ядре возможностью, не позволявшей активировать режим PREEMPT_RT, была поддержка неблокирующего атомарного вывода через функцию printk. Данная возможность теперь принята в ветку linux-next. Включения в ветку linux-next также ожидает реализация атомарной и неблокирующей консоли для драйвера UART 8250, без которой вывод в консоль экстренных сообщений из кода в атомарном контексте пока отключён.
Разработчики ядра Linux объявили о передаче в ветку linux-next, которая будет использоваться при формировании выпуска 6.12, финальных изменений, необходимых для сборки ядра с опцией PREEMPT_RT, включающей средства для работы в режиме реального времени. После принятия изменений в основную ветку ядра режим PREEMPT_RT станет доступен для архитектур X86, ARM64 и RISC-V. Позднее будет добавлена поддержка архитектур ARM и POWERPC,...
Проект KDE начал распространение шестого поколения ноутбуков, поставляемых под брендом KDE Slimbook. Продукт KDE Slimbook VI разработан при участии сообщества KDE совместно с испанским поставщиком оборудования Slimbook. Программная начинка основана на рабочем столе KDE Plasma 6, системном окружении KDE Neon на базе Ubuntu и подборке свободных приложений, таких как графический редактор Krita, система 3D-проектирования Blender, САПР FreeCAD и редактор видео Kdenlive. Графическое окружение по умолчанию использует протокол Wayland. Все поставляемые в KDE Slimbook приложения и обновления досконально тестируются разработчиками KDE для обеспечения высокого уровня стабильности окружения и совместимости с оборудованием.
Новый ноутбук оснащён 16-дюймовым экраном (2560x1600, 16:10, sRGB 100% 120 Hz) и примечателен применением процессора AMD Ryzen 7 8845HS (8 ядер, 16 потоков, 3.8-5.1GHz) и GPU AMD Radeon 780M (12 ядер RDNA 3, 2700 MHz). Устройство снабжено 2 портами USB-C 3.2 c DisplayPort 1.4, тремя портами USB-A 3.2, HDMI, Wifi 6 RTL8852BE-CG AC/AX, Bluetooth 5.2, четырьмя двухватными громкоговорителями и физически отключаемой web-камерой HD 720P 1.0M. Возможно подключение до трёх внешних мониторов (1 через HDMI и 2 через USB-C DisplayPort). Комплектация предусматривает установку до 96 ГБ ОЗУ (5600 MHz DDR5) и 8 ТБ SSD (два слота SSD NVMe PCIe 4.0 M.2). Размер: 356.6*248.5*20.3мм, вес 1.85 кг. Заявленное время автономной работы - 12 часов. Цена устройства - 1099 евро.
Проект KDE начал распространение шестого поколения ноутбуков, поставляемых под брендом KDE Slimbook. Продукт KDE Slimbook VI разработан при участии сообщества KDE совместно с испанским поставщиком оборудования Slimbook. Программная начинка основана на рабочем столе KDE Plasma 6, системном окружении KDE Neon на базе Ubuntu и подборке свободных приложений, таких как графический редактор Krita, система 3D-проектирования Blender, САПР FreeCAD...
Проект Nginx объявил о переводе разработки с использования системы управления версиями Mercurial на Git, переносе официального репозитория на GitHub и задействования платформ GitHub Issues и GitHub Discussions вместо системы отслеживания ошибок trac.nginx.org и обсуждений в почтовых рассылках. Ожидается, что переход на GitHub упростит взаимодействие с сообществом и привлечёт к участию в проекте сторонних разработчиков.
Для приёма изменений от других участников реализована возможность использования pull-запросов. Система отслеживания ошибок trac.nginx.org переведена в режим только для чтения. Для того чтобы дать разработчикам и пользователям время на адаптацию к новому уладу кроме использования GitHub до 31 декабря будет сохранена возможность отправки патчей и получения консультаций через списки рассылки.
Проект Nginx объявил о переводе разработки с использования системы управления версиями Mercurial на Git, переносе официального репозитория на GitHub и задействования платформ GitHub Issues и GitHub Discussions вместо системы отслеживания ошибок trac.nginx.org и обсуждений в почтовых рассылках. Ожидается, что переход на GitHub упростит взаимодействие с сообществом и привлечёт к участию в проекте сторонних разработчиков.
Компания Red Hat объявила о готовности новой редакции дистрибутива RHEL - Red Hat Enterprise Linux AI (RHEL AI), специально адаптированной для выполнения задач машинного обучения и призванной упростить создание серверных решений, использующих большие языковые модели.
В состав дистрибутива включена подборка инструментов и фреймворков для машинного обучения, драйверы для использования различных аппаратных ускорителей AMD, Intel и NVIDIA, и компоненты для задействования возможностей серверов Dell, Cisco, HPE, Lenovo и SuperMicro, оптимизированных для AI-систем. Сборки распространяются через Red Hat Customer Portal в вариантах для прямой установки на серверы и для развёртывания в облачных системах AWS и IBM Cloud.
Платформа может применяться для разработки корпоративных AI-приложения, внедрения сервисов генерации контента, создания диалоговых систем и интеграции в приложения виртуальных ассистентов, поддерживающих такие навыки, как возможность отвечать на вопросы на естественном языке, решать математические задачи, генерировать осмысленный текст на заданную тему, составлять краткое изложение содержимого, исправлять ошибки в тексте, выполнять рерайтинг другими словами, помогать в написании кода на различных языках программирования, формировать письма и документы по шаблону.
В RHEL AI интегрированы компоненты для создания, тестирования и выполнения систем машинного обучения на базе большой языковой модели Granite, открытой компанией IBM под лицензией Apache 2.0, способной учитывать при генерации текста до 4 тысячи токенов и охватывающей 7 миллиардов параметров. Для взаимодействия с моделью Granite в дистрибутив интегрирован открытый инструментарий InstructLab, поддерживающий методологию LAB (Large-scale Alignment for chatBots) для подгонки под свои нужды и оптимизации моделей, а также для добавления дополнительных знаний и реализации новых навыков в предварительно натренированных моделях.
Компания Red Hat объявила о готовности новой редакции дистрибутива RHEL - Red Hat Enterprise Linux AI (RHEL AI), специально адаптированной для выполнения задач машинного обучения и призванной упростить создание серверных решений, использующих большие языковые модели.
Опубликован релиз языка программирования общего назначения Rust 1.81, основанного проектом Mozilla, но ныне развиваемого под покровительством независимой некоммерческой организации Rust Foundation. Язык сфокусирован на безопасной работе с памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime (runtime сводится к базовой инициализации и сопровождению стандартной библиотеки).
Методы работы с памятью в Rust избавляют разработчика от ошибок при манипулировании указателями и защищают от проблем, возникающих из-за низкоуровневой работы с памятью, таких как обращение к области памяти после её освобождения, разыменование нулевых указателей, выход за границы буфера и т.п. Для распространения библиотек, обеспечения сборки и управления зависимостями проектом развивается пакетный менеджер Cargo. Для размещения библиотек поддерживается репозиторий crates.io.
Безопасная работа с памятью обеспечивается в Rust во время компиляции через проверку ссылок, отслеживание владения объектами, учёт времени жизни объектов (области видимости) и оценку корректности доступа к памяти во время выполнения кода. Rust также предоставляет средства для защиты от целочисленных переполнений, требует обязательной инициализации значений переменных перед использованием, лучше обрабатывает ошибки в стандартной библиотеке, применяет концепцию неизменяемости (immutable) ссылок и переменных по умолчанию, предлагает сильную статическую типизацию для минимизации логических ошибок.
- Стабилизирован типаж core::error::Error, определяющий выводимые описания ошибок. Изменение позволяет использовать единый типаж Error в различных библиотеках, независимо от окружения, в том числе и в библиотеках не привязанных к стандартной библиотеке, использующих атрибут "#![no_std]".
- Стабильные и нестабильные функции сортировки в стандартной библиотеке переведены на использование новых алгоритмов, демонстрирующих более высокую скорость работы и меньшее время компиляции. В реализации новых алгоритмов сортировки обеспечено определение некорректно определённых типажей Ord и вывод в таких случаях ошибки (panic) вместо случайным образом сгруппированных данных.
- В linter-е реализован новый уровень проверки "expect" ("#[expect(lint)]"), позволяющий удостовериться в выполнении проверки и вывести предупреждение, если проверка не выполнена (из-за ошибки в реализации или отключения проверки). Например, при переводе кодовой базы на использование проверки undocumented_unsafe_blocks через Clippy можно указать "#[expect(clippy::undocumented_unsafe_blocks)]" для того, чтобы удостовериться, что в процессе перехода все unsafe-блоки будут документированы. В Clippy также реализованы проверки clippy::allow_attributes и clippy::allow_attributes_without_reason, упрощающие замену атрибутов "#[allow]" на "#[expect(lint)]".
- Предоставлена возможность документирования причины замены уровней проверки (lint), предоставляющая новым разработчикам информацию о причинах добавления той или иной проверки, выводимую в виде сообщения компилятора. Например:
#![deny(clippy::float_arithmetic, reason = "no hardware float support")]
- В разряд стабильных переведена новая порция API, в том числе стабилизированы методы и реализации типажей:
Тип std::panic::PanicInfo переименован в std::panic::PanicHookInfo (работа старого имени сохранена, но начиная со следующей версии его использование будет приводить к выводу предупреждения). При этом core::panic::PanicInfo останется как есть, но будет развиваться как отдельный тип. Разделение типов позволит реализовать в них разные методы, специфичные для выполнения в контексте snd и no_std.
- Завершён переход на ABI C-unwind ('extern "C-unwind"'), который отличается от ABI без суффикса "-unwind" ('extern "C"') сохранением безопасного поведения (safe), если процесс "размотки" (unwinding), инициируемый при аварийном завершении программы или генерации исключения в стиле C++, пересекает границу ABI (например, когда исключение, возникшее в коде на одном языке программирования, при размотке затрагивает стек, связанный с кодом на другом языке программирования). Начиная с выпуска Rust 1.81 в ABI 'extern "C"' задействовано аварийное завершение при неперехваченной размотке.
- Реализован третий уровень поддержки для платформ i686-unknown-redox, xtensa-esp32-none-elf, xtensa-esp32s2-none-elf, xtensa-esp32s3-none-elf, xtensa-esp32-espidf, xtensa-esp32s2-espidf, xtensa-esp32s3-espidf. Третий уровень подразумевает базовую поддержку, но без автоматизированного тестирования, публикации официальных сборок и проверки возможности сборки кода.
- Реализован второй уровень поддержки целевых платформ loongarch64-unknown-linux-musl и arm64ec-pc-windows-msvc. Второй уровень поддержки подразумевает гарантию сборки.
- Для Linux-систем на платформе LoongArch предоставлен полный инструментарий и профилировщик.
- Устранена уязвимость (CVE-2024-43402) в std::process::Command, проявляющаяся только на платформе Windows и устраняющая обходной путь эксплуатации ранее исправленной уязвимости BatBadBut, связанной с обработкой спецсимволов при использовании вызовов Command::arg и Command::args, рассчитанных на прямую передачу процессу аргументов, без их обработки командным интерпретатором. На деле при запуске bat- и cmd-сценариев запускался процесс cmd.exe, имеющий собственную логику разделения аргументов. Обход защиты основан на том, что Windows удаляет лидирующие пробелы и точки в путях, т.е. файл с расширением ".bat. ." обрабатывается как ".bat".
Кроме того, можно отметить уход Уэдсона Алмейда Фильо (Wedson Almeida Filho) с поста сопровождающего проект Rust for Linux, занимающийся внедрением в ядро Linux средств для разработки на языке Rust. После ухода Уэдсона у проекта остались ещё два сопровождающих - Мигель Охеда (Miguel Ojeda), автор и основной разработчик проекта Rust-for-Linux, и Алекс Гейнор (Alex Gaynor), бывший директор организации Python Software Foundation, переключившийся на продвижение Rust. Ушедший сопровождающий, который подключился к проекту 4 года назад, является сотрудником компании Microsoft и автором экспериментального драйвера с реализацией ФС EXT2, написанного на языке Rust. Последнее время работа Алмейда была сосредоточена на создании средств для разработки файловых систем на языке Rust. В этом году Алмейда внёс в репозиторий Rust-for-Linux 17 коммитов (для сравнения Мигель Охеда добавил 53 коммита).
В качестве причины ухода упоминается нехватка сил и энтузиазма, которые когда-то были для реагирования на некоторые бредни нетехнического характера (nontechnical nonsense). По мнению Алмейда, разработчики вынуждены тратить много сил на споры по несущественным вопросам, сводящим на нет более важную глобальную цель. Алмейда продолжает верить, что будущее ядер за использованием языков, обеспечивающих безопасную работу с памятью, и если сообщество разработчиков Linux не поймёт это, то Linux будет вытеснен каким-то другим ядром, как в своё время произошло с Unix.
Сторонники проекта Rust-for-Linux столкнулись с необходимостью преодолевать сопротивление со стороны маститых старых разработчиков ядра, которые не видят необходимости в изучении нового языка. В своём письме об отставке Алмейда в качестве примера приводит ссылку на дискуссию, которая состоялась во время выступления Алмейда и Кента Оверстрита (Kent Overstreet) на конференции "Linux Storage, Filesystem, Memory-Management, and BPF Summit" и была посвящена использованию Rust для разработки файловых систем. Деятельность по внедрению Rust раскритиковал Тед Цо (Ted Ts'o), автор файловых систем ext2/ext3/ext4, который сравнил инициативу Rust-for-Linux c попыткой заставить всех принять религию Rust.
В ответ на намерение Алмейда создать обвязку над написанными на языке Си интерфейсами файловых систем для их использования в коде на языке Rust, Тед Цо указал на то, что подобная обвязка неминуемо приведёт к проблемам, так как любое изменение Си-интерфейсов и проведение рефакторинга потребует изменения обвзяки для Rust и он не хочет брать на себя лишней ответственности за исправление возникающих проблем в коде на Rust и отслеживании состояния Rust-обвязки. Код на Си постоянно развивается и если его изменение нарушит работу обвязки для Rust, это приведёт к нарушению работы и всех завязанных на эту обвязку файловых систем.
Тед также считает, что в обозримом будущем обвязка для Rust останется второстепенной и возникновение проблем в биндингах будет головной болью только для разработчиков Rust-for-Linux, а не для сообщества разработчиков файловых систем в ядре. Указано, что не все разработчики собираются изучать Rust и поэтому после внесения влияющих на другой код изменений, они смогут обновить только зависящий код на Си, но не смогут исправить Rust-обвязки, так как не знают Rust. К дискуссии также присоединился Джеймс Боттомли (James Bottomley), сопровождающий подсистему SCSI, который сказал, что чем больше семантики кодируется в обвязках, тем они становятся более ломкими с точки зрения обеспечения синхронизации.
Тем временем, компания Google, которая в прошлом году переписала на языке Rust прошивку pvmfm, используемую в виртуальных машинах, запускаемых в платформе Android, поделилась опытом постепенного включения кода на языке Rust в существующие прошивки, изначально написанные на C или C++. Показано, как можно существенно повысить защищённость прошивок, создавая идентичные по функциональности компоненты-замены, написанные на языке Rust. Основное внимание при внедрении Rust предлагается удалять использованию Rust для нового кода и кода, выполняющего функции, критические с точки зрения безопасности (например, код по обработке внешних данных, получаемых из не заслуживающих доверия источников). Для интеграции кода на Rust и C предлагается использовать прослойки (shim), транслирующие вызовы между API на Rust и C (C API экспортируется для использования в коде на Rust и наоборот), которые позволяют поэтапно переписывать элементы API на Rust.
Опубликован релиз языка программирования общего назначения Rust 1.81, основанного проектом Mozilla, но ныне развиваемого под покровительством независимой некоммерческой организации Rust Foundation. Язык сфокусирован на безопасной работе с памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования
Опубликован экспериментальный выпуск открытой реализации Win32 API - Wine 9.17. С момента выпуска 9.16 было закрыто 29 отчётов об ошибках и внесено 206 изменений.
- Реализована поддержка масштабирования поверхности окон на экранах с высокой плотностью пикселей (High DPI).
- Встроенный пакет Vkd3d с реализацией Direct3D 12 обновлён до версии 1.13.
- Движок Wine Mono с реализацией платформы .NET обновлён до выпуска 9.3.0. Разработка проекта Mono передана компанией Microsoft сообществу Wine.
- Улучшено определение CPU на системах с архитектурой ARM64.
- В библиотеке mapi32.dll.so добавлена поддержка почтовых вложений при отправке электронных писем.
- В cmd.exe реализована поддержка привязки файловых расширений к различных обработчикам запуска (например, файлы *.pl теперь обрабатываются как скрипты, а не исполняемые файлы).
- Закрыты отчёты об ошибках, связанные с работой приложений: Foxit Reader 8.2, R-Link 2 Toolbox, Mavimplant 1.0, Kundenkartei 5, python-3.1.3.amd64.msi, scoop, OpenKiosk, Nexus ECU Tuning Software, SBCL 2.3.4, eFilm Workstation 2.x/3.x, Hogia Hemekonomi, WPF, Quicktime 3.02.
- Закрыты отчёты об ошибках, связанные с работой игр: Starcraft Remastered, Constantine, Epic Games Store, игры серии Sven Bømwøllen.
Кроме того, сформирован выпуск проекта Wine Staging 9.17, предоставляющего расширенные сборки Wine, включающие не полностью готовые или рискованные патчи, пока непригодные для принятия в основную ветку Wine. По сравнению с Wine в Wine Staging предоставляется 354 дополнительных патча. В новом выпуске Wine Staging осуществлена синхронизация с кодовой базой Wine 9.17 и перенесены свежие изменения из vkd3d. В основной состав Wine перенесены три патча, реализующих поддержку файловых ассоциаций в cmd.exe и возможность запуска xdg-email в winemapi для прикрепления почтовых вложений. Обновлены наборы патчей vkd3d-latest и odbc32-fixes
Опубликован экспериментальный выпуск открытой реализации Win32 API - Wine 9.17. С момента выпуска 9.16 было закрыто 29 отчётов об ошибках и внесено 206 изменений.
- Реализована поддержка масштабирования поверхности окон на экранах с высокой плотностью пикселей (High DPI).
- Встроенный пакет Vkd3d с реализацией Direct3D 12 обновлён до версии 1.13.
- Движок Wine Mono с реализацией платформы .NET обновлён до выпуска 9.3.0. Разработка проекта Mono
Исследователи безопасности из компании NinjaLab разработали технику атаки по сторонним каналам, позволяющую клонировать ECDSA-ключи, хранимые в криптографических токенах YubiKey 5 и других устройствах, в которых используется криптографическая библиотека от компании Infineon. Атака получила кодовое имя EUCLEAK и помимо токенов с чипами Infineon SLE78, таких как YubiKey 5, может применяться ко многим другим системам с микроконтроллерами компании Infineon, включая чипы Infineon Optiga Trust M и Infineon Optiga TPM.
Возможность совершения атаки подтверждена на практике для ключей YubiKey 5Ci и TPM на чипах SLB96xx, а для других устройств носит теоретический характер. В ключах YubiKey 5 уязвимость устранена в версии прошивки 5.7 путём замены криптографической библиотеки (исправление применимо только к новым устройствам, так как в уже выпущенных устройствах YubiKey возможность обновления прошивки не предусмотрена). Для библиотеки Infineon разработаны блокирующие уязвимость исправления, но они ещё не задействованы так как не прошли сертификацию.
Кроме ключей YubiKey 5 проблема потенциально затрагивает TPM-чипы (Trusted Platform Module) ноутбуков Lenovo, Dell и HP, изолированные анклавы смартфонов Samsung и OnePlus, аппаратные криптокошельки, смарткарты, SIM-карты и EMV-чипы банковских карт, а также чипы электронных паспортов, применяемых в Китае, Индии, Бразилии, США и некоторых других азиатских и европейских странах.
Опасность клонирования ключей компенсируется условиями и сложностью проведения атаки - атакующий должен получить физический доступ к ключу и разобрать ключ, избавившись от пластикового корпуса и экранирующей оболочки. После подобной манипуляции восстановить корпус можно на 3D-принтере, но сделать незаметными манипуляции с ключом достаточно трудно. Сканирование ключа занимает несколько минут, но ещё около часа требуется на аккуратную разборку и создание нового корпуса. После сканирования устройство можно вернуть владельцу, но для воссоздания закрытого ECDSA-ключа на основе полученных данных необходимо ещё около 24 часов вычислений (отмечается, что процесс можно свести к часу, автоматизировав ручные операции и внеся оптимизации).
Кроме физического доступа к ключу для успешного проведения атаки на сервисы с многофакторной аутентификацией злоумышленнику дополнительно требуется каким-то образом узнать логин и пароль от сервиса, для дополнительной аутентификации к которому используется полученный аппаратный ключ, а в случае применения беспарольной аутентификации в режимах FIDO2 Passwordless или Passkey необходимо воспроизвести уникальный биометрический фактор (например, отпечаток пальца).
Метод атаки сводится к воссозданию хранимых в токене ключей ECDSA на основе данных, полученных через анализ электромагнитного сигнала, излучаемого токеном во время формирования цифровых подписей и коррелирующего с информацией об эфемерном ключе ECDSA, которой достаточно для восстановления секретного ключа с использованием методов машинного обучения. В случае с YubiKey для инициирования операций с цифровой подписью необходимо знать логин и пароль в одном из сервисов, в которых токен используется в качестве дополнительного звена аутентификации.
Проблема вызвана использованием в библиотеке Infineon небезопасного алгоритма вычисления обратного элемента по модулю, вычисления в котором занимают фиксированное время, независимо от значений входных данных (для разные векторов наблюдается разное время вычисления обратного элемента по модулю). Подобная особенность позволяет на основе анализа изменения сигнала выделить информацию об отдельных битах во время выполнения операций с вектором инициализации. В случае с ECDSA, определения даже нескольких битов с информацией о векторе инициализации (nonce) достаточно для совершения атаки по последовательному восстановлению всего закрытого ключа. Для успешного воссоздания ключа требуется перехват активности при генерации примерно 40 цифровых подписей.
Для анализа электромагнитного излучения во время генерации цифровых подписей требуется наличие профессионального оборудования, стоимостью более 10 тысяч долларов. Например, в процессе атаки исследователями использовался измерительный комплекс Langer ICR HH 500-6 ($2300), применяемый для испытаний микросхем на электромагнитную совместимость, усилитель Langer BT 706, микроманипулятор Thorlabs PT3/M ($1000) с разрешением 10 мкм, цифровой микроскоп Dino-Lite AM4113TL ($450) и четырёхканальный осциллограф PicoScope 6424E ($7500) с 8-битным разрешением АЦП.
Сценарий атаки на токены YubiKey 5 состоит из следующих шагов:
- Определение логина и пароля к учётной записи, защищённой токеном, например, через проведение фишинговой атаки.
- Незаметное получение физического доступа к токену.
- Анализ электромагнитного излучения от токена во время операций аутентификации с использованием ранее полученных логина и пароля.
- Возвращение токена жертве.
- Воссоздание привязанного к исследуемой учётной записи закрытого ключа ECDSA через анализ перехваченных сведений об электромагнитном излучении.
- Создание клона токена, предоставляющего возможность входа в учётную запись незаметно от жертвы без наличия исходного токена.
Исследователи безопасности из компании NinjaLab разработали технику атаки по сторонним каналам, позволяющую клонировать ECDSA-ключи, хранимые в криптографических токенах YubiKey 5 и других устройствах, в которых используется криптографическая библиотека от компании Infineon. Атака получила кодовое имя EUCLEAK и помимо токенов с чипами Infineon SLE78, таких как YubiKey 5, может применяться ко многим другим системам с...
Создатель самобытного дистрибутива Adelie Linux, использующего стандартную Си-библиотеку Musl, систему инициализации OpenRC и пакетный менеджер APK, объявил об успешном портировании системного менеджера systemd для работы с библиотекой Musl. Несмотря на то, что реализация имеет статус начальной, она уже достаточно стабильна и демонстрирует трёхкратное сокращение времени загрузки, по сравнению с использованием OpenRC.
Изначально systemd поддерживает работу только с Си-библиотекой Glibc, но отдельно проектом OpenEmbedded разработан набор патчей, позволяющий использовать systemd в окружениях на базе Musl. Новый порт нацелен на создание полностью обновлённой серии патчей, которая обеспечивает работу со свежими версиями systemd и musl, и задействует новые возможности systemd и musl. Представленный порт написан с нуля и за исключением изменений, связанных с поддержкой GLOB_BRACE, malloc_info и malloc_trim, не пересекается с портом от OpenEmbedded.
Отмечается, что проект Adelie Linux вынашивал идею обеспечения работы systemd в окружении на базе Musl с 2015 года, но всегда находились более приоритетные задачи, пока одна из компаний не выразила готовность профинансировать завершение работы над портом. Новый набор патчей изначально развивается с оглядкой на продвижение изменений в основной состав systemd (в основной проект ужепереданы выявленные в процессе портирования недоработки в systemd).
Из известных проблем, которые наблюдаются в первом варианте порта, упоминается проблема с PolicyKit, приводящая к зависанию сеанса KDE при попытке перезапуска систем через виджет. Среди ещё не решённых задач также называется создание unit-файлов для openrc-скриптов инициализации, используемых в дистрибутиве Adelie Linux (планируется в качестве основы использовать unit-файлы из Gentoo и Fedora).
Создатель самобытного дистрибутива Adelie Linux, использующего стандартную Си-библиотеку Musl, систему инициализации OpenRC и пакетный менеджер APK, объявил об успешном портировании системного менеджера systemd для работы с библиотекой Musl. Несмотря на то, что реализация имеет статус начальной, она уже достаточно стабильна и демонстрирует трёхкратное сокращение времени загрузки, по сравнению с использованием OpenRC.
Проектом SteamFork развивается дистрибутив Linux, пытающийся воссоздать окружение SteamOS для использования на обычных компьютерах, а также на игровых консолях, отличных от Steam Deck. Проект является ответвлением от похожего дистрибутива HoloISO и отличается от него попыткой достижения как можно более полной совместимости со SteamOS, без добавления сторонних пакетов и без удаления или изменения имеющейся в SteamOS функциональности. Вносимые изменения и дополнения в SteamFork сосредоточены исключительно на обеспечении поддержки дополнительного оборудования.
Работа дистрибутива протестирована на различных моделях устройств Anbernic, ANTEC, Atari, AYANEO, Ayn и GPD, а также на ПК и ноутбуках с GPU AMD. Дистрибутив обновляется через замену базового образа и может устанавливаться на внешние носители, такие как USB Flash и SD-карты. Обновления сборок публикуются каждую неделю. Сборки формируются с использованием репозиториев SteamOS, неофициального репозитория с кодом компании Valve и сторонних AUR-репозиториев.
Интерфейс пользователя полностью повторяет SteamOS и также включает наличие десктоп-режима, основанного на KDE. Из дополнительных оптимизаций отмечается портирование из JELOS оптимизаций, связанных с управлением энергопотреблением, а также улучшения управления вращением кулеров на поддерживаемых устройствах, отключением RGB-подсветки по умолчанию.
Дополнительные программы могут устанавливаться в формате Flatpak. Из предлагаемых для установки дополнительных программ, доступных в сопровождаемом проектом верифицированном репозитории, упоминаются мультимедийные проигрыватели Cider, Spotify и VLC, мессенджер Discord, браузеры Firefox и Chrome, интерфейс Heroic для доступа к каталогам GoG, Epic и Amazon, программа для организации запуска игр в эмуляторах Steam Rom Manager, P2P-система синхронизации файлов Syncthing, конфигуратор стриминговых сервисов SetupStreamingServices, эмуляторы Cemu (Wii U), Dolphin (Gamecube и Wii), Duckstation (Playstation), PCSX2 (Playstation 2), PPSSPP (Playstation Portable), RetroArch, Vita3K (Playstation Vita), Waydroid (Android), Xemu (Xbox), а также различные decky-плагины.
Проектом SteamFork развивается дистрибутив Linux, пытающийся воссоздать окружение SteamOS для использования на обычных компьютерах, а также на игровых консолях, отличных от Steam Deck. Проект является ответвлением от похожего дистрибутива
Опубликован выпуск дистрибутива Q4OS 5.6, основанного на пакетной базе Debian и поставляемого с рабочими столами KDE Plasma 5 и Trinity (продолжает развитие кодовой базы KDE 3.5.x). Оба пользовательских окружения могут одновременно сосуществовать в одной системе и пользователь может переключаться между ними. Дистрибутив позиционируется как нетребовательный к аппаратным ресурсам и предлагающий классическое оформление рабочего стола. Размер загрузочного образа 1.5 ГБ (x86_64).
В состав входит несколько приложений собственной разработки, включая 'Desktop Profiler' для быстрой установки тематических наборов ПО, 'Setup utility' для установки сторонних приложений, 'Software center' для установки дополнительных программ, 'Welcome Screen' для упрощения начальной настройки, Lookswitcher для быстрого переключения внешнего вида, скрипты для установки альтернативных окружений LXQT, Xfce и LXDE. Предоставляется приложение для установки дистрибутива в отдельный каталог Windows, что позволяет использовать дистрибутив параллельно с Windows без выделения для него отдельного дискового раздела.
В новом выпуске пакетная база обновлена до Debian 12.7 с ядром Linux 6.1.0-25. В инсталлятор Calamares добавлена возможность загрузки собственных профилей, определяющий набор выбранных пользователем пакетов и приложений для установки. Расширены возможности конфигуратора Q4OS Setup и установщика наборов приложений Desktop Profiler. В Live-сборках обновлены загрузочная прослойка Shim и загрузчик GRUB. Отозваны цифровые подписи старых версий Shim.
Опубликован выпуск дистрибутива Q4OS 5.6, основанного на пакетной базе Debian и поставляемого с рабочими столами KDE Plasma 5 и Trinity (продолжает развитие кодовой базы KDE 3.5.x). Оба пользовательских окружения могут одновременно сосуществовать в одной системе и пользователь может переключаться между ними. Дистрибутив позиционируется как нетребовательный к аппаратным ресурсам и предлагающий классическое оформление...