Co nowego w jądrze Linux 6.19?
Przegląd
Linux 6.19 to kolejne wydanie pełne istotnych zmian. Od mechanizmu aktualizacji jądra bez restartu maszyn wirtualnych, przez nowe wywołanie systemowe, po znaczące ulepszenia systemów plików i schedulera. Oto najważniejsze nowości.
Live Update Orchestrator (LUO)
Najgłośniejsza nowość tego wydania. LUO to podsystem jądra umożliwiający aktualizację jądra przez kexec z zachowaniem stanu zasobów. W praktyce oznacza to, że maszyny wirtualne mogą kontynuować pracę podczas wymiany jądra hosta z minimalnym przestojem.
To ogromna zmiana dla środowisk chmurowych i wirtualizacji, gdzie dotychczas aktualizacja jądra hosta wymagała migracji lub restartu wszystkich VM.
Nowe wywołanie systemowe: listns(2)
Nowy syscall pozwala na wyliczanie przestrzeni nazw (namespaces) bez skanowania /proc. Oferuje paginację, filtrowanie i sprawdzanie uprawnień. Jest to znacznie wydajniejsze podejście niż dotychczasowe parsowanie procfs, szczególnie w systemach z tysiącami kontenerów.
Systemy plików
Btrfs
- Shutdown ioctl — eksperymentalna obsługa kontrolowanego wyłączania systemu plików
- Async checksum — równoległe obliczanie sum kontrolnych (lepsza wydajność)
- Ulepszenia scrub — zawieszanie i wznawianie scrub/device replacement z zachowaniem stanu
- Przygotowania pod fscrypt — prace nad szyfrowaniem na poziomie systemu plików
ext4
- Bloki większe niż rozmiar strony — wsparcie dla bloków >4K
- Szybsza defragmentacja online — ~50% poprawa wydajności zapisu podczas defragmentacji
- Lepsze Direct I/O — zwiększona przepustowość operacji bezpośrednich
NFS
- Direct I/O read — odczyt bezpośredni przez NFS
- Lepsza wydajność zapisu — dzięki opcji
NFSD_IO_DIRECT - Delegacja katalogów — nowa opcja modułu
Pamięć i zarządzanie zasobami
- Device-Private THP — Transparent Huge Pages na pamięci urządzeń (GPU)
- NUMA mempolicy dla KVM — afiniczność NUMA dla pamięci gości KVM
- Dmabuf-iommufd — integracja buforów pamięci GPU z IOMMU
- Obsługa ECC — korekcja błędów dla stron bez metadanych
struct page
io_uring
io_uring kontynuuje rozwój:
- Mieszane rozmiary SQE — wpisy kolejki zgłoszeń mogą mieć różne rozmiary
- Zcrx: multi-ring — współdzielenie kolejki sprzętowej RX między wieloma ringami
- getsockname/getpeername — nowe operacje na socketach
- Zapytania o layout SQ/CQ — dla ringów dostarczanych przez użytkownika
Scheduler
- NEXT_BUDDY dla EEVDF — przywrócenie mechanizmu preferowania “następnego” procesu w schedulerze EEVDF
- Proporcjonalne newidle balance — optymalizacja równoważenia obciążenia
- Przepisany MM CID — nowe zarządzanie identyfikatorami kontekstu pamięci
- sched_ext — lepsze skalowanie trybu bypass
Grafika i sterowniki
- Color Pipeline API — nowe API do transformacji kolorów, kluczowe dla obsługi HDR w Linuksie
- Sharpness property — adaptacyjne filtrowanie ostrości (Intel Lunar Lake+)
- Arm Ethos NPU — sterownik akceleratora sieci neuronowych ARM
- AMD SI/CIK — wsparcie Vulkan dla starszych kart AMD
Tracing i debugowanie
- SFrame — nowy format rozwijania stosu, znacznie szybszy od DWARF przy minimalnym narzucie wydajnościowym
- CONFIG_DEBUG_BUGVERBOSE_DETAILED —
WARN_ON_ONCE()teraz wypisuje warunek, który został spełniony — łatwiejsze debugowanie - klp-build — skrypt do generowania łatek livepatch z objtool
Rust w jądrze
Ekosystem Rust w kernelu rośnie:
- Abstrakcje dla podsystemu PWM (z pierwszym sterownikiem th1520)
- Podstawowe abstrakcje I2C
- Typy bounded integer
- Obsługa parametrów modułów jako liczb całkowitych
- Binary large objects dla debugfs
Bezpieczeństwo
- Szyfrowanie linków PCIe — bezpieczna komunikacja dla poufnych maszyn wirtualnych, szyfrowanie ruchu między VM a urządzeniem
- Uaccess scopes — nowe zarządzanie dostępem do pamięci użytkownika oparte na zakresach, poprawiające bezpieczeństwo
- CPU System Wakeup QoS — nowy interfejs do określania limitów jakości wybudzania
Podsumowanie
Linux 6.19 to mocne wydanie. Live Update Orchestrator zmienia zasady gry dla chmury i wirtualizacji. Ulepszenia Btrfs i ext4 poprawiają codzienną wydajność. Color Pipeline API otwiera drzwi do pełnego HDR na desktopie. A ekosystem Rust w kernelu z każdym wydaniem staje się coraz bardziej funkcjonalny.
Pełna lista zmian: kernelnewbies.org/Linux_6.19