Ассоциация RIAA добилась блокировки репозитория youtube-dl на GitHub

GitHub заблокировал репозиторий и все зеркала проекта youtube-dl, развивающего утилиту командной строки для загрузки видео из YouTube и других сайтов. Блокировка произведена на основании действующего в США Закона об авторском праве в цифровую эпоху (DMCA) после поступления жалобы от Ассоциации звукозаписывающих компаний Америки (RIAA).

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

В коде также отмечено, что проверяемые в тестах материалы распространяются под лицензией «Standard YouTube License», ограничивающей просмотр только с YouTube и запрещающей тиражирование и распространение без получения согласия от владельца авторских прав. Сам же тест проверяет возможность загрузки материала в обход указанного на YouTube соглашения и применяемых методов ограничения доступа. RIAA подтверждает, что владельцы упомянутых в коде примеров видеоклипов и звукозаписей (Warner Music Group, Sony Music Group и Universal Music Group) не давали разработчикам youtube-dl разрешения на использование своего контента.

На основании данных фактов RIAA делает вывод, что youtube-dl специально развивается как инструмент для нарушения условий использования лицензионного контента, обхода механизмов защиты и организации распространения видеоклипов и звукозаписей без получения разрешения у правообладателя.

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

Выпуск серверной JavaScript-платформы Node.js 15.0

Состоялся релиз Node.js 15.0, платформы для выполнения сетевых приложений на языке JavaScript. Node.js 15.0 относится к ветке с обычным сроком поддержки, обновления для которой будут выпускаться до июня 2021 года. В ближайшие дни будет завершена стабилизация ветки Node.js 14, которая получит статус LTS и будет поддерживаться до апреля 2023 года. Сопровождение прошлой LTS-ветки Node.js 12.0 продлится до апреля 2022 года, а позапрошлой LTS-ветки 10.0 до апреля 2021 года.

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

  • Добавлена экспериментальная реализация класса AbortController, основанного на Web API AbortController и позволяющего отменять сигналы в выбранных API на основе Promise.
  • N-API (API для разработки дополнений) обновлён до версии 7, в которой появились новые методы для работы с ArrayBuffers.
  • Движок V8 обновлён до версии 8.6, что позволило реализовать в Node.js 15 такие возможности, как Promise.any(), AggregateError, String.prototype.replaceAll(), а также операторы логического присвоения «&&=», «||=» и «??=».
  • Осуществлён переход на новый выпуск пакетного менеджера NPM 7.0, в котором появилась поддержка рабочих областей (Workspaces) для объединения зависимости из нескольких пакетов в один пакет, реализована автоматическая установка peer-зависимостей, предложена вторая версия формата блокировок (package-lock.json v2) и поддержка файла-блокировки yarn.lock.
  • Обработчик unhandledRejection переключен на использование по умолчанию исключений «throw» вместо предупреждений «warn». В режиме «throw» при отсутствии явно определённого обработчика unhandledRejection генерирует неперехватываемое исключение, но если обработчик задан поведение не изменится. Для возвращения старого поведения предусмотрен флаг «—unhandled-rejections=warn».
  • В модуль «net» добавлена экспериментальная поддержка протокола QUIC, который лежит в основе HTTP/3 и рассматривается как альтернатива связке TCP+TLS для Web, решающая проблемы с большим временем установки и согласования соединений в TCP и устраняющая задержки при потере пакетов в процессе передачи данных. QUIC представляет собой надстройку над протоколом UDP, поддерживающую мультиплексирование нескольких соединений и обеспечивающую методы шифрования, эквивалентные TLS/SSL. Для включения поддержки QUIC в Node.js требуется сборка с флагом «—experimental-quic».

Напомним, что платформа Node.js может быть использована как для серверного сопровождения работы Web-приложений, так и для создания обычных клиентских и серверных сетевых программ. Для расширения функциональности приложений для Node.js подготовлена большая коллекция модулей, в которой можно найти модули с реализацией серверов и клиентов HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, модули для интеграции с различными web-фреймворками, обработчики WebSocket и Ajax, коннекторы к СУБД (MySQL, PostgreSQL, SQLite, MongoDB), шаблонизаторы, CSS-движки, реализации криптоалгоритмов и систем авторизации (OAuth), XML-парсеры.

Для обеспечения обработки большого числа параллельных запросов Node.js задействует асинхронную модель запуска кода, основанную на обработке событий в неблокирующем режиме и определении callback-обработчиков. В качестве способов мультиплексирования соединений поддерживаются такие методы, как epoll, kqueue, /dev/poll и select. Для мультиплексирования соединений используется библиотека libuv, которая является надстройкой над libev в системах Unix и над IOCP в Windows. Для создания пула потоков (thread pool) задействована библиотека libeio, для выполнения DNS-запросов в неблокирующем режиме интегрирован c-ares. Все системные вызовы, вызывающие блокирование, выполняются внутри пула потоков и затем, как и обработчики сигналов, передают результат своей работы обратно через неименованный канал (pipe). Выполнение JavaScript-кода обеспечивается через задействование разработанного компанией Google движка V8 (дополнительно Microsoft развивает вариант Node.js с движком Chakra-Core).

По своей сути Node.js похож на фреймворки Perl AnyEvent, Ruby Event Machine, Python Twisted и реализацию событий в Tcl, но цикл обработки событий (event loop) в Node.js скрыт от разработчика и напоминает обработку событий в web-приложении, работающем в браузере. При написании приложений для node.js необходимо учитывать специфику событийно-ориентированного программирования, например, вместо выполнения «var result = db.query(«select..»);» с ожиданием завершения работы и последующей обработкой результатов, в Node.js использует принцип асинхронного выполнения, т.е. код трансформируется в «db.query(«select..», function (result) {обработка результата});», при котором управление мгновенно перейдёт к дальнейшему коду, а результат запроса будет обработан по мере поступления данных. .

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

Представлен Rust GPU, инструментарий для разработки шейдеров на языке Rust

Компания Embark Studios, специализирующаяся на разработке игр, опубликовала первый экспериментальный выпуск проекта Rust GPU, нацеленного на использование языка Rust для разработки кода для GPU. Код опубликован под лицензиями MIT и Apache 2.0.

