Koniec wyczekiwania – Linux Kernel 5.2

Zapowiadany od dłuższego czasu i nie mniej niecierpliwie wyczekiwany – oto w końcu jest. Linux 5.2, czyli kernel w najczystszej postaci. Nie jest to wydanie rewolucyjne. Ale w porównaniu do niego kilka poprzednich wersji kernela może posłużyć za wzór stagnacji.

Linus Torvalds postanowił nie przedłużać całego procesu i zamiast RC8 udostępnił społeczności kernel 5.2. Podyktowane zostało to nikłą aktywnością i kosmetycznych zmianami w ostatnich pracach nad kodem źródłowym. Dlatego już teraz możemy się cieszyć z możliwości jakie stwarza nowy kernel oraz wyczekiwać go w repozytoriach naszych dystrybucji.

Zmian jest sporo i różnego kalibru. Nie da się uniknąć wrażenia, że po raz kolejny pochylono się nad tematem wydajności. Niemałe osiągnięcia poczyniono na tym polu dzięki porzuceniu lub wycofywaniu starych rozwiązań (Legacy IDE), obsłudze nowych urządzeń (grafika ARM Mali, procesor Intel Comet Lake) aż po optymalizację wewnętrznych procedur (x86 FPU, poprawione I/O zarządcy BFQ).

Tyle w skrócie. A coś więcej?

Znaczne przyśpieszenie BFQ I/O

Kilka optymalizacji w zarządcy BFQ skutkuje tym, że 5.2 obsłuży uruchamianie nowych programów nawet do 80% szybciej niż do tej pory. Zyskuje na tym również responsywność całego systemu.

Sound Open Firmware

Otwarte firmware dla kart muzycznych, czyli inicjatywa Google i Intela w praktyce. Do tego wydania dodano obsługę takich produktów Intela jak Baytrail, CherryTrail, Broadwell, ApolloLake, GeminiLake, CannonLake oraz IceLake.

Nowe sterowniki graficzne dla ARM Mali

Dwa nowe sterowniki dla urządzeń ARM Mali, które powstały dzięki staraniom społeczności i wbrew „zamkniętemu” charakterowi ARM GPU.

Zmienione API dla mount

Odpowiedzialna za montowanie zasobów funkcja systemowa mount(2) przeszła solidny lifting. Od teraz bardziej sprawdza się we współczesnych realiach i posiada więcej możliwości. Stworzono również kolejne funkcje wspomagające powyższe: fsopen(2), fsconfig(2), fsmount(2), move_mount(2), fspick(2) i open_tree(2).

Opcjonalne wyszukiwanie w ext4 bez uwzględniania wielkości liter

Nowa opcja dla systemu pliku do ustawienia w superbloku. Parametr pozwala na zaniechanie rozróżniania małych/dużych znaków podczas wyszukiwania i raz ustawiony jest dziedziczony przez pozostałe podkatalogi.

Rozwinięcia cgroups v2

Znana dotychczas z cgroup v1 implementacja „mrożenia” zadań dla danego cgroup (i tym samym uwolnienie zasobów dla innych cgroups – cpu, io, sieć, pamięć, itp.). Cgroup v2 nie posiadało do tej pory takiej możliwości.

Poprawki dla MDS i innych uchybień w konstrukcji procesorów

W 5.2 zawarto poprawki dla zagrożenia Microarchitectural Data Sampling (MDS). Z racji coraz większej ilości wykrywanych podatności w różnych konstrukcjach, wprowadzono parametr kernela mitigations= – pozwala określić, które poprawki i dla jakich konstrukcji mają zostać uwzględnione po uruchomieniu kernela.

Całe garści nowych sterowników i poprawek do istniejących

Nouveau ze wsparciem dla GeForce GTX 1650 (TU117), poprawki dla An ATI Radeon X1000 (R500), obsługa Intel Comet Lake i wiele, wiele innych.

Wobec powyższego ciężko nie uznać kernela 5.2 za wyjątkowo udany. Hurraoptymizm studzi nieco fakt, że w przypadku poważniejszych zastosowań lepiej zaczekać na wydanie 5.2.1 – które będzie zawierało poprawki do poprawek.

Sam kod źródłowy kernela możemy pobrać z tego archiwum