home tags events about login

opennet honked 11 Sep 2024 00:00 +0200

Выпуск децентрализованной платформы совместной разработки Radicle 1.0

Представлен выпуск P2P-платформы Radicle 1.0, нацеленной на создание децентрализованного сервиса совместной разработки и хранения кода, похожего на GitHub и GitLab, но не привязанного к конкретным серверам, не подверженного цензуре и работающего с использованием ресурсов участников P2P-сети. Релиз 1.0 ознаменовал стабилизацию протокола и готовность платформы к повсеместному использованию. Начиная с данного выпуска протокол будет изменяться с сохранением обратной совместимости, а инструментарий будут включать возможности для бесшовного обновления существующих систем до новой версии. Наработки проекта написаны на языке Rust и распространяются под лицензиями Apache 2.0 и MIT. Сборки подготовлены для Linux и macOS. Дополнительно развиваются десктоп-клиент, web-интерфейс и консольный интерфейс.

Radicle позволяет не зависеть при разработке и распространении кода от централизованных платформ и корпораций, привязка к которым вносит дополнительные риски (единая точка отказа, компания может закрыться или изменить условия работы). Для управления кодом в Radicle используется привычный Git, расширенный средствами определения репозиториев в P2P-сети. Все данные в первую очередь сохраняются локально (концепция local-first) и всегда доступны на компьютере разработчика, независимо от состояния сетевого подключения.

Участники предоставляют доступ к своему коду и связанным с кодом артефактам, таким как патчи и обсуждения исправления ошибок (issues), которые сохраняются локально и реплицируются на узлы других заинтересованных разработчиков, подключённые к общей децентрализованной P2P-сети. В итоге формируется глобальный децентрализованный Git-репозиторий, данные которого реплицированы и продублированы на разных системах участников.

Для определения соседних узлов в P2P-сети применяется протокол Gossip, а для репликации данных между узлами протокол Heartwood, основанный на Git. Так как протокол основан на Git, платформу легко интегрировать с существующими инструментами для разработки на Git. Для идентификации узлов и верификации репозиториев используется криптография на основе открытых ключей, без применения учётных записей.

Каждый репозиторий в P2P-сети имеет свой уникальный идентификатор и самосертифицирован (self-certifying), т.е. все действия в репозитории, такие как добавление коммитов и оставление комментариев к issue, заверяются владельцем цифровой подписью, позволяющей убедиться в корректности данных на других узлах без использования централизованных удостоверяющих центров. Для получения доступа к репозиторию достаточно, чтобы в online находился хотя бы один узел, на котором имеется его реплицированная копия.

Узлы в P2P-сети могут подписываться на определённые репозитории и получать обновления. Возможно создание приватных репозиториев, доступных только определённым узлам. Для управления и владения репозиторием используется концепция "делегатов" (delegates). Делегатом может быть как отдельный пользователь так и бот или группа, привязанные к специальному идентификатору. Делегаты могут принимать в репозиторий патчи, закрывать issue и задавать права доступа к репозиторию. К каждому репозиторию может быть привязано несколько делегатов.

На системах пользователей Radicle-репозитории хранятся в виде обычных git-репозиториев, в которых присутствуют дополнительные пространства имён для хранения данных пиров и форков, с которыми осуществляется текущая работа. Обсуждения, предлагаемые патчи и компоненты для организации рецензирования тоже сохраняются в git-репозитории в виде совместных объектов (COB - Collaborative Objects) и реплицируются между пирами.

Radicle 1.0 включает в себя:

  • Реализацию расширяемого протокола для организации работы P2P-сети и синхронизации данных.
  • Элементы социального взаимодействия, такие как issue, патчи и рецензии на код.
  • Протокол аутентификации и авторизации на основе открытых ключей, работающий без централизованных удостоверяющих серверов.
  • CLI-интерфейс, привычный пользователям, знакомым с Git.
  • Web-интерфейс для навигации по репозиториям и узлам.
  • Средства для обеспечения конфиденциальности, включающие поддержку приватных репозиториев и возможность работы через анонимную сеть Tor.
  • Поддержку повторяемых сборок для проверки, что распространяемые исполняемые файлы Radicle собраны из заявленных исходных текстов.

Ещё не готовые возможности, пока находящиеся в разработке:

  • Встроенные инструменты для непрерывной интеграции (CI) и непрерывной доставки (CD).
  • Консольный интерфейс Radicle TUI (Terminal User Interface).
  • Расширенные возможности рецензирования изменений.
  • Система получения уведомлений об изменениях в репозитории.
  • Поддержка профилей пользователей и возможность привязки нескольких устройств.
  • Поддержка тегов.
  • Утилиты для модерирования и управления узлами.
  • Десктоп-приложение.


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

opennet honked 10 Sep 2024 22:00 +0200

Выпуск дистрибутива Tails 6.7

Сформирован релиз специализированного дистрибутива Tails 6.7 (The Amnesic Incognito Live System), основанного на пакетной базе Debian 12, поставляемого с рабочим столом GNOME 43 и предназначенного для анонимного выхода в сеть. Анонимный выход в Tails обеспечивается системой Tor. Все соединения, кроме трафика через сеть Tor, по умолчанию блокируются пакетным фильтром. Для хранения пользовательских данных в режиме сохранения пользовательских данных между запусками применяется шифрование. Для загрузки подготовлен iso-образ, способный работать в Live-режиме, размером 1 ГБ.

В новой версии обновлены Tor Browser 13.5.3, почтовый клиент Thunderbird 115.15.0 и приложение для обмена файлами OnionShare 2.6, в котором появилась возможность создания анонимных чатов.

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

opennet honked 10 Sep 2024 13:00 +0200

Опубликован Droidian 99, вариант Debian для смартфонов

Доступен релиз проекта 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 и указание дополнительных блоков конфигурации.


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

