The OpenNET Project / Index page

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

·11.10 Кодек AV2 продемонстрировал снижение битрейта на 30% при уровне качества AV1 (40 +3)
  На конференции QoMEX (Quality of Multimedia Experience) в одном из докладов представлены результаты тестирования формата кодирования видео AV2, развиваемого альянсом Open Media (AOMedia) и идущего на смену формату AV1. При использовании метрик оценки качества VMAF (Video Multi-Method Assessment Fusion), разработанных компанией Netflix, использование кодека AV2 позволило добиться снижения битрейта на 32.59% по сравнению с кодеком AV1 при аналогичном уровне качества. При использовании метрик PSRN-YUV (Peak-Signal-to-Noise Ratio 14:1:1) битрейт удалось снизить на 28.63%. При тестировании задействован выпуск AVM 11.0 с эталонной реализацией AV2.

Формат кодирования видео AV2 не требует лицензионных отчислений и позволяет безвозмездно использовать связанные с ним технологии, патенты и интеллектуальную собственность. Особенности AV2: оптимизация для применения в потоковом вещании; значительное улучшение по сравнению с AV1 производительности операций сжатия; расширенная поддержка возможностей для виртуальной и дополненной реальности; поддержка более широкого диапазона визуального качества; возможность одновременной доставки нескольких видео в рамках одного видеопотока с поддержкой их раздельного отображения на экране.

AV2 продолжает использовать гибридную блочно-ориентированную структуру, но в отличие от AV1 поддерживает более крупные суперблоки 256×256, полностью рекурсивное секционирование (partitioning) и более эффективное разделение параметров яркости и цветности. В AV2 задействован унифицированный экспоненциальный квантизатор, охватывающий более широкий диапазон яркости и обеспечивающий большую точность квантования для 8-, 10- и 12-битного видео, а также лучше управляющий низкими битрейтами.

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

  1. Главная ссылка к новости
  2. OpenNews: Альянс AOMedia анонсировал видеокодек нового поколения AV2
  3. OpenNews: Опубликованы libavif 1.0 и SVT-AV1 1.7, библиотеки для форматов изображений AVIF и видео AV1
  4. OpenNews: Увидел свет первый выпуск открытого видеокодека нового поколения AV1
  5. OpenNews: Разработчики кодека AV1 представили формат IAMF для объёмного звука
  6. OpenNews: Уязвимость в эталонных реализациях кодеков AV1 и VP8/VP9
Обсуждение (40 +3) | Тип: К сведению |


·11.10 MicroPythonOS - ОС с графическим интерфейсом для микроконтроллеров (13 +4)
  Опубликован выпуск проекта MicroPythonOS 0.0.11, разрабатывающего операционную систему для микроконтроллеров, таких как ESP32, написанную с использованием инструментария MicroPython. Операционная система оснащена графическим интерфейсом, развиваемым с оглядкой на Android и iOS, и поддерживающим управления через сенсорные экраны. Из областей применения MicroPythonOS упоминаются устройства интернета вещей (IoT), системы управления домашней автоматизацией, интерактивные панели, роботы и умные носимые устройства с управлением экранными жестами. Проект также может применяться для быстрой разработки прототипов новых устройств. Код написан на языках Си и Python и распространяется под лицензий MIT.

Архитектура MicroPythonOS основана на использовании минимальной базовой системы, отвечающей за инициализацию и взаимодействие с аппаратным обеспечением, монтирование накопителей, многозадачность и интерфейс пользователя. Вся остальная функциональность, такая как настройка Wi-Fi и установка обновлений, вынесена в приложения. Для приложений предлагается использовать язык MicroPython и подмножество библиотек Python.

Ключевые особенности MicroPythonOS:

  • Возможность быстрого написания приложений и драйверов с использованием инструментария MicroPython (редакция Python 3 для микроконтроллеров, поставляемая c урезанным набором библиотек).
  • Поддержка запуска как на платах с микроконтроллерами ESP32, так и на обычных ПК или платах с Linux, таких как Raspberry Pi c Raspbian.
  • Графический интерфейс с управлением экранными жестами.
  • Набор встроенных приложений (меню приложений, конфигуратор, виджет для настройки Wi-Fi, программа установки и обновления приложений).
  • Поддержка установки внешних приложений, распространяемых через централизованный каталог App Store (например, просмотрщик изображений и программа для работы с камерой).
  • Установка и доставка обновлений по сети в режиме OTA (over-the-air).
  • Поддержка Wi-Fi, Blutooth, датчиков IMU (Inertial Measurement Unit) и камер.
  • Оптимизация системы для выполнения на устройствах с ограниченными ресурсами. Очень быстрая загрузка.

  1. Главная ссылка к новости
  2. OpenNews: Реализована загрузка ядра Linux на плате ESP32
  3. OpenNews: Проект Tilck развивает упрощённое Linux-совместимое ядро
  4. OpenNews: Доступен PikaScript 1.8, вариант языка Python для микроконтроллеров
  5. OpenNews: Выпуск Mongoose OS 2.20, платформы для IoT-устройств
  6. OpenNews: Обеспечена возможность запуска MicroPython в web-браузере
Обсуждение (13 +4) | Тип: Программы |


·11.10 Проект по адаптации подсистемы WSL2 для запуска FreeBSD в Windows (15 +3)
  Проект WSL-For-FreeBSD развивает редакцию инструментария WSL2 (Windows Subsystem for Linux), позволяющую вместо Linux запустить FreeBSD в Windows с минимальными изменениями в базовом окружении FreeBSD. По возможности вносимые изменения планируют передавать в основной состав открытой кодовой базы WSL2. Проект позиционируется как персональный и экспериментальный.

На текущем этапе FreeBSD уже можно загрузить в WSL2 в консольном режиме. Основные компоненты FreeBSD успешно запускаются. В настоящее время работа сосредоточена на добавление поддержки сети, оптимизации ввода/вывода и управления процессами. Из планов на будущее упоминается интеграция утилит FreeBSD c окружением Windows и подготовка документации.

Развиваемый компанией Micrоsoft проект WSL2 предоставляет виртуальную машину с полноценным ядром Linux, в которой могут запускаться дистрибутивы Linux. Ядро включает специфичные для WSL изменения, такие как оптимизации для сокращения времени запуска и уменьшения потребления памяти, возможность возвращения Windows освобождённой Linux-процессами памяти и настройки для исключения лишних драйверов и подсистем. Система устанавливается в отдельный дисковый образ (VHD) c файловой системой ext4 и виртуальным сетевым адаптером.

  1. Главная ссылка к новости
  2. OpenNews: Началось альфа-тестирование FreeBSD 15
  3. OpenNews: Отчёт о развитии FreeBSD за второй квартал 2025 года
  4. OpenNews: Microsoft прекращает поддержку прослойки WSA для запуска Android-приложений в Windows
  5. OpenNews: Microsoft открыл код Windows Subsystem for Linux и текстового редактора Edit
  6. OpenNews: Обновление WSL 2.6.0, прослойки для запуска Linux в Windows
Обсуждение (15 +3) | Тип: К сведению |


·10.10 Доступен язык программирования OCaml 5.4.0 (21 +5)
  Опубликован релиз языка программирования OCaml 5.4.0, промышленного функционального языка программирования с акцентом на выразительность и безопасность разрабатываемого программного обеспечения. В OCaml сочетается функциональное ядро, императивные возможности, объектная система и модульная система. Код инструментария для языка OCaml распространяется под лицензией LGPL.

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

