Linux 4.8: psychotyczna spalona owca z podkręcaniem zegarów Radeona i odpornością na exploity
Mamy już nowego Linuksa 4.8. Pod nazwą kodową PsychoticStoned Sheep dostajemy spore wydanie: ponad 14,5 tys. commitów,zmienione niemal 11,5 tys. plików – a najważniejsza chyba zezmian pozostanie póki co przez użytkowników niezauważona, choćjej znaczenia nie sposób przecenić. Chodzi o nową infrastrukturędla systemu plików XFS, wykorzystywanego domyślnie w wieludystrybucjach (m.in. RHEL), który w przyszłości zyska zaawansowanefunkcje znane głównie z systemu plików ZFS dla Solarisa i FreeBSD.To oczywiście nie wszystko, w Linuksie 4.8 znajdziemy też(oczywiście) nowe sterowniki grafiki, ekspresową magistralę danychdla pakietów sieciowych, wirtualizację GPU Intela i zaawansowanemechanizmy bezpieczeństwa. Zapraszamy do przeglądu tego, czymniebawem już uraczą nas najpopularniejsze linuksowe dystrybucje.
Grafika
Tradycyjnie zacznijmy od grafiki. Sterownik nouveau dla grafikiNvidii otrzymał wstępne wsparcie dla kart z serii Pascal. Nie ma tuniestety żadnej akceleracji 3D, i nie będzie póki zieloni niedostarczą deweloperom podpisanych plików firmware – a dobrzewiemy, jak to wyglądało w wypadku architektury Maxwell. Jeślikomuś zależy na otwartych sterownikach grafiki, to powinienzainteresować się rozwiązaniami AMD.
Najnowsza wersja sterownika AMDGPU nie tylko bowiem zapewniawsparcie dla akceleracji 3D na niezłym poziomie, ale pozwala nawetna podkręcanie (na obsługiwanych kartach, tj. z GPU Sea Islands inowszymi) częstotliwości zegarów. Do tego doszło sporo poprawekdla zarządzania energią, oraz pewna obiecująca ciekawostka:eksperymentalne wsparcie nowego sterownika dla starszych kart z seriiRadeon HD7000 (rdzenie GCN 1.0).
Jeśli chodzi o sterownik grafiki Intela, to najważniejszązmianą jest dodanie wsparcia dla parawirtualizacji GVT-g w układachBroadwell i nowszych. Oznacza to, że maszyny wirtualne z Linuksemczy Windowsem będą mogły uzyskać bezpośredni dostęp dozintegrowanej grafiki hosta. Oczywiście wymaga to odpowiednich łatekdla hiperwizorów – zarówno KVM jak i Xen powinny je mieć jeszczew tym roku.
Systemy plików
Najważniejszą naszym zdaniem zmianą w Linuksie 4.8 jestwprowadzenie mechanizmu odwrotnego mapowania do popularnego systemuplików XFS. Pozwala on na precyzyjne śledzenie właścicielakonkretnego bloku na dysku i otwiera drogę do zbudowania mnóstwapożytecznych rzeczy, takich jak kopiowanie danych w trybiecopy-on-write, deduplikacja, natychmiastowe klonowanie, raportowanieo błędach w sektorach i utracie danych. W ten sposób XFS dorównamożliwościom systemom ZFS i Btrfs, a niewykluczone, ze będzie przytym odczuwalnie od nich szybszy. Jedno jest pewne – efektyzobaczymy szybko, to priorytetowy projekt dla Red Hata, którywykorzystuje XFS jako podstawowy system plików w swoich produktach.
Btrfs nie stoi jednak w miejscu, doczekał się zmian, które mająznacząco zmniejszyć skoki latencji przy operacjach zapisu i odczytuoraz czyszczenia buforów. To z kolei dobra wiadomość dla Synology,które w tym roku zdecydowało się skorzystać z Btrfs do obsługizaawansowanych funkcji swoich dysków sieciowych – ale zwydajnością tego rozwiązania wciąż bywa różnie.
Pozostałe zmiany o których warto wspomnieć to dalszeoptymalizacje dla przeznaczonego na flashowe pamięci systemu F2FS(zmniejszają obciążenie procesora podczas zapisu), ujednoliceniemechanizmu szyfrowania EXT4 i ulepszone wsparcie dla dysków twardychz gontowym zapisem magnetycznym (SMR).
Można tu też wspomnieć o zmianach w Device Mapperze, którepozwoliły na przekształcanie macierzy RAID (tzw. RAID LevelTakeover and Raid Reshaping). Działając w ramach menedżerawolumenów logicznych (LVM), Device Mapper potrafi terazprzekształcić np. RAID 0 w RAID 5, a RAID 5 w RAID 6 (działa totakże w drugą stronę). Podczas takiej transformacji mogą byćzmienione wszystkie parametry macierzy.
Bezpieczeństwo
Wprowadzone w Linuksie 4.8 zmiany rozwiązują problemjednoczesnego wykorzystania mechanizmów usypiania/hibernacji systemuoraz randomizacji przestrzeni adresowej kernela (KASLR), randomizacjata działa teraz także w systemach 64-bitowych. Powinno to znacznieutrudnić napastnikom wykorzystanie w praktyce exploitów kernela nakomputerach osobistych czy urządzeniach wbudowanych (serwerów sięraczej nie usypia).
Exploity utrudni też fakt, że kernel może sobie tworzyćstruktury danych z ochroną przed zapisem – moduły w pamięci,których nie można już zmienić. Dostajemy też mechanizmbezpiecznego kopiowania obiektów przesyłanych do i z przestrzeniużytkownika (to ulepszona wersja łatki PAX_USERCOPY znanej zpakietu Grsecurity), i ulepszenia dla mechanizmu zarządzaniapamięcią SLUB, które mają utrudnić wykorzystanie atakówprzepełnienia sterty.
Różne różności
W tym kernelu pojawił się wreszcie framework HDMI CEC, którypozwoli na sterowanie urządzeniami podłączanymi przez złączeHDMI poprzez ujednolicony interfejs – co ułatwi życie wszystkim,którzy używają linuksowego komputera jako media center. HDMI CECjest obecnie wspierane przez Samsunga, Sony, Sharpa i wielu innychproducentów TV.
Na koniec wspomnijmy o ważnej zmianie dla sieciowych zastosowańLinuksa. Nazywa się to ExpressData Path (XDP), nie wymaga żadnego specjalnego sprzętu, niejest żadnym zamiennikiem normalnego stosu TCP/IP , jest za tosuperszybkim, programowalnym mechanizmem uruchamiania programówfiltra BPF na przychodzących pakietach, jak tylko się one pojawią,z opcją tworzenia ich lustrzanych kopii na żywo. Można powiedzieć,że Linux, bez żadnych dodatkowych licencji i specjalistycznegooprogramowania pozwoli na robienie tego, co robiły drogiespecjalizowane urządzenia sieciowe.
Kiedy nowe jajko?
Trwają już prace nad Linuksem 4.9 (zapowiadającym spory wzrostwydajności systemów desktopowych, szczególnie tych z układamiAMD), a Linux 4.8 już trafia do dystrybucji typu rolling-release,takich jak Arch Linux czy openSUSE Tumbleweed. Za niespełna dwatygodnie powinniśmy zaś zobaczyć Ubuntu 16.10, którego domyślnymjądrem będzie właśnie 4.8.
Szczegółowe informacje o wprowadzonych zmianach znajdziecie w serwisie kernelnewbies.org.