Компания IBM открыла наработки, связанные с процессором A2O POWER

Компания IBM объявила о передаче сообществу OpenPOWER процессорного ядра A2O POWER и FPGА-окружения для симуляции работы эталонного процессора на его основе. Связанные с A2O POWER документация, схемы и описания аппаратных блоков на языках Verilog и VHDL опубликованы на GitHub под лицензией CC-BY 4.0.

Дополнительно сообщается о передаче сообществу OpenPOWER инструментария Open-CE (Open Cognitive Environment), основанного на IBM PowerAI. Open-CE предлагает коллекцию настроек, рецептов и скриптов для упрощения создания и развёртывания систем машинного обучения на базе таких фреймворков, как TensorFlow и PyTorch, через формирование готовых пакетов или образов контейнеров для запуска под управлением платформы Kubernetes. До этого в руки сообщества OpenPOWER была передана архитектура набора команд (ISA) Power и спецификации, связанные с процессором A2I POWER.

Процессорное ядро A2O POWER разработано для встраиваемого применения в системах на чипе (SoC), поддерживает неупорядоченное выполнение команд и диспетчеризацию, обеспечивает многопоточность (2 потока SMT), имеет GSHARE-подобные средства предсказания ветвления и предоставляет 64-разрядную архитектуру набора команд Power 2.07 Book III-E. A2O продолжает развитие ранее открытого ядра A2I в области оптимизации производительности отдельных потоков и использует аналогичный модульный дизайн и структуру взаимодействия узлов.

Модульный дизайн подразумевает наличие MMU, движка выполнения микрокода и интерфейса подключения акселераторов AXU (Auxiliary Execution Unit), позволяющего создавать специализированные решения на базе A2O, оптимизированные для различных видов нагрузки, например, для ускорения операций машинного обучения.

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

Выпуск новой стабильной ветки Tor 0.4.4

Представлен выпуск инструментария Tor 0.4.4.5, используемого для организации работы анонимной сети Tor. Версия Tor 0.4.4.5 признана первым стабильным выпуском ветки 0.4.4, которая развивалась последние пять месяцев. Ветка 0.4.4 будет сопровождаться в рамках штатного цикла сопровождения — выпуск обновлений будет прекращён через 9 месяцев (в июне 2021 года) или через 3 месяца после релиза ветки 0.4.5.x. Длительный цикл поддержки (LTS) обеспечен для ветки 0.3.5, обновления для которой будут выпускаться до 1 февраля 2022 года. Поддержка веток 0.4.0.x, 0.2.9.x и 0.4.2.x прекращена. Поддержка ветки 0.4.1.x будет прекращена 20 мая, а 0.4.3 — 15 февраля 2021 года.

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

  • Улучшен алгоритм выбора сторожевых узлов (guard), в котором решена проблема с балансировкой нагрузки, а также повышена производительность и безопасность. В новом алгоритме недавно выбранный сторожевой узел не может получить статус первичного, за исключением ситуации, когда все ранее выбранные сторожевые узлами недостижимы.
  • Реализована возможность балансировки нагрузки для onion-сервисов. Сервис на базе третьей версии протокола теперь можно выполнять роль бэкенда OnionBalance, настраиваемого при помощи опции HiddenServiceOnionBalanceInstance.
  • Актуализирован список запасных серверов директорий, который не обновлялся с прошлого года и из 148 серверов рабочими остались 105 (новый список включает 144 записи, сгенерированные в июле).
  • На релеях разрешена работа с ячейками EXTEND2, доступными только по адресу IPv6, а также разрешено совершение операции расширения цепочек поверх IPv6, если клиент и релей поддерживают IPv6. Если при расширении цепочек узлов ячейка достижима одновременно по IPv4 и IPv6, то адрес IPv4 или IPv6 выбирается случайным образом. Для расширения цепочки разрешено использование существующего соединения IPv6. Запрещено использование внутренних адресов IPv4 и IPv6.
  • Расширен объём кода, который может быть отключён при запуске Tor без поддержки релея.

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

Прекращение разработки библиотеки Moment.js, имеющей 12 млн загрузок в неделю

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

