The OpenNET Project / Index page

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

·03.12.2022 Релиз программы для обработки фотографий RawTherapee 5.9 (32 +8)
  После почти трёх лет разработки опубликован релиз программы RawTherapee 5.9, предоставляющей средства для редактирования фотографий и преобразования изображений в формате RAW. Программа поддерживает большое количество RAW-форматов файлов, в том числе, камер с датчиками Foveon- и X-Trans, а также может работать со стандартом Adobe DNG и с форматами JPEG, PNG и TIFF (до 32 бит на канал). Код проекта написан на языке C++ с использованием GTK+ и распространяется под лицензией GPLv3. Сборки подготовлены для Linux (AppImage) и Windows.

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

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

  • Добавлен инструмент для удаления пятен и мелких объектов (например, дефектов матрицы и пылинок на объективе), путём замещения пятна содержимым из соседней области.
  • Добавлен инструмент локальной корректировки, позволяющий выполнять различные операции редактирования над областями изображения, выделяемыми на основе геометрической маски или цвета.
  • Добавлена поддержка модели цветового восприятия CAM16, пришедшей на смену модели CIECAM02 и позволяющей выполнять цветокорректировку фотографии с учётом восприятия цвета человеческим глазом.
  • Улучшены вейвлетные инструменты для редактирования на разных уровнях детализации.
  • В инструмент настройки баланса белого добавлен новый автоматический метод "корреляция температуры" (старый метод переименован в "RGB grey").
  • Добавлен инструмент для препроцессинга баланса белого, позволяющий применить автоматическое выставление баланса для отдельных каналов или использовать записанные камерой параметры баланса белого.
  • Переделан инструмент для инвертирования негативов.
  • Добавлен инструмент для автоматической корректировки горизонтальных или вертикальных завалов перспективы.
  • Добавлены новые режимы построения гистограммы для инспектирования цветов: форма волны, вектороскоп и RGB-парад (waveform, vectorscope, RGB parade).
  • Реализован новый двойной алгоритм расчёта недостающих компонентов цвета на основании сведений из соседних элементов (demosaicing), позволяющий сократить артефакты для снимков при искусственном освещении.
  • В инструмент удаления дымки добавлена поддержка корректировки насыщенности.
  • Улучшена тема оформления интерфейса и повышена наглядность включения инструментов.
  • Добавлена возможность изменения размера навигатора (вкладка "Редактор").
  • В инструменте изменения размера (вкладка "Трансформация") появилась поддержка изменения размера по длинному или короткому краю.
  • В Инструмент кадрирования добавлен режим обрезки "центрированный квадрат".
  • Добавлена поддержка новых камер, raw-форматов и цветовых профилей. Всего отмечено улучшение поддержки 130 камер, включая различные модели Canon EOS, Canon PowerShot, Fujifilm X*, Fujifilm GFX, Leica, Nikon COOLPIX, Nikon D*, Nikon Z*, OLYMPUS, Panasonic DC, Sony DSC и Sony ILCE.

  1. OpenNews: Релиз программы для обработки фотографий RawTherapee 5.8
  2. OpenNews: Доступен менеджер фотографий Shotwell 0.30 с поддержкой распознавания лиц
  3. OpenNews: Выпуск программы для управления фотографиями digiKam 7.0
  4. OpenNews: Опубликован проект PIXIE для построения 3D-моделей людей по фотографии
  5. OpenNews: Выпуск программы для профессиональной обработки фотографий Darktable 4.0
Обсуждение (32 +8) | Тип: Программы |
·03.12.2022 Около 21% нового компилируемого кода в Android 13 написано на языке Rust (178 –8)
  Инженеры из компании Google подвели первые итоги внедрения в платформу Android поддержки разработки на языке Rust. В Android 13 примерно 21% от добавленного нового компилируемого кода написано на Rust, а 79% на C/C++. В репозитории AOSP (Android Open Source Project), в котором развиваются исходные тексты платформы Android, насчитывается примерно 1.5 млн строк кода на Rust, связанного с такими новыми компонентам, как хранилище криптографических ключей Keystore2, стек для UWB-чипов (Ultra-Wideband), реализация протокола DNS-over-HTTP3, фреймворк виртуализации AVF (Android Virtualization Framework), экспериментальные стеки для Bluetooth и Wi-Fi.

В соответствии с ранее принятой стратегией снижения риска появления уязвимостей, вызванных ошибками при работе с памятью, язык Rust пока применяется в основном при разработке нового кода и для постепенного усиления безопасности наиболее незащищённых и жизненно важных программных компонентов. Общей цели перевода всей платформы на Rust не ставится и старый код остаётся на C/C++,а борьба с ошибками в нём производится через применение fuzzing-тестирования, статического анализа и применение при разработке техник, подобных задействованию типа MiraclePtr (обвязка над raw-указателями, выполняющая дополнительные проверки обращения к освобождённым областям памяти), системе распределения памяти Scudo (безопасная замена malloc/free) и механизмам выявления ошибок при работе с памятью HWAsan (Hardware-assisted AddressSanitizer), GWP-ASAN и KFENCE.

Что касается статистики по характеру уязвимостей в платформе Android, отмечается, что по мере уменьшения нового кода, небезопасно работающего с памятью, наблюдается и снижение количества уязвимостей, вызванных ошибками при работе с памятью. Например, доля вызванных проблемами с памятью уязвимостей сократилось с 76% в 2019 году до 35% в 2022 году. В абсолютных числах в 2019 году было выявлено 223 уязвимостей, связанных с работой с памятью, в 2020 - 150, в 2021 - 100, а в 2022 - 85 (все отмеченные уязвимости в коде на C/C++, в коде на Rust подобных проблем пока не было найдено). 2022 год стал первым годом, в котором связанные с памятью уязвимости перестали доминировать.

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

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

  1. OpenNews: Rust включён в число основных языков для разработки платформы Android
  2. OpenNews: Google развивает новый Bluetooth-стек для Android, написанный на Rust
  3. OpenNews: Компилятор Rust добавлен в состав дерева исходных текстов Android
  4. OpenNews: Google учредил команду для помощи открытым проектам в усилении безопасности
  5. OpenNews: Разработчики Chrome экспериментируют с языком программирования Rust
Обсуждение (178 –8) | Тип: Тема для размышления |
·03.12.2022 Сертификаты Samsung, LG и Mediatek использовались для заверения вредоносных Android-приложений (69 +12)
  Компания Google раскрыла сведения об использовании сертификатов ряда производителей смартфонов для заверения цифровой подписью вредоносных приложений. Для создания цифровых подписей применялись сертификаты платформы, которыми производители заверяют привилегированные приложения, входящие в основной состав системных образов Android. Из производителей, c сертификатами которых связаны подписи вредоносных приложений, прослеживаются Samsung, LG и Mediatek. Источник утечки сертификатов пока не выявлен.

