tenzorНачать
Все статьи

Линус Торвальдс написал патчи ядра Linux с помощью ИИ

Линус Торвальдс, создатель Linux и главный мейнтейнер ядра, рассказал на прошедшем саммите мейнтейнеров, что решал давнюю проблему ядра вместе с языковой моделью. Результат он отправил в рассылку ядра на рецензию. 14 октября об этом написал LWN, главное издание о разработке Linux.

Пингвин и окно чата с кодом рядом

Коротко. Серия из десяти патчей ускоряет поиск и чтение страниц памяти в ядре. На тесте с большим количеством вызовов read() прирост получился на порядок. Через несколько дней рецензенты нашли в коде состояние гонки, так что серию придётся дорабатывать. Какой моделью пользовался Торвальдс, в публикации не сказано.

Что Торвальдс сделал с помощью ИИ

Проблема касается того, как ядро находит в памяти данные файлов. Ядро хранит их группами страниц, которые называются фолио (folio). Когда программа читает файл, ядро ищет нужную фолио и на время чтения «берёт» её через счётчик ссылок, чтобы память не освободили посреди работы. На каждом чтении это лишняя работа, и на горячих файлах она становится заметной.

Патчи Торвальдса помечают часто используемые фолио как «горячие». Освобождение такой фолио откладывается до конца периода RCU. RCU (read-copy-update) устроен так, что читатели работают без блокировок, а память освобождается только после того, как все текущие читатели закончили. В итоге под защиту RCU попадает не только поиск фолио, но и само чтение данных. Если копирование в программу проходит без ошибки страницы, счётчик ссылок вообще не трогается.

Схема: горячая страница памяти, чтение без блокировки

Насколько это ускорило Linux

На тесте, который в основном состоит из вызовов read(), серия дала ускорение примерно в десять раз. Это синтетический замер: на реальной нагрузке прирост будет зависеть от того, как часто программа читает одни и те же файлы. Сам Торвальдс назвал серию «довольно короткой».

ЧтоЗначение
Число патчей10
Что ускоряетсяпоиск и чтение фолио (страниц файлов в памяти)
Прирост на тесте read()примерно в 10 раз
Статусна рецензии, найдена гонка
Модельне названа

Почему рецензенты нашли ошибку

Вскоре после публикации в рассылке один из рецензентов указал на состояние гонки: ситуацию, когда два потока одновременно работают с одними данными, и результат зависит от того, кто успел первым. В коде, который обходится без блокировок, такие ошибки найти труднее всего. Тесты их часто не ловят, потому что гонка проявляется редко и случайно.

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

Лупа над строкой кода с пометкой «гонка»

Что это значит для тех, кто пишет код с ИИ

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

Отсюда простое правило для своих проектов. ИИ хорошо ускоряет написание кода, но проверка остаётся на вас, особенно там, где есть многопоточность, работа с памятью и деньги. Просите модель отдельно поискать гонки и граничные случаи. Пишите тесты на конкурентный доступ. И не мержите код, который сами не можете объяснить.

Частые вопросы

Правда ли, что Линус Торвальдс пользуется ИИ?+

Да. По данным LWN, он рассказал на саммите мейнтейнеров ядра, что сделал серию из десяти патчей с помощью языковой модели, и отправил её на рецензию в октябре 2026 года.

Какой нейросетью пользовался Торвальдс?+

В публикации LWN модель не названа.

Что ускоряют патчи Торвальдса?+

Поиск и чтение страниц файлов в памяти (фолио). На тесте с большим числом вызовов read() прирост получился примерно в десять раз.

Приняли ли патчи в ядро Linux?+

Пока нет. Рецензенты нашли в коде состояние гонки, и серию нужно доработать.

Источник: LWN, «Torvalds's first LLM-assisted patch series».

Что дальше почитать

Разберите свой код с нейросетью

Попросите модель найти гонки и граничные случаи. ИИ-чат на русском, без VPN.

Открыть чат