Релиз программы для рисования MyPaint 2.0.0

После четырёх лет разработки опубликована новая версия специализированной программы для цифровой живописи с использованием планшета или мыши — MyPaint 2.0.0. Программа распространяется под лицензией GPLv2, разработка ведётся на языках Python и C++ с использованием тулкита GTK3. Готовые сборки сформированы для Linux (AppImage, Flatpak), Windows и macOS.

MyPaint может использоваться художниками, занимающимися цифровой живописью и в некоторых применениях способен выступить конкурентом общепризнанным проприетарным программам для рисования Corel Painter и Artrage. Программа имеет простой, удобный в работе интерфейс и не позиционируется как графический редактор для обработки изображений. MyPaint имеет большой набор кистей качественно симулирующих настоящие художественные инструменты, такие как карандаш, масляные краски, акварель, мастихин и другие. Одна из интересных особенностей программы — это бесконечный холст, который можно прокручивать и масштабировать.

Основные улучшения:

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

    Так как новые методы не лишены недостатков, таких как снижение производительности, усложнение объединения слоёв и нарушение переносимости, в настройках и диалоге открытия файлов предусмотрен режим обеспечения совместимости с MyPaint 1.x. При выборе данного режима спектральное смешивание отключено и по умолчанию применяются нормальные, а не пигментированные слои, что позволяет открывать файлы, созданные в прошлых выпусках, которые в MyPaint 2 выглядят по иному.

  • Вращение и масштабирование холста, теперь влияет на форму мазков кистями. Новое поведение при штриховке напоминает действие при повороте бумаги перед художником (раньше, штриховка производилась так, словно художник поворачивался вместе с листом). Аналогично изменение уровня масштабирования отражается на параметрах штриховки, как если бы перед художником увеличился лист бумаги.
  • Предложено множество новых параметров кистей (смещение, расширенные параметры смазывания, постеризация, пигмент) и входных характеристик кистей (угол атаки, базовый радиус, уровень масштабирования и т.п.).
  • Предложены дополнительные режимы симметричного рисования: вертикальная, вертикальная + горизонтальная, вращательная, снежинка.
  • Улучшен инструмент заливки, добавлена заливка со смещением, растушевка, выявление зазоров.
  • Обеспечена полная поддержка Python3 и осуществлён переход на использование библиотеки PyGI (PyGObject) вместо PyGTK;

    Источник: [ссылка]

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

Доступен значительный релиз операционной системы NetBSD 9.0, в котором реализована очередная порция новых возможностей. Для загрузки подготовлены установочные образы размером 470 Мб. Релиз NetBSD 9.0 официально доступен в сборках для 57 системных архитектур и 15 различных семейств CPU.

Отдельно выделены 8 первично поддерживаемых портов, составляющих ядро стратегии развития NetBSD: amd64, i386, evbarm, evbmips, evbppc, hpcarm, sparc64 и xen. 49 портов, связанных с такими CPU, как alpha, hppa, m68010, m68k, sh3, sparc и vax, отнесены ко второй категории, т.е. ещё поддерживаются, но уже потеряли актуальность или не имеют достаточного числа заинтересованных в их развитии разработчиков. Один порт (acorn26) включён в третью категорию, в которой размещены неработоспособные порты, претендующие на удаление, если не найдётся заинтересованных в их разработке энтузиастов.

Ключевые улучшения NetBSD 9.0:

  • Добавлен новый гипервизор NVMM, поддерживающий аппаратные механизмы обеспечения виртуализации SVM для CPU AMD и VMX для CPU Intel. Особенностью NVMM является то, что на уровне ядра выполняется только минимально необходимый набор обвязок вокруг аппаратных механизмов виртуализации, а весь код эмуляции оборудования вынесен из ядра в пространство пользователя. Для управления виртуальными машинами подготовлен инструментарий на базе библиотеки libnvmm, а также пакет qemu-nvmm для запуска гостевых систем с использованием NVMM. API libnvmm охватывает такие функции как создание и запуск виртуальной машины, выделение памяти гостевой системе, распределение VCPU. При этом libnvmm не содержит функции эмулятора, а лишь предоставляет API, позволяющий интегрировать поддержку NVMM в существующие эмуляторы, такие как QEMU;
  • Обеспечена поддержка 64-разрядной архитектуры AArch64 (ARMv8-A), включая серверные системы, соответствующие требованиям ARM ServerReady (SBBR+SBSA), и системы big.LITTLE (комбинация в одном чипе мощных, но потребляющих много энергии, ядер, и менее производительных, но более энергоэффективных ядер). Поддерживается выполнение 32-разрядных приложений в 64-разрядном окружении через использование COMPAT_NETBSD32. Возможно использование до 256 CPU. Поддерживается запуск в эмуляторе QEMU и SoC:
    • Allwinner A64, H5, H6
    • Amlogic S905, S805X, S905D, S905W, S905X
    • Broadcom BCM2837
    • NVIDIA Tegra X1 (T210)
    • Rockchip RK3328, RK3399
    • Серверные платы SBSA/SBBR, такие как Amazon Graviton, Graviton2, AMD Opteron A1100, Ampere eMAG 8180, Cavium ThunderX, Marvell ARMADA 8040.
  • Расширена поддержка устройств на базе архитектуры ARMv7-A. Добавлена поддержка систем big.LITTLE и загрузки через UEFI. Возможно использование до 8 CPU. Добавлена поддержка SoC:
    • Allwinner A10, A13, A20, A31, A80, A83T, GR8, H3, R8
    • Amlogic S805
    • Arm Versatile Express V2P-CA15
    • Broadcom BCM2836, BCM2837
    • Intel Cyclone V SoC FPGA
    • NVIDIA Tegra K1 (T124)
    • Samsung Exynos 5422
    • TI AM335x, OMAP3
    • Xilinx Zynq 7000
  • Обновлены графические драйверы для GPU Intel (добавлена поддержка Intel Kabylake), NVIDIA и AMD для систем x86. Подсистема DRM/KMS синхронизирована с ядром Linux 4.4. Добавлены новые драйверы для GPU, применяемые на системах ARM, включая DRM/KMS-драйверы для Allwinner DE2, Rockchip VOP и TI AM335x LCDC, драйвер framebuffer для ARM PrimeCell PL111 и TI OMAP3 DSS;
  • Улучшена поддержка работы NetBSD в качестве гостевой ОС. Добавлена поддержка устройства fw_cfg (QEMU Firmware Configuration), Virtio MMIO и PCI для ARM. Обеспечена поддержка HyperV для x86;
  • Реализованы счётчики для мониторинга производительности, позволяющие на лету анализировать производительность ядра и пользовательских приложений. Управление производится через команду tprof. Поддерживаются платформы Armv7, Armv8, и x86 (AMD и Intel);
  • Для архитектуры x86_64 добавлен механизм рандомизации адресного пространства ядра (KASLR, Kernel Address Space Layout Randomization), который позволяет увеличить стойкость к некоторым видам атак, эксплуатирующих уязвимости в ядре, за счёт формирования случайной раскладки кода ядра в памяти при каждой загрузке;
  • Для архитектуры x86_64 добавлена поддержка KLEAK, техники для выявления утечек памяти ядра, которая позволила найти и исправить более 25 ошибок в ядре;
  • Для архитектур x86_64 и Aarch64 реализован отладочный механизм KASan (Kernel address sanitizer), который позволяет выявлять ошибки работы с памятью, такие как обращения к уже освобождённым блокам памяти и переполнения буферов;
  • Добавлен механизм KUBSAN (Kernel Undefined Behavior Sanitizer) для выявления случаев неопределённого поведения в ядре
  • Для архитектуры x86_64 реализован драйвер KCOV (Kernel Coverage) для анализа покрытия кода ядра;
  • Добавлен Userland Sanitizer для выявления ошибок и аномалий при выполнении приложений в пространстве пользователя;
  • Добавлен механизм KHH (Kernel Heap Hardening) для защиты кучи от некоторых видов ошибок работы с памятью;
  • Проведён аудит безопасности сетевого стека;
  • Улучшен отладочный инструментарий ptrace;
  • Проведена чистка ядра от старых и оставшихся без сопровождения подсистем, таких как NETISDN (драйверы daic, iavc, ifpci, ifritz, iwic, isic), NETNATM, NDIS, SVR3, SVR4, n8, vm86 и ipkdb;
  • Расширены возможности и проведена оптимизация производительности пакетного фильтра NPF, который теперь активирован по умолчанию;
  • Обновлена реализация файловой системы ZFS, которая доведена до состояния, пригодного для повседневного использования. Возможности загрузки с ZFS и использования ZFS на корневом разделе пока не поддерживаются;
  • Добавлены новые драйверы, включая bwfm для беспроводных устройств Broadcom (Full-MAC), ena для Amazon Elastic Network Adapter и mcx для Ethernet-адаптеров Mellanox ConnectX-4 Lx EN, ConnectX-4 EN, ConnectX-5 EN, ConnectX-6 EN;
  • Переработана подсистема SATA, в которой появилась поддержка NCQ и улучшена обработка ошибок, выдаваемых накопителем;
  • Предложен новый фреймворк usbnet для создания драйверов для Ethernet-адаптеров с интерфейсом USB;
  • Обновлены версии сторонних компонентов, включая GCC 7.4, GDB 8.3, LLVM 7.0.0, OpenSSL 1.1.1d, OpenSSH 8.0 и SQLite 3.26.0.

    Источник: [ссылка]