Сертификатом платформы в том числе подписывается системное приложение "android", которое выполняется под идентификатором пользователя с наивысшим привилегиями (android.uid.system) и имеет полномочия системного доступа, в том числе к данным пользователей. Заверение вредоносного приложения тем же сертификатом, позволяет организовать его выполнение с тем же идентификатором пользователя и с теми же уровнем доступа к системе, без получения какого-то подтверждения от пользователя.

В выявленных вредоносных приложениях, подписанных сертификатами платформы, присутствовал код для перехвата информации и установки в систему дополнительных внешних вредоносных компонентов. По данным Google следов публикации рассматриваемых вредоносных приложений в каталоге Google Play Store не выявлено. Для дополнительной защиты пользователей в Google Play Protect и в тестовый набор Build Test Suite, применяемый для сканирования системных образов, уже добавлено определение подобных вредоносных приложений.

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

  1. OpenNews: Производитель дронов DJI по ошибке опубликовал закрытые ключи и пароли
  2. OpenNews: Утечка кода продуктов, сервисов и механизмов защиты компании Samsung
  3. OpenNews: Уязвимость в модификациях ядра, сделанных Samsung для повышения безопасности Android
  4. OpenNews: Ожидается отзыв всех остальных сертификатов Trustico из-за полной компрометации сервера
  5. OpenNews: Атаковавшие SolarWinds смогли получить доступ к коду Microsoft
Обсуждение (69 +12) | Тип: Проблемы безопасности |
·03.12.2022 Компания LG опубликовала платформу webOS Open Source Edition 2.19 (18 +7)
  Опубликован выпуск открытой платформы webOS Open Source Edition 2.19, которая может применяться на различных портативных устройствах, платах и автомобильных информационно-развлекательных системах. В качестве эталонной аппаратной платформы рассматриваются платы Raspberry Pi 4. Платформа развивается в публичном репозитории под лицензией Apache 2.0, а разработку курирует сообщество, придерживаясь совместной модели управления разработкой.

Платформа webOS была изначально разработана компанией Palm в 2008 году и использовалась на смартфонах Palm Pre и Pixie. В 2010 году после поглощения компании Palm платформа перешла в руки Hewlett-Packard, после чего HP пыталась использовать данную платформу в своих принтерах, планшетах, ноутбуках и ПК. В 2012 году компания HP анонсировала перевод webOS в независимый открытый проект и в 2013 году начала открытие исходных текстов его компонентов. В 2013 году платформа была выкуплена у Hewlett-Packard компанией LG и теперь применяется на более чем 70 миллионах телевизоров и потребительских устройств LG. В 2018 году был основан проект webOS Open Source Edition, через который компания LG попыталась вернуться к открытой модели разработки, привлечь других участников и расширить спектр поддерживаемых в webOS устройств.

Системное окружение webOS формируется с использованием инструментария и базовых пакетов OpenEmbedded, а также сборочной системы и набора метаданных от проекта Yocto. Ключевыми компонентами webOS являются менеджер системы и приложений (SAM, System and Application Manager), отвечающий за выполнение приложений и сервисов, и Luna Surface Manager (LSM), формирующий интерфейс пользователя. Компоненты написаны с использованием фреймворка Qt и браузерного движка Chromium.

Отрисовка осуществляется через композитный менеджер, применяющий протокол Wayland. Для разработки пользовательских приложений предлагается использовать web-технологии (CSS, HTML5 и JavaScript) и фреймворк Enact, основанный на React, но возможно и создание программ на С и C++ с интерфейсом на базе Qt. Пользовательская оболочка и встроенные графические приложения в основном реализованы как нативные программы, написанные с использованием технологии QML. По умолчанию предлагается оболочка Home Launcher, оптимизированная для управления с сенсорных экранов и предлагающая концепцию сменяющих друг друга карт (вместо окон).

Для хранения данных в структурированном виде с использованием формата JSON применяется хранилище DB8, использующее в качестве бэкенда БД LevelDB. Для инициализации используется bootd на основе systemd. Для обработки мультимедийного контента предлагаются подсистемы uMediaServer и Media Display Controller (MDC), в качестве звукового сервера применяется PulseAudio. Для автоматического обновления прошивки применяется OSTree и атомарная замена разделов (создаются два системных раздела, один из которых является активным, а второй используется для копирования обновления).

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

  • Улучшен домашний экран (Home App), в котором появилась строка состояния с подборкой наиболее часто вызываемых возможностей. Предоставлена поддержка свободного редактирования содержимого панели с приложениями. Добавлены новые экранные жесты.
  • В состав включено приложение Video Call для осуществления видеовызовов и проведения виртуальных видеовстреч. В текущем виде пока поддерживается только установка связи через Cisco Webex и Microsoft Teams.
  • Предоставлено окружение командной строки для создания собственных приложений с блокчейн-кошельками (Blockchain Wallet), которое упрощает выполнение таких операций, как подпись транзакций и журналирование этих транзакций в блокчейне.
  • В Enact Browser добавлена поддержка сервиса определения вредоносного ПО и реализовано всплывающее окно с запросом полномочий у пользователя.
  • В звуковом сервере audiod добавлена поддержка определения встроенных и внешних звуковых устройств. В системном сервисе (Sys Service) добавлена поддержка вторичных звуковых устройств (subdevices), встроенных звуковых карт и MIPI-камер. В PulseAudio задействован механизм подавления эха ECNR (Echo Cancellation Noise Reduction).
  • Компоненты платформы для создания встраиваемых Linux-систем Yocto обновлены до выпуска 4.0.
  • Браузерный движок обновлён до выпуска Chromium 94 (ранее использовался Chromium 91). Для web-приложений webOS добавлена возможность использования геймпадов.
  • Обновлены шрифты Noto (добавлена поддержка символов Unicode 15.0.0).
  • Осуществлён переход на Qt 6.4. Web-фреймворк Enact обновлён до версии 4.5.0.

  1. OpenNews: Уязвимости в webOS, позволяющие перезаписать файлы на телевизорах LG
  2. OpenNews: Выпуск платформы webOS Open Source Edition 2
  3. OpenNews: Компания LG опубликовала операционную систему webOS Open Source Edition
  4. OpenNews: Обновление мобильной платформы LuneOS, продолжившей развитием webOS
  5. OpenNews: Компания LG представит первый телевизор на базе открытой платформы webOS
