Тысячи анкет с фотографиями

Знакомства

Найди свою любовь

Игры

Игры

Онлайн флеш игры

временная фотография

Из Олайне...

Новости мира открытых систем

Я очень дружу с Linux, чего и вам желаю...Поэтому самые свежие новости открытых систем и публикуются, огромное спасибо автору.


Выпуск свободного видеоредактора OpenShot 2.4.4


Представлен выпуск свободной системы нелинейного видеомонтажа OpenShot 2.4.4. Код проекта поставляется под лицензией GPLv3. Интерфейс написан на Python и PyQt5. Ядро обработки видео (libopenshot) реализовано на C++ и использует возможности пакета FFmpeg. Интерактивная шкала времени написана с использованием HTML5, JavaScript и AngularJS. Для пользователей Ubuntu пакеты с последним выпуском OpenShot доступны через специально подготовленный PPA-репозиторий, для остальных дистрибутивов сформирована самодостаточная сборка в формате AppImage. Имеются сборки для Windows и macOS.

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

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

  • Представлен новый полноразмерный виджет для изменения свойств, отображаемый в левой или правой панели интерфейса. Новый виджет позволяет отобразить больше информации без необходимости прокрутки, что особенно полезно при редактировании видео или создании анимации;
  • Модернизирован процесс вставки нового трека, который стал значительно быстрее и проще, включая возможность отката изменения при необходимости. Во всех диалогах добавлена возможность произвольного наименования треков;
  • Обеспечена адаптация параметров ключевых кадров к изменению частоты кадров. Изменение позволяет решить проблемы, возникающие при переключении на другую частоту кадров, такие как запаздывание или слишком ранее применение ключевых кадров;
  • Внесены улучшения в реализацию шкалы времени, включая специальную обработку некоторых видов звуковых файлов для однокадровых видео, обновление фреймворка Angular, оптимизация производительности, улучшение кэширования изображений и устранение подвисаний при потере кадров;
  • Улучшена отрисовка изображений в формате SVG благодаря задействованию для отрисовки библиотеки resvg;
  • Улучшен установщик для Windows, в котором решены проблемы, связанные с конфликтующими DLL;
  • В файлах проектов (*.osp) теперь используются только относительные пути, что позволяет произвольно перемещать каталог с проектом на другие системы. При сохранении проектов текущие пути автоматически конвертируются в относительные, в том числе для записей в истории изменений;
  • Появилась возможность подключения созданных пользователем преднастроек экспорта. Файлы с преднастройками могут помещаться в каталог .openshot_qt/presets, после чего становятся доступными для применения через диалог Export;
  • Добавлена поддержка однопроходного сжатия видео в режиме CRF (Constant Rate Factor), который может использоваться в любых преднастройках экспорта и по умолчанию используется в преднастройках для фортмата VP9;
  • Добавлено меню Help->About OpenShot->Changelog со списком изменений.


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

Анализ утечек конфиденциальных данных через репозитории на GitHub


Группа исследователей из Университета штата Северная Каролина опубликовала результаты (PDF) анализа случайного попадания конфиденциальных данных в публично доступные репозитории на GitHub. Например, из-за недосмотра в репозитории временами попадают оставленные в рабочем каталоге или вшитые в код ключи доступа к облачным сервисам, пароли к СУБД, ключи к VPN и сертификаты для цифровых подписей.

В ходе проделанной работы был исследован как статических срез, включающий 13% репозиториев на GitHub (около 4 млн репозиториев), так и проанализирована динамика появления новых утечек, для чего на протяжении 6 месяцев отслеживались все новые коммиты на GitHub. Для анализа использовались срезы содержимого GitHub, предоставляемые через хранилище BigQuery, а также запросы через Google Search API. Проверка охватывала только типовые форматы закрытых ключей и токены доступа к наиболее популярным платформам, таким как Amazon Web Services (AWS), Azure, Twitter, Google Cloud, Slack, Stripe, Facebook, Mailchimp, MailGun, Twilio, Square, Braintree и Picatic.

В результате было выявлено более 100 тысяч репозиториев, содержащих токены доступа к API или криптографические ключи. Всего было получено 575456 ключей и токенов, из которых 201642 уникальны. Большая часть утечек связана с размещением токенов доступа к Google API и AWS, а также случайно попавшими в репозиторий закрытыми ключами. 93.58% всех утечек выявлены в репозиториях, принадлежащих одному разработчику, а не совместным проектам.

Непрерывный мониторинг показал, что ежедневно на GitHub попадает несколько тысяч новых утечек конфиденциальных данных. 6% из выявленных в ходе динамического мониторинга утечек были сразу замечены разработчиками и удалены в течение часа. 12% забытых ключей оставались в открытом доступе не больше 24 часов, а 19% до 16 дней. 81% всех утечек остались незамеченными и продолжали оставаться в репозиториях спустя 16 дней.

Из наиболее заметных утечек отмечается попадание в репозиторий учётных данных к окружениям AWS, используемым одним из крупных сайтов, которым пользуются миллионы учащихся колледжей в США, а также к AWS-окружению сайта государственного учреждения одной из стран Восточной Европы. Кроме того, выявлено 564 ключа к Google API, которые использовались для копирования роликов YouTube на один из сайтов обмена видео в обход ограничений YouTube. В размещённых в репозиториях файлах конфигурации OpenVPN было выявлено 7280 оставленных RSA-ключей, позволяющих получить доступ к тысячам различных приватных сетей.

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

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

Выпуск BIND 9.14.0, разрывающий совместимость с серверами, не отвечающими на запросы с EDNS


После более года разработки консорциум ISC представил первый стабильный релиз новой значительной ветки DNS-сервера BIND 9.14. Поддержка ветки 9.14 будет осуществляться до 2 квартала 2020 года в рамках штатного цикла сопровождения. В следующем году будет сформирован LTS релиз 9.16, который будет поддерживаться три года. Обновления для прошлой LTS-ветки 9.11 продолжат выпускаться до декабря 2021 года. Поддержка ветки 9.12 прекратиться в июне.