Библиотека Moment.js предоставляет функции для манипуляцией со временем и датами, и является стандартом де-факто в своей области. Еженедельно библиотеку загружают около 12 млн раз. Причиной принятого решения стало осознание, что проект устарел и не укладывается в современные парадигмы разработки на JavaScript. Из недостатков упоминается относительно большой размер библиотеки (329KB без сжатия, 70КБ со сжатием) и использование изменяемых объектов (mutable, изменении копии объекта moment приводит к изменению оригинала).

В обзорах также упоминаются такие проблемы Moment.js, как низкая производительность, запутанность API, отсутствие поддержки Tree_shaking (урезание неиспользуемого кода для сокращения размера web-приложения) и трудоёмкость отладки. Судя по всему, последней каплей, подтолкнувшей разработчиков к решению о переводе Moment.js в режим сопровождения, стало изменение в системе аудита web-страниц Lighthouse, встроенной в инструменты для web-разработчиков Chrome — несколько дней назад Lighthouse стал выдавать предупреждение об излишней раздутости кода Moment.js и предлагать альтернативы для замены.

Современные браузеры предоставляют встроенный API Intl для работы с локалями и часовыми поясами. Данный API используется в библиотеке Luxon, созданной одним из участников разработки Moment.js и преподносимой как следующий шаг эволюции Moment.js. Кроме Luxon в качестве вариантов для замены упоминаются библиотеки Day.js (минималистичный вариант Moment.js с похожим API, занимает около 7КБ без плагинов), date-fns, js-joda (порт java.time) и штатные JavaScript-объекты Date и Intl, а также находящийся в состоянии черновика API Temporal.

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

Gentoo начал распространение универсальных сборок ядра Linux

Разработчики Gentoo Linux объявили о готовности универсальных сборок с ядром Linux, созданных в рамках проекта Gentoo Distribution Kernel для упрощения процесса сопровождения ядра Linux в дистрибутиве. Проектом предоставлена возможность как установки готовых бинарных сборок с ядром, так и использования унифицированного ebuild для сборки, настройки и установки ядра при помощи пакетного менеджера, по аналогии с другими пакетами.

Ключевыми отличиями предложенных готовых сборок от ручного формирования ядра является возможность автоматического обновления при установке регулярных обновлений системы пакетным менеджером (emerge —update @world) и предопределённый набор опций по умолчанию, гарантирующий работоспособность после обновления (при ручном конфигурировании, если ядро не загрузится или возникнет сбой, не ясно, связана ли проблема с некорректным выставлением параметров или с ошибкой в самом ядре).

Для установки ядра Linux сформировано три пакета, которые можно установить вместе с остальными пакетами системы и после этого обновлять всю систему вместе с ядром одной командой, не прибегая к отдельной сборке ядра.

  • sys-kernel/gentoo-kernel — ядро с типовым набором патчей genpatches, специфичных для Gentoo. Сборка осуществляется при помощи пакетного менеджера с использованием настроек по умолчанию или заданием собственной конфигурации.
  • sys-kernel/gentoo-kernel-bin — уже собранные бинарные сборки gentoo-kernel, которые можно использовать для быстрой установки ядра без его компиляции на своей системе.
  • sys-kernel/vanilla-kernel — ebuild c ванильным ядром Linux, предлагаемым в виде, распространяемом на сайте kernel.org.

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

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