Обсуждение (18 +7) | Тип: Программы |
·02.12.2022 Доступна мобильная платформа KDE Plasma Mobile 22.11 (68 +9)
  Опубликован выпуск мобильной платформы KDE Plasma Mobile 22.11, основанной на мобильной редакции рабочего стола Plasma 5, библиотеках KDE Frameworks 5, телефонном стеке ModemManager и коммуникационном фреймворке Telepathy. Для вывода графики в Plasma Mobile используется композитный сервер kwin_wayland, а для обработки звука применяется PulseAudio. Одновременно подготовлен выпуск набора мобильных приложений Plasma Mobile Gear 22.11, формируемого по аналогии с набором 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.27, которая станет последней в серии KDE Plasma 5.x, после чего работа будет сосредоточена на подготовке KDE Plasma 6.
  • В выпадающей панели быстрых настроек (Action Drawer) добавлена возможность открытия окна выбора источника звука при нажатии на индикатор медиапроигрывателя.
  • В домашнем экране (Halcyon) улучшена производительность на маломощных устройствах, решена проблема с производительностью прокрутки списка приложений. Налажено использование клавиши Meta для вывода домашнего экрана.
  • В хранителе экрана повышен контраст шрифта, используемого для показа часов. Проведена работа над повышением производительности.
  • В композитном менеджере KWin добавлена поддержка изменения ориентации панели, что позволило обеспечить корректную работу сенсорного ввода на устройствах с перевёрнутым экраном (например, OnePlus 5).
  • Обновлено оформление меню выключения питания, в которое помимо кнопок выключения и перезапуска добавлена кнопка для завершения сеанса пользователя.
  • В апплет для показа прогноза погоды внесены изменения для унификации работы на настольных системах (диалог с настройками переведён на использование окна в десктоп-режиме, добавлены полосы прокрутки, переделан список мест).
  • Проведена адаптация приложения-диктофона (Recorder) для интеграции в набор KDE Gear. Интерфейс переведён на полноэкранную раскладку, диалог с настройками переведён на использование окна в десктоп-режиме, упрощён интерфейс проигрывателя записей, обеспечено мгновенное начало записи после нажатия кнопки "запись", добавлена поддержка экспорта сохранённых записей.
  • В интерфейсе для совершения звонков (Plasma Dialer) предоставлена возможность изменения кнопок ответа на звонок, например, помимо традиционных кнопок, могут быть использованы сдвижные кнопки или кнопки асимметричного размера. На экране входящего звонка реализовано отображение caller id и продолжительности звонка. Добавлена начальная поддержка CI-сборок с Qt6. Раздел настроек переведён на новые компоненты форм.
  • В Spacebar, программе для отправки SMS/MMS, реализован предпросмотр вложенных изображений в чате и при выводе уведомления. Добавлена возможность отправки быстрого ответа (tapback). Реализован диалог подтверждения удаления чата.
  • В менеджере приложений (Discover) улучшен вывод рекомендованных приложений.
  • В Tokodon, клиенте к децентрализованной микроблогинговой платформе Mastodon, раздел настроек переведён на новые компоненты форм. Обеспечено автоматическое кадрирование и поворот изображений на временной шкале.
  • В программе для обмена сообщениями NeoChat продолжена работа над поддержкой оконечного шифрования и переводом раздела настроек на новые компоненты форм. Добавлена отдельная секция для настройки уведомлений и реализована поддержка настройки работы через прокси. Переписан интерфейс переключения между учётными записями.
  • В программу для прослушивания подкастов Kasts добавлена поддержка потокового вещания и прослушивания эпизодов без их предварительной загрузки.
  • В конфигураторе налажена работа модуля для настройки мобильной сети и улучшено поведение на устройствах без SIM-карты.
  • В музыкальном проигрывателе AudioTube появилась возможность просмотра текста песен, добавлен показ изображений обложек альбомов и обеспечена поддержка фильтрации недавних поисковых запросов. В интерфейсе реализован вывод изображений с закруглёнными углами и предложено новое оформление заголовков списков. Действия над каждой композицией вынесены во всплывающее меню.

Начиная с выпуска KDE Gear 23.04 решено развивать мобильные версии приложений KDE в основном составе KDE Gear, без поставки отдельного набора Plasma Mobile Gear.

  1. OpenNews: Доступна мобильная платформа KDE Plasma Mobile 22.09
  2. OpenNews: Доступен для предзаказа смартфон PinePhone Pro, поставляемый с KDE Plasma Mobile
  3. OpenNews: После релиза KDE Plasma 5.27 планируют приступить к разработке ветки KDE 6
  4. OpenNews: Выпуск KDE Gear 22.08, набора приложений от проекта KDE
  5. OpenNews: Релиз пользовательского окружения KDE Plasma 5.26
Обсуждение (68 +9) | Тип: Программы |
·02.12.2022 Root-уязвимость в инструментарии управления пакетами Snap (74 +10)
  Компания Qualys выявила третью в этому году опасную уязвимость (CVE-2022-3328) в утилите snap-confine, поставляемой с флагом SUID root и вызываемой процессом snapd для формирования исполняемого окружения для приложений, распространяемых в самодостаточных пакетах в формате snap. Уязвимость позволяет локальному непривилегированному пользователю добиться выполнения кода с правами root в конфигурации Ubuntu по умолчанию. Проблема устранена в выпуске snapd 2.57.6. Обновления пакетов выпущены для всех поддерживаемых веток Ubuntu.

Интересно, что рассматриваемая уязвимость была внесена в процессе исправления похожей февральской уязвимости в snap-confine. Исследователям удалось подготовить рабочий эксплоит, предоставляющий root-доступ в Ubuntu Server 22.04, в котором кроме уязвимости в snap-confine также задействованы две уязвимости в процессе multipathd (CVE-2022-41974, CVE-2022-41973), связанные с обходом проверки полномочий при передаче привилегированных команд и небезопасной работой с символическими ссылками.

Уязвимость в snap-confine вызвана состоянием гонки в функции must_mkdir_and_open_with_perms(), добавленной для защиты от подмены каталога /tmp/snap.$SNAP_NAME на символическую ссылку в момент после проверки владельца, но перед обращением к системному вызову mount для bind-монтирования в него каталогов для пакета в формате snap. Добавленная защита сводилась к переименованию каталога /tmp/snap.$SNAP_NAME в другой каталог в /tmp со случайным именем, если он существует и не принадлежит пользователю root.

При эксплуатации операции переименования каталога /tmp/snap.$SNAP_NAME исследователи воспользовались тем, что snap-confine также создаёт каталог /tmp/snap.rootfs_XXXXXX для корня содержимого пакета snap. Часть "XXXXXX" в имени выбирается случайно при помощи mkdtemp(), но пакет с именем "rootfs_XXXXXX" может пройти проверку в функции sc_instance_name_validate (т.е. идея в том, чтобы имя $SNAP_NAME приняло значение "rootfs_XXXXXX" и тогда операция переименования приведёт к перезаписи каталога /tmp/snap.rootfs_XXXXXX с корнем snap).

Для того чтобы добиться одновременного использования /tmp/snap.rootfs_XXXXXX и переименования /tmp/snap.$SNAP_NAME было запущено два экземпляра snap-confine. Как только первый экземпляр создавал /tmp/snap.rootfs_XXXXXX процесс блокировался и запускался второй экземпляр с именем пакета rootfs_XXXXXX, что приводило к тому, что временный каталог /tmp/snap.$SNAP_NAME второго экземпляра становился корневым каталогом /tmp/snap.rootfs_XXXXXX первого. Сразу после выполнения переименования второй экземпляр аварийно завершался, а /tmp/snap.rootfs_XXXXXX подменялся с манипуляцией состоянием гонки, как при эксплуатации февральской уязвимости. После подмены с первого экземпляра снималась блокировка выполнения и атакующие получали полный контроль над корневым каталогом snap.

