Linux 4.13 na czas – mimo kamienia nerkowego Linusa. Sprawdź nowości!

Wrzesień zaczynamy z nowym Linuksem. Wczoraj, zgodnie zharmonogramem, Linus Torvalds wydał wersję4.13 kernela, wciąż pod nazwą kodową FearlessCoyote. Ponad 14 tys. commitów, ponad 600 tys. nowych wierszykodu, a to wszystko przekłada się na zestaw wartych uwagi nowości.Wśród nich najciekawsze wydają się wprowadzenie szyfrowaniakomunikacji po TLS, obsługa nawet 2 mld plików w katalogachsystemu plików ext4, znaczny wzrost odporności na exploity, orazporzucenie domyślnej obsługi przestarzałej wersji 1.0 protokołuSMB – teraz zasoby CIFS domyślnie podpinane są jako SMB 3.0. Warto podkreślić, że Linus dał radę, mimo że przyszło mu urodzić w szpitalu kamień nerkowy.

Linux 4.13 na czas – mimo kamienia nerkowego Linusa. Sprawdź nowości!

04.09.2017 10:51

Sterowniki grafiki

Tradycyjnie zaczynamy jednak od sterowników, szczególnie GPU. Wkernelu 4.13 sterownik AMDGPU otrzymał wstępne wsparcie dlanajnowszych rdzeni Raven Ridge, które wykorzystane mają być w takwyczekiwanych nowych APU czerwonych, łączących ze sobą rdzenieCPU Zen z grafiką Vega. Do tego dochodzą liczne poprawki dla samejVegi… ale wciąż nie jest to kernel nadający się do obsługitych najnowszych kart czerwonych, wciąż nie ma obsługi kwestiipodstawowej, tj. wyświetlania: kod Display Core i DisplayAbstraction Layer nie zdążył trafić do sterownika. Kiedy trafi?Sądząc po opublikowanej przez AMD liście rzeczydo zrobienia, trochę to jeszcze może potrwać, stawialibyśmyraczej na kernel 4.15 niż 4.14. Czerwoni powinni się pospieszyć –nawet ich komercyjny sterownik AMDGPU-PRO niewspiera jeszcze Vegi.

Pewne przyspieszenie mogą odnotować za to korzystający zestarszych kart graficznych do zadań obliczeniowych (np. kopaniaEthereum, ale przecież nie tylko). Sterownik Compute Ring Managementw AMDGPU zaczął bowiem korzystać z bardziej wydajnego zarządcyKIQ (Kernel Interface Queue). Wprowadzono też nowąmetodę aktywowania AMDGPU dla kart starej generacji, wciążkorzystających ze sterownika Radeon. Trzeba jednak pamiętać, żeowszem, AMDGPU jest wydajniejsze, ale wciąż nie wspiera np. dźwiękupo HDMI czy DisplayPorcie. Wybór należy do użytkownika.

Tymczasem po zielonej stronie płotu, otwarty sterownik Nouveauteż same niezbyt użyteczne rzeczy. Możemy teraz włączyćwsparcie dla stereoskopowego efektu 3D po HDMI, o ile oczywiściektoś ma pod ręką jakiś telewizor z poprzedniej epoki, gdy 3D byłowciąż modne. No cóż, niektóre gry FPS wypadają w tym całkiemnieźle.

Jeśli chodzi o Intela, to w 4.13 zadebiutował wstępne wsparciedla zintegrowanej grafiki procesorów Cannonlake i Coffeelake. Wkernelu 4.14 zapewne Coffeelake będzie już całkowicie wspierane (wkońcu to wciąż iGPU Gen9, żadnych realnych innowacji tam nie ma wporównaniu do Skylake), ale na Cannonlake przyjdzie poczekać, topierwsze iGPU Gen10, o zupełnie nowej architekturze.

Bardziej praktyczną rzeczą – przynajmniej dla korzystającychz wirtualizacji – jest wprowadzenie do kernela (na razie w gałęzistaging) sterownika grafiki VirtualBoksa. Docelowo trafić tam mająinne sterowniki wirtualnego sprzętu. Fantastyczna sprawa, w bliskiejprzyszłości uruchamiając linuksowe maszyny wirtualne wVirtualBoksie nie będziemy musieli marnować czasu na instalowanie wnich sterowników dla systemu-gościa (co zwykle wiąże się z ichkompilacją).

