Wzrost numeru wersji głównej do 5 nie oznacza żadnych wielkich zmian ani problemów z kompatybilnością. Po prostu pomaga naszemu drogiemu Linusowi Torvaldsowi zachować spokój ducha. Poniżej znajduje się lista niektórych zmian i nowości.
Jądro systemu:
- Planista procesów CFS na asymetrycznych procesorach, takich jak ARM, działa inaczej – najpierw obciąża nieduże i energooszczędne rdzenie.
- Dzięki API do śledzenia zdarzeń plikowych fanotify można otrzymywać powiadomienia o otwarciu plików do wykonania.
- Zintegrowano kontroler cpuset, który umożliwia ograniczenie grup procesów według zużycia CPU i węzłów NUMA.
- Dodano wsparcie dla następujących urządzeń ARM: Qualcomm QCS404, Allwinner T3, NXP/Freescale i.MX7ULP, NXP LS1028A, i.MX8, RDA Micro RDA8810PL, Rockchip Gru Scarlet, Allwinner Emlid Neutis N5 i wielu innych.
- Ulepszono subsystem ARM: gorące podłączenie pamięci, ochrona przed Meltdown i Spectre, 52-bitowe adresowanie pamięci itd.
- Wsparcie dla instrukcji WBNOINVD dla x86-64.
Subsystem pamięci:
- Dla narzędzia KASAN na platformach ARM64 dostępna jest substytucja etykiet kontrolnych o niskim zużyciu pamięci.
- Fragmentacja pamięci drastycznie spadła (do 90%), w wyniku czego mechanizm Transparent HugePage działa lepiej.
- Prędkość działania mremap(2) na dużych obszarach pamięci wzrosła do 20 razy.
- W mechanizmie KSM jhash2 zastąpiono xxhash, co poprawiło wydajność KSM na systemach 64-bitowych pięciokrotnie.
- Ulepszenia w ZRam i OOM.
Urządzenia blokowe i systemy plików:
- Mechanizm blk-mq z wielopoziomowym systemem kolejkowania żądań stał się podstawowy dla urządzeń blokowych. Cały kod nie-mq został usunięty.
- Ulepszono wsparcie dla NVMe, szczególnie pod względem pracy urządzeń w sieci.
- Dla Btrfs wdrożono pełne wsparcie dla plików swap oraz zmianę FSID bez przepisania metadanych.
- W F2FS dodano wywołanie ioctl do opóźnionej weryfikacji FS przez fsck.
- Zintegrowano BinderFS – pseudo-system plików do komunikacji międzyprocesowej. Umożliwia uruchomienie kilku instancji Androida w jednym środowisku.
- Szereg ulepszeń w CIFS: cache DFS, rozszerzone atrybuty, protokół smb3.1.1.
- ZRam działa optymalniej z nieużywanymi urządzeniami swap, oszczędzając pamięć.
Bezpieczeństwo i wirtualizacja:
- Dodano funkcję haszującą Streebog (GOST 34.11-2012), opracowaną przez FSB Rosji.
- Wsparcie dla algorytmu szyfrowania Adiantum, opracowanego przez Google dla urządzeń o niskiej mocy.
- Włączone algorytmy XChaCha12, XChaCha20 i NHPoly1305.
- Przetwarzanie wywołań seccomp można teraz przenieść do przestrzeni użytkownika.
- Dla systemów gościnnych KVM wdrożono wsparcie dla rozszerzeń Intel Processor Trace przy minimalnym spadku wydajności.
- Ulepszenia w podsystemie KVM/Hype-V.
- Sterownik virtio-gpu uzyskał wsparcie dla symulacji EDID dla wirtualnych monitorów.
- W sterowniku virtio_blk zaimplementowano wywołanie discard.
- Wdrożono funkcje bezpieczeństwa dla pamięci NV, oparte na specyfikacjach Intel DSM 1.8.
Sterowniki urządzeń:
- Zmiany w API DRM dla pełnego wsparcia adaptacyjnej synchronizacji (część standardu DisplayPort) i zmiennych częstotliwości odświeżania (część standardu HDMI).
- Włączono standard Display Stream Compression do bezstratnego kompresowania strumieni wideo, skierowanych do ekranów o wysokiej rozdzielczości.
- Sterownik AMDGPU teraz wspiera FreeSync 2 HDR oraz reset GPU dla CI, VI, SOC15.
- Sterownik wideo Intel uzyskał wsparcie dla chipów Amber Lake, formatów YCBCR 4:2:0 i YCBCR 4:4:4.
- W sterowniku Nouveau dodano wsparcie dla trybów wideo dla kart graficznych rodziny Turing TU104/TU106.
- Zintegrowano sterowniki ekranu dotykowego Raspberry Pi, paneli CDTech, Banana Pi, DLC1010GIG i innych.
- W sterowniku HDA dostępne jest wsparcie dla przycisku „jack”, wskaźników LED, urządzeń Tegra186 i Tegra194.
- Podsystem wejścia nauczył się obsługiwać precyzyjne przewijanie w niektórych myszach Microsoft i Logitech.
- Szereg zmian w sterownikach kamer internetowych, tunerów telewizyjnych, USB, IIO i innych.
Podsystem sieciowy:
- W stacku UDP wprowadzono wsparcie dla mechanizmu zero-copy, pozwalającego na przesył danych przez gniazdo bez pośredniego buforowania.
- Dodatkowo wprowadzono mechanizm Generic Receive Offload.
- Zoptymalizowano wydajność wyszukiwania w politykach xfrm przy dużej ich liczbie.
- W sterowniku VLAN dodano możliwość wygaszenia tuneli.
- Szereg ulepszeń w wsparciu dla Infiniband oraz sieci bezprzewodowych.
Źródło: linux.org.ru