Основные изменения и улучшения в OCaml 5.4.0:

  • Именованные кортежи (Labelled tuples), позволяющие давать имена членам кортежа и затем использовать эти имена для обращения к ним.
    
           let point = ~x:1, ~y:2
           (* val point : x:int * y:int = (~x:1, ~y:2)  *)
    
           let ( * ) (x,~dx) (y, ~dx:dy) =
             x*.y, ~dx:(x *. dy +. y *. dx )
    
           (* val ( * ) : float * dx:float -> float * dx:float -> float * dx:float *)
    
           let mult_dx x y =
             let ~dx, .. = x * y in
             dx
    
  • Неизменяемые массивы и единый синтаксис для "_ array", "_ iarray" и "floatarray".
    
           [|1; 2; 3|]
    
           ([|1; 2; 3|] : _ iarray)
    
           ([|1.; 2.; 3.|] : floatarray)
    
  • Встроенный атрибут "atomic" для полей записей, требующий использования атомарных операций для работы над ними.
    
           type 'a mpsc_list = { mutable head:'a list; mutable tail: 'a list [@atomic] }
    
           let rec push t x =
             let before = Atomic.Loc.get [%atomic.loc t.tail] in
             let after = x :: before in
             if not (Atomic.Loc.compare_and_set [%atomic.loc t.tail] before after) then
               push t x
             ...
    
  • Новые модули в стандартной библиотеке: Pair, Pqueue, Repr, Iarray.
    • Модуль Pair для работы с парами;
      
                 let ones = Pair.map_fst succ (0,1)
      
    • Модуль Pqueue - очередь с приоритетом;
           
                 module Int_pqueue = Pqueue.MakeMin(Int)
                 let q = Int_pqueue.of_list [4;0;5;7]
                 let some_zero = Int_pqueue.pop_min q
      
    • Модуль Repr содержит функции физического и структурного сравнения;
      
                 let f = Repr.phys_equal (ref 0) (ref 0)
      
    • Модуль Iarray для работы с неизменяемыми массивами;
      
                 let a = Iarray.init 10 Fun.id
                 let b = Iarray.map succ a
      
  • Восстановлен режим “очистки памяти при выходе”. Этот режим позволяет многократно запускать среду выполнения OCaml в программах на языке C, которые используют библиотеки OCaml. Он также полезен для уменьшения шума при отслеживании утечек памяти в коде C, выполняемого в среде OCaml. Чтобы избежать проблем с "cancellation", все домены объединяются перед выходом из среды выполнения OCaml.
  • Новый раздел в документации по профилированию OCaml-программ в среде Linux и MacOS.
  • Множественные улучшению среды выполнения, кодогенерации, около тридцати новых функций в стандартной библиотеке, почти дюжина улучшенных сообщений об ошибках, более пятидесяти исправлений ошибок.

  1. Главная ссылка к новости
  2. OpenNews: Выпуск языка программирования OCaml 4.14.2
Обсуждение (21 +5) | Автор: ocamlportal.ru | Тип: Программы |


·10.10 Выпуск языка программирования Julia 1.12 (12 +2)
  Опубликован релиз языка программирования Julia 1.12, сочетающего такие качества как высокая производительность, поддержка динамической типизации и встроенные средства для параллельного программирования. Синтаксис Julia близок к MATLAB с заимствованием некоторых элементов из Ruby и Lisp. Метод манипуляции строками напоминает Perl. Код проекта распространяется под лицензией MIT.