На последнем этапе создавалась символическая ссылка /tmp/snap.rootfs_XXXXXX/tmp, которая использовалась функцией sc_bootstrap_mount_namespace() для bind-монтирования доступного на запись реального каталога /tmp в любой каталог ФС, так как вызов mount() следует символическим ссылкам перед монтированием. Подобное монтирование блокируется ограничениями AppArmor, но для обхода этой блокировки в эксплоите были задействованы две вспомогательные уязвимости в multipathd.

  1. OpenNews: Локальные root-уязвимости в инструментарии управления пакетами Snap
  2. OpenNews: Критическая уязвимость в PolKit, позволяющая получить root-доступ в большинстве дистрибутивов Linux
  3. OpenNews: Уязвимость во Flatpak, позволяющая повысить привилегии в системе
  4. OpenNews: Обновление Flatpak 1.10.2 с устранением уязвимости, нарушающей sandbox-изоляцию
  5. OpenNews: Опасные уязвимости в утилитах beep и patch
Обсуждение (74 +10) | Тип: Проблемы безопасности |
·01.12.2022 Релиз Mesa 22.3, свободной реализации OpenGL и Vulkan (55 +23)
  Опубликован релиз свободной реализации API OpenGL и Vulkan - Mesa 22.3.0. Первый выпуск ветки Mesa 22.3.0 имеет экспериментальный статус - после проведения окончательной стабилизации кода будет выпущена стабильная версия 22.3.1.

В Mesa 22.3 доступна поддержка графического API Vulkan 1.3 в драйверах anv для GPU Intel, radv для GPU AMD, tu для GPU Qualcomm и в режиме эмулятора (vn). Поддержка Vulkan 1.1 реализована в программном растеризаторе lavapipe (lvp), а Vulkan 1.0 в драйвере v3dv (GPU Broadcom VideoCore VI из Raspberry Pi 4).

В Mesa также обеспечивается полная поддержка OpenGL 4.6 для драйверов 965, iris (Intel), radeonsi (AMD), zink и llvmpipe. Поддержка OpenGL 4.5 доступна для GPU AMD (r600), NVIDIA (nvc0) и Qualcomm Adreno (freedreno), OpenGL 4.3 для virgl (виртуальный GPU Virgil3D для QEMU/KVM), а OpenGL 4.2 для драйвера d3d12 (прослойка для организации работы OpenGL поверх DirectX 12).

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

  • В драйвере freedreno для GPU Qualcomm Adreno обеспечена поддержка графического API OpenGL 4.5, а в драйвере для эмулятора (vn) поддержка API Vulkan 1.3.
  • В драйвере Panfrost реализована возможность кэширования шейдеров на диске и добавлена поддержка GPU Mali T620. Драйвер совместим со спецификацией OpenGL 3.1 и OpenGL ES 3.1.
  • В Vulkan-драйвере RADV (AMD) добавлена поддержка GPU GFX11/RDNA3 (серия Radeon RX 7000). Проведена оптимизация кода для трассировки лучей. Добавлена поддержка пиксельных форматов R8G8B8, B8G8R8 и R16G16B16, а также 64-разрядных форматов вершинного буфера. Добавлена поддержка флага extendedDynamicState2PatchControlPoints, определяющего поддержку расширения VK_EXT_extended_dynamic_state2. Интегрирован Radeon Raytracing Analyzer.
  • В состав включён драйвер Rusticl с реализацией спецификации OpenCL 3.0, определяющей API и расширения языка С для организации кросс-платформенных параллельных вычислений. Драйвер написан на языке Rust, разработан с использованием предоставляемого в Mesa интерфейса Gallium и выступает в роли аналога присутствующего в Mesa OpenCL-фронтэнда Clover. Clover уже давно находится в заброшенном состоянии и rusticl позиционируется как его будущая замена. Поддержка Rust и rusticl по умолчанию отключена и требует сборки с явным указанием опций "-D gallium-rusticl=true -Dllvm=enabled -Drust_std=2021". При сборке в качестве дополнительных зависимостей необходимы компилятор rustc, генератор привязок bindgen, LLVM, инструментарий SPIRV-Tools и транслятор SPIRV-LLVM-Translator.
  • В драйвере RadeonSI включена по умолчанию поддержка многопоточной отрисовки через OpenGL.
  • Представлен Mesa-DB, новый тип кэша шейдеров, сохраняющий данные в одном файле.
  • Добавлена поддержка расширений OpenGL:
  • Добавлена поддержка Vulkan-расширений:

  1. OpenNews: Релиз Mesa 22.2, свободной реализации OpenGL и Vulkan
  2. OpenNews: Релиз Mesa 22.1, свободной реализации OpenGL и Vulkan
  3. OpenNews: Релиз Mesa 22.0, свободной реализации OpenGL и Vulkan
  4. OpenNews: Представлен NVK, открытый Vulkan-драйвер для видеокарт NVIDIA
  5. OpenNews: Открытый драйвер Rusticl сертифицирован на совместимость с OpenCL 3.0
Обсуждение (55 +23) | Тип: Программы |
·01.12.2022 Удалённо эксплуатируемая root-уязвимость в утилите ping, поставляемой во FreeBSD (124 +33)
  Во FreeBSD выявлена уязвимость (CVE-2022-23093) в утилите ping, входящей в базовую поставку. Проблема потенциально может привести к удалённому выполнению кода с правами root при проверке при помощи ping внешнего хоста, подконтрольного злоумышленнику. Исправление предложено в обновлениях FreeBSD 13.1-RELEASE-p5, 12.4-RC2-p2 и 12.3-RELEASE-p10. Подвержены ли другие BSD-системы выявленной уязвимости пока не ясно (отчётов об уязвимости в NetBSD, DragonFlyBSD и OpenBSD пока не появилось).

Уязвимость вызвана переполнением буфера в коде, используемом в утилите ping для разбора ICMP-сообщений, приходящих в ответ на проверочный запрос. Код отправки и приёма ICMP-сообщений в ping использует raw-сокеты и выполняется с повышеннымми привилегиями (утилита поставляется с флагом setuid root). Обработка ответа производится на стороне ping через реконструкцию IP- и ICMP-заголовков пакетов, получаемых из raw-сокета. Выделенные IP- и ICMP-заголовки копируются функцией pr_pack() в буферы, не принимая во внимание то, что в пакете после заголовка IP могут присутствовать дополнительные расширенные заголовки.

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

  1. OpenNews: Удалённая DoS-уязвимость в IPv6-стеке FreeBSD
  2. OpenNews: Уязвимости в TCP-стеках Linux и FreeBSD, приводящие к удалённому отказу в обслуживании
  3. OpenNews: Уязвимость в ядре Linux, позволяющая вызвать крах через отправку UDP-пакета
  4. OpenNews: Уязвимости в драйвере ozwpan, позволяющие удалённо вызвать крах ядра Linux
  5. OpenNews: Уязвимость в OpenSMTPD, позволяющая удалённо выполнить код с правами root