opennet honked 10 Sep 2024 10:00 +0200

Уязвимости во FreeBSD, позволяющие повысить свои привилегии или обойти изоляцию гостевой системы

Во 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.


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

opennet honked 10 Sep 2024 09:00 +0200

Выпуск Chrome OS 128

Представлен релиз операционной системы 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.

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

  • Реализованы группы привязок (Snap groups), формируемые при закреплении двух окон в режиме разделения экрана и позволяющие в дальнейшем возвращать данные сочетания окон, одновременно изменять размер или перемещать привязанные окна в виде неделимой группы.
  • В приложение для работы с камерой встроена система оптического распознавания текста (OCR), позволяющая извлекать текст из снятых фотографий. Система поддерживает 77 языков, может распознавать горизонтальный и вертикальный текст, копировать распознанный текст в буфер обмена, использовать его при поиске, создавать текстовые PDF и проговаривать через движок синтеза речи. По умолчанию распознавание отключено и требует активации в настройках (Settings > Text detection).
  • Включён по умолчанию режим автоматической нормализации громкости (AGC - Auto Gain Control), без участия пользователя выбирающий оптимальный уровень чувствительности микрофона для достижения наилучшего качества записи. Для возвращения к ручному выставлению уровня микрофона следует изменить настройку "Settings > Device > Audio and deselect Allow apps to automatically adjust mic volume".
  • На странице с настройками приложений при изменении полномочий отдельного приложения обеспечен вывод дополнительного уведомления о необходимости включения доступа к микрофону или камере, в случае блокировки к ним доступа на уровне системы.
  • Обеспечено хранение собираемых метаданных о работе Android-приложений, таких как статистика о производительности и аварийных завершениях, в течение года для оценки динамики их изменения.
  • Упрощён интерфейс для просмотра, добавления и управления точками доступа (APN Access Point Names) при подключении через сеть мобильного оператора связи.
  • Реализовано визуальное разделение закреплённых и обычных уведомлений, чтобы более наглядно различать уведомления об отдельных событиях и уведомления о продолжающихся процессах.
  • На страницу "Settings > Privacy and security > Privacy controls" добавлены отдельные настройки для управления доступом к сведениям о местоположении, например, позволяющие запретить доступ к данным о местоположении для всех приложений и сайтов, но оставить для системных сервисов или полностью отключить для любых применений.
  • Устранено 10 уязвимостей, 5 из которых помечены как опасные (выход за границу буфера в библиотеке отрисовки 2D-графики Skia, движке обработки шрифтов и механизме автозаполнения форм, проблемы в JavaScript-движке V8). Размер вознаграждений, выплаченных выявившим проблемы исследователям, составил 50 тысяч долларов.


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

opennet honked 09 Sep 2024 23:00 +0200

Mozilla продлила поддержку ESR-ветки Firefox 115 до марта 2025 года

Компания 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.

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

opennet honked 09 Sep 2024 21:00 +0200

Выпуск операционной системы Redox OS 0.9, написанной на языке Rust

После почти двух лет разработки опубликован выпуск операционной системы 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.
  • Вместо адресации через 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.
  • Расширены возможности системы сборки.


<iframe src="https://www.youtube.com/embed/s-gxAsBTPxA?si=EbIRLwIrnuiwfvYZ">

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

opennet honked 09 Sep 2024 11:00 +0200

Доступен графический тулкит GTK 4.16

После шести месяцев разработки опубликован релиз многоплатформенного тулкита для создания графического интерфейса пользователя - GTK 4.16.0. GTK 4 развивается в рамках процесса разработки, который пытается предоставить разработчикам приложений стабильный и поддерживаемый в течение нескольких лет API, который можно использовать не опасаясь, что каждые полгода придётся переделывать приложения из-за изменения API в очередной ветке GTK.

Среди наиболее заметных улучшений в GTK 4.16:

  • Добавлена настройка 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 для прямого вывода напрямую через композитный сервер. Повышена эффективность взаимодействия с композитным сервером.
  • В виджет 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.


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

opennet honked 09 Sep 2024 08:00 +0200

Проект KDE определил цели развития на ближайшие два года

Разработчики проекта KDE подвели итоги голосования по выбору целей, которым будет уделено повышенное внимание при разработке в ближайшие 2 года. Из 10 предложенных вариантов выбраны три основные цели:
  • Унификация и модернизация средств для разработки приложений. Цель направлена на улучшение процесса разработки приложений и охватывает как упрощение средств разработки для привлечения новых участников, так и расширение возможностей разработки приложений на языках, отличных от C++, таких как Rust и Python. Среди намеченных работ упоминается улучшение интеграции с IDE, уменьшение фрагментации API, чистка устаревших API, улучшение совместимости инструментария с QML, разработка QML-замен для функциональности, используемой в приложениях на QtWidgets (например, виджет для dock-панели), улучшение реализации всплывающих окон и меню в QtQuick, расширение документации.
  • Модернизация и приведение в порядок стека для поддержки устройств ввода (от качественной поддержки расширенных устройств, таких как графические планшеты и игровые контроллеры, до возможности голосового ввода, режима быстрого ввода emoji и интеграции виртуальной клавиатуры).
  • Формализация и форсирование процессов для рекрутинга новых участников проекта.

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

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

opennet honked 08 Sep 2024 23:00 +0200

Выпуск встраиваемой СУБД libmdbx 0.13

Опубликован выпуск библиотеки 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.


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

opennet honked 08 Sep 2024 21:00 +0200

Обеспечена возможность сборки ядра Linux в окружении macOS с LLVM

В списке рассылки ядра Linux опубликован набор патчей с реализацией возможности сборки ядра Linux для архитектуры ARM64 в окружении macOS со штатным сборочным инструментарием на базе LLVM. Кроме изменения сборочных сценариев в ядре и включения дополнительных заголовочных файлов в несколько файлов с кодом, для сборки также требуется установка в macOS пакета со специфичными для Linux-окружения заголовочными файлами (byteswap.h, elf.h и endian.h).

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