Выпуск свободной системы 3D-моделирования Blender 2.82

Опубликован выпуск свободного пакета 3D-моделирования Blender 2.82, в который вошло более тысячи исправлений и улучшений, подготовленных за три месяца с момента выпуска Blender 2.81.

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

  • Добавлен новый бэкенд для симуляции газа, дыма, огня и жидкости, реализованный на основе фреймворка симуляции физических процессов Mantaflow. Для симуляции жидкости применён новый трёхкомпонентный FLIP Solver;
  • Улучшена симуляция раздутия оболочки воздухом (воздушные шары, надувные матрацы и т.п.), а также отпружинивания мягких тел, слегка деформирующихся при падении или нажатии;
  • Реализована поддержка системы мозаичной UV-развёртки текстур UDIM, позволяющей разделить одну текстуру на несколько файлов, в каждом из которых содержится своя UV-область. UDIM-текстуры могут быть созданы, открыты и сохранены как обычные изображения. Для каждой текстуры произвольным образом могут добавляться или удаляться составные блоки (Tiles), но при просмотре или редактировании все блоки объединяются и отображаются как единое целое. Поддержка UDIM-текстур реализована в движках рендеринга Eevee и Cycles, а также в редакторе изображений и в 3D-представлениях;
  • Добавлен новый модуль экспорта в формате USD (Universal Scene Description), разработанный компанией Pixar. Файлы USD могут описывать сложные раскладки сцен с различными 3D-представлениями, поддерживают недеструктивное редактирование (переопределение вместо замены), могут ссылаться на другие файлы и оптимизированы для совместной работы большого числа участников. В новом выпуске также улучшена поддержка импорта и экспорта glTF и обеспечена совместимость с VFX Reference Platform 2020;
  • В движке рендеринга Cycles реализован механизм подавления шумов OptiX, переданный компанией NVIDIA и использующий методы машинного обучения. Механизм поддерживает аппаратное ускорение на картах NVIDIA RTX, в том числе с возможностью использования нескольких GPU. OptiX быстрее ранее доступных методов подавления шума и может применяться при предпросмотре или финальном рендеринге изображений (для анимации он пока недостаточно стабилен);
  • В Cycles также улучшены шейдерные узлы. Добавлена возможность определения собственных проходов визуализации при помощи нового узла AOV Output, который может помещён в любое место дерева шейдеров. Для геометрических узлов добавлена опция «Random Per Island», позволяющая рандомизировать текстуры или цвета для разных компонентов меша. В узел Math добавлены новые операции trunc, snap, wrap, compare, pingpong, sign, radians, degrees, cosh, sinh, tanh, exp, smoothmin и inversesqrt. В узел Map Range добавлены новые режимы интерполяции Linear, Stepped Linear, Smoothstep и Smootherstep. В узлах Noise и Wave улучшено внесение искажений, которые теперь применяются равномерно во всех направлениях, а не только по диагонали. Значительно ускорен рендеринг на платформе Windows, производительность которой приближена к Linux и macOS;
  • В движок рендеринга Eevee, поддерживающий физически корректный рендеринг в реальном времени и использующий только GPU (OpenGL) для визуализации, добавлена возможность предпросмотра проходов визуализации 3D-представлений во Viewport, позволяющая выбрать, какой проход будет отображён в режиме отрисовки сцены. В настоящее время предпросмотр доступен для проходов визуализации Combined, Ambient Occlusion, Normal, Mist, Subsurface Direct и Subsurface Color;
  • В Eevee также проведена работа по улучшению качества и увеличению производительности проходов визуализации. Обеспечено корректное сочетание прозрачных материалов с эффектами придания объёма;
  • Добавлены новые инструменты и операторы для скульптурного моделирования и рисования, обновлены кисти. Реализован инструмент Slide/relax, позволяющий изменить топологию меша, не искажая объём, а также инструмент Multiplane scrape для формирования острого края между двумя плоскостями меша. Предложен новый оператор Mask Slice для исключения помеченных вершин из меша с заполнением образовавшихся пустот и созданием новых объектов из удалённых вершин;
  • В эскизном карандаше (Grease Pencil) улучшен пользовательский интерфейс, реализованы новые свойства заливки и слоёв, реализован инструмент для создания материалов. Добавлен новый модификатор для создания смежных штрихов рядом с оригинальным;
  • В интерфейсе пользователя во многих инструментах, а также в UV Editor, реализована поддержка гизмо (указатель осей координат для задания угла просмотра сцены или изменения положения объекта на сцене). Добавлена концепция запасных инструментов (Fallback Tools), позволяющая выбрать альтернативное действие во время применения активного инструмента. Изменена группировка настроек кистей. В редакторе анимации (Graph Editor) переработан интерфейс выбора и преобразования ключевых кадров и обработчиков;
  • При включении режима разработчика (Developer Extras) в настройках теперь появляется новая вкладка, позволяющая активировать и протестировать экспериментальные возможности, пока не готовые для повсеместного применения;
  • В средствах моделирования в инструменте и модификаторе скоса (Bevel) появилась возможность использования модифицированных профилей. Добавлен Cutoff Vertex Mesh, упрощённый метод создания мешей для замены вершин. Предложены новые модификаторы Weld для объединения групп вершин, расстояние между которыми не превышает заданного порогового значения, и Solidify для создания толстых краёв при наличии более двух смежных граней;
  • Добавлены новые дополнения Import Palettes, PDT, Add Node Presets, Collection manager, Sun position и Amaranth toolkit. Обновлены дополнения Rigify, Add Mesh Extra objects и BlenderKit.

