Линус Торвальдс написал ускоряющий патч для Linux вместе с Claude Code
Создатель Linux Линус Торвальдс открыто подключил ИИ-ассистента к работе над ядром. В его личном репозитории появилась ветка с говорящим названием noref-filemap-read-with-llm, где сокращение LLM в конце указывает на участие языковой модели. Ветку в ночь на 12 октября по московскому времени заметил Майкл Ларабел, редактор издания Phoronix, пока ждал выхода Linux 7.3-rc7. Обычно Торвальдс держит в этом репозитории только основную ветку.
Раздел Tools в письме Торвальдса
К патчам приложено сопроводительное письмо с коротким разделом Tools. В нём Торвальдс перечислил, что именно сделал Claude Code, агент Anthropic для программирования.
«Код, тестовые программы, анализ, на котором построен список открытых проблем, и первый черновик этого текста сделаны ИИ-ассистентом для программирования ( Claude Code ) под моим руководством. Замеры проводились на моей машине»,
- написал Линус Торвальдс.
Для Торвальдса это заметный поворот. В мае он жаловался, что поток сгенерированных ИИ отчётов об ошибках сделал рассылку по безопасности ядра почти неуправляемой. В июле Торвальдс уже защищал ИИ-инструменты от критиков внутри проекта и говорил, что Linux не задумывался как проект против ИИ. Вне ядра он и раньше программировал с Google Antigravity, а нейросети помогали ему с отладкой.
Восемь потоков спорят за счётчик
Патчи Торвальдса меняют работу кеша страниц. Так называется область оперативной памяти, где Linux держит недавно прочитанные куски файлов, чтобы не обращаться к диску повторно. При каждом чтении ядро ставит на блок памяти метку «этот кусок сейчас используется» и снимает её после копирования данных.
Пока файл читает одна программа, метка почти ничего не стоит. Когда один и тот же файл читают много потоков сразу, все они меняют один и тот же счётчик, и ядра процессора без конца перебрасывают его друг другу. На это узкое место в Linux ещё в 2024 году указывал разработчик подсистемы памяти Мэттью Уилкокс.
Claude Code по заданию Торвальдса убрал метку из этого сценария. Чтобы данные не исчезли из-под читающего потока, освобождение памяти откладывается до момента, когда ядро уверено, что все прежние читатели закончили работу. На случай, если отложенных страниц накопится слишком много, два патча добавляют страховку. Как только у одного процессора в очереди оказывается больше 1024 страниц, ядро принудительно запускает очистку.
Втрое больше чтений на ноутбуке
Все замеры Торвальдс сделал на ноутбуке с процессором Intel Core i7-8565U (четыре ядра, восемь потоков) и отключённой защитой от уязвимостей процессора. Главные цифры патчей для сценария, где восемь потоков читают один файл:
- Работа ядра — около 725 тактов процессора на одно чтение вместо примерно 2950;
- Пропускная способность — 30–33 млн чтений в секунду вместо 9,9–10,4 млн;
- Конфликты за кеш процессора — 101 событие вместо 30 538;
- Один поток — чтение подешевело примерно на 10%.
Есть и обратный эффект. Одиночное чтение 16 байт в страницу, которая ещё не подключена к памяти программы, замедлилось примерно с 4150 до 6550 тактов. Ранняя версия серии из шести патчей в стресс-тесте на виртуальной машине с 2 ГБ памяти доводила дело до срабатывания OOM killer, механизма Linux, который при нехватке памяти принудительно завершает процессы. Сбой случался на четырёх и восьми процессорах. Полная серия из восьми патчей этот тест прошла.
Слабое место назвал сам Торвальдс
Торвальдс не выдаёт работу за готовую. Отложенное освобождение памяти он в письме называет наименее решённой частью серии. Пока память ждёт своей очереди, ею никто не может воспользоваться, и именно об этом риске раньше предупреждал Уилкокс.
Второе ограничение касается железа. Торвальдс рассчитывает, что большие многопроцессорные серверы выиграют от патчей сильнее ноутбука, но на таких машинах серию никто не запускал. Судьбу изменений в Linux решат сопровождающие подсистемы памяти и тот, кто повторит замеры на серверах с десятками ядер. Phoronix допускает, что ветка может попасть в ближайшее окно приёма изменений для Linux 7.4, но сам Торвальдс сроков не называл.
Метка LLM в названии ветки
Подход Торвальдса годится как образец для всех, кто пишет код с Claude Code или другим агентом. Участие ИИ видно уже по имени ветки и описано в письме отдельным разделом. Замеры автор провёл сам на своей машине, а спорные места вынес в список открытых проблем. Такой отчёт экономит время рецензента и снимает вопрос, кто отвечает за код.
Claude Code сдаёт экзамен в ядре
Для Anthropic упоминание Claude Code в письме Торвальдса весит больше любой рекламной кампании. Ядро Linux остаётся одним из самых строгих проектов по проверке кода, и автор ветки здесь сам Линус. Экзамен пока не сдан. Настоящей проверкой станет реакция сопровождающих подсистемы памяти и замеры на серверах. Если патчи войдут в Linux 7.4, код, написанный ИИ под присмотром человека, со временем доберётся до миллионов серверов.