The OpenNET Project / Index page

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

·02.08.2021 Уязвимости в eBPF, позволяющие обойти защиту от атаки Spectre 4 (98 +6)
  В ядре Linux выявлены две уязвимости, позволяющие использовать подсистему еBPF для обхода защиты от атаки Spectre v4 (SSB, Speculative Store Bypass). При помощи непривилегированной BPF-программы атакующий может создать условия для спекулятивного выполнения определённых операций и определить содержимое произвольных областей памяти ядра. Сопровождающие подсистемы eBPF в ядре получили доступ к прототипу эксплоита, демонстрирующего возможность совершения атак на практике. Проблемы устранены в форме патчей (1, 2), которые войдут в состав ближайшего обновления ядра Linux. Обновления в дистрибутивах пока не сформированы (Debian, RHEL, SUSE, Arch, Fedora, Ubuntu).

Метод атаки Spectre 4 базируется на восстановлении осевших в процессорном кэше данных после отбрасывания результата спекулятивного выполнения операций при обработке чередующихся операций записи и чтения с использованием косвенной адресации. Когда операция чтения следует за операцией записи (например, mov [rbx + rcx], 0x0; mov rax, [rdx + rsi]), смещение адреса для чтения уже может быть известно из-за выполнения похожих операций (операции чтения выполняются значительно чаще и чтение может быть выполнено из кэша) и процессор может спекулятивно выполнить чтение раньше записи, не дожидаясь пока будет вычислено смещение косвенной адресации для записи.

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

Первая уязвимость (CVE-2021-35477) вызвана недоработкой в механизме проверки программ BPF. Для защиты от атаки Spectre 4 верификатор добавляет после потенциально проблемных операций сохранения в память дополнительную инструкцию, сохраняющую нулевое значение для вытеснения следов прошлой операции. Предполагалось, что операция записи нуля выполнится очень быстро и блокирует спекулятивное выполнение, так как она зависит только от указателя на кадр стека BPF. Но на деле, оказалось возможным создание условий, при которых инструкция, приводящая к спекулятивному выполнению, успевает выполниться до операции вытесняющего сохранения.

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

  1. OpenNews: Уязвимости в подсистеме eBPF, позволяющие обойти защиту от атак класса Spectre
  2. OpenNews: Уязвимость в eBPF, позволяющая выполнить код на уровне ядра Linux
  3. OpenNews: В eBPF найдена возможность обхода защиты ядра Linux от атаки Spectre
  4. OpenNews: Уязвимости в подсистеме eBPF, позволяющие выполнить код на уровне ядра Linux
  5. OpenNews: Раскрыты две новые уязвимости механизма спекулятивного выполнения в CPU
Обсуждение (98 +6) | Тип: Проблемы безопасности |
·02.08.2021 Выпуск системной библиотеки Glibc 2.34 (74 +18)
  После шести месяцев разработки опубликован релиз системной библиотеки GNU C Library (glibc) 2.34, которая полностью следует требованиям стандартов ISO C11 и POSIX.1-2017. В состав нового выпуска включены исправления от 66 разработчиков.

Из реализованных в Glibc 2.34 улучшений можно отметить:

  • В основной состав libc интегрированы библиотеки libpthread, libdl, libutil и libanl, использование функциональности которых в приложениях отныне не требует связывания при помощи флагов -lpthread, -ldl, -lutil и -lanl. Проведена подготовка к интеграции libresolv в libc. Интеграция позволит добиться более цельного процесса обновления glibc и упростит реализацию runtime. Для обеспечения обратной совместимости с приложениями, собранными со старыми версиями glibc, предоставлены библиотеки-заглушки. Из-за расширения числа предоставляемых в glibc структур и функций не исключено появление проблем в приложениях, в которых наблюдается пересечение имён c ранее не использованными библиотеками libpthread, libdl, libutil, libresolv и libanl.
  • Предоставлена возможность использования 64-разрядного типа time_t в конфигурациях, в которых традиционно использовался 32-разрядный тип time_t. В подобных конфигурациях, например, на системах x86, по умолчанию пока остаётся 32-разрядный time_t, но данное поведение теперь можно изменить при помощи макроса "_TIME_BITS". Возможность доступна только на системах с ядром Linux как минимум версии 5.1.
  • Добавлена функция _Fork, замена функции fork, соответствующая требованиям "async-signal-safe", т.е. допускающая безопасный вызов из обработчиков сигналов. В процессе выполнения _Fork, формируется минимальное окружение, достаточное для вызова функций в обработчиках сигналов, таких как raise и execve, без задействования возможностей, которые могут привести к изменению блокировок или внутреннего состояния. Вызов _Fork будет определён в будущей версии стандарта POSIX, но пока включён в число расширений GNU.
  • Для платформы Linux реализована функция execveat, позволяющая запустить исполняемый файл из открытого файлового дескриптора. Новая функция также используется в реализации вызова fexecve не требующего при запуске наличия примонтированной псевдо-ФС /proc.
  • Добавлена функция timespec_getres, определённая в черновике стандарта ISO C2X и дополняющая функцию timespec_get возможностями, похожими на POSIX-функцию clock_getres.
  • Добавлена функция close_range(), позволяющая процессу разом закрыть целый диапазон открытых файловых дескрипторов. Функция доступна на системах с ядром Linux, как минимум версии 5.9.
  • Добавлены функции closefrom и posix_spawn_file_actions_addclosefrom_np, позволяющие закрыть разом все файловые дескрипторы, номер которых больше или равен указанному значению.


  • В режимах "_DYNAMIC_STACK_SIZE_SOURCE" и "_GNU_SOURCE" значения PTHREAD_STACK_MIN, MINSIGSTKSZ и SIGSTKSZ теперь не являются константами, что позволяет обеспечить поддержку наборов регистров динамического размера, например, предоставляемых в расширении ARM SVE.
  • В компоновщике реализована опция "--list-diagnostics" для вывода информации, связанной с операциями определения IFUNC (indirect function) и выбора подкаталога glibc-hwcaps.
  • Реализован макрос __STDC_WANT_IEC_60559_EXT__, предназначенный для проверки наличия функций, определённых в приложении "F" спецификации ISO C2X.
  • Для систем powerpc64* реализована опция "--disable-scv", позволяющая собрать glibc без поддержки инструкции scv.
  • В файле gconv-modules оставлен только минимальный набор основных модулей gconv, а остальные перемещены в дополнительный файл gconv-modules-extra.conf, размещённый в каталоге gconv-modules.d.
  • Для платформы Linux реализован параметр glibc.pthread.stack_cache_size, который может использоваться для настройки размера кэша стека pthread.
  • Объявлена устаревшей функция inet_neta из заголовочного файла <arpa/inet.h>, а также различные редко применяемые функции из <resolv.h> (dn_count_labels, fp_nquery, fp_query, fp_resstat, hostalias, loc_aton, loc_ntoa, p_cdname, p_cdnname, p_class, p_fqname, p_fqnname, p_option, p_query, p_rcode, p_time, p_type, putlong, putshort, res_hostalias, res_isourserver, res_nameinquery, res_queriesmatch, res_randomid, sym_ntop, sym_ntos, sym_ston) и <arpa/nameser.h> (ns_datetosecs, ns_format_ttl, ns_makecanon, ns_parse_ttl, ns_samedomain, ns_samename, ns_sprintrr, ns_sprintrrf, ns_subdomain). Вместо данных функций рекомендовано использовать отдельные библиотеки для работы с DNS.
  • Объявлены устаревшими функции pthread_mutex_consistent_np, pthread_mutexattr_getrobust_np, pthread_mutexattr_setrobust_np и pthread_yield вместо которых следует использовать pthread_mutex_consistent, pthread_mutexattr_getrobust, pthread_mutexattr_setrobust и sched_yield.
  • Прекращено использование символических ссылок для привязки устанавливаемых разделяемых объектов к версии Glibc. Подобные объекты теперь устанавливаются как есть (например, libc.so.6 теперь является файлом, а не ссылкой на libc-2.34.so).
  • По умолчанию отключены отладочные возможности в malloc, такие как MALLOC_CHECK_ (glibc.malloc.check), mtrace() и mcheck(), которые вынесены в отдельную библиотеку libc_malloc_debug.so, в которую также перемещены устаревшие функции malloc_get_state и malloc_set_state.
  • В Linux для работы функций, подобных shm_open и sem_open, теперь требуется наличие ФС для разделяемой памяти, примонтированной в точке монтирования /dev/shm.
  • Устранены уязвимости:
    • CVE-2021-27645: крах процесса nscd (nameserver caching daemon) из-за двойного вызова функции free при обработке специально оформленных netgroup-запросов.
    • CVE-2021-33574: обращение к уже освобождённой области памяти (use-after-free) в функции mq_notify при использовании типа уведомлений SIGEV_THREAD с атрибутом потока, для которого выставлена альтернативная маска привязки к CPU. Проблема может привести к краху, но не исключаются и другие варианты атак.
    • CVE-2021-35942: переполнение размера параметра в функции wordexp может привести к краху приложения.

  1. OpenNews: Проект Glibc отменил обязательную передачу прав на код Фонду СПО
  2. OpenNews: Выпуск системной библиотеки Glibc 2.33
  3. OpenNews: Критическая уязвимость в реализации функции memcpy для ARMv7 из состава Glibc
  4. OpenNews: Конфликт между Ричардом Столлманом и командой разработчиков Glibc
  5. OpenNews: Уязвимость в Glibc, позволяющая поднять привилегии в системе
Обсуждение (74 +18) | Тип: Программы |
·01.08.2021 Обновление голосовых данных Mozilla Common Voice 7.0 (33 +10)
  Компании NVIDIA и Mozilla представили обновление наборов голосовых данных, собранных в результате инициативы Common Voice и включающих примеры произношения 182 тысяч людей, что на 25% больше, чем 6 месяцев назад. Данные опубликованы как общественное достояние (CC0). Предложенные наборы можно использовать в системах машинного обучения для построения моделей распознавания и синтеза речи.

По сравнению с прошлым обновлением размер объём речевого материала в коллекции увеличился с 9 до 13.9 тысяч часов речи. Число поддерживаемых языков возросло с 60 до 76, в том числе впервые добавлена поддержка белорусского, казахского, узбекского, болгарского, армянского, азербайджанского и башкирского языков. Набор для русского языка охватывает 2136 участников и 173 часа речевого материала (было 1412 участников и 111 часов), а для украинского языка - 615 участников и 66 часов (было 459 участников и 30 часов).

В подготовке материалов на английском языке приняли участие более 75 тысяч человек, надиктовавших 2637 часов подтверждённой речи (было 66 тысяч участников и 1686 часов). Интересно, что на втором месте по размеру накопленных данных язык руанда, для которого собрано 2260 часов. Затем следуют немецкий (1040), каталонский (920) и эсперанто (840). Из наиболее динамично наращивающих размер голосовых данных языков называются тайский язык (рост базы в 20 раз, с 12 до 250 часов), луганда (с 8 до 80 часов), эсперанто (со 100 до 840 часов) и тамильский язык (с 24 до 220 часов).

В рамках своего участия в проекте Common Voice компания NVIDIA подготовила на базе собранных данных готовые натренированные модели для систем машинного обучения (поддерживается PyTorch). Модели распространяются в составе бесплатного и открытого инструментария NVIDIA NeMo, который, например, уже используется в автоматизированных голосовых сервисах МТС и Сбербанка. Модели ориентированы на использование в системах распознавания речи, синтеза речи и обработки информации на естественном языке, и могут оказаться полезными для исследователей, занимающихся созданием голосовых диалоговых систем, платформ для транскрипции и автоматизированных колл-центров. В отличие от доступных ранее проектов, опубликованные модели не ограничиваются распознанием английского языка и охватывают различные языки, акценты и формы речи.

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

По мнению автора библиотеки распознавания слитной речи Vosk недостатками набора Common Voice является однобокость голосового материала (преобладание людей мужского пола 20-30 лет, и недостаток материала с голосом женщин, детей и пожилых людей), отсутствие вариативности словаря (повторение одних и тех же фраз) и распространение записей во вносящем искажения формате MP3.

  1. OpenNews: NVIDIA инвестирует 1.5 млн долларов в проект Mozilla Common Voice
  2. OpenNews: Компания Mozilla представила движок распознавания речи DeepSpeech 0.9
  3. OpenNews: Mozilla свернула разработку проектов Voice Fill и Firefox Voice
  4. OpenNews: Компания Mozilla опубликовала голосовые данные Common Voice
  5. OpenNews: Проект Mozilla выпустил открытую систему распознавания речи
Обсуждение (33 +10) | Тип: К сведению |
·31.07.2021 Драйвер NTFS от Paragon Software может быть принят в состав ядра Linux 5.15 (283 +88)
  При обсуждении на днях опубликованной 27 редакции набора патчей с реализацией файловой системы NTFS от компании Paragon Software, Линус Торвальдс сообщил, что не видит препятствий для приёма данного набора патчей в следующее окно приёма изменений. Если не будет выявлено непредвиденных проблем, то поддержка NTFS от Paragon Software будет включена в состав ядра 5.15, релиз которого ожидается в ноябре.

Во время, остающееся до принятия патчей в состав ядра, Линус порекомендовал перепроверить корректность выставления подписи signed-off в патчах, подтверждающих авторство над передаваемым кодом и готовность его распространения в составе ядра под свободной лицензией. Также компании Paragon Software рекомендовано ещё раз убедиться, что юридический отдел осознаёт все последствия передачи кода под лицензией GPLv2 и понимает суть данной копилефт лицензии.

Код нового драйвера NTFS был открыт компанией Paragon Software в августе прошлого года и отличается от уже имеющегося в ядре драйвера возможностью работы в режиме записи. Старый драйвер не обновлялся уже много лет и находится в плачевном состоянии. Новый драйвер поддерживает все возможности актуальной версии NTFS 3.1, включая расширенные атрибуты файлов, режим сжатия данных, эффективную работу с пустотами в файлах и воспроизведение изменений из журнала для восстановления целостности после сбоев.