Ключевые особенности языка:

  • Высокая производительность: одной из ключевых целей проекта является достижение производительности близкой к программам на языке Си. Компилятор Julia основан на наработках проекта LLVM и генерирует эффективный нативный машинный код для многих целевых платформ;
  • Поддержка различных парадигм программирования, включая элементы объектно-ориентированного и функционального программирования. Стандартная библиотека предоставляет в том числе функции для асинхронного ввода/вывода, управления процессами, ведения логов, профилирования и управления пакетами;
  • Динамическая типизация: язык не требует явного определения типов для переменных по аналогии со скриптовыми языками программирования. Поддерживается интерактивный режим работы;
  • Опциональная возможность явного указания типов;
  • Синтаксис, превосходно подходящий для численных вычислений, научных расчётов, систем машинного обучения и визуализации данных. Поддержка многих числовых типов данных и средств для распараллеливания вычислений.
  • Возможность прямого вызова функций из библиотек на языке Си без дополнительных прослоек.



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

  • Новые возможности языка
    • Экспериментальный параметр "--trim", позволяющий создавать более компактные бинарные файлы за счёт удаления кода, который не достижим из указанных точек входа. Точки входа можно помечать с помощью "Base.Experimental.entrypoint". С этой опцией может работать не весь код.
    • Переопределение констант теперь чётко определено и следует семантике "world age". Допустимы дополнительные переопределения (например, типов).
    • В функцию "names" добавлен новый параметр "usings::Bool", заставляющий функцию вернуть все имена, видимые через "using".
    • Семейство макросов "@atomic" теперь поддерживает синтаксис присваивания ссылок, например: "@atomic :monotonic v[3] += 4", который атомарно изменяет "v[3]" с семантикой монотонного упорядочения. Поддерживаемый синтаксис включает:
      • атомарное чтение ("x = @atomic v[3]"),
      • атомарное присваивание ("@atomic v[3] = 4"),
      • атомарное изменение ("@atomic v[3] += 2"),
      • атомарное однократное присваивание ("@atomiconce v[3] = 2"),
      • атомарный обмен ("x = @atomicswap v[3] = 2"),
      • атомарную замену ("x = @atomicreplace v[3] 2=>5").
    • Новый параметр "--task-metrics=yes", включающий сбор информации о времени выполнения каждой задачи, который можно включать/выключать и во время работы через "Base.Experimental.task_metrics(::Bool)". Доступные метрики:
      • фактическое время выполнения задачи, включая компиляцию и сбор мусора ("Base.Experimental.task_running_time_ns"),
      • время от момента, когда задача начала выполняться до завершения("Base.Experimental.task_wall_time_ns").
    • Поддержка Unicode 16.
    • "Threads.@spawn" теперь принимает аргумент ":samepool" для указания того же пула потоков, что и вызывающий код. "Threads.@spawn :samepool foo()" — сокращение для "Threads.@spawn Threads.threadpool() foo()".
    • Макрос "@ccall" теперь может принимать аргумент "gc_safe". Если он равен true, то во время вызова "ccall" рантайм может осуществлять сборку мусора параллельно.
  • Изменения языка
    • При замене метода эквивалентным по сигнатуре, существующий метод не удаляется. Вместо этого новый метод становится приоритетным. Если новый метод будет удалён, старый метод снова начнёт работать. Это полезно, например, в фреймворках тестирования с подменой (SparseArrays, Pluto, Mocking и др.), так как не нужно явно восстанавливать старый метод. В настоящее время для этой ситуации требуется повторная компиляция, но возможно в будущем удастся переиспользовать старые результаты.
    • Развертывание макросов больше не будет сразу рекурсивно входить в выражения "Expr(:toplevel)" из макросов. Вместо этого развёртывание ":toplevel" будет отложено до времени выполнения. Это позволяет более поздним выражениям в том же ":toplevel" использовать макросы, определённые ранее.
    • Тривиальные бесконечные циклы (такие как "while true; end") больше не считаются неопределённым поведением. Бесконечные циклы, в которых что-то происходит (например, с побочными эффектами или sleep), никогда не были и не являются неопределённым поведением.
    • Одновременная пометка идентификатора как "public" и "export" теперь является ошибкой.
    • Ошибки во время выполнения "getfield" теперь порождают новый тип исключений "FieldError" вместо общего "ErrorException".
    • Макросы в позиции объявления функций теперь не требуют круглых скобок. Например, допустимо "function @main(args) ... end", тогда как ранее требовалось "function (@main)(args) ... end".
    • Вызов "using" по имени пакета внутри самого пакета (особенно актуально для вложенных модулей) теперь явно использует этот пакет без просмотра Manifest и окружения, так же, как "..Name". Это лучше соответствует ожидаемому поведению.
  • Улучшения компилятора/рантайма
    • Сгенерированный LLVM промежуточный код (IR) теперь использует типы указателей вместо передачи указателей в форме целых чисел. Это касается "llvmcall": встроенный LLVM IR следует обновить, заменив "i32"/"i64" на "i8*" или "ptr" и убрав ненужные конверсии "ptrtoint"/"inttoptr". Для совместимости IR с целочисленными указателями всё ещё поддерживается, но выдаёт предупреждение.
  • Изменения параметров командной строки
    • Флаг "-m/--module" можно передать для запуска функции "main" внутри пакета с набором аргументов. Эта функция должна быть объявлена через "@main", указывая, что это точка входа.
    • Включение/отключение цветового вывода в Julia теперь можно контролировать с помощью переменных окружения "NO_COLOR" и "FORCE_COLOR". Эти переменные также учитываются системой сборки Julia.
    • "--project=@temp" запускает Julia с временным окружением.
    • Новый параметр "--trace-compile-timing" выводит время компиляции каждого метода, который выводится "--trace-compile", в миллисекундах.
    • "--trace-compile" теперь выводит перекомпилированные методы жёлтым цветом или добавляет комментарий, если цвет недоступен.
    • Новый параметр "--trace-dispatch" выводит методы, которые динамически распределяются.
  • Изменения многопоточности
    • Julia теперь по умолчанию использует 1 «интерактивный» поток, в дополнение к 1 основному «рабочему» потоку, т.е. "-t1,1". Это означает, что основная задача и REPL (в интерактивном режиме), которые оба работают в потоке 1, теперь выполняются в интерактивном пуле. Цикл ввода-вывода libuv тоже работает в потоке 1, что обеспечивает эффективное использование рабочего пула, используемого "Threads.@spawn". Запрос ровно 1 потока ("-t1"/"JULIA_NUM_THREADS=1") или 0 интерактивных потоков отключает интерактивный поток: "-t1,0", "JULIA_NUM_THREADS=1,0" или "-tauto,0". Запрос более 1 потока включает интерактивный поток; например, "-t2" эквивалентно "-t2,1". Напоминаем: буферы не следует привязывать к "threadid()".
    • Определены новые типы для шаблона кода, который должен выполняться один раз на процесс — тип "OncePerProcess{T}" позволяет определить функцию, которая выполнится ровно один раз, когда её впервые вызовут, а затем будет всегда возвращать одно и то же значение типа "T" при последующих вызовах. Также существуют типы "OncePerThread{T}" и "OncePerTask{T}" для аналогичного использования с потоками или задачами.
  • Изменения системы сборки
    • Добавлены новые файлы Makefile для сборки Julia и LLVM с использованием BOLT (Binary Optimization and Layout Tool). См. "contrib/bolt" и "contrib/pgo-lto-bolt".
  • Новые библиотечные функции
    • "logrange(start, stop; length)" создаёт диапазон с постоянным коэффициентом (ratio), а не постоянным шагом.
    • Новая функция "isfull(c::Channel)" проверяет, будет ли блокироваться "put!(c, some_value)".
    • "waitany(tasks; throw=false)" и "waitall(tasks; failfast=false, throw=false)" ждёт завершения нескольких задач одновременно.
    • "uuid7()" создаёт UUID версии 7, соответствующий RFC 9562.
    • "insertdims(array; dims)" вставляет одноэлементные размерности в массив — операция, обратная "dropdims".
    • Новый тип "Fix" обобщает "Fix1/Fix2" для фиксации одного аргумента.
    • "Sys.detectwsl()" проверяет, выполняется ли Julia внутри WSL в runtime.
  • Новые возможности библиотек
    • "escape_string" принимает дополнительные параметры "ascii=true" (для экранирования всех не-ASCII символов) и "fullhex=true" (для использования полного 4/8-значного hex-формата в u/U-экранировке, например для совместимости с C).
    • "tempname" теперь может принимать строку суффикса, чтобы имя файла включало этот суффикс и он учитывался при уникальности.
    • Объекты "RegexMatch" теперь можно использовать для создания "NamedTuple" и "Dict".
    • "Lockable" теперь экспортируется.
    • "Base.require_one_based_indexing" и "Base.has_offset_axes" теперь публичные.
    • Добавлены новые функции "ltruncate", "rtruncate" и "ctruncate" для усечения строк до ширины текста, учитывая ширину символов.
    • Функция "isless" (а значит, и "cmp", сортировка и т.д.) теперь поддерживается для нулемерных "AbstractArray".
    • "invoke" теперь позволяет передавать "Method" вместо сигнатуры типа.
    • "invoke" теперь принимает "CodeInstance" вместо типа, что может ускорить некоторые рабочие процессы плагинов компилятора.
    • "Timer(f, ...)" теперь наследует "липкость" (stickiness) родительской задачи при создании задач таймера, что можно переопределить новым аргументом "spawn". Это решает проблему, когда липкие порождённые задачи ("@async") делали родителя липким.
    • "Timer" теперь имеет читаемые свойства "timeout" и "interval", а также более описательный метод "show".
    • "sort" теперь поддерживает кортежи "NTuple".
    • "map!(f, A)" теперь сохраняет результаты в "A", как "map!(f, A, A)" или "A .= f.(A)".
    • "setprecision" с аргументом-функцией (обычно через блок "do") теперь потокобезопасен. Другие формы следует избегать, и типы должны перейти к реализации, использующей "ScopedValue".
  • Изменения стандартной библиотеки
    • "gcdx(0, 0)" теперь возвращает "(0, 0, 0)" вместо "(0, 1, 0)".
    • "fd" возвращает "RawFD" вместо "Int".
    • Пакет JuliaSyntaxHighlighting
      • Новый стандартный пакет для применения подсветки синтаксиса к коду Julia, использующий "JuliaSyntax" и "StyledStrings" для реализации функции "highlight", которая создаёт "AnnotatedString" с применённой подсветкой.
    • Пакет LinearAlgebra.
      • "rank" теперь может принимать матрицу "QRPivoted" для оценки ранга через QR-факторизацию.
      • Добавлен ключевой параметр "alg" для "eigen", "eigen!", "eigvals" и "eigvals!" для типов самосопряжённых матриц (типовое объединение "RealHermSymComplexHerm"), позволяющий переключаться между различными алгоритмами извлечения собственных значений.
      • Добавлена общая версия неблокированного разложения Холецкого с выборкой поворотов (вызывается через "cholesky[!](A, RowMaximum())").
      • Количество потоков BLAS по умолчанию теперь учитывает привязку процессов (process affinity), а не просто количество логических потоков системы.
      • Добавлена функция "zeroslike", которая возвращает нулевые элементы для матриц с ленточным хранением. Пользовательские типы массивов могут специализировать эту функцию для правильного результата.
      • Перемножение матриц "A * B" теперь вызывает "matprod_dest(A, B, T::Type)" для генерации приемника. Эта функция теперь публичная.
      • Функция "haszero(T::Type)" используется для проверки, имеет ли тип "T" уникальный нулевой элемент, определённый как "zero(T)". Теперь она публичная.
      • Добавлена функция "diagview", возвращающая представление (view) на конкретную диагональ матрицы "AbstractMatrix".
    • Пакет Profile
      • "Profile.take_heap_snapshot" теперь принимает новый параметр "redact_data::Bool", по умолчанию "true". Если разрешено, то содержимое объектов Julia (например, строк) не включается в снимок памяти.
      • "Profile.print()" теперь окрашивает модули Base/Core/Package так же, как это делается в трассировках стека, а также пути (даже обрезанные) теперь кликабельны в терминалах, которые поддерживают ссылки URI и позволяют открыть указанный файл и строку в редакторе, заданном "JULIA_EDITOR".
    • REPL
      • Используя новую возможность "usings=true" в функции "names()", автодополнение в REPL может дополнять имена, видимые через "using".
      • Автодополнение REPL теперь может завершать строки вида "[import|using] Mod: xxx|", например, завершать "using Base.Experimental: @op" до "using Base.Experimental: @opaque".
      • REPL теперь выдаёт предупреждение, если имя обращается через модуль, который его не определяет (и не имеет подмодуля, который его определяет), и имя не является публичным в этом модуле. Например, "map" определён в Base, и выполнение "LinearAlgebra.map" в REPL теперь выдаст предупреждение при первом таком обращении.
      • При выводе результата ввода в REPL вывод теперь обрезается до 20 KiB. Это не влияет на ручные вызовы "show", "print" и т.д.
      • Автодополнение по символу "\" теперь выводит соответствующий символ или эмоджи рядом с каждым соответствующим кодовым словом.
    • Пакет Test
      • Если набор тестов "DefaultTestSet" завершается с ошибкой, на экран выводится генератор случайных чисел (RNG) этого набора, чтобы помочь воспроизвести стохастическую ошибку, зависящую только от состояния RNG. Также можно задать RNG для набора тестов, передав параметр "rng" в макрос "@testset":
        
          julia
          using Test, Random
          @testset rng=Xoshiro(0x2e026445595ed28e, 0x07bb81ac4c54926d, 0x83d7d70843e8bad6, 0xdbef927d150af80b, 0xdbf91ddf2534f850) begin
              @test rand() == 0.559472630416976
          end
        
    • Пакет InteractiveUtils
      • Новые макросы "@trace_compile" и "@trace_dispatch" для выполнения выражений с параметрами "--trace-compile=stderr --trace-compile-timing" и "--trace-dispatch=stderr" соответственно.
  • Внешние зависимости
    • База данных terminal info ("terminfo") теперь входит в поставку Julia по умолчанию, что улучшает работу REPL, когда "terminfo" недоступен в системе. Julia можно собрать без встраивания базы, используя параметр Makefile "WITH_TERMINFO=0".
  • Улучшения инструментов
    • Доступен профилировщик "wall-time" для пользователей, которым нужен профилировщик с выборкой, захватывающий задачи независимо от их состояния (запланированы/выполняются). Такой профилировщик позволяет профилировать задачи с интенсивным вводом-выводом и помогает обнаружить области сильной конкуренции в системе.

  1. Главная ссылка к новости
  2. OpenNews: Опубликован язык программирования Julia 1.11
