The OpenNET Project / Index page

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

·06.10.2022 Проект LLVM развивает средства для безопасной работы с буферами в C++ (126 +9)
  Разработчики проекта LLVM предложили ряд изменений, направленных на усиление безопасности критически важных проектов на языке C++ и предоставление средств для исключения ошибок, вызванных выходом за допустимые границы буферов. Работа сосредоточена в двух направлениях: предоставление модели разработки, позволяющей безопасно работать с буферами, и проведение работы по усилению защиты стандартной библиотеки функций libc++.

Предлагаемая модель безопасного программирования для C++ предполагает использование предоставляемых стандартной библиотекой классов при работе с буферами вместо манипуляций с голыми указателями. Например, предлагается использовать классы std::array, std::vector и std::span, в которые будет добавлена проверка выхода за границы выделенной памяти, производимая во время выполнения.

Для борьбы с опасными приёмами программирования в clang предлагается выводить предупреждения компилятора для всех арифметических операций с указателями, похожие на предупреждения linter-а clang-tidy, выводимые при использовании флага "cppcoreguidelines-pro-bounds-pointer-arithmetic", поддержка которого появится в выпуске LLVM 16. Для включения подобных предупреждений в clang будет добавлен отдельный флаг, неактивный по умолчанию.

В libc++ планируется реализовать опциональный режим усиленной защиты, при включении которого во время выполнения будут отлавливаться некоторые ситуации, приводящие к неопределённому поведению. Например, в классах std::span и std::vector будет отслеживаться обращение за пределы выделенной области памяти, в случае выявления которого программа будет аварийно завершаться. Разработчики считают, что добавление подобных изменений сохранит соответствие libc++ стандартам C++, так как выбор метода обработки случаев неопределённого поведения лежит на разработчиках библиотеки, которые могут в том числе трактовать неопределённое поведение как сбой, требующий завершения работы программы.

Производимые во время выполнения проверки в libc++ планируют разделить на категории, которые можно будет включать по отдельности. Некоторые из предложенных проверок, которые не приводят к усложнению операций или изменению ABI, уже реализованы в рамках безопасного режима libc++ (safe mode).

Дополнительно планируется подготовить инструментарий для корректировки кода, позволяющий заменять переменные с голыми указателями на контейнеры и применять альтернативные обработчики в ситуациях, когда контейнер не может напрямую заменить указатель (например, конструкция "if(array_pointer)" может быть преобразована в "if(span.data()"). Корректировки могут применяться не только к локальным переменным, но и к параметрам типов с указателями.

  1. OpenNews: Google занялся продвижением средств безопасной работы с памятью в открытом ПО
  2. OpenNews: 70% проблем с безопасностью в Chromium вызваны ошибками при работе с памятью
  3. OpenNews: Компания Akamai предложила безопасную систему распределения памяти для OpenSSL
  4. OpenNews: Повышение безопасности Linux-ядра через использование страниц памяти, доступных только для чтения
  5. OpenNews: Кейс Кук из Google призвал модернизировать процесс работы над ошибками в ядре Linux
Обсуждение (126 +9) | Тип: К сведению |
·06.10.2022 Выпуск сетевого анализатора Wireshark 4.0 (31 +20)
  Опубликован релиз новой стабильной ветки сетевого анализатора Wireshark 4.0. Напомним, что изначально проект развивался под именем Ethereal, но в 2006 году из-за конфликта с владельцем торговой марки Ethereal, разработчики были вынуждены переименовать проект в Wireshark. Код проекта распространяется под лицензией GPLv2.

Ключевые новшества Wireshark 4.0.0:

  • Изменена компоновка элементов в основном окне. Панели "Дополнительная Информация о пакете" и "Байты пакета" размещены бок о бок под панелью "Список Пакетов".
  • Изменено оформление диалоговых окон "Диалог" (Conversation) и "Конечная точка" (Endpoint).
    • В контекстные меню добавлены опции для изменения размера всех столбцов и копирования элементов.
    • Обеспечена возможность открепления и прикрепления вкладок.
    • Добавлена поддержка экспорта в формате JSON.
    • При применении фильтров показаны столбцы, отображающие различия между подпавшими и не подпавшими под фильтры пакетами.
    • Изменена сортировка различных видов данных.
    • К TCP и UDP потокам привязаны идентификаторы и предоставлена возможность фильтрации по ним.
    • Разрешено скрытие диалогов из контекстного меню.
  • Улучшен импорт шестнадцатеричных дампов из интерфейса Wireshark и при помощи команды text2pcap.
    • В text2pcap предоставлена возможность записи дампов во всех форматах, поддерживаемых библиотекой wiretap.
    • В text2pcap в качестве формата по умолчанию выставлен pcapng, по аналогии с утилитами editcap, mergecap и tshark.
    • Добавлена поддержка выбора типа инкапсуляции формата вывода.
    • Добавлены новые опции для ведения логов.
    • Предоставлена возможность сохранения в дампах фиктивных заголовков IP, TCP, UDP и SCTP при использовании инкапсуляции Raw IP, Raw IPv4 и Raw IPv6.
    • Добавлена поддержка сканирования входных файлов с использованием регулярных выражений.
    • Обеспечен паритет функциональности утилиты text2pcap и интерфейса "Import from Hex Dump" в Wireshark.
  • Значительно повышена производительность определения местоположения с использованием баз MaxMind.
  • Внесены изменения в синтаксис правил фильтрации трафика:
    • Добавлена возможность выбора определённого слоя стека протоколов, например, при инкапсуляции IP-over-IP для извлечения адресов из внешних и вложенных пакетов можно указывать "ip.addr#1 == 1.1.1.1" и "ip.addr#2 == 1.1.1.2".
    • В условных операторах реализована поддержка кванторов "any" и "all", например, "all tcp.port > 1024" для проверки всех полей tcp.port.
    • Встроен синтаксис для указания ссылок на поля - ${some.field}, реализованный без использования макросов.
    • Добавлена возможность использования арифметических операций ("+", "-", "*", "/", "%") с числовыми полями, отделяя выражение фигурными скобками.
    • Добавлены функции max(), min() и abs().
    • Разрешено указание выражений и вызова других функций в качестве аргументов функций.
    • Добавлен новый синтаксис для отделения литералов от идентификаторов - начинающееся с точки значение обрабатывается как протокол или поле протокола, а значение в угловых скобках - как литерал.
    • Добавлен битовый оператор "&", например, для изменения отдельных битов можно указывать "frame[0] & 0x0F == 3".
    • Приоритет логического оператора AND теперь выше, чем оператора OR.
    • Добавлена поддержка задания констант в двоичном виде, используя префикс "0b".
    • Добавлена возможность использования отрицательных значений индексов для отчёта с конца, например, для проверки последних двух байтов в заголовке TCP можно указать "tcp[-2:] == AA:BB".
    • Запрещено разделение элементов множества пробелами, использование пробелов вместо запятой теперь будет приводить не к предупреждению, а к ошибке.
    • Добавлены дополнительные escape-последовательности: \a, \b, \f, \n, \r, \t, \v.
    • Добавлена возможность указания Unicode-символов в формате \uNNNN и \UNNNNNNNN.
    • Добавлен новый оператор сравнения "===" ("all_eq"), срабатывающий только если в выражении "a === b" все значения "a" совпадают c "b". Также добавлен обратный оператор "!==" ("any_ne").
    • Объявлен устаревшим оператор "~=", вместо которого следует использовать "!==".
    • Запрещено использовать числа с незакрытой точкой, т.е. значения ".7" и "7." теперь недопустимы и вместо них следует указывать "0.7" и "7.0".
    • Обработчик регулярных выражений в движке дисплейных фильтров переведён на библиотеку PCRE2 вместо GRegex.
    • В строках и шаблонах регулярных выражений реализована корректная обработка нулевых байтов ('\0' в строке воспринимается как нулевой байт).
    • Помимо 1 и 0 булевые значения теперь также могут записываться как True/TRUE и False/FALSE.
  • В модуль разбора (dissector) HTTP2 добавлена поддержка использования фиктивных заголовков для разбора данных, перехваченных без предшествующих пакетов с заголовками (например, при анализе сообщений в уже установленных соединениях gRPC).
  • В модуль разбора IEEE 802.11 добавлена поддержка Mesh Connex (MCX).
  • Обеспечено временное запоминание (без сохранения на диске) пароля в диалоге Extcap, для того чтобы не вводить его при повторных запусках. Добавлена возможность установки пароля для extcap через утилиты командной строки, такие как tshark.
  • В утилите ciscodump реализована возможность удалённого захвата с устройств на базе IOS, IOS-XE и ASA.
  • Добавлена поддержка протоколов:
    • Allied Telesis Loop Detection (AT LDF),
    • AUTOSAR I-PDU Multiplexer (AUTOSAR I-PduM),
    • DTN Bundle Protocol Security (BPSec),
    • DTN Bundle Protocol Version 7 (BPv7),
    • DTN TCP Convergence Layer Protocol (TCPCL),
    • DVB Selection Information Table (DVB SIT),
    • Enhanced Cash Trading Interface 10.0 (XTI),
    • Enhanced Order Book Interface 10.0 (EOBI),
    • Enhanced Trading Interface 10.0 (ETI),
    • FiveCo’s Legacy Register Access Protocol (5co-legacy),
    • Generic Data Transfer Protocol (GDT),
    • gRPC Web (gRPC-Web),
    • Host IP Configuration Protocol (HICP),
    • Huawei GRE bonding (GREbond),
    • Locamation Interface Module (IDENT, CALIBRATION, SAMPLES - IM1, SAMPLES - IM2R0),
    • Mesh Connex (MCX),
    • Microsoft Cluster Remote Control Protocol (RCP),
    • Open Control Protocol for OCA/AES70 (OCP.1),
    • Protected Extensible Authentication Protocol (PEAP),
    • REdis Serialization Protocol v2 (RESP),
    • Roon Discovery (RoonDisco),
    • Secure File Transfer Protocol (sftp),
    • Secure Host IP Configuration Protocol (SHICP),
    • SSH File Transfer Protocol (SFTP),
    • USB Attached SCSI (UASP),
    • ZBOSS Network Coprocessor (ZB NCP).
  • Повышены требования к сборочному окружению (CMake 3.10) и зависимостям (GLib 2.50.0, Libgcrypt 1.8.0, Python 3.6.0, GnuTLS 3.5.8).

  1. OpenNews: CERT опубликовал сетевой анализатор Tapioca 2.0
  2. OpenNews: Выпуск сетевого анализатора Wireshark 3.6
  3. OpenNews: Армия США открыла код системы анализа сетевого трафика Dshell
  4. OpenNews: Cloudflare представил открытый сканер сетевой безопасности Flan Scan
  5. OpenNews: Выпуск сканера сетевой безопасности Nmap 7.93, приуроченный к 25-летию проекта