Желание использовать Rust для написания программ для GPU объясняется не только средствами для обеспечения безопасности программ и высокой производительностью, но и необходимостью получить современные инструменты для работы с пакетами и модулями для повышения эффективности процесса разработки. Развивающая Rust GPU компания Embark Studios также использует Rust в своём игровом движке и работает в направлении упрощения совместного использования кода на Rust для CPU и GPU.

Rust GPU продолжает развитие идей проекта RLSL, в рамках которого была предпринята попытка создания компилятора из Rust в универсальное промежуточное представление шейдеров SPIR-V, которое предложено в API Vulkan и поддерживается в OpenGL 4.6. На текущем этапе развития Rust GPU уже позволяет запускать простые графические шейдеры и компилировать значительную часть базовой стандартной библиотеки Rust. При этом проект ещё далёк до готовности к повсеместному использованию, например, в шейдерах пока не поддерживаются циклы.

На основе кода на языке Rust формируется представление шейдеров SPIR-V, для генерации которого разработан специальный бэкенд к компилятору Rust, работающий по аналогии с генератором кода cranelift, применяемым для компиляции в представление WebAssembly. В настоящее время упор делается на поддержку графического API Vulkan и представления SPIR-V, но в будущем планируется создание генераторов для представлений шейдеров DXIL (DirectX) и WGSL (WebGPU). На базе Cargo и crates.io развиваются средства для разработки и публикации пакетов с шейдерами в формате SPIR-V.

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

Выпуск дистрибутива Ubuntu 20.10

Доступен релиз дистрибутива Ubuntu 20.10 «Groovy Gorilla», который отнесён к промежуточным выпускам, обновления для которых формируются в течение 9 месяцев (поддержка будет осуществляться до июля 2021 года). Готовые тестовые образы созданы для Ubuntu, Ubuntu Server, Lubuntu, Kubuntu, Ubuntu Mate, Ubuntu Budgie, Ubuntu Studio, Xubuntu и UbuntuKylin (редакция для Китая).

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

  • Обновлены версии приложений. Рабочий стол обновлён до выпуска GNOME 3.38, а ядро Linux до версии 5.8. Обновлены версии GCC 10, LLVM 11, OpenJDK 11, Rust 1.14, Python 3.8.6, Ruby 2.7.0, Perl 5.30, Go 1.13 и PHP 7.4.9. Предложен новый выпуск офисного пакета LibreOffice 7.0. Обновлены системные компоненты, такие как glibc 2.32, PulseAudio 13, BlueZ 5.55, NetworkManager 1.26.2, QEMU 5.0, Libvirt 6.6.
  • Осуществлён переход на использование по умолчанию пакетного фильтра nftables. Для сохранения обратной совместимости доступен пакет iptables-nft, предоставляющий утилиты с тем же синтаксисом командной строки, как и в iptables, но транслирующий полученные правила в байткод nf_tables.
  • Предоставлена официальная поддержка плат Raspberry Pi 4 и Raspberry Pi Compute Module 4, для которых подготовлена отдельная сборка со специально оптимизированной редакцией Ubuntu Desktop. Поддержка Raspberry Pi 4 также реализована в штатном Ubuntu Server, в том числе появилась возможность загрузки с USB-накопителей и загрузки по сети.
  • В инсталлятор Ubiquity добавлена возможность включения аутентификации в Active Directory.
  • Из основного состава удалён пакет popcon (popularity-contest), применявшийся для передачи анонимизированной телеметрии о загрузке, установке, обновлении и удалении пакетов. На основе собранных данных формировались отчёты о популярности приложений и используемых архитектурах, которые использовались разработчиками для принятия решений о включении тех или иных программ в базовую поставку. Popcon входил в поставку c 2006 года, но начиная с выпуска Ubuntu 18.04 данный пакет и связанный с ним серверный бэкенд находились в неработоспособном виде.
  • Доступ к утилите /usr/bin/dmesg ограничен только для пользователей, входящих в группу «adm». В качестве причины упоминается наличие в выводе dmesg сведений, которые могут быть использованы атакующими для упрощения создания эксплоитов для повышения привилегий. Например, в dmesg в случае сбоев отображается дамп стека и имеется возможность определения адресов структур в ядре, которые могут способствовать обходу механизма KASLR.
  • Изменения в Ubuntu Server:
    • В пакетах adcli и realmd улучшена поддержка Active Directory.
    • Пакет Samba 4.12 собран с библиотекой GnuTLS, что привело к существенному увеличению производительности шифрования для SMB3.
    • IMAP-сервер Dovecot обновлён до выпуска 2.3.11 с поддержкой SSL/STARTTLS для проксируемых соединений doveadm и возможностью выполнения IMAP-транзакций в пакетном режиме.
    • В состав включена библиотека liburing, позволяющая использовать интерфейс асинхронного ввода/вывода io_uring, опережающий libaio по производительности (например, liburing поддерживается в пакетах samba-vfs-modules и qemu).
    • Добавлен пакет с системой для сбора метрик Telegraf, которая может использоваться совместно с Grafana и Prometheus для построения инфраструктуры мониторинга.
  • Изменения в образах для облачных систем: Сборки со специализированными ядрами для облачных систем и KVM для ускорения загрузки по умолчанию теперь загружаются без initramfs (обычные ядра по-прежнему используют initramfs). Для ускорения первой загрузки реализована поставка предварительно сформированной начинки для snap, позволяющей избавиться от динамической загрузки необходимых компонентов (seeding).
  • В Kubuntu предложен рабочий стол KDE Plasma 5.19, набор приложений KDE Applications 20.08.1 и библиотека Qt 5.14.2. Обновлены версии Elisa 20.08.1, latte-dock 0.9.10, Krita 4.3.0 и Kdevelop 5.5.2.
  • В Ubuntu MATE как и в прошлом выпуске поставляется рабочий стол MATE 1.24.
  • В Lubuntu предложено графическое окружение LXQt 0.15.0.
  • Ubuntu Budgie: В Shuffler, интерфейсе для быстрой навигации по открытым окнам и группировки окон по сетке, добавлена функция «липкие соседи» и реализованы средства для управления из командной строки. В меню добавлена поддержка поиска настроек GNOME и удалены многие отвлекающие внимание пиктограммы. Добавлена тема оформления Mojave с пиктограммами и элементами интерфейса в стиле macOS. Добавлен новый апплет с полноэкранным интерфейсом для навигации по установленным программам, который может использоваться как альтернатива меню приложений. Рабочий стол Budgie обновлён до свежего среза кода из Git.
  • В Ubuntu Studio осуществлён переход на использование KDE Plasma в качестве рабочего стола по умолчанию (ранее предлагался Xfce). Отмечается, что KDE Plasma имеет качественные инструменты для графических художников и фотографов (Gwenview, Krita) и лучшую поддержку планшетов Wacom. Также осуществлён переход на новый инсталлятор Calamares. В Ubuntu Studio Controls возвращена поддержка Firewire (доступны драйверы на базе ALSA и FFADO). В состав включён новый менеджер звуковых сеансов, ответвившийся от Non Session Manager, и утилита mcpdisp. Обновлены версии Ardour 6.2, Blender 2.83.5, KDEnlive 20.08.1, Krita 4.3.0, GIMP 2.10.18, Scribus 1.5.5, Darktable 3.2.1, Inkscape 1.0.1, Carla 2.2, Studio Controls 2.0.8, OBS Studio 25.0.8, MyPaint 2.0.0. Из базовой поставки удалён Rawtherapee в пользу Darktable. В основной состав возвращён Jack Mixer.
  • В Xubuntu обновлены версии компонентов Parole Media Player 1.0.5, Thunar File Manager 1.8.15, Xfce Desktop 4.14.2, Xfce Panel 4.14.4, Xfce Terminal 0.8.9.2, Xfce Window Manager 4.14.5 и т.п.

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