BIND 9.14.0 стал первым стабильный выпуском, сформированным в рамках новой схемы нумерации версий. Нечётные номера релизов теперь присваиваются экспериментальным веткам, в которых развивается функциональность для будущих стабильных веток, имеющих чётный номер выпуска. Формирование отдельных альфа- и бета-веток прекращено. Таким образом, ветка BIND 9.13 была экспериментальной и на её базе сформирован стабильный релиз BIND 9.14.

Ключевым изменением в BIND 9.14.0 стало отключение кода, позволявшего взаимодействовать с DNS-серверами, на которых используется старое ПО с некорректно реализованной обработкой запросов EDNS (расширенные флаги, которые кодируются в специальных RR-записях без нарушения обратной совместимости со старым протоколом). Изменение не повлияет работу серверов, не поддерживающих EDNS, но корректно обрабатывающих запросы с флагами EDNS.

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

Ранее для обеспечения взаимодействия с серверами, не отвечавшими на запросы с флагами EDNS, в BIND применялся "грязный хак" - если после отправки запроса с флагами EDNS через определённый промежуток времени не поступал ответ, DNS-сервер считал, что расширенные флаги не поддерживаются и отправлял повторный запрос без флагов EDNS. Наличие подобного кода приводило к увеличению задержек из-за повторной отправки пакетов, повышению нагрузки на сеть и неоднозначности при отсутствии ответа из-за сетевых сбоев, а также мешало внедрению основанных на EDNS возможностей, таких как применение DNS Cookies для защиты от DDoS-атак.

Другие изменения в BIND 9.14.0:

  • Прекращена возможность сборки без OpenSSL и сборки без поддержки DNSSEC. Задействован предоставляемый библиотекой OpenSSL генератор псевдослучайных чисел (CSPRNG), работающий в неблокирующем режиме;
  • Для работы в UNIX-подобных ОС теперь требуется поддержка многопоточности (POSIX threads), расширенных параметров сокетов для IPv6 (RFC 3542) и Си-компилятора с поддержкой атомарных операций. При сборке в Linux для настройки привилегий процесса теперь требуется библиотека libcap;
  • Прекращено тестирование работы на устаревших ОС, включая старые версии UnixWare, BSD/OS, AIX, Tru64, SunOS, TruCluster и IRIX. Также удалена поддержка некоторых устаревших систем;
  • Существенно изменён код для управления задачами и работой с сокетами - задачи теперь распределяются с использованием очередей, закреплённых за ядрами CPU, а в сетевом стеке реализовано несколько циклов обработки событий, запускаемых в привязанных к CPU разных потоках. Указанные изменения позволили существенно повысить производительность на крупных многоядерных системах, особенно при использовании сетевых карт с поддержкой нескольких очередей обработки пакетов;
  • Добавлен новый механизм подключения плагинов, позволяющий подключать дополнительные обработчики запросов, реализованные в форме внешних библиотек. Со временем, планируется выделить в плагины код для обработки необязательных расширений, таких как средства противостояния DDoS-атакам. Например, в плагин filter-aaaa.so заменил собой встроенную реализацию filter-aaaa;
  • В named.conf помимо неполиткорректных названий "master" и "slave" теперь в качестве типов зон можно указывать "primary" и "secondary";
  • Включены по умолчанию в режиме "relaxed" наработки проекта QNAME Minimization (RFC-7816), нацеленные на сокращение передачи дополнительной информации в запросах с целью предотвращения утечек сведений о запрошенном домене и повышения приватности. В будущих выпусках планируется применить режим "strict". В указанном режиме резолвер не упоминает полное имя искомого хоста в своих запросах к вышестоящему серверу имён. Например, при определении адреса для хоста foo.bar.baz.com резолвер отправит авторитетному для зоны ".com" серверу запрос "QTYPE=NS,QNAME=baz.com", не упоминая "foo.bar";
  • Добавлен режим зеркалирования зон, позволяющий named получать и работать с локальными копиями зон, но без функционирования в форме авторитетного сервера для данных зон. DNS-ответы для зеркалируемых зон не устанавливают бит AA ("authoritative answer"), но выставляют бит AD ("authenticated data"). Основным назначением указанной возможности является обработка локальных копий корневой зоны DNS;
  • Существенно повышена производительность работы с большим числом зон, обработки большого числа запросов и работы с корневой зоной. Расширено применение glue-cache, ускорена работа сетевых обработчиков за счёт исключения миграции между ядрами CPU. В проведённых тестах по сравнению с BIND 9.12 производительность обработки тысячи зон возросла на 20%, миллиона зон на 15%, выполнение миллиона операций делегирования на 10%, обработка миллиона RR-запросов на 12%, рекурсивная обработка запросов на 18% и обработка корневой зоны на 10%;
  • Добавлена настройка validate-except для определения списка доменов, для которых не нужно производить валидацию DNSSEC;
  • Добавлена опция "--enable-fips-mode" для включения FIPS-режима в OpenSSL;
  • Добавлены новые настройки min-cache-ttl и min-ncache-ttl для переопределения минимального TTL для полученных DNS записей (positive caching) и несуществующих записей (negative caching);
  • Добавлена поддержка сборки с библиотекой libidn2 для поддержки интернационализированных имён IDNA2008 (ранее поддерживалась только библиотека idnkit-1 и IDNA2003).


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