Выпуск Java SE 15

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

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

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

  • Встроена поддержка алгоритма создания цифровой подписи EdDSA (Edwards-Curve Digital Signature Algorithm RFC 8032). Предложенная реализация EdDSA не зависит от аппаратных платформ, защищена от атак по сторонним каналам (обеспечено постоянное время всех вычислений) и по производительности опережает существующую реализацию ECDSA, написанную на языке Си, при том же уровне защиты. Например, EdDSA при использовании эллиптической кривой со 126-битным ключом демонстрирует производительность аналогичную ECDSA с эллиптической кривой secp256r1 и 128-битным ключом.
  • Добавлена экспериментальная поддержка запечатанных («sealed») классов и интерфейсов, которые не могут использоваться другими классами и интерфейсами для наследования, расширения или переопределения реализации. Запечатанные классы также предоставляют более декларативный способ ограничения использования суперкласса, чем модификаторы доступа, основанный на явном перечислении подклассов, разрешённых для расширения.
         package com.example.geometry;       public sealed class Shape          permits com.example.polar.Circle,                  com.example.quad.Rectangle,                  com.example.quad.simple.Square {...}  
  • Добавлена поддержка скрытых классов, которые не могут быть использованы напрямую байткодом других классов. Ключевым назначением скрытых классов является использование во фреймворках, динамически генерирующих классы во время выполнения и использующих их косвенно, через отражение. Подобные классы обычно имеют ограниченный жизненный цикл, поэтому их поддержание для доступа из статически сгенерированных классов не оправдано и приведёт лишь к увеличению потребления памяти. Скрытые классы также позволяют обойтись без нестандартного API sun.misc.Unsafe::defineAnonymousClass, который намечен на удаление в будущем.
  • Стабилизирован и признан готовым для повсеместного использования сборщик мусора ZGC (Z Garbage Collector). ZGC работает в пассивном режиме, насколько это возможно минимизирует задержки из-за сборки мусора (время остановки при использовании ZGC не превышает 10 мс.) и может работать как с небольшими, так и с огромными кучами, размером от нескольких сотен мегабайт до многих терабайт.
  • Стабилизирован и признан готовым для повсеместного использования сборщик мусора Shenandoah, работающий с минимальными приостановками (Low-Pause-Time Garbage Collector). Shenandoah разработан компанией Red Hat и примечателен использованием алгоритма, сокращающего время остановок во время сборки мусора за счёт проведения чистки параллельно с выполнением Java-приложений. Размер вносимых сборщиком мусора задержек предсказуем и не зависит от размера кучи, т.е. для куч в 200 MB и 200 GB задержки будут идентичны (не выходят за пределы 50 мс и обычно укладываются в 10 мс);
  • Стабилизирована и введена в язык поддержка текстовых блоков — новой формы строковых литералов, позволяющих включать в исходный код многострочные текстовые данные без применения в них экранирования символов и сохраняя исходное форматирования текста в блоке. Обрамление блока осуществляется тремя двойными кавычками. Например, вместо кода
         String html = "‹HTML›" +     "nt" + "‹BODY›" +     "ntt" + "‹H1›"Java 15 is here!"‹/H1›" +     "nt" + "‹/BODY›" +     "n" + "‹/HTML›";  

    можно указать:

         String html = """     ‹HTML›       ‹BODY›         ‹H1›"Java 15   is here!"‹/H1›       ‹/BODY›     ‹/HTML›""";  
  • Переработан API Legacy DatagramSocket. Старые реализации java.net.DatagramSocket и java.net.MulticastSocket, заменены на современную реализацию, более простую для отладки и сопровождения, а также совместимую с виртуальными потоками, развиваемыми в рамках проекта Loom. На случай возможного нарушения совместимости с существующим кодом старая реализация не удалена и может быть активирована при помощи опции jdk.net.usePlainDatagramSocketImpl.
  • Предложена вторая экспериментальная реализация сопоставления c образцом в операторе «instanceof», которая позволяет сразу определить локальную переменную для обращения к проверенному значению. Например, можно сразу писать «if (obj instanceof String s && s.length() > 5) {.. s.contains(..) ..}» без явного определения «String s = (String) obj».
    Было:
         if (obj instanceof Group) {       Group group = (Group) obj;       var entries = group.getEntries();     }  

    Теперь можно обойтись без определения «Group group = (Group) obj»:

         if (obj instanceof Group group) {       var entries = group.getEntries();     }  
  • Предложена вторая экспериментальная реализация ключевого слова «record«, предоставляющего компактную форму для определения классов, позволяющую обойтись без явного определения различных низкоуровневых методов, таких как equals(), hashCode() и toString(), в случаях, когда данные сохраняются только в полях, поведение работы с которыми не меняется. Когда в классе используются типовые реализации методов equals(), hashCode() и toString(), в нём можно обойтись без их явного определения:
         public record BankTransaction(LocalDate date,                                double amount,                                String description) {}  

    Данное объявление приведёт к автоматическому добавлению реализаций методов equals(), hashCode() и toString() в дополнение к конструктору и методам, контролирующим изменение данных (getter).

  • Предложен второй предварительный вариант API Foreign-Memory Access, позволяющий Java-приложениям безопасно и эффективно получить доступ к областям памяти, вне кучи Java, манипулируя новыми абстракциями MemorySegment, MemoryAddress и MemoryLayout.
  • Отключена и объявлена устаревшей техника оптмизации Biased Locking, применявшаяся в HotSpot JVM для сокращения накладных расходов из-за блокировок. Данная техника потеряла актуальность на системах с атомарными инструкциями, предоставляемыми современными CPU, и слишком трудоёмка для сопровождения из-за своей сложности.
  • Объявлен устаревшим механизм RMI Activation, который будет удалён в одном из следующих выпусков. Отмечается, что RMI Activation устарел, переведён в разряд опции ещё в Java 8 и почти не применяется в современной практике.
  • Удалён JavaScript-движок Nashorn, который был объявлен устаревшим в Java SE 11.
  • Удалены порты для ОС Solaris и процессоров SPARC (Solaris/SPARC, Solaris/x64 и Linux/SPARC). Удаление указанных портов позволит сообществу ускорить разработку новых возможностей OpenJDK, не тратя время на поддержание особенностей, специфичных для Solaris и SPARC.

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