Реализована возможность сборки FreeBSD в других операционных системах

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

Работа по реализации кросс-сборки продолжалась с 2017 года и в сентябре был включён последний патч, необходимый для полноценной работы buildworld и buildkernel в других ОС. Сборка запускается при помощи специально подготовленной прослойки ./tools/build/make.py и может быть произведена в системах с установленным LLVM 10 или 11.

Среди других изменений:

  • На основе грантов от организации FreeBSD Foundation ведётся работа по улучшению поддержки WiFi, усовершенствованию фреймворка Linux KPI для совместимости с DRM API ядра Linux, расширению совместимости Linuxulator с приложениями, обновлению графических драйверов, добавлению сжатия Zstd в OpenZFS, расширению разделов RAID-Z на лету, улучшению поддержки отладчика LLDB. Сотрудники FreeBSD Foundation также работают над усовершенствованием компоновщика rtld (Run-Time Dynamic Linker) и загрузчика ELF, улучшением блокировок для UNIX domain socket, модернизацией сборочной инфраструктуры, расширением поддержки ARM64 и миграцией репозитория на Git.
  • Завершена разработка скриптов и сборочных инструментов для миграции с Subversion на Git. Все известные проблемы в svn2git решены, в том числе проблемы с несогласованностью метаданных в истории изменений из Subversion. Опробован новый Git-репозиторий и запущена сборка снапшотов веток 12.2 и 13.0-CURRENT из Git. Окончательный переход на Git будет осуществлён при подготовке релиза FreeBSD 13.0. Разработку существующих стабильных веток на Git переводить пока не планируют. В конце октября планируют запустить тестовый Git-репозиторий для обкатки хуков и ознакомления разработчиков. Перевод на Git основных репозиториев src и doc ожидается в середине ноября, сроки по переносу репозиториев портов пока не определены.
  • Коллекция портов FreeBSD преодолела рубеж в 40 тысяч портов, число незакрытых PR составляет 2525, из которых 595 PR ещё не разобраны. Обновлены версии Perl 5.32, PostgreSQL 12, PHP 7.4, GNOME 3.36, Qt5 5.15.0, Emacs to 27.1, KDE Frameworks 5.74.0 и pkg 1.15.8. Реализована поддержка LibreOffice 7.0.
  • Обновлены компоненты графического стека. Mesa и связанные порты переведены на использование сборочной системы meson вместо autotools. Обновлены X.org Server 1.20.9, libdrm и libevdev. графические drm-драйверы синхронизированы с ядром Linux 5.4.62. В основные кодовые базы libdrm и libevdev приняты изменения для поддержки FreeBSD.
  • Проведена работа по использованию udev/evdev и libinput для повышения совместимости с устройствами ввода, для которых теперь не требуются локальные настройки. Изменение будет предложено в выпуске FreeBSD 12.2, ожидаемом 27 октября.
  • В инфраструктуре эмуляции окружения Linux (Linuxulator) началась работа по решению проблем с функционированием конкретных Linux-приложений (например, ведётся разбор причин неработоспособности Chromium, Firefox, DB2, Oracle, EAGLE, Memcached, Nginx, Steam, signal-desktop, VLC, 1password). За отчётный период объявляемая эмулятором версия ядра Linux повышена до 3.10.0 (как в RHEL 7), налажена работа вызова gettynam в chroot, улучшена поддержка memfd, добавлены системный вызов splice и ioctl BLKPBSZGET, реализована поддержка kcov. Добавлен новый sysctl compat.linux.use_emul_path. Переделана обработка ошибок. До версии 1.0.123 обновлён порт sysutils/debootstrap для создания изолированных окружений с Debian и Ubuntu. Изменения будут включены в состав выпуска 12.2.
  • Файлы DTS (Device Tree Sources) синхронизированы с ядром Linux 5.8 в ветке HEAD и с ядром 5.6 в ветке 12-STABLE.
  • Продолжается работа по реализации возможности работы NFS поверх шифрованного канала связи на базе TLS 1.3, вместо использования Kerberos (режим sec=krb5p), который ограничивается шифрованием только RPC-сообщений и реализуется только программно. Новая реализация использует предоставляемый ядром стек TLS, позволяющий задействовать средства аппаратного ускорения. Код NFS поверх TLS готов для тестирования, но поддержка TLS пока ограничена версией 1.2.
  • Ведётся работа по реализации подсистемы XDP (eXpress Data Path), позволяющей запускать еBPF-программы на уровне сетевого драйвера с возможностью прямого доступа к DMA-буферу пакетов.
  • В IPSec добавлена поддержка ESN (Extended Sequence Number).
  • Ведётся работа по поддержке SoC NXP LS1046A на базе ARMv8 Cortex-A72.
  • Развивается драйвер ure для гигабитных ethernet-адаптеров RealTek RTL8153 с интерфейсом USB 3.0.
  • Во FreeBSD-CURRENT добавлена экспериментальная поддержка little-endian архитектуры PowerPC64 (PowerPC64LE) для систем POWER8 и POWER9.
  • В беспроводном стеке улучшена поддержка 802.11n и 802.11ac. Развивается драйвер athp для чипов Atheros 802.11ac, основанный на коде Linux-драйвера ath10k. В прослойке LinuxKPI обеспечена начальная поддержка беспроводных драйверов.
  • Завершена работа по интеграции алгоритма сжатия ZSTD в OpenZFS. Изменения уже переданы в репозиторий OpenZFS и войдут в состав выпуска OpenZFS 2.0.
  • Продолжается работа над CheriBSD, ответвления от FreeBSD для исследовательской процессорной архитектуры CHERI (Capability Hardware Enhanced RISC Instructions). Уже почти готова адаптация для процессора ARM Morello, который будет поддерживать систему управления доступом к памяти CHERI, основанную на модели защиты проекта Capsicum. Чип Morello планируют выпустить в 2021 году. Продолжается развитие CheriBSD для эталонного прототипа CHERI на базе архитектуры MIPS64 и порта для архитектуры RISC-V.

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

Доступна коммуникационная платформа Asterisk 18

После года разработки состоялся релиз новой стабильной ветки открытой коммуникационной платформы Asterisk 18, используемой для развёртывания программных АТС, систем голосовой связи, VoIP-шлюзов, организации IVR-систем (голосовое меню), голосовой почты, телефонных конференций и call-центров. Исходные тексты проекта доступны под лицензией GPLv2.

Asterisk 18 отнесён к категории выпусков с расширенной поддержкой (LTS), обновления для которого будут выпускаться в течение пяти лет вместо свойственных для обычных выпусков двух лет. Поддержка прошлой LTS-ветки Asterisk 16 продлится до октября 2023 года, а ветки Asterisk 13 до октября 2021 года. При подготовке LTS-выпусков основное внимание уделяется обеспечению стабильности и оптимизации производительности, приоритетом же обычных выпусков является наращивание функциональности.

Ключевые улучшения в Asterisk 18:

  • Добавлена поддержка видеокодека H.265/HEVC.
  • Для приложений и каналов реализована поддержка протокола двунаправленной потоковой передачи звука AudioSocket.
  • Добавлена поддержка протоколов STIR/SHAKEN для борьбы с фальсификацией идентификатора звонящего (caller ID). Поддерживается как отправка заголовка
  • Добавлена поддержка протоколов STIR/SHAKEN для борьбы с фальсификацией идентификатора звонящего (caller ID). Поддерживается как отправка заголовка с заверением идентичности при исходящих вызовов, так и проверка звонящего при приёме входящих вызовах. с заверением идентичности при исходящих вызовов, так и проверка звонящего при приёме входящих вызовах.
  • Добавлен новый режим форматирования лога «plain», при использовании которого не используются управляющие символы для выделения цветом и указывается информация о файле, функции и номере строки.
  • В API Streams реализованы базовые возможности для управления согласованием кодеков (ACN, Advanced Codec Negotiation).
  • Поведение приложения BridgeAdd приближено к приложению Bridge и также выставляет для канала переменную BRIDGERESULT, для передачи в сценарий обработки вызовов (dialplan) информации о результате совмещения каналов.
  • В модуле res_pjsip реализованы новые опции incoming_call_offer_pref и outgoing_call_offer_pref для определения желаемого порядка кодеков для входящих и исходящих вызовов.
  • В AMI (Asterisk Manager Interface) добавлена возможность указания ‘Content-Type’ для действий SendText.
  • В ARI (Asterisk REST Interface), API для создания внешних коммуникационных приложений, которые могут напрямую манипулировать каналами, мостами и другими компонентами телефонии в Asterisk, для вызовов ‘bridges.addChannel’ добавлен параметр ‘inhibitConnectedLineUpdates’ для предотвращения передачи идентификатора нового подключённого канала другим участникам совмещённого канала. В ресурс ARI Channel добавлен субресурс «externalMedia«, при помощи которого можно осуществлять подстановку в совмещённые каналы звука с внешнего сервера или передавать на внешний сервер звук из совмещённых каналов.
  • Активирована по умолчанию настройка «hide_messaging_ami_events», позволяющая исключить передачу событий о сообщениях для снижения нагрузки на приложения AMI и ARI.
  • В шлюз для организации конференций ConfBridge добавлены опции «maximum_sample_rate» для задания максимальной частоты дискретизации и «text_messaging» для управления включением возможности обмена текстовыми сообщениями для пользователя.
  • В приложениях Dial, Page и ChanIsAvail разрешено использование пустых позиций в списке адресатов, что позволяет упростить сценарии обработки вызовов за счёт исключения необходимости проверки пустых позиций.
  • Во встроенном http-сервере добавлена опция «enable_status» для отключения обработки внутренней страницы «/httpstatus».
  • В res_musiconhold добавлен режим «playlist», позволяющий указать список файлов или URL для воспроизведения.
  • В res_rtp_asterisk механизм чёрных списков преобразован в систему списков доступа (ACL) с опциями ice_deny, ice_permit, ice_acl, stun_deny, stun_permit и stun_acl.

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

Выпуск дистрибутива для создания сетевых хранилищ TrueNAS 12

Компания iXsystems представила выпуск TrueNAS 12, дистрибутива для быстрого развёртывания сетевого хранилища (NAS, Network-Attached Storage). TrueNAS 12 основан на кодовой базе FreeBSD 12, отличается интегрированной поддержкой ZFS и возможностью управления через веб-интерфейс, построенный с использованием Python-фреймворка Django. Для организации доступа к хранилищу поддерживается FTP, NFS, Samba, AFP, rsync и iSCSI, для повышения надежности хранения может применяться программный RAID (0,1,5), для авторизации клиентов реализована поддержка LDAP/Active Directory. Размер iso-образа 827МБ (x86_64).