В 27 редакции патчей компания Paragon Software адаптировала драйвер для изменений в API iov, заменив вызов iov_iter_copy_from_user_atomic() на copy_page_from_iter_atomic() и прекратив использование функции iov_iter_advance(). Из высказанных в обсуждении рекомендаций остаётся только перевод кода на использование fs/iomap, но это не обязательное требование, а лишь рекомендация, которую можно реализовать уже после включения в состав ядра. Кроме того, компания Paragon Software подтвердила, что готова сопровождать предложенный код в ядре и планирует в дальнейшем перевести реализацию журналирования на работу поверх имеющегося в ядре универсального блочного устройства JBD (Journaling block device), на базе которого организовано журналирование в ext3, ext4 и OCFS2.

  1. OpenNews: Линус Торвальдс прокомментировал ситуацию с драйвером NTFS от Paragon Software
  2. OpenNews: Компания Paragon Software опубликовала GPL-реализацию NTFS для ядра Linux
  3. OpenNews: Samsung предложил новый вариант драйвера exFAT для ядра Linux
  4. OpenNews: Компания Paragon Software открыла код драйвера с реализацией ФС exFAT
  5. OpenNews: Первый стабильный релиз открытой реализации файловой системы exFAT
Обсуждение (283 +88) | Тип: К сведению |
·30.07.2021 46% Python-пакетов в репозитории PyPI содержат потенциально небезопасный код (171 +17)
  Группа исследователей из Университета Турку (Финляндия) опубликовала результаты анализа пакетов в репозитории PyPI на предмет использования потенциально опасных конструкций, способных привести к появлению уязвимостей. В ходе анализа 197 тысяч пакетов выявлено 749 тысяч потенциальных проблем с безопасностью. В 46% пакетов присутствует как минимум одна подобная проблема. Среди наиболее часто встречающихся проблем выделяются недоработки, связанные с обработкой исключений и использованием возможностей, допускающей подстановку кода.

Из выявленных 749 тысяч проблем 442 тысячи (41%) помечены как незначительные, 227 тысяч (30%) как проблемы умеренной опасности и 80 тысяч (11%) как опасные. Некоторые пакеты выбиваются из общей массы и содержат тысячи проблем: например, в пакете PyGGI выявлено 2589 проблем, в основном связанных с применением конструкции "try-except-pass", в пакете appengine-sdk найдено 2356 проблем. Большое число проблем также присутствует в пакетах genie.libs.ops, pbcore и genie.libs.parser.

Следует отметить, что результаты получены на основе проведения автоматизированного статического анализа, который не учитывает контекст применения тех или иных конструкций. Разработчик инструментария bandit, который использовался для сканирования кода, высказал мнение, что из-за достаточно высокого числа ложных срабатываний результаты проверки нельзя напрямую считать уязвимостями без проведения дополнительного ручного рецензирования каждой проблемы.

Например, анализатор считает проблемой с безопасностью применение ненадёжных генераторов случайных чисел и алгоритмов хэширования, таких как MD5, в то время, как в коде подобные алгоритмы могут использоваться для целей, не влияющих на безопасность. Анализатор также считает проблемой любую обработку внешних данных в небезопасных функциях, таких как pickle, yaml.load, subprocess и eval, но данное использование не обязательно сопряжено с появлением уязвимости и на деле применение указанных функций может быть реализовано без угрозы безопасности.

Среди проверок, использованных в исследовании:

  • Использование потенциально небезопасных функций exec, mktemp, eval, mark_safe и т.п..
  • Небезопасное выставление прав доступа для файлов.
  • Присоединение сетевого сокета ко всем сетевым интерфейсам.
  • Использование жёстко указанных в коде паролей и ключей.
  • Использование предопределённого временного каталога.
  • Использование pass и continue в обработчиках исключений catch-all-style;
  • Запуск web-приложений на базе веб-фреймворка Flask с включённым отладочным режимом.
  • Использование небезопасных методов десериализации данных.
  • Использование хэш-функций MD2, MD4, MD5 и SHA1.
  • Использование небезопасных шифров DES и режимов шифрования.
  • Использование небезопасной реализации HTTPSConnection в некоторых версиях Python.
  • Указание схемы file:// в urlopen.
  • Использование генераторов псевдослучайных чисел при выполнении криптографических задач.
  • Использование протокола Telnet.
  • Использование небезопасных парсеров XML.

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

В пакетах noblesse, genesisbot, are, suffer, noblesse2 и noblessev2 выявлен код для перехвата номеров кредитных карт и паролей, сохранённых в браузерах Chrome и Edge, а также для передачи токенов учётных записей из приложения Discord и отправки данных о системе, включая скриншоты содержимого экрана. В пакетах pytagora и pytagora2 присутствовала возможность загрузки и выполнения стороннего исполняемого кода.

  1. OpenNews: В каталоге Python-пакетов PyPI выявлены две вредоносные библиотеки
  2. OpenNews: Проект Python представил новый каталог пакетов PyPI и пакетный менеджер Pip 10
  3. OpenNews: Применение тайпсквоттинга для распространения вредоносных модулей NPM, PyPI и Gems
  4. OpenNews: Атака на зависимости позволила выполнить код на серверах PayPal, Micrоsoft, Apple, Netflix, Uber и ещё 30 компаний
  5. OpenNews: Уязвимость в пакетном менеджере Composer, допускающая компрометацию PHP-репозитория Packagist
Обсуждение (171 +17) | Тип: Проблемы безопасности |
·30.07.2021 Проект Glibc отменил обязательную передачу прав на код Фонду СПО (106 –15)
  Разработчики системной библиотеки GNU C Library (glibc) внесли изменения в правила приёма изменений и передачи авторских прав, отменяющие обязательную передачу Фонду СПО имущественных прав на код. По аналогии с изменениями, ранее принятыми в проекте GCC, подписание CLA-соглашения с Фондом СПО в Glibc переведено в разряд необязательных операций, осуществляемых по желанию разработчика. Изменения правил, допускающие приём патчей без передачи прав фонду СПО, вступят в силу 2 августа и затронут все доступные для разработки ветки Glibc, за исключением кода, который через Gnulib используется совместно с другими проектами GNU.

Кроме передачи имущественных прав Фонду СПО разработчикам предоставлена возможность подтверждения права на передачу кода проекту Glibc при помощи механизма Developer Certificate of Origin (DCO). В соответствии с DCO отслеживание автора осуществляется через прикрепление каждому изменению строки "Signed-off-by: имя и email разработчика". Прикрепляя данную подпись к патчу, разработчик подтверждает своё авторство над передаваемым кодом и соглашается с его распространением в составе проекта или как части кода под свободной лицензией. В отличие от действий проекта GCC, решение в Glibc не спущено управляющим советом сверху, а принято после предварительного обсуждения со всеми представителями сообщества.

Отмена обязательного подписания соглашения с Фондом СПО существенно упрощает присоединение новых участников к разработке и делает проект независимым от веяний в Фонде СПО. Если подписание CLA-соглашения индивидуальными участниками лишь приводило к трате времени на лишние формальности, то для корпораций и работников крупных компаний передача прав Фонду СПО была сопряжена со многими юридическими проволочками и согласованиями, которые не всегда завершались успешно.

Отказ от централизованного управления правами на код также закрепляет изначально принятые условия лицензирования, так как для смены лицензии теперь потребуется получение личного согласия от каждого разработчика, не передавшего права Фонду СПО. При этом код Glibc продолжает поставляться под лицензией "LGPLv2.1 или более новая версия", что допускает переход на более новые версии LGPL без дополнительного согласования. Так как права на большую часть кода продолжают оставаться в руках Фонда СПО, данная организация продолжает играть роль гаранта распространения кода Glibc только под свободными копилефт лицензиями. Например, Фонд СПО может блокировать попытки введения двойной/коммерческой лицензии или выпуск закрытых проприетарных продуктов по отдельной договорённости с авторами кода.

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

  1. OpenNews: Разработчики Glibc рассматривают вопрос прекращения передачи прав на код Фонду СПО
  2. OpenNews: Проект GCC разрешил приём изменений без передачи Фонду СПО прав на код
  3. OpenNews: Движение по смещению Столлмана со всех постов и роспуску совета директоров Фонда СПО
  4. OpenNews: Автор GnuPG прекращает передачу имущественных прав Фонду СПО
  5. OpenNews: Выпуск системной библиотеки Glibc 2.33
Обсуждение (106 –15) | Тип: К сведению |
·29.07.2021 Выпуск языка программирования Rust 1.54 (554 +10)
  Опубликован релиз языка системного программирования Rust 1.54, основанного проектом Mozilla, но ныне развиваемого под покровительством независимой некоммерческой организации Rust Foundation. Язык сфокусирован на безопасной работе с памятью, обеспечивает автоматическое управление памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime (runtime сводится к базовой инициализации и сопровождению стандартной библиотеки).

Автоматическое управление памятью в Rust избавляет разработчика от ошибок при манипулировании указателями и защищает от проблем, возникающих из-за низкоуровневой работы с памятью, таких как обращение к области памяти после её освобождения, разыменование нулевых указателей, выход за границы буфера и т.п. Для распространения библиотек, обеспечения сборки и управления зависимостями проектом развивается пакетный менеджер Cargo. Для размещения библиотек поддерживается репозиторий crates.io.

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

  • Добавлена возможность использования внутри атрибутов макросов, напоминающих функции (процедурные макросы и макросы, созданные при помощи макроса "macro_rules!"). От функций подобные макросы отличаются символом "!" после имени (macro!(...)) и подстановкой исходного текста макроса вместо генерирования вызова функции. Вызов макросов внутри атрибутов может оказаться полезным для включения в документирующие комментарии содержимого из других файлов. Например, для вставки содержимого файла README и результата выполнения скрипта можно указать:
    
       #![doc = include_str!("README.md")]
    
    
       #[path = concat!(env!("OUT_DIR"), "/generated.rs")]
       mod generated;
    
  • Стабилизированы встроенные в компилятор функции (Intrinsics) для платформы wasm32, позволяющие использовать инструкции SIMD в WebAssembly. Большая часть функций, таких как v128_bitselect, доступны в режиме "safe", но некоторые функции работающие с указателями (например, v128_load) остаются "unsafe".
  • Возвращено применение по умолчанию инкрементальной компиляции, позволяющей пересобирать только изменившиеся части кода, что позволяет значительно сократить время сборки проекта при повторной компиляции после внесения мелких правок. Инкрементальная компиляция была отключена в выпуске 1.52.1 из-за выявления скрытых ошибок, всплывших после добавления дополнительной проверки загрузки данных из дискового кэша.
  • В разряд стабильных переведена новая порция API, в том числе стабилизированы:
  • В cargo-tree добавлены опции: "--prune <spec>" для удаления пакета из графа зависимостей, "--depth" для вывода только элементов заданного уровня вложенности в дереве зависимостей, "--edges no-proc-macro" для скрытия зависимостей процедурных макросов.

  1. OpenNews: Представлена реализация Tor на языке Rust, которая в будущем заменит вариант на Си
  2. OpenNews: Вторая редакция патчей для ядра Linux с поддержкой языка Rust
  3. OpenNews: Для ядра Linux предложен драйвер GPIO, написанный на Rust
  4. OpenNews: Выпуск Rust 1.53. Google профинансирует добавление поддержки Rust в ядро Linux
  5. OpenNews: Представлена библиотека Aya для создания eBPF-обработчиков на языке Rust
Обсуждение (554 +10) | Тип: Программы |
·29.07.2021 Доступна СУБД Apache Cassandra 4.0 (71 +12)
  Организация Apache Software Foundation представила релиз распределённой СУБД Apache Cassandra 4.0, относящейся к классу noSQL-систем и рассчитанной на создание высокомасштабируемых и надёжных хранилищ огромных массивов данных, хранимых в форме ассоциативного массива (хэша). Выпуск Cassandra 4.0 признан готовым для рабочих внедрений и уже протестирован в инфраструктурах компаний Amazon, Apple, DataStax, Instaclustr, iland и Netflix c кластерами, насчитывающими более 1000 узлов. Код проекта написан на языке Java и распространяется в рамках лицензии Apache 2.0.

Изначально СУБД Cassandra была разработана компанией Facebook и в 2009 году передана под покровительство фонда Apache. Промышленные решения на базе Cassandra развернуты для обеспечения работы сервисов таких компаний, как Apple, Adobe, CERN, Cisco, IBM, HP, Comcast, Disney, eBay, Huawei, Netflix, Sony, Rackspace, Reddit и Twitter. Например, развёрнутая компанией Apple инфраструктура хранения на базе Apache Cassandra насчитывает более тысячи кластеров, включающих 160 тысяч узлов и хранящих более 100 петабайт данных. В компании Huawei используется более 300 кластеров Apache Cassandra, включающих 30 тысяч узлов, а в Netflix - более 100 кластров, охватывающих 10 тысяч узлов и обрабатывающих более триллиона запросов в день.

СУБД Cassandra объединяет в себе полностью распределённую hash-систему Dynamo, обеспечивающую практически линейную масштабируемость при увеличении объёма данных. Cassandra использует модель хранения данных на базе семейства столбцов (ColumnFamily), отличающуюся от систем подобных memcachedb, которые хранят данные только в связке ключ/значение, возможностью организовать хранение хэшей с несколькими уровнями вложенности. Для упрощения взаимодействия с БД поддерживается язык формирования структурированных запросов CQL (Cassandra Query Language), напоминающий SQL, но урезанный по функциональности. Из возможностей можно отметить поддержку пространств имён и семейств столбцов, создание индексов через выражение "CREATE INDEX".

