Linux wyleczył się z koszmarów i pozbył wsparcia dla zapomnianych procesorów
Linuksa 4.17 otrzymaliśmy zgodnie z terminem, po 63 dniach pracdeweloperów. Niespodziewanie zmieniła się nazwa kodowa kernela, tojuż nie „Fearless Coyote”, lecz „Merciless Moray”.Spodziewanie za to Linus Torvalds nie zmienił wiodącego numerkawersji – na Linuksa 5.0 jeszcze troszkę poczekamy, mimo żewarunek zmiany numeracji został spełniony: liczba obiektów wrepozytorium kodu źródłowego przekroczyła właśnie sześćmilionów. A co innowacyjnego w najważniejszym z kerneli tejplanety? Zapraszamy do przeglądu nowości, jakie przynosi Linux4.17.
04.06.2018 16:04
Koniec sennych koszmarów
Nowa wersja kernela rozwiązuje problem z dziwnym zachowaniemrdzeni w procesorach Intela, które w stanie uśpienia nagledoświadczały nieuzasadnionych niczym wybudzeń. Odkrylito informatycy z Uniwersytetu Technicznego w Dreźnie,przypisując problem interakcjom między procesami działającymi wtle i zarządcą jałowego biegu. Doprowadziły one do błędnychprzewidywań czasu usypiania rdzeni w trakcie wysokiego zużyciaenergii. Jeśli następująca po aktywności faza wybudzenia trwaładłużej, np. do 10 sekund, nie było jak skorygować decyzji w tymczasie.
Najlepszą strategią zaradzenia problemowi okazało sięwprowadzenie swoistego „budzika”, który jest w stanie poprawićzłą decyzję co do stanu uśpienia w krótkim czasie. Przykładowaimplementacja została oddana linuksowej społeczności, a następnietrafiła do podsystemu zarządzania jałowym biegiem. Efekt jesttaki, że system śpi teraz znacznie efektywniej, zmniejszajączużycie energii o około 10%. Co więcej, aplikacje o skróconychcyklach uśpienia korzystają z mniejszych opóźnień i co za tymidzie, wyższej wydajności.
Co ciekawe, ta zmiana ma też wpływ na procesory AMD – do tejpory usypiano je wywołaniem, które wpędzało w niezbyt głębokądrzemkę. Teraz kernel potrafi przełączyć procesory Ryzen i Epyc wznacznie głębszy stan uśpienia.
Lepsze sterowanie ładowaniem baterii
Wiele ciekawych rzeczy stało się możliwych w kwestii kontrolizasilania. Można m.in. zdefiniować poziomy naładowania baterii, odktórych firmware zacznie i przestanie je ładować. Takimi funkcjamidysponują niektóre notebooki, wykorzystując je do wydłużeniaczasu życia baterii. Wcześniej jednak można było to ustawićtylko z poziomu UEFI/BIOS-u. Teraz na kompatybilnym sprzęcie (m.in.Thinkpadach) będzie można ustawić to z poziomu systemuoperacyjnego.
Chronione treści w grafice Intela
Powszechnie dziś wykorzystywany do ochrony treści mechanizmHigh-bandwith Digital Content Protection (HDCP) uniemożliwiaprzesyłanie wideo wysokiej rozdzielczości w formie, którapozwalałaby na łatwe tworzenie ich kopii. Osoby zainteresowaneoglądaniem chronionych przez DRM treści wideo nie miały łatwo naLinuksie. Jako że nie był on wspierany przez intelowe sterowniki,nie można było na Linuksie takich treści oglądać np. nazewnętrznym wyświetlaczu.
Teraz dzięki pracy deweloperów Chrome OS-a, sterowniki i915 sąw stanie poprawnie odtworzyć wideo wysokiej rozdzielczości – nachromebookach możliwe jest już odtwarzanie tak chronionych treści.W teorii powinno być to możliwe także na innych linuksowychsystemach – sprawdzimy to jak kernel 4.17 trafi w nasze ręce.
Nowy sterownik AMD dla prawie wszystkich
Ta nowa infrastruktura grafiki Display Core, którą AMDwprowadziło w Linuksie 4.15, aktywowana jest teraz automatycznietakże dla starszych kart graficznych. Dzięki temu naopensource’owym sterowniku będą mogli korzystać z HDMI 2.0 orazprzekierowania dźwięku na HDMI i DisplayPort. Dodano też wsparciedla nowych czipów Vega12, które powinny zadebiutować lada moment.
Możliwe jest już także wykorzystanie platformy obliczeniowejROCm (RadeonOpen Compute) ze starszymi układami graficznymi. Wkernelu 4.18 pojawić się ma wsparcie dla ROCm na współczesnycharchitekturach Polaris i Vega.
Kernel odszyfruje strumień danych TLS
Ciężka praca odszyfrowania danych z Transport Layer Securityzostała przeniesiona na kernel. Już w Linuksie 4.13 moduł KTLSpozwalał na szyfrowanie danych wysyłanych po TLS, teraz potrafijest także bezpośrednio odszyfrować. Przekłada się to nazwiększenie wydajności HTTPS i innych protokołów komunikacyjnychkorzystających z TLS. Obsługa tego na poziomie kernela to mniejoperacji na pamięci, a to pozwala na znacznie efektywniejszeprzetwarzanie danych, zwiększa przepustowość i zmniejszaobciążenie systemu i opóźnienia. KTLS lepiej się takżeintegruje z akceleratorami kryptograficznymi.
Oczywiście wciąż kwestie takie jak nawiązanie i konfiguracjapołączenia są przetwarzanie przez biblioteki działające wprzestrzeni użytkownika, takie jak OpenSSL.
Bezpieczniej i wydajniej w systemach plików
Podstawowy linuksowy system plików EXT4 został zabezpieczonyprzed uzłośliwionymi obrazami kontenerów, które najwyraźniejmogły linkować do systemu plików hosta, a następnie „wmówićmu”, że są jego częścią… np. podmieniając katalogi /sbin naswoje – i w ten sposób otwierając drogę do uruchomienia malware.
Opiekun systemu Ted Ts’o wciąż jednak podkreśla, że fanomkontenerów nie powinno się wydawać, że podpinanie obrazówsystemów plików jak popadnie jest rozsądną rzeczą. Ostrzeżeniesłuszne, biorąc pod uwagę rosnącą popularność paczek snapCanonicala.
Z kolei system plików XFS obsługuje opcję montowania lazytime,stosowaną od jakiegoś czasu właśnie w EXT4. Potrafi ona wyraźniezwiększyć wydajność systemu plików, opóźniając zapisywywołane potrzebą aktualizacji metadanych.
Na froncie walki z widmami…
Skoro już o bezpieczeństwie była mowa, nowa wersje kernelaprzynosi ulepszenia w zabezpieczeniach przed Spectre v1 i v3,uporządkowano też kod wywołań systemowych, aby chronić przedatakami korzystającymi ze spekulatywnego wykonywania kodu.
Zmniejszono też narzut generowany przez zabezpieczenia przedatakiem Meltdown na stare procesory, które nie obsługiwałymechanizmu PCID (Process Context Identifiers) – teraz takie systemyz aktywną łatką powinny być znacznie bardziej responsywne.
Oprócz tego kernel 4.17 dostał zabezpieczenie przed Spectrev4, niedawno odkrytą wersją ataku o nazwie Speculative StoreBypass. Łatka na większości systemów jednak nie działa, ponieważzależy od nowych funkcji włączonych z poziomu mikrokodu Intela, atego mikrokodu jeszcze nie udostępniono użytkownikom.
Z zupełnie innej beczki, framework bezpieczeństwa AppArmordostał mechanizm mediacji z gniazdkami sieciowymi, będącywarunkiem koniecznym dla lepszej izolacji aplikacji uruchamianych zkontenerów snap. Podsystem kryptograficzny oferuje zaś mechanizmCipher FeedBack, przydatny w systemach korzystających z TrustedPlatform Module 2, oraz lekki szyfr blokowy Speck, który świetniesię spisuje na systemach nie mających sprzętowej akceleracjiszyfru AES.
Wiosenne porządki
Ilu z nas kojarzy takie architektury procesorowe jak Blackfin,Cris, Frv, M32r, Metag, Mn10300, Score i Tile? Pewnie niewielu. Nocóż, działał na nich Linux, ale już działać nie będzie. Linuszdecydował o usunięciu ponad 465 tysięcy wierszy kodu,odpowiedzialnych za wsparcie tych zapomnianych przez światarchitektur.
Między innymi za sprawą tych porządków, Linux 4.17 jestmniejszy od Linuksa 4.16 – ubyło mu łącznie około 180 tysięcywierszy kodu. Bez obaw, następne wakacyjne wydanie będzie jużtłustsze. Zaczekamy na nie do sierpnia. A wszyskich zainteresowanychdokładną listą zmian w linuksowym kernelu zapraszamy na Phoronixa.Niestety kernelnewbies zaprzestało publikować swoje podsumowania –ostatnie jest dla kernela4.15.