Обсуждение (124 +33) | Тип: Проблемы безопасности |
·30.11.2022 Релиз Chrome 108 (75 –5)
  Компания Google представила релиз web-браузера Chrome 108. Одновременно доступен стабильный выпуск свободного проекта Chromium, выступающего основой Chrome. Браузер Chrome отличается от Chromium использованием логотипов Google, наличием системы отправки уведомлений в случае краха, модулями для воспроизведения защищённого от копирования видеоконтента (DRM), системой автоматической установки обновлений, постоянным включением Sandbox-изоляции, поставкой ключей к Google API и передачей при поиске RLZ-параметров. Для тех, кому необходимо больше времени на обновление, отдельно поддерживается ветка Extended Stable, сопровождаемая 8 недель. Следующий выпуск Chrome 109 запланирован на 10 января.

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

  • Изменено оформление диалога управления Cookie и данными сайтов (вызывается через ссылку Файлы Cookie после нажатия на замок в адресной строке). Диалог упрощён в теперь отображает информацию с разбивкой на сайты.
  • Предложены два новых режима оптимизации работы браузера - Экономия памяти (Memory Saver) и Экономия энергии (Energy Saver), которые предложены в настройках производительности (Settings > Performance). Режимы пока доступны только на платформах ChromeOS, Windows и macOS.
  • В менеджере паролей предоставлена возможность прикрепления примечания к каждому сохранённому паролю. Как и пароль примечание показывается на отдельной странице только после прохождения аутентификации.
  • В версии для Linux по умолчанию задействован встроенный DNS-клиент, который ранее использовался только в версиях для Windows, macOS, Android и ChromeOS.
  • На платформе Windows при установке Chrome в панели задач теперь автоматически закрепляется ярлык для запуска браузера.
  • Добавлена возможность отслеживания изменения цен на избранные товары в некоторых интернет-магазинах (Shopping List). При снижении цены пользователю направляется уведомление или email (в Gmail). Добавление товара для отслеживания осуществляется через нажатие кнопки "Track price" в адресной строке при нахождении на странице товара. Отслеживаемые товары сохраняются вместе с закладками. Функция доступна только пользователям с активной учётной записью в Google, при включении синхронизации и активации сервиса "Web & App Activity".
  • Включена возможность просмотра результатов поиска в боковой панели одновременно с просмотром другой страницы (в одном окне одновременно можно видеть как содержимое страницы, так и результат обращения к поисковой системе). После перехода на какой-то сайт со страницы с результатами поиска в Google перед полем ввода в адресной строке появляется пиктограмма с буквой "G", при клике на которую открывается боковая панель с результатами ранее предпринятого поиска.
  • В API File System Access, позволяющее web-приложениям читать и записывать данные напрямую в файлы и каталоги на устройстве пользователя, методы getSize(), truncate(), flush() и close() в объекте FileSystemSyncAccessHandle переведены из асинхронной в синхронную модель выполнения, по аналогии с методами read() и write(). Изменение позволило предоставить полностью синхронно работающий API FileSystemSyncAccessHandle, позволяющий поднять производительность приложений на базе WebAssembly (WASM).
  • Добавлена поддержка дополнительных размеров видимой области (viewport) - "small" (s), "large" (l) и "dynamic" (d), а также связанных с данными размерами единиц измерения - "*vi" (vi, svi, lvi и dvi), "*vb" (vb, svb, lvb и dvb), "*vh" (svh, lvh, dvh), "*vw" (svw, lvw, dvw), "*vmax" (svmax, lvmax, dvmax) и "*vmin" (svmin, lvmin и dvmin). Предложенные единицы измерения позволяют привязывать размер элементов к наименьшему, наибольшему и динамическому размеру видимой области в процентном соотношении (размер меняется в зависимости от показа, скрытия и состояния панели инструментов).
  • Включена поддержка вариативных цветных векторных шрифтов в формате COLRv1 (подмножество шрифтов OpenType, содержащих помимо векторных глифов слой c информацией о цвете).
  • Для проверки поддержки цветных шрифтов в CSS-правила @supports добавлены функции font-tech() и font-format(), а в CSS-правила @font-face добавлена функция tech().
  • Предложен API Federated Credential Management (FedCM), позволяющий создавать объединённые сервисы идентификации, обеспечивающие сохранение конфиденциальности и работающие без механизмов межсайтового отслеживания, таких как обработка сторонних Cookie.
  • Предоставлена возможность применения уже существующего CSS-свойства "overflow" к заменённым элементам, выводимым за границей содержимого, что в сочетании со свойством object-view-box можно использовать для создания изображений с собственной тенью.
  • Добавлены CSS-свойства break-before, break-after и break-inside, позволяющие настроить поведение разрывов при фрагментированном выводе в разрезе отдельных страниц, столбцов и областей. Например, "figure { break-inside: avoid;}" запретит разрывать страницу внутри рисунка.
  • В CSS-свойствах align-items, justify-items, align-self и justify-self предоставлена возможность использования значения "last baseline" для выравнивания в привязке к последней опорной линии в раскладке flex или grid.
  • Добавлено событие ContentVisibilityAutoStateChanged, генерируемое для элементов со свойством "content-visibility: auto" при изменении состояния отрисовки элемента.
  • Предоставлена возможность доступа к API Media Source Extensions в контексте worker-ов, что можно использовать, например, для повышения производительности буферизированного воспроизведения мультимедийных данных через создание объекта MediaSource в отдельном worker-е и трансляцию результатов его работы в HTMLMediaElement в основном потоке.
  • В HTTP-заголовке Permissions-Policy, применяемом для делегирования полномочий и включения расширенных возможностей, разрешено использование масок, например, "https://*.bar.foo.com/".
  • Удалены устаревшие API window.defaultStatus, window.defaultstatus, ImageDecoderInit.premultiplyAlpha, navigateEvent.restoreScroll(), navigateEvent.transitionWhile().
  • Внесены улучшения в инструменты для web-разработчиков. В панели Styles добавлены подсказки для неактивных CSS-свойств. В панели Recorder реализовано автоматическое определение селекторов XPath и text. В отладчике предоставлена возможность пошагового прохода по разделённым запятой выражениям. Расширены настройки "Settings > Ignore List".