Обсуждение (31 +20) | Тип: Программы |
·05.10.2022 Во FreeBSD добавлена поддержка протокола Netlink, применяемого в ядре Linux (135 +12)
  В кодовую базу FreeBSD принята реализация коммуникационного протокола Netlink (RFC 3549), применяемого в Linux для организации взаимодействия ядра с процессами в пространстве пользователя. Проект ограничивается поддержкой семейства операций NETLINK_ROUTE для управления состоянием сетевой подсистемы в ядре.

В текущем виде уровень поддержки Netlink позволяет использовать во FreeBSD Linux-утилиту ip из пакета iproute2 для управления сетевыми интерфейсами, установки IP-адресов, настройки маршрутизации и манипуляции объектами nexthop, хранящими данные о состоянии, используемом для передачи пакета в желаемую точку назначения. После незначительного изменения заголовочных файлов возможно использование Netlink в пакете маршрутизации Bird.

Реализация Netlink для FreeBSD оформлена в виде загружаемого модуля ядра, по возможности не затрагивающего другие подсистемы ядра и создающего отдельные очереди задач (tasqueue) для обработки поступающих по протоколу сообщений и выполнения операций в асинхронном режиме. В качестве причины портирования Netlink называется отсутствие стандартного механизма для взаимодействия с подсистемами ядра, что приводит к тому, что разные подсистемы и драйверы изобретают собственные протоколы.

Netlink предлагает унифицированный коммуникационный слой и расширяемый формат сообщений, который может выступать в роли посредника, автоматически объединяющего в одном запросе разрозненные данные от разных источников. Например, на Netlink могут быть переведены такие подсистемы FreeBSD, как devd, jail и pfilctl, ныне использующие собственные вызовы ioctl, что значительно упростит создание приложений для работы с данными подсистемами. Кроме того, использование Netlink для изменения объектов и групп nexthop в стеке маршрутизации позволит более эффективно взаимодействовать с процессами маршрутизации в пространстве пользователя.

Реализованные в настоящее время возможности:

  • Получение информации о маршрутах, объектах и группах nexthops, сетевых интерфейсах, адресах и соседних хостах (arp/ndp).
  • Формирование уведомлений о появлении и отключении сетевых интерфейсов, установке и удалении адресов, добавлении и удалении маршрутов.
  • Добавление и удаление маршрутов, объектов и групп nexthops, шлюзов, сетевых интерфейсов.
  • Интеграция с интерфейсом Rtsock для управления таблицей маршрутизации.

  1. OpenNews: Выпуск пакетного фильтра nftables 1.0.5
  2. OpenNews: Для FreeBSD развивается механизм изоляции, похожий на pledge и unveil
  3. OpenNews: Опубликован MyBee 13.1.0, дистрибутив FreeBSD для организации работы виртуальных машин
  4. OpenNews: В containerd приняты изменения, позволяющие запускать Linux-контейнеры во FreeBSD
  5. OpenNews: Wifibox 0.10 - окружение для использования WiFi-драйверов Linux во FreeBSD
Обсуждение (135 +12) | Тип: К сведению |
·05.10.2022 Опубликован прототип платформы ALP, идущей на смену SUSE Linux Enterprise (121 +1)
  Компания SUSE опубликовала первый прототип платформы ALP (Adaptable Linux Platform), позиционируемой как продолжение развития дистрибутива SUSE Linux Enterprise. Ключевым отличием новой системы является разделение базовой основы дистрибутива на две части: урезанную "host OS" для работы поверх оборудования и слой для поддержки приложений, ориентированный на запуск в контейнерах и виртуальных машинах. Сборки подготовлены для архитектуры x86_64.

Идея в том, чтобы в "host OS" развивать минимальное окружение, необходимое для поддержки и управления оборудованием, а все приложения и компоненты пространства пользователя запускать не в смешанном окружении, а в отдельных контейнерах или в виртуальных машинах, выполняемых поверх "host OS" и изолированных друг от друга. Подобная организация позволит пользователям сфокусировать внимание на приложениях и абстрагировать рабочие процессы, отделив их от низкоуровневого системного окружения и оборудования.

В качестве основы для "host OS" задействован продукт SLE Micro, основанный на наработках проекта MicroOS. Для централизованного управления предлагаются системы управления конфигурацией Salt (предустановлена) и Ansible (опция). Для запуска изолированных контейнеров доступны инструментарии Podman и K3s (Kubernetes). Среди системных компонентов, вынесенных в контейнеры, присутствуют yast2, podman, k3s, cockpit, GDM (GNOME Display Manager) и KVM.

Из особенностей системного окружения упоминается использование по умолчанию дискового шифрования (FDE, Full Disk Encryption) с возможностью хранения ключей в TPM. Корневой раздел монтируется в режиме только для чтения и не меняется в процессе работы. В окружении применяется механизм атомарной установки обновлений. В отличие от атомарных обновлений на базе ostree и snap, используемых в Fedora и Ubuntu, в ALP вместо построения отдельных атомарных образов и развёртывания дополнительной инфраструктуры доставки применяются штатный пакетный менеджер и механизм снапшотов в ФС Btrfs.

Основные концепции ALP:

  • Минимизация вмешательства пользователя (zero-touch), подразумевающая автоматизацию основных процессов сопровождения, развёртывания и настройки.
  • Автоматическое поддержание безопасности и нахождения системы в актуальном состоянии (self-updating). Предусмотрен настраиваемый режим автоматической установки обновлений (например, можно включить автоустановку только исправлений критических уязвимостей или вернуться к ручному подтверждения установки обновлений). Для обновления ядра Linux без перезапуска и приостановки работы поддерживаются live-патчи.
  • Автоматическое применение оптимизаций (self-tuning) и поддержание живучести системы (self-healing). Система фиксирует последнее стабильное состояние и после применения обновлений или изменения настроек в случае выявление аномалий, проблем или нарушения поведения автоматически переводится в предыдущее состояние, используя снапшоты Btrfs.
  • Многоверсионный программный стек. Изоляция компонентов в контейнерах позволяет одновременно использовать разные версии инструментов и приложений. Например, можно запускать приложения, использующие в зависимостях разные версии Python, Java и Node.js, разделяя несовместимые между собой зависимости. Базовые зависимости поставляются в форме наборов BCI (Base Container Images). Пользователь может создавать, обновлять и удалять программные стеки не затрагивая другие окружения.

В отличие от SUSE Linux Enterprise развитие ALP изначально ведётся с использованием открытого процесса разработки, при котором промежуточные сборки и результаты тестирования публично доступны всем желающим, что позволяет заинтересованным лицам отслеживать проводимую работу и принимать участие в разработке.

  1. OpenNews: Планы в отношении следующего поколения дистрибутива SUSE Linux
  2. OpenNews: Компания SUSE развивает собственную замену CentOS 8, совместимую с RHEL 8.5
  3. OpenNews: Первый выпуск дистрибутива openSUSE Leap Micro
  4. OpenNews: Релиз дистрибутива openSUSE Leap 15.4
  5. OpenNews: Выпуск D-Installer 0.4, нового инсталлятора для openSUSE и SUSE
Обсуждение (121 +1) | Тип: Программы | Интересно
·05.10.2022 Релиз OpenSSH 9.1 (40 +20)
  После шести месяцев разработки опубликован релиз OpenSSH 9.1, открытой реализации клиента и сервера для работы по протоколам SSH 2.0 и SFTP. Выпуск характеризуется как в основном содержащий исправление ошибок, в том числе устранено нескольких потенциальных уязвимостей, вызванных проблемами при работе с памятью:
  • Однобайтовое переполнение в коде обработки SSH-баннера в утилите ssh-keyscan.
  • Двойной вызов функции free() в случае ошибки при вычислении хэшей для файлов в коде создания и проверки цифровых подписей в утилите ssh-keygen.
  • Двойной вызов функции free() при обработке ошибок в утилите ssh-keysign.

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

  • В ssh и sshd добавлена директива RequiredRSASize, позволяющая определить минимально допустимый размер RSA-ключей. В sshd ключи меньшего размера будут игнорироваться, а в ssh приводить к завершению соединения.
  • Переносимая редакция OpenSSH переведена на использование SSH-ключей для заверения цифровой подписью коммитов и тегов в Git.
  • Директивы SetEnv в файлах конфигурации ssh_config и sshd_config теперь применяют значение из первого упоминания переменной окружения, если она определена в конфигурации несколько раз (до этого применялось последнее упоминание).
  • При вызове утилиты ssh-keygen с флагом "-A" (генерация всех поддерживаемых по умолчанию типов хостовых ключей) отключена генерация ключей DSA, которые уже несколько лет не используются по умолчанию.
  • В sftp-server и sftp реализовано расширение "users-groups-by-id@openssh.com", дающее клиенту возможность запросить имена пользователей и групп, соответствующих указанному набору цифровых идентификаторов (uid и gid). В sftp данное расширение использовано для отображения имён при выводе содержимого каталога.
  • В sftp-server реализовано расширение "home-directory" для раскрытия путей ~/ и ~user/, альтернативное ранее предлагавшемуся для тех же целей расширению "expand-path@openssh.com" (расширение "home-directory" предложено для стандартизации и уже поддерживается некоторыми клиентами).
  • В ssh-keygen и sshd добавлена возможность указания времени в часовом поясе UTC при определении интервалов действия сертификатов и ключей, в дополнение к системному времени.
  • В sftp разрешено указание дополнительных аргументов в опции "-D" (например, "/usr/libexec/sftp-server -el debug3").
  • В ssh-keygen разрешено использование флага "-U" (использование ssh-agent) вместе с операциями "-Y sign" для определения, что закрытые ключи размещены в ssh-agent.

    1. OpenNews: Релиз OpenSSH 9.0 с переводом scp на протокол SFTP
    2. OpenNews: Релиз OpenSSH 8.9 с устранением уязвимости в sshd
    3. OpenNews: Google опубликовал HIBA, надстройку над OpenSSH для авторизации на основе сертификатов
    4. OpenNews: Уязвимость в SSH-клиентах OpenSSH и PuTTY
    5. OpenNews: В OpenSSH добавлена защита от атак по сторонним каналам