opennet honked 08 Sep 2024 14:00 +0200

Выпуск языка программирования Clojure 1.12

После двух с половиной лет разработки представлен релиз динамического языка программирования 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), приводящая к зацикливанию при чтении определённым образом сериализированных объектов.


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

opennet honked 08 Sep 2024 13:00 +0200

В ядре Linux 6.12 намерены реализовать возможность включения Realtime-режима

Разработчики ядра 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, без которой вывод в консоль экстренных сообщений из кода в атомарном контексте пока отключён.

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

opennet honked 07 Sep 2024 20:00 +0200

Проект KDE представил шестое поколение ноутбуков KDE Slimbook

Проект 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 евро.



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

opennet honked 07 Sep 2024 19:00 +0200

Red Hat опубликовал первый выпуск дистрибутива Red Hat Enterprise Linux AI

Компания 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) для подгонки под свои нужды и оптимизации моделей, а также для добавления дополнительных знаний и реализации новых навыков в предварительно натренированных моделях.

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

opennet honked 07 Sep 2024 19:00 +0200

Проект Nginx перевёл разработку на Git и GitHub

Проект Nginx объявил о переводе разработки с использования системы управления версиями Mercurial на Git, переносе официального репозитория на GitHub и задействования платформ GitHub Issues и GitHub Discussions вместо системы отслеживания ошибок trac.nginx.org и обсуждений в почтовых рассылках. Ожидается, что переход на GitHub упростит взаимодействие с сообществом и привлечёт к участию в проекте сторонних разработчиков.

Для приёма изменений от других участников реализована возможность использования pull-запросов. Система отслеживания ошибок trac.nginx.org переведена в режим только для чтения. Для того чтобы дать разработчикам и пользователям время на адаптацию к новому уладу кроме использования GitHub до 31 декабря будет сохранена возможность отправки патчей и получения консультаций через списки рассылки.

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

opennet honked 07 Sep 2024 13:00 +0200

Выпуск Rust 1.81. Препятствия при продвижении Rust в ядро Linux

Опубликован релиз языка программирования общего назначения 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, в том числе стабилизированы методы и реализации типажей:

    Признак "const", определяющий возможность использования в любом контексте вместо констант, применён в функциях:

    Тип 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.

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

opennet honked 07 Sep 2024 07:00 +0200

Выпуск Wine 9.17 и Wine staging 9.17

Опубликован экспериментальный выпуск открытой реализации 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

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

opennet honked 06 Sep 2024 11:00 +0200

Атака EUCLEAK, позволяющая клонировать YubiKey 5 и другие ключи на чипах Infineon

Исследователи безопасности из компании 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 через анализ перехваченных сведений об электромагнитном излучении.
  • Создание клона токена, предоставляющего возможность входа в учётную запись незаметно от жертвы без наличия исходного токена.


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

opennet honked 06 Sep 2024 08:00 +0200

Представлен порт systemd для систем на базе библиотеки Musl

Создатель самобытного дистрибутива 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).



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

opennet honked 05 Sep 2024 15:00 +0200

Проект SteamFork развивает вариант SteamOS для устройств, отличных от Steam Deck

Проектом 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-плагины.



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

opennet honked 05 Sep 2024 14:00 +0200

Выпуск дистрибутива Q4OS 5.6, поставляемого с пользовательским окружением Trinity

Опубликован выпуск дистрибутива 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.



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

opennet honked 05 Sep 2024 13:00 +0200

Представлен SyncStar, сервис для создания загрузочных USB-носителей

Разработчик Fedora, работающий в компании Red Hat, представил инструментарий SyncStar, позволяющий развёртывать сервисы для организации записи на USB-носители операционных систем на выбор пользователя. Основным назначением SyncStar называется создание киосков и информационных стедов, которые могут использоваться при проведении технических конференций и выставок для записи загрузочных сборок различных операционных систем на USB-носители участников мероприятия. Код проекта написан на языке Python и распространяется под лицензией AGPLv3.

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

Для создания киоска достаточно обычного ноутбука, установленного на выставочном стенде, или платы Raspberry Pi и напечатанного на 3D-принтере корпуса. Проект рассчитан на работу без монитора - управление и выбор образа для записи осуществляется через web-интерфейс, к которому может обратиться со смартфона или ноутбука любой участник мероприятия, подключившись к общей беспроводной сети. Из особенностей SyncStar упоминается возможность записи одновременно нескольких образов в асинхронном режиме, адаптивный web-интерфейс, рассчитанный на работу с различных типов устройств, интерфейс командной строки для настройка киоска.



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

opennet honked 05 Sep 2024 11:00 +0200

Доступен эмулятор QEMU 9.1.0

Представлен релиз проекта QEMU 9.1. В качестве эмулятора QEMU позволяет запустить программу, собранную для одной аппаратной платформы на системе с совершенно иной архитектурой, например, выполнить приложение для ARM на x86-совместимом ПК. В режиме виртуализации в QEMU производительность выполнения кода в изолированном окружении близка к аппаратной системе за счёт прямого выполнения инструкций на CPU и задействования гипервизора Xen или модуля KVM в Linux, или модуля NVMM в NetBSD.

Изначально проект был создан Фабрисом Белларом (Fabrice Bellard) с целью обеспечения возможности запуска собранных для платформы x86 исполняемых файлов Linux на архитектурах, отличных от x86. За годы разработки была добавлена поддержка полной эмуляции для 14 аппаратных архитектур, число эмулируемых аппаратных устройств превысило 400. При подготовке версии 9.1 внесено более 2800 изменений от 263 разработчиков.

