home tags events about rss login

Things happen.

opennet honked 13 May 2024 21:00 +0200

Опубликованы дистрибутивы Rescuezilla 2.5 и SystemRescue 11.01

Доступен выпуск дистрибутива Rescuezilla 2.5, предназначенного для резервного копирования, восстановления систем после сбоев и диагностики различных аппаратных проблем. Дистрибутив построен на пакетной базе Ubuntu и продолжает развитие проекта "Redo Backup & Rescue", разработка которого была прекращена в 2012 году. Для загрузки предлагаются live-сборки для 64-разрядных систем x86 (1.2 ГБ) и deb-пакет для установки в Ubuntu.

Rescuezilla поддерживает резервное копирование и восстановление случайно удалённых файлов в разделах Linux, macOS и Windows. Выполняется автоматический поиск и подключение сетевых разделов, которые можно использовать для размещения резервных копий. Графический интерфейс основан на оболочке LXDE. Формат создаваемых резервных копий полностью совместим с дистрибутивом Clonezilla. При восстановлении поддерживается работа с образами Clonezilla, Redo Rescue, Foxclone и FSArchiver, а также с образами виртуальных машин в форматах VirtualBox VDI, VMWare VMDK, QEMU QCOW2, Hyper-V VHDx и .dd/.img.

В новой версии:

  • Добавлены 64-разрядные сборки на основе выпусков Ubuntu 24.04, 23.10, 23.04, 22.04 и 20.04, а также 32-разрядная сборка на основе Ubuntu 18.04.
  • Утилита partclone обновлена до версии 0.3.27 c улучшенной поддержкой Btrfs.
  • Добавлен экспериментальный интерфейс для управления из командной строки, поддерживающий только дисковые образы, созданные в Clonezilla и Rescuezilla, и реализующий операции создания резервных копий, проверки, восстановления и клонирования.
  • Введён в строй набор для автоматизированного тестирования сборок.
  • Обеспечено продолжение сканирование образа после возникновения ошибок (ошибки при доступе к отдельным каталогам больше не блокируют работу).
  • Исправлена проблема, приводившая к сбою при попытке резервного копирования устройств md-raid с таблицами разделов MBR.
  • Добавлена блокировка перехода ноутбуков в спящий режим при закрытии крышки.
  • Устранена проблема, приводившая невозможности загрузки Windows в случае сбоя при попытке резервного копирования или клонирования рабочего окружения Windows.

Дополнительно можно отметить публикацию релиза SystemRescue 11.01, специализированного Live-дистрибутива на основе Arch Linux, предназначенного для восстановления системы после сбоя. В качестве графического окружения используется Xfce. Размер iso-образа - 941 МБ (amd64). В новой версии обновлены версии ядра Linux 6.6.30, редактора разделов GParted 1.6.0 и очистителя дисков nwipe 0.36. Добавлен скрипт для добавления поддержки ZFS в самостоятельно собранные iso-образы. Добавлены прошивки для карт Qlogic.



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

opennet honked 13 May 2024 20:00 +0200

Обновление дистрибутива Альт Рабочая станция К 10.3

Доступно обновление дистрибутива Linux «Альт Рабочая станция К 10.2», предлагающего среду рабочего стола KDE и ориентированного для работы широкого круга пользователей в офисе и дома. Дистрибутив также может быть частью инфраструктуры Active Directory (доступны аутентификация в домене, доступ к файловым ресурсам и ресурсам печати). Сборка подготовлена для архитектуры x86_64 и построена на 10 платформе ALT. Для загрузки сформированы установочный iso-образ и сборка для работы с Live-режиме.

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

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

  • Обновлены набор приложений KDE Gear 23.08 и библиотеки KDE Frameworks 5.113.
  • Обновлены версии Samba 4.19, gpupdate 0.9.13.8, Wine 9.0 и LibreOffice 7.6.
  • В состав включены проприетарные драйверы NVIDIA 550. В главное меню добавлена возможность запуска приложений с использованием дискретной видеокарты NVIDIA.
  • Интегрирован виджет для показа прогноза погоды с информацией из сервиса Яндекс Погода.
  • При первом входе пользователя обеспечен вывод диалога для выбора тёмной или светлой темы оформления.
  • Вместо использования отдельного swap-раздела реализовано автоматическое создание файла подкачки в корневом разделе или в подразделе @home в Btrfs.
  • Решены проблема с инициализацией переменных окружения в пользовательской сессии Wayland.
  • Налажена работа некоторых сканеров, подключаемых через USB.


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

continue honked back 13 May 2024 19:08 +0200
in reply to: https://no.run.place/voron/p/1715619166.409583

@voron

В общем я бы сказал, что "нет", но только потому, что она не нужна подавляющему большинству людей.
Но на самом деле всё зависит от фантазии "оператора": вполне рабочая форт-среда с поддержкой файловой системы FAT и "почти-си" компилятором. Читает-пишет файлы, компилирует-исполняет простые программы на си.

continue honked 13 May 2024 18:19 +0200

Dusk OS v6