Кроме нововведений и исправления ошибок в новой версии устранено 28 уязвимостей. Многие из уязвимостей выявлены в результате автоматизированного тестирования инструментами AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer и AFL. Критических проблем, которые позволяют обойти все уровни защиты браузера и выполнить код в системе за пределами sandbox-окружения, не выявлено. В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google выплатила 10 премий на сумму 74 тысячи долларов США (по одной премии в $15000, $11000 и $6000, пять премий $5000, три премии по $3000 и $2000, две премии $1000). Размер 6 вознаграждений пока не определён.

  1. OpenNews: Релиз Chrome 107
  2. OpenNews: В Chrome внесено изменение, допускающее запись в буфер обмена без действий пользователя
  3. OpenNews: В Chrome выявлена утечка паролей из полей с предпросмотром скрытого ввода
  4. OpenNews: Google отложил на 2024 год прекращение поддержки второй версии манифеста Chrome
  5. OpenNews: Google упраздняет поддержку JPEG XL в Chrome
Обсуждение (75 –5) | Тип: Программы |
·29.11.2022 Компания Cisco выпустила свободный антивирусный пакет ClamAV 1.0.0 (81 +25)
  Компания Cisco представила новый значительный выпуск свободного антивирусного пакета ClamAV 1.0.0. Новая ветка примечательна переходом на традиционную нумерацию выпусков "Major.Minor.Patch" (вместо 0.Version.Patch). Значительная смена версии также обусловлена внесением в библиотеку libclamav изменений, нарушающих совместимость на уровне ABI из-за удаления пространства имён CLAMAV_PUBLIC, изменения типа аргументов в функции cl_strerror и включения в пространство имён символов для языка Rust. Проект перешёл в руки Cisco в 2013 году после покупки компании Sourcefire, развивающей ClamAV и Snort. Код проекта распространяется под лицензией GPLv2.

Ветка 1.0.0 отнесена к категории с длительным сроком поддержки (LTS), сопровождение для которой обеспечивается в течение трёх лет. Выпуск ClamAV 1.0.0 придёт на смену прошлой LTS-ветке ClamAV 0.103, обновления с устранением уязвимостей и критических проблем для которой будут выпускаться до сентября 2023 года. Обновления для обычных веток, не отнесённых к категории LTS, публикуются как минимум в течение 4 месяцев после выхода первого релиза следующей ветки. Возможность загрузки базы сигнатур для не-LTS веток также обеспечивается как минимум ещё 4 месяца после выпуска следующей ветки.

Ключевые улучшения в ClamAV 1.0:

  • Добавлена поддержка расшифровки доступных только на чтение XLS-файлов на базе OLE2, зашифрованных паролем по умолчанию.
  • Переписан код с реализацией режима all-match, при котором определяются все совпадения в файле, т.е. сканирование продолжается после первого совпадения. Новый код отмечен как более надёжный и простой для сопровождения. В новой реализации также устранена серия концептуальных недоработок, проявляющихся при проверке по сигнатурам в режиме all-match. Добавлены тесты для проверки корректности поведения all-match.
  • В API добавлен callback-вызов clcb_file_inspection() для подключения обработчиков, выполняющих инспектирование содержимого файлов, в том числе извлекаемых из архивов.
  • В API добавлена функция cl_cvdunpack() для распаковки архивов сигнатур в формате CVD.
  • Скрипты для сборки docker-образов с ClamAV перенесены в отдельный репозиторий  clamav-docker. В состав docker-образа включены заголовочные файлы для Си-библиотеки.
  • Добавлены проверки, ограничивающие уровень рекурсии при извлечении объектов из PDF-документов.
  • Повышен лимит на размер памяти, выделяемой при обработке не заслуживающих доверия входных данных, и реализован вывод предупреждения при превышении данного лимита.
  • Значительно ускорена сборка unit-тестов для библиотеки libclamav-Rust. Написанные на языке Rust модули для ClamAV теперь собираются в каталоге, общем с ClamAV.
  • Смягчены ограничения при проверке перекрытия записей в файлах в формате ZIP, что позволило избавиться от ложных предупреждений при обработке немного изменённых, но не вредоносных, JAR-архивов.
  • При сборке определены минимальная и максимальная поддерживаемые версии LLVM. Попытка сборки со слишком старой или слишком новой версией теперь приведёт к выводу ошибки с предупреждением о наличии проблем с совместимостью.
  • Разрешена сборка с собственным списком RPATH (список каталогов, из которых загружаются разделяемые библиотеки), что позволяет перемещать исполняемые файлы в другое место после сборки в окружении для разработки.

  1. OpenNews: Компания Cisco выпустила свободный антивирусный пакет ClamAV 0.105
  2. OpenNews: Доступна утилита для генерации базы сигнатур ClamAV на основе API Google Safe Browsing
  3. OpenNews: Представлена программа по привлечению сообщества к созданию вирусных сигнатур для ClamAV
  4. OpenNews: Компания Cisco завершила сделку по покупке Sourcefire, развивающей Snort и ClamAV
  5. OpenNews: Большинство антивирусов оказались подвержены атаке через символические ссылки
Обсуждение (81 +25) | Тип: Программы |
·28.11.2022 Для Linux предложена файловая система Composefs (145 +13)
  Александр Ларсон (Alexander Larsson), создатель Flatpak, работающий в компании Red Hat, представил предварительный вариант патчей с реализацией файловой системы Composefs для ядра Linux. Предложенная файловая система напоминает Squashfs и также подходит для монтирования образов в режиме только для чтения. Отличия сводятся к обеспечению в Composefs эффективного совместного хранения содержимого нескольких примонтированных дисковых образов и поддержке проверки подлинности читаемых данных. В качестве областей применения, в которых может оказаться востребована ФС Composefs, называется монтирование образов контейнеров и применение для Git-подобного репозитория OSTree.

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

Для экономии дисковой памяти данные и метаданные в монтируемых образах разделены. При монтировании указываются:

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

Бинарный индекс создаётся для каждого образа ФС, а базовый каталог един для всех образов. Для верификации содержимого отдельных файлов и всего образа в условиях общего хранения может применяться механизм fs-verity, который при обращении к файлам проверяет соответствие указанных в бинарном индексе хэшей с фактическим содержимым (т.е. если злоумышленник внесёт изменение в файл в базовом каталоге или данные повредятся в результате сбоя, то подобная сверка выявит расхождение).

  1. OpenNews: Предложен механизм blksnap для создания снапшотов блочных устройств в Linux
  2. OpenNews: Первый публичный выпуск распределённой файловой системы JuiceFS
  3. OpenNews: Файловая система DwarFS, обеспечивающая очень высокий уровень сжатия
  4. OpenNews: Доступна файловая система Reiser5
  5. OpenNews: Обновление кластерной файловой системы LizardFS 3.13.0-rc2
Обсуждение (145 +13) | Тип: Программы |
·28.11.2022 Обновление фреймворка для построения интерфейса Maui и набора приложений Maui Apps (41 +13)
  Разработчики проекта Nitrux представили новые выпуски компонентов, применяемых для построения интерфейса в пользовательском окружении Maui DE (Maui Shell). Maui DE образует набор приложений Maui Apps, оболочка Maui Shell и фреймворк MauiKit для построения интерфейсов пользователя, который предлагает готовые шаблоны элементов интерфейса. При разработке также используется фреймворк Kirigami, который развивается сообществом KDE и является надстройкой над элементами Qt Quick Controls 2.

