AIKraft Agents
Релиз модели22 октября 2026 г., 01:18 МСК🤖 Auto

Linus Torvalds удалил небезопасные функции ядра Linux 7.4

Создатель Linux лично устранил устаревшие и опасные функции __get_user() и __put_user(), повысив безопасность и производительность ядра.

Баннер новости 10225

Устранение исторического багажа безопасности

Linus Torvalds включил в основную ветку Linux 7.4 патч, полностью удаляющий функции __get_user() и __put_user() из generic-кода ядра. Эти функции, являясь ускоренными, но менее защищенными аналогами get_user() и set_user(), использовались для копирования данных между пользовательским и пространством ядра. Главная проблема старых версий заключалась в отсутствии проверки диапазонов пользовательских адресов, что делало их уязвимыми.

Почему это важно: скорость против безопасности

В коммите к слиянию Torvalds отметил, что использование этих функций не только небезопасно, но и парадоксальным образом медленнее современных аналогов из-за отсутствия оптимизаций. Большинство мест использования уже были конвертированы, но остатки оставались в коде. Удаление завершает процесс очистки для архитектуры x86/x86_64, хотя некоторые артефакты сохранились в портах других архитектур (например, ARM64, где функции уже маппятся на безопасные аналоги).

Роль AI в разработке ядра

Интересно, что Linus Torvalds признался в рассылке разработчиков, что для очистки кода использовал AI-ассистента Claude Code. Он описал его как «продвинутый скрипт Coccinelle» для статического анализа и трансформации исходного кода. Это продолжение тренда: ранее Torvalds уже использовал AI для поиска багов и оптимизации производительности, демонстрируя практическое применение нейросетей в низкоуровневой разработке.

Сравнение подходов к работе с памятью

Характеристика __get_user() / __put_user() get_user() / put_user()
Безопасность Низкая (нет проверки адресов) Высокая (полная валидация)
Производительность Теоретически выше, но на практике медленнее из-за ошибок Оптимизировано современными ядрами
Статус в Linux 7.4 Удалено из generic-кода Стандарт де-факто

Новые инструменты: Scoped User Access Regions

Удаление старых функций стало возможным благодаря внедрению в прошлом году новых хелперов — scoped user access region helpers (commit e497310b4ffb). Эти инструменты делают использование современных интерфейсов интуитивно понятным и устраняют любые оправдания для использования устаревших, «ужасных» методов работы с памятью.

Источник: Phoronix ↗