СУБД позволяет создавать устойчивые к сбоям хранилища: помещаемые в БД данные автоматически реплицируются на несколько узлов распределённой сети, которая может охватывать разные центры обработки данных. При сбое узла, его функции на лету подхватываются другими узлами. Добавление новых узлов в кластер и обновление версии Cassandra производится на лету, без дополнительного ручного вмешательства и переконфигурирования других узлов. Драйверы с поддержкой CQL подготовлены для языков Python, Java (JDBC/DBAPI2), Ruby, PHP, C++ и JavaScript (Node.js).

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

  • Повышена производительность и масштабируемость. Повышена эффективность обмена данными в формате SSTable (Sorted Strings Table) между узлами. Оптимизирован протокол обмена сообщениями между узлами (Internode Messaging Protocol). Скорость передачи потоков данных между узлами возросла до 5 раз (в основном благодаря применению техники Zero Copy и передачи SSTables целиком), а пропускная способность при операциях чтения и записи до 25%. Оптимизирован процесс инкрементального восстановления. Задержки из-за приостановки выполнения сборщиком мусора снижены до нескольких миллисекунд.
  • Добавлена поддержка лога аудита, позволяющего отслеживать операции аутентификации пользователей и все выполняемые запросы CQL.
  • Добавлена возможность ведения полного бинарного лога запросов, позволяющего сохранять весь трафик запросов и ответов. Для управления предложены команды "nodetool enablefullquerylog|disablefullquerylog|resetfullquerylog", а для анализа лога поставляется утилита fqltool. Предоставлены команды для преобразования лога в читаемый вид (Dump), сравнения срезов активности (Compare) и повторного выполнения (Replay) для анализа c воспроизведением условий, свойственных реальной нагрузке.
  • Добавлена поддержка виртуальных таблиц, отражающих не данные, хранимые в SSTables, а информацию выводимую через API (метрики производительности, информация о настройках, содержимое кэша, сведения о подключённых клиентах и т.п.).
  • Повышена эффективность хранения данных в сжатом виде, что позволяет снизить потребление дискового пространства и повысить производительность операций чтения.
  • Данные, относящиеся к системному пространству ключей (system.*), теперь по умолчанию размещаются в первой директории вместо распределения по всем директориям с данными, что позволяет сохранить работоспособность узла в случае выхода из строя одного из дополнительных дисков.
  • Добавлена экспериментальная поддержка временной репликации (Transient Replication) и лёгких кворумов (Cheap Quorums). Временные реплики не хранят все данные и используют инкрементное восстановление для согласования с полными репликами. Лёгкие кворумы реализуют оптимизацию операций записи, при которой запись во временные реплики не производится пока не доступен достаточный набор полных реплик.
  • Добавлена экспериментальная поддержка Java 11.
  • Добавлена экспериментальная опция для сравнения всех деревьев Меркла (Merkle Tree). Например, включение опции на кластере с 3 узлами, в котором две реплики одинаковые, а одна устаревшая, приведёт к выполнению обновления устаревшей реплики с использованием только одной операции копирования актуальной реплики.
  • Добавлены новые функции currentTimestamp, currentDate, currentTime и currentTimeUUID.
  • Добавлена поддержка арифметических операций в запросах CQL.
  • Предоставлена возможность выполнения арифметических операций между данными с типами "timestamp"/"date" и "duration".
  • Добавлен режим для предпросмотра потоков данных, необходимых для восстановления (nodetool repair --preview) и возможность проверки целостности восстанавливаемых данных (nodetool repair --validate).
  • В запросах SELECT появилась возможность обработки элементов Map и Set.
  • Добавлена поддержка распараллеливания этапа начального построения материализованных представлений (cassandra.yaml:concurrent_materialized_view_builders).
  • В команде "nodetool cfstats" добавлена поддержка сортировки по определённым метрикам и ограничения числа выводимых строк.
  • Предоставлены настройки для ограничения подключения пользователя только к определённым датацентрам.
  • Добавлена возможность ограничения интенсивности (rate limit) операций создания и очистки снапшотов.
  • В cqlsh и cqlshlib реализована поддержка Python 3 (поддержка Python 2.7 пока сохранена).
  • Прекращена поддержка платформы Windows. Для запуска Cassandra в Windows рекомендуется использовать Linux-окружения, созданные на основе подсистемы WSL2 (Windows Subsystem for Linux 2) или систем виртуализации.



  1. OpenNews: Выпуск СУБД ScyllaDB 3.0, совместимой с Apache Cassandra
  2. OpenNews: Доступна СУБД Apache Cassandra 3.0
  3. OpenNews: Опасная уязвимость в Apache Cassandra
  4. OpenNews: Для MariaDB/MySQL представлено хранилище Cassandra. Обновление MySQL 5.1.66, 5.5.28 и 5.6.7
  5. OpenNews: Проектам Apache запрещено использование кода с вариантом лицензии BSD от Facebook
Обсуждение (71 +12) | Тип: Программы |
·28.07.2021 Выпуск звукового сервера PulseAudio 15.0 (200 +18)
  Представлен релиз звукового сервера PulseAudio 15.0, который выступает в роли посредника между приложениями и различными низкоуровневыми звуковыми подсистемами, абстрагируя работу с оборудованием. PulseAudio позволяет управлять громкостью и смешиванием звука на уровне отдельных приложений, организовывать поступление, смешивание и вывод звука при наличии нескольких входных и выходных каналов или звуковых карт, позволяет на лету менять формат звукового потока и использовать плагины, дает возможность прозрачно перенаправлять звуковой поток на другую машину. Код PulseAudio распространяется в рамках лицензии LGPL 2.1+. Поддерживается работа в Linux, Solaris, FreeBSD, OpenBSD, DragonFlyBSD, NetBSD, macOS и Windows.

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

  • Существенно расширена поддержка Bluetooth: Добавлены новые A2DP-кодеки LDAC и AptX. Реализована встроенная поддержка профиля HFP (Hands-Free Profile) на базе кодека mSBC, позволившего повысить качество звука. Добавлена поддержка AVRCP Absolute Volume для программного управления громкостью подключённых устройств A2DP.
  • Реализована возможность закрепления профилей звуковых карт, при котором состояние не сбрасывается после извлечения и подключения (например, полезно при переподключении HDMI).
  • Добавлен новый API обмена сообщениями, упрощающий создание расширений базового API.
  • Полностью переписан sink-модуль с реализацией виртуального эффекта объёмного звука (module-virtual-surround-sink).
  • В пользу сборочной системы Meson прекращена поддержка инструментария Autotools.
  • Предоставлена возможность размещения файлов конфигурации путей ALSA в домашнем каталоге пользователя ($XDG_DATA_HOME/pulseaudio/alsa-mixer/paths), а не только в /usr/share/pulseaudio/alsa-mixer/paths.
  • Улучшена поддержка оборудования: SteelSeries Arctis 9, HP Thunderbolt Dock 120W G2, Behringer U-Phoria UMC22, OnePlus Type-C Bullets, Sennheiser GSX 1000/1200 PRO.
  • Улучшена поддержка FreeBSD. Налажена обработка горячего подключения и отсоединения звуковых карт.

  1. OpenNews: Выпуск звукового сервера PulseAudio 14.0
  2. OpenNews: В Fedora 34 планируют задействовать PipeWire для звука вместо PulseAudio
  3. OpenNews: Доступен мультимедийный сервер PipeWire 0.3, идущий на смену PulseAudio
  4. OpenNews: Представлен мультимедийный сервер PipeWire, идущий на смену PulseAudio
  5. OpenNews: Доступен мультимедийный фреймворк GStreamer 1.18.0
Обсуждение (200 +18) | Тип: Программы |
·28.07.2021 GitHub учредил службу для защиты разработчиков от необоснованных DMCA-блокировок (147 +34)
  GitHub объявил о создании службы для оказания бесплатной юридической помощи разработчикам открытого программного обеспечения, обвинённым в нарушении 1201 статьи DMCA, которая запрещает обход технических мер защиты, таких как DRM. Работу службы будут курировать юристы из Стэнфордской юридической школы, а финансирование обеспечиваться новым фондом Developer Defense Fund, на работу которого выделен миллион долларов.

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

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

Учреждённая служба возьмёт на себя оказание юридической экспертизы и консультирования разработчиков в этой области. Помимо экспертной оценки правомерности DMCA-запроса сотрудниками GitHub, разработчик сможет получить полностью независимую юридическую поддержку, действующую в интересах сообщества.