Ключевые улучшения, добавленные в QEMU 9.1:

  • В инструментарии миграции гостевых систем реализована поддержка ускорения операции сжатия данных, используя технологию IAA (Intel In-Memory Analytics Accelerator) или UADK (User Space Accelerator Development Kit). Улучшена поддержка восстановления после сбоев миграции в режиме postcopy.
  • В механизме virtio, применяемом для организации взаимодействия между гостевыми системами и хост-системой, добавлена поддержка функции VIRTIO_F_NOTIFICATION_DATA, дающей возможность драйверам на стороне гостевых систем передавать дополнительные данные вместе с отправляемыми уведомлениями. Функцию можно использовать, например, для отправки отладочных данных или для оптимизации производительности.
  • В guest-agent для Linux-систем добавлена команда guest-network-get-route, а для Windows-систем добавлены команды guest-ssh-*. В интерфейсе командной строки расширены возможности настройки работы команд "allowed" и "blocked".
  • В эмуляторе архитектуры ARM добавлена поддержка процессорных расширений EAT_NMI, FEAT_CSV2_3, FEAT_ETS2, FEAT_Spec_FPACC, FEAT_WFxT, FEAT_Debugv8p8. При эмуляции блока управления памятью SMMUv3 (System Memory Management Unit) реализована поддержка вложенных и двухуровневых страниц памяти. Для плат Xilinx Zynq добавлена поддержка эмуляции многопроцесорных конфигураций, дисплейного контроллера DM163 и контроллера кэша.
  • В эмуляторе архитектуры LoongArch обеспечена возможность прямой загрузки образов ядра в формате ELF и добавлена поддержка запуска до 256 CPU, используя расширение extioi. Улучшены возможности для отладки.
  • В эмуляторе архитектуры RISC-V добавлена поддержка процессорных расширений Zve32x, Zve64x, Zimop, Zcmop, Zama16b, Zabha, Zawrs, и Smcntrpmf, а также версии 1.13 спецификации архитектуры привилегированного набора команд. Улучшены возможности для отладки.
  • В эмуляторе архитектуры SPARC добавлена поддержка процессорных расширений FMAF, IMA, VIS3 и VIS4.
  • В эмуляторе архитектуры x86 для гипервизора KVM реализована возможность запуска гостевых систем с использованием процессорного расщирения AMD SEV-SNP (Secure Nested Paging), обеспечивающего безопасную работу с вложенными таблицами страниц памяти. Реализована поддержка эмуляции CPU на базе микроархитектур Icelake-Server-v7, SapphireRapids-v3 и SierraForest.
  • Устранена уязвимость (CVE-2024-7409) в сервере блочных устройств NBD (Network Block Device), позволяющая через манипуляции в гостевой системе добиться аварийного завершения QEMU во время выполнения операции nbd-server-stop, даже если клиент не имеет TLS-ключей для подключения к серверу NBD.


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

opennet honked 04 Sep 2024 21:00 +0200

Выпуск интегрированного набора интернет-приложений SeaMonkey 2.53.19

Состоялся выпуск набора интернет-приложений SeaMonkey 2.53.19, который объединяет в рамках одного продукта web-браузер, почтовый клиент, систему агрегации новостных лент (RSS/Atom) и WYSIWYG-редактор html-страниц Composer. В форме предустановленных дополнений предлагаются IRC-клиент Chatzilla, набор средств для web-разработчиков DOM Inspector и календарь-планировщик Lightning. В новый выпуск перенесены исправления и изменения из актуальной кодовой базы Firefox (SeaMonkey 2.53 основан на браузерном движке Firefox 60.8 с портированием связанных с безопасностью исправлений и некоторых улучшений из актуальных веток Firefox).

В новой версии в основном отмечается устранение ошибок и недоработок. Улучшено отображение списка шрифтов в настройках. Налажена работы кнопки отмены в интерфейсе создания закладок. Включена блокировка доступа к IP 0.0.0.0 для предотвращения атак на локальные сервисы. Обновлены библиотеки nss и nspr. Бэкпортированы некоторые исправления из ESR-ветки Firefox 115.

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

opennet honked 04 Sep 2024 20:00 +0200

Отчёт проекта KDE за 2023 год

Некоммерческая организация KDE e.V., курирующая развитие проекта KDE, опубликовала отчёт за 2023 год, в котором, помимо информации о проектах, мероприятиях и конференциях, раскрыты финансовые показатели. Организацией за 2023 год было получено 349 тысяч евро, а потрачено 457 тысяч евро.

Наибольший объём средств (181 тыс. евро) получен благодаря пожертвованиям и взносам членов организации. На втором месте (80 тыс. евро) финансовая помощь от корпораций и участников-патронов, среди которых компании Blue Systems, Canonical, g10 Code, Google, Kubuntu Focus, Qt Group, Slimbook, SUSE, TUXEDO Computers и MBition. На третьем месте (66 тысяч евро) доходы от проведения конференции Akademy и прочих мероприятий.

Расходы распределились следующим образом: 317 тыс. евро - оплата труда персонала и разработчиков, 43 тыс. евро - затраты на конференцию Akademy, 20 тыс. евро - затраты на другие мероприятия, 18 тыс. евро - расходы на инфраструктуру, 15 тыс. евро - прочие расходы, 13 тыс. евро - затраты на спринты, 7 тыс. евро - содержание офиса, 22 тыс. евро - налоги и сборы.

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

opennet honked 04 Sep 2024 17:00 +0200

Выпуск композитного сервера Weston 14.0

После девяти месяцев разработки опубликован стабильный релиз композитного сервера Weston 14.0, развивающего технологии, содействующие появлению полноценной поддержки протокола Wayland в Enlightenment, GNOME, KDE и других пользовательских окружениях. Разработка Weston нацелена на предоставление высококачественной кодовой базы и рабочих примеров для использования Wayland в десктоп-окружениях и встраиваемых решениях, таких как платформы для автомобильных информационно-развлекательных систем, смартфонов, телевизоров и прочих потребительских устройств. Код проекта распространяется под лицензией MIT.