Обсуждение (40 +20) | Тип: Программы |
·04.10.2022 Представлен NVK, открытый Vulkan-драйвер для видеокарт NVIDIA (63 +41)
  Компания Collabora представила NVK, новый открытый драйвер для Mesa с реализацией графического API Vulkan для видеокарт NVIDIA. Драйвер написан с нуля, используя официальные заголовочные файлы и открытые модули ядра, опубликованные компанией NVIDIA. Код драйвера открыт под лицензией MIT. Драйвером поддерживаются пока только GPU на базе микроархитектур Turing и Ampere, выпускаемые с сентября 2018 года.

Проект развивается командой, в которую входят Карол Хербст (Karol Herbst, разработчик Nouveau из Red Hat), Дэвид Эйрли (David Airlie, мэйнтейнер подсистемы DRM из Red Hat) и Джейсон Экстранд (Jason Ekstrand, активный разработчик Mesa из Collabora). При разработке нового драйвера местами используются базовые компоненты OpenGL-драйвера Nouveau, но из-за отличий наименований в заголовочных файлах NVIDIA и наименований в Nouveau, полученных на основе обратного инжиниринга, прямое заимствование кода затруднено и по большей части пришлось переосмысливать многие вещи и реализовывать их с нуля.

Разработка также ведётся с оглядкой на создание нового эталонного Vulkan-драйвера для Mesa, код которого можно будет заимствовать при создании других драйверов. Для этого при работе над драйвером NVK попытались учесть весь имеющийся опыт разработки Vulkan-драйверов, поддерживать кодовую базу в оптимальной форме и минимизировать перенос кода из других Vulkan-драйверов, делая как должно быть для оптимальной и качественной работы, а не слепо копируя то как сделано в других драйверах.

Разработка драйвера NVK ведётся только несколько месяцев, поэтому его функциональность ограничена. Драйвер успешно проходит 98% проверок при запуске 10% тестов из набора Vulkan CTS (Compatibility Test Suite). В общем виде готовность драйвера оценивается как 20-25% от функциональности драйверов ANV и RADV. По уровню поддержки оборудования драйвер пока ограничен картами на базе микроархитектур Turing и Ampere. Ведётся работа над патчами для поддержки GPU Kepler, Maxwell и Pascal, но они ещё не готовы.

В долгосрочной перспективе ожидается, что для видеокарт NVIDIA драйвер NVK достигнет уровня качества и функциональности, подобного драйверу RADV для карт AMD. После готовности драйвера NVK, созданные при его разработке общие библитеки можно будет использовать для улучшения OpenGL-драйвера Nouveau для видеокарт NVIDIA. Также рассматривается возможность задействования проекта Zink для реализации полноценного OpenGL-драйвера для видеокарт NVIDIA, работающего через трансляцию вызовов в API Vulkan.

  1. OpenNews: На базе Nouveau развивается новый драйвер для графического API Vulkan
  2. OpenNews: Релиз Mesa 22.1, свободной реализации OpenGL и Vulkan
  3. OpenNews: Опубликован графический стандарт Vulkan 1.2
  4. OpenNews: Компания NVIDIA открыла код видеодрайверов для ядра Linux
  5. OpenNews: Компания NVIDIA опубликовала заголовочные файлы с данными для программирования 3D-движков
Обсуждение (63 +41) | Тип: К сведению |
·04.10.2022 Выпуск системы управления исходными текстами Git 2.38 (64 +8)
  Представлен выпуск распределенной системы управления исходными текстами Git 2.38. Git является одной из самых популярных, надёжных и высокопроизводительных систем управления версиями, предоставляющей гибкие средства нелинейной разработки, базирующиеся на ответвлении и слиянии веток. Для обеспечения целостности истории и устойчивости к изменениям "задним числом" используются неявное хеширование всей предыдущей истории в каждом коммите, также возможно удостоверение цифровыми подписями разработчиков отдельных тегов и коммитов.

По сравнению с прошлым выпуском в новую версию принято 699 изменений, подготовленных при участии 92 разработчиков, из которых 24 впервые приняли участие в разработке. Основные новшества:

  • В основной состав включена утилита "scalar", разработанная компанией Microsoft для управления крупными репозиториями. Утилита изначально была написана на языке C#, но в git включён переделанный вариант на языке Си. Новая утилита отличается от команды git включением по умолчанию дополнительных возможностей и настроек, влияющих на производительность при работе с очень крупными репозиториями. Например, при использовании scalar применяется:
    • Частичное клонирование для работы с неполной копией репозитория.
    • Встроенный механизм отслеживания изменений в файловой системе (FSMonitor), позволяющий обойтись без перебора всего рабочего каталога.
    • Индексы, охватывающие объекты в разных pack-файлах (multi-pack).
    • Файлы commit-graph с индексом графа коммитов, применяемым для оптимизации доступа к информации о коммитах.
    • Фоновые периодические работы для поддержания оптимальной структуры репозитория в фоновом режиме, не блокируя интерактивный сеанс (раз в час выполняется работа по упреждающей загрузке свежих объектов из удалённого репозитория и обновлению файла с графом коммитов, а каждую ночь запускается процесс упаковки репозитория).
    • Режим "sparseCheckoutCone", ограничивающий допустимые шаблоны при частичном клонировании.
  • В команду "git rebase" добавлена опция "--update-refs" для обновления зависимых веток, пересекающихся с перемещаемыми ветками, чтобы вручную не выполнять операции checkout к каждой зависимой ветке для переключения на требуемый коммит.
  • Обеспечена совместимость команды "git rm" с частичными индексами.
  • Улучшено поведение команды "git mv A B" при перемещении файла из рабочей области с частичными индексами в режиме "cone" во внешнюю область, для которой данный режим не применяется.
  • Проведена оптимизация формата bitmap-фалов для работы с большими репозиториями - добавлена опциональная индексная таблица со списком выбранных коммитов и их смещений.
  • В команде "git merge-tree" реализован новый режим при котором на основе двух указанных коммитов вычисляется дерево с результатом слияния, так, как если бы истории этих коммитов были объединены.
  • Добавлена настройка "safe.barerepository" для управления возможностью размещения bare-репозиториев (репозитории, не содержащие рабочего дерева) внутри других git-репозиториев. При установке в значение "explicit" будет допускаться работа с bare-репозиториями, размещёнными только в верхнем каталоге. Для возможности размещения bare-репозиториев в подкаталогах следует использовать значение "all".
  • В команду "git grep" добавлена опция "-m" ("--max-count"), аналогичная одноимённой опции в GNU grep и позволяющая ограничить число выводимых совпадений.
  • В команде "ls-files" реализована опция "--format" для настройки выводимых полей (например, можно включить вывод имени объекта, режимов и т.п.).
  • В "git cat-file" при показе содержимого объектов реализована возможность учёта привязок авторов к email, заданных в файле mailmap.

  1. OpenNews: Выпуск системы управления исходными текстами Git 2.37
  2. OpenNews: Две уязвимости в Git
  3. OpenNews: Уязвимость в Git, приводящая к утечке учётных данных
  4. OpenNews: Критическая уязвимость в Git LFS, проявляющаяся на платформе Windows
  5. OpenNews: Обновление Git с устранением уязвимости, допускающей удалённое выполнение кода
Обсуждение (64 +8) | Тип: Программы |
·03.10.2022 Релиз ядра Linux 6.0 (343 +48)
  После двух месяцев разработки Линус Торвальдс представил релиз ядра Linux 6.0. Значительное изменение номера версии произведено из эстетических соображений и является формальным шагом, снимающим дискомфорт из-за накопления большого числа выпусков в серии (Линус пошутил, что причина смены номера ветки скорее в том, что у него заканчиваются пальцы на руках и ногах считать номера версий). Среди наиболее заметных изменений: поддержка асинхронной буферизированной записи в XFS, блочный драйвер ublk, оптимизация планировщика задач, механизм верификации корректности работы ядра, поддержка блочного шифра ARIA.

В новую версию принято 16585 исправлений от 2129 разработчиков, размер патча - 103 МБ (изменения затронули 13939 файлов, добавлено 1420093 строк кода, удалено 318741 строк). Около 40% всех представленных в 6.0 изменений связаны с драйверами устройств, примерно 19% изменений имеют отношение к обновлению кода, специфичного для аппаратных архитектур, 12% связано с сетевым стеком, 4% - с файловыми системами и 2% c внутренними подсистемами ядра.

