Asystenci programistyczni oparte na sztucznej inteligencji coraz częściej trafiają do codziennej pracy deweloperów, jednak rzadko kiedy ich wpływ dotyczy samego serca systemów operacyjnych. Tym razem narzędzie AI pomogło rozwiązać realny problem w jądrze Linuksa i doprowadziło do powstania poprawki, która wkrótce może trafić do stabilnego wydania systemu.
Sprawa dotyczy prac nad interfejsem io_uring oraz błędu powodującego zawieszanie się maszyn wirtualnych. W proces zaangażowany był jeden z kluczowych deweloperów społeczności open source.
Jens Axboe i problem z io_uring
Jak opisał serwis Phoronix, Jens Axboe, główny programista projektu io_uring, wykorzystał asystenta AI do analizy trudnego do wykrycia błędu. io_uring to mechanizm asynchronicznych operacji wejścia i wyjścia w jądrze Linuksa, wprowadzony w wersji 5.1 w 2019 roku. Odpowiada za wydajne przetwarzanie operacji dyskowych i sieciowych.
Axboe zauważył, że podczas uruchamiania io_uring w środowisku wirtualnym pojawiały się chwilowe zawieszenia przy pracy z urządzeniami AHCI i SCSI. Problem nie występował w przypadku nowoczesnych nośników NVMe, co utrudniało jego jednoznaczną diagnozę.
Analiza doprowadziła do wykrycia nieoczekiwanego zachowania w jednej z pętli przetwarzania zdarzeń w QEMU. Wywołanie funkcji ppoll() mogło blokować wykonanie nawet na 500 milisekund. W kontekście operacji I/O to bardzo odczuwalne opóźnienie.
Claude w akcji
Axboe zdecydował się skorzystać z modelu Claude, rozwijanego przez Anthropic. Nazwa modelu nawiązuje do postaci Claude Shannon, twórcy teorii informacji. Claude należy do rodziny dużych modeli językowych i jest projektowany jako asystent wspierający analizę kodu oraz dokumentacji.
Według relacji dewelopera, AI pomogła mu prześledzić zależności w kodzie i zrozumieć mechanizm prowadzący do blokowania maszyny wirtualnej. W trakcie eksperymentów doszło do awarii środowiska testowego, jednak ostatecznie udało się ustabilizować system i wypracować rozwiązanie.
Efektem współpracy były dwie poprawki. Pierwsza usuwała główną przyczynę problemu, druga wprowadzała drobne usprawnienie. Najbardziej zaskakujący okazał się fakt, że kluczowa zmiana sprowadzała się do jednej linii kodu. Axboe ocenił, że w określonych scenariuszach poprawka może przynieść od 50- do 80-krotnej poprawy wydajności po stronie io_uring.
AI w świecie Linuksa: od sceptycyzmu do pragmatyzmu
W środowisku open source stosunek do narzędzi AI bywa ambiwalentny. Część projektów ogranicza ich wykorzystanie, wskazując na kwestie licencyjne oraz jakość generowanego kodu. Przykładem jest decyzja twórców dystrybucji Gentoo o odejściu od platformy GitHub i rezygnacji z narzędzi AI w procesie rozwoju. Podobnie Projekt GNOME oficjalnie zaostrzył zasady dotyczące rozszerzeń powłoki, wprowadzając zakaz publikowania kodu generowanego przez sztuczną inteligencję w Bibliotece Rozszerzeń GNOME.
Jednocześnie rośnie liczba programistów, którzy traktują modele językowe jako wsparcie analityczne, a nie generator gotowych fragmentów kodu. W tym kontekście przypadek Axboe jest szczególny, ponieważ dotyczy rdzenia systemu operacyjnego używanego na milionach serwerów i urządzeń.
Torvalds testuje AI
Interesującym tłem dla tej historii jest stanowisko samego twórcy Linuksa. Linus Torvalds przyznał niedawno, że korzysta z modeli językowych przy pracy z językiem Python. Nie ukrywał zadowolenia z rezultatów, choć podkreślał, że traktuje AI jako narzędzie pomocnicze.
Jeśli poprawki autorstwa Axboe przejdą pełny proces akceptacji i trafią do stabilnej gałęzi jądra, będzie to jeden z pierwszych przypadków, gdy sieć neuronowa realnie przyczyniła się do optymalizacji krytycznego komponentu systemu Linux.
Spodobało Ci się? Podziel się ze znajomymi!
Pokaż / Dodaj komentarze do:
AI naprawiła błąd w jądrze Linuksa. Jedna linijka zmieniła wszystko