Дистрибутив TrueNAS образован в результате объединения дистрибутива FreeNAS и коммерческой платформы TrueNAS. По историческим причинам FreeNAS и TrueNAS разрабатывались, тестировались и выпускались отдельно, несмотря на большой объём общего кода (95%). Пользователям предложены две редакции TrueNAS CORE и TrueNAS Enterprise. TrueNAS CORE аналогичен FreeNAS и поставляется бесплатно. TrueNAS Enterprise является платным и включает дополнительные возможности для предприятий.

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

  • Реализация файловой системы обновлена до OpenZFS 2.0 на базе «ZFS on Linux», а содержимое базового окружения синхронизировано с FreeBSD 12-STABLE.
  • Встроенная возможность шифрования в ZFS и поддержка репликации данных ZFS во внешние хранилища в зашифрованном виде.
  • Поддержка двухфакторной аутентификации при доступе к TrueNAS. В качестве второго фактора поддерживаются приложения TOTP, такие как Google Authenticator.
  • Поддержка хранения и извлечения паролей и ключей шифрования с серверов, поддерживающих протокол KMIP (Key Management Interoperability Protocol). Возможность доступна только в TrueNAS Enterprise.
  • Оптимизация производительности (SMB, iSCSI, ZFS) и обновление практически всех компонентов платформы.
  • Возможность настройки всех подсистем при помощи TrueNAS API 2.0 и поддержка удалённого доступа к API с использованием ключей. Поддержка первой версии API прекращена.
  • Механизм Fusion Pools, позволяющий создавать пулы из быстрых Flash-накопителей для хранения метаданных и мелких файлов, и жестких дисков для основного хранения.
  • Поддержка VPN — TrueNAS теперь может использоваться в качестве сервера или клиента OpenVPN.
  • Интеграция с TrueCommand Cloud, облачным сервисом для мониторинга и централизованного управления серверами TrueNAS.

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

Выпуск NetBSD 9.1

Опубликован выпуск операционной системы NetBSD 9.1. Для загрузки подготовлены установочные образы размером 820 Мб, доступные в сборках для 57 системных архитектур и 16 различных семейств CPU.

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

  • Добавлена поддержка распараллеленного шифрования диска с использованием драйвера cgd (cryptographic disk driver).
  • Добавлена локаль C.UTF-8.
  • Добавлена поддержка Xen 4.13.
  • Внесены патчи для повышения надёжности и улучшения работы ZFS. Добавлена возможность использования ZFS с драйверами dk (disk partition) и ld (logical disk).
  • Обновлён гипервизор NVMM, в котором улучшен код эмуляции и повышена производительность.
  • Добавлены дополнительные настройки для межсетевого экрана NPF и расширены возможности утилиты npfctl.
  • Улучшена поддержка графического сеанса на базе X11. Оконный менеджер по умолчанию заменён с TWM на CTWM. В xterm включена поддержка сиксельной графики (sixel, компоновка изображения из 6-пиксельных блоков).
  • Повышена стабильность файловой системы LFS.
  • Добавлена возможность использования USB-токенов с криптоключами в режиме raw, которые можно использовать в Firefox.
  • Добавлена поддержка дополнительных аппаратных генераторов псевдослучайных чисел при формировании энтропии, включая RNG, предоставляемые в SoC Allwinner и Rockchip.
  • В звуковой подсистеме решены некоторые проблемы с совместимостью с OSSv4.
  • Добавлен драйвер aq для Aquantia 10 Gigabit Еthernet.
  • Добавлен драйвер uxrcom(4) для последовательных портов на базе USB-адаптеров Exar.
  • Улучшена поддержка кликпадов и трекпадов, применяемых на ноутбуках Lenovo ThinkPads.
  • В ядро встроен модуль evbarm с поддержкой интегрированных MIDI-секвенсоров и CGD.
  • Налажена реализация sigaltstack на системах с CPU AArch64, что решило проблемы, проявляющиеся в Go и Erlang.
  • Расширен вывод в программах lastlogin, w и cal, а также добавлена команда ‘show’ в утилите hdaudioctl.
  • Повышена производительности консоли framebuffer на системах amd64, что позволило ускорить процесс загрузки.
  • Обновлены версии GCC, dhcpcd, OpenSSL и tzdata.
  • Установочный образ «uefi-installimage» для USB и SD-накопителей переименован в «installimage», так как он не ограничен поддержкой UEFI.

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

Microsoft опубликовал тестовую сборку браузера Edge для Linux

Компания Microsoft опубликовала первую тестовую сборку браузера Edge для платформы Linux. Версия для Linux распространяется через сайт Microsoft Edge Insiders и репозиторий Linux Software Repository в форме rpm- и deb-пакетов для Ubuntu, Debian, Fedora и openSUSE. Сборку планируют обновлять еженедельно.

Возможности для конечных пользователей в Edge для Linux пока отстают от вариантов для Windows и macOS, но браузер вполне пригоден для разработчиков, которые желают использовать платформу Linux для проверки своих сайтов и приложений на совместимость с Edge. Web-платформа, инструменты для разработчиков, API для дополнений и средства для автоматизированного тестирования доведены до паритета со сборками для других платформ. Из ограничений отмечается возможность привязки только к локальной учётной записи (подключение к учётным записям в Microsoft Account и AAD не поддерживается), а также отсутствие возможности синхронизации настроек, закладок и истории навигации.

Напомним, что в позапрошлом году компания Microsoft начала развитие новой редакции браузера Edge, переведённой на движок Chromium. В процессе работы над новым браузером компания Microsoft присоединилась к сообществу, разрабатывающему Chromium, и начала возвращать в проект создаваемые для Edge улучшения и исправления. Например, в Chromium были переданы улучшения, связанные с технологиями для людей с ограниченными возможностями, управлением с сенсорных экранов, поддержкой архитектуры ARM64, повышением удобства прокрутки, обработкой мультимедийных данных. Проведена оптимизация и доработка бэкенда D3D11 для ANGLE, прослойки для трансляции вызовов OpenGL ES в OpenGL, Direct3D 9/11, Desktop GL и Vulkan. Открыт код развиваемого в Microsoft движка WebGL.

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

Релиз Firefox 82

