| · | 07.04 | Выпуск uutils 0.8, варианта GNU Coreutils на языке Rust (22) |
|
Опубликован выпуск проекта uutils coreutils 0.8.0 (Rust Coreutils), развивающего аналог пакета GNU Coreutils, написанный на языке Rust. В состав coreutils входит более ста утилит, включая sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln и ls. Целью проекта является создание кроссплатформенной альтернативной реализации Coreutils, среди прочего способной работать на платформах Windows, Redox и Fuchsia.
Rust Coreutils задействован по умолчанию в выпуске Ubuntu 25.10 и применяется в дистрибутивах AerynOS (Serpent OS) и Apertis (развивается компанией Collabora). В отличие от GNU Coreutils реализация на Rust распространяется под пермиссивной лицензией MIT, вместо копилефт-лицензии GPL. Дополнительно той же командой разработчиков развиваются написанные на Rust аналоги наборов утилит util-linux, diffutils, findutils, procps и acl, а также программ sed и login. В новой версии Rust Coreutils:
| ||
|
Обсуждение (22) |
Тип: Программы |
| ||
| · | 07.04 | Проект Solod развивает подмножество языка Go, транслируемое в язык Си (67 +5) |
|
Представлен язык программирования Solod (So), предоставляющий подмножество языка Go, транскомпилируемое в представление на языке Си (C11), пригодное для сборки компиляторами GCC, Clang и zig cc. Ключевым отличием Solod от Go и Tinygo является использование ручного управления памятью, работающего без применения сборщика мусора, без автоматического выделения памяти и без подсчёта ссылок. Транспайлер для Solod написан на языке Go и распространяется под лицензией BSD.
Поддерживается работа в Linux, macOS и Windows.
Язык поддерживает структуры, методы, интерфейсы, слайсы, возврат функциями нескольких значений (например, результат + код ошибки), дженерики и отложенные вызовы (defer). C целью упрощения в языке не поддерживаются каналы, сопрограммы и замыкания. При разработке на языке Solod могут использоваться существующие LSP-серверы, линтеры, интегрированные среды разработки и редакторы кода, поддерживающие язык Go, а также инструментарий "go test". Написанный на Solod код может интегрироваться с приложениями на языке Си (язык Си может вызвать функции на Solod и наоборот) и не требует прикрепления runtime. Из ключевых областей применения отмечается системное программирование с близкими к Си возможностями, но с синтаксисом в стиле Go и обеспечением проверки типов. Solod также может применяться для портирования Go-библиотек для использования в проектах на Си. На язык Си портированы Go-пакеты strings, io, bytes, mem, slices и т.п. Помимо набора портированных Go-библиотек в программах на языке Solod можно использовать обвязки над стандартной Си-библиотекой libc. По умолчанию вся память выделяется в стеке, но через функции Alloc / Free стандартной библиотеки можно выделять память в куче. Сборка мусора и подсчёт ссылок не используются, но в Solod предоставляются возможности для проверки типов и аварийного завершения при обращении за границу массива. При этом проверки на возвращение висячих указателей (dangling pointer) и отсутствие освобождения памяти не производятся. В качестве основного способа выявления проблем при работе с памятью упоминается использование AddressSanitizer (-fsanitize=address) в современных компиляторах. По производительности скомпилированные программы, написанные на Solod, в большинстве случаев быстрее программ на Go. Например, производительность работы функций из пакета Byte быстрее в полтора раза при идентичном потреблении памяти. Работа с байтовыми буферами быстрее в 1.3 раза при чтении и в 2-4 раза при записи. В пакете Map выборка по целочисленному ключу быстрее в 3.4 раза, но модификация ключей медленнее в 1.6 раза. Выборка по строковым ключам на одном уровне с языком Go, но модификация медленнее в 1.5 раза. Парсинг и форматирование целых чисел быстрее в 2 раза, а с плавающей запятой - в 1.5/1.2 раза. Строковые функции быстрее в 1.3 раза, а создание строк быстрее в 2-4 раза при снижении потребления памяти на 10-20%.
| ||
|
Обсуждение (67 +5) |
Тип: Программы |
| ||
| · | 07.04 | Атака GPUBreach, позволяющая получить root-доступ через выполнение CUDA-кода на GPU NVIDIA (22 +8) |
|
Группа исследователей из университета Торонто разработала технику атаки GPUBreach, которая аналогично анонсированным на днях атакам GDDRHammer и GeForge использует технику RowHammer для искажения битов видеопамяти GDDR и повреждения таблицы страниц памяти GPU. GPUBreach позволяет получить root-доступ в основное системное окружение через выполнение в GPU NVIDIA непривилегированного ядра CUDA.
Особенностью атаки является возможность работы при включённом IOMMU. Для обхода IOMMU атака нарушает состояние выполняемого на уровне ядра проприетарного драйвера NVIDIA и инициирует в нём переполнение буфера, при помощи которого переписывает содержимое структур ядра. Также показано применение атаки для извлечения из памяти GPU ключей шифрования, используемых библиотекой cuPQC, для ускорения выносящей криптографические вычисления на сторону GPU.
| ||
|
Обсуждение (22 +8) |
Тип: Проблемы безопасности |
| ||
| · | 07.04 | Доля пользователей Linux в Steam по статистике Valve превысила 5% (151 +36) |
|
Компания Valve опубликовала мартовский отчёт с анализом предпочтений пользователей сервиса доставки игр Steam. Доля активных пользователей Steam, использующих платформу Linux, достигла значения в 5.33%, что в 2 раза больше, чем было отражено в предыдущем месяце. С учётом того, что число активных пользователей Steam оценивается в 132 миллиона, 5.33% соответствует примерно 7 миллионам пользователей. В февральском отчёте данный показатель составлял 2.23%, январском - 3.38%, декабрьском - 3.58%.
Наибольшую долю среди Linux систем занимает платформа SteamOS Holo, основанная на Arch Linux - 24.48%. Доля Linux Mint составляет 8.8%, Arch Linux - 8.78%, Ubuntu - 5.25%, Manjaro - 1.45%. По сравнению с февральской статистикой из списка пропали дистрибутивы CachyOS и Bazitte, доля которых составляла 8.59% и 5.79%, соответственно. В мартовском рейтинге также отсутствует упоминание Freedesktop SDK (Flatpak runtime), доля которого составляла 5.26%. При этом в мартовских данных появились системы с именами "64 bit" и "0 64 bit", доля которых составляет 8.01% и 17.60% (!). Можно предположить, что это Bazitte и CachyOS, но столь значительное увеличение доли каждой из данных систем выглядит сомнительно. ![]() Мартовская статистика от проекта Boiling Steam, собранная на основе данных из сервиса ProtonDB, демонстрирует значительный рост популярности дистрибутивов Bazitte и CachyOS, наблюдаемый с прошло года. В марте CachyOS вырвался на первое месте среди дистрибутивов Linux, применяемых геймерами, заняв долю 21.1% и сместив с первого места Arch Linux, который удерживал данную позицию с 2021 года. Доля Bazitte составила 9.5%, что соответствует 4 месту. Для сравнения, доля Arch Linux - 14.9%, Linux Mint - 10.6%, Fedora - 9.2%, Ubuntu - 7.1%, Endeavour - 4.1%, Nobara - 3.9%, PopOS - 2.9%, Debian - 2.7%, NixOS - 2.4%, Manjaro - 2.2%. Суммарная доля всех дистрибутивов на базе Arch Linux составила 42.3%, на базе Debian - 23.3%, на базе Fedora - 22.6%. ![]() Дистрибутив CachyOS основан на пакетной базе Arch Linux и примечателен включением оптимизаций для повышения производительности, а также формированием сборки для носимых устройств (Handheld Edition) с интерфейсом в стиле GameMode и компонентами для любителей компьютерных игр. В дистрибутиве по умолчанию включён планировщик задач BORE, оптимизированный для снижения задержек на рабочем столе и повышения приоритета интерактивных процессов. Ядро и пакеты собраны с включением LTO-оптимизаций (Link-Time Optimization) и задействованием инструкций, доступных в процессорах на базе микроархитектур x86-64-v3, x86-64-v4 и Zen4. При сборке базовых пакетов дополнительно включены оптимизации PGO (Profile-Guided Optimization) или BOLT (Binary Optimization and Layout Tool). Дистрибутив Bazitte ориентирован на геймеров и основан на наработках дистрибутивов Fedora Kinoite и Fedora Silverblue. (атомарно обновляемые редакции Fedora Linux с рабочими столами KDE и GNOME). Дистрибутив поставляется в форме монолитного образа, не разделяемого на отдельные пакеты и обновляемого как единое целое. Приложения устанавливаются в формате Flatpak или в форме контейнров. Для запуска Android-игр задействован Waydroid. В состав входит Steam и подборка компонентов, востребованных любителями компьютерных игр, а также дополнительные драйверы для игровых контроллеров и Wi-Fi. В системные компоненты внесены оптимизации для повышения отзывчивости и улучшения поддержки HDR и VRR. Доля Linux по данным из других источников:
| ||
|
Обсуждение (151 +36) |
Тип: К сведению |
| ||
| · | 06.04 | В ядро Linux предложено включить распределённое реплицируемое блочное устройство DRBD 9 (68 +10) |
|
Для ядра Linux предложен набор патчей с реализацией распределенного реплицируемого блочного устройства DRBD 9, позволяющего создать подобие массива RAID-1, сформированного из зеркалируемых по сети накопителей, подключённых к разным системам. Драйвер намерены вначале протестировать в ветке linux-next и довести до готовности к интеграции в состав ядра Linux 7.2.
Старый вариант DRBD поставляется в ядре начиная с версии 2.6.33, выпущенной 16 лет назад. Имеющийся в ядре код основан на ветке DRBD 8, которая существенно отличается от ветки DRBD 9, выпущенной в 2015 году и не совместимой на уровне протокола. Получилось так, что ветка DRBD 9 развивалась в форме отдельного внешнего модуля, не синхронизированного с модулем из основного состава ядра. Имеющаяся в ядре реализация DRBD сопровождалась отдельно и отстаёт от актуальной кодовой базы DRBD на 10-15 лет. Предложенные патчи созданы для устранения образовавшегося разрыва. DRBD даёт возможность объединить накопители узлов кластера в единое отказоустойчивое хранилище. Для приложений и системы такое хранилище выглядит как одинаковое для всех систем блочное устройство. При использовании DRBD все операции с локальным диском отправляются на другие узлы и синхронизируются с дисками других машин. В случае выхода из строя одного узла, хранилище автоматически продолжит работу за счёт оставшихся узлов. При возобновлении доступности сбойного узла, его состояние будет автоматически доведено до актуального вида. В состав кластера, формирующего хранилище, может входить до 32 узлов, размещённых как в локальной сети, так и в территориально разнесённых центрах обработки данных. Синхронизация в подобных разветвлённых хранилищах выполняется в форме mesh-сети - данные растекаются по цепочке от узла к узлу. Репликация узлов может производиться как в синхронном режиме, так и в асинхронном. Например, локально размещённые узлы могут применять синхронную репликацию, а для узлов на удалённых площадках может применяться асинхронная репликация с дополнительным сжатием и шифрованием трафика. Ветка DRBD 9 отличается абстрагированием транспортного уровня, позволившим реализовать каналы связи не только поверх TCP/IP, но и с использованием RDMA/Infiniband. По сравнению с работой поверх традиционной IP-сети, интеграция прямого доступа к оперативной памяти другого компьютера при помощи RDMA (Remote Direct Memory Access) позволила удвоить производительность репликации при сокращении нагрузки на CPU на 50%. Максимальный размер синхронизированного хранилища увеличен до 32 узлов. В DRBD 9 также изменена логика ресинхронизации узлов, переработан механизм установки блокировок, добавлена поддержка пространства имён сети (network namespace), обеспечена автоматическая установка статуса узла в зависимости от активности, добавлена поддержка двухфазных коммитов и распространения обновлений в неблокирующем режиме. ![]()
| ||
|
Обсуждение (68 +10) |
Тип: К сведению |
| ||
| · | 06.04 | Red Hat увеличил платное сопровождение промежуточных выпусков RHEL до 6 лет (52 –1) |
|
Компания Red Hat представила новую программу расширенной платной поддержки "Extended Life Cycle, Premium", которая обеспечит 14-летний цикл сопровождения веток дистрибутива Red Hat Enterprise Linux 8/9/10: 5 лет полное формирование общедоступных обновлений + 5 лет общедоступные обновления с устранением серьёзных ошибок и уязвимостей (без добавления новшеств и расширения поддержки оборудования) + 4 года формирования обновлений с устранением критических проблем для платных подписчиков.
Ранее 4 года дополнительной платной поддержки предоставлялось и для выпуска RHEL 7, теперь эта практика заявлена для выпусков RHEL 8/9/10. Особенностью программы "Extended Life Cycle, Premium" является увеличение времени дополнительной публикации обновлений для промежуточных выпусков (субрелизы RHEL 10.1, 10.2, 10.3 и т.п.). Обновления с устранением уязвимостей с уровнем опастности CVSS 7 и выше, а также исправлением серьёзных ошибок для промежуточных веток теперь будет выпускаться в течение 6 лет (было 2 года Extended Update плюс ещё 2 года по отдельной подписке Extended Extended Update), что позволит сократить операции перехода на новые промежуточные выпуски в системах, обслуживающих непрерывно работающие критически важные сервисы. Длительная поддержка для промежуточных выпусков будет осуществляться через релиз. Например, расширенные обновления для майского выпуска RHEL 10.2 будут формироваться до мая 2032 года, для ноябрьского RHEL 10.3 - до мая 2027 года, а для майского RHEL 10.4 - до мая 2033 года. Ветка RHEL 10 в целом будет сопровождаться до 2039 года, ветка RHEL 9 - до 2036 года, а RHEL 8 - до 2033 года. ![]() Что касается других дистрибутивов, 16 лет поддерживается SUSE Linux, 15 лет поддерживается Ubuntu, 10 лет (5 лет LTS + 5 лет Extended LTS) поддерживается Debian GNU/Linux, 2 года поддерживается openSUSE и 13 месяцев - Fedora Linux.
| ||
|
Обсуждение (52 –1) |
Тип: К сведению |
| ||
| · | 06.04 | Выпуск Phosh 0.54.0, GNOME-окружения для смартфонов (37 +5) |
Опубликован релиз Phosh 0.54, экранной оболочки для мобильных устройств, основанной на технологиях GNOME и библиотеке GTK. Окружение изначально развивалось компанией Purism в качестве аналога GNOME Shell для смартфона Librem 5, но затем вошло в число неофициальных проектов GNOME и используется в postmarketOS, Mobian, ALT Mobile, Droidian, некоторых прошивках для устройств Pine64 и редакции Fedora для смартфонов. Phosh использует композитный сервер Phoc, работающий поверх Wayland, а также собственную экранную клавиатуру. Наработки проекта распространяются под лицензией GPLv3+.
![]() Среди изменений:
| ||
|
Обсуждение (37 +5) |
Тип: Программы |
| ||
| · | 06.04 | Arch Linux перевёл iptables на бэкенд nft по умолчанию (74 +10) |
|
Разработчики Arch Linux объявили о переключении инструментария iptables на бэкенд nft, выполняющий трансляцию правил в байткод nftables. Возможность использования классического инструментария сохранена в форме опции, но по умолчанию отныне задействован пакет iptables-nft, предоставляющий утилиты с тем же синтаксисом командной строки. Пакет iptables-nft переименован в iptables, а пакет с классическим iptables в iptables-legacy.
Отмечается, что изменение не повлияет на работу большинства систем, но возможно нарушение функциональности, завязанной на нетипичные расширения xtables и поведение, свойственное старому iptables. Для восстановления правил после замены реализации iptables следует проверить файлы /etc/iptables/iptables.rules.pacsave и /etc/iptables/ip6tables.rules.pacsave. Пользователям рекомендуют внимательно оценить работоспособность используемых правил межсетевых экранов и при необходимости откатиться на пакет iptables-legacy.
| ||
|
Обсуждение (74 +10) |
Тип: К сведению |
| ||
| · | 06.04 | Выпуск Cozystack 1.2, открытой PaaS-платформы на базе Kubernetes (7 +3) |
|
Доступен выпуск свободной PaaS-платформы Cozystack 1.2, построенной на базе Kubernetes. Проект нацелен на предоставление готовой платформы для хостинг-провайдеров и фреймворка для построения частных и публичных облаков. Платформа устанавливается напрямую на серверы и охватывает все аспекты подготовки инфраструктуры для предоставления управляемых сервисов. Cozystack позволяет запускать и предоставлять кластеры Kubernetes, базы данных и виртуальные машины. Код платформы доступен на GitHub и распространяется под лицензией Apache-2.0.
Платформа включает свободную реализацию сетевой инфраструктуры (fabric) на базе Kube-OVN, и использует Cilium для организации сервисной сети, MetalLB для анонса сервисов наружу. Хранилище реализовано на LINSTOR, где предлагается использование ZFS в качестве базового слоя для хранилища и DRBD для репликации. Имеется преднастроенный стек мониторинга на базе VictoriaMetrics и Grafana. Для запуска виртуальных машин используется технология KubeVirt, которая позволяет запускать классические виртуальные машины прямо в контейнерах Kubernetes и уже имеет все необходимые интеграции с Cluster API для запуска управляемых Kubernetes-кластеров внутри "железного" Kubernetes-кластера. В рамках платформы можно по клику разворачивать Kafka, FerretDB, PostgreSQL, Cilium, Grafana, Victoria Metrics и другие сервисы. Главные нововведения в Cozystack 1.2.0:
| ||
| · | 05.04 | Возобновлены попытки удаления поддержки процессоров i486 из ядра Linux (248 +28) |
|
Инго Молнар (Ingo Molnar), мэйнтейнер архитектуры x86, механизма блокировок и планировщика задач в ядре Linux, вновь поднял тему прекращения поддержки процессоров i486 в ядре Linux и опубликовал патч, удаляющий опции для сборки ядра с поддержкой процессоров 486DX, 486SX и AMD ELAN (CONFIG_M486, CONFIG_M486SX и CONFIG_MELAN). В примечании указано, что очень мало кто использует современные ветки ядра Linux на устаревших 32-разрядных CPU и не удалось найти ни одного основного дистрибутива, для которого продолжали бы публиковаться пакеты с ядром, собранные с опцией "M486=y".
При этом, из-за сохранения поддержки CPU 486 в ядре приходится держать усложнённый код, эмулирующий некоторые аппаратные операции, такие как CX8 (сравнить и обменять 8 байт) и TSC (счётчик циклов CPU, используемый в планировщике задач). Подобный код время от времени становится источником проблем, разбор которых отнимает у разработчиков время, которое можно было бы потратить c большей пользой. В прошлогоднем обсуждении Линус Торвальдс заявил, что чувствует, что настало время отказаться от поддержки CPU 486 и не видит причин, чтобы продолжать тратить время разработчиков на решение возникающих из-за этих процессоров проблем. До этого Линус поднимал тему удаления поддержки CPU 486 в октябре 2022 года. Поддержка процессоров 386 была удалена из ядра в 2012 году.
| ||
|
Обсуждение (248 +28) |
Тип: К сведению |
| ||
| · | 05.04 | В KDE реализован новый Wayland-протокол для дробного масштабирования и улучшена поддержка Vulkan (138 +12) |
Опубликован очередной еженедельный отчёт о разработке KDE, в котором представлены изменения для ветки KDE Plasma 6.7, релиз которой ожидается в июне. Среди недавно внесённых изменений:
| ||
|
Обсуждение (138 +12) |
Тип: Обобщение |
| ||
| · | 05.04 | Лидером Debian впервые станет женщина. Позиция по верификации возраста в Debian (306 –76) |
|
Андреас Тилле (Andreas Tille), лидер проекта Debian, опубликовал ежемесячный отчёт, в котором пояснил, что не стал в третий раз участвовать в выборах лидера проекта, чтобы стимулировать других участников выдвигать свои кандидатуры. В итоге, на пост лидера в этом году претендует только один кандидат -
Шрути Чандран (Sruthi Chandran), участница из Индии. Голосование началось вчера и продлится до 17 апреля, но результат уже предрешён, маловероятно, что большинство участников проголосуют "против всех".
Шрути подключилась к проекту в 2016 году и принимала участие в поддержке 194 пакетов, среди которых пакеты c библиотеками для Ruby, Node.js и Go, а также пакеты со шрифтами. Она также входила в число организаторов конференций DebConf India и DebConf, и является членом команды Outreach, развивающей инициативы по обучению новичков и привлечению в проект женщин и меньшинств. Планы Шрути на посту лидера касаются поддержки разнообразия в сообществе, делегирования части решаемых лидером задач на 1-2 помощников для повышения эффективности работы, создания для студентов структурированного курса по Debian, организации предустановки Debian на ноутбуки, работы над более доброжелательной манерой общения в сообществе и содействия участникам, предлагающим новые идеи и процессы по усовершенствованию Debian. В планах также упоминается создание более простого, чем общее голосование разработчиков (GR, General Resolution) процесса принятия решений для утверждения мелких повседневных вопросов, для которых общее голосование избыточно.
Во второй части отчёта Андреас Тилле поделился мнением о реализации требований законов по интеграции в операционные системы API для проверки возраста, принятых в некоторых штатах США и в Бразилии. Отмечается, что ситуация с применимостью данных законов к некоммерческому проекту, развиваемому добровольцами и распространяемому бесплатно, пока остаётся неясной - реализация мер для соответствия дистрибутива данным законам находится на стадии обсуждения разработчиками и юридической оценки организацией SPI (Software in the Public Interest). Предполагается, что обязательства по выполнению законов в первую очередь затрагивают дистрибьюторов и коммерческие компании, создающие продукты на основе Debian. Проект Debian готов интегрировать возможности, необходимые для выполнения требований законов в производных дистрибутивах, но данная функциональность будет опциональной и не будет навязываться пользователям из стран без подобных законов. Добавление API для запроса приложениями информации о возрасте пользователя также обсуждается разработчиками дистрибутивов Ubuntu, Fedora, Linux Mint и NixOS. Конкретные решения ещё не приняты, но рассматривается возможность реализации необходимого API. В systemd уже принято изменение, добавляющее в userdb поле birthDate с датой рождения пользователя, а в утилиту homectl опцию "--birth-date' для установки возраста. Добавленное поле сможет использоваться в развиваемом для дистрибутивов портале xdg-desktop-portal и сервисе AccountsService для выдачи приложениям сведений о возрастной категории пользователя через D-Bus интерфейс "org.freedesktop.AgeVerification1" или "org.freedesktop.ParentalControls".
| ||
|
Обсуждение (306 –76) |
Тип: К сведению |
| ||
| · | 04.04 | Выпуск MidnightBSD 4.0.4 с инструментарием для верификации возраста (58 –40) |
|
Состоялся релиз десктоп-ориентированной операционной системы MidnightBSD 4.0.4, основанной на FreeBSD с элементами, портированными из DragonFly BSD, OpenBSD и NetBSD. Базовое десктоп-окружение построено на основе Xfce (опционально можно установить связку GNUstep + Window Maker + GWorkspace). В отличие от других десктоп-сборок FreeBSD, ОС MidnightBSD изначально развивалась как форк FreeBSD 6.1-beta, который в 2011 году был синхронизирован с кодовой базой FreeBSD 7 и впоследствии вобрал в себя многие возможности из веток FreeBSD 9-13. Для управления пакетами в MidnightBSD задействована система mport, которая использует БД SQLite для хранения индексов и метаданных, или инструментарий Ravenports. Для загрузки подготовлен установочный образ размером 1 ГБ (i386, amd64).
В новом выпуске:
| ||
|
Обсуждение (58 –40) |
Тип: Программы |
| ||
| · | 04.04 | В ядре Linux 7.0 выявили регрессию, в два раза снижающую производительность PostgreSQL (100 +52) |
|
Инженер из компании Amazon выявил регрессию, специфичную для ядра Linux 7.0, релиз которого ожидается 13 апреля. Изменение настроек планировщика задач привело к существенному снижению пропускной способности и отзывчивости при работе СУБД PostgreSQL на системах с архитектурой ARM64. При использовании ядра 7.0 показатели производительности при прохождении теста pgbench "simple-update" снизились почти в два раза - с 98565 до 50751.
Замедление вызвано изменением режима вытеснения (preemption) в планировщике по умолчанию с PREEMPT_NONE на PREEMPT_LAZY на архитектурах, поддерживающих такой режим, из-за чего в пользовательском пространстве PostgreSQL стал тратить 55% времени CPU на вызов s_lock(). Для решения проблемы предложено вернуть по умолчанию режим PREEMPT_NONE и убрать его привязку к настройке ARCH_NO_PREEMPT. Питер Зейлстра (Peter Zijlstra), автор изменений, из-за которых возникла регрессия, и мэйнтейнер планировщика задач и связанных с блокировками подсистем ядра, заявил, что исправление нужно вносить в код PostgreSQL. Для устранения падения производительности он посоветовал задействовать в PostgreSQL недавно добавленное в ядро расширение "rseq slice" (Restartable Sequences) для ограничения вероятности вытеснения держателя блокировки. Пока не ясно какое решение примет Линус Торвальдс, который придерживается правила, что ядро не должно ухудшать работу и ломать совместимость с пространством пользователя. С одной стороны ядро 7.0 находится на финальной стадии тестирования перед релизом и откат настроек планировщика может привести к другим регрессиям, а с другой стороны пользователи могут столкнуться с двухкратным снижением производительности одной из самых популярных СУБД.
| ||
|
Обсуждение (100 +52) |
Тип: Тема для размышления |
| ||
| · | 04.04 | Атаки GDDRHammer и GeForge, искажающие память GPU для доступа ко всей памяти CPU (63 +27) |
|
Исследователи из нескольких университетов США и Австралии разработали две атаки класса Rowhammer - GDDRHammer и GeForge, позволяющие при выполнении непривилегированного ядра CUDA на GPU NVIDIA добиться искажения отдельных битов в чипах видеопамяти GDDR. В отличие от представленного в прошлом году метода GPUHammer, новые атаки не ограничиваются воздействием на данные, обрабатываемые в памяти GPU, а позволяют получить полный доступ ко всей основной памяти, относящейся к адресному пространству CPU. Исследователями продемонстрированы эксплоиты, предоставляющие root-доступ к основной системе при выполнении непривилегированного CUDA-ядра на GPU.
Обе атаки добиваются преждевременной потери заряда в определённых ячейках видеопамяти, к которым у атакующих нет прямого доступа, что приводит к изменению хранящихся в этих ячейках битов. Возможность чтения и записи в память, относящуюся к адресному пространству CPU, реализована путём вмешательства в работу аллокатора памяти GPU (cudaMalloc) для нарушения изоляции памяти GPU и отображения виртуальных адресов GPU в произвольные адреса физической памяти GPU или CPU. Вмешательство осуществляется через искажение значений битов в видеопамяти, в которой хранятся таблицы страниц памяти GPU, отвечающие за трансляцию виртуальных адресов в физические. Отличия между атаками GDDRHammer и GeForge сводятся к тому, что метод GDDRHammer модифицирует таблицу страниц последнего уровня (PT - Last Level Page Table), а метод GeForge - каталог страниц последнего уровня (PD0 - Last Level Page Directory). Среди прочего указанные таблицы трансляции адресов используются для организации прямого доступа GPU к памяти CPU, поэтому изменение адреса в таблице страниц GPU на физический адрес в основной оперативной памяти и выставление флага APERTURE, включающего режим маппинга памяти CPU, дают возможность читать и записывать данные c обращением к основной памяти через шину PCIe при отключённом IOMMU (по умолчанию отключён). ![]() ![]() Успешные атаки продемонстрированы для высокопроизводительных профессиональных видеокарт NVIDIA RTX A6000 на базе микроархитектуры Ampere (стоимость новых карт начинается с $6850, а подержанных - с $4000) и бытовых моделей NVIDIA RTX 3060 ($250-300). Разработанная техника обхода защиты от Rowhammer в сочетании с задействованием предоставляемых в GPU средств распараллеливания операций позволила в 64 раза увеличить частоту возникновения искажения ячеек по сравнению с прошлыми атаками. В качестве временной меры для блокирования атак командой "nvidia-smi -e 1" может быть включён режим коррекции ошибок ECC (Error Correcting Codes), но он приводит к дополнительным накладным расходам и потенциально может быть обойдён, используя такие методы атак, как ECCploit и ECC.fail.
Атака RowHammer позволяет исказить содержимое отдельных битов памяти DRAM путём цикличного чтения данных из соседних ячеек памяти. Так как память DRAM представляет собой двухмерный массив ячеек, каждая из которых состоит из конденсатора и транзистора, выполнение непрерывного чтения одной и той же области памяти приводит к флуктуации напряжения и аномалиям, вызывающим небольшую потерю заряда соседних ячеек. Если интенсивность чтения большая, то соседняя ячейка может потерять достаточно большой объём заряда и очередной цикл регенерации не успеет восстановить её первоначальное состояние, что приведёт к изменению значения сохранённых в ячейке данных. Метод атаки Rowhammer был предложен в 2014 году, после чего между исследователями безопасности и производителями оборудования началась игра в "кошки-мышки" - производители чипов памяти пытались блокировать уязвимость, а исследователи находили новые способы обхода блокировок. Например, для защиты от RowHammer производители чипов добавили механизм TRR (Target Row Refresh), но оказалось, что он блокирует искажение ячеек лишь в частных случаях, но не защищает от всех возможных вариантов атаки. Методы атаки были разработаны для чипов DDR3, DDR4 и DDR5 на системах с процессорами Intel, AMD и ARM, а также для GDDR-памяти GPU NVIDIA. Помимо этого были найдены способы обхода коррекции ошибок ECC и предложены варианты совершения атаки по сети и через выполнение JavaScript-кода в браузере. Дополнение: Представлена похожая атака GPUBreach, по своей сути аналогичная атакам GDDRHammer и GeForge, но разработанная другой группой исследователей и работающая при включённом IOMMU.
| ||
|
Обсуждение (63 +27) |
Тип: Проблемы безопасности |
| ||
| Следующая страница (раньше) >> | ||
|
Закладки на сайте Проследить за страницей |
Created 1996-2026 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |