AI как инструмент реверс-инжиниринга сборки
Разработчик из ARM Lorenzo Stoakes представил серию из 23 патчей, направленных на устранение однопоточных узких мест в процессе компиляции Linux-ядра. Ключевая инновация заключается в использовании Large Language Model (LLM) для анализа кода Kbuild, kallsyms, modpost, objtool, mksysmap и системы сборки Rust. ИИ не просто генерировал код, но и оркестровывал запуски сборки, тестирование и отладку.
Сам разработчик честно отмечает, что модель сгенерировала «множество уродливого кода» (hideous code), который потребовал тщательной ручной проверки, переписывания и аудита. Однако именно AI помог выявить скрытые блокировки, которые человек мог бы пропустить при стандартном анализе.
Конкретные метрики ускорения
Результаты оптимизации варьируются в зависимости от типа сборки и конфигурации ядра. Наибольший прирост производительности наблюдается на инкрементальных и noop-сборках, где устранение задержек в однопоточных задачах дает максимальный эффект.
| Тип сборки | Прирост скорости | Примечание |
|---|---|---|
| Noop-сборка | ~90% | Максимальное ускорение за счет параллелизма |
| Инкрементальная сборка | до 70% | Быстрое обновление измененных модулей |
| Полная сборка (все модули) | ~36% | Значительное сокращение общего времени компиляции |
Процесс интеграции и безопасность
Несмотря на активное участие AI, финальная ответственность лежит на разработчике. Lorenzo Stoakes лично проверил корректность как процесса сборки, так и работы сгенерированных ядер. Каждый коммит в серии патчей содержит тег Assisted-by, что обеспечивает прозрачность использования ИИ в разработке ядра.
Патчи уже отправлены на рассмотрение в мейнлайн. Если они будут приняты, это станет одним из первых крупных примеров успешного применения LLM для оптимизации критически важных системных компонентов Linux, а не просто для генерации boilerplate-кода.
Источник: Phoronix ↗