Источник: [ссылка]

Первый выпуск ОС Trident на базе Void Linux

Представлены первые стабильные сборки дистрибутива Trident 20.02, переведённые с FreeBSD и TrueOS на пакетную базу Void Linux. Размер загрузочного iso-образа 523МБ. Напомним, что в октябре 2019 года проект Trident объявил о миграции на Linux, причиной которой стала невозможность иным способом избавиться от некоторых проблем, ограничивающих пользователей дистрибутива, таких как совместимость с аппаратным обеспечением, поддержка современных коммуникационных стандартов и доступность пакетов.

В сборке используется ZFS на корневом разделе c возможностью отката загрузочного окружения при помощи снапшотов ZFS. Для каждого пользователя создаётся отдельный ZFS dataset для домашнего каталога (можно манипулировать снапшотами домашнего каталога без получения прав root), обеспечено шифрование данных в каталогах пользователей. Возможна работа на системах с EFI и BIOS. Поддерживается шифрование раздела подкачки. Обеспечена поддержка пакетов, собранных как для системной библиотеки glibc, так и для musl.

В инсталляторе предусмотрено четыре уровня установки, отличающихся предложенным набором пакетов:

  • Void — базовый набор пакетов Void плюс пакеты для поддержки ZFS;
  • Server — пакеты для работы в консольном режиме и дополнительные сервисы для серверов (firewall, cron, autofs, wireguard и т.п.);
  • Lite Desktop — минимальный рабочий стол на базе рабочего стола Lumina;
  • Full Desktop — полноценный рабочий стол на базе Lumina с дополнительными офисными, коммуникационными и мультимедийными приложениями.

Благодаря переходу на Void Linux в Trident намерены расширить поддержку графических карт и предоставить пользователям более современные графические драйверы, а также улучшить поддержку звуковых карт, потокового вещания звука, добавить поддержку передачи звука через HDMI, улучшить поддержку беспроводных сетевых адаптеров и устройств с интерфейсом Bluetooth, предложить более свежие версии программ, ускорить процесс загрузки и реализовать поддержку гибридных установок на системах UEFI.

Напомним, что дистрибутив Void Linux придерживается модели непрерывного цикла обновления версий программ (rolling-обновления, без отдельных релизов дистрибутива). Проект применяет для инициализации и управления сервисами системный менеджер runit, использует собственный пакетный менеджер xbps и систему сборки пакетов xbps-src. В качестве стандартной библиотеки вместо Glibc применяется Musl, а вместо OpenSSL — LibreSSL. Развиваемые в Void системы распространяются под лицензией BSD.

Проект Trident развивает готовый к использованию графический пользовательский дистрибутив, напоминающий старые выпуски PC-BSD и TrueOS, который изначально был построен на технологиях FreeBSD и TrueOS, использовал файловую систему ZFS и систему инициализации OpenRC. Проект был основан разработчиками, вовлечёнными в работу над TrueOS, и позиционировался как смежный проект (TrueOS — платформа для создания дистрибутивов, а Trident основанный на этой платформе дистрибутив для конечных потребителей). Из актуальных дистрибутивов на базе TrueOS остаётся проект GhostBSD, предлагающий рабочий стол MATE. Как и в Trident в GhostBSD по умолчанию применяется система инициализации OpenRC и файловая система ZFS, но дополнительно поддерживается работа в Live-режиме.

Источник: [ссылка]

Из Chrome Web Store удалено более 500 вредоносных дополнений

Подведены итоги блокирования серии вредоносных дополнений к браузеру Chrome, жертвами которых стало несколько миллионов пользователей. На первом этапе независимый исследователь Джамиля Кайя (Jamila Kaya) и компания Duo Security выявили в каталоге Chrome Web Store 71 вредоносное дополнение. В сумме указанные дополнения насчитывали более 1.7 млн установок. После информирования Google о проблеме, в каталоге было обнаружено ещё более 430 подобных дополнений, число установок которых не сообщается.

Примечательно, что несмотря на внушительное число установок, ни у одного из проблемных дополнений нет отзывов пользователей, что наводит на вопросы о том, каким образом были установлены дополнения и как вредоносная активность оставалась незамеченной. В настоящее время все проблемные дополнения удалены из Chrome Web Store. По мнению исследователей, связанная с заблокированными дополнениями вредоносная деятельность ведётся с января 2019 года, но отдельные домены, применявшиеся для выполнения вредоносных действий, были зарегистрированы ещё в 2017 году.

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

Во всех дополнениях использовалась однотипная техника для скрытия вредоносной активности и обхода механизмов верификации дополнений в Chrome Web Store. Код всех дополнений был практически идентичен на уровне исходных текстов, за исключением имён функций, которые в каждом дополнении были уникальны. Передача вредоносной логики осуществлялась с централизованных управляющих серверов. Вначале дополнение подключалось к домену, имеющему такое же имя как и название дополнения (например, Mapstrek.com), после чего перенаправлялось на один из управляющих серверов, отдававших сценарий дальнейших действий.

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

Источник: [ссылка]

Релиз OpenSSH 8.2 c поддержкой токенов двухфакторной аутентификации FIDO/U2F

После четырёх месяцев разработки представлен релиз OpenSSH 8.2, открытой реализации клиента и сервера для работы по протоколам SSH 2.0 и SFTP.

Ключевым улучшением в выпуске OpenSSH 8.2 стала возможность использования двухфакторной аутентификации при помощи устройств, поддерживающих протокол U2F, развиваемый альянсом FIDO. U2F позволяет создавать недорогие аппаратные токены для подтверждения физического присутствия пользователя, взаимодействие с которыми производится через USB, Bluetooth или NFC. Подобные устройства продвигаются в качестве средства для двухфакторной аутентификации на сайтах, уже поддерживаются основными браузерами и выпускаются различными производителями, включая Yubico, Feitian, Thetis и Kensington.