Обсуждение (12 +2) | Тип: Программы |


·10.10 Релиз свободного воксельного игрового движка Luanti 5.14.0 (8 +11)
  После двух месяцев разработки опубликован релиз Luanti 5.14.0, свободного кроссплатформенного игрового движка в жанре песочница, позволяющего создавать игры по аналогу Roblox, но с воксельной механикой, используя различные блоки для совместного формирования игроками различных структур и построек, образующих подобие виртуального мира. Некоторые игры на движке стремятся клонировать Minecraft. Предоставляемый движком геймплей полностью зависит от набора модов, создаваемых на языке Lua. Движок написан на языке С++ c использованием 3D-библиотеки IrrlichtMt (форк Irrlicht). Код Luanti распространяется под лицензией LGPL, а игровые ресурсы под лицензией CC BY-SA 3.0. Готовые сборки формируются для различных дистрибутивов Linux, Android, FreeBSD, Windows и macOS.

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

  • Частицы, появляющиеся при копании, теперь видны всем игрокам.
  • Улучшен пользовательский интерфейс. В главном меню связанные с игровым миром параметры теперь скрываются, если мир не выбран. Добавлена поддержка выделения слов целиком при помощи комбинаций клавиш "Ctrl+Shift + ←/→".
  • Обеспечена возможность масштабирования имён (nametag) в зависимости от расстояния.
  • Обновлена документация.
  • Решены проблемы с интерполяцией звеньев (bone) при анимации.
  • Повышена эффективность хранения и стабильность генерации блоков карт (mapblock).
  • Загрузка текстур ускорена за счёт кэширования путей.

  1. Главная ссылка к новости
  2. OpenNews: Релиз свободного воксельного игрового движка Luanti 5.13.0
  3. OpenNews: Игровой движок Minetest переименован в Luanti
Обсуждение (8 +11) | Автор: Аноним | Тип: Программы |


·10.10 Обновление OpenSSH 10.2 (8 +4)
  Спустя четыре дня после релиза OpenSSH 10.1 опубликован корректирующий выпуск OpenSSH 10.2, открытой реализации клиента и сервера для работы по протоколам SSH 2.0 и SFTP. В новой версии отмечены только исправления ошибок:
  • В утилите ssh решена проблема с обработкой параметров терминала, приводившая к невозможности использования SSH-сеанса при активной настройке ControlPersist.
  • В утилите ssh-keygen устранена проблема с загрузкой ключей из токенов PKCS#11.
  • В ssh-keygen решена проблема с операциями формирования цифровых подписей при хранении ключа удостоверяющего центра в ssh-agent.
  • Добавлена поддержка платформ без mmap, таких как WASM.
  • Решены проблемы со сборкой во FreeBSD и MacOS <10.12.
  • Прекращено использование PAM_RHOST если внешних хост помечен как "UNKNOWN" (выставляется для соединений не через IPv4 и IPv6), что потенциально могло приводить к зависанию при использовании некоторых PAM-модулей.

  1. Главная ссылка к новости
  2. OpenNews: Релиз OpenSSH 10.1
  3. OpenNews: Уязвимость в Dropbear SSH, допускающая подстановку команд в dbclient
  4. OpenNews: Уязвимость в SSH-сервере из Erlang/OTP, допускающая удалённое выполнение кода
  5. OpenNews: Компания Cloudflare опубликовала opkssh для аутентификации в SSH через OpenID Connect
  6. OpenNews: Уязвимость в поставляемом во FreeBSD варианте OpenSSH, допускающая удалённое выполнение кода
Обсуждение (8 +4) | Тип: Программы |


·10.10 Атака, использующая GitHub Copilot для извлечения данных из приватных репозиториев (28 +23)
  Исследователи из компании Legit Security разработали технику атаки на GitHub Copilot, позволяющую извлечь содержимое из приватных репозиториев при использовании чатбота для анализа присылаемых pull-запросов. В качестве примера продемонстрирована возможность определения хранимых в приватном репозитории ключей для доступа к облачному окружению AWS.