Состоялся релиз web-браузера Firefox 82. Кроме того, сформировано обновление ветки с длительным сроком поддержки 78.4.0. На стадию бета-тестирования перешла ветка Firefox 83, релиз которой намечен на 17 ноября.

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

  • Внесены улучшения, нацеленные на повышение удобства просмотра видео. Например, в режиме Picture-In-Picture изменено размещение и оформление кнопок управления воспроизведением, которые стали более заметными. Для пользователей macOS предложена клавиатурная комбинация (Option + Command + Shift + правая скобка) для вызова окна Picture-In-Picture, работающая ещё до начала воспроизведения видео. В Windows для аппаратного декодирования видео задействован механизм DirectComposition, позволяющий снизить нагрузку на CPU и продлить время автономной работы.
  • Для всех пользователей Windows 10, имеющих необходимое оборудование, по умолчанию активирован движок композитинга WebRender, написанный на языке Rust и позволяющий добиться существенного увеличения скорости отрисовки и снижения нагрузки на CPU за счёт выноса на сторону GPU операций отрисовки содержимого страницы, которые реализованы через выполняемые в GPU шейдеры.

    Для Linux в списке блокировки для WebRender остаются проприетарные драйверы NVIDIA, а также драйверы Intel при использовании экранных разрешений 3440×1440 и выше. На платформе Android движок WebRender включён для устройств с GPU Adreno 5xx (Google Pixel, Google Pixel 2/XL, Oneplus 5), Adreno 6xx (Google Pixel 3, Google Pixel 4, Oneplus 6), а также смартфонов Pixel 2 и Pixel 3.

    Пользователи бинарных драйверов NVIDIA в Linux, которые вручную включили WebRender (gfx.webrender.all=true в about:config) и не пользуются композитингом, могут столкнуться с регрессией, которая выражается в том, что верхняя половина экрана превращается в закрашенный прямоугольник. Решить проблему можно, либо включив композитинг, либо экспортировав любую из следующих переменных окружения: MOZ_GTK_TITLEBAR_DECORATION=system (к сожалению, она включает заголовок окна) или MOZ_X11_EGL=1 (эта опция выключает поддержку WebGL 2). Также можно отключить на время WebRender.

  • Проведена работа по ускорению загрузки страниц и сокращению времени запуска браузера. Сайты с разбивкой на основе элементов flexbox стали загружаться на 20% быстрее, а восстановление сеансов после перезапуска требует на 17% меньше времени. На платформе Windows примерно на 10% ускорено открытие новых окон.
  • Добавлена возможность ознакомления с новыми статьями при сохранении страницы в сервис Pocket через кнопку на панели — во всплывающем диалоге теперь показывается подборка статей с добавляемого сайта, которые выбраны другими пользователями Pocket.
  • В экранном ридере, который используется людьми с проблемами со зрением, обеспечено корректное разделение абзацев, улучшена работа при автозаполнении номеров кредитных карт и добавлено отображение ошибок при некорректном заполнении параметров в диалоге вывода на печать.
  • Расширен набор настроек, синхронизируемых между устройствами. Например, добавлена синхронизация параметров прокрутки, а также настроек экранной клавиатуры и режима picture-in-picture.
  • В собираемую на платформе Linux телеметрию (about:support) добавлен учет сведений о протоколе оконной подсистемы (Wayland, Wayland/DRM, XWayland или X11).

  • Включён по умолчанию API Media Session, предоставляющий средства для настройки блока с информацией о воспроизведении мультимедийного контента в области уведомлений. Через данный API web-приложение может настроить оформление информации в области уведомлений, например, разместить кнопки приостановки, перемещения по потоку или переходу к следующей композиции. Также при помощи API Media Session можно добавить обработчики для мультимедийных кнопок, срабатывающие в области уведомлений или при активном хранителе экрана.
  • В атрибуте sandbox элемента ‹iframe› добавлена поддержка флага «allow-downloads» для блокирования автоматических загрузок, инициируемых из iframe.
  • В CSS добавлен псевдо-элемент «::file-selector-button«, через который можно настроить кнопку выбора файлов внутри элемента ‹input type=»file»›.
  • Указание некорректного селектора в псевдо-классах :is() и :where() теперь не приводит к прекращению отрисовки всего списка.
  • Директива inline в заголовке Content-Disposition теперь игнорируется, если в элементе ‹a› задан атрибут «download».
  • Прекращена поддержка вложенных и рекурсивных вызовов метода Document.execCommand(), которые теперь возвращают значение «false».
  • Element.setPointerCapture() теперь генерирует исключение NotFoundError при передаче некорректного идентификатора указателя.
  • Свойство window.name теперь сбрасывается в пустое значение при загрузки во вкладке страницы с другим доменом и восстанавливается при нажатии кнопки «назад» и восстановлении старой страницы.
  • В инструментах для web-разработчиков в панели инспектирования сети добавлено отображение серверных событий (Server-sent event), которые позволяют в любое время отследить данные, отправляемые сервером через механизм Server-sent. Панель сообщений (Message) в инструментах инспектирования сети объединена с панелью ответов сервера (Response), что позволяет просматривать сообщения, передаваемые через WebSockets и server-sent event, непосредственно рядом со списком ответов сервера.
  • В версии для платформы Android:
    • Добавлен просмотр загрузок;
    • Улучшен поиск;
    • Обеспечен вывод наиболее часто открываемых сайтов;
    • В блоке New Tab обеспечен показ недавно закрытых вкладок;
    • Реализовано автоматическое закрытие вкладок;
    • Добавлена поддержка переноса паролей для пользователей с master-паролем (теперь Primary Password);
    • Реализована возможность переключения вкладок через жест с горизонтальным сдвигом на адресной строке;
    • Включён режим зашиты от отслеживания перемещений через редиректы;
    • Включена автоматическая очистка сторонних Cookie.
  • Тестировавшиеся в бета-версии Firefox 82 не блокирующий другие вкладки новый диалог web-аутентификации, интерфейс добавления собственных поисковых движков и служебная страница about:processes отложены до следующего выпуска. В Firefox 83 также ожидается добавление в настройки опции для включения режима «HTTPS Only» (автоматическое перенаправление с HTTP на HTTPS), реализация контекстного меню для вывода на печать выделенного фрагмента, активация WebRender для GPU Intel Gen12 и задействование нового JIT-компилятора WarpBuilder, обеспечивающего ускорение от 5 до 20%.

Кроме новшеств и исправления ошибок в Firefox 82 устранено 15 уязвимостей, из которых 12 помечены как опасные. 10 уязвимостей (собраны под CVE-2020-15683 и CVE-2020-15684) вызваны проблемами работы с памятью, такими как переполнения буферов и обращение к уже освобождённым областям памяти. Потенциально данные проблемы способны привести к выполнению кода злоумышленника при открытии специально оформленных страниц.

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

