Linux 6.1 – Rust w końcu oficjalnie w kernelu
Ukazała się już nowa wersja jądra Linux, o której bez przesady można powiedzieć, że będzie najważniejszą w ciągu ostatnich miesięcy. Linux 6.1 jest inicjuje bowiem implementację kodu w języku Rust. Lecz to nie jedyne nowości.
Obsługa nowego sprzętu w Linuksie 6.1
Jak już wspomniano, najważniejszą nowością w Linuksie 6.1 jest bez dwóch zdań wstępna implementacja obsługi Rusta, ale to nie oznacza, że nie pojawiły się tradycyjnie nowości w sterownikach. Zanim przejdziemy do Rusta, warto omówić nowości, które Linux 6.1 wnosi nowości w obsłudze procesorów, układów graficznych, jak i pamięci i innych peryferiów.
Wśród nowości w popularniejszych na rynku konsumenckim procesorów pojawiła się optymalizacja w dekodowaniu cache, a to za sprawą dużej aktualizacji sterownika Error Detection And Correction (EDAC). Przygotowano także coś dla posiadaczy układów AMD – w Linuksie 6.1 pojawił się sterownik dla AMD Platform Managment Framework (PMF), co ma przyłożyć się na lepsze zarządzanie energią, ciepłem oraz ogólną ergonomię pracy nowych układów Czerwonych. Jak zwykle wydłużono także listę obsługiwanych układów ARM.
Nieco skromniej prezentuje się natomiast lista zaktualizowanych sterowników dla układów graficznych. Skupiono się na usprawnieniu obsługi grafiki zintegrowanej z układami Intel Meteor oraz dopracowano różne aspekty obsługi firmware Intela, podobnie jak ulepszono obsługę nowych grafik Arc produkowanych przez Intela. Pomniejsze usprawnienia, przede wszystkim w obsłudze GPU z serii RDNA2 i RDNA3, dodano także w zakresie obsługi AMD.
Rust w Linuksie 6.1
Trzeba przyznać, że Rust w Linuksie 6.1 to dopiero zalążek, początek drogi. Biorąc pod uwagę zmiany zaproponowane w mainlinie, jesteśmy na etapie, gdy raczej buduje się infrastrukturę, do tego, by faktycznie pisać sterowniki. Wnioski te można wyciągnąć choćby z wpisu opublikowanego na łamach LWN.net – można się dowiedzieć z niego między innymi o konfliktach wynikających z wersjonowania. Słowem – wprowadzenie Rusta do Linuksa jest dla zespołu prowadzonego przez Linusa Torvaldsa nie lada wyzwaniem.
Zobacz też: Linus Torvalds wyjaśnia, dlaczego w Linuksie nadal nie ma Rusta
Niemniej Rust w Linuksie stał się faktem. Niechęć Torvaldsa do języka C++ sprawił, że jest to pierwszy nowy język, który trafi od kernela od ponad 30 lat. Przełożyć ma się to przede wszystkim na bezpieczeństwo – dzięki mechanizmowi obsługi pamięci operacyjnej w C powstawały liczne podatności, które dzięki Rustowi ma się udać wyeliminować. Rzecz jasna jeszcze wiele wody upłynie, zanim Rust faktycznie zacznie czynić różnicę, niemniej przykład Androida pokazuje, że działania na rzecz porzucenia C i C++ w programowaniu systemowym mają sens.
Inną godną odnotowania nowością w samym jądrze jest dodanie wstępnej obsługi algorytmu stronicowania Multi-Gen Least Recently (MGLRU). Domyślnie jest on wyłączony, ale już z kolejnym wydaniem możemy oczekiwać wzrostów wydajności w obsłudze pamięci cache, co ma być odczuwalne przede wszystkim na maszynach z ograniczonymi zasobami. W parze z MGLRU w Linuksie pojawiła się obsługa nowej struktury danych nazywanej Maple Tree.
Linux 6.1 i walka z regresją
Nie samym Rustem żyje człowiek. Nachodząca wersja Linuksa oznacza oczywiście także rozszerzenie listy obsługiwanego sprzętu, ale też optymalizacje. W opublikowanym właśnie ósmym realease candidate udało się bowiem wyeliminować znaczące błędy w obszarze regresji występujące podczas budowania jądra. Co ciekawe, według zapewnień Linusa Torvaldsa dokonano tego, modyfikując zaledwie trzy linijki linuksowego kodu.
Problem leżał, a jakże, w obsłudze pamięci operacyjnej, a konkretniej w mechanizmie Transparent HugePage (THP) wykorzystywanym w mapowaniu pamięci. Według jednego z benchmarków opracowanych przez Intela w niektórych obciążeniach badających skalowalność, udało się zredukować do zera nawet 95-procentowy spadek wydajności wynikający z regresji.
Dotyczy to jednak przede wszystkim procesorów serwerowych oraz konsumenckich z najwyższej półki. Na przykład czas budowania jądra na stacji roboczej wyposażonej w układ AMD Threadripper 3990X, procesor warty ponad 20 tys. zł, skrócił się z 3 godzin do 2 godzin 20 minut. Trudno oczekiwać, że będą to zmiany odczuwalne dla każdego.
Co z Linuksem 6.2?
Linus Torvalds, decydując się na opublikowanie Linuksie 6.1, otwiera jednocześnie tzw. merge window, czyli okresu, w jakim można zgłaszać swoje propozycje zmian do kolejnej wersji. Zwraca on na problematyczność terminów – merge window zakończy się w środku okresu świątecznego, co może być powodem opóźnień.
Jak dotąd jedną z proponowanych nowości jest dodanie obsługi sterownika dla Human Presence Sensora dostępnego na komputerach z ChromeOS-em, który pozwala na rozpoznawanie, czy użytkownik jest przed komputerem i umożliwia na tej podstawie między innymi oszczędzanie energii. Premiery Linuksa 6.2 może się na przełomie stycznia i lutego.