В ядре Linux из текстовой консоли удалили поддержку прокрутки текста

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

Летом в vgacon была выявлена и устранена уязвимость (CVE-2020-14331), способная привести к переполнению буфера из-за отсутствия должных проверок наличия доступной памяти в буфере прокрутки. Уязвимость привлекла внимание разработчиков, которые организовали fuzzing-тестирование кода vgacon в syzbot.

Дополнительные проверки выявили ещё несколько похожих проблем в коде vgacon, а также проблемы в программной реализации прокрутки в драйвере fbcon. К сожалению, проблемный код давно остаётся без сопровождения, предположительно из-за того, что разработчики перешли на использование графических консолей и текстовые консоли вышли из обихода (люди продолжают пользоваться консолями vgacon и fbcon, но они уже десятилетия не являются основным интерфейсом ядра и такие расширенные возможности, как встроенная в драйвер прокрутка (Shift+PageUp/PageDown), предположительно, мало востребованы).

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

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

Выпуск Magma 1.2.0, платформы для быстрого развёртывания LTE-сетей

Доступен выпуск платформы Magma 1.2.0, предназначенной для быстрого развёртывания компонентов для обеспечения работы сотовых сетей 2G, 3G, 4G и 5G. Платформа изначально была разработана компанией Facebook в рамках инициативы по обеспечению глобальной сетевой доступности, но затем преобразована в отдельный проект, переданный под покровительство независимой некоммерческой организации OpenStack Foundation. Код написан на языках C/C++, Go и Python, и распространяется под лицензией BSD.

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

Платформа также предоставляет средства автоматизации, делающие развёртывание опорной инфраструктуры, не сложнее, чем запуск точки доступа для Wi-Fi. Magma может применяться совместно с традиционными существующими опорными сетями (LTE core network) для расширения их функциональности в плане запуска новых сервисов и организации федеративного объединения разных сетей. При помощи Magma операторы связи, ограниченные лицензированным диапазоном частот, могут расширить ёмкость сети или увеличить охват в труднодоступных местах при помощи технологий Wi-Fi и CBRS. Например, Magma позволяет ускорить развёртывание сотовой сети в сельской местности, а также может быть использована для создания частных сетей LTE или корпоративных беспроводных систем.

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

Ключевые компоненты Magma:

  • AGW (Access Gateway) — шлюз доступа, предоставляющий реализации PGW (Packet Data Network Gateway), SGW (Serving Gateway), MME (Mobility Management Entity) и AAA (Authentication, Authorization and Accounting). SGW обрабатывает и маршрутизирует пакеты для базовых станций. PGW обеспечивает подключение абонента к внешним сетям, выполняет фильтрацию пакетов и биллинг. MME обеспечивает мобильность, отслеживает перемещение абонента и выполняет миграцию между базовыми станциями. AAA предоставляет сетевые сервисы для аутентификации, авторизации и аккунтинга абонентов. Поддерживается работа с существующим оборудованием для сотовых сетей.
  • Federation Gateway — шлюз для интеграции с опорной сетью мобильных операторов связи, использующий стандартные интерфейсы 3GPP для взаимодействия с существующими компонентами сети. Выполняет роль прокси между шлюзом доступа (AGW) и сетью оператора связи, обеспечивая работу таких функций, как аутентификация, списание средств, учёт и применение ограничений тарифных планов.
  • Orchestrator — управляющий облачный сервис для настройки и мониторинга за беспроводной сетью, в том числе для анализа производительности сети и отслеживания потоков трафика. Для управления предлагается web-интерфейс. Orchestrator может запускаться в типовых облачных окружениях. Для взаимодействия с AGW и Federation Gateway применяется протокол gRPC, работающий поверх HTTP/2.

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

  • Значительно переработан и расширен NMS (Network Management Station), web-интерфейс для управления сетями и развёртывания новых сетей. Многие возможности в NMS теперь требуют наличия Elasticsearch.
  • В реализации шлюза доступа AGW (Access Gateway) в режиме «Bridged Mode» расширено число стратегий распределения пользователям IP-адресов. Доступно выделение IP из пула, использование DHCP и статическое назначение IP. Добавлена экспериментальная поддержка запуска нескольких APN-SGi.
  • Добавлена поддержка настраиваемых профилей управления качеством сервиса (QoS) для задания политик ограничения трафика. Параметры QoS можно настраивать для каждого APN, допускающего соединения.

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