Основные новшества в ядре 6.0:

  • Дисковая подсистема, ввод/вывод и файловые системы
    • В файловую систему XFS добавлена поддержка асинхронной буферизированной записи для приложений, использующих io_uring. Тесты производительности, проведённые при помощи инструментария fio (1 поток, размер блока 4кб, 600 секунд, последовательная запись), показывают увеличение числа операций ввода/вывода в секунду (IOPS) с 77k до 209k, скорости передачи данных – с 314MB/s до 854MB/s, и падения задержек с 9600ns до 120ns (80 раз).
    • В файловой системе Btrfs реализована вторая версия протокола для команды "send", реализующая поддержку дополнительных метаданных, отправки данных более крупными блоками (более 64K) и передачи экстентов в сжатом виде. Значительно (до 3 раз) увеличена производительность операций прямого чтения (direct read) за счёт одновременного чтения до 256 секторов. Уменьшены конфликты блокировок и ускорена проверка метаданных за счёт сокращения резервируемых метаданных для отложенных элементов.
    • В файловую систему ext4 добавлены новые ioctl-операции EXT4_IOC_GETFSUUID и EXT4_IC_SETFSUUID для извлечения или установки UUID-идентификатора, хранимого в суперблоке.
    • В файловой системе F2FS предложен режим низкого потребления памяти, который оптимизирует работу на устройствах с небольшим объёмом ОЗУ и позволяет снизить потребление памяти ценой уменьшения производительности.
    • Добавлена поддержка аутентификации по внутреннему каналу ("in-band") для накопителей NVMe.
    • В сервере NFSv4 реализован лимит на число активных клиентов, который выставляется как 1024 допустимых клиентов на каждый гигабайт оперативной памяти в системе.
    • В реализации CIFS-клиента повышена производительность в режиме многоканальной передачи.
    • В подсистему отслеживания событий в ФС fanotify добавлен новый флаг FAN_MARK_IGNORE для игнорирования специфичных событий.
    • В ФС Overlayfs, при монтировании поверх ФС с маппингом идентификаторов пользователей, обеспечена корректная поддержка POSIX-совместимых списков управления доступом.
    • Добавлен блочный драйвер ublk, выносящий специфичную логику на сторону фонового процесса в пространстве пользователя и использующий подсистему io_uring.
  • Память и системные сервисы
    • В подсистему DAMON (Data Access MONitor) добавлены новые возможности, позволяющие не только отслеживать доступ процессов к оперативной памяти из пространства пользователя, но и влиять на управление памятью. В частности, предложен новый модуль "LRU_SORT", обеспечивающий перегруппировку списков LRU (Least Recently Used) для повышения приоритета определённых страниц памяти.
    • Реализована возможность создания новых регионов памяти, используя возможности шины CXL (Compute Express Link), применяемой для организации высокоскоростного взаимодействия CPU с устройствами памяти. CXL позволяет подключать новые регионы памяти, предоставляемые внешними устройства памяти, и использовать их как дополнительные ресурсы физического адресного пространства для расширения системной оперативной памяти (DDR) или постоянной памяти (PMEM).
    • Решены проблемы с производительностью систем на процессорах AMD Zen, вызванные кодом, добавленным 20 лет назад для обхода аппаратной проблемы в некоторых чипсетах (добавлялась дополнительная инструкция WAIT, замедляющая процессор чтобы чипсет успевал перейти в состояние простоя). Изменение приводило к снижению производительности при нагрузках, в которых часто чередуются состояния простоя (idle) и активности (busy). Например, после отключения обходного манёвра средние показатели теста tbench увеличились с 32191 MB/s до 33805 MB/s.
    • Из планировщика задач убран код с эвристикой, обеспечивающий миграцию процессов на наименее загруженные CPU с учётом прогнозируемого выигрыша в энергопотреблении. Разработчики пришли к выводу, что эвристика не приносит должной пользы и её проще удалить и переносить процессы без дополнительных оценок каждый раз когда такой перенос потенциально может привести к снижению потребления энергии (например, когда целевой CPU находится на уровне с более низким энергопотреблением). Отключение эвристики привело к снижению энергопотребления при выполнении интенсивных задач, например, в тесте с декодированием видео энергопотребление снизилось на 5.6%.
    • Проведена оптимизация распределения задач по ядрам CPU на крупных системах, позволившая поднять производительность при некоторых видах нагрузки.
    • В интерфейсе асинхронного ввода/вывода io_uring предложен новый флаг IORING_RECV_MULTISHOT, позволяющий использовать режим "multi-shot" с системным вызовом recv() для выполнения разом нескольких операций чтения с одного сетевого сокета. В io_uring также реализована поддержка сетевой передачи без промежуточной буферизации (zero-copy).
    • Реализована возможность перевода программ BPF, прикреплённых к uprobe, в состояние сна. В BPF также добавлен новый итератор ksym для работы с таблицами символов ядра.
    • Удалён устаревший интерфейс "efivars" в sysfs, предназначенный для доступа к загрузочным переменным UEFI (для доступа к данным EFI теперь повсеместно применяется виртуальная ФС efivarfs).
    • В утилите perf реализованы новые отчёты для анализа конфликта блокировок и времени, проводимого процессором для выполнения компонентов ядра.
    • Удалена настройка CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE_O3, позволявшая собирать ядро в режиме оптимизации "-O3". Отмечается, что эксперименты с режимами оптмизации могут проводиться через передачу флагов при сборке ("make KCFLAGS=-O3"), а для добавления настройки в Kconfig требуется обеспечить повторяемое профилирование производительности, показывающее что применяемое в режиме "-O3" развёртывание циклов даёт выигрыш по сравнению с уровнем оптимизации "-O2".
    • Добавлен debugfs-интерфейс для получения информации о работе отдельных "memory shrinker" (обработчики, вызываемые при нехватке памяти и осуществляющие упаковку структур данных ядра для сокращения потребления ими памяти).
    • Для архитектур OpenRISC и LoongArch реализована поддержка шины PCI.
    • Для архитектуры RISC-V реализовано расширение "Zicbom" для управления устройствами c DMA, не согласованным с кэшем (non-cache-coherent).
  • Виртуализация и безопасность
    • Добавлен механизм верификации RV (Runtime Verification) для проверки корректности работы на высоконадежных системах, гарантирующих отсутствие сбоев. Проверка производится во время выполнения через прикрепление обработчиков к точкам трассировки, сверяющих фактический ход выполнения с заранее определённой эталонной детерминированной моделью автомата, определяющей ожидаемое поведение системы. Сверка с моделью во время выполнения позиционируется как более легковесный и простой для реализации на практике способ подтверждения корректности выполнения на критически важных системах, дополняющий классические методы подтверждения надёжности. Из достоинств RV называется возможность обеспечить строгую верификацию без отдельной реализации всей системы на языке моделирования, а также гибкое реагирование на непредвиденные события.
    • Интегрированы компоненты ядра для управления анклавами на базе технологии Intel SGX2 (Software Guard eXtensions), позволяющей приложениям выполнять код в изолированных зашифрованных областях памяти, доступ остальной системы к которым ограничен. Технология Intel SGX2 поддерживается в чипах Intel Ice Lake и Gemini Lake, и отличается от Intel SGX1 дополнительными инструкциями для динамического управления памятью анклавов.
    • Для архитектуры x86 реализована возможность передачи затравки для генератора псевдослучайных чисел через настройки загрузчика.
    • В LSM-модуль SafeSetID добавлена возможность управления изменениями, совершаемыми через вызов setgroups(). SafeSetID позволяет системным сервисам безопасно управлять пользователями без повышения привилегий (CAP_SETUID) и без получения полномочий пользователя root.
    • Добавлена поддержка блочного шифра ARIA.
    • В модуле управления безопасностью на базе BPF реализована возможность прикрепления обработчиков к отдельным процессам и группам процессов (cgroup).
    • Добавлен механизм c реализацией watchdog для определения зависаний гостевых систем на основе мониторинга активности vCPU.
  • Сетевая подсистема
    • В подсистему BPF добавлены обработчики для генерации и проверки SYN cookies. Также добавлен набор функций (kfunc) для доступа и изменения состояния соединений.
    • В беспроводной стек добавлена поддержка механизма MLO (Multi-Link Operation), определённого в спецификации WiFi 7 и позволяющего устройствам одновременно получать и отправлять данные с использованием разных диапазонов частот и каналов, например, для установки одновременно нескольких каналов связи между точкой доступа к клиентским устройством.
    • Повышена производительность встроенной в ядро реализации протокола TLS.
    • Добавлен параметр командной строки ядра "hostname=", позволяющий выставить имя хоста на ранней стадии загрузки, до того как будут запущены компоненты пространства пользователя.
  • Оборудование
    • В драйвере i915 (Intel) обеспечена поддержка дискретных видеокарт Intel Arc (DG2/Alchemist) A750 и A770. Предложена начальная реализация поддержки GPU Intel Ponte Vecchio (Xe-HPC) и Meteor Lake. Продолжена работа по поддержке платформы Intel Raptor Lake.
    • В драйвере amdgpu продолжена работа по обеспечению поддержки платформ AMD RDNA3 (RX 7000) и CDNA (Instinct).
    • В драйвере Nouveau переработан код поддержки дисплейных движков GPU NVIDIA nv50.
    • Добавлен новый DRM-драйвер logicvc для экранов LogiCVC.
    • В драйвере v3d (для GPU Broadcom Video Core) реализована поддержка плат Raspberry Pi 4.
    • В драйвер msm добавлена поддержка GPU Qualcomm Adreno 619.
    • В драйвер Panfrost добавлена поддержка GPU ARM Mali Valhall.
    • Добавлена начальная поддержка процессоров Qualcomm Snapdragon 8cx Gen3, используемых в ноутбуках Lenovo ThinkPad X13s.
    • Добавлены звуковые драйверы для платформ AMD Raphael (Ryzen 7000), AMD Jadeite, Intel Meteor Lake и Mediatek MT8186.
    • Добавлена поддержка ускорителей систем машинного обучения Intel Habana Gaudi 2.
    • Добавлена поддержка ARM SoC Allwinner H616, NXP i.MX93, Sunplus SP7021, Nuvoton NPCM8XX, Marvell Prestera 98DX2530, Google Chameleon v3.