Для взаимодействия с устройствами, подтверждающими присутствие пользователя, в OpenSSH добавлены новые типы ключей «ecdsa-sk» и «ed25519-sk», в которых используются алгоритмы цифровой подписи ECDSA и Ed25519, в сочетании с хэшем SHA-256. Процедуры взаимодействия с токенами вынесены в промежуточную библиотеку, которая загружается по аналогии с библиотекой для поддержки PKCS#11 и является обвязкой над библиотекой libfido2, предоставляющей средства для коммуникации с токенами поверх USB (поддерживается протоколы FIDO U2F/CTAP 1 и FIDO 2.0/CTAP 2). Подготовленная разработчиками OpenSSH промежуточная библиотека libsk-libfido2 включена в основной состав libfido2, как и HID-драйвер для OpenBSD.

Для аутентификации и генерации ключа необходимо указать в настройках параметр «SecurityKeyProvider» или выставить переменную окружения SSH_SK_PROVIDER, указав путь к внешней библиотеке libsk-libfido2.so (export SSH_SK_PROVIDER=/path/to/libsk-libfido2.so). Возможна сборка openssh со встроенной поддержкой библиотеки-прослойки (—with-security-key-builtin), в этом случае необходимо выставить параметр «SecurityKeyProvider=internal». Далее нужно запустить «ssh-keygen -t ecdsa-sk» или, если ключи уже созданы и настроены, подключиться к серверу при помощи «ssh». При запуске ssh-keygen созданная пара ключей будет сохранена в «~/.ssh/id_ecdsa_sk» и может использоваться аналогично другим ключам.

Открытый ключ (id_ecdsa_sk.pub) следует скопировать на сервер в файл authorized_keys. На стороне сервера только проверяется цифровая подпись, а взаимодействие с токенами производится на стороне клиента (на сервере не нужно устанавливать libsk-libfido2, но сервер должен поддерживать тип ключей «ecdsa-sk»). Сгенерированный закрытый ключ (id_ecdsa_sk) по сути является дескриптором ключа, образующим реальный ключ только в сочетании с секретной последовательностью, хранимой на стороне токена U2F. В случае попадания ключа id_ecdsa_sk в руки атакующего, для прохождения аутентификации ему также потребуется получить доступ к аппаратному токену, без которого сохранённый в файле id_ecdsa_sk закрытый ключ бесполезен.

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

В новой версии OpenSSH также объявлено о предстоящем переводе в разряд устаревших алгоритмов, использующих хеши SHA-1, в связи с повышением эффективности коллизионных атак с заданным префиксом (стоимость подбора коллизии оценивается примерно в 45 тысяч долларов). В одном из ближайших выпусков планируют отключить по умолчанию возможность использования алгоритма цифровых подписей по открытому ключу «ssh-rsa», который упоминается в оригинальном RFC для протокола SSH и остаётся широко распространённым на практике (для проверки применения ssh-rsa в своих системах можно попробовать подключиться по ssh с опцией «-oHostKeyAlgorithms=-ssh-rsa»).

Для сглаживания перехода на новые алгоритмы в OpenSSH в одном из следующих выпусков по умолчанию будет включена настройка UpdateHostKeys, которая позволит автоматически перевести клиентов на более надёжные алгоритмы. Среди рекомендуемых для миграции алгоритмов упомянуты rsa-sha2-256/512 на базе RFC8332 RSA SHA-2 (поддерживается с OpenSSH 7.2 и используется по умолчанию), ssh-ed25519 (поддерживается с OpenSSH 6.5) и ecdsa-sha2-nistp256/384/521 на базе RFC5656 ECDSA (поддерживается с OpenSSH 5.7).

В версии OpenSSH 8.2 возможность подключения с использованием «ssh-rsa» пока оставлена, но данный алгоритм удалён из списка CASignatureAlgorithms, определяющего алгоритмы, допустимые для цифровой подписи новых сертификатов. Аналогично из поддерживаемых по умолчанию алгритмов обмена ключами удалён алгоритм diffie-hellman-group14-sha1. Отмечается, что использование SHA-1 в сертификатах сопряжено с дополнительным риском, так как атакующий имеет неограниченное время на поиск коллизии для существующего сертификата, в то время как время атаки на хостовые ключи ограничены таймаутом подключения (LoginGraceTime).

При выполнении ssh-keygen теперь по умолчанию применяется алгоритм rsa-sha2-512, который поддерживается начиная с OpenSSH 7.2, что может создать проблемы с совместимостью при попытке обработки сертификатов, заверенных в OpenSSH 8.2, на системах со старыми выпусками OpenSSH (для обхода проблемы при формировании подписи можно явно указать «ssh-keygen -t ssh-rsa» или использовать алгоритмы ecdsa-sha2-nistp256/384/521, поддерживаемые с OpenSSH 5.7).

Другие изменения:

  • В sshd_config добавлена директива Include, позволяющая включать содержимое других файлов в текущую позицию файла конфигурации (при задании имени файла допускается применение glob-масок);
  • В ssh-keygen добавлена опция «no-touch-required», отключающая необходимость физического подтверждения доступа к токену при генерации ключа;
  • В sshd_config добавлена директива PubkeyAuthOptions, объединяющая разные опции, связанные с аутентификацией по открытым ключам. В настоящее время поддерживается только флаг «no-touch-required» для пропуска проверки физического присутствия при авторизации при помощи токена. По аналогии в файл authorized_keys добавлена опция «no-touch-required»;
  • В ssh-keygen добавлена опция «-O write-attestation=/path», позволяющая записать дополнительные аттестационные сертификаты FIDO при генерации ключей. OpenSSH пока не использует данные сертификаты, но они в дальнейшем могут быть использованы для проверки размещения ключа в заслуживающем доверия аппаратном хранилище;
  • В настройках ssh и sshd через директиву IPQoS теперь возможна установка режима приоритезации трафика LE DSCP (Lower-Effort Per-Hop Behavior);
  • В ssh при установке значения «AddKeysToAgent=yes», если ключ не содержит поля с комментарием, он будет добавлен в ssh-agent c указанием в качестве комментария пути к ключу. В ssh-keygen и ssh-agent в качестве комментариев в ключу также теперь используются метки PKCS#11 и имя субъекта X.509 вместо пути к библиотеке;
  • В ssh-keygen добавлена возможность экспорта PEM для ключей DSA и ECDSA;
  • Добавлен новый исполняемый файл ssh-sk-helper, используемый для изоляции библиотеки доступа к токенам FIDO/U2F;
  • В ssh и sshd добавлена сборочная опция «—with-zlib» для компиляции с поддержкой библиотеки zlib;
  • В соответствии с требованием RFC4253 в выводимом при подключении баннере обеспечен показ предупреждения о блокировке доступа из-за превышения лимитов MaxStartups. Для упрощения диагностики в заголовке процесса sshd, видимом при использовании утилиты ps, обеспечено отображение числа аутентифицированных в данный момент соединений и состояние лимита MaxStartups;
  • В ssh и ssh-agent при вызове программы для вывода на экран приглашения, задаваемой через $SSH_ASKPASS, теперь дополнительно передаётся флаг с типом приглашения: «confirm» — диалог подтверждения (yes/no), «none» — информационное сообщение, «blank» — запрос пароля;
  • В ssh-keygen добавлена новая операция с цифровыми подписями «find-principals» для поиска в файле allowed-signers пользователя, связанного с указанной цифровой подписью;
  • Улучшена поддержка изоляции процесса sshd в Linux при помощи механизма seccomp: запрещены системные вызовы IPC, разрешены clock_gettime64(), clock_nanosleep_time64 и clock_nanosleep().