big changes:
• add special treatment for double quotes (") and mustache ({) in word parsing logic. This means, for example, that the string literal previously constructed as " foobar" is now constructed as "foobar".
• remove "to" semantics and replace it with Big Moustache.
• remove binary width modulation in favor of moustaches.

#DuskOS #Forth #OsDev

opennet honked 13 May 2024 18:00 +0200

Debian перешёл на поставку урезанного варианта менеджера паролей KeePassXC

Мэйнтейнер, обеспечивающий сборку для Debian пакетов с менеджерами паролей KeePassXC, перешёл на поставку максимально урезанной версии программы, в которой оставлена только базовая функциональность, необходимая для безопасного хранения паролей на локальной системе. Расширенные функции, среди которых возможность сетевого взаимодействия, код для управления через IPC, компоненты для интеграции с web-браузерами, функции авто-ввода паролей и код для поддержки ключей Yubikey, удалены из стандартного пакета keepassxc, что объясняется избавлением от излишней функциональности, которая повышает поверхность атаки и потенциально может негативно влиять на безопасность и конфиденциальность.

Для пользователей, которым необходима полная версия KeePassXC, предложен отдельный пакет keepassxc-full, включающий все предлагаемые в исходной версии расширенные возможности. Урезанный пакет размещён в репозиториях Debian sid (unstable) и testing вместо старого полного пакета с тем же именем, что вызвало возмущение некоторых пользователей, которые после обновления столкнулись с отсутствием привычной функциональности и восприняли изменение как сбой. Недовольные изменением предлагают мэйнтейнеру KeePassXC в Debian вернуть исходный вариант пакета, а урезанную версию разместить под именем keepassxc-minimal.

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

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

Разработчики KeePassXC пояснили, что применение термина плагины к удалённым дополнительным возможностям некорректно, так как это встроенная функциональность, которая по умолчанию отключена, но может быть активирована в настройках пользователем. Упоминание избавления от внешних библиотек так же отмечаются как беспочвенное, так как код для поддержки Yubikey больше не завязан на внешней библиотеке libyuibkey и все необходимые для его работы компоненты поставляются в основной кодовой базе KeePassXC.

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

continue bonked 13 May 2024 14:03 +0200
original: opennet@honk.any-key.press

Релиз ядра Linux 6.9

После двух месяцев разработки Линус Торвальдс представил релиз ядра Linux 6.9. Среди наиболее заметных изменений: модуль dm-vdo для дедупликации и сжатия блочных устройств, режим прямого доступа к файлам в FUSE, поддержка создания pidfd для отдельных потоков, механизм BPF-токенов, поддержка Rust на системах ARM64, перевод ФС Ext2 в разряд устаревших, удаление старого драйвера NTFS, поддержка механизма Intel FRED.

В новую версию принято 15680 исправлений от 2106 разработчиков, размер патча - 54 МБ (изменения затронули 11825 файлов, добавлено 687954 строк кода, удалено 225344 строк). В прошлом выпуске было 15641 исправление от 2018 разработчиков, размер патча - 44 МБ. Около 42% всех представленных в 6.9 изменений связаны с драйверами устройств, примерно 17% изменений имеют отношение к обновлению кода, специфичного для аппаратных архитектур, 13% связано с сетевым стеком, 7% - с файловыми системами и 4% c внутренними подсистемами ядра.

Основные новшества в ядре 6.9:

  • Дисковая подсистема, ввод/вывод и файловые системы
    • В Device Mapper (DM) добавлен новый обработчик dm-vdo (virtual data optimizer), позволяющий на базе существующих блочных устройств реализовать виртуальное блочное устройство, обладающее такими возможностями, как дедупликация повторяющихся данных, сжатие данных, исключение пустых блоков и увеличения размера блочного устройства по мере появления необходимости (thin provisioning). Указанные возможности реализуются на уровне блочного устройства и не зависят от используемой файловой системы (например, при помощи dm-vdo можно реализовать автоматическое объединение дублирующихся данных и хранение информации в сжатом виде для любых ФС). Поддерживается применение dm-vdo для физических хранилищ, размером до 256TB, и создание логических томов, размером до 4PB. Для управления разделами vdo рекомендуется использовать lvm. Технология VDO разработана компанией Permabit и открыта после её поглощения Red Hat в 2017 году.
    • В подсистеме FUSE, применяемой для реализации файловых систем в пространстве пользователя, добавлена начальная реализация режима "passthrough", позволяющего напрямую на уровне ядра получать данные файлов, минуя процесс, работающий в пространстве пользователя, что позволяет в некоторых ситуациях существенно повысить производительность. Например, FUSE-реализации ФС, работающие в режиме только для чтения и разграничивающие доступ к файлам, могут отдавать содержимое файлов из исходной ФС без их передачи в процесс FUSE.
    • В категорию устаревших (deprecated) переведён драйвер с реализацией файловой системы Ext2. В качестве причины упоминается поддержка в драйвере только 32-разрядных счётчиков времени в inode, которые переполнятся 19 января 2038 года. Вместо драйвера ext2 предлагается использовать драйвер ext4, который поддерживает работу с файловой системой Ext2 и полностью совместим с ней, но при этом может использовать в ext2-разделах временные метки, не подверженные проблеме 2038 года, если ФС создана с inode, размером более 255 байт (в драйвере ext2 32-разрядные счётчики времени использовались независимо от размера inode).
    • Удалён старый драйвер файловой системы NTFS, на смену которому начиная с выпуска 5.15 пришёл новый драйвер NTFS3. Поставка в ядре двух драйверов с реализацией NTFS признана нецелесообразной, с учётом того, что старый драйвер не обновлялся уже много лет, находится в плачевном состоянии и может работать только в режиме чтения.
    • В файловые системы zonefs и hugetlbfs добавлена поддержка маппинга идентификаторов пользователей примонтированных файловых систем, применяемого для сопоставления файлов определённого пользователя на примонтированном чужом разделе с другим пользователем в текущей системе.
    • В NFSv4 для администраторов предоставлена возможность очистки состояний открытия и блокировки файлов.
    • Для файловой системы Ext4 отмечается только исправление ошибок и обновление kunit-тестов.
    • В Btrfs продолжен перевод функций на использование фолиантов страниц памяти (page folios).
    • В файловой системе XFS продолжена работа над реализацией возможности применения утилиты fsck для проверки и исправления выявленных проблем в online-режиме, без отмонтирования файловой системы.
    • В системный вызов pwritev2() добавлен флаг RWF_NOAPPEND, позволяющий указать смещение для записи, даже если файл был открыт в режиме только добавления данных в конец файла.
    • Добавлены новые ioctl-команды: FS_IOC_GETUUID - возвращает UUID-идентификатор указанной файловой системы, и FS_IOC_GETFSSYSFSPATH - определяет местоположение в /sys/fs заданной примонтированной ФС.
    • Файловые системы efs, qnx4 и coda переведены на использование нового API монтирования разделов.
    • Улучшена реализация операций с файлами, выполняемых в режиме без учёта регистра символов. Повышена производительность за счёт выполнения вначале сравнения с учётом регистра и отката на поиск без учёта регистра. Решены проблемы при монтировании overlayfs поверх каталогов, для которых выставлен режим без учёта регистра символов.
  • Память и системные сервисы
    • Реализована поддержка механизма Intel FRED (Flexible Return and Event Delivery), созданного для повышения эффективности и надёжности доставки информации о низкоуровневых событиях, по сравнению с применяемым ныне механизмом IDT (Interrupt Descriptor Table). Повышение производительности и сокращение задержек обеспечивается благодаря возвращению событий процессорной инструкцией IRET вместо передачи событий через таблицу IDT. Повышение надёжности достигается из-за раздельной обработки поступления события в контексте ядра и контексте пользователя, защиты от вложенного выполнения NMI и сохранения в расширенном кадре стека всех связанных с исключением регистров CPU.
    • Добавлена возможность оптимизации доступа к данным отдельных ядер CPU через использования в коде ядра именованных адресных пространств (Named Address Spaces), реализованных в GCC в форме расширения GNU C.
    • В функцию pidfd_open() добавлен флаг PIDFD_THREAD, позволяющий создавать pidfd для отдельных потоков, а не только использовать pidfd в контексте лидера группы потоков. Также предложена реализация псевдо-ФС для доступа к pidfd через виртуальную файловую систему. В отличие от идентификации процессов при помощи pid, идентификатор pidfd связывается с конкретным процессом и не меняется, в том время как PID после завершения текущего процесса может быть привязан к другому процессу.
    • В подсистему BPF добавлен механизм BPF-токенов, позволяющий выборочно делегировать программам права доступа к привилегированным BPF-операциям, например, можно предоставить непривилегированному приложению доступ к отдельным подсистемам BPF без предоставления полных прав CAP_BPF.
    • В подсистему BPF добавлен новый тип разделяемой памяти bpf_arena, определяющий область, доступную для совместного использования программами BPF и процессами в пространстве пользователя. Добавлена инструкция may_goto, позволяющая организовать работу циклов, которые могут быть прерваны верификатором. Добавлена возможность генерации из BPF-программ произвольных TCP SYN cookie и создания BPF-обработчиков для борьбы с SYN-флудом.
    • Продолжен перенос изменений из ветки Rust-for-Linux, связанных с использованием языка Rust в качестве второго языка для разработки драйверов и модулей ядра (поддержка Rust не активна по умолчанию, и не приводит ко включению Rust в число обязательных сборочных зависимостей к ядру). Добавлена поддержка использования языка Rust при работе на 64-разрядных процессорах ARM. Осуществлён переход на использование выпуска Rust 1.76. Добавлен макрос 'container_of!'. Вместо нестабильной функциональности 'ptr_metadata' задействован стабильный метод 'byte_sub'. Добавлен модуль 'time' с функцией преобразования времени 'msecs_to_jiffies()'.
    • В подсистему io_uring добавлена возможность усечения файлов (ftruncate_file).
    • Добавлен новый тип рабочих очередей WQ_BH (workqueue Bottom Halves) для асинхронного выполнения кода в контексте программных прерываний, нацеленный на использование вместо устаревших tasklet-ов.
    • Значительно переработана подсистема работы с таймером, в которой улучшена логика выбора активного ядра CPU для выполнения сработавшего таймера, чтобы не выводить из спящего режима неактивные ядра.
    • Реализована возможность обновления модели потребления энергии ядра (EM, Energy Model) во время работы, что может использоваться, например, для учёта влияния рабочей температуры на энергетическую эффективность CPU. Значительно повышена производительность функции em_cpu_energy(), которая в тестах на стационарной системе теперь выполняется быстрее в 1.43 раза, а в тесте на плате RockPi 4B - в 1.69 раза.
    • Добавлена поддержка запуска систем на базе архитектуры ARM64 в режиме LPA2 с 52-разрядным виртуальным адресным пространством.
    • Для систем ARM64 реализована поддержка непрерывных записей PTE (Page Table Entry), позволяющих повысить производительность за счёт повышения эффективности использования TLB (Translation Lookaside Buffer).
    • Приняты патчи для повышения производительности подсистемы управления памятью за счёт сокращения возникновения конкурирующих блокировок в vmalloc().
    • Для архитектуры LoongArch реализован механизм горячего наложения патчей на ядро (live patching), позволяющий применять исправления к ядру без перезагрузки.
    • Для систем RISC-V реализована поддержка системного вызова membarrier(), обеспечивающего установку барьеров на память для работающих в системе потоков.
    • Подняты требования к версии LLVM/Clang, которую можно использовать для сборки ядра. Для сборки теперь требуется как минимум выпуск LLVM 13.0.1 (ранее поддерживалась сборка в LLVM 11+).
    • В механизм "User trace events", позволяющий создавать события трассировки из пользовательских процессов для отслеживания активности в пространстве пользователя, добавлена поддержка экспорта сведений о событии в различных форматах (USER_EVENT_REG_MULTI_FORMAT).
    • В механизм трассировки вызова функций добавлена возможность отслеживания состояния входящих аргументов функции при трассировке выхода из функции. Значения оператора return теперь можно сопоставить с аргументами, использованными при вызове функции.
    • В утилиту perf добавлена поддержка режима агрегирования вывода "cluster" ("perf stat -a --per-cluster") для объединения статистики разделяемых ресурсов. Реализована возможность задействования библиотеки libcapstone для дизассемблирования процессорных инструкций ("perf script -F disasm"). Проведены оптимизации потребления памяти при выполнении команд perf report' и 'perf annotate'.
  • Виртуализация и безопасность
    • Добавлена защита от уязвимости RFDS (Register File Data Sampling) в процессорах Intel Atom, позволяющей извлечь остаточную информацию из регистровых файлов (RF, Register File) процессора, которые используются для совместного хранения содержимого регистров во всех задачах на том же ядре CPU. Для блокирования уязвимости требуется обновление микрокода и использование инструкции VERW для очистки содержимого микроархитектурных буферов в момент возвращения из ядра в пространство пользователя. Для включения защиты при загрузке ядра можно указать флаг "reg_file_data_sampling=on". Информация о подверженности уязвимости и наличии необходимого для защиты микрокода можно оценить в файле "/sys/devices/system/cpu/vulnerabilities/reg_file_data_sampling".
    • Добавлена базовая поддержка защиты гостевых систем при помощи расширения AMD SEV-SNP (Secure Nested Paging), обеспечивающего безопасную работу с вложенными таблицами страниц памяти и защищающего от атак "undeSErVed" и "SEVerity" на процессоры AMD EPYC, позволяющих обойти механизм защиты AMD SEV (Secure Encrypted Virtualization). В KVM необходимые для использования SNP изменения планируются добавить в ветке 6.10.
    • Модули с реализацией технологий IMA (Integrity Measurement Architecture) и ЕVM (Extended Verification Module) переведены на использование фреймворка LSM (Linux Security Modules), что без потери функциональности позволило заметно упростить код, объединить дублирующуюся функциональность и задействовать доступные через LSM типовые возможности. Модуль IMA предназначен для проверки целостности компонентов операционной системы по цифровым подписям и хэшам. Модуль EVM позволяет защитить расширенные атрибуты файлов (xattrs) от атак, направленных на нарушение их целостности (EVM не позволит совершить offline-атаку, при которой злоумышленник может изменить метаданные, например, загрузившись со своего накопителя).
    • Переделаны для большей совместимости с 32-разрядными окружениями системные вызовы lsm_list_modules(), lsm_get_self_attr() и lsm_set_self_attr(), предназначенные для вывода списка загруженных LSM-модулей (Linux Security Modules) и получения/выставления атрибутов LSM-модуля. Изменение нарушает обратную совместимость, но так как новые системные вызовы были добавлены в прошлом выпуске ядра и пока не используются в приложениях, Линус Торвальдс посчитал, что изменение допустимо.
    • Предпринята попытка возобновления использования механизма UBSAN (Undefined Behavior Sanitizer). Суть проблемы в том, что компиляторы по разному обрабатывают целочисленные переполнения знаковых и беззнаковых типов. Знаковые переполнения и переполнения указателей относятся к категории неопределённого поведения, а беззнаковые переполнения отсекаются по модулю 2n с сохранением только младших битов результата ("wrap-around") и не подпадают под неопределённое поведение. Чтобы исключить ситуации с возникновением неопределённого поведения ядро собирается с опцией "-fno-strict-overflow", которая приводит к использованию "wrap-around" для всех целочисленных переполнений. GCC и Clang не могут нормально диагностировать некоторые проблемы при использовании флага "-fno-strict-overflow" и включение UBSAN нацелено на проведение совместной с разработчиками компиляторов работы по устранению возникающих ложных срабатываний и выявления целочисленных переполнений в местах, в которых отсутствуют явные проверки.

      Для проверки возможных переполнений в ядре используются конструкции вида "var + offset < var" (например, "if (pgoff + (size › PAGE_SHIFT) < pgoff){..}"), которые завязаны на сборку с флагом "-fno-strict-overflow" и не охватывают весь код, в котором потенциально может возникнуть переполнение. Проблема в том, что при использовании UBSAN подобные проверки приводили к выводу большого числа ложных предупреждений, и из-за этого в 2021 году UBSAN пришлось отключить. В обновлённой реализации предложено использовать специальные аннотации __signed_wrap и __unsigned_wrap, а также готовые макросы с проверками add_would_overflow(a, b) и add_wrap(a, b), позволяющие отделить предусмотренное разработчиками использования целочисленных переполнений от возникновения случайных переполнений, способных привести к уязвимостям. Предложение более масштабной переделки ядра с введением дополнительных определений типов отвергнуто Линусом Торвальдсом.

  • Сетевая подсистема
    • В сетевой подсистеме проведена работа по снижению возникновения конкурирующих блокировок ("lock contention", попытка получить блокировку, удерживаемую другим потоком). Сокращено использования блокировок RTNL.
    • Добавлена возможность включения поддержки активного полинга сокетов (busy polling) в контексте отдельных вызовов epoll. Размер пула и параметры бюджета могут выставляться отдельно от системных параметров по умолчанию.
    • Реализована структура net_hotdata для повышения эффективности кэширования наиболее часто используемых переменных сетевой конфигурации.
    • В MPTCP добавлена поддержка установки для сокетов опции TCP_NOTSENT_LOWAT, позволяющей ограничить размер буфера отправки. В API для сокетов MCTP добавлена поддержка индентификаторов сети ("network ID"), дающих возможность использовать на одном хосте несколько непересекающихся сетей MCTP.
    • В IPSec добавлена поддержка перенаправления ICMP-сообщений с информацией об ошибках (RFC 4301).
    • Ускорен процесс сканирования маршрутов с истекшим временем жизни.
    • Ускорена работа XDP, благодаря более жёсткому избеганию выделения больших блоков памяти.
    • Добавлена возможность прикрепления метаданных к сообщениям netconsole.
    • В Netfilter разрешено определение из пространства пользователя таблиц, которые привязываются к управляющему фоновому процессу и не удаляются автоматически после завершения пользовательского приложения.
    • В nftables ускорено добавление элементов в set-наборы с объединёнными диапазонами.
  • Оборудование
    • В драйвере i915 продолжена работа по реализации поддержки чипов Intel LunarLake (Xe 2). Добавлены новые PCI-идентификаторы для устройств на базе чипов Intel Arrow Lake и Alder Lake N. Для Displayport добавлена поддержка туннелинга (DP tunneling) и выделения пропускной способности (bandwidth allocation). Для всех платформ включён режим fastboot. Добавлена поддержка отладочного вывода в привязке к отдельным устройствам.
    • В драйвере AMDGPU проведена подготовка к реализации поддержки GPU AMD RDNA3.5 и RDNA4. Добавлена поддержка ATHUB 4.1, LSDMA 7.0, JPEG DPG, IH 7.0, HDP 7.0, VCN 5.0, SMU 13.0.6, NBIO 7.11, SDMA 6.1, MMHUB 3.3, DCN 3.5.1, NBIF 6.3.1, VPE 6.1.1 и фреймворка RAS ACA. В модуль ядра добавлен параметр freesync_video для включения экспериментальной поддержки оптимизации переключения видеорежимов с использованием технологии адаптивной синхронизации FreeSync.
    • В драйвере Nouveau код управления экраном переведён на использование функции kmemdup().
    • Продолжена работа над drm-драйвером (Direct Rendering Manager) Xe для GPU на базе архитектуры Intel Xe, которая используется в видеокартах Intel семейства Arc и интегрированной графике, начиная с процессоров Tiger Lake.
    • Добавлен DRM-драйвер для чипов Mediatek MT8188 VDOSYS1.
    • Связанные с видеоподсистемами настройки ядра перенесены в секцию CONFIG_VIDEO.
    • Добавлена поддержка ARM64 SoC: Mediatek MT7981B (Filogic 820), MT7988A (Filogic 880), NXP i.MX8DXP, Renesas R8A779G2 (R-Car V4H ES2.0), R8A779H0 (R-Car V4M), TI J722S.
    • Добавлена поддержка ARM-плат и устройств: Android-телефоны на базе чипа Tegra30, модели Chromebook на базе Mediatek MT8186, NAS, планшеты и игровые консоли на базе Rockchips RK35xx, платы White Hawk на базе SoC Renesas, платы на базе Qualcomm SM8550 (Snapdragon 8 Gen 2), Apalis Evaluation Board, Sielaff i.MX6 Solo Board, Samsung Galaxy Tab 4 10.1 LTE.
    • Проведён рефакторинг кода звуковой подсистемы ALSA. Добавлена поддержка звуковых систем Microchip SAM9x7, NXP i.MX95 и Qualcomm WCD939x. В драйвер SoundWire добавлена поддержка ASoC со звуковыми сопроцессорами AMD ACP 6.3, а для систем Intel реализован режим DSPless. Добавлена поддержка дополнительных звуковых кодеков Cirrus HD. В драйвере virtio улучшено управление звуковыми устройствами.
    • Добавлена поддержка Ethernet-контроллеров Marvell Octeon PCI Endpoint NIC VF и Intel E825-C 100G.

Одновременно латиноамериканский Фонд свободного ПО сформировал вариант полностью свободного ядра 6.9 - Linux-libre 6.9-gnu, очищенного от элементов прошивок и драйверов, содержащих несвободные компоненты или участки кода, область применения которых ограничена производителем. В выпуске 6.9 обновлён код чистки блобов в драйверах amdgpu, ath12k, adreno, btusb и r8169. Проведена чистка нового драйвера ptp_fc3. Проведена чистка имён блобов в dts-файлах (devicetree) для архитектуры Aarch64. Устранены проблемы с чисткой драйвера i915, приводившие к зависанию во время инициализации. Внесены изменения, связанные с обработкой блобов, поставляемых в виде шестнадцатеричных дампов.

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

opennet honked 13 May 2024 14:00 +0200

Релиз ядра Linux 6.9

После двух месяцев разработки Линус Торвальдс представил релиз ядра Linux 6.9. Среди наиболее заметных изменений: модуль dm-vdo для дедупликации и сжатия блочных устройств, режим прямого доступа к файлам в FUSE, поддержка создания pidfd для отдельных потоков, механизм BPF-токенов, поддержка Rust на системах ARM64, перевод ФС Ext2 в разряд устаревших, удаление старого драйвера NTFS, поддержка механизма Intel FRED.

В новую версию принято 15680 исправлений от 2106 разработчиков, размер патча - 54 МБ (изменения затронули 11825 файлов, добавлено 687954 строк кода, удалено 225344 строк). В прошлом выпуске было 15641 исправление от 2018 разработчиков, размер патча - 44 МБ. Около 42% всех представленных в 6.9 изменений связаны с драйверами устройств, примерно 17% изменений имеют отношение к обновлению кода, специфичного для аппаратных архитектур, 13% связано с сетевым стеком, 7% - с файловыми системами и 4% c внутренними подсистемами ядра.

Основные новшества в ядре 6.9:

  • Дисковая подсистема, ввод/вывод и файловые системы
    • В Device Mapper (DM) добавлен новый обработчик dm-vdo (virtual data optimizer), позволяющий на базе существующих блочных устройств реализовать виртуальное блочное устройство, обладающее такими возможностями, как дедупликация повторяющихся данных, сжатие данных, исключение пустых блоков и увеличения размера блочного устройства по мере появления необходимости (thin provisioning). Указанные возможности реализуются на уровне блочного устройства и не зависят от используемой файловой системы (например, при помощи dm-vdo можно реализовать автоматическое объединение дублирующихся данных и хранение информации в сжатом виде для любых ФС). Поддерживается применение dm-vdo для физических хранилищ, размером до 256TB, и создание логических томов, размером до 4PB. Для управления разделами vdo рекомендуется использовать lvm. Технология VDO разработана компанией Permabit и открыта после её поглощения Red Hat в 2017 году.
    • В подсистеме FUSE, применяемой для реализации файловых систем в пространстве пользователя, добавлена начальная реализация режима "passthrough", позволяющего напрямую на уровне ядра получать данные файлов, минуя процесс, работающий в пространстве пользователя, что позволяет в некоторых ситуациях существенно повысить производительность. Например, FUSE-реализации ФС, работающие в режиме только для чтения и разграничивающие доступ к файлам, могут отдавать содержимое файлов из исходной ФС без их передачи в процесс FUSE.
    • В категорию устаревших (deprecated) переведён драйвер с реализацией файловой системы Ext2. В качестве причины упоминается поддержка в драйвере только 32-разрядных счётчиков времени в inode, которые переполнятся 19 января 2038 года. Вместо драйвера ext2 предлагается использовать драйвер ext4, который поддерживает работу с файловой системой Ext2 и полностью совместим с ней, но при этом может использовать в ext2-разделах временные метки, не подверженные проблеме 2038 года, если ФС создана с inode, размером более 255 байт (в драйвере ext2 32-разрядные счётчики времени использовались независимо от размера inode).
    • Удалён старый драйвер файловой системы NTFS, на смену которому начиная с выпуска 5.15 пришёл новый драйвер NTFS3. Поставка в ядре двух драйверов с реализацией NTFS признана нецелесообразной, с учётом того, что старый драйвер не обновлялся уже много лет, находится в плачевном состоянии и может работать только в режиме чтения.
    • В файловые системы zonefs и hugetlbfs добавлена поддержка маппинга идентификаторов пользователей примонтированных файловых систем, применяемого для сопоставления файлов определённого пользователя на примонтированном чужом разделе с другим пользователем в текущей системе.
    • В NFSv4 для администраторов предоставлена возможность очистки состояний открытия и блокировки файлов.
    • Для файловой системы Ext4 отмечается только исправление ошибок и обновление kunit-тестов.
    • В Btrfs продолжен перевод функций на использование фолиантов страниц памяти (page folios).
    • В файловой системе XFS продолжена работа над реализацией возможности применения утилиты fsck для проверки и исправления выявленных проблем в online-режиме, без отмонтирования файловой системы.
    • В системный вызов pwritev2() добавлен флаг RWF_NOAPPEND, позволяющий указать смещение для записи, даже если файл был открыт в режиме только добавления данных в конец файла.
    • Добавлены новые ioctl-команды: FS_IOC_GETUUID - возвращает UUID-идентификатор указанной файловой системы, и FS_IOC_GETFSSYSFSPATH - определяет местоположение в /sys/fs заданной примонтированной ФС.
    • Файловые системы efs, qnx4 и coda переведены на использование нового API монтирования разделов.
    • Улучшена реализация операций с файлами, выполняемых в режиме без учёта регистра символов. Повышена производительность за счёт выполнения вначале сравнения с учётом регистра и отката на поиск без учёта регистра. Решены проблемы при монтировании overlayfs поверх каталогов, для которых выставлен режим без учёта регистра символов.
  • Память и системные сервисы
    • Реализована поддержка механизма Intel FRED (Flexible Return and Event Delivery), созданного для повышения эффективности и надёжности доставки информации о низкоуровневых событиях, по сравнению с применяемым ныне механизмом IDT (Interrupt Descriptor Table). Повышение производительности и сокращение задержек обеспечивается благодаря возвращению событий процессорной инструкцией IRET вместо передачи событий через таблицу IDT. Повышение надёжности достигается из-за раздельной обработки поступления события в контексте ядра и контексте пользователя, защиты от вложенного выполнения NMI и сохранения в расширенном кадре стека всех связанных с исключением регистров CPU.
    • Добавлена возможность оптимизации доступа к данным отдельных ядер CPU через использования в коде ядра именованных адресных пространств (Named Address Spaces), реализованных в GCC в форме расширения GNU C.
    • В функцию pidfd_open() добавлен флаг PIDFD_THREAD, позволяющий создавать pidfd для отдельных потоков, а не только использовать pidfd в контексте лидера группы потоков. Также предложена реализация псевдо-ФС для доступа к pidfd через виртуальную файловую систему. В отличие от идентификации процессов при помощи pid, идентификатор pidfd связывается с конкретным процессом и не меняется, в том время как PID после завершения текущего процесса может быть привязан к другому процессу.
    • В подсистему BPF добавлен механизм BPF-токенов, позволяющий выборочно делегировать программам права доступа к привилегированным BPF-операциям, например, можно предоставить непривилегированному приложению доступ к отдельным подсистемам BPF без предоставления полных прав CAP_BPF.
    • В подсистему BPF добавлен новый тип разделяемой памяти bpf_arena, определяющий область, доступную для совместного использования программами BPF и процессами в пространстве пользователя. Добавлена инструкция may_goto, позволяющая организовать работу циклов, которые могут быть прерваны верификатором. Добавлена возможность генерации из BPF-программ произвольных TCP SYN cookie и создания BPF-обработчиков для борьбы с SYN-флудом.
    • Продолжен перенос изменений из ветки Rust-for-Linux, связанных с использованием языка Rust в качестве второго языка для разработки драйверов и модулей ядра (поддержка Rust не активна по умолчанию, и не приводит ко включению Rust в число обязательных сборочных зависимостей к ядру). Добавлена поддержка использования языка Rust при работе на 64-разрядных процессорах ARM. Осуществлён переход на использование выпуска Rust 1.76. Добавлен макрос 'container_of!'. Вместо нестабильной функциональности 'ptr_metadata' задействован стабильный метод 'byte_sub'. Добавлен модуль 'time' с функцией преобразования времени 'msecs_to_jiffies()'.
    • В подсистему io_uring добавлена возможность усечения файлов (ftruncate_file).
    • Добавлен новый тип рабочих очередей WQ_BH (workqueue Bottom Halves) для асинхронного выполнения кода в контексте программных прерываний, нацеленный на использование вместо устаревших tasklet-ов.
    • Значительно переработана подсистема работы с таймером, в которой улучшена логика выбора активного ядра CPU для выполнения сработавшего таймера, чтобы не выводить из спящего режима неактивные ядра.
    • Реализована возможность обновления модели потребления энергии ядра (EM, Energy Model) во время работы, что может использоваться, например, для учёта влияния рабочей температуры на энергетическую эффективность CPU. Значительно повышена производительность функции em_cpu_energy(), которая в тестах на стационарной системе теперь выполняется быстрее в 1.43 раза, а в тесте на плате RockPi 4B - в 1.69 раза.
    • Добавлена поддержка запуска систем на базе архитектуры ARM64 в режиме LPA2 с 52-разрядным виртуальным адресным пространством.
    • Для систем ARM64 реализована поддержка непрерывных записей PTE (Page Table Entry), позволяющих повысить производительность за счёт повышения эффективности использования TLB (Translation Lookaside Buffer).
    • Приняты патчи для повышения производительности подсистемы управления памятью за счёт сокращения возникновения конкурирующих блокировок в vmalloc().
    • Для архитектуры LoongArch реализован механизм горячего наложения патчей на ядро (live patching), позволяющий применять исправления к ядру без перезагрузки.
    • Для систем RISC-V реализована поддержка системного вызова membarrier(), обеспечивающего установку барьеров на память для работающих в системе потоков.
    • Подняты требования к версии LLVM/Clang, которую можно использовать для сборки ядра. Для сборки теперь требуется как минимум выпуск LLVM 13.0.1 (ранее поддерживалась сборка в LLVM 11+).
    • В механизм "User trace events", позволяющий создавать события трассировки из пользовательских процессов для отслеживания активности в пространстве пользователя, добавлена поддержка экспорта сведений о событии в различных форматах (USER_EVENT_REG_MULTI_FORMAT).
    • В механизм трассировки вызова функций добавлена возможность отслеживания состояния входящих аргументов функции при трассировке выхода из функции. Значения оператора return теперь можно сопоставить с аргументами, использованными при вызове функции.
    • В утилиту perf добавлена поддержка режима агрегирования вывода "cluster" ("perf stat -a --per-cluster") для объединения статистики разделяемых ресурсов. Реализована возможность задействования библиотеки libcapstone для дизассемблирования процессорных инструкций ("perf script -F disasm"). Проведены оптимизации потребления памяти при выполнении команд perf report' и 'perf annotate'.
  • Виртуализация и безопасность
    • Добавлена защита от уязвимости RFDS (Register File Data Sampling) в процессорах Intel Atom, позволяющей извлечь остаточную информацию из регистровых файлов (RF, Register File) процессора, которые используются для совместного хранения содержимого регистров во всех задачах на том же ядре CPU. Для блокирования уязвимости требуется обновление микрокода и использование инструкции VERW для очистки содержимого микроархитектурных буферов в момент возвращения из ядра в пространство пользователя. Для включения защиты при загрузке ядра можно указать флаг "reg_file_data_sampling=on". Информация о подверженности уязвимости и наличии необходимого для защиты микрокода можно оценить в файле "/sys/devices/system/cpu/vulnerabilities/reg_file_data_sampling".
    • Добавлена базовая поддержка защиты гостевых систем при помощи расширения AMD SEV-SNP (Secure Nested Paging), обеспечивающего безопасную работу с вложенными таблицами страниц памяти и защищающего от атак "undeSErVed" и "SEVerity" на процессоры AMD EPYC, позволяющих обойти механизм защиты AMD SEV (Secure Encrypted Virtualization). В KVM необходимые для использования SNP изменения планируются добавить в ветке 6.10.
    • Модули с реализацией технологий IMA (Integrity Measurement Architecture) и ЕVM (Extended Verification Module) переведены на использование фреймворка LSM (Linux Security Modules), что без потери функциональности позволило заметно упростить код, объединить дублирующуюся функциональность и задействовать доступные через LSM типовые возможности. Модуль IMA предназначен для проверки целостности компонентов операционной системы по цифровым подписям и хэшам. Модуль EVM позволяет защитить расширенные атрибуты файлов (xattrs) от атак, направленных на нарушение их целостности (EVM не позволит совершить offline-атаку, при которой злоумышленник может изменить метаданные, например, загрузившись со своего накопителя).
    • Переделаны для большей совместимости с 32-разрядными окружениями системные вызовы lsm_list_modules(), lsm_get_self_attr() и lsm_set_self_attr(), предназначенные для вывода списка загруженных LSM-модулей (Linux Security Modules) и получения/выставления атрибутов LSM-модуля. Изменение нарушает обратную совместимость, но так как новые системные вызовы были добавлены в прошлом выпуске ядра и пока не используются в приложениях, Линус Торвальдс посчитал, что изменение допустимо.
    • Предпринята попытка возобновления использования механизма UBSAN (Undefined Behavior Sanitizer). Суть проблемы в том, что компиляторы по разному обрабатывают целочисленные переполнения знаковых и беззнаковых типов. Знаковые переполнения и переполнения указателей относятся к категории неопределённого поведения, а беззнаковые переполнения отсекаются по модулю 2n с сохранением только младших битов результата ("wrap-around") и не подпадают под неопределённое поведение. Чтобы исключить ситуации с возникновением неопределённого поведения ядро собирается с опцией "-fno-strict-overflow", которая приводит к использованию "wrap-around" для всех целочисленных переполнений. GCC и Clang не могут нормально диагностировать некоторые проблемы при использовании флага "-fno-strict-overflow" и включение UBSAN нацелено на проведение совместной с разработчиками компиляторов работы по устранению возникающих ложных срабатываний и выявления целочисленных переполнений в местах, в которых отсутствуют явные проверки.

      Для проверки возможных переполнений в ядре используются конструкции вида "var + offset < var" (например, "if (pgoff + (size › PAGE_SHIFT) < pgoff){..}"), которые завязаны на сборку с флагом "-fno-strict-overflow" и не охватывают весь код, в котором потенциально может возникнуть переполнение. Проблема в том, что при использовании UBSAN подобные проверки приводили к выводу большого числа ложных предупреждений, и из-за этого в 2021 году UBSAN пришлось отключить. В обновлённой реализации предложено использовать специальные аннотации __signed_wrap и __unsigned_wrap, а также готовые макросы с проверками add_would_overflow(a, b) и add_wrap(a, b), позволяющие отделить предусмотренное разработчиками использования целочисленных переполнений от возникновения случайных переполнений, способных привести к уязвимостям. Предложение более масштабной переделки ядра с введением дополнительных определений типов отвергнуто Линусом Торвальдсом.

  • Сетевая подсистема
    • В сетевой подсистеме проведена работа по снижению возникновения конкурирующих блокировок ("lock contention", попытка получить блокировку, удерживаемую другим потоком). Сокращено использования блокировок RTNL.
    • Добавлена возможность включения поддержки активного полинга сокетов (busy polling) в контексте отдельных вызовов epoll. Размер пула и параметры бюджета могут выставляться отдельно от системных параметров по умолчанию.
    • Реализована структура net_hotdata для повышения эффективности кэширования наиболее часто используемых переменных сетевой конфигурации.
    • В MPTCP добавлена поддержка установки для сокетов опции TCP_NOTSENT_LOWAT, позволяющей ограничить размер буфера отправки. В API для сокетов MCTP добавлена поддержка индентификаторов сети ("network ID"), дающих возможность использовать на одном хосте несколько непересекающихся сетей MCTP.
    • В IPSec добавлена поддержка перенаправления ICMP-сообщений с информацией об ошибках (RFC 4301).
    • Ускорен процесс сканирования маршрутов с истекшим временем жизни.
    • Ускорена работа XDP, благодаря более жёсткому избеганию выделения больших блоков памяти.
    • Добавлена возможность прикрепления метаданных к сообщениям netconsole.
    • В Netfilter разрешено определение из пространства пользователя таблиц, которые привязываются к управляющему фоновому процессу и не удаляются автоматически после завершения пользовательского приложения.
    • В nftables ускорено добавление элементов в set-наборы с объединёнными диапазонами.
  • Оборудование
    • В драйвере i915 продолжена работа по реализации поддержки чипов Intel LunarLake (Xe 2). Добавлены новые PCI-идентификаторы для устройств на базе чипов Intel Arrow Lake и Alder Lake N. Для Displayport добавлена поддержка туннелинга (DP tunneling) и выделения пропускной способности (bandwidth allocation). Для всех платформ включён режим fastboot. Добавлена поддержка отладочного вывода в привязке к отдельным устройствам.
    • В драйвере AMDGPU проведена подготовка к реализации поддержки GPU AMD RDNA3.5 и RDNA4. Добавлена поддержка ATHUB 4.1, LSDMA 7.0, JPEG DPG, IH 7.0, HDP 7.0, VCN 5.0, SMU 13.0.6, NBIO 7.11, SDMA 6.1, MMHUB 3.3, DCN 3.5.1, NBIF 6.3.1, VPE 6.1.1 и фреймворка RAS ACA. В модуль ядра добавлен параметр freesync_video для включения экспериментальной поддержки оптимизации переключения видеорежимов с использованием технологии адаптивной синхронизации FreeSync.
    • В драйвере Nouveau код управления экраном переведён на использование функции kmemdup().
    • Продолжена работа над drm-драйвером (Direct Rendering Manager) Xe для GPU на базе архитектуры Intel Xe, которая используется в видеокартах Intel семейства Arc и интегрированной графике, начиная с процессоров Tiger Lake.
    • Добавлен DRM-драйвер для чипов Mediatek MT8188 VDOSYS1.
    • Связанные с видеоподсистемами настройки ядра перенесены в секцию CONFIG_VIDEO.
    • Добавлена поддержка ARM64 SoC: Mediatek MT7981B (Filogic 820), MT7988A (Filogic 880), NXP i.MX8DXP, Renesas R8A779G2 (R-Car V4H ES2.0), R8A779H0 (R-Car V4M), TI J722S.
    • Добавлена поддержка ARM-плат и устройств: Android-телефоны на базе чипа Tegra30, модели Chromebook на базе Mediatek MT8186, NAS, планшеты и игровые консоли на базе Rockchips RK35xx, платы White Hawk на базе SoC Renesas, платы на базе Qualcomm SM8550 (Snapdragon 8 Gen 2), Apalis Evaluation Board, Sielaff i.MX6 Solo Board, Samsung Galaxy Tab 4 10.1 LTE.
    • Проведён рефакторинг кода звуковой подсистемы ALSA. Добавлена поддержка звуковых систем Microchip SAM9x7, NXP i.MX95 и Qualcomm WCD939x. В драйвер SoundWire добавлена поддержка ASoC со звуковыми сопроцессорами AMD ACP 6.3, а для систем Intel реализован режим DSPless. Добавлена поддержка дополнительных звуковых кодеков Cirrus HD. В драйвере virtio улучшено управление звуковыми устройствами.
    • Добавлена поддержка Ethernet-контроллеров Marvell Octeon PCI Endpoint NIC VF и Intel E825-C 100G.

Одновременно латиноамериканский Фонд свободного ПО сформировал вариант полностью свободного ядра 6.9 - Linux-libre 6.9-gnu, очищенного от элементов прошивок и драйверов, содержащих несвободные компоненты или участки кода, область применения которых ограничена производителем. В выпуске 6.9 обновлён код чистки блобов в драйверах amdgpu, ath12k, adreno, btusb и r8169. Проведена чистка нового драйвера ptp_fc3. Проведена чистка имён блобов в dts-файлах (devicetree) для архитектуры Aarch64. Устранены проблемы с чисткой драйвера i915, приводившие к зависанию во время инициализации. Внесены изменения, связанные с обработкой блобов, поставляемых в виде шестнадцатеричных дампов.

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

continue honked 13 May 2024 13:26 +0200

Любопытная заметка от "Автономного действия": "Смерть буржую" или "Системе", его породившей?

На Первое мая в телеграмм-канале "Автономного действия" появился пост с фотографией от подписчиков канала из Перми. На фотографии виден плакат, вывешенный над городской автострадой, с надписью "Смерть буржую" с буквой "А", вписанной в круг с одной стороны от надписи, и знаком "серп и молот" с другой. Под постом в телеграмме на данный момент около 70 одобрительных лайков.

"Смерть буржую" ?!....Серьезно? Безусловно, хорошо, что в Перми есть активисты, судя по всему, анархо-коммунистических взглядов. И такой эпатаж, конечно, гораздо лучше, чем ничего. Однако хочется, что называется, "подушнить" и разобраться в такой первомайской акции. Всë лучше, чем игнорировать.

P.S. Ссылка, открывающаяся из РФ: https://miniflux.any-key.press/share/75125a597660ae8461dbe73929d0437495eacc9e

#Анархизм #АнКом

M78S1G14t57sd32B6w.jpg

continue honked 12 May 2024 16:03 +0200

Если выехать по Новоприозерскому шоссе (из Спб на север), то в нескольких километрах от города можно увидеть объявление о продаже карьера. И, похоже, эти "карьеры" теперь будут появляться как гнойники там, где, например, есть песок. Чем это "радует":

  • Постоянный поток тяжёлой техники (грузовики, экскаваторы), которая шумит, разбивает и без того не лучшие дороги и выбрасывает большой объем выхлопных газов.
  • Помимо того, что на месте котлована была какая-никакая экосистема, эрозия стенок карьера начинает поглощать окружающие площади: через год-два начинают падать деревья из прилегающего леса.
  • Закапывание мусора в месте добычи. Мусор как от работы карьера (резина, масла), так и привозной ("экономия" на утилизации). Учитывая как через песок легко проникает вода, ни о какой "консервации" того, что закопано речи нет. Все так или иначе попадает в воду. Закапывают верхним слоем почвы, вывезенной с рытья котлована для очередной многоэтажки. Насколько эта почва чистая тоже под вопросом.

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

Фото песчанного карьера, где на дне уже проступает вода и накидано (пока) немного мусора.

undeadly honked 12 May 2024 15:04 +0200

LibreSSL version 3.9.2 released

The LibreSSL project has announced the release of [bugfix] version 3.9.2 of the software:

We have released LibreSSL 3.9.2, which will be arriving in the
LibreSSL directory of your local OpenBSD mirror soon.

It includes the following change from LibreSSL 3.9.1:

 * Bugfixes
   - OpenBSD 7.5 errata 003. A missing bounds check could lead to a crash
     due to dereferencing a zero-sized allocation.

The LibreSSL project continues improvement of the codebase to reflect modern,
safe programming practices. We welcome feedback and improvements from the
broader community. Thanks to all of the contributors who helped make this
release possible.

opennet honked 12 May 2024 09:00 +0200

В Firefox предложена дополнительная защита от отслеживания с использованием редиректов

В ночные сборки Firefox, на базе которых 11 июня будет сформирован выпуск Firefox 127, добавлен новый механизм защиты от отслеживания перемещений пользователей - "Bounce Tracking Protection", расширяющий возможности по блокированию отслеживания посетителей с использованием редиректов на другие страницы.

Суть метода отслеживания в том, что код трекера перенаправляет пользователя вначале на свой сайт, а уже с него перебрасывает на целевую страницу, что позволяет трекеру сохранить Cookie и данные в локальном хранилище в привязке к своему сайту. Сохранение данных после перехода на другой сайт позволяет обойти реализованные в режиме Enhanced Tracking Protection (ETP) методы для блокировки кросс-сайтовых операций - так как промежуточная страница открывается вне контекста другого сайта, на такой странице можно беспрепятственно устанавливать отслеживающие Cookie.

Механизм Bounce Tracking Protection позволяет отлавливать активность, специфичную для отслеживания через редиректы, и периодически очищать Cookie и локально сохранённые данные, используемые для отслеживания. В отличие от ранее доступного режима "Cookie Purging" очистка производится не на основе списка известных трекеров, а на основе эвристики, позволяющей выявлять новые сайты трекеров, анализируя поведение после редиректа.

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

opennet honked 12 May 2024 09:00 +0200

Выпуск Pingora 0.2, фреймворка для создания сетевых сервисов

Компания Cloudflare опубликовала второй выпуск фреймворка Pingora, предназначенного для разработки защищённых высокопроизводительных сетевых сервисов на языке Rust. Построенный при помощи Pingora прокси около года используется в сети доставки контента Cloudflare вместо nginx и обрабатывает более 40 млн запросов в секунду. Код написан на языке Rust и опубликован под лицензией Apache 2.0.

Основные возможности Pingora:

  • Поддержка HTTP/1 и HTTP/2 (в планах HTTP/3), а также возможности для создания сервисов, использующих свои протоколы или UDP/TCP.
  • Возможность многопоточной обработки запросов в асинхронном режиме.
  • Поддержка прикрепления callback-обработчиков и фильтров, позволяющих управлять различными стадиями обработки запроса, а также изменять, перенаправлять, блокировать и журналировать запросы и ответы.
  • Проксирование gRPC и WebSocket.
  • Подключаемые балансировщики нагрузки.
  • Возможность изменения конфигурации без перезапуска.
  • Поддержка обновления кода приложения без разрыва соединений.
  • Средства для переключения нагрузки в случае сбоя (failover).
  • Интеграция с различными системами мониторинга и ведения логов (Syslog, Prometheus, Sentry, OpenTelemetry).
  • Поддержка TLS-шифрования (применяется OpenSSL или BoringSSL).
  • Готовые Rust-пакеты для создания HTTP-прокси, работы с сетевыми протоколами, разбора заголовков HTTP, учёта и ограничения трафика, балансировки нагрузки, работы с распределённой хэш-таблицей Ketama, поддержания кэша в оперативной памяти и асинхронной обработки таймаутов.

Среди изменений в новой версии:

  • Добавлена поддержка установки фильтров для дополнительных заголовков HTTP/2.
  • Добавлена возможность изменения размера буфера входящих пакетов для TCP.
  • Добавлена функция body_bytes_read().
  • Добавлен фильтр cache_not_modified_filter.
  • Добавлена возможность ведения лога TLS-ключей.
  • Добавлена callback-функция purge_response.


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

opennet honked 12 May 2024 08:00 +0200

Выпуск открытого игрового движка VCMI 1.5.0, совместимого с Heroes of Might and Magic III

Доступен выпуск проекта VCMI 1.3, развивающего открытый игровой движок, совместимый с форматом данных, используемым в играх Heroes of Might and Magic III. Важной целью проекта также является поддержка модов, при помощи которых имеется возможность добавлять в игру новые города, героев, монстров, артефакты и заклинания. Исходные тексты распространяются под лицензией GPLv2. Поддерживается работа в Linux, Windows, macOS и Android.

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



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

opennet honked 12 May 2024 08:00 +0200

Выпуск Proton-GE 9-5, пакета для запуска Windows-игр в Linux

Опубликован выпуск проекта GE-Proton 9-5, в рамках которого энтузиастами формируются независимые от компании Valve расширенные сборки пакета для запуска Windows-приложений Proton, отличающиеся более свежей версией Wine, задействованием FFmpeg в FAudio и включением дополнительных патчей, решающих проблемы в различных игровых приложениях.

В Proton GE 9-5 перенесены изменения из свежих кодовых баз wine 9, proton 9, steamclient, vkd3d-proton, dxvk-nvapi и dxvk. Улучшено воспроизведение видео в формате WMP9. В состав включены патчи для поддержки TCP_KEEP. Решены проблемы в играх:

  • Café Stella
  • COJ Gunslinger
  • Ducati World Championship
  • Oddworld: Abe's Oddysee
  • Oddworld: Munch's Oddysee
  • Overlord II
  • Reaper's Butterflies
  • Riddle Joker
  • Sabbat of the Witch
  • Senren * Banka
  • Star Citizen 2.0
  • Stranger's Wrath HD
  • Total War: Shogun 2
  • Witcher 2: Assassins of Kings Enhanced Edition


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

opennet honked 12 May 2024 08:00 +0200

Выпуск Nuitka 2.2, компилятора для языка Python

Доступен выпуск проекта Nuitka 2.2, развивающего компилятор для трансляции скриптов на языке Python в представление на языке C, которое затем можно скомпилировать в исполняемый файл, использующий libpython для обеспечения максимальной совместимости с CPython (используются штатные средства CPython для управления объектами). Обеспечена полная совместимость с актуальными выпусками Python 2.6, 2.7, 3.3 - 3.11. По сравнению с CPython скомпилированные скрипты демонстрируют в тестах pystone повышение производительности на 335%. Код проекта распространяется под лицензией Apache.

В новой версии реализована экспериментальная поддержка Python 3.12. Добавлена поддержка JIT модуля tensorflow. В конфигурацию добавлен обработчик change_class, который по аналогии с change_function позволяет целиком заменить определение класса или добавить отдельные заглушки. Ускорена генерация кода за счёт более эффективного кэширования. Расширены возможности плагина anti-bloat, который теперь может применяться для уменьшения числа пакетов при использовании библиотек antlr, celery, transformers, tensorflow, deepspeed, imgui_bundle, tf_keras, bokeh.

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

opennet honked 12 May 2024 08:00 +0200

NVIDIA начнёт использовать открытые модули ядра для GPU, начиная с Turing

Компания NVIDIA объявила, что в грядущем выпуске проприетарных драйверов NVIDIA 560 на системах с GPU на базе Turing (GeForce RTX 2000) и более новых микроархитектур по умолчанию будут задействованы открытые модули ядра Linux. Код модулей был открыт в 2022 году под лицензиями MIT и GPLv2, и обновляется синхронно с каждым новым выпуском проприетарных драйверов. При этом, несмотря на наличие открытых модулей при установке проприетарных драйверов NVIDIA до сих пор продолжали использоваться проприетарные варианты модулей, основанные на общей кодовой базе с открытыми, но отличающиеся и развивающиеся отдельно.

Открытые и проприетарные модули не могли использоваться одновременно и не могли быть вместе установлены в файловую систему. Открытые модули могут использоваться только с GPU, оснащёнными отдельным микроконтроллером GSP (GPU System Processor), применяемым в таких микроархитектурах, как Turing, Ampere и Ada. В проприетарных модулях, помимо новых GPU, продолжает сохраняться и поддержка старых GPU, не оснащённых GSP, например, GPU на базе микроархитектур Maxwell, Pascal и Volta.

Начиная с выпуска NVIDIA 560 ситуация изменится - для обычных GPU начиная с Turing, а при виртуализации GPU, начиная с Ada, по умолчанию начнут устанавливаться открытые варианты модулей ядра nvidia.ko, nvidia-modeset.ko, nvidia-uvm.ko, nvidia-drm.ko и nvidia-peermem.ko, в ситуациях когда их применение возможно. При желании установить в систему проприетарные модули ядра потребуется указание опции "--kernel-module-type=proprietary" при запуске run-архива с драйверами NVIDIA. В будущем компания NVIDIA планирует прекратить реализацию поддержки новых GPU в проприетарных модулях и сосредоточится только на развитии открытых.

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

opennet honked 11 May 2024 05:00 +0200

Выпуск дистрибутива EuroLinux 9.4, совместимого с RHEL

Состоялся релиз дистрибутива EuroLinux 9.4, подготовленного путём пересборки исходных текстов пакетов дистрибутива Red Hat Enterprise Linux 9.4 и полностью бинарно совместимого с ним. Изменения сводятся к ребрендингу и удалению специфичных для RHEL пакетов, в остальном дистрибутив полностью аналогичен RHEL 9.4. Ветка EuroLinux 9 будет поддерживаться до 30 июня 2032 года. Для загрузки подготовлены установочные образы, размером 10 ГБ (appstream) и 2 ГБ. Проектом предоставляются скрипты для миграции на EuroLinux 9.4 существующих установок на основе RHEL 7/8/9, AlmaLinux 8/9, CentOS 7/8, Oracle Linux 7/8/9, Rocky Linux 8/9 и CentOS 9 Stream.

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

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

opennet honked 10 May 2024 21:00 +0200

Проект gittuf развивает систему криптографической защиты репозиториев Git

Доступен выпуск проекта gittuf 0.4, развивающего иерархическую систему верификации содержимого репозиториев Git, позволяющую минимизировать риски в ситуации компрометации отдельных разработчиков, имеющих доступ к репозиторию. Gittuf предоставляет дополнительный слой безопасности к Git и набор утилит для управления ключами всех разработчиков, имеющих доступ к репозиторию, и расстановки правил доступа к веткам, тегам и отдельным файлам. Код проекта написан на языке Go и распространяется под лицензией Apache 2.0. Проект находится на стадии активного развития и имеет качество альфа-выпуска, подходящего для экспериментов, но пока не готового для рабочих внедрений.

Информация и артефакты, обеспечивающие дополнительную верификацию вносимых изменений, хранятся в хранилище объектов Git в отдельном специфичном для gittuf пространстве имён, что позволяет сохранить обратную совместимость с имеющимися инструментами и сервисами, включая GitHub и GitLab. При использовании инструментов без поддержки gittuf, репозиторий остаётся полностью доступен, но ограничена возможность расширенной верификации его целостности. Архитектура gittuf базируется на проверенных элементах фреймворка TUF (The Update Framework), применяемого для защиты процессов формирования обновлений в таких проектах, как Docker, Fuchsia, AGL (Automotive Grade Linux) и PyPI.

Модель верификации в gittuf основана на применении иерархической системы распространения доверия. Корень доверия (root of trust) принадлежит владельцу репозитория, который может генерировать ключи для участников разработки и определять правила, в соответствии с которыми созданные ключи могут применяться. Gittuf позволяет создавать гибкие гранулированные правила, определяющие полномочия каждого разработчика и область репозитория, в которой он имеет возможность вносить изменения. Например, разработчик может быть авторизован для создания тегов, внесения изменений в определённые ветки или изменения только отдельных файлов в репозитории.

Разработчики и вносимые ими изменения идентифицируются по ключам и цифровым подписям. Gittuf позволяет генерировать новые ключи, безопасно распространять ключи, осуществлять периодическую ротацию ключей, отзывать скомпрометированные ключи, управлять списками доступа (ACL) и пространствами имён в Git-репозиториях. Gittuf также выполняет ведение эталонного лога всех изменений (RSL - Reference State Log), целостность и защита от искажения задним числом в котором обеспечивается при помощи древовидной структуры "дерево Меркла" (Merkle Tree) - каждая ветка верифицирует все нижележащие ветки и узлы благодаря древовидному хешированию (имея конечный хеш, пользователь может удостовериться в корректности всей истории операций, а также в корректности прошлых состояний).

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

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

opennet honked 10 May 2024 11:00 +0200

Выпуск Xpra 6.0, аналога утилиты screen для GUI. Развитие Wprs, реализации Xpra для Wayland

Опубликован выпуск проекта Xpra 6.0, развивающего подобие утилит screen и tmux для работы с графическими приложениями. Xpra позволяет запустить X11-приложения на локальной или удалённой системе, отсоединить сеанс, не завершая выполнение программ, и вернуться к работе с приложениями через какое-то время или продолжить работу с другого хоста (можно начать работу с программой на одной машине и продолжить на другой). Например, Xpra позволяет запустить графическое приложение на внешнем Linux-сервере и отобразить содержимое на экране текущей рабочей станции, функционирующей под управлением Linux, Windows или macOS. Код проекта написан на языке Python и распространяется под лицензией GPLv2+.

Возможно как подключение к имеющимся сеансам рабочего стола, так и создание новых сеансов для организации работы с графическими Linux-программами в окружениях Windows и macOS. Более того, в Xpra имеется встроенный HTML5-клиент, позволяющий подключаться к сеансам через браузер. Кроме доступа к окнам в Xpra реализована поддержка многих сопутствующих возможностей рабочих столов, таких как трансляция звука на удалённую систему, проброс принтеров и web-камер, организация доступа к буферу обмена, поддержка синхронизации состояния системного лотка и уведомлений. Имеются встроенные функции для передачи и синхронизации файлов между системами.

Среди новых возможностей, появившихся в версии Xpra 6.0, можно отметить поддержку архитектуры riscv64, переход на использование базового профиля OpenGL, добавление отдельного клиента для GNOME, реализацию команды "xpra configure" для упрощения настройки параметров Gstreamer, ускорение операций mmap, упрощение быстрого отключения расширенных возможностей для трансляции звука и видео, добавление поддержки виртуальных рабочих столов Windows 10.

Дополнительно можно отметить проект wprs, который развивает аналог Xpra для систем на базе Wayland. Wprs позволяет запускать на локальной или внешней системе приложения, использующие Wayland, и возобновлять работу с ними на других системах. Через привлечение XWayland также обеспечивается возможность запуска приложений, собранных для X11. Для работы на удалённой системе необходимо запустить фоновый процесс wprsd, после чего на той системе можно запускать приложения с других компьютеров, используя команды "wprs run", "wprs detach" и "wprs attach". Код wprs написан на языке Rust и распространяется под лицензией Apache 2.0.

Процесс wprsd включает реализацию композитного сервера Wayland, основанного на библиотеке Smithay и вместо отрисовки на экран выполняющего сериализацию сеанса Wayland для его передачи на другую систему. Сеанс воссоздаётся при помощи утилиты wprsc c реализацией Wayland-клиента на базе Smithay Client Toolkit. Для авторизации доступа и организации канала связи используется SSH. Из ограничений wprs отмечается поддержка только базового протокола Wayland и расширений XDG shell, что, например, не позволяет задействовать аппаратное ускорение отрисовки и dmabuf. Также пока не поддерживается трансляция событий от сенсорных экранов/тачпадов и ограничены возможности интерфейса Drag&drop.

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

opennet honked 10 May 2024 09:00 +0200

Релиз дистрибутива Rocky Linux 9.4, развиваемого основателем CentOS

Представлен релиз дистрибутива Rocky Linux 9.4, нацеленного на создание свободной сборки RHEL, способной занять место классического CentOS. Дистрибутив бинарно совместим с Red Hat Enterprise Linux и может использоваться в качестве замены RHEL 9.4 и CentOS 4 Stream. Поддержка ветки Rocky Linux 9 будет осуществляться до 31 мая 2032 года. Установочные iso-образы Rocky Linux подготовлены для архитектур x86_64, aarch64, ppc64le и s390x (IBM Z). Дополнительно предложены live-сборки с рабочими столами GNOME, KDE, Cinnamon и Xfce, опубликованные для архитектуры x86_64.

Как и в классическом CentOS внесённые в пакеты Rocky Linux изменения сводятся к избавлению от привязки к бренду Red Hat и удалению специфичных для RHEL пакетов, таких как redhat-*, insights-client и subscription-manager-migration*. С обзором списка изменений в Rocky Linux 9.4 можно познакомиться в анонсе RHEL 9.4. Среди специфичных для Rocky Linux изменений можно отметить поставку в отдельном репозитории plus пакетов openldap-servers-2.6.6, а в репозитории NFV пакетов для виртуализации компонентов сетей, развиваемый SIG-группой NFV (Network Functions Virtualization). В Rocky Linux также поддерживаются репозитрии CRB (Code Ready Builder с дополнительными пакетами для разработчиков, пришёл на смену PowerTools), RT (пакеты для работы в режиме реального времени), HighAvailability, ResilientStorage, SAP () и SAPHANA (пакеты для SAP HANA). Добавлен экспериментальный пакет с ядром Linux - kernel-uki, предоставляющий унифицированный образ UKI (Unified Kernel Image), заверенный отдельным ключом для SecureBoot.

В качестве источника исходных пакетов при формировании Rocky Linux 9.4 задействован репозиторий OpenELA, поддерживаемый совместно с Oracle и SUSE. Изменение процессов разработки обусловлено прекращением размещения компанией Red Hat исходных текстов rpm-пакетов RHEL в публичном репозитории git.centos.org. Исходные пакеты предоставляются клиентам компании только через закрытый раздел сайта, на котором действует пользовательское соглашение (EULA), запрещающее редистрибуцию данных, что не позволяет использовать эти пакеты для создания производных дистрибутивов. Исходные тексты остаются доступны в репозитории CentOS Stream, но он полностью не синхронизирован с RHEL и в нём не всегда самые свежие версии пакетов совпадают с пакетами из RHEL.

Дистрибутив Rocky Linux развивается под покровительством организации Rocky Enterprise Software Foundation (RESF), которая зарегистрирована как общественно-полезная корпорация (Public Benefits Corporation), не нацеленная на получение прибыли. Владельцем организации является Грегори Курцер (Gregory Kurtzer), основатель CentOS, но функции управления в соответствии с принятым уставом делегированы совету директоров, в который сообществом избираются участники, вовлечённые в работу над проектом. Параллельно для развития расширенных продуктов на базе Rocky Linux и поддержки сообщества разработчиков данного дистрибутива создана коммерческая компания Ctrl IQ, которая получила 26 млн долларов инвестиций. К разработке и финансированию проекта присоединились такие компании, как Google, Amazon Web Services, GitLab, MontaVista, 45Drives, OpenDrives и NAVER Cloud.

Кроме Rocky Linux, в качестве альтернатив классическому CentOS также позиционируются AlmaLinux (развивается компанией CloudLinux, совместно с сообществом), VzLinux (подготовлен компанией Virtuozzo), Oracle Linux, SUSE Liberty Linux и EuroLinux. Кроме того, компания Red Hat предоставила возможность бесплатного использования RHEL в организациях, развивающих открытое ПО, и в окружениях индивидуальных разработчиков, насчитывающих до 16 виртуальных или физических систем.

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

opennet honked 10 May 2024 09:00 +0200

Предложение по включению режима TCP_NODELAY по умолчанию

Марк Брукер (Marc Brooker), инженер из компании Amazon Web Services (AWS), разобрал заблуждения, связанные с повышением эффективности передачи мелких сообщений при использовании алгоритма Нейгла, применяемого по умолчанию в TCP/IP стеке. Рекомендации сводятся к отключению по умолчанию алгоритма Нейгла через выставление опции TCP_NODELAY для сетевых сокетов при помощи вызова setsockopt, что уже давно делается в таких проектах, как Node.js и curl.

Алгоритм Нейгла позволяет агрегировать мелкие сообщения для снижения трафика - приостанавливает отправку новых сегментов TCP до получения подтверждения о приёме ранее отправленных данных. Например, без применения агрегирования при отправке 1 байта, дополнительно отправляется 40 байтов с TCP и IP заголовками пакета. В современных условиях использование алгоритма Нейгла приводит к заметному возрастанию задержек, неприемлемых для интерактивных и распределённых приложений.

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

  • Несовместимость алгоритма Нейгла с оптимизацией "delayed ACK", при которой ACK-ответ направляется не сразу, а после получения ответных данных. Проблема в том, что в алгоритме Нейгла поступление ACK-пакета является сигналом для отправки агрегированных данных, а если ACK-пакет не поступил, отправка выполняется при наступлении таймаута. Таким образом, возникает замкнутый круг и ACK-пакет как сигнал не работает, так как другая сторона не получает данные из-за их накопления на стороне отправителя, а отправитель не отправляет их до таймаута, так как не получает ACK-пакет.
  • RFC для алгоритма Нейгла принят в 1984 году и он не рассчитан на параметры современных высокоскоростных сетей и серверов в датацентрах, что приводит к возникновению проблем с отзывчивостью. Задержка между отправкой запроса и получением ответа (RTT) в современных сетях составляет 0.5 мс + несколько миллисекунд при обмене данными между датацентрами в одном регионе + до сотни миллисекунд при отправке по всему миру. За эти миллисекунды современный сервер способен выполнить огромный объём работы.
  • Современные распределённые приложения давно не отправляют единичные байты данных, а агрегирование мелких данных обычно реализуется на уровне приложения. Даже если размер полезных данных составляет считанные байты, то, как правило, фактически размер отправляемой информации существенно возрастает после применения сериализации, использования API-обвязок в JSON и отправки с использованием TLS-шифрования. Экономия 40 байтов становится не столь актуальной.


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

opennet honked 09 May 2024 21:00 +0200

Опубликован Daphile 24.05, дистрибутив для создания музыкальных систем

Состоялся релиз дистрибутива Daphile 24.05, основанного на Gentoo Linux и предназначенного для создания системы для хранения и воспроизведения музыкальной коллекции, замещаемой на компьютере без экрана. Управление воспроизведением и коллекцией производится через специально созданный web-интерфейс. Для загрузки доступна сборка с обычным ядром Linux (329 МБ) и сборка с компонентами для работы в режиме реального времени (319 МБ).

Дистрибутив может работать в режиме звукового сервера, сетевого хранилища (NAS, Network-Attached Storage) и точки беспроводного доступа. Поддерживается воспроизведение со внутренних накопителей, c сетевых потоковых сервисов и c внешних USB-накопителей. Для обеспечения максимального качества звука и создания мультизональных аудиосистем поддерживается подключения компьютера с Daphile к аналоговым усилителям через цифро-аналоговые преобразователи с интерфейсом USB.

В новой версии:

  • Обновлены LMS (Lyrion Music Server) 8.5.2, Perl 5.38, ядро Linux 6.6. Для сборки задействован GCC 13.2.
  • Обновлены плагины для интеграции с сервисами Spotty 4.10.1, TIDAL 1.4.6, Qobuz 3.5.0, Deezer 2.81.4 и YouTube 0.212.
  • Удалена поддержка Mysqueezebox.com.
  • Добавлен модуль Crypt::Blowfish, позволивший повысить производительность плагинов.
  • Добавлена возможность сохранения содержимого звуковых CD в формате WAV.
  • Библиотека с информацией об исполнителях и музыкальных композициях CDDB заменена на Gnudb.
  • Добавлена поддержка обращения к внешним сетевым накопителям через протоколы SMB3 и WebDAV.
  • Реализована возможность автоматического выбора цветовой темы web-интерфейса на основе выбранной для устройства темы.
  • Для сжатия модулей ядра и файлов прошивок задействован алгоритм LZMA, а для сжатия корневого образа SquashFS - Zstd.


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

opennet honked 09 May 2024 11:00 +0200

Выпуск Nebula 1.9, системы для создания оверлейных P2P-сетей

Опубликован выпуск проекта Nebula 1.9, предлагающего инструментарий для построения защищённых оверлейных сетей, позволяющих объединить территориально разделённые хосты в отдельную изолированную сеть, работающую поверх глобальной сети. Проект предназначен для создания своих собственных оверлейных сетей для любых нужд, например, для объединения корпоративных компьютеров в разных офисах, серверов в разных ЦОД или виртуальных окружений у разных облачных провайдеров. Код написан на языке Go и распространяется под лицензией MIT. Проект основан компанией Slack, развивающей одноимённый корпоративный мессенджер. Поддерживается работа в Linux, FreeBSD, macOS, Windows, iOS и Android.

Узлы в сети Nebula взаимодействуют друг с другом напрямую в режиме P2P - по мере появления необходимости передачи данных между узлами динамически создаются прямые VPN-соединения. Идентичность каждого хоста в сети подтверждается цифровым сертификатом, а подключение к сети требует прохождения аутентификации - каждый пользователь получает сертификат, подтверждающий IP-адрес в сети Nebula, имя и членство в группах хостов. Сертификаты подписываются внутренним удостоверяющим центром, развёртываемым создателем каждой отдельной сети на своих мощностях и применяемым для заверения полномочий хостов, имеющих право подключения к конкретной оверлейной сети, привязанной к удостоверяющему центру.

Для создания аутентифицированного защищённого канала связи в Nebula применяется собственный туннельный протокол, основанный на протоколе обмена ключами Диффи—Хеллмана и шифре AES-256-GCM. Реализация протокола базируется на готовых и проверенных примитивах, предоставляемых фреймворком Noise, который также применяется в таких проектах, как WireGuard, Lightning и I2P. Утверждается, что проект прошёл независимый аудит безопасности.

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

Создаваемой сети выделяется определённый диапазон интранет адресов (например, 192.168.10.0/24) и осуществляется связывание внутренних адресов с сертификатами хостов. Предоставляются различные механизмы для обхода трансляторов адресов (NAT) и межсетевых экранов. Возможна организации маршрутизации через оверлейную сеть трафика сторонних хостов, не входящих в сеть Nebula (unsafe route). Из участников оверлейной сети могут формироваться группы, например, для разделения серверов и рабочих станций, к которым применяются отдельные правила фильтрации трафика.

Поддерживается создание межсетевых экранов для разделения доступа и фильтрации трафика между узлами в оверлейной сети Nebula. Для фильтрации применяются ACL с привязкой тегов. Каждый хост в сети может определять собственные правила фильтрации по хостам, группам, протоколам и сетевым портам. При этом хосты фильтруются не по IP-адресам, а по заверенным цифровой подписью идентификаторам хоста, которые невозможно подделать без компрометации удостоверяющего центра, координирующего работу сети.

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

  • Добавлена новая настройка default_local_cidr_any, которая меняет поведение при обработки подсетей "local_ip" в правилах межсетевого экрана для предотвращения необоснованного разрешения трафика к хостам, перечисленным в блоке unsafe_routes. В версии 1.9 настройка выставлена в значение "true", но в следующем выпуске 1.10 будет заменена на значение "fasle", что приведёт к учёту локальных подсетей при применении правил межсетевого экрана к хостам, доступным через небезопасные маршруты (для открытия доступа к таким хостам потребуется обязательное указание local_cidr).
  • Предоставлен официальный образ для системы Docker, позволяющий быстро развернуть оверлейную сеть на базе Nebula или узел для неё.
  • Добавлены экспериментальные сборки для архитектуры Loong64.
  • Реализован сервисный скрипт для системы инициализации OpenRC.
  • В фоновый процесс SSH добавлена поддержка аутентификации по сертификатам, заверенным удостоверяющим центром (sshd.trusted_cas). Реализована возможность встраивания хостовых ключей в блок настроек sshd.host_key.
  • Обеспечена поддержка перезагрузки настроек "tun.unsafe_routes".
  • Удалена поддержка устаревшей настройки local_range, вместо которой следует использовать preferred_ranges.
  • Для сборки теперь требуется инструментарий go 1.22. Минимальные требования к версиям Windows повышены до Windows 10 и Windows Server 2016.


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

opennet honked 09 May 2024 10:00 +0200

В Rustls обеспечена совместимость с OpenSSL и nginx

Организация ISRG (Internet Security Research Group), которая является учредителем проекта Let's Encrypt и способствует развитию технологий для повышения защищённости интернета, объявила о публикации прослойки rustls-openssl-compat, позволяющей использовать библиотеку Rustls в качестве прозрачной замены OpenSSL. В настоящее время проектом предоставлена реализация rustls-libssl, обеспечивающая совместимость с libssl, а в разработке находится реализация libcrypto.

Присутствующей в прослойке функциональности достаточно чтобы обеспечить работу nginx на базе Rustls. Для перевода nginx на Rustls следует просто заменить библиотеки, без необходимости пересборки или изменения nginx. Из ближайших планов по развитию Rustls отмечается проведение оптимизации производительности в областях, в которых Rustls пока отстаёт от OpenSSL, и обеспечение поддержки RFC 8879 для сжатия сертификатов. Кроме того, в анонсе упомянут план перевода элементов инфраструктуры удостоверяющего цента Let's Encrypt с OpenSSL на Rustls.

Проект Rustls развивает клиентскую и серверную реализацию протоколов TLS1.2 и TLS1.3 для использования в приложениях на языке Rust. Rustls не предоставляет собственную реализацию криптографических примитивов, а использует подключаемые провайдеры криптографических функций (поддерживаются алгоритмы ECDSA, Ed25519, RSA, ChaCha20-Poly1305, AES128-GCM и AES256-GCM). По умолчанию в Rustls используется криптопровайдер на базе библиотеки aws-lc-rs, которая развивается компанией Amazon и базируется на С++ коде BoringSSL, сопровождаемого Google форка OpenSSL. В качестве криптопровайдера также может использоваться библиотека ring, частично основанная на BoringSSL и комбинирующая код на ассемблере, С++ и Rust.

Примечательно, что nginx имеет встроенную поддержку сборки с BoringSSL, что позволяет использовать данную библиотеку напрямую без лишних прослоек. При этом кроме встроенной в Rustls поддержки библиотек aws-lc-rs и ring, основанных на коде BoringSSL, для Rustls также развивается несколько сторонних криптопровайдеров, позволяющих использовать библиотеки mbedtls (код на Си), BoringSSL (C++) и RustCrypto (Rust).

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

opennet honked 08 May 2024 22:00 +0200

Red Hat представил дистрибутив RHEL AI и режим сборки RHEL на базе OSTree и bootc

Компания Red Hat представила дистрибутив Red Hat Enterprise Linux AI (RHEL AI), который специально адаптирован для выполнения задач машинного обучения и призван упростить создание серверных решений, использующих большие диалоговые модели. В состав входит подборка инструментов и фреймворков для машинного обучения, а также драйверы для использования различных аппаратных ускорителей AMD, Intel и NVIDIA, и компоненты для задействования возможностей серверов Dell, Cisco, HPE, Lenovo и SuperMicro, оптимизированных для AI-систем.

RHEL AI предназначен для разработки, тестирования и выполнения систем машинного обучения на базе большой языковой модели Granite, открытой компанией IBM под лицензией Apache 2.0, способной учитывать при генерации текста до 4 тысячи токенов и охватывающей 7 миллиардов параметров. Для взаимодействия с моделью Granite в дистрибутив интегрирован открытый инструментарий InstructLab, поддерживающий методологию LAB (Large-scale Alignment for chatBots) для подгонки под свои нужды и оптимизации моделей, а также для добавления дополнительных знаний и реализации новых навыков в предварительно натренированных моделях.

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

Кроме того, компания Red Hat представила новый режим для создания и управления системными образами на базе Red Hat Enterprise Linux - "image mode", который позволяет использовать для развёртывания операционной системы инструменты и технологии, применяемые для создания и запуска контейнеров приложений. Новый режим манипулирует монолитными системными образами, формируемыми при помощи инструментария rpm-ostree и обновляемыми атомарно без разбивки на отдельные пакеты.

Сборки могут формироваться в виде образов в форматах OCI (как в Docker), ISO, QCOW2, AMI, VMI и VMDK. Содержимое образа выбирается через редактирование файла Containerfile. Для создания и управления образами могут использоваться стандартные инструменты управления контейнерами, такие как Podman и OpenShift Container Platform. Для установки образов может применяться как штатный инсталлятор Anaconda, так и инструментарий bootc-image-builder, позволяющий сконвертировать образ контейнера в загрузочный дисковый образ. Для обновления загрузочных образов контейнеров, которые поставляются с ядром Linux и способны загружаться по аналогии с обычными сборками системы, применяется инструментарий bootc.

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

opennet honked 08 May 2024 15:00 +0200

Выпуск 9front 10522, ответвления от операционной системы Plan 9

Представлен новый выпуск операционной системы 9front, который опубликован под кодовым именем "DO NOT INSTALL" (приуроченная к релизу песня). В рамках проекта 9front с 2011 года сообществом развивается независимый от компании Bell Labs форк распределённой операционной системы Plan 9. Готовые установочные сборки сформированы для архитектур i386, x86_64 и плат Raspberry Pi 1-4. Код проекта распространяется под открытой лицензией Lucent Public License, основанной на IBM Public License, но отличающейся отсутствием требования публикации исходных текстов для производных работ.

Из особенностей 9front отмечается реализация дополнительных механизмов защиты, расширение поддержки оборудования, улучшение работы в беспроводных сетях, добавление новых файловых систем, реализация звуковой подсистемы и кодировщиков/декодировщиков звуковых форматов, поддержка USB, создание web-браузера Mothra, замена загрузчика и системы инициализации, применение шифрования данных на диске, поддержка Unicode, наличие эмулятора реального режима, поддержка архитектуры AMD64 и 64-разрядного адресного пространства.

Основная идея Plan 9 связана со стиранием различий между локальными и удалёнными ресурсами. Система представляет собой распределенную среду, базирующуюся на трех базовых принципах: все ресурсы можно рассматривать как иерархический набор файлов; нет различия в доступе к локальным и внешним ресурсам; каждый процесс имеет собственное изменчивое пространство имен. Для создания единой распределенной иерархии файлов-ресурсов используется протокол 9P.

В новой версии:

  • Предложен новый драйвер Ext4srv с реализацией файловой системы Ext4, который заменил собой ранее применявшийся драйвер с ФС Ext2.
  • Расширена поддержка звуковых адаптеров с интерфейсом USB. Добавлена поддержка звуковых карт с частотой дискретизации, отличной от 44.1kHz.
  • Добавлена поддержка DNS over TLS.
  • Для плат Raspberry Pi портирован код для поддержки Wi-Fi.
  • Добавлена поддержка шины I2C и улучшена поддержка UART для MT7688.
  • Добавлена программа Vdiff, позволяющая просматривать отличия между файлами в графическом режиме.
  • В Mixfs разрешено переключение между звуковыми устройствами.
  • Изменено поведение IP-стека - выставленные маршруты теперь привязываются к сетевому интерфейсу и удаляются при его отключении.


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

opennet honked 08 May 2024 12:00 +0200

Опубликован Fedora Asahi Remix 40, дистрибутив для ARM-чипов Apple

Представлен дистрибутив Fedora Asahi Remix 40, предназначенный для установки на компьютеры Mac, оснащённые ARM-чипами, разработанными компанией Apple. Fedora Asahi Remix 40 базируется на пакетной базе Fedora Linux 40 и оснащён инсталлятором Calamares. Это второй выпуск, опубликованный после перехода проекта Asahi с Arch на Fedora, который помог команде Asahi Linux сфокусировать усилия на обратном инжиниринге оборудования, не расходуя ресурсы на поддержку дистрибутива, которым теперь занимается рабочая группа Fedora Asahi SIG.

В Fedora Asahi Remix обеспечена возможность работы на системах Apple MacBook Air, MacBook Pro, Mac Mini, Mac Studio и iMac, оснащённых ARM-чипами Apple M1 и M2. В качестве основного пользовательского окружения поставляется KDE Plasma 6, но опционально доступен вариант на базе GNOME 46. В обеих редакциях используется Wayland, а для запуска X11-приложений применяется DDX-сервер XWayland. В графических драйверах обеспечена поддержка OpenGL 4.6 и OpenGL ES 3.2, которая официально сертифицирована консорциумом Khronos (в родных графических драйверах для чипов M1 от компании Apple реализована только спецификация OpenGL 4.1).

Полностью поддерживается звуковая подсистема компьютеров Apple, а также камера, Wi-Fi, Bluetooth и устройства ввода. Пока не поддерживаются: подключение экрана через USB-C, Thunderbolt / USB4, микрофон и Touch ID.

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

opennet honked 08 May 2024 12:00 +0200

Представлен Raspberry Pi Connect, сервис для подключения к Raspberry Pi OS из браузера

Разработчики проекта Raspberry Pi представили сервис Raspberry Pi Connect, предназначенный для удалённого подключения к рабочему столу дистрибутива Raspberry Pi OS через web-браузер. Сервис может использоваться в окружениях Raspberry Pi OS для плат Raspberry Pi 4, Raspberry Pi 400 и Raspberry Pi 5, построенных на базе Debian 12 и переведённых на графический стек на базе Wayland.

Для использования сервиса достаточно установить пакет "rpi-connect", после чего в системном лотке появится новый индикатор, через который можно активировать сервис. После регистрации подключиться к устройству из браузера можно через страницу connect.raspberrypi.com, которая используется только для координации подключений, а связь устанавливается между браузером и операционной системой напрямую при помощи протокола WebRTC. При невозможности установить прямое соединение опционально поддерживается проброс шифрованного туннеля через серверы организации Raspberry Pi Foundation (для обычных пользователей сервис обещают сохранить бесплатным). На стороне устройства для обработки соединений запускается фоновых процесс rpi-connect, который запускает VNC-сервер, к которому осуществляется подключения из VNC-клиента, оформленного для работы из браузера.

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

contrinitiator honked 08 May 2024 11:22 +0200

А Паустовский вообще крутейший! Часто тёплые моря как раз воспринимаются как пошлый "отдых", но поглядеть на какие-нибудь именитые ветра и послушать Чёрное море - такого бы я хотел! По теме погоды и разговоров:

У вас, сухопутных, разговоры о погоде считаются признаком пошлости и дурного тона. Когда в так называемом обществе совершенно не о чем говорить, вы краснеете и бормочете несколько слов, что «вот, мол, идет дождь» или «удивительно, какая стоит в этом году холодная весна». Окружающие смотрят на вас с сожалением, как на отпетого идиота. И они правы. Это действительно глупо. Такие разговоры я считаю насмешкой над сложными явлениями, происходящими в земной атмосфере. Если бы от погоды зависела ваша работа, жизнь и судьба ваших товарищей, как это бывает у моряков, вы бы не вели разговоры о ней так банально и невежественно. Поучитесь у рыбаков беседам на эту тему. Каждый рыбак расскажет вам о ветре или цвете неба такое, что вы закачаетесь!

#литература #погода

opennet honked 08 May 2024 11:00 +0200

Выпуск пакетного менеджера pacstall 5.0, развивающего аналог AUR для Ubuntu

Доступен выпуск пакетного менеджера pacstall 5.0, развивающего аналог концепции AUR для Ubuntu Linux и собственный репозиторий, в котором присутствует 518 пакетов, позволяющих установить в текущем окружении Ubuntu наиболее свежие версии интересующих программ, параллельно с имеющимися в системе программами. Пакеты оформляются в формате pacscript, похожем на PKGBUILD в AUR и также включающем сведения о загрузке, зависимостях, сборке и установке. Код утилиты написан на Shell и распространяется под лицензией GPLv3.

Среди особенностей инструментария:

  • Поддержка как сборки программ из исходных текстов архивов с релизами и срезов из git-репозиториев, так и установки готовых сборок и пакетов в форматах Appimage и deb.
  • Возможность ускорения загрузки пакетов при помощи утилиты axel, поддерживающей распараллеливание потоков и загрузку порций данных одновременно с нескольких серверов.
  • При обновлении возможна загрузка самых свежих коммитов из Git, без необходимости ожидания обновления пакета.
  • Возможность установки программ из нескольких репозиториев.
  • Возможность отслеживания обновлений Pacstall из любых веток и форков.
  • Поддержка автодополнения команд в оболочках bash, ZSH и fish.

В новой версии:

  • В формат pacscript внесён ряд изменений, нарушающих совместимость, например, переименованы некоторые параметры (name -› pkgname, homepage -› url и т.п.).
  • Добавлена возможность ограничения версий в массивах с определением зависимостей.
  • Добавлена функция check() и связанные с ней флаги -Nc/--nocheck.
  • Добавлены функции {pre,post}_upgrade и pre_remove для запуска перед или после обновления и удаления пакета.
  • Предоставлена возможность определения конфликтующих пакетов.
  • Добавлен параметр со списком лицензий.
  • Добавлены флаги -Qa/--quality-assurance и Q/--quiet.


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

opennet honked 08 May 2024 10:00 +0200

Проект GNOME опубликовал финансовый отчёт за 2023 год

Организация GNOME Foundation опубликовала финансовый отчёт за 2023 финансовый год, который охватывает показатели с октября 2022 года по сентябрь 2023 года. В отчёте также упомянуты основные события этого периода (релизы GNOME 44 и 45, назначение нового директора) и проведённые конференции разработчиков (GUADEC 2023 в Риге, GNOME Asia 2022 в Куала-Лумпуре, Linux App Summit в Брно).

Что касается финансовых показателей, то расходы за отчётный период заметно превысили поступление средств - получено 556 тысяч долларов, израсходовано 676 тысяч долларов (перерасход за счёт прошлых накоплений - $120 тысяч). При этом стоит отметить, что перерасход наблюдался и в прошлые периоды: в 2022 году проект получил $363 тысяч, а израсходовал $649 тысяч (перерасход $286 тысяч), в 2021 году проект получил $287 тысяч, а израсходовал $927 тысяч (перерасход $640 тысяч), в 2020 году проект получил $925 тысяч, а израсходовал $789 тысяч (остаток $136 тысяч), в 2019 году проект получил $915 тысяч, а израсходовал $608 тысяч (остаток $307 тысяч), в 2018 году проект получил 1.073 млн долларов, а израсходовал $365 тысяч (остаток $708 тысяч). В ноябре 2023 года проект также получил миллион евро от фонда Sovereign.

Что касается источников поступления средств в 2023 году, то из полученных 556 тысяч долларов, $422 тысячи связаны с пожертвованиями и спонсорской помощью, $47 тысяч заработаны при проведении конференций, $80 тысяч связаны с проектом GIMP. По расходам $283 тысячи потрачены на проведение конференций, $105 тысяч на поддержку и инфраструктуру, $96 тысяч на программу Outreach (оплата стажировок женщин и меньшинств), $30 тысяч передано проекту GIMP, $121 тысяча потрачена на административные расходы и $39 тысяч передано на финансирование других проектов.

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

opennet honked 08 May 2024 08:00 +0200

Выпуск NetBSD 8.3

Спустя четыре года с момента прошлого обновления ветки 8.x опубликован релиз операционной системы NetBSD 8.3, который завершил цикл сопровождения ветки netbsd-8. Таким оборазом, ветка NetBSD 8.x получала обновления на протяжении 6 лет. Выпуск отнесён к категории корректирующих обновлений и включает в исправления накопившихся проблем, связанных со стабильностью и безопасностью, выявленных с момента публикации NetBSD 8.2 в апреле 2020 года. Для тех, кому важна новая функциональность в марте был выпущен значительный релиз NetBSD 10.0, а в апреле предложено обновление NetBSD 9.4. Для загрузки подготовлены установочные образы размером 750 МБ, доступные в сборках для 57 системных архитектур и 16 различных семейств CPU.

Среди заметных изменений в NetBSD 8.3:

  • Обновлены версии libX11 1.6.10, xterm 366 и tmux 3.1c.
  • Актуализированы данные о часовых поясах и корневых серверах DNS.
  • В утилиты audioplay и audiorecord добавлена поддержка новых вариантов формата WAV.
  • В утилиту ftp перенесена поддержка относительных редиректов при использовании HTTP.
  • В httpd на 32-разрядных системах налажена обработка файлов, размером больше 4ГБ.
  • На системах с большим объёмом ОЗУ увеличен лимит, определяющий максимально допустимое число открытых файлов.


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

continue honked 07 May 2024 17:04 +0200

=> gemini://any-key.press/forth/introduction.gmi Моё знакомство с Forth

TL;DR Книга "Starting FORTH" (в переводе "Начальный курс программирования на языке ФОРТ") от Leo Brodie это то, что нужно для знакомства со вселенной #Forth.

#gemini

continue bonked 07 May 2024 14:10 +0200
original: opennet@honk.any-key.press

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

После года разработки опубликован релиз свободного набора компиляторов GCC 14.1, первый значительный выпуск в новой ветке GCC 14.x. В соответствии с новой схемой нумерации выпусков, версия 14.0 использовалась в процессе разработки, а незадолго до выхода GCC 14.1 уже ответвилась ветка GCC 15.0, на базе которой будет сформирован следующий значительный релиз GCC 15.1.

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

  • Значительно расширены возможности для статического анализа кода на языке Си, доступные через опцию "-fanalyzer" (статический анализ для языка С++ пока не доведён до должного вида). Усилен анализ операций со строками и проверка наличия завершающего строку нулевого символа. Добавлено новое предупреждение "-Wanalyzer-infinite-loop" для выявления бесконечных циклов. Добавлена серия предупреждений "-Wanalyzer-tainted-*" для выявления проблем с проверкой входных данных. Расширены возможности предупреждения "-Wanalyzer-out-of-bounds" для выявления переполнений буфера, например, добавлена возможность отображения диаграммы с визуализацией состояния, приводящего к переполнению.
  • Добавлена новая сборочная опция "--enable-host-pie" для сборки исполняемых файлов компилятора в режиме PIE (Position Independent Executable), а также опция "--enable-host-bind-now" для связывания с опциями "-Wl,-z,now".
  • Добавлена новая опция "-fhardened", включающая флаги для усиления безопасности (-D_FORTIFY_SOURCE=3 -D_GLIBCXX_ASSERTIONS -ftrivial-auto-var-init=zero -fPIE -pie -Wl,-z,relro,-z,now -fstack-protector-strong -fstack-clash-protection -fcf-protection=full).
  • Добавлена опция "-fharden-control-flow-redundancy" для добавления в конец функций кода для выявления некоторых форм неопределённого поведения, которые потенциально могут привести к нарушению нормального порядка выполнения (control flow) в результате применения эксплоитов, изменяющих хранимые в памяти указатели на функции и передающих управление в середину функций.
  • Добавлен новый атрибут типов "hardbool", позволяющий переопределить значения, сопоставленные с признаками true и false для затруднения некоторых видов атак.
  • Добавлен новый атрибут типов strub для управление обнулением кадров стека с данными функций и переменных после выхода из функции или срабатывания исключения.
  • Добавлена опция -finline-stringops для включения inline-раскрытия функций memcmp, memcpy, memmove и memset, даже когда это не нужно для оптимизации.
  • Добавлен новый атрибут функций null_terminated_string_arg(PARAM_IDX) для пометки параметров, которые следует трактовать как строки, заканчивающиеся нулевым символом.
  • В векторизаторе реализована поддержка векторизации циклов, содержащих выражения "break".
  • Добавлена начальная поддержка предварительной версии спецификации OpenMP 6.0 (Open Multi-Processing) и продолжена реализация стандартов OpenMP 5.0, 5.1 и 5.2, определяющих API и способы применения методов параллельного программирования на многоядерных и гибридных (CPU+GPU/DSP) системах с общей памятью и блоками векторизации (SIMD).
  • Улучшена реализация спецификаций параллельного программирования OpenACC 2.7 и 3.2, определяющих средства для выноса операций (offloading) на GPU и специализированные процессоры, такие как NVIDIA PTX.
  • Для C, C++ и Objective-C реализована поддержка расширений "__has_feature" и "__has_extension", применяемых в Clang.
  • Реализованы возможности, определённые в будущем Си-стандарте C23, такие как типы "_BitInt (N)" и "unsigned _BitInt (N))". Структуры, объединения и перечисления разрешено определять более одного раза в одной области видимым с одним и тем же содержимым и повторяющимся тегом. Добавлена поддержка заголовочного файла stdckdint.h. Для включения поддержки элементов C23 предложены флаги "-std=c23", "-std=gnu23" и "-Wc11-c23-compat".
  • Для языка Си добавлено выражение "#pragma GCC novector", отключающее векторизацию анотированных циклов.
  • Добавлены возможности, связанные со стандартом C++23. Добавлена поддержка механизма "Deducing this", позволяющего использовать в шаблоне параметры с признаком "this" и дающего возможность из функции класса узнать категорию выражения (например, является ли константой), для которого эта функция вызвана. Реализовано требование, в соответствии с которым все функции, вызывающие функции с признаком consteval тоже становятся consteval, т.е. выполняются при компиляции. Ослаблены некоторые требования к "constexpr".
  • Добавлены возможности, связанные с будущим стандартом C++2с (C++26). Например, предоставлена возможность использования строковых литералов в контексте, в котором они не используются для инициализации массива символов и не попадают в результирующий код, а применяются только во время компиляции для диагностических сообщений и препроцессинга. Добавлена возможность использования сразу нескольких переменных-заполнителей с именем "_" в одной области видимости. Переведено в разряд устаревших выполнение неявных преобразований перечисляемых значений в арифметических вычислениях.
  • В libstdc++ улучшена поддержка стандартов C++20, C++23 и C++26.
  • В компиляторе для языка Fortran началась работа над поддержкой стандарта Fortran 2023 (-std=f2023).
  • Объявлена устаревшей поддержка расширения GCC, позволяющего указывать гибкий элемент-массив (массив неопределённого размера, например, "int b[]") не в самом конце структуры (Flexible Array Members). Массив неопределённого размера в дальнейшем можно будет использовать только в конце структуры.
  • В бэкенде для архитектуры AArch64 реализована поддержка CPU Ampere-1B (ampere1b), Arm Cortex-A520 (cortex-a520), Arm Cortex-A720 (cortex-a720), Arm Cortex-X4 (cortex-x4) и Microsoft Cobalt-100 (cobalt-100). Для использования в опциях "-mcpu=" и "-mtune=" добавлены новые идентификаторы CPU generic, generic-armv8-a и generic-armv9-a. Добавлена поддержка расширений Arm SME и SME2 (Streaming Matrix Extensions). Реализованы специфичные для архитектуры AArch64 оптимизации.
  • В бэкенде для архитектуры ARM добавлена поддержка CPU Cortex-M52 (cortex-m52 в опциях "-mcpu=" и "-mtune=").
  • В бэкенде генерации кода для GPU AMD Radeon (GCN) реализована поддержка GPU AMD Radeon gfx90c (GCN5), gfx1030, gfx1036 (RDNA2), gfx1100 и gfx1103 (RDNA3). Повышена производительность для устройств AMD серий MI100 и MI200. По умолчанию активирована архитектура устройств gfx900 (Vega).
  • В бэкенд для архитектуры x86 добавлена поддержка расширений архитектуры набора команд Intel AVX10.1, Intel APX (частично), Intel AVX-VNNI-INT16, Intel SHA512, Intel SM3, Intel SM4, Intel USER_MSR.

    Добавлена поддержка CPU AMD на базе ядра Zen 5 (-march=znver5), а также процессоров Intel Clearwater Forest (-march=clearwaterforest), Arrow Lake (-march=arrowlake), Arrow Lake S (-march=arrowlake-s), Lunar Lake (-march=lunarlake) и Panther Lake (-march=pantherlake). Добавлена опция "-m[no-]evex512" для управления задействованием 512-битных векторов (по умолчанию включается при поддержке AVX512F. Объявлена устаревшей поддержка CPU Intel Xeon Phi.

  • Расширены возможности бэкендов для платформ LoongArch, AVR и RISC-V.
  • Расширены возможности вывода диагностики в формате SARIF, основанном на JSON. Формат SARIF можно использовать для получения результатов статического анализа (GCC -fanalyzer), а также для получения сведений о предупреждениях и ошибках.
  • Переведена в разряд устаревших и будет удалена в следующем релизе GCC поддержка целевых архитектур ia64 и nios2, применяемых в процессорах Intel Itanium и Nios II.


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

opennet honked 07 May 2024 14:00 +0200

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

После года разработки опубликован релиз свободного набора компиляторов GCC 14.1, первый значительный выпуск в новой ветке GCC 14.x. В соответствии с новой схемой нумерации выпусков, версия 14.0 использовалась в процессе разработки, а незадолго до выхода GCC 14.1 уже ответвилась ветка GCC 15.0, на базе которой будет сформирован следующий значительный релиз GCC 15.1.

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

  • Значительно расширены возможности для статического анализа кода на языке Си, доступные через опцию "-fanalyzer" (статический анализ для языка С++ пока не доведён до должного вида). Усилен анализ операций со строками и проверка наличия завершающего строку нулевого символа. Добавлено новое предупреждение "-Wanalyzer-infinite-loop" для выявления бесконечных циклов. Добавлена серия предупреждений "-Wanalyzer-tainted-*" для выявления проблем с проверкой входных данных. Расширены возможности предупреждения "-Wanalyzer-out-of-bounds" для выявления переполнений буфера, например, добавлена возможность отображения диаграммы с визуализацией состояния, приводящего к переполнению.
  • Добавлена новая сборочная опция "--enable-host-pie" для сборки исполняемых файлов компилятора в режиме PIE (Position Independent Executable), а также опция "--enable-host-bind-now" для связывания с опциями "-Wl,-z,now".
  • Добавлена новая опция "-fhardened", включающая флаги для усиления безопасности (-D_FORTIFY_SOURCE=3 -D_GLIBCXX_ASSERTIONS -ftrivial-auto-var-init=zero -fPIE -pie -Wl,-z,relro,-z,now -fstack-protector-strong -fstack-clash-protection -fcf-protection=full).
  • Добавлена опция "-fharden-control-flow-redundancy" для добавления в конец функций кода для выявления некоторых форм неопределённого поведения, которые потенциально могут привести к нарушению нормального порядка выполнения (control flow) в результате применения эксплоитов, изменяющих хранимые в памяти указатели на функции и передающих управление в середину функций.
  • Добавлен новый атрибут типов "hardbool", позволяющий переопределить значения, сопоставленные с признаками true и false для затруднения некоторых видов атак.
  • Добавлен новый атрибут типов strub для управление обнулением кадров стека с данными функций и переменных после выхода из функции или срабатывания исключения.
  • Добавлена опция -finline-stringops для включения inline-раскрытия функций memcmp, memcpy, memmove и memset, даже когда это не нужно для оптимизации.
  • Добавлен новый атрибут функций null_terminated_string_arg(PARAM_IDX) для пометки параметров, которые следует трактовать как строки, заканчивающиеся нулевым символом.
  • В векторизаторе реализована поддержка векторизации циклов, содержащих выражения "break".
  • Добавлена начальная поддержка предварительной версии спецификации OpenMP 6.0 (Open Multi-Processing) и продолжена реализация стандартов OpenMP 5.0, 5.1 и 5.2, определяющих API и способы применения методов параллельного программирования на многоядерных и гибридных (CPU+GPU/DSP) системах с общей памятью и блоками векторизации (SIMD).
  • Улучшена реализация спецификаций параллельного программирования OpenACC 2.7 и 3.2, определяющих средства для выноса операций (offloading) на GPU и специализированные процессоры, такие как NVIDIA PTX.
  • Для C, C++ и Objective-C реализована поддержка расширений "__has_feature" и "__has_extension", применяемых в Clang.
  • Реализованы возможности, определённые в будущем Си-стандарте C23, такие как типы "_BitInt (N)" и "unsigned _BitInt (N))". Структуры, объединения и перечисления разрешено определять более одного раза в одной области видимым с одним и тем же содержимым и повторяющимся тегом. Добавлена поддержка заголовочного файла stdckdint.h. Для включения поддержки элементов C23 предложены флаги "-std=c23", "-std=gnu23" и "-Wc11-c23-compat".
  • Для языка Си добавлено выражение "#pragma GCC novector", отключающее векторизацию анотированных циклов.
  • Добавлены возможности, связанные со стандартом C++23. Добавлена поддержка механизма "Deducing this", позволяющего использовать в шаблоне параметры с признаком "this" и дающего возможность из функции класса узнать категорию выражения (например, является ли константой), для которого эта функция вызвана. Реализовано требование, в соответствии с которым все функции, вызывающие функции с признаком consteval тоже становятся consteval, т.е. выполняются при компиляции. Ослаблены некоторые требования к "constexpr".
  • Добавлены возможности, связанные с будущим стандартом C++2с (C++26). Например, предоставлена возможность использования строковых литералов в контексте, в котором они не используются для инициализации массива символов и не попадают в результирующий код, а применяются только во время компиляции для диагностических сообщений и препроцессинга. Добавлена возможность использования сразу нескольких переменных-заполнителей с именем "_" в одной области видимости. Переведено в разряд устаревших выполнение неявных преобразований перечисляемых значений в арифметических вычислениях.
  • В libstdc++ улучшена поддержка стандартов C++20, C++23 и C++26.
  • В компиляторе для языка Fortran началась работа над поддержкой стандарта Fortran 2023 (-std=f2023).
  • Объявлена устаревшей поддержка расширения GCC, позволяющего указывать гибкий элемент-массив (массив неопределённого размера, например, "int b[]") не в самом конце структуры (Flexible Array Members). Массив неопределённого размера в дальнейшем можно будет использовать только в конце структуры.
  • В бэкенде для архитектуры AArch64 реализована поддержка CPU Ampere-1B (ampere1b), Arm Cortex-A520 (cortex-a520), Arm Cortex-A720 (cortex-a720), Arm Cortex-X4 (cortex-x4) и Microsoft Cobalt-100 (cobalt-100). Для использования в опциях "-mcpu=" и "-mtune=" добавлены новые идентификаторы CPU generic, generic-armv8-a и generic-armv9-a. Добавлена поддержка расширений Arm SME и SME2 (Streaming Matrix Extensions). Реализованы специфичные для архитектуры AArch64 оптимизации.
  • В бэкенде для архитектуры ARM добавлена поддержка CPU Cortex-M52 (cortex-m52 в опциях "-mcpu=" и "-mtune=").
  • В бэкенде генерации кода для GPU AMD Radeon (GCN) реализована поддержка GPU AMD Radeon gfx90c (GCN5), gfx1030, gfx1036 (RDNA2), gfx1100 и gfx1103 (RDNA3). Повышена производительность для устройств AMD серий MI100 и MI200. По умолчанию активирована архитектура устройств gfx900 (Vega).
  • В бэкенд для архитектуры x86 добавлена поддержка расширений архитектуры набора команд Intel AVX10.1, Intel APX (частично), Intel AVX-VNNI-INT16, Intel SHA512, Intel SM3, Intel SM4, Intel USER_MSR.

    Добавлена поддержка CPU AMD на базе ядра Zen 5 (-march=znver5), а также процессоров Intel Clearwater Forest (-march=clearwaterforest), Arrow Lake (-march=arrowlake), Arrow Lake S (-march=arrowlake-s), Lunar Lake (-march=lunarlake) и Panther Lake (-march=pantherlake). Добавлена опция "-m[no-]evex512" для управления задействованием 512-битных векторов (по умолчанию включается при поддержке AVX512F. Объявлена устаревшей поддержка CPU Intel Xeon Phi.

  • Расширены возможности бэкендов для платформ LoongArch, AVR и RISC-V.
  • Расширены возможности вывода диагностики в формате SARIF, основанном на JSON. Формат SARIF можно использовать для получения результатов статического анализа (GCC -fanalyzer), а также для получения сведений о предупреждениях и ошибках.
  • Переведена в разряд устаревших и будет удалена в следующем релизе GCC поддержка целевых архитектур ia64 и nios2, применяемых в процессорах Intel Itanium и Nios II.


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

continue bonked 07 May 2024 11:30 +0200
original: grunfink@comam.es

I'm glad to announce the release of version 2.52 of #snac, the simple, minimalistic #ActivityPub instance server written in C. It includes the following changes:

Posts that were liked or boosted can now be unliked and unboosted.

Outgoing message timeouts are no longer hardcoded and can be configured (see snac(8) for more information).

Fixed a bug that caused some incorrect unfollows under special conditions (with shared inboxes enabled and users from the same instance that follow each other, the internal message distributor was confused).

Mastodon API: Added support for lists.

Added a header to avoid over-zealous caching in some browsers (contributed by louis77).

Added support for running and federating inside hidden networks like Tor, I2P or Loki (contributed by iwojima).

Fixed an error processing polls coming from Pleroma instances.

https://comam.es/what-is-snac

If you find #snac useful, please consider buying grunfink a coffee: https://ko-fi.com/grunfink

Usage tips: Use social media as little as possible. Go for a walk. Meet with friends. Read a good book.

#snacAnnounces

opennet honked 07 May 2024 11:00 +0200

Атака TunnelVision, позволяющая перенаправить VPN-трафик через манипуляции с DHCP

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

Суть атаки в том, что атакующий может запустить свой DHCP-сервер и использовать его для передачи клиенту информации для изменения маршрутизации. В частности, атакующий может воспользоваться предоставляемой в протоколе DHCP опцией 121 (RFC-3442, принят в 2002 году), предназначенной для передачи сведений о статических маршрутах, для внесения изменений в таблицу маршрутизации на машине жертвы и направления трафика в обход VPN. Перенаправление осуществляется через выставления серии маршрутов для подсетей с префиксом /1, которые имеют более высокий приоритет, чем применяемый по умолчанию маршрут с префиксом /0 (0.0.0.0/0), соответственно трафик вместо выставленного для VPN виртуального сетевого интерфейса, будет направлен через физический сетевой интерфейс на хост атакующего в локальной сети.

Атака может быть осуществлена в любых операционных системах, поддерживающих 121 опцию DHCP, включая Linux, Windows, iOS и macOS, независимо от используемого протокола VPN (Wireguard, OpenVPN, IPsec) и набора шифров. Платформа Android атаке не подвержена, так как не обрабатывает опцию 121 в DHCP. При этом атака позволяет получить доступ к трафику, но не даёт возможность вклиниться в соединения и определить содержимое, передаваемое с использованием защищённых протоколов уровня приложений, таких как TLS и SSH, например, атакующий не может определить содержимое запросов по HTTPS, но может понять к каким серверам они отправляются.

Для защиты от атаки можно запретить на уровне пакетного фильтра отправку пакетов, адресованных в VPN-интерфейс, через другие сетевые интерфейсы; блокировать DHCP-пакеты с опцией 121; использовать VPN внутри отдельной виртуальной машины (или контейнера), изолированной от внешней сети, или применять специальные режимы настройки туннелей, использующие пространства имён в Linux (network namespace). Для экспериментов с проведением атаки опубликован набор скриптов.

<iframe src="https://www.youtube.com/embed/ajsLmZia6UU?si=AT5NmHQjMy9D6vWF">

Можно отметить, что идея локального изменения маршрутизации не нова и ранее обычно использовалась в атаках, нацеленных на подмену DNS-сервера. В похожей атаке TunnelCrack, в которой перенаправление трафика осуществлялось через замену шлюза по умолчанию, проблема затрагивала все проверенные VPN-клиенты для iOS, в 87.5% VPN-клиентов для macOS, 66.7% для Windows, 35.7% для Linux и 21.4% для Android. В контексте VPN и DHCP метод также упоминался ранее, например, ему посвящён один из докладов на прошлогодней конференции USENIX 2023 (исследование показало, что 64.6% из 195 протестированных VPN-клиентов подвержены атаке).

Для подстановки маршрутов ранее также предлагалось использовать специально оформленный USB-брелок, симулирующий работу сетевого адаптера, который при подключении к компьютеру при помощи DHCP объявляет себя в качестве шлюза. Кроме того, при наличии контроля за шлюзом (например, при подключении жертвы к контролируемой атакующим беспроводной сети) была разработана техника подстановки пакетов в туннель, воспринимаемых в контексте сетевого интерфейса VPN.

Потоки данных при использовании VPN:

Потоки данных после совершения атаки:



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

opennet honked 07 May 2024 09:00 +0200

Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си

После более года разработки подготовлен выпуск проекта PortableGL 0.98, развивающего программную реализацию графического API OpenGL 3.x, написанную целиком на языке Си (C99). Теоретически PortableGL может быть использован в любых приложениях, принимающих текстуру или фреймбуфер в качестве входных данных. Код оформлен в виде одного заголовочного файла и распространяется под лицензией MIT.

Проектом определены такие цели, как переносимость, соответствие API OpenGL, простота использования, простой код и высокая производительность. Из областей применения упоминаются обучение концепциям построения графических API, использование для работы с 3D-графикой на системах без GPU и интеграция поддержи OpenGL в специфичные операционные системы, для которых не перенесён пакет Mesa3D. Из готовых проектов, использующих PortableGL, отмечается порт Minecraft-подобной игры Craft.

В новой версии:

  • Реализована новая стандартная библиотека шейдеров.
  • Добавлена поддержка дополнительных форматов текстур и их автоматической конвертации в формат RGBA.
  • Добавлена поддержка использования для атрибутов вершин с типами, отличными от float.
  • Предложен новый улучшенный алгоритм формирования широких линий.
  • Расширен API. Добавлено много новых функций и возможностей OpenGL, среди которых и возможности OpenGL ES 2/3.


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