r   e   k   l   a   m   a
r   e   k   l   a   m   a

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

Strona główna AktualnościOPROGRAMOWANIE

Wrzesień zaczynamy z nowym Linuksem. Wczoraj, zgodnie z harmonogramem, Linus Torvalds wydał wersję 4.13 kernela, wciąż pod nazwą kodową Fearless Coyote. Ponad 14 tys. commitów, ponad 600 tys. nowych wierszy kodu, a to wszystko przekłada się na zestaw wartych uwagi nowości. Wśród nich najciekawsze wydają się wprowadzenie szyfrowania komunikacji po TLS, obsługa nawet 2 mld plików w katalogach systemu plików ext4, znaczny wzrost odporności na exploity, oraz porzucenie domyślnej obsługi przestarzałej wersji 1.0 protokołu SMB – 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.

Sterowniki grafiki

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

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

r   e   k   l   a   m   a

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

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

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

Dźwięk i inny sprzęt

Wspomnijmy jeszcze o pozostałych zmianach w sterownikach: kernel 4.13 przynosi wsparcie dla ponad 500 nowych urządzeń. Domowi uż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ętnie w najnowszych laptopach wielu producentów. Pojawiła się też łatka rozszerzająca obsługę dźwięku po HDMI w systemach korzystających z GPU Nvidii, oraz ulepszone wsparcie dla kodeków korzystających z magistrali Inter-IC Sound – tj. głównie nowych ultrabooków z procesorami Core 7. generacji.

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

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

TLS w kernelu

Najważniejszą nowością tego wydania jest wsparcie przez kernel szyfrowania Transport Layer Security (TLS) po gniazdkach TCP. Raptem 1500 linijek kodu uczyni z Linuksa znacznie lepszą platformę dla serwerów webowych. TLS w kernelu (KTLS) obsługuje jedynie symetryczne szyfrowanie i dzielenie rekordów na ramki, pozostawiając działającym w przestrzeni użytkownika bibliotekom (np. OpenSSL) takie rzeczy jak nawiązywanie połączeń.

Takie rozwiązanie znacząco obniża obciążenie systemu przy korzystaniu z połączeń HTTPS, zwiększa przepustowość danych i zmniejsza opóźnienia – nawet o 30-40% w porównaniu do tego, co moż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. awatarki użytkowników), nie mówiąc już o macierzach pamięci masowej superkomputerów. Teraz dzięki opcji LARGEDIR, standardowy linuksowy system plików ext4 może obsłużyć nawet do 2 miliardów plików.

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

SMB3 dla zasobów Windowsa

Po odkryciu licznych słabości protokołu SMB w jego pierwszej wersji, Microsoft w praktyce skończył z jego wsparciem – w końcu nie chcemy już więcej płakać nad ransomware WannaCry. W ślad za Redmond idą deweloperzy Linuksa. Przy podłączaniu systemów plików CIFS (z Windowsa czy Samby), domyślnie zostanie aktywowana bezpieczna, 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 sposobem podłączenia jego zasobów jest zastosowanie opcji montowania vers=1.0. No cóż, tak to będzie wyglądało w wypadku wielu starszych 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, po jego pełnej inicjalizacji. Teraz programiści mogą sprawdzić, czy generator dysponuje wystarczającą entropią – i zaczekać, aż jej pula się wypełni. W ten sposób unika się sytuacji, w której potrzebne we wszystkich praktycznie mechanizmach zabezpieczeń losowe dane mogłyby być nie dość losowe.

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

Kolejne ważne zabezpieczenie to randomizacja układu struktur, znana już z rozszerzeń grsecurity. Napastnicy nie będą mogli śledzić najczęściej używanych lokalizacji kodu w pamię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łych desktopowych dystrybucjach – jego wykorzystanie znacznie skomplikowałoby budowanie modułów do kernela (np. sterowników grafiki).

Wreszcie też rozbudowano mechanizm AppArmor o rozszerzenia stworzone przez Canonicala i wykorzystywane tylko w kernelach Ubuntu – chodzi tu np. o mechanizm Domain Labelling Code, wykorzystywany przez demona paczek snap, aby ograniczać uprawnienia aplikacji dostarczonych w tym formacie. To jednak dopiero początek pełnej integracji tych dodatkowych funkcji AppArmor. Ich wprowadzenie na pewno 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. Kernel 4.13 przynosi spore zmiany w obsłudze Thunderbolta, które pozwolą na granularne przydzielanie uprawnień urządzeniom podłączanym przez ten interfejs. Dzięki temu uzłośliwione urządzenia zewnętrzne nie będą mogły np. uzyskać dostępu do całej pamięci. Pozostaje jeszcze sensownie oprogramować to po stronie użytkownika: stosowane w Windowsie 10 rozwiązanie nie ma większego sensu, bazuje bowiem na męczeniu użytkownika oknami dialogowymi, z pytaniami o zaufanie. Skąd użytkownik ma wiedzieć, czy ufa projektorowi, który podłączył do komputera? Skoro podłączam, to pewnie ufam… a może wcale nie powinienem?

Co tam w przyszłości?

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

© dobreprogramy
r   e   k   l   a   m   a
r   e   k   l   a   m   a

Komentarze

r   e   k   l   a   m   a
r   e   k   l   a   m   a
Czy wiesz, że używamy cookies (ciasteczek)? Dowiedz się więcej o celu ich używania i zmianach ustawień.
Korzystając ze strony i asystenta pobierania wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.