Одновременно латиноамериканский Фонд свободного ПО сформировал вариант полностью свободного ядра 6.0 - Linux-libre 6.0-gnu, очищенного от элементов прошивок и драйверов, содержащих несвободные компоненты или участки кода, область применения которых ограничена производителем. В новом выпуске отключено использование блобов в драйвере CS35L41 HD-audio и драйвере с интерфейсом UCSI для микроконтроллеров STM32G0. Проведена чистка dts-файлов для чипов Qualcomm и MediaTek. Переделано отключение блобов в драйвере MediaTek MT76. Обновлён код чистки блобов в драйверах и подсистемах AMDGPU, Adreno, Tegra VIC, Netronome NFP и Habanalabs Gaudi2. Прекращена чистка драйвера VXGE, удалённого из ядра.

  1. OpenNews: Релиз ядра Linux 5.19
  2. OpenNews: Релиз ядра Linux 5.18
  3. OpenNews: Релиз ядра Linux 5.17
  4. OpenNews: Релиз ядра Linux 5.16
  5. OpenNews: Релиз ядра Linux 5.15
Обсуждение (343 +48) | Тип: Программы | Интересно
·02.10.2022 Разработчики Debian утвердили поставку проприетарных прошивок в установочных носителях (109 +20)
  Опубликованы результаты общего голосования (GR, general resolution) разработчиков проекта Debian, участвующих в сопровождении пакетов и поддержании инфраструктуры, на котором был рассмотрен вопрос поставки проприетарных прошивок в составе официальных установочных образов и live-сборок. В голосовании победил пятый пункт "Изменить Общественный договор для поставки несвободных прошивок в инсталляторе с предоставлением единых установочных сборок".

Выбранный вариант подразумевает изменение Общественного договора (Debian Social Contract), определяющего основополагающие принципы проекта и обязательства проекта перед сообществом. В пятый пункт общественного договора, в котором находится требование к соблюдению стандартов свободного ПО, будет добавлено примечание, что официальные носители Debian могут включать прошивки, не являющиеся частью системы Debian, если это необходимо для обеспечения работы дистрибутива на оборудовании, для работы которого требуются подобные прошивки.

В официальные установочные носители и live-образы Debian будут включены пакеты из секции "non-free-firmware", в которую из репозитория non-free вынесены компоненты, связанные с прошивками. При наличии оборудования, для работы которого требуются внешние прошивки, использование необходимых проприетарных прошивок будет включено по умолчанию. При этом для пользователей, предпочитающих только свободное ПО, на этапе загрузки будет предоставлена возможность отключения использования несвободных прошивок.

Кроме того, в инсталляторе и live-образе будет предоставлена информация о том, какой тип прошивок загружен. Данные об используемых прошивках также будут сохранены в установленную систему для того, чтобы пользователь смог получить сведения об используемых прошивках позднее. Если прошивки необходимы для работы оборудования после установки, в системе также предлагается по умолчанию добавить в файл sources.list репозиторий non-free-firmware, что позволит получать обновления прошивок с исправлением уязвимостей и важных ошибок. Образы с проприетарными прошивками будут поставляться в качестве официальных носителей, которые заменят ранее предлагаемые образы без несвободных прошивок.

Вопрос с поставкой прошивок стал актуален так как производители оборудования всё чаще прибегают к использованию внешних прошивок, загружаемых операционной системой, вместо поставки прошивок в постоянной памяти на самих устройствах. Подобные внешние прошивки необходимы многим современным графическим, звуковым и сетевым адаптерам. При этом неоднозначен вопрос, насколько поставка проприетарных прошивок соотносится с требованием поставки только свободного ПО в основных сборках Debian, так как прошивки выполняются на аппаратных устройствах, а не в системе, и относятся к оборудованию. На современных компьютерах, оснащённых даже полностью свободными дистрибутивами, выполняются прошивки, встроенные в оборудование. Разница лишь в том, что одни прошивки загружаются операционной системой, а другие уже прошиты в ПЗУ или Flash-память.

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

Возникла ситуация при которой неофициальные сборки являются более предпочтительными для пользователя, если он хочет добиться нормальной поддержки своего оборудования, а установка рекомендуемых официальных сборок зачастую приводит к проблемам в поддержке оборудования. Кроме того, использование неофициальных сборок мешает достижению идеала в отношении поставки только открытого ПО и невольно ведёт к популяризации проприетарного ПО, так как пользователь вместе с прошивками получает и подключённый репозиторий non-free с другим несвободным ПО.

  1. OpenNews: Проект Debian начал общее голосование по вопросу поставки проприетарных прошивок
  2. OpenNews: Debian отсудил домен debian.community, на котором публиковалась критика проекта
  3. OpenNews: Движение по включению проприетарных прошивок в поставку Debian
  4. OpenNews: Разработчики Debian утвердили возможность проведения тайного голосования
  5. OpenNews: Проект Debian выбрал нейтральную позицию относительно петиции против Столлмана
Обсуждение (109 +20) | Тип: К сведению |
·01.10.2022 Представлена платформа для организации совместной работы Nextcloud Hub 3 (34 +17)
  Представлен выпуск платформы Nextcloud Hub 3, предоставляющей самодостаточное решение для организации совместной работы сотрудников предприятий и команд, развивающих различные проекты. Одновременно опубликована лежащая в основе Nextcloud Hub облачная платформа Nextcloud, позволяющая развернуть облачное хранилище с поддержкой синхронизации и обмена данными, предоставляющее возможность просмотра и редактирования данных с любого устройства в любой точке сети (при помощи web-интерфейса или WebDAV). Сервер Nextcloud можно развернуть на любом хостинге, поддерживающем выполнение PHP-скриптов и предоставляющем доступ к SQLite, MariaDB/MySQL или PostgreSQL. Исходные тексты Nextcloud распространяются под лицензией AGPL.

По решаемым задачам Nextcloud Hub напоминает Google Docs и Microsoft 365, но позволяет развернуть полностью контролируемую инфраструктуру совместной работы, функционирующую на своих серверах и не привязанную к внешним облачным сервисам. Nextcloud Hub объединяет в единую среду несколько открытых приложений-надстроек над облачной платформой Nextcloud, позволяющих совместно работать с офисными документами, файлами и информацией для планирования задач и мероприятий. Платформа также включает надстройки для доступа к электронной почте, обмена сообщениями, организации видеоконференций и чатов.

Аутентификация пользователей может производиться как по локальной базе, так и через интеграцию с LDAP / Active Directory, Kerberos, IMAP и Shibboleth / SAML 2.0, в том числе с применением двухфакторной аутентификации, SSO (Single-sign-on) и привязки новых систем к учётной записи по QR-коду. Версионный контроль изменений позволяет отслеживать изменения в файлах, комментариях, правилах совместного доступа и тегах.

Основные компоненты платформы Nextcloud Hub:

  • Files - организация хранения, синхронизации, совместного доступа и обмена файлами. Доступ может быть осуществлён как через Web, так и при помощи клиентского ПО для настольных и мобильных систем. Предоставляются такие расширенные возможности, как полнотекстовый поиск, прикрепление файлов при отправке комментариев, выборочный контроль доступа, создание защищённых паролем ссылок для загрузки, интеграция с внешними хранилищами (FTP, CIFS/SMB, SharePoint, NFS, Amazon S3, Google Drive, Dropbox, и т.п.).
  • Flow - оптимизирует бизнес-процессы через автоматизацию выполнения типовых работ, таких как преобразование документов в PDF, отправка сообщений в чаты при загрузке новых файлов в определённые каталоги, автоматическое назначение тегов. Возможно создание собственных обработчиков, выполняющих действия в привязке к определённым событиям.
  • Nextcloud Office - встроенные средства совместного редактирования документов, электронных таблиц и презентаций, развиваемые совместно с компанией Collabora. Предоставляется поддержки интеграции с пакетами OnlyOffice, Collabora Online, MS Office Online Server и Hancom office.
  • Photos - галерея изображений, упрощающая поиск, обмен и навигацию по совместной коллекции фотографий и изображений. Поддерживается ранжирование фотографий по времени, месту, тегам и частоте просмотра.
  • Calendar - календарь-планировщик, позволяющий координировать проведение встреч, планировать чаты и видеоконференции. Предоставляется интеграция с инструментами групповой работы на базе iOS, Android, macOS, Windows, Linux, Outlook и Thunderbird. Поддерживается загрузка событий с внешних ресурсов, работающих с протоколом WebCal.
  • Mail - совместная адресная книга и web-интерфейс для работы с электронной почтой. Возможна привязка нескольких учётных записей к одному inbox. Поддерживается шифрование писем и прикрепление цифровых подписей на базе OpenPGP. Возможна синхронизация адресной книги при помощи CalDAV.
  • Talk - система обмена сообщениями и проведения web-конференций (чат, аудио и видео). Имеется поддержка групп, возможность предоставления доступа к содержимому экрана и поддержка SIP-шлюзов для интеграции с обычной телефонией.
  • Nextcloud Backup - решение для децентрализованного хранения резервных копий.