Источник: [ссылка]

Google опубликовал новый вариант системы распределения памяти TCMalloc

Компания Google представила новый вариант системы распределения памяти TCMalloc, которая используется во многих внутренних проектах Google. Код TCMalloc написан на С++ и распространяется под лицензией Apache. Для работы требуется наличие компилятора с поддержкой C++17 для языка C++, и C11 для языка Си (gcc 9.2+ или clang 9.0+). Из операционных систем поддерживается только Linux (x86, PPC).

Примечательно, что с 2005 года существует ещё один вариант tcmalloc, который поставлялся в составе пакета gperftools (Google Performance Tools). Это два разных проекта, имеющих общие корни. Новый TCMalloc является скорее попыткой открыть код актуальных внутренних наработок Google, но он пока не нацелен на предоставление стабильного ABI и поддержку широкого спектра операционных систем. Сопровождение старого tcmalloc из gperftools будет продолжено, но новые возможности, такие как привязка кеша к CPU, в него переносить не планируется.

TCMalloc включает реализацию Си-функции malloc() и С++ оператора «new», оптимизированных для достижения высокой производительности и применения в многопоточных приложениях. TCMalloc также предоставляет возможности интроспекции и профилирования, позволяющие приложению получить подробные сведения об использовании памяти в куче. В коде применяются оптимизации на основе современных возможностей языка C++, таких как оператор delete с указанием размера из C++14 и выделение памяти с выравниванием из C++17.

TCMalloc состоит из трёх компонентов: фронтэнда с кешем для быстрого выделения и освобождения памяти, прослойки для наполнения кеша фронтэнда и бэкенда, выполняющего такие операции, как получение памяти от операционной системы, управления большими кусками неиспользованной памяти и возвращение лишней памяти обратно в ОС. Кеш избавлен от блокировок и работает в привязке к ядрам CPU, но откатывается на модель кеширования в привязке к потокам в случае отсутствия необходимой функциональности в ядре ОС (привязка кеша к CPU работает только в свежих ядрах Linux). Бэкенд поддерживает работу как с обычными страницами памяти, так и со страницами увеличенного размера (hugepage).

Основные особенности TCMalloc:

  • Быстрое выделение и освобождение памяти с использованием кеширования. Большинство операций выделения памяти не требуют блокировки, что обеспечивает хорошую масштабируемость для многопоточных приложений с высоким параллелизмом выполнения работ;
  • Гибкое использование памяти, позволяющее повторно использовать освобождённые области памяти для объёктов различного размера или возвращать память операционной системе;
  • Низкие накладные расходы на каждый объект за счёт выделения страниц объектов одинакового размера и эффективное по представление мелких объектов. Поддерживаются логичкеские страницы, размером 4KiB, 8KiB, 32KiB и 256KiB. Например, при запросе блоков в 512 байт памяти, будет выделена целая страница 4KiB под 512 байтовые объекты, в которой сможет уместиться 8 таких объектов;
  • Возможна тонкая настройка через определения размера кеша и параметров интенсивности возвращения памяти в ОС;
  • Предоставление детальной информации для анализа использования памяти приложением.

Источник: [ссылка]

Выпуск децентрализованной видеовещательной платформы PeerTube 2.1

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

PeerTube базируется на применении BitTorrent-клиента WebTorrent, запускаемого в браузере и использующего технологию WebRTC для организации прямого P2P-канала связи между браузерами, и протокола ActivityPub, позволяющего объединить разрозненные серверы с видео в общую федеративную сеть, в которой посетители участвуют в доставке контента и имеют возможность подписки на каналы и получения уведомлений о новых видео. Предоставляемый проектом web-интерфейс построен с использованием фреймворка Angular.

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

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

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

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

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

  • Учтены пожелания пользователей по улучшению интерфейса. Добавлены анимационные эффекты при начале и остановке воспроизведения видео, чтобы была обратная связь о совершении действия. Переработаны пиктограммы и кнопки на странице просмотра видео. Для авторизированных пользователей при наведении мыши на эскиз видео теперь появляется пиктограмма с часами для добавления видео в список отложенного просмотра (Watch Later);
  • Переработана страница «About» с презентацией проекта, на которой предложен быстрый доступ к документации и дополнительным приложениям. Существенно дополнена документация, предложено много новых руководств по настройке и диагностике проблем;
  • Расширены возможности по обсуждению видеороликов. Предложена новая компоновка комментариев, в которой наглядно отделены исходные комментарии и ответы на них. Улучшено отображение аватаров и сделаны более читаемыми имена пользователей. Обеспечено выделение ответов, отправленных автором обсуждаемого видео. Реализовано два режима просмотра с сортировкой по времени отправки комментария и по числу ответов. Появилась возможность использования разметки Markdown в тексте. Добавлены опции для скрытия сообщений от определённого участника или узла;
  • Добавлен новый приватный режим «видео для внутреннего использования», позволяющий опубликовать видео только для пользователей, присоединённых к текущему серверу, на который изначально загружено видео. Указанный режим можно применять для организации доступа к конфиденциальным видео только определённых групп пользователей, таких как друзья, члены семьи или коллеги по работе;
  • Реализована автоматическая генерация гиперссылок на определённый момент в видео при упоминании времени (mm:ss или h:mm:ss) в описании или комментариях;
  • Подготовлена JavaScript-библиотека с API управления встраиванием видео на страницы;
  • Добавлена возможность генерации потокового видео HLS (HTTP Live Streaming), используя скрипт create-transcoding-job. В том числе имеется возможность отключить WebTorrent и использовать только HLS;
  • Добавлена поддержка видео в формате m4v;
  • Запущена инфраструктура для совместного перевода интерфейса на разные языки с использованием сервиса Weblate.

Источник: [ссылка]

Выпуск Ubuntu 18.04.4 LTS c обновлением графического стека и ядра Linux