Компания Cisco выпустила свободный антивирусный пакет ClamAV 0.103

Компания Cisco представила новый значительный выпуск свободного антивирусного пакета ClamAV 0.103.0. Напомним, что проект перешёл в руки Cisco в 2013 году после покупки компании Sourcefire, развивающей ClamAV и Snort. Код проекта распространяется под лицензией GPLv2.

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

  • В clamd реализована поддержка перезагрузки базы сигнатур в отдельном потоке без блокирования сканирования. Перезагрузка базы в отдельном потоке выполняется по умолчанию и приводит к удвоению потребления оперативной памяти во время выполнения операции. Для систем с ограниченным объёмом ОЗУ предусмотрена настройка ConcurrentDatabaseReload для отключения перезагрузки базы в отдельном потоке.
  • Расширен модуль DLP (data-loss-prevention), нацеленный на блокирование утечек номеров кредитных карт. Добавлена поддержка дополнительных диапазонов номеров кредитных карты и реализована опция для вывода предупреждений только для реальных кредитных карт, игнорируя номера подарочных карт.
  • Добавлена поддержка PDF-файлов, зашифрованных в Adobe Reader X. Переработан инструмент для выявления эксплоитов, использующих PNG-изображения. Значительно улучшен разбор файлов GIF, улучшена обработка повреждённых файлов и добавлена поддержка сканирования слоёв.
  • Для пользователей Windows предложена утилита clamdtop.exe, предоставляющая урезанную функциональность Linux-утилиты clamdtop.
  • Модуль определения фишинга при срабатывании теперь выводит предупреждение «Suspicious link found!» с указанием реального и видимого URL.
  • Добавлена экспериментальная поддержка сборки с использованием CMake. В будущем CMake планируют использовать для сборки вместо autotools и утилит Visual Studio.
  • В приложения clamdscan и clamonacc добавлены опции «—ping» и «—wait». Опция «—ping» выполняет проверочное обращение к процессу clamd и возвращает 0 в случае ответа и 21 при наступлении таймаута. Опция «—wait» ожидает готовности clamd указанное число секунд перед запуском. Например, команда «clamdscan -p 30:2 -w ‹file›» будет ожидать до 60 секунд готовности, отправляя проверочные запросы. Предложенные опции могут применяться при запуске clamd и clamonacc в процессе загрузки системы для того чтобы удостовериться, что clamd будет готов к обработке запросов до того, как стартует clamonacc.
  • Добавлена поддержка определения и извлечения макросов Excel 4.0. Значительно улучшено определение и извлечение скриптов VBA.
  • Улучшена доступность для анализа временных файлов и метаданных JSON, создаваемых в процессе сканирования. Для рецензирования подобных файлов можно использовать команду «clamscan —tempdir=‹path› —leave-temps —gen-json ‹target›»
  • В freshclam и clamsubmit добавлена возможность переопределения применяемого по умолчанию набора OpenSSL CA (certificate authority). Для задания собственного набора удостоверяющих центров можно использовать переменную окружения CURL_CA_BUNDLE.
  • В clamscan и clamdscan в сводке о сканировании теперь приводится время начала и конца сканирования. Во freshclam улучшено формирование индикатора прогресса выполнения операции. В clamdtop улучшено выравнивание и обрезание строк при отрисовке.

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

Google открыл код ветроэнергетической платформы Makani