Атака основывается на способности GitHub Copilot загружать внешние изображения в зависимости от обрабатываемого содержимого и возможности подставлять в pull-запросы скрытые комментарии, которые невидны в интерфейсе GitHub, но учитываются при анализе чатботом. Для организации утечки атакующий на своём сервере создаёт набор однопиксельных прозрачных изображений, каждое из которых соответствуют спецсимволу, цифре или букве алфавита. Далее жертве отправляется pull-запрос, в котором помимо предлагаемого изменения указывается скрытый комментарий с инструкцией для чатбота, оформленный в блоке "<!-- комментарий -->", не показываемом при выводе текста в формате Markdown.

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

При использовании мэйнтейнером GitHub Copilot для разбора предложенного pull-запроса, чатбот выполнит скрытое задание и покажет результат в форме картинок. Так как картинки прозрачные мэйнтейнер не заметит аномалий, а атакующий сможет воссоздать содержимое найденных строк с ключами AWS путём анализа последовательности загрузки картинок в логе web-сервера.

Для обхода защиты CSP (Content Security Policy), допускающей загрузку в GitHub Copilot картинок только с серверов GitHub, в качестве прокси задействован сервис GitHub Camo. Данный прокси используется в GitHub как промежуточное звено для загрузки внешних изображений, например, встраиваемых на страницу README. Для задействования Camo в таблице сопоставления символов указываются не прямые ссылки, а ссылки на сам прокси, оформленные как "https://camo.githubusercontent.com/хэш_картинки". До этого через GitHub REST API в Camo добавляются и заверяются необходимые пути для перенаправления загрузки изображений. Компания GitHub уже блокировала описанный метод атаки через запрет отрисовки изображений в чате с Copilot.

  1. Главная ссылка к новости
  2. OpenNews: SnailLoad - атака по определению открываемых сайтов через анализ задержек доставки пакетов
  3. OpenNews: ArtPrompt - атака на AI-системы, позволяющая обойти фильтры при помощи ASCII-картинок
  4. OpenNews: В репозитории Hugging Face выявлены вредоносные AI-модели, выполняющие код
  5. OpenNews: Исследование влияния AI-ассистентов, подобных GitHub Copilot, на безопасность кода
  6. OpenNews: Техника атаки на системы, использующие алгоритмы машинного обучения
Обсуждение (28 +23) | Тип: Проблемы безопасности |


·10.10 Оценка изменения производительности CPython за последние 5 лет (123 +14)
  Мигель Гринбе (Miguel Grinberg), автор нескольких книг по Python-фреймворкам SQLAlchemy и Flask, опубликовал результаты тестирования производительности веток CPython с 3.9 по 3.14. Дополнительно аналогичные тесты проведены для Pypy 3.11 (реализация Python с JIT-компилятором), Node.js 24 и Rust 1.90. Для выпусков CPython 3.13 и 3.14 дополнительно измерена производительность при включении JIT-компилятора и режима сборки Free-threading без глобальной блокировки.

Для изменения производительности использовались скрипты для вычисления чисел Фибоначчи (глубокая рекурсия) и пузырьковой сортировки случайно генерируемых чисел, запускаемые в однопоточном режиме и с разделением на 4 потока. Тесты запускались в Ubuntu 24.04 на ноутбуке с CPU Intel Core i5 и macOS Sequoia на ноутбуке с SoC Apple M2.

В большинстве тестов CPython 3.14 оказался быстрее ветки 3.13 примерно на 20%, при том, что в некоторых тестах ветки 3.11 и 3.12 оказались быстрее 3.13. Отрыв 3.14 от веток 3.9 и 3.10 составил примерно два раза. Pypy, Node.js и Rust обогнали CPython 3.14 в первом тесте в 4.93, 4.88 и 69.82 раз, а во втором тесте в 18.14, 6.64 и 36.15 раз, соответственно (сравнивались только однопоточные режимы).







Режим без глобальной блокировки в CPython 3.14 позволил в два раза ускорить многопоточное выполнение. Включение режима с JIT в CPython не привело к существенному росту производительности, а в тесте ветки 3.14 в macOS даже замедлило выполнение.



В однопоточных тестах режим без глобальной блокировки заметно замедлил выполнение задач, а режим с JIT почти не повлиял на производительность.



  1. Главная ссылка к новости
  2. OpenNews: Сравнение производительности сетевого драйвера в вариантах на 10 языках программирования
  3. OpenNews: Оценка производительности 14 серверов приложений на языке Python
  4. OpenNews: Оценка типичных проблем с безопасностью для различных языков программирования
  5. OpenNews: Оценка популярности грязных хаков у разработчиков на различных языках программирования
  6. OpenNews: Опубликованы тесты простейших приложений на различных языках программирования.
Обсуждение (123 +14) | Тип: Обобщение |


·10.10 В Ubuntu 25.10 оказалась неработоспособна установка Flatpak-пакетов (149 +18)
  Пользователи, перешедшие на выпуск Ubuntu 25.10, столкнулись с невозможностью установить или обновить Flatpak-пакеты. Проблема вызвана изменениями в AppArmor-правилах, применяемых при запуске утилиты fusermount3. Из-за некорректно выставляемых правил доступа попытки установки или обновления пакетов при помощи утилиты flatpak приводят к выводу ошибки о невозможности отмонтировать каталог /var/tmp/flatpak-cache-*.

Проблеме присвоен критический уровень важности. В настоящее время подготовлено и проходит проверку обновление пакета с правилами AppArrmor, до готовности которого в качестве обходного пути для временного решения проблемы можно отключить Apparmor-профиль для fusermount3.

  1. Главная ссылка к новости
  2. OpenNews: Релиз Ubuntu 25.10
  3. OpenNews: Инцидент с подстановкой непристойных выражений в инсталлятор Ubuntu 23.10
  4. OpenNews: Уязвимость во flatpak, позволяющая обойти sandbox-изоляцию
  5. OpenNews: Релиз системы самодостаточных пакетов Flatpak 1.16.0
  6. OpenNews: Проекту Fedora пригрозили иском из-за поставки сбойного flatpak-пакета с OBS Studio
Обсуждение (149 +18) | Тип: К сведению |