Выпуск распределенной системы управления исходными текстами Git 2.29

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

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

  • Включена экспериментальная возможность использования алгоритма хэширования SHA-256 вместо скомпрометированного SHA-1 при записи объектов в репозиторий. Хэш формируется на основе содержимого каждого объекта в Git и является его уникальным идентификатором. Любое изменение данных или заголовков объекта приводит к изменению его идентификатора. Возникновения коллизий в алгоритме хэшировния теоретически допускает формирование двух разных наборов данных, имеющих один результирующий хэш. При активности в пять миллионов коммитов в секунду вероятность возникновения естественной коллизии оценивается в 50% за 7 млрд лет.

    К сожалению алгоритм SHA-1 оказался не стойким к искусственному формированию коллизий, но совершение реальных атак по подмене объектов в Git через манипуляцию коллизиями SHA-1 маловероятно, так как для подмены отдельного объекта необходимо, чтобы подменяемый объект уже содержал шаблон коллизии, т.е. произвольный блок подменить не получится. Теоретически возможна лишь замена уже ранее добавленного атакующим блока, но она требует чтобы в изначально принятом в репозиторий вредоносном блоке присутствовал достаточно большой кусок бинарных данных, вызывающих коллизию, что при работе с кодом не останется незамеченным. Кроме того, каждый объект в Git содержит не только данные, но и служебный заголовок, содержимое которого не подконтрольно атакующему, но который участвует при вычислении проверочного хэша, что нарушает условия возникновения коллизии.

    Так как каждая коллизия требует огромных ресурсов для вычисления, уже вычисленные шаблоны, приводящие к коллизиям, известны и ранее в git была добавлена проверка на попытки их использования в объектах. Теперь Git переходит на новый уровень защиты и намерен заменить алгоритм хэширования на более надёжный, что требует изменения формата объектов. Изначально планировалось использовать алгоритм SHA3-256, но в конечном счёте разработчики остановились на SHA2-256, так как SHA2 уже применяется в Git для цифровых подписей. Логика выбора в том, при использовании SHA-256 и SHA3-256 в коде Git, компрометация любого из них приведёт к проблемам с безопасностью, поэтому лучше зависеть от одного алгоритма, а не от двух. Кроме того, SHA-256 широко распространён и поддерживается во всех криптографических библиотеках, а также демонстрирует очень хорошую производительность.

    В Git 2.29 реализована возможность включения нового формата при создании репозитория:

           $ git init --object-format=sha256 repo     Initialized empty Git repository in /home/ttaylorr/repo/.git/        $ cd repo     $ echo 'Hello, SHA-256!' ›README.md     $ git add README.md     $ git commit -m "README.md: initial commit"     [master (root-commit) 6e92961] README.md: initial commit      1 file changed, 1 insertion(+)      create mode 100644 README.md       $ git rev-parse HEAD     6e929619da9d82c78dd854dfe237c61cbad9e95148c1849b1f96ada5ee800810  

    На данном этапе можно лишь выбрать между SHA-1 и SHA-256, но одновременно в одном репозитории сочетать разные хэши пока невозможно. Также пока ни один Git-провайдер, включая GitHub, не поддерживает репозитории с хэшами SHA-256. В будущем планируют добавить возможности для обеспечения переносимости. В частности, будет добавлена возможность вычисления для записываемых объектов одновременно хэшей SHA-1 и SHA-256, с сохранением таблиц трансляции. Подобные таблицы трансляции позволят старым клиентам SHA-1 обращаться к репозиториям, использующим SHA-256, а также, после преобразования репозитория в SHA-256, дадут возможность продолжить обращения к коммитам по ссылкам с хэшами SHA-1.

  • В команды «git fetch» и «git push» добавлена поддержка обратных спецификаций ссылок (refspec), расширающих правила отражения ссылок между ветками в локальном и внешнем репозиториях. Обратные спецификаций ссылок могут быть полезны в ситуациях, когда нужно не только выбрать, но и исключить некоторые ветки из сопоставления. Например, когда необходимо извлечь все ветки «refs/heads/*», кроме одной «refs/heads/ref-to-exclude», раньше требовалось создание больших списков, явно включающих каждую ветку, или использования скриптов вида:
         $ git ls-remote origin 'refs/heads/*' |       grep -v ref-to-exclude |       awk '{ print $2:$2 }' |       xargs git fetch origin  

    В Git 2.29 появился оператор исключения «^». Выражения с данным оператором допускают шаблоны, но охватывают только источник и не могут ссылаться на идентификаторы объектов. Начинающиеся с «^» спецификации ссылок исключаются из сопоставления и рассматриваемый выше пример можно свести к команде:

         $ git fetch origin 'refs/heads/*:refs/heads/*' ^refs/heads/ref-to-exclude    

    Обратные спецификации ссылок также можно использовать в настройках:

         $ git config --add remote.origin.fetch ^refs/heads/foo  
  • В «git shortlog» появилась возможность группировки коммитов по содержимому дополнительных полей, таких как «Reviewed-by:» и «Coauthored-by:», а не только по автору или отправителю коммита («git shortlog -c»). В Git 2.29 добавлена опция «—group», которая по умолчанию обеспечивает группировку по автору («—group=author»), а также поддерживает группировку по отправителю коммита («—group=committer») и произвольным полям («—group=trailer:поле»). Например, для вывода списка наиболее активной рецензирующих разработчиков можно указать:
         $ git shortlog -ns --group=trailer:reviewed-by v2.28.0.. | head -n5      40  Eric Sunshine      10  Taylor Blau       4  brian m. carlson       2  Elijah Newren       1  Jeff King  

    Допускается указание нескольких выражений «—group» при запуске и использование опции «—format» для изменения формата вывода. Например, для учёта соавторов или помощников в списке:

         $ git shortlog -ns --group=author --group=trailer:co-authored-by     $ git shortlog --format="...helped %an on %as" --group=trailer:helped-by v2.28.0..v2.29.0  
  • В «git for-each-ref» добавлены новые поля, которые можно указывать в опции «—format», помимо имени, типа и идентификатора объекта. Например, добавлены поля contents:size, subject:sanitize и модификатор :short для отображения коротких идентификаторов объектов. Также разрешено указание нескольких аргументов «—merged» и «—no-merged» для фильтрации ссылок.
  • При возникновении конфликта в процессе выполнения операции «git merge» заголовок сообщения о коммите теперь помещается в скобки для более явного отделения данных из коммита от диагностических сообщений Git.
  • Добавлена новая настройка «merge.renormalize», при установки которой операции сheck-out и check-in выполняются для каждой стадии трёхстороннего слияния.
  • Возвращена отключённая в выпуске Git 2.27 вторая версия коммуникационного протокола Git, который используется при удалённом подключении клиента к Git-серверу. Ошибка, приводившая к проблемам со стабильностью, диагностирована и устранена.
  • В команду «git bisect», используемую для выявления ревизии, в которой возникло регрессивное изменение, добавлена опция «—first-parent» для изменения отбора коммитов, проходящих между заведомо рабочей ревизией и ревизией в которой зафиксировано проявление проблемы. При указании «—first-parent» учитываются только коммиты в объединённой ветке, пропуская сам коммит на слияние.
  • Повышена эффективность работы внутренней команды «git index-pack», применяемой при выполнении «git push» или «git fetch», за счёт распараллеливания операций упаковки индекса на многоядерных системах.
  • Добавлена настройка «merge.suppressDest», управляющая добавлением фразы «into $dest» в сообщения «Merge $upstream into $dest», выдаваемые при слиянии веток (ранее, по умолчанию для основной ветки фраза «into $dest» не выводилась).
  • Устранена уязвимость в бэкенде «contrib/mw-to-git» (не собирается по умолчанию), предназначенном для помещения и извлечения данных из MediaWiki. Проблема позволяет выполнить код при обращении экземпляру MediaWiki, находящимся под контролем злоумышленника.

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

Выпуск децентрализованного коммуникационного клиента Jami

Увидел свет первый выпуск децентрализованной коммуникационной платформы Jami, распространяемый под кодовым именем «Together». Jami входит в число проектов GNU и ранее развивался под именем Ring (до этого SFLphone), но в 2018 году был переименован, чтобы избежать столкновений с торговыми марками, принадлежащими компаниям, развивающим коммуникационные решения. Код распространяется под лицензией GPLv3. Бинарные сборки подготовлены для GNU/Linux (Debian, Ubuntu, Fedora, SUSE, RHEL и т.п.), Windows, macOS, iOS, Android и Android TV. Развивается несколько вариантов интерфейсов на базе Qt, GTK и Electron.

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

Изначально проект развивался как программный телефон на базе протокола SIP, но уже давно вышел за эти рамки в пользу модели P2P, сохранив при этом совместимость с SIP и возможность совершения звонков при помощи данного протокола. Программа поддерживает различные кодеки (G711u, G711a, GSM, Speex, Opus, G.722) и протоколы (ICE, SIP, TLS), обеспечивает надёжное шифрование видео, голоса и сообщений. Из сервисных функций можно отметить переадресацию и удержание вызовов, запись звонков, история вызовов с поиском, автоматический контроль громкости, интеграция с адресными книгами GNOME и KDE.

Для идентификации пользователя в Jami применяется децентрализованный глобальный механизм аутентификации учётных записей, основанный на реализации адресной книги в форме блокчейна (применяются наработки проекта Ethereum). Один идентификатор пользователя (RingID) может использоваться одновременно на нескольких устройствах и позволяет связываться с пользователем независимо от того, какое из устройств активно, без необходимости поддержания разных идентификаторов на смартфоне и ПК. Адресная книга, отвечающая за трансляцию имён в RingID, хранится на группе узлов, поддерживаемых разными участниками, в том числе можно запустить свой узел для поддержания локальной копии глобальной адресной книги (Jami также реализует отдельную внутреннюю адресную книгу, поддерживаемую клиентом).

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

При разработке новой версии принято решение трансформировать Jami из простой P2P-системы в систему групповых коммуникаций, позволяющую организовать общение больших групп, сохранив при этом высокий уровень конфиденциальности и безопасности при индивидуальном общении. Jami «Together» включает в себя основу для развития данной идеи. Главные изменения:

  • Существенно улучшена работа в сетях с низкой пропускной способностью. Для взаимодействия пользователей теперь достаточно пропускной способности всего в 50 kB/s в режиме передачи видео и 10 kB/s для аудиовызовов.
  • Снижено потребление ресурсов версиями для платформ Android и iOS, как для активности в фоновом режиме, так и при выполнении звонков, что положительно отразилось на времени автономной работы устройств.
  • Полностью переписан клиент Jami для платформы Windows, который теперь более органично вписывается в интерфейс Windows 10 и может использоваться в планшетном режиме.
  • Расширены средства для создания видеоконференций с несколькими участниками. До сих пор поддержка конференции была скорее формальной и не работала должным образом. В новом выпуске реализация конференций доведена до рабочего вида и сняты ограничения на число участников — размер конференций теперь ограничивается только имеющейся пропускной способностью и системными ресурсами.
  • Предоставлена возможность динамической смены режима трансляции в конференции, например, участник может переключиться на показ презентации или предоставить доступ к содержимому экрана.
  • Предложена функция «Точки рандеву» («Rendezvous Points»), позволяющая одним кликом превратить клиентское приложение в сервер для проведения конференций. Точки рандеву создаются в форме специальной учётной записи, к которой можно присоединить несколько участников, через отправку им приглашений. Возможно создание как приватных, так и публичных конференций. Подобные конференции остаются постоянно активными и не мешают совершению других звонков. Например, учитель можно создать точку рандеву и использовать её для дистанционного обучения учеников. Для подключения после получения приглашения достаточно совершить звонок на связанную с точкой рандеву учётную запись.
  • Реализован сервер управления учётными записями JAMS (Jami Account Management Server), позволяющий централизованно управлять учётными записями локального сообщества или организации, сохраняя при этом распределённый характер сети. JAMS может применяться для интеграции с LDAP, ведения адресной книги и применения специфичных настроек для групп пользователей.
  • Реализована возможность подключения плагинов, позволяющих создавать дополнительные возможности без необходимости изучения внутренностей Jami. На данном этапе возможности плагинов ограничены обработкой видеопотока, например, предложен плагин GreenScreen, использующий методы машинного обучения для скрытия или замены фона при видеовызовах.

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