Представлено обновление дистрибутива Ubuntu 18.04.4 LTS, в которое включены изменения, связанные с улучшением поддержки оборудования, обновлением ядра Linux и графического стека, исправлением ошибок в инсталляторе и загрузчике. В состав также включены актуальные обновления для нескольких сотен пакетов, связанные с устранением уязвимостей и проблем, влияющих на стабильность. Одновременно представлены аналогичные обновления Kubuntu 18.04.4 LTS, Ubuntu Budgie 18.04.4 LTS, Ubuntu MATE 18.04.4 LTS, Lubuntu 18.04.4 LTS, Ubuntu Kylin 18.04.4 LTS и Xubuntu 18.04.4 LTS.

В состав выпуска вошли некоторые улучшения, бэкпортированные из выпуска Ubuntu 19.10:

  • Предложено обновление пакетов с ядром 5.3 (в Ubuntu 18.04 использовалось ядро 4.15, а в Ubuntu 18.04.2 — 4.18, в Ubuntu 18.04.3 — 5.0);
  • Обновлены компоненты графического стека, включая новые выпуски Mesa 19.2, X.Org Server 1.20.5 и libdrm 2.44.99, которые были протестированы в Ubuntu 19.10. Добавлены свежие версии видеодрайверов для чипов Intel, AMD и NVIDIA (в том числе предложен проприетарный драйвер NVIDIA 435);
  • Обновлены версии пакетов OpenJDK 11 (OpenJDK 8 перемещён в репозиторий universe), OpenSSL 1.1.1 (OpenSSL 1.0.2n оставлен в качестве опции), thunderbird 68.2.2, dpdk 17.11.6, snapd 2.42, cloud-init 19.4.33, open-vm-tools 11.0, openvswitch 2.9.5;
  • В состав добавлен сервис finalrd, позволяющий сгенерировать содержимое каталога /run/initramfs, который будет использован в systemd-shutdown на стадии завершения работы системы, когда уже отмонтирован корневой раздел;
  • В shiftfs, виртуальной ФС для сопоставления точек монтирования с пространствами имён пользователей (user namespace), добавлена поддержка режима прямого ввода/вывода (O_DIRECT, работа без буферизации и в обход кэша);
  • В утилиту snap-tool добавлена поддержка повторения попыток загрузки в случае сбоя;
  • Добавлен пакет wslu с настройками и утилитами для интеграции Ubuntu c окружением WSL (Windows Subsystem for Linux);
  • В gnome-software обновлены категории приложений, доступных через каталог пакетов в формате snap;
  • Из списка рекомендованных приложений удалён пакет ubuntu-web-launchers;
  • В Thunderbird для обмена файлами в режиме FileLink, при котором вложение сохраняется во внешних сервисах с передачей в составе письма лишь ссылки на внешнее хранилище, задействован по умолчанию сервис WeTransfer.

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

Напомним, что для поставки новых версий ядра и графического стека применяется rolling-модель поддержки обновлений, в соответствии с которой бэкпортированные ядра и драйверы будут поддерживаться только до выхода следующего корректирующего обновления LTS-ветки Ubuntu. Например, предложенное в текущем выпуске ядро Linux 5.3 будет поддерживаться до выхода Ubuntu 18.04.5, в котором будет предложено ядро из состава Ubuntu 20.04. Изначально поставляемое базовое ядро 4.15 будет поддерживаться в течение всего цикла сопровождения. Сопровождение LTS-выпуска Ubuntu 18.04 продлится до апреля 2023 года, после чего ещё 5 лет будут формироваться обновления в рамках отдельной платной поддержки (ESM, Extended Security Maintenance).

Для перевода уже существующих установок на новые версии ядра и графического стека следует выполнить команду:

     sudo apt-get install --install-recommends linux-generic-hwe-18.04 xserver-xorg-hwe-18.04   

Источник: [ссылка]

Уязвимость в модификациях ядра, сделанных Samsung для повышения безопасности Android

Исследователи безопасности из группы Zero, созданной компанией Google для предотвращения атак, совершаемых с использованием ранее неизвестных уязвимостей, выявили уязвимость в используемом компанией Samsung модифицированном варианте ядра Linux, применяемом в Android-прошивке смартфонов Galaxy A50. Проблема позволяет добиться перезаписи других данных в памяти и может использоваться для повышения своих привилегий и получения полного контроля за устройством.

Примечательно, что уязвимость вызвана ошибкой в подсистеме PROCA (Process Authenticator), разработанной Samsung для повышения защищённости платформы Android. PROCA обеспечивает отслеживание подлинности процессов и их соответствие изначально запущенным исполняемым файлам. Проверка осуществляется на основе цифровой подписи, хранящейся в расширенных атрибутах файла.

Из-за логической ошибки не исключена ситуация, когда аутентифицированный процесс завершился, а с тем же PID создан другой процесс, и PROCA посчитает этот процесс аутентифицированным. Более того, в случае несоответствия отслеживаемого и реального состояний процесса возможно возникновение состояния гонки (race condition), при котором создаются условия для перезаписи других структур в памяти (исходный буфер в ядре оказывается освобождённым и на его месте находятся уже другие данные).

Исследователи смогли подготовить прототип эксплоита, способного читать и записывать любые данные в памяти ядра. Несмотря на включение в ядре Samsung механизмов защиты от эксплуатации уязвимостей, таких как CONFIG_RKP_KDP, полученная возможность чтения и записи может быть использована для извлечения конфиденциальных данных из кэша ФС. Например, в прототипе эксполоита продемонстрировано определение содержимого БД учётных записей /data/system_ce/0/accounts_ce.db, включающей токены аутентификации.

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

Источник: [ссылка]

Доступен Wayland 1.18

Состоялся стабильный релиз протокола, механизма межпроцессного взаимодействия и библиотек Wayland 1.18. Ветка 1.18 обратно совместима на уровне API и ABI с выпусками 1.x, но дополнительно содержит порцию улучшений. Композитный сервер Weston 8.0, в рамках которого развивается кодовая база и рабочие примеры для использования Wayland в десктоп-окружениях и встраиваемых решениях, был опубликован в конце января.

Основные улучшения в Wayland 1.18:

  • Добавлена поддержка сборочной системы Meson. Возможность сборки при помощи autotools пока сохранена, но будет удалена в одном из будущих выпусков;
  • Добавлен API для разделения прокси-объектов на основе тегов, дающий возможность приложениям и тулкитам совместно использовать одно Wayland-соединение;
  • Обеспечено отслеживание таймеров сервера wayland в пространстве пользователя, что позволило исключить создание слишком большого числа файловых дескрипторов;
  • Добавлена функция wl_global_remove(), отправляющая событие удаления глобального объекта без его очистки. Новая функция позволяет исключить возникновение состояния гонки (race conditions) при удалении глобальных объектов. Подобные состояния гонки могли возникать так как клиенты не имели возможности подтвердить получение события удаления. Функция wl_global_remove() даёт возможность вначале отправить событие удаления и лишь после определённой задержки очистить объект.