Релиз браузера Falkon 3.1.0, развиваемого проектом KDE


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

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

  • Добавлена поддержка написания плагинов с использованием QML. Стабилизирована поддержка плагинов на языке Python;
  • Добавлен плагин MiddleClickLoader, вставляющий текст из буфера обмена при нажатии средней кнопки мыши;
  • Добавлен плагин для интеграции с KDE и обеспечения доступа к страницам из компонентов KDE Frameworks;
  • Добавлена начальная поддержка клиентских сертификатов (требуется QtWebEngine 5.12+);
  • Добавлена возможность регистрации собственных обработчиков протоколов (например, torrent://, sftp:// и т.п.)
  • Оформление панели поиска приведено к соответствию с оформлением приложений KDE;
  • Осуществлён переход на использование DBus вместо файлов блокировки и сокетов для взаимодействия с другими экземплярами приложения;
  • Cookie, помещённые в белый список, теперь не удаляются при вызове функции удаления всех Cookie;
  • В плагине VerticalTabs обеспечена возможность удаления групп свёрнутых вкладок кликом средней кнопкой мыши.
  • Устранены крахи в реализации AdBlock;
  • Улучшена совместимость с QtWebEngine 5.12 и обеспечена поддержка сборки с обособленными выпусками QtWebEngine.



Особенности Falkon:

  • Первостепенное внимание уделяется экономии потребления памяти, обеспечению высокого быстродействия и поддержанию отзывчивости интерфейса;
  • При построении интерфейса используется родной для каждого десктоп-окружения набор пиктограмм, виджетов и стилей, что позволяет обеспечить оформление, неотличимое от штатных программ для GNOME, KDE и Windows. В интерфейсе активно используются вкладки;
  • Интегрированная подсистема блокирования рекламы (AdBlock). Для блокирования можно использовать как внешние чёрные списки (EasyList от Adblock Plus), так и добавлять собственные правила блокирования рекламы. Поддержка быстрого блокирования Flash-роликов и наличие режима активации Flash-контента только после клика;
  • Панель быстрого запуска (Speed-dial), выводимая вместо пустых страниц и позволяющая организовать быстрый доступ к наиболее часто используемым сайтам;
  • Панель быстрого поиска, позволяющая мгновенно отправить запрос к определённым поисковым системам и сайтам;
  • Унифицированный интерфейс для работы с закладками, историей посещений и RSS-лентами, оформленный внутри одного окна;
  • Поддерживается возможность изменения оформления через подключение внешних визуальных тем. Гибкие возможности по настройке интерфейса;
  • Поддержка расширения функциональности через плагины;
  • Менеджер безопасных соединений (SSL Manager), позволяющий управлять локальными CA-сертификатами;
  • Режим приватной навигации, при котором данные об открытых страницах не оседают в кэше и истории посещений;
  • Управление закладками в стиле Chrome (через звёздочку в адресной строке). Реализация настроек также напоминает подход, принятый в Chrome;
  • Поддержка импорта закладок из браузеров Firefox и Chrome;
  • Интерфейс управления Cookie;
  • Поддержка написания дополнений для обработки содержимого web-страниц с использованием скриптов GreaseMonkey;
  • Поставка плагина PIM (Personal Information Manager) с реализацией системы управления персональной информацией, используемой для автоматизации заполнения персональных данных в web-формах (например, заполнение ФИО, email и т.п.);
  • Использование библиотеки Qt и модуля QtWebEngine, без привязки к библиотекам KDE и без добавления компонентов KDE в обязательные зависимости (интеграция с KDE реализована через плагин).


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

Доступен Wayland 1.17


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

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

Смена значительного номера версии Weston обусловлена изменениями ABI, нарушающими совместимость. В новой ветке Weston:

  • Добавлены сценарии сборки на базе системы meson (поддержка autotools сохранена, но требует указания флага "--enable-autotools" в configure).
  • Обеспечена поддержка стабильного протокола xdg-shell (интерфейс для создания и взаимодействия с поверхностями как с окнами).
  • В compositor-drm добавлена поддержка виртуального устройства вывода (настраивается в секции remote-output в weston.ini).
  • Добавлен плагин "remoting" для потоковой трансляции вывода на внешние хосты с использованием виртуального устройства вывода. Плагин запускается автоматически при наличии настроек виртуального вывода. Информация передаётся через отправку motion jpeg через RTP при помощи gstreamer. На удалённой стороне для просмотра достаточно любого RTP-клиента (на базе gstreamer также подготовлен скрипт remoting-client-receive.bash).
  • Добавлена реализация клиента simple-dmabuf-egl с поддержкой совместного использования нескольких видеокарт при помощи технологии DMABuff.
  • В libweston добавлен API для управления конфигурацией (weston_config), флаг для проверки прозрачности (is_opaque в weston_surface) и средства синхронизации на базе вызова sync_file (zwp_linux_explicit_synchronization_v1).
  • Добавлен API для отладки и специальный отладочный режим работы с выводом детальных логов (опция weston_debug).
  • Расширены возможности оболочки для автомобильных информационно-развлекательных систем (ivi-shell).
  • Добавлены дополнительные настройки ввода для libinput.
  • Улучшена поддержка буфера обмена в xwayland.
  • Обеспечена установка weston-screenshooter.
  • Добавлена настройка для включения отрисовки на базе библиотеки pixman.
  • В gl-renderer добавлена поддержка синхронизации GPU через fence sync fd.



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

  • В Firefox 65 включена штатная поддержка работы в графических окружениях на основе протокола Wayland. Для использования Wayland теперь достаточно запустить Firefox с переменной окружения GDK_BACKEND, выставленной в значение "wayland";
  • В Fedora 30 решено поставлять по умолчанию сборку Firefox на базе Wayland;
  • В GTK+ 3.24 в бэкенд, обеспечивающий работу поверх дисплейного сервера Wayland, добавлена поддержка протоколов ввода gtk-text-input и text-input-unstable-v3, обеспечено масштабирование курсора, а также устранены многие проблемы;
  • Панель рабочего стола MATE 1.22 адаптирована для работы под управлением бэкенда на основе протокола Wayland;
  • В GNOME 3.32 для сеанса на базе Wayland реализована поддержка дробного масштабирования;
  • Компания BMW открыла систему распределённой отрисовки RAMSES, поддерживающую Wayland;
  • Доступен первый стабильный выпуск пользовательского окружения Sway 1.0, использующего Wayland;
  • Опубликован Cage, композитный сервер на базе Wayland для запуска отдельных приложений в режиме киоска;
  • В KDE 5.15 полностью реализованы протоколы XdgStable, XdgPopups и XdgDecoration. В окружениях на базе Wayland обеспечена поддержка виртуальных рабочих столов, в том числе добавлена возможность выборочного размещения окна на заданных виртуальных рабочих столах (при использовании X11 подобной возможности нет и окно можно поместить либо на один виртуальный рабочий стол, либо на все). Добавлена поддержка перемещения элементов в режиме drag&drop при помощи жеста на сенсорном экране или тачпаде;
  • В мультимедийном центре Kodi 18.0 представлена поддержка Wayland;
  • В бета-версии Red Hat Enterprise Linux 8 рабочий стол GNOME по умолчанию использует Wayland;
  • В дисплейном сервере Mir стабилизированы средства для запуска Wayland-приложений и использования Mir в качестве композитного сервера для Wayland;


  • Дистрибутив Lubuntu наметил переход на Wayland на 2020 год. Поддержку Wayland планируется реализовать через портирование оконного менеджера Openbox на использование дисплейного сервера Mir, применяемого в качестве композитного сервера для Wayland;
  • Развивается проект AsteroidOS, в рамках которого предложена открытая ОС для умных часов, использующая Qt5 и Wayland;
  • Обеспечена поддержка Wayland в панели Latte Dock;
  • В рамках подготовки будущего стабильного релиза GTK+ 4 ведётся работа по модернизации API в контексте поддержки Wayland. Реализована новая платформа методов ввода, базирующаяся на протоколе Wayland;
  • В openSUSE Leap 15 предложен опциональный сеанс KDE на базе Wayland. При выборе GNOME по умолчанию предлагается Wayland;
  • В SUSE Linux Enterprise 15 задействован рабочий стол GNOME 3.26, по умолчанию работающий поверх Wayland;
  • Подготовлен тестовый выпуск платформы Tizen 5.0, по умолчанию использующей Wayland.
  • Бэкенд Qt Wayland добавлен в состав базовых сборок Qt. Развиваемая проектом Qt платформа для автомобильных систем Qt Automotive Suite включает Qt Wayland Compositor, многопоточную систему отрисовки для встраиваемых устройств, использующую протокол Wayland;
  • Продолжается работа над выпуском пользовательского окружения LXQt 1.0.0, главной задачей при разработке которого является доведение до полной готовности возможности работы поверх Wayland;
  • Fedora 29 стал пятым выпуском, в котором по умолчанию предложен сеанс GNOME на базе Wayland;


  • В разрабатываемой компанией LG открытой платформе webOS Open Source Edition развивается новый композитный менеджер, основанный на протоколе Wayland;
  • Продолжатся работа по улучшению поддержки Wayland в Enlightenment;
  • В дисплейном сервере Mir развивается возможность работы клиентов Wayland, что позволяет организовать запуск Wayland-приложений в окружении Mir, используя Mir в качестве композитного сервера для 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.
  • В панели Cairo-Dock предусмотрена возможность работы в окружении композитного сервера Weston.
  • Для тестирования работы 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.

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

Релиз набора компиляторов LLVM 8.0


После шести месяцев разработки представлен релиз проекта LLVM 8.0 (Low Level Virtual Machine) - GCC-совместимого инструментария (компиляторы, оптимизаторы и генераторы кода), компилирующего программы в промежуточный биткод RISC-подобных виртуальных инструкций (низкоуровневая виртуальная машина с многоуровневой системой оптимизации). Сгенерированный псевдокод может быть преобразован при помощи JIT-компилятора в машинные инструкции непосредственно в момент выполнения программы.

Из новых возможностей LLVM 8.0 отмечается включение защиты от атак Spectre, поддержка распараллеленной компиляции в ORC JIT, стабилизация компиляции в WebAssembly, добавление в Clang опции для инициализации автоматически распределяемых переменных, улучшение предкомпиляции и поддержка флага /Zc:dllexportInlines в clang-cl, поддержка архитектуры RISC-V в компоновщике lld, расширение средств диагностики.

Улучшения в Clang 8.0:

  • Добавлена возможность инициализации автоматически распределяемых переменных (например, локальных переменных, определённых внутри конструкций). По умолчанию автоматические переменные остаются не инициализированными. Инициализация осуществляется при указании опции "-ftrivial-auto-var-init=pattern" и позволяет избавиться от некоторых форм неопределённого поведения, вызванных заполнением переменных случайными остаточными данными из стека и регистров. Для принудительного отключения инициализации, например, для больших массивов, предусмотрен атрибут "dont_initialize_me";
  • Добавлена поддержка файлов повторного сопоставления данных профилировния (profile-remapping), которые позволяют сопоставить символьные имена и данные профилирования для использования ранее сгенерированных профилей выполнения вместе с другой версией программы с изменёнными таблицами символов (например, после переименования класса);
  • Добавлены новые диагностические опции: "-Wextra-semi-stmt" для выявления лишних ";" и "-Wempty-init-stmt" для выявления пустых блоков инициализации в конструкциях if, switch и for;
  • Помимо ранее добавленной защиты Retpoline в состав включены изменения для блокирования утечек, вызванных спекулятивным выполнением инструкций в современных CPU, при генерации последовательностей инструкций, загружающих данные из памяти. Защита может быть выборочно включена или отключена для определённых функций через указание атрибутов speculative_load_hardening и no_speculative_load_hardening, а также при помощи опции "-mspeculative-load-hardening";
  • Добавлены опции "-fprofile-filter-files=[regexes]" и "-fprofile-exclude-files=[regexes]" для выборочной фильтрации или исключения определённых файлов с данными профилирования в формате gcov;
  • В clang-cl, альтернативном интерфейсе командной строки, обеспечивающем совместимость на уровне опций с компилятором cl.exe из состава Visual Studio, добавлена поддержка опций "/Yc" и "/Yu" для предварительной компиляции заголовочных файлов. Добавлена поддержка флага "/Zc:dllexportInlines", аналогичного флагу "-fvisibility-inlines-hidden", для неприменения атрибутов dllexport и dllimport к inline-функциям;
  • Обеспечена возможность использования инструментов Address Sanitizer и Undefined Behaviour Sanitizer с MinGW;
  • Расширены возможности, связанные с поддержкой OpenCL, OpenMP и CUDA. В том числе добавлены некоторые новые возможности OpenMP 5.0 и расширены средства диагностики;
  • Внесены улучшения в UBSan (Undefined Behavior Sanitizer), детектор неопределенного поведения, выявляющий во время выполнения программы ситуации, когда поведение программы становится неопределенным. Расширен спектр ситуаций, охватываемых в режиме "-fsanitize=implicit-conversion" (Implicit Conversion Sanitizer), например, добавлено выявление проблем с составными операторами присваивания и обеспечено определение неявных изменений знака целых чисел ("-fsanitize=implicit-integer-sign-change"). При проверке выравнивания теперь выполняется проверка атрибутов, подобных "assume_aligned";
  • Расширены возможности кеширующего сервера clangd (Clang Server), например, добавлена поддержка глобального для всех файлов проекта индекса, обеспечено добавление спецификаторов пространств имён при автодополнении кода, предложен индекс экспортируемых символов, добавлено расширение LSP;
  • В linter clang-tidy добавлена большая порция новых проверок.

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

  • Снят флаг экспериментальной разработки с целевой платформы WebAssembly, поддержка которой теперь включена по умолчанию и не требует указания опции LLVM_EXPERIMENTAL_TARGETS_TO_BUILD. В разряд стабильных также переведены формат объектных файлов и C ABI для платформы WebAssembly. Экспериментальной пока остаётся только поддержка многопоточности в WebAssembly;
  • В утилиту llvm-cov добавлена опция "-format=lcov" для экспорта coverage-статистики в формате lcov;
  • Добавлена опция "-x86-discriminate-memops", использующая отладочную информацию для точной идентификации инструкций x86 с обращающимися к памяти операндами для упреждающей загрузки в кэш (cache prefetching);
  • В libFuzzer добавлена поддержка платформы Windows (x86_64);
  • В JIT API для компиляции по запросу (ORC, On Request Compilation) добавлена поддержка параллельной компиляции. Старый однопоточный API объявлен устаревшим, переименован в LegacyIRCompileLayer и будет удалён в LLVM 9. На основе нового API реализован демонстрационный JIT LLJIT. Поддержка MCJIT и ExecutionEngine будет продолжена, но для новых проектов ORC отмечен как предпочтительный JIT API;
  • В отладчике LLDB обеспечена подсветка синтаксиса выводимого кода на языке Си. В команде "expression" обеспечено автодополнение ввода табуляцией;
  • В libc++ прекращена поддержка macOS 10.6 и удалены типы std::dynarray и std::bad_array_length, не вошедшие в стандарт C++;
  • В компоновщике LLD добавлена поддержка архитектуры RISC-V и начальная поддержка ISA MSP430. Добавлены новые флаги: "--call-graph-profile", "--no-call-graph-profile", "--warn-ifunc-textrel", "-z interpose", "-z global", "-z nodefaultlib". При компоновке ELF-файлов сегмент ".note" теперь помещается в первую страницу генерируемого файла для упрощения доступа к важной информации (например .note.gnu.build-id) в core-файлах, даже в случае их усечения по размеру. Добавлена начальная поддержка создания разделяемых библиотек для WebAssembly;
  • В бэкенд для архитектуры x86 добавлена поддержка CPU AMD bdver2 на базе микроархитектуры Piledriver. Для указания в опции "-march" добавлен новый идентификатор CPU "cascadelake", идентичный skylake-avx512 с включением дополнительного набора инструкций avx512vnni. Прекращена подстановка инструкции ADCX, которая мало чем отличается от инструкции ADC, но увеличивает размер кода;
  • Внесены многочисленные улучшения в бэкенды для архитектур AArch64, ARM, SystemZ, Hexagon, MIPS и PowerPC.


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

Выпуск Samba 4.10.0


Опубликован релиз Samba 4.10.0, продолживший развитие ветки Samba 4 с полноценной реализацией контроллера домена и сервиса Active Directory, совместимого с реализацией Windows 2000 и способного обслуживать все поддерживаемые Microsoft версии Windows-клиентов, в том числе Windows 10. Samba 4 является многофункциональным серверным продуктом, предоставляющим также реализацию файлового сервера, сервиса печати и сервера идентификации (winbind).

Ключевые изменения в Samba 4.10:

  • В KDC и Netlogon добавлена поддержка модели запуска процессов "pre-fork", позволяющей поддерживать пул заранее запущенных процессов-обработчиков. Значение по молчанию параметра 'prefork children' в smdb.conf увеличено с 1 до 4;
  • В реализации модели pre-fork обеспечен автоматический перезапуск сбойных процессов. Задержки между попытками повторного запуска определяются через параметры "prefork backoff increment" (по умолчанию 10 секунд) и "prefork maximum backoff" (по умолчанию 120 секунд) - при каждой новой попытке время перед повторным запуском увеличивается на "prefork backoff increment" пока не достигнет значения "prefork maximum backoff" (для значений по умолчанию раскладка задержек будет следующей: 0, 10, 20, ..., 120, 120, ...);
  • В стандартной модели запуска процессов, применяемой по умолчанию для ответвления новых процессов ldap и netlogon при поступлении новых запросов, реализована возможность ограничения максимального числа запущенных процессов (лимит регулируется параметром 'max smbd processes' в smb.conf, по умолчанию значение 0, т.е. без ограничений);
  • Обеспечена полноценная поддержка языка Python 3. Поддержка Python 2 пока сохранена, но по умолчанию при сборке теперь используется Python 3 (Python 3.4+). Для сборки с Python 2 требуется установка переменной окружения: "PYTHON=python2 ./configure; PYTHON=python2 make". Сборка samba-биндингов возможна одновременно для Python 3 и Python 2 через указания флага 'configure --extra-python=/usr/bin/python2'. В ветке Samba 4.11 планируется прекратить поддержку Python 2 для биндингов и поднять требования к версии до Python 3.6;
  • Добавлена команда 'samba-tool gpo backup', позволяющая экспортировать из домена набор объектов GPO (Group Policy Objects) в формате XML. Также добавлена команда 'samba-tool gpo restore' для импорта обобщённых данных GPO из XML;
  • В команду 'samba-tool domain backup' добавлена поддержка опции 'offline', позволяющей безопасно создавать резервные копии локальной БД контроллера домена напрямую с диска. Новый метод не требует запуска Samba, работает быстре и включает дополнительные детали о внутренней структуре хранилища;
  • Добавлена команда 'samba-tool group stats', выводящая сводные сведения о распределении пользователей между группами в домене. Существующая команда 'samba-tool group list --verbose' расширена данными о числе пользователей в каждой группе;
  • Для LDAP изменено поведение расширения Paged Results, позволяющего частями обрабатывать результаты запросов с разбиением данных на страницы. Обработка страничных запросов в Samba приведена в соответствие с поведением серверов Windows (раньше разные страницы в выборке отдаваться на основе неизменного статического слепка БД, а сейчас учитывают изменения в БД, полученные с момента прошлого страничного запроса);
  • В выводимых в JSON-лог сообщениях аутентификации добавлено отображение идентификатора события ("eventId", код успешного или не успешного входа) и типа входа ("logonType", интерактивный, сетевой и незащищённый сетевой). В сообщениях о смене пароля и изменении участия в группе также теперь отображается "eventId" (пароль изменён, пароль сброшен, добавлен/удалён член группы). Изменён формат JSON-записей (убран префикс "JSON message_type:");
  • В утилиту samba-tool добавлена поддержка протокола SMBv2 (ранее samba-tool не мог подключаться к внешнему контроллеру домена, на котором был отключен SMBv1);
  • Добавлен новый VFS-модуль glusterfs_fuse, позволяющий увеличить производительность при обращении через Samba к разделам с GlusterFS, примонтированным с применением механизма FUSE (Filesystem in Userspace). Для повышения производительности модуль напрямую извлекает информацию об именах файлов через запрос расширенных атрибутов в ФС. Для включения ускорения достаточно добавить glusterfs_fuse в параметр "vfs objects". Новый модуль не заменяет собой vfs_glusterfs, а лишь предлагает альтернативный механизм доступа к разделам Gluster;
  • Объявлены устаревшими и будут удалены в следующей ветке Python-биндинги к SMB client. Удаление повлияет на пользователей, использующих собственные утилиты с 'from samba import smb';
  • Из-за наличия потенциальных проблем с безопасностью возможность сборки MIT Kerberos для AD DC переведена в разряд экспериментальных опций и требует явного указания в configure флага "--with-experimental-mit-ad-dc";
  • Удалён скрипт samba_backup, вместо которого следует использовать команду 'samba-tool domain backup offline'.


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

Компания Oracle опубликовала Java SE 12


После шести месяцев разработки компания Oracle выпустила платформу Java SE 12 (Java Platform, Standard Edition 12), в качестве эталонной реализации которой используется открытый проект OpenJDK. В Java SE 12 сохранена обратная совместимость с прошлыми выпусками платформы Java, все ранее написанные Java-проекты без изменений будут работоспособны при запуске под управлением новой версии. Готовые для установки сборки Java SE 12 (JDK, JRE и Server JRE) подготовлены для Linux (x86_64), Solaris (SPARC), Windows и macOS. Разработанная в рамках проекта OpenJDK эталонная реализация Java 12 полностью открыта под лицензией GPLv2 с исключениями GNU ClassPath, разрешающими динамическое связывание с коммерческими продуктами.

Java SE 12 отнесён к категории выпусков с обычным сроком поддержки, обновления для которого будут выпускаться до следующего релиза. В качестве ветки с длительным сроком поддержки (LTS) следует использовать Java SE 11, обновления для которого будут выпускаться до 2026 года. Прошлая LTS-ветка Java 8 будет поддерживаться до декабря 2020 года. Следующий LTS-релиз намечен на сентябрь 2021 года. Напомним, что начиная с выпуска Java 10 проект перешёл на новый процесс разработки, подразумевающий более короткий цикл формирования новых релизов. Новая функциональность теперь развивается в одной постоянно обновляемой master-ветке, в которую включаются уже готовые изменения и от которой раз в шесть месяцев ответвляются ветки для стабилизации новых выпусков.

Из новшеств Java 12 можно отметить:

  • Добавлена экспериментальная поддержка сборщика мусора Shenandoah, работающего с минимальными приостановками (Low-Pause-Time Garbage Collector). Планировщик развивается компанией Red Hat и примечателен использованием алгоритма, сокращающего время остановок во время сборки мусора за счёт проведения чистки параллельно с выполнением Java-приложений. Размер вносимых сборщиком мусора задержек предсказуем и не зависит от размера кучи, т.е. для куч в 200 MB и 200 GB задержки будут идентичны (не выходят за пределы 50 мс и обычно укладываются в 10 мс);
  • В состав включён набор для проведения точечных тестов производительности (microbenchmark), позволяющий организовать непрерывное тестирование производительности различных компонентов кодовой базы и упрощающий добавление собственных тестов;
  • Обеспечена предварительная поддержка новой формы выражений "switch", не требующей использования оператора "break" и позволяющей объединять повторяющиеся метки. Например, вместо
         switch (day1) {         case MONDAY:         case FRIDAY:         case SUNDAY:             System.out.println(6);             break;     ...     int numLetters;     switch (day2) {         case MONDAY:         case FRIDAY:         case SUNDAY:             numLetters = 6;             break;     ...  
    новые выражения позволяют указать
         switch (day1) {         case MONDAY, FRIDAY, SUNDAY -> System.out.println(6);     ...     int numLetters = switch (day2) {      case MONDAY, FRIDAY, SUNDAY -> 6;     ...  
  • Представлен API JVM Constants (java.lang.invoke.constant), позволяющий описать все типы загружаемых констант, используемых в файлах с Java-классами и в компонентах runtime;
  • Добавлена поддержка компактного форматирования чисел (NumberFormat.Style.SHORT). Например, вместо 1000 может быть выведено "1K", а вместо 1000000 - "1M";
  • Добавлен новый флаг "-XX:+ExtensiveErrorReport" для вывода более детальных сведений об ошибках в случае краха приложения;
  • В реализацию TLS добавлена поддержка потокового шифра ChaCha20 и алгоритма аутентификации сообщений (MAC) Poly1305;
  • Предложен один унифицированный порт для архитектуры AArch64 (ранее развивалось два порта aarch64 и arm64, теперь оставлен только порт aarch64);
  • По умолчанию на основе предлагаемого по умолчанию списка классов в процессе сборки JDK обеспечена генерация архивов CDS (Class-Data Sharing), обеспечивающих совместный доступ приложений к общим классам. При помощи CDS общие классы могут размещаться в отдельном совместно используемом архиве, что позволяет ускорить запуск приложений и снизить накладные расходы. Предоставление архивов CDS сокращает время запуска и позволяет избавить пользователей от выполнения "-Xshare:dump" для создания CDS;
  • В сборщик мусора G1 добавлена поддержка отменяемой чистки смешанных коллекций (Abortable Mixed Collections), позволяющая оборвать процесс необязательной стадии чистки, если превышено максимальное время приостановки на сборку мусора;
  • В сборщике мусора G1 реализована возможность возвращения операционной системе неиспользуемых областей памяти при неактивности приложения.
  • В сборщиках мусора G1 и Parallel появилась возможность выноса старых данных из кучи на альтернативные устройства памяти, такие как NV-DIMM;
  • В сборщик мусора ZGC (Z Garbage Collector) добавлена возможность выгрузки неиспользуемых классов (class unloading) для высвобождения занимаемых ими структур данных. Выгрузка производится в параллельном потоке и не влияет на выполнение Java-программ;
  • Для Linux реализован новый опциональный механизм запуска процессов POSIX_SPAWN (jdk.lang.Process.launchMechanism = POSIX_SPAWN), позволяющий обойти некоторые редко возникающие проблемы при ответвлении дочерних процессов. По умолчанию продолжает применяться механизм VFORK;
  • Отмечается, что библиотека Swing (client-libs/javax.swing) ограничена поддержкой только старых выпусков GTK, использование версии 3.20 и новее приводит к проблемам при отрисовке некоторых элементов интерфейса. При наличии в системе новых версий GTK в качестве обходного пути рекомендуется запускать приложения с опцией "-Djdk.gtk.version=2.2" для отката на GTK2+.


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

Релиз Firefox 66


Представлен релиз web-браузера Firefox 66, а также мобильной версии Firefox 66 для платформы Android. Кроме того, сформировано обновление ветки с длительным сроком поддержки 60.6.0. В ближайшее время на стадию бета-тестирования перейдёт ветка Firefox 67, релиз которой намечен на 15 мая.

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

  • Добавлена поддержка механизма "Scroll Anchoring", при котором позиция прокрутки привязывается к конкретному месту на странице и не меняется при отображении новых элементов в вышележащей области. Изменение позволит исключить ситуации, когда прокрутка сразу после открытия страницы приводит к постепенному смещению позиции и необходимости вновь и вновь прокручивать содержимое по мере загрузки изображений и внешних вставок (например, ранее возникали казусы, когда в момент клика на нужную ссылку завершалась загрузка расположенного выше рекламного баннера, контент смещался и клик попадал на баннер);
  • Включена блокировка автоматического воспроизведения мультимедийного контента со звуком (использование свойства autoplay без выставления флага mute или отсутствия звуковой дорожки). Воспроизведение звука теперь будет начинаться только при явном действии пользователя, например, при нажатии на кнопку или клике на видеоролике. Для включения режима блокировки в настройки добавлена специальная опция:

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

    Предложенный блокировщик позволит противостоять злоупотреблениям на некоторых сайтах, автоматически показывающих видеорекламу со звуком, которая создаёт неудобства и отвлекает пользователя при просмотре страниц. На этой неделе режим будет активирован по умолчанию для 25% пользователей, браузера, а на следующей неделе охват будет увеличен до 50%. Если не будет выявлено существенных проблем, ещё через неделю блокировщик будет активирован для всех пользователей;

  • В меню "V", появляющееся при открытии большого числа вкладок, добавлена кнопка "Search Tabs" для поиска открытых вкладок и упрощения навигации при наличии большого числа открытых страниц. Реализация кнопки базируется на уже давно существующей, но малоизвестной возможности, позволяющей выполнять поиск по заголовкам страниц во вкладках при помощи ключа "%" в адресной строке (например, после набора в адресной строке "% Free" будет показан список вкладок в заголовках которых присутствует слово "Free"). При нажатии кнопки "Search Tabs" осуществляется смена фокуса на адресную строку и ввод символа "%" с приглашением продолжить ввод;
  • Изменено оформление страницы новой вкладки в приватном режиме, в том числе добавлена строка поиска;
  • В сборках для Linux по умолчанию включено декорирование окон на стороне клиента (CSD, Client Side Decoration), при котором заголовок и рамки окна отрисовываются не оконным менеджером, а самим приложением. Применение CSD позволяет приблизить интерфейс Firefox к оформлению штатных приложений GNOME, а именно перенести панели вкладок в заголовок окна и реализовать скрытые рамки. Начиная с Firefox 60 данная возможность была реализована в виде опции. Отключить CSD можно через флажок в левом нижнем углу раздела кастомизации;


  • Изменено оформление и увеличена информативность страниц, выдаваемых при проблемах с сертификатами защищённого соединения. Реализован вывод отдельного предупреждения (MOZILLA_PKIX_ERROR_MITM_DETECTED) при выявлении подмены сертификатов и перехвата трафика HTTPS из-за активности антивирусов, вредоносного ПО или вмешательства провайдера в трафик;
  • С 4 до 8 увеличено число запускаемых браузером процессов-обработчиков, каждый из которых обслуживает несколько вкладок (браузер также запускает отдельные процессы для WebExtension и интерфейса). Увеличение до 8 числа процессов-обработчиков приведёт к повышению производительности и устойчивости к сбоям, но суммарное потребление памяти увеличится приблизительно на 6%. В дальнейшем планируется реализация режима строгой изоляции сайтов, в котором страницы разных сайтов всегда размещаются в памяти разных процессов, в каждом из которых применяется свой sandbox, а разделение будет осуществляться не по вкладкам, а по доменам, что позволит дополнительно изолировать содержимое внешних скриптов и iframe-блоков;
  • На странице открытия новой вкладки проводятся эксперименты c выводом дополнительного информационного контента, рекомендованного сервисом Pocket, а также с изменением раскладки размещения информации на странице. Например, у некоторых пользователей будет изменён размер блоков и число рекомендаций, предложены новые тематические секции (Здоровье, Наука, Технологии и Развлечения). Для отказа от участия в эксперименте следует в верхнем правом углу страницы новой вкладки отключить опцию "Content Discovery";
  • Проведена работа по повышению производительности и удобства работы с дополнениями. Для хранения настроек дополнений теперь используется БД IndexedDB, вместо разбора отдельных JSON-файлов, что позволяет заметно повысить скорость работы и снизить потребление памяти в дополнениях, активно читающих настройки (например, заметно возросла производительность Adblock Plus). Разработчикам дополнений для использование IndexedDB не требуется вносить изменения в свои продукты, штатный API storage.local() автоматически переведён на новый бэкенд;
  • Изменено оформление интерфейса для привязки горячих клавиш к функциям дополнений (вызывается через контекстное меню в about:addons);
  • В инструментах для web-разработчиков обеспечена возможность использования режима инспектирования при остановке отладчика;
  • Снижена интенсивность генерации событий таймеров setTimeout и setInterval в процессе загрузки страницы (по аналогии с фоновыми вкладками уменьшен предоставляемый бюджет времени, который расходуется на выполнение обработчика событий таймера), что позволило ускорить загрузку страниц при наличии работ, интенсивно нагружающих процессор;
  • Обеспечено корректное отображение HTML и тестовых файлов в кодировке UTF-8, открываемых с локального диска с использованием схемы URL "file:" (теперь не обязательно выставление в фале meta charset="utf-8" или изменение кодировки в меню);
  • Реализован модификатор "i" для сравнения атрибутов CSS с учётом регистра символов. Например, "a[href*="insensitive" i] {...}";
  • Добавлены отдельные CSS-свойства, упрощающие доступ к типовым частям составных CSS-свойств: padding-block, padding-inline, margin-block, margin-inline, inset, inset-block, inset-inline, border-block-color, border-block-style, border-block-width, border-inline-color, border-inline-style, border-inline-width, border-block, border-inline, border-start-start-radius, border-start-end-radius, border-end-start-radius и border-end-end-radius;
  • Добавлены новые медиа-запросы overflow-inline и overflow-block, позволяющие протестировать как устройство вывода обрабатывает (обрезает или допускает прокрутку) выходящий за пределы блока контент;
  • В CSS-функции calc() добавлена возможность манипуляции величинами в процентах при вычислении ширины ячеек и столбцов таблиц. Например, "width: calc(100%/7)";
  • Стандартизированы и избавлены от префикса "-moz-" ключевые слова min-content и max-content, которые можно применять для установки предпочтительного и минимального размера в свойствах width, height, flex-basis, min-width, max-width, min-height, max-height, min-block-size, min-inline-size, max-block-size, max-inline-size, block-size и inline-size;
  • Реализован метод HTMLSlotElement.assignedElements() для вывода последовательности элементов, прикреплённых к указанному слоту;
  • Реализован метод TextEncoder.encodeInto() для перекодирования USV-строки и помещения результата в объект unit8Array;
  • Добавлена поддержка свойств: InputEvent.inputType (тип изменения редактируемого контента - добавление, удаление, форматирование), Window.event и Event.returnValue;
  • Значение HTTP-заголовка "Accept" изменено по умолчанию на "*/*" (было - "text/html, application/xhtml+xml, application/xml; q=0.9, */*; q=0.8");
  • В Linux решена проблема с зависанием браузера при загрузке файлов;
  • В Windows 10 добавлена поддержка механизма Windows Hello для аутентификации на сайтах (при помощи API Web Authentication) без пароля с использованием отпечатка пальца, распознавания лица или USB-токена с поддержкой спецификации FIDO2;
  • На платформе macOS добавлена начальная поддержка сенсорных панелей (Touch Bar);
  • В версии для Android добавлена возможность открытия файлов с внешних носителей, например, с SD-карты.

Кроме новшеств и исправления ошибок в Firefox 66 устранена серия уязвимостей, из которых 26 (CVE-2019-9792, CVE-2019-9791, CVE-2019-9790, 13 объединены под CVE-2019-9789 и 10 под CVE-2019-9788) помечены как критические, т.е. могут привести к выполнению кода злоумышленника при открытии специально оформленных страниц.

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

Google открыл систему для создания sandbox-окружений для библиотек C/C++


Компания Google объявила от открытии проекта Sandboxed API, позволяющего автоматизировать процесс формирования sandbox-окружений для изолированного выполнения произвольных библиотек на языках C и C++. Изоляция кода библиотек позволяет защититься от потенциальных атак на предоставляемые библиотеками обработчики, создавая дополнительный барьер на случай наличия в их коде уязвимостей, которые можно эксплуатировать через манипуляции с поступающими в библиотеку внешними данными. Код открыт под лицензией Apache 2.0.

Изоляция осуществляется при помощи runtime Sandbox2, в котором применяются пространства имён, cgroups и seccomp-bpf. Вынесенный в sandbox код выполняется в отдельном процессе, для которого ограничивается доступ к системным вызовам и ресурсам, таким как файлы и сетевые соединения. Процессы получают доступ только к системным возможностям, которые непосредственно требуются для выполнения изолируемого кода.

Sandbox2 определяет компоненты для запуска процесса, применения к нему правил изоляции и сопровождения дальнейшего выполнения. Sandbox2 может использоваться отдельно от Sandboxed API для изоляции не только библиотек, но и произвольных процессов. Кроме повышения защиты, положительным моментом выноса кода в отдельные процессы является возможность отдельного регулирования лимитов на потребление библиотекой памяти и CPU, а также защита от сбоев - сбой в библиотеке не приводит к краху всего приложения.

Sandboxed API является надстройкой над Sandbox2, упрощающей портирование существующих библиотек для выполнения в изолированном режиме. Sandboxed API предоставляет промежуточный программный интерфейс, дающий возможность запустить код библиотеки в sandbox-окружении, а также организовать проброс в sandbox-окружение обращений к библиотечным вызовам и обеспечить доставку в основную программу результатов работы библиотеки. Обращение к изолированной библиотеке осуществляется через специализированный RPC, базирующийся на протоколе ProtoBuffs.

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

Для изолируемой библиотеки автоматически генерируется код с аннотациями изолируемых функций для сборочной системы Bazel и программным интерфейсом (SAPI) для взаимодействия между базовыми и изолированным процессами. Разработчик также должен сформировать заголовочный файл с правилами изоляции, который определяет все разрешённые системные вызовы и операции (чтение, запись, открытие файлов, доступ к времени, возможность установки обработчиков сигналов, поддержка выделения памяти через malloc и т.п.). Отдельно определяются файлы и каталоги к которым должна иметь доступ библиотека.

В настоящее время проект доступен только для Linux, но в будущем обещают добавить поддержку macOS и BSD-систем, а в отдалённой перспективе и Windows. Из планов также отмечается возможность изоляции библиотек на языках, отличных от C и C++, поддержка дополнительных runtime для изоляции (например, на базе аппаратной виртуализации) и возможность использования CMake и других сборочных систем (сейчас поддержка ограничена сборочной системой Bazel).

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


Новинки


страницы: