Линус Торвальдс впервые за долгое время самостоятельно написал патч для ядра Linux — и сделал это с помощью искусственного интеллекта. Баг находился в драйвере Intel Xe для видеокарт Battlemage G21 и вызывал бесконечные перезапуски дисплейного менеджера GDM. На поиск причины ушло 24 отладочных патча и 18 перезагрузок ядра.
Редкий случай: Торвальдс снова пишет код
Торвальдс давно отошёл от написания кода ядра и работает в режиме мейнтейнера: ревьюит патчи и принимает pull request от контрибьюторов. Поэтому его собственный патч — событие само по себе необычное. Однако использование ИИ для него уже не новость: ещё в прошлые новогодние праздники он впервые применил ИИ в личном хобби-проекте. Тогда он признался, что сначала относился к технологии скептически, но со временем принял её, допуская даже ассистированные ИИ правки в проекте ядра.
Однострочный фикс, который искали 18 перезагрузок
Проблема, с которой столкнулся Торвальдс, была в драйвере Intel Xe для видеокарт Battlemage G21. Из-за бага дисплейный менеджер GDM перезапускался бесконечно. Несмотря на кажущуюся простоту итогового решения, поиск корня проблемы занял серьёзное время.
В ходе отладки ИИ выполнял основную черновую работу: добавлял диагностическую инструментовку, запускал анализ и даже написал финальное сообщение коммита. В итоге виновником оказалась одна строка: вместо функции round_up() должна была стоять round_down().
Отладка, по словам Торвальдса, была «из ада», и помощь ИИ оказалась огромной. Но не обошлось без курьёзов: ассистент несколько раз заявлял, что проблема «невозможна и неразрешима». Торвальдс не согласился с этим и продолжил работу. Своё отношение к таким ответам он прокомментировал с иронией: «Подозреваю, что эти модели обучали на людях, которые не такие упрямые, как я».
Кстати, работа над ядром не стоит на месте: в свежем Linux 7.2 появился планировщик с учётом кэша, поддержка HDMI 2.1 для AMD и загрузка на Apple M3. А Canonical финансирует PhD-проект по автоматическому переводу C в Rust для Ubuntu — возможно, скоро часть подобных багов будет отсекаться ещё на этапе компиляции.
ИИ — инструмент, а не замена инженеру
Этот случай хорошо иллюстрирует правильное отношение к ИИ в разработке. Инструмент полезен, когда процессом управляет опытный специалист, понимающий, что происходит. Человек, который просто «виб-кодит» и полностью передоверяет решения ИИ, в этой ситуации получил бы ответ «баг неисправим» и остановился. Торвальдс же смог оценить, где ассистент прав, а где ошибается, настоял на своём и довёл задачу до конца.
Патч войдёт в ядро Linux 7.3 и отмечен для бэкпорта в стабильные ветки. Какая именно модель ИИ использовалась, не сообщается. В личном проекте, где Торвальдс впервые применил ИИ, это был Google Gemini.
Частые вопросы
Какая именно ошибка была в драйвере Intel Xe?
В драйвере для видеокарт Battlemage G21 использовалась функция round_up() там, где должна была быть round_down(). Это приводило к бесконечным перезапускам дисплейного менеджера GDM.
Сколько времени заняла отладка?
Точное время не сообщается, но процесс потребовал 24 отладочных патча и 18 перезагрузок ядра. По словам Торвальдса, отладка была «из ада».
Это первый случай использования ИИ Торвальдсом?
Нет. Впервые он применил ИИ в личном хобби-проекте в прошлые новогодние праздники. С тех пор он допускает использование ИИ и для ассистирования правок в ядре.
В какие версии ядра попадёт исправление?
Патч войдёт в Linux 7.3 и будет перенесён в стабильные ветки ядра.
Какая модель ИИ использовалась?
Неизвестно. В личном проекте Торвальдс использовал Google Gemini, но какая модель помогала в этот раз, не сообщается.
Означает ли это, что Торвальдс вернулся к написанию кода?
Нет. Это разовый случай. Торвальдс по-прежнему работает в режиме мейнтейнера: ревьюит и принимает патчи от контрибьюторов.
Чем этот случай полезен обычному разработчику?
Он показывает, что ИИ — это инструмент, который ускоряет рутинную работу, но не заменяет понимания кода. Без опыта и упорства инженера ассистент мог бы просто сдаться и назвать баг неисправимым.
Источник: itsfoss.com