Premiera jądra Linux 5.6 zaplanowana jest na koniec marca. W dzisiejszym materiale omawiamy nadchodzące zmiany — nowy system plików, protokół WireGuard oraz aktualizacje sterowników.
Zdjęcie — Czym tak naprawdę jest problem
Wyczekiwany protokół VPN
David Miller, odpowiedzialny za podsystem sieciowy Linuksa, postanowił włączyć do jądra WireGuard. Jest to tunel VPN zaprojektowany przez firmę Edge Security. Pomysł pojawił się jeszcze dwa lata temu — wtedy to sam Linus Torvalds — jednak realizacja została odłożona. Projekt był mocno związany z funkcjami kryptograficznymi Edge Security. Ale pół roku temu autorzy nowego protokołu doszli do kompromisu i na wspierany przez jądro Crypto API.
Tak , co w przyszłości pozwoli WireGuard zastąpić OpenVPN. Zgodnie z , przepustowość nowego protokołu jest cztery razy wyższa niż w przypadku OpenVPN: 1011 Mbit/s w porównaniu do 258 Mbit/s. Należy jednak zauważyć, że przejście na standardowy Crypto API może pogorszyć wyniki.
Kolejną cechą WireGuard jest to, że , nawet gdy użytkownik otrzyma nowy adres IP, i samodzielnie podejmuje decyzje dotyczące routingu. W tym celu każdemu interfejsowi sieciowemu przypisywany jest klucz prywatny. Jest on generowany za pomocą . Samo szyfrowanie opiera się na ChaCha20 oraz algorytmie . Uważane są za ulepszone odpowiedniki AES-256-CTR oraz .
Nowy system plików
Ten system Zonefs, zaprezentowany przez inżynierów Western Digital. Jest przeznaczony do pracy z zoniowanymi urządzeniami pamięci (). Są to dyski blokowe, których przestrzeń adresowa podzielona jest na strefy (na przykład NVMe SSD). System plików pozwala traktować każdą strefę jako plik — to znaczy używać specjalnych API zamiast do interakcji ze SCN. Podobne podejście zastosowano w bazach danych RocksDB i LevelDB. Daje to możliwość zredukowania kosztów przenoszenia kodu, pierwotnie poprawionego do pracy z plikami.
W Linuksie istnieje już funkcja do interakcji z urządzeniami blokowymi. W jądrze wersji 4.13 moduł dm-zoned. Przedstawia on zoniowany nośnik jako zwykłe urządzenie blokowe, a Zonefs stanie się alternatywą.

Zdjęcie — Czym tak naprawdę jest problem
Oprócz wprowadzenia nowego systemu plików, programiści jądra Linux wprowadzili zmiany w istniejących. Dodano mechanizmy kompresji / dla F2FS — ich wsparcie pozostanie na razie eksperymentalne. Będzie to wymagało ręcznego włączenia podczas montowania partycji (opcja algorytm_kompresji). To także aktualizacja EXT4 — jest związany z operacjami bezpośredniego wejścia/wyjścia. Pakiet aktualizacyjny przedstawił inżynier z IBM, Ritesh Harjan. Według , w niektórych przypadkach poprawka może poprawić wydajność systemu plików o 140%.
Aktualizacje sterowników
W jądrze pojawi się nowy sterownik cpuidle_cooling. Jego — chłodzenie CPU/SoC, wbudowując cykle bezczynności w trakcie działania. W pewnym sensie przypomina to sterownik PowerClamp dla procesorów Intel, jednak nie jest przypisany do konkretnej architektury. System specjaliści z Linaro, którzy zajmują się optymalizacją oprogramowania z otwartym kodem źródłowym dla platform ARM.
Również wsparcie dla kart graficznych serii GeForce 20 (TU10x). Odpowiedni sterownik opracował Ben Skeggs z projektu Nouveau. Niestety, GeForce 16 (TU11x) pozostaną „na bocznym torze”. Nvidia nie dostarczyła obrazów oprogramowania układowego, niezbędnych do inicjalizacji karty. Nowe karty graficzne pod Linuksem mogą również mieć problemy z wydajnością z powodu braku dynamicznego przetaktowania — automatycznego zarządzania częstotliwością. W przeszłości ustalono, że sterowniki Nouveau 20–30% wolniej niż oryginalne.

Zdjęcie — Czym tak naprawdę jest problem
Nowe jądro USB4. Odpowiednie zmiany inżynierowie z Intela. Zmodyfikowali istniejącą bazę kodową związaną z Thunderbolt — to około dwóch tysięcy linii.
Oczywiście, to nie wszystkie aktualizacje, które trafią do jądra — na przykład wsparcia dla dodatkowych urządzeń peryferyjnych i sieciowych. Kernel 5.6 będzie także pierwszym 32-bitowym jądrem, w którym . Pod koniec stycznia inżynierowie ostateczne zmiany w nfsd, xfs, alsa i v4l2. Mają nadzieję, że w osiemnaście pozostałych lat użytkownicy i deweloperzy dystrybucji zdążą przejść na kernel 5.6 (lub jego kolejne wersje).
Materiały na ten temat z korporacyjnego bloga 1cloud.ru:
![]()
![]()
O czym piszemy na Habrze:
![]()
![]()
![]()
Źródło: habr.com