В связи со сворачиванием развития проекта, компания Google опубликовала полный набор исходных текстов, связанных с проектом Makani. Проектом в течение 13 лет развивалась принципиально новая технология ветроэнергетики, в которой для выработки энергии предлагалось использовать воздушный змей в форме планера с ветрогенераторами. Змей запускался в слои атмосферы с интенсивным воздушным потоком, на высоту примерно 300 метров, и передавал вырабатываемое электричество через кабель, закреплённый к наземной станции.

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

Дополнительно доступны все бортовые журналы, записанные в ходе экспериментальных полётов рабочего прототипа M600, и видеозаписи полётов. Отдельно опубликован код инструментария KiteFAST, созданного для симуляции работы ветряных турбин.

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

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

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

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

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

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

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

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

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

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

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

    Пользователям, отправившим предупреждение о нарушении, теперь отправляется уведомление о принятии или отклонении жалобы с возможным примечанием от модератора. В настройках учётной записи также появилась секция «My Abuse Reports», в которой можно посмотреть список оформленных жалоб и отправить сообщение модератору.

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

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

Выпуск дистрибутива Deepin 20, развивающего собственное графическое окружение

Представлен релиз дистрибутива Deepin 20, основанного на пакетной базе Debian, но развивающего собственный рабочий стол Deepin Desktop Environment (DDE) и около 30 пользовательских приложений, среди которых музыкальный проигрыватель DMusic, видеоплеер DMovie, система обмена сообщениями DTalk, инсталлятор и центр установки программ Deepin Software Center. Проект основан группой разработчиков из Китая, но трансформировался в международный проект. Дистрибутив поддерживает русский язык. Все наработки распространяются под лицензией GPLv3. Размер загрузочного iso-образа 2.6 Гб (amd64).

Компоненты рабочего стола и приложения разрабатываются с использованием языков C/C++ (Qt5) и Go. Ключевой особенностью рабочего стола Deepin является панель, которая поддерживает несколько режимов работы. В классическом режиме осуществляется более явное отделение открытых окон и предлагаемых для запуска приложений, отображается область системного лотка. Эффективный режим чем-то напоминает Unity, смешивая индикаторы запущенных программ, избранных приложений и управляющих апплетов (настройка громкости/яркости, подключенные накопители, часы, состояние сети и т.п.). Интерфейс запуска программ отображается на весь экран и предоставляет два режима — просмотр избранных приложений и навигация по каталогу установленных программ.

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

  • Пакетная база синхронизирована с Debian 10.5.
  • На этапе установки предоставлена возможность выбора из двух ядер Linux — 5.4 (LTS) или 5.7.
  • Предложено новое оформление интерфейса установки системы и расширена функциональность инсталлятора. Предоставлен выбор двух методов разбивки дисковых разделов — ручной и автоматический с применением полного шифрования всех данных на диске. Добавлен режим загрузки «Safe Graphics», который можно использовать в случае проблем с видеодрайверами и выбранным по умолчанию графическим режимом. Для систем с видеокартами NVIDIA предоставлена опция для установки проприетарных драйверов.
  • Представлено новое унифицированное оформление рабочего стола DDE с новым набором цветных пиктограмм, обновлённым интерфейсом и реалистичными анимационными эффектами. В окнах применены скруглённые углы. Добавлен экран с обзором доступных задач. Реализована поддержка светлой и тёмной тем оформления, настройки прозрачности и цветовой температуры. Улучшены настройки управления энергопотреблением.
  • Расширены возможности управления уведомлениями. Добавлены настройки для воспроизведения звукового файла при поступлении сообщения, показа уведомлений на экране блокировки системе, отображения сообщений в центре уведомлений и установки отдельного уровня напоминаний для выбранных приложений. Пользователю предоставлена возможность отфильтровать важные сообщения, чтобы не отвлекаться на второстепенные.
  • В менеджер установки приложений добавлена возможность установки обновления одним кликом и реализована система фильтрации программ по категориям. Изменено оформление экрана с детальной информацией о выбранной для установки программе.
  • Предоставлена возможность использования аутентификации по отпечатку пальца для входа в систему, разблокировки экрана, подтверждения полномочий и получения прав root. Добавлена поддержка различных сканеров отпечатков пальцев.
  • Добавлен Device Manager для просмотра и управления аппаратными устройствами.
  • В Font Manager добавлена поддержка установки и управления шрифтами, а также предпросмотра отображения своего текста выбранным шрифтом.
  • Добавлена простая программа для рисования Draw.
  • Добавлен Log Viewer для анализа и просмотра логов.
  • Добавлено приложение Voice Notes для создания текстовых и голосовых заметок.
  • Программы для создания скриншотов и скринкастов объединены в одно приложение Screen Capture.
  • В состав включено приложение для работы с web-камерой Cheese.
  • Улучшен интерфейс просмотрщика документов и менеджера архивов.

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