Dźwięk i inny sprzęt

Wspomnijmy jeszcze o pozostałych zmianach w sterownikach: kernel4.13 przynosi wsparcie dla ponad 500 nowych urządzeń. Domowiużytkownicy najbardziej ucieszą się z poprawek w kodekach audio,dostajemy bowiem obsługę coraz popularniejszych rozwiązańRealteka: ALC215, ALC285, ALC289 i ALC1220, wykorzystywanych chętniew najnowszych laptopach wielu producentów. Pojawiła się też łatkarozszerzająca obsługę dźwięku po HDMI w systemach korzystającychz GPU Nvidii, oraz ulepszone wsparcie dla kodeków korzystających zmagistrali Inter-IC Sound – tj. głównie nowych ultrabooków zprocesorami Core 7. generacji.

Sporo też poprawek „platformowych”. Linux 4.13 w pełniwspiera kontrolę jasności ekranu, głośności dźwięku i stanusieci radiowej dla laptopów Lenovo Ideapad. Poprawiono też obsługęklawiszy funkcyjnych w laptopach i komputerach typu All-in-One, przezproducentów zaprojektowanych do obsługi przez WMI (WindowsManagement Instrumentantion). Działać też będą włączniki Wi-Fiw laptopach korzystających z microsoftowych Wireless Radio ControlsExtensions (m.in. Dell Venue Pro 11 i HP Pavilion X2), rozszerzonotakże wsparcie dla gamepadów Microsoftu.

Warto też wspomnieć o pełnym wsparciu dla corazpopularniejszych czipów Wi-Fi, Realtek RTL 8153B oraz QuantennaQSR10G, oraz wprowadzeniu do ethernetowych sterowników Intela (i40e)oraz Qlogic FastLinq obsługi technologii Express Data Path, którazadebiutowała w kernelu 4.8.

TLS w kernelu

Najważniejszą nowością tego wydania jest wsparcie przez kernelszyfrowania TransportLayer Security (TLS) po gniazdkach TCP. Raptem 1500 linijek koduuczyni z Linuksa znacznie lepszą platformę dla serwerów webowych.TLS w kernelu (KTLS) obsługuje jedynie symetryczne szyfrowanie idzielenie rekordów na ramki, pozostawiając działającym wprzestrzeni użytkownika bibliotekom (np. OpenSSL) takie rzeczy jaknawiązywanie połączeń.

Takie rozwiązanie znacząco obniża obciążenie systemu przykorzystaniu z połączeń HTTPS, zwiększa przepustowość danych izmniejsza opóźnienia – nawet o 30-40% w porównaniu do tego, comoże działająca w przestrzeni użytkownika biblioteka OpenSSL.

2 miliardy plików w katalogu

Ext4 wspierał do tej pory maksymalnie 10 mln plików w katalogu.Wbrew pozorom posiadanie tylu plików wcale nie jest czymś wydumanym– może się przydarzyć np. dużym webowym serwisom,przechowującym binarne dane określonego typu (np. awatarkiużytkowników), nie mówiąc już o macierzach pamięci masowejsuperkomputerów. Teraz dzięki opcji LARGEDIR,standardowy linuksowy system plików ext4 może obsłużyć nawet do2 miliardów plików.

To nie jedyna zmiana w ext4: system ten uzyskał możliwośćdeduplikowania rozszerzonych atrybutów pliku (Xattr) celemoszczędzenia miejsca i przyspieszenia pracy. Znacząco teżograniczono opóźnieniaprzy montowaniu systemu plików z flagą discard, najczęściejstosowaną przy podłączaniu dysków SSD z ciągłą obsługą TRIM.Ext4 przetwarza teraz operacje discard równolegle, co pozwoliłozmniejszyć opóźnienia z 17 sekund do 5 sekund (w najgorszymodnotowanym przez dewelopera wypadku).

SMB3 dla zasobów Windowsa

Po odkryciu licznych słabości protokołu SMB w jego pierwszejwersji, Microsoft w praktyce skończył z jego wsparciem – w końcunie chcemy już więcej płakać nad ransomware WannaCry. W ślad zaRedmond idą deweloperzy Linuksa. Przy podłączaniu systemów plikówCIFS (z Windowsa czy Samby), domyślnie zostanie aktywowanabezpieczna, trzecia wersja protokołu Server Message Block.

