Linux 6.7 został już wydany i to są jego nowości

Tux, maskotka jądra Linuksa

Jądro Linux jest kręgosłupem systemów operacyjnych Linux (OS) i jest podstawowym interfejsem między sprzętem komputera a jego procesami.

Ostatnio Linus Torvalds ujawnił wydanie nowego jądra Linuksa w wersji 6.7, który został zaprezentowany po dwóch miesiącach rozwoju i do najbardziej zauważalnych zmian należy integracja systemu plików Bcachefs, zaprzestanie obsługi architektury Itanium, możliwość współpracy Nouveau z oprogramowaniem GSP-R, obsługa szyfrowania TLS w NVMe-TCP, możliwość wykorzystania wyjątków m.in. w BPF.

Nowa wersja jądra Linuksa 6.7 Składa się z 15291 XNUMX poprawek a około 45% wszystkich wprowadzonych zmian dotyczy sterowników urządzeń, 14% zmian dotyczy aktualizacji określonego kodu dla architektur sprzętowych, 13% dotyczy stosu sieciowego, 5% dotyczy systemów plików, a 3% dotyczy wewnętrzne podsystemy jądra.

Rozmiar łatki wynosi 72 MB (zmiany dotyczyły 13.467 906.147 plików, dodano 341.048 XNUMX linii kodu, a XNUMX XNUMX linii usunięto).

Główne nowości w jądrze Linux 6.7

Integracja systemu plików Bcachefs

Linux 6.7 wykorzystuje kod systemu plików Bcachefs, który stara się osiągnąć wydajność, niezawodność i skalowalność XFS w połączeniu z elementami zaawansowanej funkcjonalności spotykanej w Btrfs i ZFS.

Bcachefy obsługuje funkcje takie jak włączenie wielu urządzeń na jednej partycji wielowarstwowe konstrukcje dysków (dolna warstwa z często używanymi danymi oparta na szybkich dyskach SSD i górna warstwa z danymi z rzadziej używanych dysków twardych), replikacja (RAID 1/10), buforowanie, przezroczysta kompresja danych (tryby LZ4, gzip i ZSTD), wycinanie stanu, weryfikacja integralności za pomocą sum kontrolnych, możliwość przechowywania kodów korekcji błędów Reeda-Solomona (RAID 5/6), przechowywanie informacji w formie zaszyfrowanej (stosuje się ChaCha20 i Poly1305) . Pod względem wydajności Bcachefs wyprzedza Btrfs i inne systemy plików oparty na mechanizmie kopiowania przy zapisie i wykazujący prędkość roboczą bliską Ext4 i XFS.

Ulepszenia w Btrfs

W Linuksie 6.7 Dla Btrfs wdrożono uproszczony tryb kwotowy co pozwala na lepszą wydajność poprzez śledzenie rozszerzeń tylko w podpartycji, w której zostały utworzone, czyli znacznie upraszcza obliczenia i poprawia wydajność, ale nie pozwala na współdzielenie rozszerzeń pomiędzy wieloma podpartycjami. Ponadto do Btrfs dodano nową strukturę danych w formie drzewa paskowego, odpowiednią do logicznego mapowania rozszerzeń w sytuacjach, gdy mapowanie fizyczne nie jest zgodne między urządzeniami. Tkanina jest obecnie używana w implementacjach RAID0 i RAID1 dla urządzeń blokowych strefowych.

Zakończenie wsparcia dla architektury Itanium (ia64)

The obsługa architektury ia64 stosowanej w procesorach Intel Itanium, co to jestcałkowicie zawieszone w 2021 r. Intel wprowadził procesory Itanium w 2001 roku, ale architektura ia64 nie była w stanie konkurować z AMD64, głównie ze względu na wyższą wydajność AMD64 i płynniejsze przejście z 86-bitowych procesorów x32.  Linus Torvalds wyraził chęć zwrotu wsparcia ia64 do jądra, ale taktylko wtedy, gdy istnieje opiekun, który może wykazać wysoką jakość wsparcia dla tej platformy poza głównym jądrem przez co najmniej rok.