Huawei будет использовать собственную ОС Harmony для смартфонов

На конференции HDC 2020 компания объявила о расширении планов, касающихся операционной системы Harmony, анонсированной в прошлом году. Помимо изначально заявленных портативных устройств и продуктов интернета вещей (IoT), таких как дисплеи, носимые устройства, умные колонки и инфо-системы автомобилей, разрабатываемая ОС также будет применяться и на смартфонах.

Тестирование SDK для разработки мобильных приложений для Harmony начнётся в конце 2020 года, а первые смартфоны на базе новой ОС планируется выпустить в октябре 2021 года. Отмечается, что новая ОС уже готова для IoT-устройств с объёмом оперативной памяти от 128KB до 128MB, в апреле 2021 года начнётся продвижение варианта для устройств с объёмом памяти от 128MB до 4GB, а в октябре для устройств, с ОЗУ больше 4GB.

Напомним, что проект Harmony находится в разработке начиная с 2017 года и представляет собой микроядерную операционную систему, которую можно рассматривать как конкурента ОС Fuchsia от Google. Платформа будет опубликована в исходных текстах как полностью открытый проект с независимым управлением (Huawei уже развивает открытый LiteOS для IoT-устройств). Код платформы будет передан под покровительство некоммерческой организации China Open Atomic Open Source Foundation. Huawei считает, что Android не так хорош для мобильных устройств из-за излишне большого объёма кода, устаревшего планировщика процессов и вопросов фрагментации платформы.

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

  • Ядро системы верифицировано на уровне формальной логики/математики для минимизации риска появления уязвимостей. Верификация проведена с использованием методов, которые обычно используются при разработке критически важных систем в таких областях, как авиация и космонавтика, и позволяют добиться соответствия уровню защищённости EAL 5+.
  • Микроядро изолированно от внешних устройств. Система отделена от оборудования и даёт возможность разработчикам создавать приложения, которые можно использовать на различных категориях устройств без создания отдельных пакетов.
  • Микроядро реализует только планировщик и IPC, а всё остальное вынесено в системные сервисы, большая часть которых выполняется в пространстве пользователя.
  • В качестве планировщика задач предлагается минимизирующий задержки детерминистический движок распределения ресурсов (Deterministic Latency Engine), анализирующий нагрузку в режиме реального времени и использующий методы предсказания поведения приложений. По сравнению с другими системами планировщик позволяет добиться сокращения задержек на 25.7% и снизить флуктуации задержек на 55.6%.
  • Для обеспечения связи между микроядром и внешними сервисами ядра, такими как ФС, сетевой стек, драйверы и подсистема запуска приложений, применяется IPC, который по заявлениям компании работает в пять раз быстрее, чем IPC в Zircon, и в три раза быстрее, чем IPC в QNX.
  • Вместо обычно применяемого четырёхуровневого стека протоколов для уменьшения накладных расходов в Harmony задействована упрощённая одноуровневая модель на основе распределённой виртуальной шины, обеспечивающей взаимодействие с оборудованием, таким как экраны, камеры, звуковые платы и т.п.
  • В системе не предоставляется доступ пользователей на уровне root.
  • Для сборки приложения применяется собственный компилятор Arc, который поддерживает код на языках C, C++, Java, JavaScript и Kotlin.
  • Для создания приложений для различных классов устройств, таких как телевизоры, смартфоны, умные часы, автомобильные информационные системы и т.п, будет предоставлен собственный универсальный фреймворк для разработки интерфейсов и SDK с интегрированной средой разработки. Инструментарий позволит автоматически адаптировать приложения для разных экранов, элементов управления и методов взаимодействия с пользователем. Также упоминается предоставление инструментов для адаптации для Harmony существующих Android-приложений с минимальными изменениями.

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