Напомним, что по следам минувшего инцидента с блокировкой проекта Youtube-dl GitHub изменил процесс обработки требований блокировки. В практику введено обязательное рецензирование юридическими и техническими экспертами каждого требования блокировки на основе 1201 статьи DMCA. В случае отсутствия явных доказательств незаконного обхода защиты, блокировка не производится, а для обоснованных претензий введено предварительное уведомление разработчика с предоставлением времени оспорить претензию или внести исправление в репозиторий. Разработчикам заблокированных репозиториев дана возможность экспортировать issues, PR и другие данные, не содержащие незаконного контента, а обращениям в службу поддержки по вопросам блокировки из-за DMCA будет присваиваться наивысший приоритет.

  1. OpenNews: GitHub разблокировал youtube-dl и принял меры для исключения необоснованных блокировок
  2. OpenNews: GitHub снял ограничения для разработчиков из Ирана
  3. OpenNews: Критика Microsoft после удаления из GitHub прототипа эксплоита для Microsoft Exchange
  4. OpenNews: GitHub разблокировал репозиторий RE3 после рассмотрения встречной претензии
  5. OpenNews: Muse Group добивается закрытия репозитория проекта musescore-downloader на GitHub
Обсуждение (147 +34) | Тип: К сведению |
·27.07.2021 Выпуск системы глубокого инспектирования пакетов nDPI 4.0 (64 +17)
  Проект ntop, развивающий инструменты для захвата и анализа трафика, опубликовал выпуск инструментария для глубокого инспектирования пакетов nDPI 4.0, продолжающего развитие библиотеки OpenDPI. Проект nDPI основан после безуспешной попытки передачи изменений в репозиторий OpenDPI, который остался без сопровождения. Код nDPI написан на языке Си и распространяется под лицензией LGPLv3.

Проект позволяет определять в трафике используемые протоколы уровня приложения, анализируя характер сетевой активности без привязки к сетевым портам (может определять известные протоколы, обработчики которых принимают соединения на нестандартных сетевых портах, например, если http отдаётся не с 80 порта, или, наоборот, когда какую-то другую сетевую активность пытаются закамуфлировать под http через запуск на 80 порту).

Отличия от OpenDPI сводятся к поддержке дополнительных протоколов, портированию для платформы Windows, оптимизации производительности, адаптации для применения в приложениях для мониторинга трафика в режиме реального времени (убраны некоторые специфичные возможности, замедлявшие движок), возможности сборки в форме модуля ядра Linux и поддержке определения субпротоколов.

Всего поддерживается определения 247 протоколов и приложений, от OpenVPN, Tor, QUIC, SOCKS, BitTorrent и IPsec до Telegram, Viber, WhatsApp, PostgreSQL и обращений к GMail, Office365, GoogleDocs и YouTube. Имеется декодировщик серверных и клиентских SSL-сертификатов, позволяющий определить протокол (например, Citrix Online и Apple iCloud), используя сертификат шифрования. Для анализа содержимого pcap-дампов или текущего трафика через сетевой интерфейс поставляется утилита nDPIreader.


  $ ./nDPIreader -i eth0 -s 20 -f "host 192.168.1.10"

   Detected protocols:  
   DNS                  packets: 57    bytes: 7904     flows: 28
   SSL_No_Cert          packets: 483   bytes: 229203   flows: 6  
   FaceBook             packets: 136   bytes: 74702    flows: 4
   DropBox              packets: 9     bytes: 668      flows: 3
   Skype                packets: 5     bytes: 339      flows: 3  
   Google               packets: 1700  bytes: 619135   flows: 34

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

  • Улучшена поддержка методов анализа шифрованного трафика ( ETA - Encrypted Traffic Analysis).
  • Реализована поддержка улучшенного метода идентификации TLS-клиентов JA3+, позволяющего на основе особенностей согласования соединений и задаваемых параметров определять какое ПО используется для установки соединения (например, позволяет определить использование Tor и других типовых приложений). В отличие от ранее поддерживаемого метода JA3, JA3+ отличается меньшим числом ложных срабатываний.
  • Число выявляемых сетевых угроз и проблем, связанных с риском компрометации (flow risk), расширено до 33. Добавлены новые определители угроз, связанных с предоставлением совместного доступа к рабочему столу и файлам, подозрительным HTTP-трафиком, вредоносными JA3 и SHA1, обращением к проблемным доменам и автономным системам, использованием в TLS сертификатов с подозрительными расширениями или слишком долгим сроком действия.
  • Проведена значительная оптимизация производительности, по сравнению с веткой 3.0 скорость обработки трафика возросла в 2.5 раза.
  • Добавлена поддержка GeoIP для определения местоположения по IP-адресу.
  • Добавлен API для вычисления RSI (Relative Strenght Index).
  • Реализованы средства управления фрагментацией.
  • Добавлен API для расчёта однородности потока (jitter).
  • Добавлена поддержка протоколов и сервисов: AmongUs, AVAST SecureDNS, CPHA (CheckPoint High Availability Protocol), DisneyPlus, DTLS, Genshin Impact, HP Virtual Machine Group Management (hpvirtgrp), Mongodb, Pinterest, Reddit, Snapchat VoIP, Tumblr, Virtual Asssitant (Alexa, Siri), Z39.50.
  • Улучшен разбор и определение протоколов AnyDesk, DNS, Hulu, DCE/RPC, dnscrypt, Facebook, Fortigate, FTP Control, HTTP, IEC104, IEC60870, IRC, Netbios, Netflix, Ookla speedtest, openspeedtest.com, Outlook / MicrosoftMail, QUIC, RTSP, RTSP via HTTP, SNMP, Skype, SSH, Steam, STUN, TeamViewer, TOR, TLS, UPnP, wireguard.

  1. OpenNews: Доступна система глубокого инспектирования пакетов nDPI 3.0
  2. OpenNews: Система анализа интернет трафика OpenDPI выпущена под лицензией LGPL
  3. OpenNews: Выпуск системы обнаружения атак Suricata 6.0
  4. OpenNews: Релиз системы обнаружения атак Snort 3
Обсуждение (64 +17) | Тип: Программы |
·26.07.2021 Выпуск эталонной реализации криптографической хеш-функции BLAKE3 1.0 (120 +28)
  Состоялся релиз эталонной реализации криптографической хеш-функции BLAKE3 1.0, примечательной очень высокой производительностью вычисления хеша при обеспечении надёжности на уровне SHA-3. В тесте на генерацию хеша для файла, размером 16 КБ, BLAKE3 с 256-битным ключом опережает SHA3-256 в 17 раз, SHA-256 - в 14 раз, SHA-512 - в 9 раз, SHA-1 - в 6 раз, а BLAKE2b - в 5 раз. Значительный отрыв сохраняется и при обработке очень больших объёмов данных, например, BLAKE3 оказался быстрее SHA-256 в 8 раз при вычислении хеша для 1ГБ случайных данных. Код эталонной реализация BLAKE3 поставляется в вариантах на языках Си и Rust под двойной лицензией - общественное достояние (CC0) и Apache 2.0.

Хэш-функция рассчитана на такое применение, как проверка целостности файлов, аутентификация сообщений и формирование данных для криптографических цифровых подписей. BLAKE3 не предназначена для хеширования паролей, так как нацелена на максимально быстрое вычисление хешей (для паролей рекомендуется использовать медленные хеш-функции yescrypt, bcrypt, scrypt или Argon2). Рассматриваемая хеш-функция нечувствительна к размеру хешируемых данных и защищена от атак по подбору коллизий и нахождению прообраза.

Алгоритм разработан известными специалистами по криптографии (Jack O'Connor, Jean-Philippe Aumasson, Samuel Neves, Zooko Wilcox-O'Hearn) и продолжает развитие алгоритма BLAKE2 и применяет для кодирования дерева цепочек блоков механизм Bao. В отличие от BLAKE2 (BLAKE2b, BLAKE2s), в BLAKE3 для всех платформ предложен единый алгоритм, не привязанный к разрядности и размеру хеша.

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