Изменения в новой ветке Weston:

  • В бэкенд вывода через DRM (Direct Rendering Manager) добавлена поддержка аппаратного наложения графичеcких элементов (hardware underlay). Включён режим атомарного асинхронного переключения между двумя буферами в видеопамяти (atomic async flip).
  • В файл конфигурации добавлена настройка 'mirror-of' для организации зеркалирования вывода.
  • В бэкенд вывода через мультимедийный cервер Pipewire добавлена поддержка технологии DmaBuf.
  • В клиенте simple-egl разрешено использования просвечивающих поверхностей с 16-разрядным представлением цвета. Добавлена опция для использования EGL-расширения EGL_EXT_present_opaque. Реализована поддержка сжатия поверхностей.
  • В бэкенде для вывода через протокол RDP добавлена поддержка FreeRDP 3.x.
  • В бэкенде вывода через VNC предоставлена возможность отключения TLS и использования пароля для аутентификации в режиме без TLS.
  • В libweston добавлена поддержка расширения протокола Wayland для управление цветом (color-management). Реализована возможность ограничения области перемещения указателя на полноэкранных поверхностях.
  • В компонент для отрисовки через OpenGL (gl-renderer) добавлена поддержка захвата вывода OpenGL ES 3 и OpenGL ES 2 в асинхронном режиме, а также возможность изменения цвета объектов при помощи шейдера.


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

opennet honked 04 Sep 2024 13:00 +0200

Релиз Firefox 130

Состоялся релиз web-браузера Firefox 130 и сформированы обновления прошлых веток с длительным сроком поддержки - 115.15.0 и 128.2.0. На стадию бета-тестирования переведена ветка Firefox 131, релиз которой намечен на 1 октября.

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

  • Предоставлена возможность машинного перевода на разные языки фрагментов текста, выделенных на странице после выполнения операции перевода страницы целиком (т.е. можно применить перевод на другой язык к фрагментам из уже переведённой страницы). Функция перевода страницы вызывается через индикатор в адресной строке, а перевода фрагмента через контекстное меню, показываемое при нажатии правой кнопки мыши на выделенном блоке. Для перевода задействована встроенная в Firefox система, которая выполняет перевод на локальной системе пользователя без обращения к внешним облачным сервисам. Система основана на открытом движке Bergamot, который представляет собой обвязку над фреймворком машинного перевода Marian, применяющим рекуррентную нейронную сеть (RNN) и языковые модели на основе трансформеров.
  • Во встроенном движке машинного перевода добавлена поддержка латышского, литовского, каталанского, хорватского, чешского, датского, индонезийского, румынского, сербского, cловацкого и вьетнамского языков.
  • В конфигуратор добавлен новый раздел "Firefox Labs", в котором предложены для тестирования экспериментальные функции.

    В настоящее время доступны три экспериментальные возможности:

    • Автоматическое продолжение просмотра видео в плавающем окне (режим "картинка в картинке") в случае переключения с вкладки, на которой показывается видео (если во время просмотра видео переключиться на другую вкладку, то видео останется видимым поверх новой вкладки, благодаря автоматическому включению режима "картинка в картинке"). После возврата на исходную вкладку с видео, режим "картинка в картинке" автоматически отключается.
    • Отображение рекомендаций и результатов поиска в адресной строке во время набора сложных символов при помощи интерфейса IME (Input Method Editor).
    • Встроенный чатбот, использующий большие языковые модели для взаимодействия с пользователем на естественном языке. Взаимодействие с ботом осуществляется в боковой панели. На выбор пользователя доступны сервисы Anthropic Claude, ChatGPT, Google Gemini, HuggingChat и Le Chat Mistral (в сети Ростелекома заработал только HuggingChat). Пользователь может отправлять текстовые вопросы к AI-боту или передавать отрывки текста, выделенного на просматриваемой странице. В контекстное меню, показываемое при нажатии правой кнопки мыши на выделенной области, добавлен раздел "Ask chatbot", через который можно запросить составление краткого изложения или пояснения сути выделенного содержимого.
  • На платформе Linux по умолчанию включён анимированный эффект при достижении границы прокручиваемой области.
  • Решена проблема с отображением в контекстном меню кнопок для помещения и извлечения из буфера обмена.
  • В сборки для настольных систем добавлен API Web Codecs, позволяющий манипулировать мультимедийными потоками на низком уровне (например, отдельные кадры в видео) и предоставляющий доступ к встроенным в браузер декодировщикам и кодировщикам изображений, звука и видео. Данный API может оказаться востребован в таких областях как стриминг, применение эффектов на стороне клиента, перекодирование звука и видео, разработка редакторов звука и видео.
  • В реализацию API WebCrypto добавлена поддержка криптографических примитивов Curve25519 (цифровые подписи Ed25519 и схема согласования ключей X25519), которые могут использоваться через программный интерфейс SubtleCrypto (методы deriveKey(), deriveBits(), generateKey(), importKey() и exportKey()).
  • В HTML-элемент ‹details› добавлен атрибут "name", позволяющий без использования JavaScript организовать группировку элементов таким образом, что в любой момент времени будет показываться только один элемент, а остальные будут скрываться (когда пользователь открывает новый раздел, остальные автоматически закрываются).
  • В версии для Android ускорена загрузка страниц благодаря организации паралелльной загрузки связанных ресурсов. Добавлена функция генерации надёжных паролей для форм регистрации.

