Linux 7.0 — co zmienia nowy numer wersji?
Linux 7.0-rc2 wyszedł 1 marca. Stabilna wersja powinna pojawić się w połowie kwietnia. Numer 7.0 brzmi poważnie, ale Linus Torvalds od razu uciął spekulacje — zmiana wersji to kwestia czytelności, nie rewolucji architekturalnej. Po prostu 6.x zaczęło mieć za duże numery.
To powiedziawszy — zmian jest sporo i kilka z nich jest naprawdę istotnych.
Rust przestaje być eksperymentem
Od kilku lat Rust w kernelu miał status eksperymentalny. W 7.0 oficjalnie przestał. Miguel Ojeda zamknął ten rozdział patchem, który usuwa flagę “experimental”. Rust w kernelu zostaje na stałe.
Na dzień dzisiejszy to ~25 000 linii Rusta przy ~34 milionach linii C. Nikt nie zamierza przepisywać jądra — chodzi o nowe sterowniki i moduły, gdzie bezpieczeństwo pamięci ma znaczenie. Poprawiono też budowanie kernela z LTO i Rustem jednocześnie.
Pamięć — konkretne optymalizacje
Zmiany w podsystemie MM są jednym z mocniejszych punktów tego wydania.
Compressed writeback dla Zram — dotychczas Zram zapisywał dane na dysk w formie nieskompresowanej. Teraz obsługuje zapis skompresowany, co oszczędza CPU i energię. Laptopy powinny to odczuć.
Szybsze hugepages — clearing stron przy demand faulting dla 2MB+ stron jest teraz ciągły (clear_pages()), co lepiej współgra z hardware prefetcherem. Na AMD Zen przełącza się na cacheline allocation elision dla danych większych niż LLC — lepsza przepustowość bez wyrzucania przydatnych danych z cache.
Gigantic folio allocation — alokacja 120 × 1 GB folios spadła z 3.6s do 0.43s. Prawie 10x szybciej.
Unified swapin — konsolidacja kodu swap z usunięciem legacy path. Redis w benchmarkach pokazał 20% przyspieszenie.
PT_RECLAIM — rozszerzony na kolejne architektury 64-bit: Alpha, LoongArch, MIPS, Parisc.
Scheduler
Kontynuacja upraszczania modeli preempcji — teraz zostają dwa: PREEMPT_LAZY i PREEMPT_FULL. Cztery tryby dla nowoczesnych architektur to było za dużo. PREEMPT_LAZY to złoty środek dla typowych obciążeń.
Dodano też rozszerzenie time slice, nad którym pracowano od dekady.
Systemy plików
- EXT4 — lepsza wydajność równoległych zapisów Direct I/O
- exFAT — szybsze sekwencyjne odczyty
- F2FS — kolejne optymalizacje
- XFS — poprawki w rc2
- EROFS — poprawki w rc2
- SMB client — poprawki w rc2
- Usunięto stary mount API z kodu blokowego, zastąpiony nowszym
OPEN_TREE_NAMESPACE
Sterowniki i hardware
CPU:
- Intel Nova Lake i Diamond Rapids — nowe enablement
- AMD Zen 6 — eventy wydajnościowe i metryki
- Qualcomm Snapdragon X2 — kontynuacja upstreamingu
GPU:
- AMD GFX 12.1 — nowe bloki IP
- Intel Xe — multi-queue dla Crescent Island, display support dla Nova Lake
- Nouveau — przywrócenie large pages, lepsza wydajność NVK
- Qualcomm — Snapdragon 8 Elite Gen 5 display
Inne:
- Apple USB Type-C PHY
- Poprawki AMDXDNA Ryzen AI accelerator
- Framework 13 — kontrola progów wentylatora i temperatury
- Monitoring sensorów na kolejnych płytach głównych ASUS
- LG Gram Style 14 — wsparcie głośników
- Focusrite Forte — interfejs audio USB
- Intel TSX domyślnie włączony na obsługiwanych procesorach
Sieć
CAKE_MQ — adaptacja SCH_CAKE (popularny qdisc do zarządzania przepustowością) dla nowoczesnych systemów wielordzeniowych.
Poprawki IO_uring IOPOLL.
Usunięte
HIPPI — stary standard sieciowy (800 Mb/s - 6.4 Gb/s) dla superkomputerów z lat 90. Nikt tego nie używa od lat, wreszcie poszedł do usunięcia.
Usunięto też starą opcję Kconfig, która generowała spam w logach — patch od samego Torvaldsa.
Kiedy wyjdzie?
Stabilny Linux 7.0 powinien pojawić się w okolicach 12-19 kwietnia, zależnie od ilości RC. Prawdopodobnie trafi do Ubuntu 26.04 LTS i Fedory 44.
Źródła: Phoronix, Phoronix — rc2, Phoronix — MM, Phoronix — Feature Preview