Статус поддержки Wayland в приложениях, окружениях рабочего стола и дистрибутивах:

  • В Fedora обеспечена поставка по умолчанию сборки Firefox на базе Wayland. Решены проблемы с использованием проприетарных бинарных драйверов NVIDIA с Wayland. Реализована экспериментальная возможность автоматического запуска XWayland при попытке выполнения приложения на базе протокола X11. В Wayland-окружении добавлена возможность запуска X11-приложений с правами root под управлением XWayland. В SDL для Wayland решены проблемы с масштабированием при запуске старых игр, работающих в низких разрешениях экрана. Библиотека Qt для использования в окружении GNOME собрана по умолчанию с поддержкой Wayland;
  • В Red Hat Enterprise Linux 8 качестве рабочего стола предложен GNOME с применением по умолчанию дисплейного сервера на базе Wayland;
  • В предварительном выпуске GTK 4 в GDK продолжено внедрение API, разработанных с оглядкой на использование протокола Wayland. В GDK-бэкенд для Wayland добавлена поддержка portal-интерфейса для доступа к настройкам GtkSettings, а для работы с методами ввода предложена поддержка расширения протокола text-input-unstable-v3;
  • Запущен проект по избавлению GNOME от ошибок и недоработок, проявляющихся при работе поверх Wayland;
  • В XWayland добавлен GLX-обработчик на базе программного интерфейса EGL, который позволит исключить применение программного растеризатора swrast;
  • В числе целей разработки KDE на ближайшие два года упомянут перевод KDE на Wayland. Окружение KDE, работающее поверх Wayland, планируется сделать первичным, а окружение на базе X11 перевести в разряд опций и необязательных зависимостей. За отчётный период в KDE реализована поддержка дробного масштабирования при работе поверх Wayland. Cеанс KDE на базе Wayland адаптирован к работе с проприетарными драйверами NVIDIA. Появилась возможность перетаскивания в режиме drag&drop окон приложений, использующих XWayland и Wayland. В KWin обеспечена корректная прокрутка колесом мыши в окружении на базе Wayland;
  • В GNOME добавлена возможность автоматизировать запуск XWayland при попытке выполнения приложения на базе протокола X11 (ранее XWayland должен был выполняться постоянно);
  • Стартовала работа по портированию приложений пользовательского окружения MATE для Wayland. В MATE 1.24 для Wayland адаптирован просмотрщик изображений Eye of MATE и улучшена поддержка Wayland в панели MATE;
  • В Qt Wayland Compositor обеспечена поддержка протоколов linux-dmabuf-unstable-v1 и wp_viewporter. В компонентах платформы Qt для Wayland добавлена поддержка протокола fullscreen-shell-unstable-v1;
  • Опубликован Waypipe — прокси для протокола Wayland, позволяющий запускать приложения на другом хосте;
  • В пользовательском окружении Enlightenment 0.23 значительно улучшена поддержка работы под управлением Wayland;
  • Для Firefox реализован новый бэкенд для Wayland, использующий механизм DMABUF для отрисовки в текстуры;
  • В Ubuntu в окружении на базе Wayland обеспечена возможность запуска X11-приложений с правами root под управлением Xwayland;
  • Подготовлен набор патчей Wine-wayland и драйвер winewayland.drv, которые позволяют использовать Wine в окружениях на базе протокола Wayland, без применения XWayland и компонентов, связанных с X11;
  • Продолжается развитие Mir как композитного сервера для Wayland. В средствах для обеспечения запуска Wayland-приложений в окружении Mir увеличено число поддерживаемых расширений протокола Wayland. Проведена оптимизация производительности кода, связанного с Wayland, и добавлена новая графическая платформа «wayland», позволяющая запускать Mir в качестве клиента под управлением другого композитного сервера Wayland. Предложена экспериментальная поддержка динамического запуска X11-приложений в окружении на базе Wayland.
  • Сформированы новые выпуски пользовательского окружения Sway, использующего Wayland;

  • Дистрибутив Lubuntu наметил переход на Wayland на 2020 год. Поддержку Wayland планируется реализовать через портирование оконного менеджера Openbox на использование дисплейного сервера Mir, применяемого в качестве композитного сервера для Wayland;
  • Развивается Cage, композитный сервер на базе Wayland для запуска отдельных приложений в режиме киоска;
  • Продолжается работа над выпуском пользовательского окружения LXQt 1.0.0, главной задачей при разработке которого является доведение до полной готовности возможности работы поверх Wayland;
  • Система вывода в механизме для запуска виртуальных машин с Linux в ChromeOS предоставляет встроенную поддержку Wayland-клиентов (virtio-wayland) с выполнением композитного сервера на стороне основного хоста и возможностью эффективного использования GPU из гостевых систем;
  • Для FreeBSD развиваются порты, необходимые для сборки KDE с поддержкой Wayland;
  • В ОС DragonFly BSD развивается порт с Wayland и Weston, имеется поддержка XWayland;
  • Использующие Wayland пользовательские окружения papyros-shell и Hawaii объединились в новый проект Liri. Liri базируется на Qt 5 (QML) и продвигает оформление в стиле Material Design;
  • Wayland задействован по умолчанию в мобильных платформах Plasma Mobile, Sailfish 2, webOS Open Source Edition, Tizen и AsteroidOS;
  • В мультимедийном центре Kodi представлена поддержка Wayland;
  • В панелях Latte Dock и Cairo-Dock реализована поддержка Wayland;
  • Для тестирования работы GNOME, KDE и Enlightenment, Hawai и Orbital поверх Wayland выпускается специальный Live-дистрибутив Rebecca Black Linux.

Напомним, что Wayland представляет собой протокол взаимодействия композитного сервера и работающих с ним приложений. Клиенты самостоятельно выполняют отрисовку своих окон в отдельном буфере, передавая информацию об обновлениях композитному серверу, который комбинирует содержимое буферов отдельных приложений для формирования итогового вывода с учётом возможных нюансов, таких как перекрытие окон и прозрачность. Иными словами, композитный сервер не предоставляет API для отрисовки отдельных элементов, а оперирует только с уже сформированными окнами, что позволяет избавиться от двойной буферизации при использовании высокоуровневых библиотек, таких как GTK+ и Qt, берущих на себя работу по компоновке содержимого окон. В настоящее время поддержка прямой работы c Wayland уже реализована для библиотек GTK3+, Qt 5, SDL (начиная с выпуска 2.0.2), Clutter и EFL (Enlightenment Foundation Library). Начиная с Qt 5.4 в состав включён модуль QtWayland с реализацией компонентов для работы Qt-приложений в окружении композитного сервера Weston, развиваемого проектом Wayland.