Что касается разделения на блоки, то в BLAKE3 поток разбивается на кусочки по 1 Кб и каждый кусочек хешируется независимо. На основе хешей кусочков на базе бинарного дерева Меркла формируется один большой хеш. Указанное разделение позволяет решить проблему с распараллеливанием обработки данных при вычислении хеша - например, можно использовать 4-поточные SIMD-инструкции для одновременного вычисления хешей 4 блоков. Традиционные хеш-функции SHA-* обрабатывают данные последовательно.

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

  • Высокая производительность, BLAKE3 значительно быстрее MD5, SHA-1, SHA-2, SHA-3 и BLAKE2.
  • Безопасность, в том числе стойкость к атаке удлинением сообщения, которой подвержен SHA-2;
  • Доступны варианты на языке Rust, оптимизированные для использования инструкций SSE2, SSE4.1, AVX2, AVX-512 и NEON.
  • Обеспечение распараллеливания вычислений на любое число потоков и SIMD-каналов.
  • Возможность инкрементального обновления и верифицированной обработки потоков;
  • Применение в режимах PRF, MAC, KDF, XOF и как обычный хеш;
  • Единый алгоритм для всех архитектур, быстрый как на системах x86-64, так и на 32-разрядных процессорах ARM.

Основные отличия BLAKE3 от BLAKE2:

  • Использование бинарной древовидной структуры, позволяющей добиться неограниченного параллелизма при вычислении хеша.
  • Сокращение числа раундов с 10 до 7.
  • Три режима работы: хеширование, хеширование с ключом (HMAC) и формирование ключа (KDF).
  • Отсутствие дополнительных накладных расходов при хешировании с ключом за счёт использования области, ранее занимаемой блоком параметров ключа.
  • Встроенный механизм работы в форме функции с удлиняемым результатом (XOF, Extendable Output Function), допускающей распараллеливание и позиционирование (seek).

  1. OpenNews: Выпуск криптографической библиотеки Libgcrypt 1.9.0
  2. OpenNews: Доступна криптографическая хеш-функция BLAKE3, работающая в 10 раз быстрее SHA-2
  3. OpenNews: Представлена хеш-функция BLAKE2, претендующая на роль высокопроизводительной замены MD5 и SHA1
  4. OpenNews: Выбран финальный алгоритм для SHA-3
  5. OpenNews: Предложен метод определения коллизий в SHA-1, пригодный для атаки на PGP
Обсуждение (120 +28) | Тип: Программы |
·26.07.2021 Третий бета-выпуск операционной системы Haiku R1 (217 +58)
  После года разработки опубликован третий бета-выпуск операционной системы Haiku R1. Изначально проект был создан как реакция на закрытие ОС BeOS и развивался под именем OpenBeOS, но был переименован в 2004 году из-за претензий, связанных с использованием в названии торговой марки BeOS. Для оценки работы нового выпуска подготовлено несколько загрузочных Live-образов (x86, x86-64). Исходные тексты большей части ОС Haiku распространяются под свободной лицензией MIT, исключение составляют некоторые библиотеки, медиа-кодеки и компоненты, заимствованные из других проектов.

ОС Haiku ориентирована на персональные компьютеры, использует собственное ядро, построенное на основе модульной архитектуры, оптимизированное для высокой отзывчивости на действия пользователя и эффективного выполнения многопоточных приложений. Для разработчиков представлен объектно-ориентированный API. Система напрямую базируется на технологиях BeOS 5 и нацелена на бинарную совместимость с приложениями для данной ОС. Минимальное требование к оборудованию: CPU Pentium II и 384 МБ ОЗУ (рекомендовано Intel Core i3 и 2 ГБ ОЗУ).

В качестве файловой системы используется OpenBFS, поддерживающая расширенные атрибуты файлов, журналирование, 64-разрядные указатели, поддержку хранения мета-тэгов (для каждого файла можно сохранить атрибуты в форме ключ=значение, что делает ФС похожей на БД) и специальных индексов для ускорения выборки по ним. Для организации структуры директорий используются "B+ tree" деревья. Из кода BeOS в состав Haiku включён файловый менеджер Tracker и панель Deskbar, исходные тексты которых были открыты после ухода BeOS со сцены.

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

  • Развиваемый проектом web-браузер WebPositive переведён на использование движка WebKit 612.1.21. Значительно повышена стабильность и совместимость с другими браузерами.
  • Улучшен процесс установки. Упрощён интерфейс разбивки диска на разделы и модернизирован интерфейс для настройки драйверов.
  • Расширена поддержка оборудования. Из FreeBSD 13 перенесены драйверы для беспроводных устройств. Добавлены новые драйверы для звуковых карт, систем хранения и USB-устройств. Улучшена поддержка USB 3. Повышена производительность на системах с графическими картами NVIDIA (GeForce 6200-GeForce Go 6400).
  • Реализована возможность возобновления загрузки обновлений, прерванных из-за сетевых сбоев.
  • Улучшена поддержка тёмных цветовых тем.
  • В настройки системы ввода добавлена возможность отключения тачпада.
  • Улучшена поддержка файловых систем XFS и NFS.
  • Добавлена поддержка таблиц разделов Sun VTOC.
  • Обеспечено масштабирование полос прокрутки в зависимости от размера шрифта.
  • Улучшена поддержка локализации.
  • Повышена стабильность медиапроигрывателя MediaPlayer. Добавлена поддержка видео с разрешением 4K.
  • В пакетном менеджере предоставлена поддержка запуска скриптов-обработчиков во время удаления пакетов.
  • Обновлены версии программ. Python 2 переведён в разряд устаревших и на его место пришёл Python 3.7.
  • В графическом сервере app_server переработано управление памятью и добавлены дополнительные композитные операции отрисовки (используются в браузере для вывода элементов canvas).
  • В эмуляторе терминала реализована поддержка escape-последовательностей для вывода повторяющихся символов.
  • Улучшена совместимость со спецификациями POSIX, в том числе добавлена поддержка операций mlock/munlock, ppoll и exp10/exp10f/exp10l.

  1. OpenNews: Второй бета-выпуск операционной системы Haiku R1
  2. OpenNews: Разработчики Haiku развивают порты для RISC-V и ARM
  3. OpenNews: Первый бета-выпуск операционной системы Haiku R1
  4. OpenNews: Qt 5.9 портирован для операционной системы Haiku
  5. OpenNews: Результаты статического анализа кода операционной системы Haiku