Компоненты Maui автоматически адаптируются к размеру экрана и доступным методам ввода информации, что позволяет применять их не только на настольных системах, но и на смартфонах и планшетах. Окружение развивает концепцию "Convergence", подразумевающую возможность работы с одними и теми же приложениями как на сенсорных экранах смартфона и планшета, так и на больших экранах ноутбуков и ПК. Maui DE может запускаться как со своим композитным сервером Zpace, использующим Wayland, так и через запуск отдельно оболочки Cask внутри сеанса на основе X-сервера. Приложения и библиотеки Maui доступны для загрузки в форматах APK, AppImage и TAR. Для тестирования текущего состояния развития окружения Maui DE на базе Manjaro Linux периодически формируются загрузочные сборки.

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

  • Добавлена поддержка интернационализации и перевода интерфейса на несколько языков.
  • В MauiKit предложены новые компоненты: Calendar для отображения календаря и навигации по нему; Documents для просмотра файлов в форматах PDF и EPubs.
  • Добавлен менеджер архивов Arca, предоставляющий интерфейс для открытия архивов, предпросмотра файлов и добавления в архив новых файлов.
  • Модернизирован интерфейс приложений Maui Apps, для которых реализована возможность объединения панели вкладок с панелью инструментов. Переработано меню. Добавлены эффекты прозрачности.
  • Доведены до готовности к распространению среди пользователей браузер Fiery, интегрированная среда разработки Strike, приложение для работы с камерой Booth и календарь Agenda.
  • Добавлена программа Maui Demo, которая демонстрирует все доступные в MauiKit Core элементы интерфейса с подсказкой и примером кода.
  • В MauiKit унифицирован стиль визуализации состояния (подведён курсор, выбран, нажат и т.п.) в таких элементах, как TextField, Switches, Sliders, CheckBoxes, ComboBox. В элементе ToolBar по умолчанию применена раскладка из строки для быстрого размещения элементов. Предложен новый стиль элемента Tumbler с поддержкой колеса мыши. Переделан элемент AbouDialog, в котором расширены возможности вывода дополнительной информации об авторах, переводчиках, библиотеках и ссылках. Улучшен выбор позиции для элемента  ContextualMenu в мобильном режиме. Переработан элемент ComboBox. При включении декорирования на стороне клиента (CSD) прекращён показ элементов при активном полноэкранном режиме.
  • В компонент TextEditor добавлена возможность проверки правописания.
  • В компоненте ImageTools предоставлена поддержка редактирования, добавления и удаления метаданных EXIF.
  • В компонент FileBrowser в список распознаваемых mime-типов добавлены файлы ".po". При поиске обеспечена индикация прогресса файловых операций.
  • При сборке MauiKit обеспечена генерация пакета ".aar" с Java-компонентами для интеграции с Android.
  • В файлах QRC (Qt Resource Collection) для ImageColors добавлена поддержка размещения изображений.
  • В файловом менеджере изменено оформление раздела для быстрого перехода к избранным каталогам. Добавлена возможность перевода интерфейса на разные языки.
  • В музыкальном проигрывателе VVave добавлена поддержка интернационализации и налажено отображение заголовка обложки альбома в основном списке воспроизведения.
  • В просмотрщике изображений и менеджере фотографий Pix улучшен предпросмотр содержимого каталогов и тегов. Упрощён интерфейс просмотра изображений. Добавлена поддержка интернационализации.
  • В программе для ведения заметок Buho, текстовом редакторе Nota, видеопроигрывателе Clip, web-браузере Fiery, Git-менеджере Bonsai и адресной книге Communicator добавлена поддержка интернационализации.
  • В эмуляторе терминала Station добавлена функция тестирования прозрачности, переработан диалог настройки горячих клавиш, улучшена панель вкладок, добавлена поддержка интернационализации.
  • Просмотрщик документов Shelf переведён на использование MauiKit-библиотеки Documents для отображения PDF и комиксов. Добавлена поддержка интернационализации.
  • В приложении для работы с камерой Booth добавлена настройка для отключения сканирования QR-кодов и добавлена поддержка интернационализации.
  • В Strike, интегрированной среде разработки с поддержкой C++ и CMake, налажена работа панели сборки (build-bar) и добавлена поддержка интернационализации.
  • Календарь планировщик Agenda переведён на использование MauiKit-библиотеки Calendar. Реализована поддержка создания и отображения событий на календаре. Добавлена поддержка интернационализации.

  1. OpenNews: Выпуск дистрибутива Nitrux 2.5 с рабочим столом NX Desktop
  2. OpenNews: Продолжение развития пользовательской оболочки Maui
  3. OpenNews: Первый альфа-выпуск пользовательского окружения Maui Shell
  4. OpenNews: Microsoft представил фреймворк MAUI, создав конфликт имён с проектами Maui и Maui Linux
  5. OpenNews: Представлено новое открытое пользовательское окружение Maui Shell
Обсуждение (41 +13) | Тип: Программы |
·27.11.2022 Доступен Wasmer 3.0, инструментарий для создания приложений на базе WebAssembly (37 +3)
  Представлен третий значительный выпуск проекта Wasmer, развивающего runtime для выполнения модулей WebAssembly, который можно использовать для создания универсальных приложений, способных выполняться в разных операционных системах, а также для изолированного выполнения кода, не заслуживающего доверия. Код проекта написан на языке Rust и распространяется под лицензией MIT.

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

Приложения изолированы от основной системы в sandbox-окружении и имеют доступ только к заявленной функциональности (механизм безопасности на основе управления возможностями - для действий с каждым из ресурсов (файлы, каталоги, сокеты, системные вызовы и т.п.) приложению должны быть даны соответствующие полномочия). Управление доступом и взаимодействие с системой обеспечивается при помощи API WASI (WebAssembly System Interface), предоставляющем программные интерфейсы для работы с файлами, сокетами и другими функциями, предоставляемыми операционной системой.

Платформа позволяет добиться производительности выполнения приложений, близкой к выполнению родных сборок. При помощи Native Object Engine для WebAssembly-модуля можно сгенерировать машинный код ("wasmer compile --native" для генерации предкомпилированных объектных файлов .so, .dylib и .dll), для запуска которого требуется минимальный runtime, но сохраняются все возможности sandbox-изоляции. Возможна поставка предкомпилированных программ со встроенным Wasmer. Для создания надстроек и дополнений предлагаются Rust API и Wasm-C-API.