Взаимодействие с аппаратным обеспечением в Wayland/Weston, например, проведение инициализации, переключение видеорежимов (drm modesetting) и управление памятью (GEM для i915 и TTM для radeon и nouveau) графических карт, может производиться напрямую через модуль, работающий на уровне ядра, что позволяет обойтись без привилегий суперпользователя. Композитный сервер Weston может работать не только с использованием DRM-модуля ядра Linux, но и поверх X11, другого композитного сервера Wayland, фреймбуфера и RDP. Кроме того, развиваются проекты по обеспечению работы поверх графического стека платформы Android.

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

Для обеспечения выполнения обычных X11-приложений в окружении на базе Wayland используется DDX-компонент XWayland (Device-Dependent X), похожий по организации работы на Xwin и Xquartz для платформ Win32 и OS X. Поддержку запуска X11-приложений планируется встроить непосредственно в композитный сервер Weston, который при попытке выполнения X11-приложения будет инициировать запуск X-сервера и связанных с ним компонентов XWayland. При таком подходе процесс запуска X11-приложений будет бесшовным и неотличимым для пользователя от запуска приложений, работающих напрямую с Wayland.

Источник: [ссылка]

Релиз Firefox 73

Состоялся релиз web-браузера Firefox 73, а также мобильной версии Firefox 68.5 для платформы Android. Кроме того, сформировано обновление ветки с длительным сроком поддержки 68.5.0. В ближайшее время на стадию бета-тестирования перейдёт ветка Firefox 74, релиз которой намечен на 10 марта (проект перешёл на 4-недельный цикл разработки).

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

  • В режиме обращения к DNS поверх HTTPS (DoH, DNS over HTTPS) добавлена поддержка сервиса NextDNS, помимо ранее предлагавшегося DNS-сервера CloudFlare («https://1.1.1.1/dns-query»). Активировать DoH и выбрать провайдера можно в настройках сетевого соединения.
  • Реализован первый этап прекращения поддержки дополнений, устанавливаемых обходным путём. Изменение касается только установки дополнений в общие каталоги (/usr/lib/mozilla/extensions/, /usr/share/mozilla/extensions/ или ~/.mozilla/extensions/), обрабатываемые всеми экземплярами Firefox в системе (без привязки к пользователю). Подобный метод обычно применяется для предустановки дополнений в дистрибутивах, для непрошенной подстановки вместе со сторонними приложениями, для интеграции вредоносных дополнений или для обособленной поставки дополнения со своим инсталлятором. В Firefox 73 подобные дополнения продолжат работать, но будут перенесены из общего каталога в индивидуальные профили пользователей, т.е. будут преобразованы в формат, применяемый при установке через менеджер дополнений.
  • Реализована возможность установки глобального базового уровня масштабирования, применяемого ко всем страницам, а не привязываемого к отдельным сайтам. Изменить общий масштаб можно в настройках (about:preferences) в секции «Language and Appearance». В настойках также появилась опция, позволяющая применять масштабирование только для текста, не касаясь изображений.
  • Диалог с предложением сохранения логинов теперь выводится только если было изменено значение логина в поле ввода.
  • На системах с проприетарными драйверами NVIDIA новее выпуска 432 и разрешением экрана меньше 1920×1200 включена система композитинга WebRender. Ранее WebRender включался только для GPU NVIDIA c драйвером Nouveau, а также для GPU AMD и Intel. Cистема композитинга WebRender написана на языке Rust и выносит на сторону GPU операции отрисовки содержимого страницы.
  • Добавлена возможность использования концепции «Site Specific Browser» (SSB) для работы с web-приложением как с обычной настольной программой. В режиме SSB скрываются меню, адресная строка и прочие элементы интерфейса браузера, а в текущем окне допускается только открытие ссылок на страницы текущего сайта (внешние ссылки открываются в отдельном окне браузера). В отличие от уже имеющегося режима киоска, работа осуществляется не в полноэкранном режиме, а в обычном окне, но без специфичных для Firefox элементов интерфейса. Для открытия ссылки в режиме SSB предложен флаг командной строки «—ssb», который можно применять при создании ярлыков для web-приложений. Режим также можно вызвать кнопкой «Launch Site Specific Browser», размещённой в меню действий со страницей (многоточие справа от адресной строки). По умолчанию режим неактивен и требует включения через указание «browser.ssb.enabled = true» в about:config.
  • В режиме высококонтрастного отображения, предназначенного для людей с ослабленным зрением или нарушенным восприятием цветов, появилась поддержка фоновых изображений. Для сохранения читаемости и обеспечения должного уровня контраста видимый текст отделяется отдельным фоном, в котором используется цвет активной темы оформления.
  • Повышено качество звука при повышении или понижении скорости воспроизведения;
  • Улучшено автоопределение старых текстовых кодировок на страницах, на которых явно не указана информация о кодировке.
  • В строке поиска в web-консоли появилась возможность фильтрации по отсутствующему ключу через указание символа «-» перед маской или регулярным выражением. Например, поисковый запрос «-img» выведет все элементы, в которых отсутствует строка «img», а «-/(cool|rad)/» покажет элементы, не соответствующие регулярному выражению «/(cool|rad)/».
  • Добавлены новые CSS-свойства overscroll-behavior-inline и overscroll-behavior-block для управления поведением прокруткой при достижении логической границы области прокрутки.
  • В SVG добавлена поддержка свойств letter-spacing и word-spacing.
  • В HTMLFormElement добавлен метод requestSubmit(), который инициирует программную отправку данных формы по аналогии с кликом на кнопку отправки данных. Функция может применяться при разработке собственных кнопок отправки формы, для которых вызова form.submit() недостаточно из-за того, что он не приводит к интерактивной проверке параметров, генерации события ‘submit’ и передаче данных, привязанных к кнопке отправки.
  • Свойства innerWidth и innerHeight объектов Window теперь всегда возвращает фактическую заданную ширину и высоту области (Viewport Layout), а не размер видимой части (Visual Viewport).
  • Проведена оптимизация производительности инструментов для web-разработчиков. Снижена нагрузка при сборе статистики для панели мониторинга сетевой активности. В отладчике JavaScript и web-консоли ускорена загрузка больших скриптов с привязкой к их изначальным исходным текстам (source-mapped).
  • В web-консоли проблемы с выходом за пределы области текущего домена (CORS, Cross-Origin Resource Sharing) теперь отображаются как ошибки, а не предупреждения. Для автодополнения в консоли стали доступны переменные, определяемые в выражениях.
  • В инструментах для web-разработчиках в разделе инспектирвоания сети обеспечено декодирование сообщений (JSON, MsgPack и CBOR) в формате WAMP (WebSocket Web Application Messaging Protocol), передаваемых через соединение WebSocket.

Кроме новшеств и исправления ошибок в Firefox 73 устранено 15 уязвимостей, из которых 11 (собраны под CVE-2020-6800 и CVE-2020-6801) помечены как потенциально способные привести к выполнению кода злоумышленника при открытии специально оформленных страниц. Напомним, что проблемы с памятью, такие как переполнения буферов и обращение к уже освобождённым областям памяти, с недавних пор помечаются как опасные, но не критические.

Источник: [ссылка]