Кроме новшеств и исправления ошибок в Firefox 129 устранено 13 уязвимостей. 7 уязвимостей помечены как опасные, из которых 5 вызваны проблемами работы с памятью, такими как переполнения буферов и обращение к уже освобождённым областям памяти. Потенциально данные проблемы способны привести к выполнению кода злоумышленника при открытии специально оформленных страниц. Две опасные проблемы вызваны неправильной обработкой типов (Type Confusion).

Дополнительно можно отметить рассмотрение возможности принятия в кодовую базу Firefox новой реализации декодировщика для формата изображений JPEG-XL, написанной сотрудниками Google на языке Rust. В случае одобрения инициативы, реализация на Rust заменит собой текущий декодировщик JPEG-XL на C++, насчитывающий более 100 тысяч строк кода. Инициатором перехода является Бобби Холли (Bobby Holley), технический директор компании Mozilla, входивший в совет директоров организации Rust Foundation.

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

opennet honked 04 Sep 2024 10:00 +0200

Выпуск GhostBSD 24.07.1

Опубликован релиз десктоп-ориентированного дистрибутива GhostBSD 24.07.1, построенного на базе FreeBSD 14-STABLE и предлагающего пользовательское окружение MATE. Отдельно сообществом формируются неофициальные сборки с Xfce. По умолчанию в GhostBSD применяется файловая система ZFS. Поддерживается как работа в Live-режиме, так и установка на жесткий диск (используется собственный инсталлятор ginstall, написанный на языке Python). Загрузочные образы сформированы для архитектуры x86_64 (2.6 ГБ).

В новой версии:

  • Осуществлена синхронизация с веткой FreeBSD 14.1-STABLE.
  • В сетевом конфигураторе NetworkMGR реализовано отображения уровня сигнала.
  • Из базовой поставки удалены git (доступен из репозитория пакетов) и vim (оставлен штатный vi из FreeBSD).
  • Расширена поддержка оборудования, среди прочего добавлена поддержка видеоркаты NVIDIA GeForce RTX 3050 Ti.
  • Осуществлён переход на использование pkgbase и сборки iso-образа на его основе.


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

opennet honked 04 Sep 2024 08:00 +0200

Выпуск мобильной платформы Android 15

