Linux 6.12 wprowadza obsługę RT, mechanizm sched_ext, ulepszenia obsługi i wiele więcej

Tux, maskotka jądra Linuksa

Po dwóch miesiącach prac rozwojowych Linus Torvalds ogłosił wydanie jądra Linux 6.12, wersja, w której Na uwagę zasługuje możliwość aktywacji trybu czasu rzeczywistego, dodanie sched_ext umożliwiające tworzenie programów planujących procesor przy użyciu eBPF oraz a mechanizm generujący kody QR w sytuacjach krytycznych.

Linux 6.12 obejmuje łącznie 14,607 XNUMX wprowadzonych poprawek, Zostały dodane ponad 507,913 XNUMX linii kodu i wyeliminowanie 234,083 XNUMX. Chociaż łatka jest mniejsza w porównaniu do poprzednich wersji, stanowi bezprecedensową optymalizację.

Główne nowe funkcje Linuksa 6.12

Jądro Linuksa teraz można zbudować za pomocą opcji PREEMPT_RT izintegrowany, eliminując potrzebę stosowania zewnętrznych poprawek do działania w czasie rzeczywistym. Osiągnięto to poprzez włączenie obsługi funkcji printk. PREEMPT_RT i jest dostępne na architekturach takich jak x86, x86_64, ARM64 i RISC-V.

W kompilacji Wsparcie dla kompilatora Clang zostało rozszerzone na standardową bibliotekę nolibc, umożliwiając optymalizacje, takie jak optymalizacja czasu łącza (LTO). To także jest dodano system śledzenia pierścieni, który zachowuje informacje dotyczące debugowania w pamięci po ponownym uruchomieniu, ułatwiając analizę po awarii.

Część Rust-for-Linux, to nadal się rozwija dzięki nowym modułom, takim jak list i rbtree dla list połączonych i czerwono-czarnego drzewa. Dodatkowo rozszerzono wsparcie w kluczowych obszarach takich jak inicjalizacja, synchronizacja i obsługa błędów. Istnieje możliwość kompilacji jądra z Rustem przy zachowaniu zaawansowanych zabezpieczeń takich jak Spectre i debugowaniu za pomocą KASAN lub kCFI. Dodatkowo zintegrowany został sterownik Ethernet PHY napisany w języku Rust.

Kolejna nowość Tym, co wyróżnia tę nową wersję jądra Linux 6.12, jest wprowadzenie mechanizm sched_ext (SCX), co pozwala na użycie eBPF do tworzenia niestandardowych harmonogramów procesora. Dzięki SCX programiści mogą projektować dynamiczne harmonogramy, które optymalizują wykonywanie zadań w oparciu o stan systemu i konkretne potrzeby aplikacji, ułatwiając eksperymentowanie i wdrażanie strategii w środowiskach produkcyjnych.

również Zakończono integrację serwera SCHED_DEADLINE, bardziej wydajne rozwiązanie aby uniknąć monopolizacji procesora przez zadania o wysokim priorytecie, poprawę alokacji zasobów do zadań o niskim priorytecie. Dodatkowo harmonogram CFS został zastąpiony nowym EEVDF (Earliest Eligible Virtual Deadline First), który bardziej sprawiedliwie alokuje zasoby procesora i eliminuje potrzebę ręcznej regulacji, redukując opóźnienia w krytycznych zadaniach.

Kontroler Panika DRM, odpowiedzialny za obsługę sytuacji awaryjnych w jądrzemożesz teraz wyświetlić raport wizualny z logo i kodami QR łącznie ze skompresowanymi danymi diagnostycznymi. Te kody QR ułatwiają analizę awarii, umożliwiając przekierowanie użytkowników na strony skonfigurowane przez dystrybucje w celu zgłaszania problemów.

W sprawie ARM, dodano obsługę rozszerzenia POE (Rozszerzenie nakładki uprawnień), które włącza mechanizmy takie jak klucze ochrony pamięci aby ograniczyć dostęp do określonych obszarów pamięci bez konieczności modyfikowania tabel stron. Dodatkowo optymalizacja wywołania systemowego getrandom() przy użyciu vDSO zwiększyła prędkość generowania liczb losowych nawet 15-krotnie w architekturach Loongarch, ARM64, PowerPC i s390.

Un nowy sterownik USB umożliwia korzystanie z protokołu 9pfs do przesyłania danych pomiędzy urządzeniami USB poprzez montowanie systemów plików 9p. Jest to szczególnie przydatne na urządzeniach wbudowanych, zapewniając wydajną alternatywę dla NFS do uruchamiania partycji głównych.

Podsystem io_uring dodał obsługę absolutnych limitów czasu, aktywowane o określonych godzinach w oparciu o zegar systemowy. Poprawia to kontrolę nad operacjami asynchronicznymi, zapewniając większą precyzję ich wykonania.

dla biblioteki libcpupower, zawiera pliki generowania linków przy użyciu SWIG, co pozwala na wykorzystanie języków takich jak Python w celu rozszerzenia jego funkcjonalności. Dodatkowo udoskonalono narzędzie cpuidle, które może teraz mierzyć minimalny czas bezczynności potrzebny do uzasadnienia kosztów energii przejściowej.

W obszarze sieci, jeden Najbardziej zauważalne ulepszenia to mechanizm TCP dla pamięci urządzenia, która umożliwia bezpośredni transfer danych pomiędzy pamięcią urządzeń peryferyjnych a siecią bez pośrednictwa procesora, osiągając zauważalną wydajność. Dodatkowo możliwości licznych kontrolerów Ethernet i WiFi, takich jak iwlwifi Intela i rtw89 RealTek, zostały rozszerzone o dodatkową obsługę chipów WiFi 6 i zaawansowanych standardów IEEE. W przypadku protokołu IPv6 wprowadzono nową funkcjonalność optymalizującą alokację adresów przy użyciu protokołu DHCPv6-PD, natomiast protokół MPTCP otrzymał ulepszenia w zakresie routingu i wykrywania utraty ruchu.

W zakresie wsparcia sprzętowego, Dodano ciągłą obsługę AMD RDNA4 w sterowniku AMDGPU oraz ulepszenia sterownika Xe DRM dla procesorów graficznych Intel Xe. Dodano także Wsparcie dla procesorów Xeon Granite Rapids oraz nowe platformy ARM, w tym Snapdragon X Elite SoC.

Wreszcie, jeśli chcesz dowiedzieć się więcej na ten temat, możesz zapoznać się ze szczegółami w następujący link.