·09.10 Релиз Ubuntu 25.10 (214 +6)
  Опубликован дистрибутив Ubuntu 25.10 "Questing Quokka", который отнесён к промежуточным выпускам, обновления для которых формируются в течение 9 месяцев. Готовые установочные образы созданы для Ubuntu, Ubuntu Server, Lubuntu, Kubuntu, Ubuntu Mate, Ubuntu Budgie, Ubuntu Studio, Xubuntu, UbuntuKylin (редакция для Китая), Ubuntu Unity, Edubuntu и Ubuntu Cinnamon.

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

  • Рабочий стол обновлён до выпуска GNOME 49. Прекращена поддержка сеанса GNOME на базе X11 и оставлен только сеанс на базе Wayland, в котором для запуска X11-приложений применяется XWayland. Пакеты с компонентами X.org и альтернативными десктоп-окружениями, использующими X11, продолжают поставляться в репозитории.
  • В конфигуратор добавлен интерфейс для управления автозапуском приложений (Settings → Apps).
  • Параметры дробного масштабирования в GNOME оптимизированы для минимизации размытия.
  • Размер моноширинного шрифта, применяемого в эмуляторе терминала, уменьшен и теперь соответствует размеру шрифта, применяемого по умолчанию в интерфейсе пользователя.
  • Вместо просмотрщика изображений Eye of GNOME по умолчанию задействовано приложение Loupe, предоставляющее легковесный интерфейс и оптимизированное для быстрого просмотра изображений. Для декодирования изображений задействована библиотека glycin, использующая sandbox-изоляцию и написанная на Rust. Среди возможностей: плавный переход от одного изображения к другому, визуальные эффекты при масштабировании и повороте картинки, боковая панель со свойствами, кнопки для быстрого копирования и удаления, инструменты для редактирования (кадрирование, поворот, отражение).
  • Вместо эмулятора терминала GNOME Terminal задействовано приложение Ptyxis, предоставляющее дополнительные возможности для работы с контейнерами при помощи инструментариев Toolbox, Distrobox, Podman и JHBuild. Ptyxis также отличается расширенными настройками, обзорным режимом для наглядной навигации по открытым сеансам и очень высокой скоростью отрисовки за счёт задействования Vulkan и OpenGL.
  • В композитном сервере Mutter улучшена поддержка HDR и расширены функции управления цветом. Задействован механизм VRR (Variable Refresh Rate), позволяющий адаптивно менять частоту обновления монитора для обеспечения плавности и отсутствия разрывов во время игр и показа видео.
  • Улучшена поддержка Wayland на системах с GPU NVIDIA.
  • В качестве минимально поддерживаемого варианта архитектуры RISC-V заявлен профиль RVA23 (RISC-V Application), в который включены расширения для векторных операций и гипервизоров. В настоящее время лишь ограниченное число плат RISC-V поддерживают векторные расширения профиля RVA23, а большинство доступных на рынке устройств соответствуют профилю RVA20.
  • Для систем на базе архитектуры RISC-V предоставлен полнофункциональный десктоп-сеанс, поддерживающий такие приложения, как Firefox и Thunderbird.
  • Стабилизирована поддержка полнодискового шифрования, не требующего ввода пароля разблокировки диска при загрузке, благодаря хранению информации для расшифровки ключей в TPM (Trusted Platform Module). Реализованы возможности для восстановления ключей, применяемых при полнодисковом шифровании на базе TPM.
  • Продолжена работа над системой вывода запросов полномочий, требующих у пользователя подтверждения доступа, например, при обращении из snap-пакетов к файлам в домашнем каталоге. Динамическое предоставление доступа организовано с использованием механизма AppArmor. Улучшена интеграция запроса полномочий с GNOME Shell.
  • В инсталлятор интегрирована поддержка Landscape, системы управления группой рабочих станций и серверов. Изменение позволит администраторам предприятий загружать файлы с настройками автоматической установки напрямую из платформы Landscape.
  • При выводе уведомления о наличии обновлений теперь предлагаются опции для открытия приложения Software Updater или установки предложенных обновлений. Если уведомление было пропущено в системном лотке появляется соответствующий индикатор, через который также можно инициировать установку обновлений.
  • Утилиты GNU Coreutils заменены в базовой поставке на инструментарий Rust Coreutils (uutils), а приложение sudo заменено на sudo-rs. Замена системных компонентов производится в рамках инициативы по повышению качества системного окружения через поставку программ, изначально разрабатываемых с оглядкой на безопасность, надёжность и корректность. Поставка утилит, написанных на языке Rust, даст возможность снизить риск появления ошибок при работе с памятью, таких как обращение к области памяти после её освобождения и выход за границы буфера.
  • По умолчанию для синхронизации точного времени задействован проект Chrony. Ранее используемый сервис systemd-timesyncd решено заменить на Chrony из-за желания задействовать протокол NTS (Network Time Security) для криптографической защиты синхронизации времени. Chrony предоставляет независимую реализацию клиента и сервера NTP и применяется для синхронизации точного времени в Fedora, SUSE/openSUSE и RHEL.
  • Для формирования образов начального RAM-диска (initrd) вместо пакета initramfs-tools по умолчанию задействован инструментарий Dracut. Переход на Dracut позволит решить такие проблемы, как невозможность использования systemd в initrd, отсутствие поддержки NVMe over Fabric (NVM-oF), обилие кода на shell в initrd, сложность сопровождения из-за раздельной работы с initrd и корневой ФС.
  • Пакет intel-compute-runtime пересобран с флагом NEO_DISABLE_MITIGATIONS, отключающим защиту от атак класса Spectre. По оценке разработчиков наличие подобной защиты приводило к снижению производительности пакета примерно на 20%, при том, что в подобной защите на уровне пакета нет необходимости, так как для блокирования атак класса Spectre достаточно защиты на уровне ядра.
  • Задействована новая ветка пакетного менеджера APT 3 (3.1.6), в которой переработан интерфейс пользователя, активирован движок разрешения зависимостей Solver3, добавлена поддержка снапшотов, прекращено использования утилиты apt-key, добавлен крипто-бэкенд для библиотеки OpenSSL и реализована команда 'dist-clean'.
  • Ядро Linux обновлено до ветки 6.17. Объявлены устаревшими пакеты linux-modules-extra-* - все модули ядра теперь поставляются в пакетах linux-modules--.
  • Обновлены версии пакетов, включая systemd 257.9, GCC 15.2, binutils 2.45, glibc 2.42, Python 3.13.7, LLVM 20, Ruby 3.3, Rust 1.85, Go 1.24, OpenJDK 25, PHP 8.4.11, .NET 10, Pipewire 1.4.5, BlueZ 5.83, Netplan 1.1.2, Firefox 142, LibreOffice 25.8, Qt 6.9.2, VLC 3.0.21, cloud-init 25.3, Django 5.2, Dovecot 2.4, libvirt 11.6.0, PostgreSQL 17, MySQL 8.4, QEMU 10.1, Samba 4.22, Valkey (форк Redis) 8.1.1, Mesa 25.2.3, OpenSSL 3.5.3, nginx 1.26.3, OpenLDAP 2.6.10, OpenSSH 10.0, GRUB 2.14-beta.
  • Вместо Ubuntu Report интегрирована новая система накопления и отправки телеметрии Ubuntu Insights, через которую реализован периодический сбор метрик. Система является опциональной и включается по желанию пользователя в мастере начальной настройки (GNOME Initial Setup).
  • Включён сервис nvidia-powerd, обеспечивающий поддержку механизма NVIDIA Dynamic Boost, позволяющего балансировать энергопотребление между CPU и GPU для повышения производительности.
  • На системах с проприетарными драйверами NVIDIA реализована корректная поддержка перехода в спящий режим.
  • Изменён состав редакции Ubuntu Server. Из набора пакетов ubuntu-server удалены утилиты screen, wget, byobu, cloud-guest-utils и dirmngr, которые доступны для установки из репозитория или в составе зависимостей (например, screen в числе зависимостей к ubuntu-release-upgrader, cloud-guest-utils - cloud-init, а dirmngr - gnupg и vanilla-gnome-desktop).
  • В authd, сервис для интеграции с облачными системами аутентификации, добавлена поддержка регистрации устройства с использованием EntraID. В состав включена утилита authctl для управления authd.
  • Добавлена полная поддержка интегрированных GPU Intel Core Ultra Xe3 и дискретных видеокарт Intel Arc Pro B50 и B60 "Battlemage".
  • В Kubuntu задействованы выпуски KDE Plasma 6.4, KDE Gear 25.08, Qt 6.8 и KDE Frameworks 6.17.0. В базовом окружении Kubuntu прекращена поставка сеанса KDE на основе X-сервера. Для использования сеанса на базе X-сервер в репозитории имеется пакет "plasma-session-x11".
  • В Lubuntu включён выпуск среды рабочего стола LXQt 2.2.
  • В Ubuntu Cinnamon предложена версия рабочего стола Cinnamon 6.4.12 (в прошлой версии был 6.4.8). Обновлена тема оформления Yaru-Cinnamon.
  • В Ubuntu Studio задействован рабочий стол KDE Plasma 6.4. Добавлен опциональный вариант оформления интерфейса в стиле macOS c нижней панелью и глобальным меню. В конфигуратор Ubuntu Studio Audio Configuraiton добавлены дополнительные настройки звука, многие настройки разрешено менять без получения root-доступа. Добавлен пакет JackTrip с графическим интерфейсом для передачи звука по сети. Обновлены версии Qtractor 1.5.8, Audacity 3.7.5, digiKam 8.7.0, Kdenlive 25.08.1, Krita 5.2.11 и GIMP 3.0.4.
  • В Xubuntu продолжает поставляться Xfce 4.20.

  1. Главная ссылка к новости
  2. OpenNews: Ubuntu прекращает поддержку сеанса X11 в GNOME
  3. OpenNews: Ubuntu 25.10 переходит по умолчанию на Chrony вместо systemd-timesyncd
  4. OpenNews: В Ubuntu 25.10 заменят эмулятор терминала и просмотрщик изображений
  5. OpenNews: В Ubuntu 25.10 решено задействовать аналог sudo, написанный на Rust
  6. OpenNews: Доступен дистрибутив Ubuntu 25.04