Для запуска WebAssembly-контейнера достаточно установить в системе runtime Wasmer, который поставляется без внешних зависимостей ("curl https://get.wasmer.io -sSfL | sh"), и запустить необходимый файл ("wasmer test.wasm"). Программы распространяются в форме обычных WebAssembly-модулей, для управления которыми можно использовать пакетный менеджер WAPM. Wasmer также доступен в форме библиотеки, которую можно использовать для встраивания кода WebAssembly в программы на языках Rust, С/C++, C#, D, Python, JavaScript, Go, PHP, Ruby, Elixir и Java.

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

  • Добавлена возможность создания родных исполняемых файлов для любых платформ. Полностью переработана команда "wasmer create-exe", которая позволяет преобразовать файл с промежуточным кодом WebAssembly в самодостаточные исполняемые файлы для платформ Linux, Windows и macOS, которые могут работать без установки самого Wasmer.
  • Предоставлена возможность запуска WAPM-пакетов, размещённых в каталоге wapm.io, при помощи команды "wasmer run". Например, выполнение "wasmer run python/python" приведёт к загрузке из репозитория wapm.io пакета python и его запуску.
  • Полностью переработан Wasmer Rust API, в котором изменён стиль работы с памятью и обеспечена возможность безопасного сохранения объектов Wasm в структуре Store. Предложена новая структура MemoryView, позволяющая читать и записывать данные в линейную область памяти.
  • Реализован набор компонентов wasmer-js для запуска Wasmer в web-браузере и взаимодействия с ним из JavaScript, используя библиотеку wasm-bindgen.
  • Упрощены движки. Вместо раздельных движков для JIT, динамического и статического связывания (Universal, Dylib, StaticLib) теперь предлагается один общий движок и загрузка и сохранение кода в котором управляется на уровня выставления параметров.
  • Для десериализации артефактов задействован фреймворк rkyv, обеспечивающий работу в режиме zero-copy, т.е. не требующий выделения дополнительной памяти и выполняющий десериализацию только с использованием изначально предоставленного буфера. Применение rkyv позволило значительно повысить скорость запуска.
  • Улучшен однопроходный компилятор Singlepass, в котором появилась поддержка функций с несколькими аргументами (multi-value), повышена надёжность работы и добавлена поддержка кадров обработки исключений.
  • Улучшена реализация API WASI (WebAssembly System Interface). Решены проблемы в программном интерфейсе WASI для работы с файловой системой. Внутренние типы переработаны с использованием WAI (WebAssembly Interfaces), что в будущем позволит воплотить в жизнь серию новых возможностей.

  1. OpenNews: Доступен Wasmer 2.0, инструментарий для создания приложений на базе WebAssembly
  2. OpenNews: Разработчики V8 представили декомпилятор для WebAssembly
  3. OpenNews: Доступен Emscripten 3.0, компилятор из C/C++ в WebAssembly
  4. OpenNews: Вариант LibreOffice, скомпилированный в WebAssembly и работающий в web-браузере
  5. OpenNews: Доступен предварительный вариант стандарта WebAssembly 2.0
Обсуждение (37 +3) | Тип: Программы |
·26.11.2022 Amazon опубликовал инструментарий для Linux-контейнеров Finch (41 –4)
  Компания Amazon представила Finch, открытый инструментарий для сборки, публикации и запуска Linux-контейнеров, который выступает в качестве бесплатной альтернативы таким проприетарным продуктам, как Docker Desktop. Инструментарий отличается очень простым процессом установки и использованием типовых готовых компонентов для работы с контейнерами в формате OCI (Open Container Initiative). Код Finch написан на языке Go и распространяется под лицензией Apache 2.0.

Проект пока находится на ранней стадии развития и включает лишь базовую функциональность - компания Amazon решила не завершать разработку за закрытыми дверями и, чтобы не заставлять ждать готовности финального продукта, опубликовала код начальной версии, полагая, что это может привлечь заинтересованных участников и позволит учесть в процессе разработки высказанные представителями сообщества мнения и идеи. Основной задачей проекта называется упрощение работы с Linux-контейнерами на хост-системах не на основе Linux. Первый выпуск поддерживает только работу с Linux-контейнерами в окружении macOS, но в дальнейшем планируется предоставить варианты Finch для Linux и Windows.

Для построения интерфейса командной строки в Finch используются наработки nerdctl, предоставляющего совместимый с Docker набор команд для сборки, запуска, публикации и загрузки контейнеров (build, run, push, pull и т.п.), а также дополнительные опциональные возможности, такие как режим работы без root, шифрование образов, распространение образов в режиме P2P при помощи IPFS и заверение образов цифровой подписью. В качестве runtime для управления контейнерами применяется containerd. Для сборки образов в формате OCI задействован инструментарий BuildKit, а для запуска виртуальных машин с Linux, настройки совместного доступа к файлам и перенапрпвления сетевых портов - Lima.

Finch связывает nerdctl, containerd, BuildKit и Lima в одно целое и позволяет сразу приступить к работе, без необходимости разбираться и настраивать все эти компоненты по отдельности (если в Linux-системах с запуском контейнеров не возникает проблем, то создание окружения для запуска Linux-контейнеров в Windows и macOS не является тривиальной задачей). Для работы предлагается собственная утилита finch, которая скрывает за унифицированным интерфейсом детали работы с каждым входящим в состав компонентом. Для начала работы достаточно установить предоставляемый пакет, который включает всё что необходимо, после чего можно сразу создавать и запускать контейнеры.

  1. OpenNews: Выпуск Kata Containers 3.0 с изоляцией на основе виртуализации
  2. OpenNews: Объявлено о готовности системы криптографической верификации кода Sigstore
  3. OpenNews: Runj - OCI-совместимый инструментарий для управления контейнерами на базе FreeBSD jail
  4. OpenNews: Linux Foundation представил containerd 1.0, runtime для изолированных контейнеров
  5. OpenNews: Утверждена единая спецификация для образов и runtime изолированных контейнеров
Обсуждение (41 –4) | Тип: Программы |
·26.11.2022 Проект Forgejo начал развитие форка системы совместной разработки Gitea (131 +21)
  В рамках проекта Forgejo основан форк платформы совместной разработки Gitea. В качестве причины называется непринятие попытки коммерциализации проекта и сосредоточения управления в руках коммерческой компании. По мнению создателей форка, проект должен оставаться независимым и принадлежать сообществу. Forgejo продолжит придерживаться прежних принципов независимого управления.

25 октября основатель Gitea (Lunny) и один из активных участников (techknowlogick) без предварительной консультации с сообществом объявили о создании коммерческой компании Gitea Limited, которой были переданы права на домены и торговые марки (торговые марки и домены изначально принадлежали основателю проекта). Компания заявила о намерении развивать расширенную коммерческую версию платформы Gitea, оказывать платные услуги поддержки, проводить обучение и создать облачный хостинг репозиториев.

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

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

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

  1. OpenNews: Организация SFC призвала открытые проекты прекратить использовать GitHub
  2. OpenNews: Фонд СПО планирует запустить новую платформу совместной разработки и хостинга кода
  3. OpenNews: Выпуск системы совместной разработки Gogs 0.12
  4. OpenNews: Первый выпуск Gitea, форка системы совместной разработки Gogs
  5. OpenNews: Началась разработка GitPub, протокола для децентрализованных Git-сервисов
Обсуждение (131 +21) | Тип: К сведению |
Следующая страница (раньше) >>



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

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