Ciągła migracja zmian z gałęzi Rust-for-Linux

Nowa wersja przechodzi na wersję Rust 1.73 i oferuje zestaw haków do pracy z kolejkami pracy.

Ulepszenia w implementacji kolejek FIFO 

W nowej wersji Linuksa 6.7 wdrożenie lekkiego mechanizmu FIFO pojedyncze połączenia, które wymagają blokady spinlock tylko do usuwania z kolejki w kontekście procesu i rezygnują z niej w przypadku niepodzielnych dodatków do kolejki w dowolnym kontekście. Dodatkowo dodano bufor cykliczny objpool ze skalowalną implementacją kolejki o wysokiej wydajności do alokacji i zwracania obiektów.

Obsługa szyfrowania TLS dla NVMe-TCP

W Linuksie 6.7 sterownik NVMe-TCP (umożliwiający dostęp do dysków NVMe przez sieć), Dodano obsługę szyfrowania kanału transmisji danych przy użyciu protokołu TLS (przy użyciu KTLS i procesu w tle) w przestrzeni użytkownika tlshd do negocjacji połączenia.

Poprawiona wydajność harmonogramu pakietów

Zoptymalizowana wydajność harmonogramu pakietów fq, co pozwoliło zwiększyć wydajność o 5% przy dużych obciążeniach w teście tcp_rr (TCP Request/Response) i o 13% przy nieograniczonym przepływie pakietów UDP.

Przyjęcie opcji uwierzytelniania TCP

Do stosu TCP dodano obsługę rozszerzenia TCP-AO, które umożliwia sprawdzanie nagłówków TCP przy użyciu kodów MAC, przy użyciu nowszych algorytmów HMAC-SHA1 i CMAC-AES-128 zamiast dostępnej wcześniej opcji TCP-MD5 opartej na algorytmie Legacy MD5 .

z inne zmiany które wyróżniają się:

  • Dodano nowe ustawienia «cpuset.cpus.exclusive” i „cpuset.cpus.exclusive. Skuteczny» do cpuset, aby powiązać wyłączność procesora.
  • Podsystem BPF implementuje obsługę wyjątków, które są przetwarzane jako wyjście awaryjne z programu BPF z możliwością bezpiecznego rozwijania ramek stosu. Dodatkowo programy BPF pozwalają na użycie wskaźników kptr w połączeniu z CPU.
  • Dla architektur ARM32 i S390x dodano obsługę bieżącego zestawu (cpuv4) instrukcji BPF.
  • Dla architektury RISC-V możliwe jest wykorzystanie dostępnego w Clang 17 trybu sprawdzania stosu Shadow-Call Stack, mającego na celu zabezpieczenie przed nadpisaniem adresu zwrotnego funkcji w przypadku przepełnienia bufora na stosie.
  • Do mechanizmu łączenia identycznych stron pamięci dodano nowy inteligentny tryb skanowania stron pamięci (
  • AppArmor dodał możliwość kontroli dostępu do mechanizmu io_uring oraz tworzenia przestrzeni nazw użytkowników, dzięki czemu można selektywnie zezwalać na dostęp do tych możliwości tylko określonym procesom.
  • Dodano interfejs API certyfikacji maszyn wirtualnych w celu sprawdzenia integralności procesu uruchamiania maszyny wirtualnej.
  • Systemy LoongArch obsługują wirtualizację za pomocą hypervisora ​​KVM.
  • Dodano wstępną obsługę oprogramowania sprzętowego GSP-RM do modułu jądra Nouveau, który jest używany w karcie graficznej NVIDIA RTX 20+ do przenoszenia operacji inicjalizacji i sterowania z procesora graficznego na bok mikrokontrolera GSP

w końcu jeśli jesteś chcesz dowiedzieć się więcej na ten temat, możesz sprawdzić szczegóły W poniższym linku.