Обсуждение (214 +6) | Тип: Программы |


·09.10 Система сжатия OpenZL, опережающая Zstd и XZ по скорости и уровню сжатия структурированных данных (83 +37)
  Компания Meta* представила инструментарий для сжатия и распаковки данных OpenZL, по сравнению с форматами Zstd и XZ демонстрирующий более высокий уровень сжатия и скорость работы. OpenZL разработан для эффективного сжатия структурированных наборов данных, например, применяемых при машинном обучении, а также хранилищ, содержащих поля с различными повторяющимися типами информации. Код OpenZL написан на C/C++ и открыт под лицензией BSD.

При сжатии БД с астрономическим каталогом звёзд SAO, инструментарий OpenZL позволил сократить размер данных в 2.06 раза, в то время как алгоритм zstd сжал информацию в 1.31 раза, а XZ в 1.64 раза. При этом по скорости сжатия OpenZL опередил zstd в два раза (203 MB/s против 115 MB/s), а XZ - в 65 раз (203 MB/s против 3.1 MB/s). Распаковка в OpenZL оказалась незначительно медленнее zstd (822 MB/s против 890 MB/s) и в 27 быстрее XZ.

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

Упаковка и распаковка осуществляется при помощи одной утилиты "zli" или библиотеки libopenzl. Структура данных описывается в виде профилей. В состав уже входит набор предопределённых профилей, описывающих типовые форматы хранения. Например, профиль для формата CSV или данных, хранимых в форме массива 64-разрядных чисел. Сжатие сводится к выбору профиля командой "zli list-profiles" и запуску процесса упаковки командой "zli compress --profile имя_профиля". Для распаковки достаточно запустить "zli decompress".

Для специфичных форматов требуется сформировать собственный профиль, используя команду "zli train", которая выявляет закономерности в данных и формирует профиль с оптимальным уровнем сжатия. Используя опцию "--pareto-frontier" созданный профиль можно модернизировать в сторону ускорения упаковки или распаковки, ценой снижения уровня сжатия. Для описания сложных форматов со вложенными структурами и определения раскладки форматов данных в структурах может применяться язык SDDL (Simple Data Description Language).

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

  1. Главная ссылка к новости
  2. OpenNews: Facebook опубликовал реализацию алгоритма сжатия Zstandard 1.0
  3. OpenNews: Компания Apple открыла реализацию алгоритма сжатия без потерь LZFSE
  4. OpenNews: Компания Google открыла код Draco, библиотеки для эффективного сжатия 3D-графики
  5. OpenNews: Библиотеки сжатия LZHAM и Crunch переведены в общественное достояние
  6. OpenNews: Автор LZ4 представил новый быстрый и эффективный алгоритм сжатия ZSTD
Обсуждение (83 +37) | Тип: К сведению | Интересно


·09.10 Выпуск сетевого анализатора Wireshark 4.6.0 (34 +24)
  После года разработки опубликован релиз новой стабильной ветки сетевого анализатора Wireshark 4.6. Программа поддерживает более тысячи сетевых протоколов и несколько десятков форматов захвата трафика. Предоставляется графический интерфейс для создания фильтров, захвата трафика, анализа сохранённых дампов и инспектирования пакетов. Поддерживаются такие расширенные возможности, как пересборка порядка следования пакетов, выделение и сохранение содержимого файлов, передаваемых с использованием разных протоколов, воспроизведение VoIP и RTP-потоков, расшифровка IPsec, ISAKMP, Kerberos, SNMPv3, SSL/TLS, WEP и WPA/WPA2. Код проекта распространяется под лицензией GPLv2.

Ключевые новшества Wireshark 4.6.0:

  • В меню "Statistics" в секцию графиков добавлен режим "Plots". В отличие от ранее доступного режима "I/O Graphs" вместо гистограмм, отражающих изменение усреднённых данных во времени, в режиме "Plots" статистика визуализирует распределение фактических значений, что делает более заметными повторяющиеся закономерности.
  • Графики "I/O Graph" оптимизированы для показа на экранах с низким разрешением.
  • Добавлена поддержка сжатия захватываемых потоков трафика во время записи, а не во время ротации уже записанного файла. Для работы с сжимаемыми на лету потоками в TShark можно использовать опцию "--compress".
  • Добавлена возможность копирования списка пакетов в формате HTML (в меню добавлен пункт "Edit > Copy > as HTML").
  • В меню "View" добавлена опция для ручного повторного разбора пакетов (Redissect Packets), который можно использовать в случае изменения ключа шифрования или DNS-хоста, связанного с IP-адресом.
  • Реализована возможность экспорта сертификатов X.509, используя меню "File > Export Objects" в Wireshark и опцию "--export-objects" в TShark.
  • Добавлена поддержка дешифровки NTP-пакетов, передаваемых с использованием протокола NTS (Network Time Security).
  • При декодировании пакетов MACsec предоставлена возможность использования модуля разбора (dissector) MKA.
  • В модулях разбора трафика HTTP и HTTP/2 добавлена поддержка содержимого, сжатого с использованием алгоритма Zstandard.
  • В диалог "Follow Stream" добавлена возможность отслеживания идентификаторов потоков MPEG 2 (Transport Stream PID) для извлечения звука и видео для последующего воспроизведения.
  • В диалогах "Conversations" и "Endpoints table" добавлена поддержка протокола DNP 3 (Distributed Network Protocol 3).
  • Добавлена поддержка пометки потоков HTTP2, передаваемых в сеансах 3GPP поверх сетевых интерфейсов 5G.
  • На платформе Linux предоставлена возможность использования для захвата трафика BPF-расширений "inbound", "outbound" и "ifindex", скомпилированных через диалог "Compiled Filter".
  • В Lua API добавлена поддержка функций Libgcrypt для симметричного шифрования.
  • Добавлена поддержка декодирования форматов файлов RIFF (Resource Interchange File Format) и TTL.
  • Добавлена поддержка протоколов и форматов:
    • Asymmetric Key Packages (AKP),
    • Binary HTTP,
    • BIST TotalView-ITCH (BIST-ITCH),
    • BIST TotalView-OUCH (BIST-OUCH),
    • Bluetooth Android HCI (HCI ANDROID),
    • Bluetooth Intel HCI (HCI INTEL),
    • BPSec COSE Context,
    • BPSec Default SC,
    • Commsignia Capture Protocol (C2P),
    • DECT NR+ (DECT-2020 New Radio),
    • DLMS/COSEM,
    • Ephemeral Diffie-Hellman Over COSE,
    • Identifier-Locator Network Protocol (ILNP),
    • LDA Neo Device trailer (LDA_NEO_TRAILER),
    • Lenbrook Service Discovery Protocol (LSDP),
    • LLC V1,
    • Navitrol (мессенджер),
    • Network Time Security Key Establishment Protocol (NTS-KE),
    • Ouster VLP-16,
    • Private Line Emulation (PLE),
    • RC V3,
    • RCG,
    • Roughtime,
    • SBAS L5 Navigation Message,
    • SGP.22 GSMA Remote SIM Provisioning (SGP.22),
    • SGP.32 GSMA Remote SIM Provisioning (SGP.32),
    • SICK CoLA,
    • Silabs Debug Channel,
    • Universal Measurement and Calibration Protocol (XCP),
    • USB Picture Transfer Protocol (USB-PTP),
    • VLP-16,
    • vSomeIP Internal Protocol (vSomeIP).
  • Для macOS вместо отдельных пакетов для архитектур Arm и Intel подготовлены универсальные сборки.
  • В сборках для macOS и Windows реализована возможность принудительного включения тёмного или светлого режима, независимо от системных настроек. Библиотека Qt в сборках для Windows и macOS обновлена до версии 6.9.3 (ранее поставлялся выпуск 6.5.3). Прекращена поддержка AirPcap и WinPcap, вместо которых следует использовать Npcap.
  • В число обязательных зависимостей включена библиотека libxml2.

  1. Главная ссылка к новости
  2. OpenNews: Выпуск сетевых анализаторов Wireshark 4.4.0 и Zeek 7.0.0
  3. OpenNews: Доступен SELKS 10, дистрибутив для создания систем обнаружения вторжений
  4. OpenNews: Выпуск системы индексации сетевого трафика Arkime 5.0
  5. OpenNews: Google опубликовал OSV-Scanner, сканер уязвимостей, учитывающий зависимости
  6. OpenNews: Доступны анализатор трафика Zeek 8.0 и сетевой сканер Nmap 7.98