Компания Google опубликовала релиз открытой мобильной платформы Android 15. Связанные с новым выпуском исходные тексты размещены в Git-репозитории проекта (ветка android-15.0.0_r1). В ближайшие недели обновление прошивки будет подготовлено для устройств серии Pixel, а в ближайшие месяцы для смартфонов производства Samsung, Honor, iQOO, Lenovo, Motorola, Nothing, OnePlus, Oppo, realme, Sharp, Sony, Tecno, vivo и Xiaomi. Дополнительно будут сформированы универсальные сборки GSI (Generic System Images), подходящие для разных устройств на базе архитектур ARM64 и x86_64.

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

  • Расширены возможности для одновременной работы с несколькими приложениями на устройствах с большими экранами. Реализована поддержка добавления на экран панели задач для быстрого переключения между приложениями и закрепления ярлыков наиболее часто используемых программ.
  • Добавлена возможность определения отдельной приватной секции с приложениями, появляющейся только после дополнительной аутентификации пользователя. Фактически приложения в данной секции хранятся в отдельном профиле, приостанавливаемом, когда доступ к приложениям не разблокирован (т.е. приложения из данного профиля активны только при разблокировке профиля). При просмотре списка приложений, содержимое приватной секции показывается в отдельном блоке. Связанные с приватными приложениями уведомления и настройки при блокировке скрываются, а созданные и загруженные с использованием данных приложений файлы отделены от файлов основного профиля (доступ к приватному контенту из приложений в основном профиле осуществляется через интерфейсы обмена файлами и доступа к изображениям).
  • Предоставлена поддержка отображения персонализированных миниатюр. Приложения могут предоставлять виджетам релевантные для пользователя представления миниатюр, вместо выставленных по умолчанию заглушек.
  • По умолчанию на уровне системы задействована визуализация при навигации при помощи экранных жестов, при помощи анимации предупреждающая пользователя о предстоящем действии, например, при сдвиге влево показывающая, что приложение будет свёрнуто и показан домашний экран.
  • Для приложений предоставлена возможность использована небольших вспомогательных экранов (Cover screen), которыми оснащаются некоторые складные смартфоны, такие как Samsung Galaxy Z Flip. Например, вспомогательный экран позволяет быстро принять звонок, ответить на сообщение, управлять камерой и выполнять другие действия без раскрытия устройства.
  • По умолчанию обеспечено отображение приложений в режиме "от края до края", позволяющего выводить информацию на всей видимой области экрана, не упираясь в границы верхней панели состояния и нижней навигационной панели (данные панели выглядят полупрозрачными и перекрывают содержимое приложения). Для отображения содержимого за системными панелями теперь не нужно явно вызывать функции Window.setDecorFitsSystemWindows(false) и EnableEdgeToEdge().
  • Расширены возможности работы через спутниковые каналы связи. Добавлены новые элементы интерфейса для унификации использования спутниковой связи. Приложениям предоставлена возможность определения использования спутникового канала при помощи метода ServiceState.isUsingNonTerrestrialNetwork(). В интерфейсе для работы с SMS/MMS реализована поддержка отправки и приёма сообщений через спутниковые каналы.
  • Значительно расширены возможности для отрисовки PDF-документов (API PdfRenderer). Например, предоставлены средства для отрисовки защищённых паролем файлов, показа аннотаций, редактирования форм, поиска внутри документа и выделения областей для копирования через буфер обмена. Добавлены оптимизации, снижающие потребление ресурсов и ускоряющие просмотр локальных PDF-файлов. Реализация API PdfRenderer вынесена в отдельный модуль, обновляемый через Google Play и не привязанный к основной платформе.
  • Предоставлена возможность управления запасом яркости для HDR (отношение самого яркого белого цвета на HDR-изображении к яркости белого цвета в изображении в стандартном динамическом диапазоне). Для установки запаса яркости добавлен метод setDesiredHdrHeadroom, при помощи которого можно сбалансировать яркость при отображении содержимого в SDR и HDR.
  • Улучшен интерфейс для управления учётными записями и упрощена аутентификация на уровне подключения к отдельным приложениям с использованием технологии Passkeys, позволяющей пользователю проходить аутентификацию без паролей с использованием биометрических идентификаторов, таких как отпечаток пальца или распознавание лица.
  • На базе прослойки ANGLE подготовлена реализация OpenGL ES, работающая поверх графического API Vulkan, который отмечен как приоритетный программный интерфейс для взаимодействия с GPU. Задействование прослойки ANGLE для OpenGL-приложений позволяет улучшить совместимость , а в некоторых ситуациях и повысить производительность. Для включения ANGLE в секцию настроек "Developer options/Experimental" добавлена опция "Enable ANGLE". В 2025 году реализацию OpenGL ES на базе ANGLE планируют активировать по умолчанию, а в 2026 году сделать единственно поддерживаемой.
  • Обеспечено использование библиотеки dav1d для программного декодирования видео в формате AV1 на устройствах без поддержки аппаратного ускорения. Библиотека развивается участниками проектов VideoLAN и FFmpeg, и нацелена на достижение максимально возможной производительности декодирования и обеспечение качественной работы в многопоточном режиме. В проведённых тестах dav1d в три раза обгоняет по производительности ранее используемый программный декодировщик. Библиотека пока доступна в виде опции, но в одном из следующих обновлений будет предложена по умолчанию.
  • В графическую подсистему добавлена поддержка класса Matrix44 для преобразования координат с использованием матрицы 4x4 при манипуляции 2D-поверхностями в 3D-пространстве. Также добавлена функция clipShader для наложения клипа с указанным шейдером.
  • Добавлена поддержка стандарта CTA-2075, определяющего возможности для нормализации громкости, позволяющие избежать изменения уровня громкости для разного контента. Согласование громкости достигается через определение метаданных о характеристиках громкоговорителей и громкости звукового AAC-контента. Для нормализации громкости предложен объект LoudnessCodecController и метод OnLoudnessCodecUpdateListener, корректирующий параметры громкости перед обращением к кодеку.
  • В AndroidX media3 ExoPlayer 1.0 включено по умолчанию использование пространственного звука для многоканального звука, если пространственный звук поддерживается на устройстве. Объявлен устаревшим класс Virtualizer, вместо которого для определения поведения и возможностей пространственного звука следует использовать класс Spatializer.
  • Расширены возможности управления камерой и алгоритмами обработки снятого изображения. В частности, добавлены параметры для увеличения яркости при слабом освещении и настройки интенсивности фотовспышки.
  • Реализована возможность создания приложений с музыкальными инструментами и синтезаторами, выглядящими для других приложений как виртуальные MIDI-устройства, соответствующие спецификации MIDI 2.0.
  • Продолжено развитие API для динамического управления производительностью - ADPF (Android Dynamic Performance Framework), позволяющего в играх и ресурсоёмких приложениях отслеживать энергопотребление и температуру. Добавлен режим power-efficiency при котором приоритет при выполнении потоков будет отдаваться экономии энергопотребления, а не производительности (например, можно использовать для длительно выполняемых фоновых работ). Предоставлена возможность передачи объединённой информации о потреблении GPU и CPU, что позволяет системе настроить частоту GPU и CPU или привязку потоков к ядрам, учитывая общую нагрузку. Добавлен метод getThermalHeadroomThresholds для вывода сведений о состоянии регулирования температуры с учётом прогнозируемых значений.

  • Добавлена поддержка устройств, на которых используются страницы памяти размером 16 КБ. Для задействования 16-килобайтных страниц достаточно просто пересобрать приложения, напрямую или косвенно использующие библиотеки NDK (Native Development Kit). Задействование страниц размером 16 КБ вместо 4 КБ позволяет повысить производительность программ, интенсивно работающих с памятью. Например, при использовании 16-килобайтных страниц время запуска подобных программ в среднем снизилось на 3.16% (для некоторых на 30%), а энегропотребление снизилось на 4.56%. Повторный запуск программы для работы с камерой ускорился на 4.48%, а общее время загрузки системы сократилось на 0.8 сек. (1.5%).
  • В операционную систему встроена возможность архивирования редко используемых приложений для высвобождения занимаемого ими пространства на накопителе. При возникновении потребности в приложении его можно вернуть из архива. Приложения с полномочиями REQUEST_DELETE_PACKAGES теперь могут вызвать метод requestArchive для запроса архивирования установленного пакета, что приведёт удалению пакета APK и всех файлов из кэша, но сохранит ярлык и связанные с приложением пользовательские данные. При попытке запуска заархивированного приложения оно заново будет загружено и восстановлено.
  • Проведена работа по упрощению использования телефона с поддержкой NFC для оплаты товаров одним касанием (tap to pay). Приложениям предоставлена возможность перевода NFC-адаптера в режим наблюдения, при котором устройство принимает запросы по NFC и отправляет на обработку заданному процессу, но не отвечает и не предаёт данные NFC-ридерам. Реализована поддержка регистрации отпечатка (fingerprint) для получения уведомлений о связанной с NFC активности при одновременном использовании на устройстве нескольких приложений, работающих с NFC.
  • Улучшены возможности для автоматического распознавания языка и переключения языков. Приложениям предоставлены расширенные опции для тонкой настройки переключения языков во время распознавания речи. Например, режим EXTRA_LANGUAGE_SWITCH_INITIAL_ACTIVE_DURATION_TIME_MILLIS допускает переключение только вначале звукового сеанса, а режим EXTRA_LANGUAGE_SWITCH_MATCH_SWITCHES отменяет переключение языка после определённого числа переключений, что может быть востребовано в ситуациях, когда заранее известно, что в одном сеансе будет использован только один язык.

  • Проведена оптимизация работы механизма фоновых сервисов, позволяющего приложениям находиться в активном состоянии, когда с ними не взаимодействует пользователь. Фоновые сервисы, выполняющие синхронизацию данных (dataSync) или обработку мультимедийного контента (mediaProcessing), теперь принудительно останавливаются после работы в течение 6 часов.
  • При предоставлении частичного доступа к контенту в интерфейсе выбора фотографий реализована возможность пометки только фото и видео, которые уже выбирали в недавнем прошлом, что позволяет упростить работу с часто запрашиваемыми фото и видео.
  • В конфигураторе (Settings → System → Languages & Input → System languages → Choose how you’re addressed) предоставлена возможность выставления предпочитаемого обращения к пользователю (мужчина, женщина, нейтральное обращение), используемая для адаптации грамматики в выдаваемых системой обращениях. Настройка пока доступна только для французского языка.
  • Добавлены дополнительные элементы API для обеспечения плавного перехода в режим "картинка в картинке" программ с элементами интерфейса, отображаемыми поверх основного интерфейса пользователя.
  • Предоставлена возможность выбора виброэффекта для предупреждения о поступлении нового уведомления.
  • В хранилище Health Connect добавлена поддержка новых типов данных, применяемых при занятиях спортом и контроле за питанием. Например, добавлено поле для контроля за температурой кожи и реализована структура для определения плана тренировок.
  • Добавлен класс ProfilingManager, позволяющий запросить из приложения данные профилирования. Например, можно получить доступ к дампам памяти в куче, сведениям об использовании кучи и активности в стеке.
  • Предоставлены средства для гибкого управления разрывом строк. В виджете TextView для улучшения читаемости при помощи тегов и можно управлять переносом групп слов или частей слов на другую строку. Например, в строке "The power and brains behind Pixel 8 Pro." фраза "Pixel 8 Pro" будет всегда отображаться в одной строке.
  • Добавлен API E2eeContactKeysManager для управления ключами сквозного шифрования (E2EE) в приложениях. Интеграция E2eeContactKeysManager в адресную книгу позволяет предоставить пользователю централизованный интерфейс для управления открытыми ключами адресатов, а также верификации этих ключей.
  • Добавлена дополнительная защита от вредоносной активности фоновых приложений, нацеленных на активацию других приложений, повышение их привилегий и злоупотребление взаимодействием с пользователем.
  • Расширены возможности фильтрации intent-запросов. При помощи класса UriRelativeFilterGroup можно задавать правила для блокирования или пропускания запросов на основе содержимого параметров URL и фрагментов URL. Правила фильтрации также могут задаваться через новый тег в манифесте приложения.
  • Расширена поддержка API, предоставляемого в OpenJDK. Например, добавлена поддержка дополнительных методов классов Math и StrictMath, упорядоченных коллекций и списков, использования ByteBuffer в Deflater и обновления ключей.
  • Добавлен API, позволяющий приложениям определять выполнение записи экрана. Приложение может задать callback-обработчик, который будет вызван, в случае если включена запись экрана и окно приложения попадает в видимую область. Предложенная возможность позволяет показывать пользователю предупреждения о записи в случае отображения конфиденциальных данных.
  • Добавлен API ApplicationStartInfo, через который можно получить информацию о состоянии при запуске программы. Например, можно узнать прокэшированы ли компоненты приложения (состояния cold, warm или hot), как долго выполнялись разные стадии запуска, что послужило причиной запуска, а также определить метрики, полезные для оптимизации скорости запуска.
  • Изменена обработка остановленного состояния, при котором выполнение приложения приостанавливается до связанного с приложением действия пользователя. В новой версии предоставлены возможности для определения приложением прекращения приостановки: обработка сообщения BOOT_COMPLETED или использование метода ApplicationStartInfo.wasForceStopped().
  • Помимо метода StorageStats.getAppBytes(), позволяющего получить общие данные о размере установленного приложения, добавлен метод StorageStats.getAppBytesByDataType(), дающий возможность получить раздельные сведения о размере пакета APK, скомпилированном коде, извлечённых и сгенерированных данных.
  • Внесены изменения в API запуска приоритетных сервисов (Foreground Service). Добавлен новый тип приоритетных сервисов - mediaProcessing, который можно использовать для ресурсоёмких операций с мультимедийным содержимым, например, перекодирования из одного формата в другой.
  • Предложен новый API для работы с движком хранения на базе СУБД SQLite, предоставляющий доступ к расширенным возможностям SQLite.
  • Добавлен класс AutomaticZenRules, позволяющий приложениям настроить правила применения режима "не беспокоить" и определить ситуации, когда эти правила должны применяться. В сервисах для показа рекламы в мобильных приложениях (Android AD Services) задействованы последние наработки проекта Privacy Sandbox, нацеленного на создание техник персонализации показа рекламы без нарушения конфиденциальности пользователя (определение общей категории интересов пользователя без индивидуальной идентификации).
  • В хранилище Health Connect добавлена поддержка новых типов данных, применяемых при занятиях спортом и контроле за питанием. Например, добавлены поля для отслеживания среднего числа пройденных шагов и потребления трансжиров. Health Connect обеспечивает централизованное хранение данных с фитнес-браслетов и прочих устройств, имеющих отношение к здоровью пользователя, и организует совместный доступ разных приложений к данным о здоровье.
  • В API FileIntegrityManager добавлена поддержка предоставляемого ядром Linux механизма fs-verity для прозрачного контроля целостности и подлинности отдельных файлов по ассоциированным с файлами криптографическим подписям, хранимым в области метаданных.
  • В API для предоставления совместного доступа к экрану добавлена возможность захвата отдельных окон приложений, а не всего содержимого экрана.


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