Ключевые новшества Nextcloud Hub 3:

  • Предложено новое оформление интерфейса пользователя, позволяющее менять стиль и фон для всех приложений в зависимости от предпочтений пользователя, использовать тёмный режим и назначать клавиатурные комбинации.
  • Добавлена новая редакция галереи изображений Photos 2.0, в которой появились: обзорный режим для навигации по имеющимся фотографиям; поддержка создания альбомов для группировки фотографий определённой тематики; возможность предоставления совместного доступа к альбомам; встроенный интерфейс для загрузки локальных фотографий; режим редактирования фотографий с набором фильтров и типовых инструментов редактирования; система привязки тегов на основе автоматического распознавания лиц и объектов.
  • Значительно улучшен интерфейс системы обмена сообщениями Nextcloud Talk. Вставляемые в сообщения ссылки теперь преобразуются в виджеты, позволяющие сразу посмотреть видео, эскиз web-страницы или задачи. Добавлена возможность отправки сообщения или совершения вызова без генерации уведомления. Предоставлена возможность определения рабочего времени, вне которого автоматически выставляется режим "не беспокоить". Добавлена поддержка ограничения времени жизни сообщения. Добавлена возможность отправки документов, презентаций и электронных таблиц непосредственно из панели чата. Расширены средства управления полномочиями.
  • В почтовом клиенте Mail 2.0 значительно повышена производительность и обновлён интерфейс. Добавлен предпросмотр писем в боковой панели. Появились кнопки быстрого выполнения операций. Упрощена настройка учётной записи. Интегрирована возможность ответа на приглашения в календаре-планировщике.
  • В адресной книге предложен иерархический режим просмотра пользователей, учитывающий взаимодействие участников и должностные связи.
  • В файловый менеджер добавлена боковая панель с ресурсами, связанными с выбранным документом.
  • Проведена оптимизация производительности, время загрузки страниц и выборки данных из БД сокращено на 25-30%, что заметно ускорило загрузку приложений и поиск свойств. Производительность сквозного шифрования повышена на 75%. В интерфейс администратора добавлены настройки для определения пользователей, для которых будет применяться сквозное шифрование. При шифровании данных на стороне сервера потребление дискового пространства сокращено на 33%.
  • В мобильных приложениях для Android и iOS добавлены блоки с недавно обновлёнными статусами, изменёнными файлами, полученными сообщениями и созданными заметками. В приложении для Android предложен новый интерфейс для галереи изображений.
  • Расширены инструменты интеграции с Zimbra, Cisco Webex, NUITEQ Stage, OpenProject, Google Drive и Microsoft OneDrive.

  1. OpenNews: Доступна платформа для организации совместной работы Nextcloud Hub 24
  2. OpenNews: Госучреждения Франции, Германии, Швеции и Нидерландов переходят на платформу Nextcloud
  3. OpenNews: Доступна коммуникационная система Nextcloud Talk с поддержкой видеовызовов
  4. OpenNews: Выпуск GNUnet Messenger 0.7 для создания децентрализованных чатов
  5. OpenNews: Представлена платформа Nextcloud Hub для организации совместной работы
Обсуждение (34 +17) | Тип: Программы |
·01.10.2022 Google опубликовал открытый аудиокодек Lyra V2 (86 +21)
  Компания Google представила аудиокодек Lyra V2, использующий методы машинного обучения для достижения максимального качества передачи речи при использовании очень медленных каналов связи. Новая версия отличается переходом на новую архитектуру нейронной сети, поддержкой дополнительных платформ, расширенными возможностями управления битрейтом, повышением производительности и достижением более высокого качества звука. Эталонная реализация кода написана на C++ и распространяется под лицензией Apache 2.0.

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

Кодек включает в себя кодировщик и декодировщик. Алгоритм работы кодировщика сводится к извлечению параметров голосовых данных каждые 20 миллисекунд, их сжатию и передаче получателю по сети с битрейтом от 3.2kbps до 9.2kbps. На стороне получателя декодировщик использует генеративную модель для воссоздания исходного речевого сигнала на основе переданных звуковых параметров, которые включают в себя логарифмические мел-спектрограммы, учитывающие характеристики энергии речи в различных частотных диапазонах и подготовленные с учётом модели человеческого слухового восприятия.

В Lyra V2 использована новая генеративная модель на основе свёрточной нейронной сети SoundStream, отличающейся низкими требованиями к вычислительным ресурсам, что позволяет выполнять декодирование в режиме реального времени даже на маломощных системах. Задействованная для генерации звука модель обучена с использованием нескольких тысяч часов с записями голосов на более чем 90 языках. Для выполнения модели используется TensorFlow Lite. Производительности предложенной реализации достаточно для кодирования и декодирования речи на смартфонах нижнего ценового диапазона.

Кроме использования иной генеративной модели новая версия также примечательна включением в архитектуру кодека звеньев с квантователем RVQ (Residual Vector Quantizer), выполняемым на стороне отправителя перед передачей данных, а на стороне получателя после приёма данных. Квантователь преобразует выдаваемые кодеком параметры в наборы пакетов, кодируя информацию в привязке к выбранному битрейту. Для обеспечения разного уровня качества предусмотрены квантователи для трёх битрейтов (3.2 kbps, 6 kbps и 9.2 kbps), чем выше битрейт, тем лучше качество, но более высокие требования к пропускной способности.

Новая архитектура позволила снизить задержки передачи сигнала со 100 до 20 миллисекунд. Для сравнения кодек Opus для WebRTC продемонстрировал на протестированных битрейтах задержки в 26.5мс, 46.5мс и 66.5мс. Также значительно выросла производительность кодировщика и декодировщика - по сравнению с прошлой версией отмечается ускорение до 5 раз. Например, на смартфоне Pixel 6 Pro новый кодек выполняет кодирование и декодирование 20-миллисекундной выборки за 0.57 мс, что в 35 раз быстрее, чем необходимо для передачи в режиме реального времени.

Кроме производительности удалось добиться и повышение качества восстановления звука - по шкале MUSHRA качество речи на битрейтах 3.2 kbps, 6 kbps и 9.2 kbps при использовании кодека Lyra V2 соответствует битрейтам 10 kbps, 13 kbps и 14 kbps при использовании кодека Opus.

  1. OpenNews: Компания Google открыла недостающие исходные тексты для аудиокодека Lyra
  2. OpenNews: Google опубликовал аудиокодек Lyra для передачи речи при плохом качестве связи
  3. OpenNews: Компания Apple перевела аудиокодек ALAC в разряд открытых проектов
  4. OpenNews: Опубликован свободный звуковой кодек FLAC 1.4
  5. OpenNews: Доступен аудиокодек Opus 1.3
Обсуждение (86 +21) | Тип: К сведению | Интересно
·30.09.2022 Релиз фреймворка Qt 6.4 (127 +9)
  Компания Qt Company опубликовала релиз фреймворка Qt 6.4, в котором продолжена работа по стабилизации и наращиванию функциональности ветки Qt 6. В Qt 6.4 обеспечена поддержка платформ Windows 10+, macOS 10.15+, Linux (Ubuntu 20.04, CentOS 8.2, openSUSE 15.3, SUSE 15 SP2), iOS 14+, Android 6+ (API 23+), webOS, WebAssembly, INTEGRITY и QNX. Исходные тексты компонентов Qt поставляются под лицензиями LGPLv3 и GPLv2.

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

  • Реализована полноценная поддержка платформы WebAssembly, позволяющей создавать Qt-приложения, работающие в web-браузере и переносимые между разными аппаратными платформами. Приложения, собираемые для платформы WebAssembly, благодаря JIT-копиляции выполняются с близкой к нативному коду производительностью, могут использовать Qt Quick, Qt Quick 3D и доступные в Qt средства визуализации. Так как приложение на базе WebAssembly выполняется в изолированном окружении браузера, доступ к некоторым API для работы с локальными ресурсами и сервисами операционной системы ограничен, но дополнительно предоставляются API для интеграции с браузером.
  • В основной состав возвращён модуль Qt TextToSpeech, поставлявшийся в Qt 5, но не вошедший в ветку Qt 6. Модуль предоставляет средства для синтеза речи, что может применяться для повышения доступности приложений для людей с ограниченными возможностями или для реализации новых средств фонового информирования пользователя, например, для вывода уведомлений в приложениях для автомобильных информационно-развлекательных систем. В Linux преобразование текста в речь осуществляется при помощи библиотеки Speech Dispatcher (libspeechd), а на других платформах через штатный API операционной системы.
  • Добавлен экспериментальный модуль с реализацией стилевого оформления iOS для Qt Quick. Приложения на базе Qt Quick Controls могут автоматически использовать данный модуль для создания родного оформления интерфейса на платформе iOS, по аналогии с тем, как родное оформление применяется в Windows, macOS и Android.
  • Добавлен экспериментальный модуль QtHttpServer, позволяющий интегрировать в приложения функциональность HTTP-сервера, который поддерживает HTTP/1.1, TLS/HTTPS, WebSockets, обработку ошибок, маршрутизацию запросов на основе параметров в URL (QHttpServerRouter) и REST API.
  • Добавлен экспериментальный модуль Qt Quick 3D Physics, предоставляющий API для симуляции физических процессов, который можно использовать вместе с Qt Quick 3D для реалистичного взаимодействия и перемещения объектов в 3D-сценах. Реализация основана на движке PhysX.
  • В модуль Qt Quick 3D добавлена экспериментальная поддержка глобального освещения с использованием карт освещённости, позволяющих более реалистично имитировать в 3D-сцене свет от разных источников. В Qt Quick 3D также реализована поддержка линейных частиц, глянцевых материалов, расширенных настроек отражения, скайбоксов и собственных материалов и текстур.
  • Расширены возможности предоставляемых в Qt Quick типов TableView и TreeView, в которых появилась поддержка навигации при помощи клавиатуры, выделения строк и столбцов, более полного управления положением ячеек, анимацией, сворачиванием и раскрытием древовидных структур.
  • В Qt Quick предложен новый тип FrameAnimation, позволяющий выполнять код синхронно с кадрами анимации. Для повышения плавности анимации в Qt Quick также обеспечена автоматическая обработка некорректной синхронизации vsync при многопоточной отрисовке.

  • В виджете QQuickWidget, позволяющем создавать интерфейсы, комбинирующие элементы на базе Qt Quick и Qt Widget, реализована полная поддержка прослойки RHI (Rendering Hardware Interface), позволяющей обеспечить работу не только с использованием OpenGL, но и поверх API Vulkan, Metal и Direct 3D.
  • В модуль Qt Network добавлен класс QSslServer, позволяющий создавать эффективные сетевые серверы, использующие TLS для установки защищённого канала связи.
  • В модуль Qt Multimedia добавлен экспериментальный бэкенд, использующий для обработки видео и звука пакет FFmpeg. При воспроизведении видео улучшена обработка цветовых пространств и HDR, добавлена возможность подстановки субтитров через QVideoFrames. Добавлена поддержка пространственного звука, позволяющего создавать сцены с трёхмерным распределением звука и симулировать виртуальные комнаты с характеристиками отражения звука в зависимости расположения слушателя, размера помещения и материалов стен и пола.
  • В модуле Qt Widgets класс QFormLayout расширен средствами для построения интерфейсов для захвата структурированного пользовательского ввода. В классе QWizard, предназначенном для создания многоэтапных интерфейсов, добавлены API для управления видимостью строк в формах и перехода на любую страницу в мастере.
  • В QML улучшена поддержка типов значений, упрощающих передачу структурированных данных из C++ в QML. Подобные типы и списки из данных типов теперь могут использоваться в свойствах без обвязки на базе QObject. Расширены возможности LSP-сервера для интеграции поддержки языка QML в интегрированные среды разработки. Включён по умолчанию QML Type Compiler, позволяющий компилировать QML-представление в код на C++.
  • Расширены возможности для работы со строковыми литералами в коде - в классы QStringEncoder и QStringDecoder добавлена поддержка всех кодировок, доступных в ICU (International Components for Unicode).
  • В классе QTextDocuments добавлена поддержка разметки Markdown.

  1. OpenNews: Компания Qt Company опубликовала код выпуска Qt 5.15.6
  2. OpenNews: Для Debian 11 подготовлены пакеты с Qt6
  3. OpenNews: Релиз фреймворка Qt 6.3
  4. OpenNews: Компания Qt Company представила платформу для встраивания рекламы в Qt-приложения
  5. OpenNews: KDE взял на себя продолжение сопровождения общедоступной ветки Qt 5.15