Обсуждение (217 +58) | Тип: Программы |
·25.07.2021 Выпуск децентрализованной видеовещательной платформы PeerTube 3.3 (209 +38)
  Состоялся выпуск децентрализованной платформы для организации видеохостинга и видеовещания PeerTube 3.3. PeerTube предлагает независимую от отдельных поставщиков альтернативу YouTube, Dailymotion и Vimeo, использующую сеть распространения контента на базе P2P-коммуникаций и связывания между собой браузеров посетителей. Наработки проекта распространяются под лицензией AGPLv3.

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

  • Предоставлена возможность создания своей домашней страниц для каждого экземпляра PeerTube. На домашней странице можно привести информацию об узле, доступном содержимом, назначении и подписках. Добавление домашней страницы осуществляется через меню Administration/ Configuration/ Homepage в формате Markdown или HTML. Возможна интеграция на страницу кнопок, видеоплеера, списков воспроизведения, миниатюр видео и каналов. Встроенные списки с видео обновляются автоматически.
  • Добавлена поддержка поиска списков воспроизведения, которые теперь отражаются в результатах поиска при навигации в PeerTube и при использовании движка Sepia Search.
  • Добавлена поддержка публикации сокращённых ссылок на видео и списки воспроизведения. Штатные 36-символьные идентификаторы видео (GUID) теперь могут публиковаться в 22-символьном формате, а вместо путей "/videos/watch/" и "/videos/watch/playlist/" можно указывать "/w/" и "/w/p/".
  • Проведена оптимизация производительности. Извлечение информации о видео теперь осуществляется в два раза быстрее. Ускорено выполнение федеративных запросов. Ведётся работа по выявлению проблем в системах с очень большим числом пользователей, видео и связей с другими узлами.

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

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

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

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

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

  1. OpenNews: Выпуск децентрализованной видеовещательной платформы PeerTube 3.2
  2. OpenNews: Выпуск PeerTube 3.0 с поддержкой децентрализованного потокового вещания
  3. OpenNews: Релиз децентрализованной коммуникационной платформы Hubzilla 6.0
  4. OpenNews: W3C стандартизировал протокол децентрализованных социальных сетей ActivityPub
  5. OpenNews: В libtorrent добавлена поддержка протокола WebTorrent
Обсуждение (209 +38) | Тип: Программы |
·24.07.2021 Анализ влияния на производительность дополнений к Chrome (105 +43)
  Подготовлен обновлённый отчёт с результатом исследования влияния на производительность браузера и комфорт работы пользователя тысячи наиболее популярных дополнений к Chrome. По сравнению с проверкой, проведённой в прошлом году, в новом исследовании помимо простой страницы-заглушки оценивалось изменение производительности при открытии сайтов apple.com, toyota.com, The Independent и Pittsburgh Post-Gazette.

Выводы исследования не изменились: многие популярные дополнения, такие как Honey, Evernote Web Clippe и Avira Browser Safety, могут значительно снижать производительность открытия сайтов в Chrome. С другой стороны, отмечается, что дополнения для блокировки рекламы и обеспечения конфиденциальности могут существенно повышать производительность при просмотре сайтов, содержащих большое число рекламных блоков.

Особый интерес представляет исследование влияния применения блокировщиков рекламы на скорость открытия страниц. За счёт отключения кода, осуществляющего отрисовку рекламы и счётчиков, потребление процессорного времени при открытии сайтов The Independent и Pittsburgh Post-Gazette с использованием наиболее эффективного блокировщика Ghostery удалось снизить с 17.5 сек. до 1.7 сек, т.е. в 10 раз. Для менее эффективного из протестированных блокировщиков Trustnav потребление процессорного времени сократилось до 7.4 сек., т.е. на 57%.

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

При этом кроме ускорения обработки страниц при использовании блокировщиков рекламы значительно снижается трафик (от 43% до 66%) и число отправляемых сетевых запросов (от 83% до 90%).

Блокировщики рекламы также позволяют снизить потребление оперативной памяти, например, при использовании дополнения Disconnect потребление браузером памяти при открытии страниц The Independent и Pittsburgh Post-Gazette снижается с 574 MB до 260 MB, т.е. на 54%, что компенсирует затраты памяти на хранение списков блокировки.

При тестировании производительности дополнений, если рассматривать 100 самых популярных дополнений, при открытии страницы-заглушки наибольшее потребление ресурсов наблюдается в Evernote Web Clipper (потребляет 368 мс процессорного времени). Из дополнений потребляющих значительные ресурсы также можно отметить дополнение для обеспечения приватности Ghostery, видеомессенджер Loom for Chrome, дополнение для студентов Clever и менеджеры паролей Avira и LastPass, которые насчитывают более миллиона установок.

В тесте, осуществляющем открытие сайта apple.com, ситуация меняется и на первое место вырывается дополнение Dark Reader, которое тратит около 25 секунд процессорного времени (в основном из-за подгонки изображений под тёмное оформление). Значительные ресурсы также потребляет дополнение для поиска купонов Honey (+825мс)

При открытии сайта Toyota в лидеры по созданию паразитной нагрузки на CPU вырывается Norton Password Manager.

В выборке из 1000 самых популярных дополнений по потреблению ресурсов CPU во время обработки страницы лидируют дополнения: Ubersuggest (потребляет 1.6 секунд процессорного времени), ProWritingAid Grammar Checker (+658 мс), Meow (637 мс) и MozBar (+604 мс). По потреблению ресурсов в фоне лидируют: Avira Safe Shopping (+2.5 сек.), TrafficLight (+1.04 сек.), Virtru Email Protection (+817 мс) и Stylebot (655 мс). Наибольшее потребление памяти наблюдается у дополнений: AdBlocker by Trustnav (+215МБ), Ad-Blocker Pro (+211МБ), Hola ad remover (198 МБ) и Xodo PDF Viewer & Editor (197МБ). Для сравнения uBlock Origin потребляет при обработке страницы 27 мс времени CPU, в фоне тратит 48 мс процессорного времени и занимает 77 МБ памяти.

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

При измерении задержки перед началом отрисовки страницы-заглушки, из 100 самых популярных дополнений наихудшие показатели оказались у Clever, Lastpass и DuckDuckGo Privacy Essentials.

При повторении теста на сайте apple.com значительные проблемы наблюдалась у Dark Reader, который задержал начало отрисовки на 4 секунды.

На сайте toyota задержки от Dark Reader оказались не столь существенными и в лидерах оказались блокировщики нежелательного контента.

В тесте на потребление ресурсов при нахождении вкладки в фоне наихудшие показатели оказались у дополнения Avira Safe Shopping, которое израсходовало более 2 секунд процессорного времени.

При повторении теста на сайте toyota потребление времени CPU более 2 секунд также отмечены у менеджера паролей Dashlane и блокировщика рекламы AdGuard AdBlocker.

При тестировании 1000 дополнений на сайте The Independent расход процессорного времени в фоне у дополнений uberAgent, Dashlane и Wappalyzer превысил 20 секунд.

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

При установке нескольких дополнений потребление ресурсов от них суммируется.

При сравнении результатов с прошлогодним исследованием наибольший прогресс отмечается в дополнениях Grammarly, Microsoft Office, Okta Browser Plugin, Avira Safe Shopping и Avira Browser Safety, потребление процессорного времени у которых сократилось на более чем 100 мс. Наибольшее ухудшение в потреблении ресурсов наблюдается в дополнениях Save to Pocket, Loom и Evernote.

  1. OpenNews: Оценка влияния на производительность популярных дополнений к Chrome
  2. OpenNews: 111 Chrome-дополнений, загруженных 32 млн раз, уличены в загрузке конфиденциальных данных
  3. OpenNews: Chrome-дополнение с миллионной аудиторией уличено в подстановке рекламы в результаты поиска Google
  4. OpenNews: Оценка производительности браузерных дополнений для блокировки рекламы
  5. OpenNews: Mozilla, Google, Apple и Microsoft объединили усилия в стандартизации платформы для браузерных дополнений
Обсуждение (105 +43) | Тип: Обобщение |
Следующая страница (раньше) >>



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

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