Uwaga: jeśli serwer jest przestarzały i nie obsługuje SMB3,otrzymamy komunikat o błędzie. Wówczas jedynym sposobempodłączenia jego zasobów jest zastosowanie opcji montowaniavers=1.0. No cóż, tak to będzie wyglądało w wypadku wielustarszych NAS-ów i routerów, które wspierają zwykle tylko SMB1.

Bezpieczeństwo nade wszystko

Udało się w końcu ulepszyćpozyskiwanie losowych danych z generatora liczb losowych kernela, pojego pełnej inicjalizacji. Teraz programiści mogą sprawdzić, czygenerator dysponuje wystarczającą entropią – i zaczekać, ażjej pula się wypełni. W ten sposób unika się sytuacji, w którejpotrzebne we wszystkich praktycznie mechanizmach zabezpieczeń losowedane mogłyby być nie dość losowe.

Linuksowe oprogramowanie będzie teraz domyślnie odporniejsze nabłędy przepełnienia bufora – wprowadzona fortyfikacjaobsługi ciągów jest funkcjonalnym odpowiednikiem opcji_FORTIFY_SOURCE=1, jednak działać będzie na większej liczbiearchitektur. Kernel sam wykryje i przechwyci przepełnienia buforapodczas operacji na łańcuchach, zarówno przy kompilacji jak ipodczas działania programu.

Kolejne ważne zabezpieczenie to randomizacja układustruktur, znana już z rozszerzeń grsecurity. Napastnicy niebędą mogli śledzić najczęściej używanych lokalizacji kodu wpamięci, co utrudni im uzyskanie wyższych uprawnień –przynajmniej tam, gdzie buduje się własne kernele, a więc dziśzwykle w dużych firmach hostingowych czy u operatorów chmur.Zabezpieczenie to praktycznie nie ma znaczenia w zwykłychdesktopowych dystrybucjach – jego wykorzystanie znacznieskomplikowałoby budowanie modułów do kernela (np. sterownikówgrafiki).

Wreszcie też rozbudowano mechanizm AppArmor o rozszerzeniastworzone przez Canonicala i wykorzystywane tylko w kernelach Ubuntu– chodzi tu np. o mechanizm Domain Labelling Code, wykorzystywanyprzez demona paczek snap, aby ograniczać uprawnienia aplikacjidostarczonych w tym formacie. To jednak dopiero początek pełnejintegracji tych dodatkowych funkcji AppArmor. Ich wprowadzenie napewno jednak zwiększy popularność snapów poza Ubuntu.

Rośnie popularność interfejsu Thunderbolt, który choćsuperszybki, otwiera też nowe możliwości ataku na komputer. Kernel4.13 przynosi spore zmiany w obsłudze Thunderbolta, które pozwoląna granularne przydzielanie uprawnień urządzeniom podłączanymprzez ten interfejs. Dzięki temu uzłośliwione urządzeniazewnętrzne nie będą mogły np. uzyskać dostępu do całejpamięci. Pozostaje jeszcze sensownie oprogramować to po stronieużytkownika: stosowane w Windowsie 10 rozwiązanie nie ma większegosensu, bazuje bowiem na męczeniu użytkownika oknami dialogowymi, zpytaniami o zaufanie. Skąd użytkownik ma wiedzieć, czy ufaprojektorowi, który podłączył do komputera? Skoro podłączam, topewnie ufam… a może wcale nie powinienem?

Co tam w przyszłości?

Kernel 4.14 powinien zadebiutować w pierwszych tygodniachlistopada – wiadomo że przyniesie nową wersję mechanizmukontroli grup, nowy generator informacji o awariach kernela (ORCStack unwinder), nowe mechanizmy kompresji i dekompresji dla systemówplików, oraz wbudowane wsparcie dla heterogenicznej architekturypamięci, tak by CPU, GPU i inne *PU mogły sobie swobodnie korzystaćz całej dostępnej w systemie puli pamięci operacyjnej.

Programy

Zobacz więcej
Wybrane dla Ciebie
Komentarze (144)