Обсуждение (127 +9) | Тип: Программы |
·29.09.2022 Критические уязвимости, компрометирующие сквозное шифрование во многих Matrix-клиентах (118 +23)
  Разработчики платформы децентрализованных коммуникаций Matrix предупредили о выявлении критических уязвимостей в библиотеках matrix-js-sdk, matrix-ios-sdk и matrix-android-sdk2, позволяющих администраторам серверов выдавать себя за других пользователей и читать сообщения в чатах со сквозным шифрованием (E2EE). Уязвимости вызваны ошибками в отдельных реализациях протокола Matrix и не являются проблемами самого протокола. В настоящее время, проектом выпущены обновления проблемных SDK и части построенных на их основе клиентских приложений.

Для успешного совершения атаки требуется обращение к подконтрольному атакующим домашнему серверу (homeserver - сервер для хранения истории и учётных записей клиентов). Применение сквозного шифрования на стороне клиента не позволяет администратору сервера вклиниваться в обмен сообщениями, но выявленные уязвимости дают возможность обойти данную защиту. Проблемы затрагивают основной Matrix-клиент Element (бывший Riot) для Web, настольных систем, iOS и Android, а также сторонние клиентские приложения, включая Cinny, Beeper, SchildiChat, Circuli и Synod.im. Уязвимости не проявляются в библиотеках matrix-rust-sdk, hydrogen-sdk, Matrix Dart SDK, mautrix-python, mautrix-go и matrix-nio, а также в приложениях Hydrogen, ElementX, Nheko, FluffyChat, Syphon, Timmy, Gomuks и Pantalaimon.

Выделяются три основных сценария проведения атаки:

  • Администратор Matrix-сервера может нарушить работу верификации на основе emoji (SAS, Short Authentication Strings) при использовании перекрёстных подписей и выдать себя за другого пользователя. Проблема вызвана уявзимостью (CVE-2022-39250) в коде matrix-js-sdk, связанной со смешиванием обработки идентификаторов устройств и ключей перекрестной подписи.
  • Контролирующий работу сервера атакующий может подделать отправителя, заслуживающего доверие, и передать фиктивный ключ для перехвата сообщений от других пользователей. Проблема вызвана уязвимостью в matrix-js-sdk (CVE-2022-39251), matrix-ios-sdk (CVE-2022-39255) и matrix-android-sdk2 (CVE-2022-39248), из-за которой клиент некорректно принимал адресованные устройствам сообщения, зашифрованные с использованием протокола Megolm вместо Olm, приписывая сообщения отправителю Megolm, а не фактическому отправителю.
  • Эксплуатируя упомянутые в предыдущем пункте уязвимости, администратор сервера также может добавить фиктивный запасной ключ в пользовательскую учётную запись для извлечения ключей, используемых для шифрования сообщений.

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

  1. OpenNews: Уязвимости в клиентах Matrix, позволяющие раскрыть ключи сквозного шифрования
  2. OpenNews: Matrix-клиент Riot сменил название на Element
  3. OpenNews: Выпуск децентрализованной коммуникационной платформы Matrix 1.0
  4. OpenNews: Подробности про второй взлом Matrix. Скомпрометированы GPG-ключи проекта
  5. OpenNews: Взлом инфраструктуры matrix.org
Обсуждение (118 +23) | Тип: Проблемы безопасности |
·29.09.2022 Доступна мобильная платформа KDE Plasma Mobile 22.09 (87 +16)
  Опубликован выпуск мобильной платформы KDE Plasma Mobile 22.09, основанной на мобильной редакции рабочего стола Plasma 5, библиотеках KDE Frameworks 5, телефонном стеке ModemManager и коммуникационном фреймворке Telepathy. Для вывода графики в Plasma Mobile используется композитный сервер kwin_wayland, а для обработки звука применяется PulseAudio. Одновременно подготовлен выпуск набора мобильных приложений Plasma Mobile Gear 22.09, формируемого по аналогии с набором KDE Gear. Для создания интерфейса приложений применяется Qt, набор компонентов Mauikit и фреймворк Kirigami из состава KDE Frameworks, позволяющий создавать универсальные интерфейсы, пригодные для смартфонов, планшетов и ПК.

В состав входят такие приложения, как KDE Connect для сопряжения телефона с рабочим столом, просмотрщик документов Okular, музыкальный проигрыватель VVave, просмотрщики изображений Koko и Pix, система ведения заметок buho, календарь-планировщик calindori, файловый менеджер Index, менеджер приложений Discover, программа для отправки SMS Spacebar, адресная книга plasma-phonebook, интерфейс для осуществления телефонных вызовов plasma-dialer, браузер plasma-angelfish и мессенджер Spectral.

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

  • В мобильную оболочку перенесены изменения, подготовленные в ветке KDE Plasma 5.26.
  • В выпадающей панели быстрых настроек (Action Drawer) в списке уведомлений появилась кнопка для очистки всех уведомлений, а также переключатель "не беспокоить" для временного отключения всплывающих уведомлений. В быстрые настройки мобильного соединения добавлены предупреждения об отсутствии SIM-карты или неуказании точки доступа (APN).
  • В навигационную панель добавлена кнопка для включения и выключения экранной клавиатуры, которую можно использовать для доступа к экранной клавиатуре при работе с приложениями, не поддерживающими инициирование её вывода (например, программами, использующими XWayland).
  • В интерфейс для переключения между запущенными приложениями (Task Switcher) добавлена кнопка для закрытия всех окон, при нажатии которой требуется подтверждение операции.
  • В строке состояния налажено корректное отображение индикатора подключения через мобильную сеть.
  • Задействован по умолчанию новый домашний экран - Halcyon, оптимизированный для управления одной рукой и предлагающий новое оформление интерфейса для настройки внешнего вида.
  • Проведена работа по установке KDE Plasma Mobile бок о бок с Plasma Desktop и использования общей конфигурации, что может оказаться востребованным на планшетах с сенсорным экраном, на которых при подсоединении клавиатуры и мыши может использоваться обычный рабочий стол, а при автономной работе - версия KDE для мобильных систем. Для перехода в окружение для мобильных систем в настольном окружении теперь можно выбрать в настройках глобальную тему оформления "Plasma Mobile" и войти в сеанс Plasma Mobile. Для запуска Plasma Mobile вместо kwinwrapper применён отдельный скрипт startplasmamobile.

  • В интерфейсе для совершения звонков (Plasma Dialer) переделан экран приёма входящих вызовов. Устранены многие недоработки, связанные с обработкой входящего звонка, вывода уведомления о новом вызове, тактильной обратной связи и переключения звуковых режимов. Добавлен индикатор поступления вызова, отображаемый при блокировке экрана. Появилась возможность приёма или отклонения вызова скользящим жестом по экрану. Реализованы необходимые расширения для KWin и протокола Wayland. Добавлена опция для игнорирования неизвестных номеров, отсутствующих в адресной книге.
  • Упрощён интерфейс программы для прослушивания подкастов Kasts, в которой объединены страницы с информацией о подкасте и списком эпизодов. Добавлен таймер для автоматического отключения, который можно использовать при прослушивании подкастов перед сном.
  • Виджет с прогнозом погоды переведён на использование OpenGL при отображении фона, что повысило производительность на маломощных устройствах. Изменено оформление раздела с настройками. Реализована адаптация интерфейса для планшетов и других устройств с крупными экранами.
  • В эмуляторе терминала задействован новый мобильный стиль на странице с настройками. Добавлены возможности для изменения параметров шрифта и использования прозрачного фона. На устройствах с большими экранами обеспечен показ настроек в отдельном диалоге и добавлена панель с вкладками.
  • Стиль интерфейса конфигуратора оптимизирован для мобильных устройств. Переделан модуль с настройками энергопотребления.
  • Продолжена работа над проектом Raven, развивающим почтовый клиент для Plasma Mobile, основанный на прототипе клиента с поддержкой фреймворка Akonadi.
  • В виджете с часами убрана ежесекундная анимация таймера.
  • Расширены возможности программы для обмена сообщениями NeoChat, форка программы Spectral, переписанного с использованием фреймворка Kirigami для создания интерфейса и библиотеки libQuotient для поддержки протокола Matrix. Добавлена возможность отдельной настройки уведомлений для каждой чат-комнаты. Реализована возможность фильтрации комнат в списке.

  1. OpenNews: Тестирование рабочего стола KDE Plasma 5.26 с компонентами для использования на телевизорах
  2. OpenNews: Выпуск KDE Gear 22.08, набора приложений от проекта KDE
  3. OpenNews: Доступна мобильная платформа KDE Plasma Mobile 22.06
  4. OpenNews: Продолжение развития GNOME Shell для мобильных устройств