Обсуждение (34 +24) | Тип: Программы |


·09.10 Представлена библиотека Servo GTK для интеграции движка Servo с GTK-приложениями (51 +13)
  Один из сотрудников Amazon представил библиотеку Servo GTK, предназначенную для встраивания web-движка Servo в приложения, использующие GTK4. Библиотека реализует GTK-виджет, при помощи которого можно использовать Servo Webview для отрисовки web-контента. Из особенностей отмечается поддержка ускорения отрисовки при помощи OpenGL и возможность обработки событий в асинхронном режиме. Проект написан на языке Rust и распространяется под лицензией MPL 2.0. В качестве примера использования на базе библиотеки подготовлен простейший web-браузер с интерфейсом на базе GTK.

Движок Servo изначально развивался компанией Mozilla, но затем перешёл под покровительство организации Linux Foundation. Servo отличается поддержкой многопоточного рендеринга web-страниц, распараллеливанием операций с DOM (Document Object Model) и задействованием предоставляемых языком Rust механизмов безопасного программирования. Servo изначально создан с поддержкой разбиения кода DOM и рендеринга на более мелкие подзадачи, которые могут выполняться параллельно и более эффективно использовать ресурсы многоядерных CPU. В Firefox уже интегрированы некоторые части Servo, такие как многопоточный CSS-движок и система отрисовки WebRender. На базе Servo развиваются браузеры ServoShell и Verso (репозиторий Verso вчера переведён в архив).

  1. Главная ссылка к новости
  2. OpenNews: Доступен графический тулкит GTK 4.20
  3. OpenNews: Ardour прекратил поддержку сборки с GTK2 в пользу форка YTK
  4. OpenNews: Движок Servo прошёл тесты Acid2. Сrash Reporter в Firefox переписан на Rust
  5. OpenNews: Проект Verso развивает web-браузер на базе движка Servo
  6. OpenNews: В прототипе браузера на базе движка Servo появилась поддержка вкладок
Обсуждение (51 +13) | Тип: Программы |


·09.10 Уязвимости в Redis и Valkey, позволяющие выполнить код на сервере при наличии доступа к БД (123 +12)
  Исследователи из компании Wiz выявили в СУБД Redis уязвимость (CVE-2025-49844), позволяющую добиться удалённого выполнения кода (RCE) на сервере. Проблеме присвоен наивысший уровень опасности (CVSS score 10 из 10), при этом для эксплуатации уязвимости атакующий должен иметь возможность отправки запросов к СУБД Redis, допускающей выполнение пользовательских Lua-скриптов.

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

Уязвимость вызвана обращением к уже освобождённой памяти (use-after-free), проявляющимся при манипуляции сборщиком мусора из специально оформленного Lua-скрипта. Проблема позволяет обойти sandbox-изоляцию Lua-окружения в Redis и выполнить код в основной системе с правами пользователя, под которым выполняется СУБД. Примечательно, что ошибка оставалась незамеченной на протяжении 13 лет. Выявившие проблему исследователи продемонстрировали рабочий эксплоит, но детали эксплуатации пока не раскрываются, чтобы дать время на установку обновлений.

Уязвимость также проявляется в проекте Valkey, развивающем форк Redis, поставляемый в большинстве дистрибутивов Linux, включая RedHat Enterprise Linux 10. Уязвимость устранена в выпусках Redis 8.2.2, 8.0.4, 7.4.6, 7.2.11 и 6.2.20, а также в Valkey 8.1.4, 8.0.6 и 7.2.11. Проверить состояние новой версии пакета или подготовки исправления в дистрибутивах можно на следующих страницах: Debian, Ubuntu, Fedora, SUSE/openSUSE, RHEL, Gentoo, Arch, FreeBSD, OpenBSD и NetBSD. В качестве обходного пути защиты в СУБД можно отключить выполнение Lua-скриптов, запретив команды EVAL и EVALSHA через ACL.

Дополнительно можно отметить ещё три уязвимости, эксплуатируемые через Lua-скрипты и устранённые в последних версиях Redis и Valkey. Для обходной защиты от данных уязвимостей через ACL можно запретить семейства команд EVAL и FUNCTION.

  • CVE-2025-46817 - целочисленное переполнение в библиотечных Lua-функциях, потенциально позволяющее добиться выполнения своего кода на стороне сервера при запуске специально оформленных Lua-скриптов.
  • CVE-2025-46819 - ошибка, приводящая к чтению данных из области за пределами буфера при выполнении специально оформленного Lua-скрипта. Уязвимость может использоваться для аварийного завершения серверного процесса Redis.
  • CVE-2025-46818 - возможность выполнения команд в контексте другого пользователя СУБД при манипуляции LUA-объектами из специально оформленного Lua-скрипта.

  1. Главная ссылка к новости
  2. OpenNews: Выпуск СУБД Redis 8.2
  3. OpenNews: Уязвимости в СУБД Redis и Valkey
  4. OpenNews: Сравнение производительности СУБД Valkey и Redis
  5. OpenNews: На соревновании Pwn2Own в Берлине продемонстрированы взломы RHEL, Firefox, Redis и VirtualBox
  6. OpenNews: Опубликован Valkey 8.1, форк СУБД Redis от Amazon, Google, Oracle и Ericsson
Обсуждение (123 +12) | Автор: Асен Тотин | Тип: Проблемы безопасности |


Следующая страница (раньше) >>



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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