Обсуждение (87 +16) | Тип: Программы |
·28.09.2022 Релиз Chrome 106 (107 –10)
  Компания Google представила релиз web-браузера Chrome 106. Одновременно доступен стабильный выпуск свободного проекта Chromium, выступающего основой Chrome. Браузер Chrome отличается от Chromium использованием логотипов Google, наличием системы отправки уведомлений в случае краха, модулями для воспроизведения защищённого от копирования видеоконтента (DRM), системой автоматической установки обновлений, постоянным включением Sandbox-изоляции, поставкой ключей к Google API и передачей при поиске RLZ-параметров. Для тех, кому необходимо больше времени на обновление, отдельно поддерживается ветка Extended Stable, сопровождаемая 8 недель. Следующий выпуск Chrome 107 запланирован на 25 октября.

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

  • Для пользователей сборок для настольных систем включён по умолчанию механизм Prerender2 для упреждающей отрисовки содержимого рекомендаций в адресной строке Omnibox. Упреждающая отрисовка дополняет ранее доступную возможность загрузки наиболее вероятных для перехода рекомендаций не дожидаясь клика пользователя. Помимо загрузки, содержимое связанных с рекомендациями страниц теперь может отрисовываться в буфере (в том числе выполняются скрипты и формируется дерево DOM), что позволяет обеспечить мгновенное отображение рекомендаций после клика.
  • Предоставлена возможность поиска в истории, закладках и вкладках непосредственно из адресной строки Omnibox. Для локализации поиска предложены управляющие теги @history, @bookmarks и @tabs. Например, для поиска в закладках необходимо ввести "@bookmarks поисковая фраза". Для отключения поиска из адресной строки в настройках поиска предусмотрена специальная опция.
  • Отключена по умолчанию поддержка технологии Server Push, которая определена в стандартах HTTP/2 и HTTP/3, и позволяет серверу отправить ресурсы клиенту, не дожидаясь их явного запроса. В качестве причины прекращения поддержки упоминается излишнее усложнение реализации технологии при наличии более простых и не менее эффективных альтернатив, таких как тег <link rel="preload">, HTTP-ответ 103 и протокол WebTransport. По статистике Google в 2021 году около 1.25% сайтов, работающих по HTTP/2, использовали Server Push, а в 2022 году данный показатель снизился до 0.7%. Технология Server Push также присутствует в спецификации HTTP/3, но на практике многие серверные и клиентские программные продукты, включая браузер Chrome, изначально не реализовали её.
  • Отключена возможность использования не-ASCII символов в доменах, указываемых в заголовке Cookie (для IDN-доменов следует указывать домены в формате punycode). Изменение приводит браузер в соответствие с требованиями RFC 6265bis и поведением, реализованным в Firefox.
  • Предложены более ясные метки для идентификации экранов в многомониторных конфигурациях. Подобные метки могут выводиться в диалогах предоставления полномочий для открытия окна на внешнем экране. Например, вместо номера внешнего экрана ('External Display 1') теперь будет показываться название модели монитора ('HP Z27n').
  • Улучшения в версии для Android:
    • На странице с историей посещений обеспечена поддержка механизма "Journey", обобщающего прошлую активность через группировку сведений о ранее выполненных поисковых запросах и просмотренных страницах. При вводе ключевых слов в адресной строке, если они ранее использовались в запросах, предлагается продолжить поиск с прерванной позиции.
    • На устройствах с платформой Android 11 предоставлена возможность блокировки страницы, открытой в режиме инкогнито, после переключения на другое приложение. Для продолжения просмотра после блокировки требуется прохождение аутентификации. По умолчанию блокировка отключена и требует активации в настройках приватности.
    • При попытке загрузки файлов из режима инкогнито, обеспечен вывод дополнительного запроса подтверждения сохранения файла и предупреждения о том, что загруженный файл смогут увидеть другие пользователи устройства, так как он будет сохранён в области менеджера загрузок.
  • Прекращено предоставление API chrome.runtime для всех сайтов. Данный API теперь предоставляется только при наличии подключаемых к нему браузерных дополнений. Ранее chrome.runtime был доступен для всех сайтов так как его использовало встроенное дополнение CryptoToken с реализацией API U2F, поддержка которого прекращена.
  • В режиме Origin Trials (экспериментальные возможности, требующие отдельной активации) добавлено несколько новых API. Origin Trial подразумевает возможность работы с указанным API из приложений, загруженных с localhost или 127.0.0.1, или после прохождения регистрации и получения специального токена, который действует ограниченное время для конкретного сайта.
    • Концепция анонимных iframe, позволяющих загрузить документ в отдельном контексте, не связанном с другими iframe и основным документом.
    • API Pop-Up для организации вывода элементов интерфейса поверх других элементов, например, для организации работы интерактивных меню, подсказок, инструментов выбора содержимого и обучающих систем. Для показа элемента на самом верхнем слое используется новый атрибут "popup". В отличие от диалогов, создаваемых при помощи элемента <dialog> новый API позволяет создавать немодальные диалоги, обрабатывать события, использовать анимацию и создавать гибкие средства управления всплывающей областью.
  • Для свойств 'grid-template-columns' и 'grid-template-rows', применяемых в CSS Grid, реализована поддержка интерполяции для организации плавного перехода между разными состояниями сетки.
  • В CSS-свойство 'forced-color-adjust' добавлена поддержка значения 'preserve-parent-color', при установке которого свойство "color" заимствует своё значение из родительского элемента.
  • Свойство "-webkit-hyphenate-character" избавлено от префикса "-webkit-" и теперь доступно по именем "hyphenate-character". Указанное свойство можно использовать для установки последовательности символов, используемой вместо символа переноса конца слова на другую строку ("-").
  • Реализована третья редакция API Intl.NumberFormat, в котором появились новые функции formatRange(), formatRangeToParts() и selectRange(), группировка множеств, новые опции округления и задания точности, возможность интерпретации строк как десятичных чисел.
  • В API ReadableStream добавлена поддержка эффективной прямой передачи бинарных данных из последовательного порта в обход внутренних очередей и буферов. Прямая передача включается через задание режима BYOB - "port.readable.getReader({ mode: 'byob' })".
  • В программные интерфейсы для работы со звуком и видео (AudioDecoder, AudioEncoder, VideoDecoder и VideoEncoder) добавлена поддержка события "dequeue" и связанных с ним callback-вызовов, активируемых когда кодек начнёт выполнение поставленных в очередь задач кодирования или декодирования содержимого.
  • В API WebXR Device реализована возможность raw-доступа к текстурам изображений с камеры, синхронизированным с текущей позицией в виртуальном окружении.
  • Внесены улучшения в инструменты для web-разработчиков. В панели Sources появилась возможность группировки файлов по источнику. Улучшена трассировка стека для асинхронных операций. Появилась возможность автоматического игнорирования при отладке известных сторонних скриптов. Добавлена возможность скрытия игнорируемых файлов в меню и панелях. Улучшена работа со стеком вызовов в отладчике.

    В панели Performance добавлен новый трек Interactions для визуализации взаимодействия со страницей и выявления потенциальных проблем с отзывчивостью интерфейса.

Кроме нововведений и исправления ошибок в новой версии устранено 20 уязвимостей. Многие из уязвимостей выявлены в результате автоматизированного тестирования инструментами AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer и AFL. Критических проблем, которые позволяют обойти все уровни защиты браузера и выполнить код в системе за пределами sandbox-окружения, не выявлено. В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google выплатила 16 премий на сумму 38500 долларов США (по одной премии в $9000, $7500, $7000, $5000, $4000, $3000, $2000 и $1000). Размер восьми вознаграждений пока не определён.

  1. OpenNews: Релиз Chrome 105
  2. OpenNews: В Chrome выявлена утечка паролей из полей с предпросмотром скрытого ввода
  3. OpenNews: В Chrome внесено изменение, допускающее запись в буфер обмена без действий пользователя
  4. OpenNews: В Chrome планируют добавить собственное хранилище корневых сертификатов
  5. OpenNews: В Chrome 106 будет прекращена поддержка технологии Server Push
Обсуждение (107 –10) | Тип: Программы |
Следующая страница (раньше) >>



Спонсоры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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