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

Linux 4.12: Radeon Vega, przyspieszenie HDD i sporo bezpieczeństwa

Strona główna AktualnościOPROGRAMOWANIE

Linux 4.12 został właśnie wydany. Pod nazwą kodową „Fearless Coyote” dostajemy kernel, któremu przybyło ponad milion wierszy kodu i ponad 15 tysięcy zmian. Może nie jest to wynik rekordowy, ale jeden z najlepszych. Liczby liczbami, ale dla użytkowników liczą się konkretne nowości – a tych jest mnóstwo, to jak dotąd najważniejsze wydanie Linuksa w 2017 roku. Zapraszamy do przeglądu tego co najciekawsze.

Vega już prawie wspierana

Zacznijmy jak zwykle od wsparcia dla procesorów graficznych. Na czele wysuwa się wsparcie dla najnowszych kart Radeon z serii RX Vega – przynajmniej jeśli chodzi o kod dostarczony do Direct Rendering Managera (DRM). Linus Torvalds zaakceptował niemal 400 tys. wieszy kodu z tym związanych. Niestety to jeszcze nie wszystko, by nowe Vegi mogły od razu działać – brakuje jeszcze kodu do stosu wyświetlania (DC/DAL), wskutek czego GPU jest obsługiwane… ale niczego na ekranie nie pokaże. Póki co więc wykorzystanie na Linuksie tych nowych kart pod czysto opensource’owym sterownikiem ograniczać się będzie do zastosowań czysto obliczeniowych – np. kopania kryptowalut takich jak Ethereum.

Pierwsze kroki poczyniono w zakresie obsługi kart GeForce z serii 1000. Nie tylko dodano wsparcie dla popularnego GTX 1050 (procesor GP107), ale też łatki dla opensource’owego sterownika nouveau przyniosły wreszcie sprzętową akcelerację dla nowych Pascali, choć trzeba być szalonym, by używać tego do czegoś więcej niż efektów pulpitu. Do tej pory nouveau nie obsługuje bowiem sterowania częstotliwością zegara GPU dla nowych kart Nvidii, a co za tym idzie, wydajność w grach jest mierna. No cóż, jak ktoś chce na Linuksie grać, to w grę wchodzi tylko własnościowy sterownik „zielonych”.

r   e   k   l   a   m   a

Użytkownicy zintegrowanej grafiki Intela doczekali się wreszcie domyślnego włączenia obsługi atomowych ustawień trybu (mode setting) – przełączanie między rozdzielczościami i ich testowanie będzie teraz znacznie szybsze i stabilniejsze. Aby z tego skorzystać, należy mieć iGPU przynajmniej piątej generacji.

Linux bez restartów

Dwa lata temu w Linuksie 4.0 wprowadzono mechanizm Kernel Live Patching, który pozwalał na zaktualizowanie kernela bez restartu systemu. Sęk w tym, że był on mniej skuteczny niż wcześniej oferowane przez Oracle i RedHata rozwiązania takie jak Kpatch czy Kgraft – działał w 90% przypadków, podczas gdy tamte były w stanie obsłużyć do 95% łatek kernela. W Linuksie 4.12 debiuje rozwiązanie o nazwie Per-Task Consistency Model, które jest syntezą podejścia stosowanego przez Kpatch i Kgraft – radzi sobie ze zmianami w kernelu na żywo nawet wówczas, gdzie łatka modyfikuje zawartość pamięci czy semantykę danych. Dodatkowo potrafi usunąć moduł jądra, na którym zastosowano wprowadzone na żywo łatki.

BFQ: szybciej na talerzowych dyskach

W Linuksie 4.12 pojawił się wreszcie domyślnie nowy dyspozytor I/O – BFQ (Budget Fair Queuing). To rozwinięcie stosowanego od lat dyspozytora CFQ (Completly Fair Queuing Storage) zaprojektowano głównie z myślą o systemach desktopowych, stosując rozmaite heurystyki, które pozwalają przyspieszyć operacje dyskowe najczęściej wykonywane przez użytkownika. Tak więc np. preferowane są operacje odczytu, bo zwykli użytkownicy więcej odczytują niż zapisują. Priorytetyzowane są też operacje I/O programów, z którymi użytkownik wchodzi w interakcje, kosztem procesów działających w tle. Do tego BFQ zbiera nadchodzące wywołania operacji I/O w paczki, by zbiorczo przesłać je do twardego dysku.

BFQ przynosi wyraźny wzrost wydajności dla talerzowych dysków. Nowoczesne pamięci SSD, nie mówiąc już o NVMe, raczej niewiele skorzystają, wydaje się nawet, że ten nowy dyspozytor może obniżyć w ich wypadku wydajność całego systemu. No cóż – nie ma uniwersalnych rozwiązań, równie dobrych w każdym scenariuszy,

Oprócz BFQ pojawił się też dyspozytor Kyber, zaprojektowany przez Facebooka. Tutaj mamy wręcz odwrotną sytuację: przyda się w zastosowaniach serwerowych, gdzie wykorzystywane są macierze pamięci masowych NVMe. Optymalizowane są operacje odczytu pod kątem jednoczesnej obsługi wielu procesów, jak również asynchroniczne operacje zapisu. Dyspozytor ten ma być wysoce konfigurowalny, tak by każdy operator centrum danych mógł swoje Linuksy dostosować do konkretnych obciążeń roboczych.

Jak szybko startuje system?

Nowy kernel przynosi nową wersję intelowskiego narzędzia AnalyzeBoot, oznaczoną jako 2.0. To skrypt służący do wgenerowania interaktywnego dokumentu HTML, pokazującego czas rozruchu poszczególnych podsystemów kernela, od jego wczytania do uruchomienia init. Dane zbierane są albo przez tracer funkcji, albo przez mechanizm dmesg. Ładnie to wygląda, a przy tym przyda się wszystkim tym, którzy optymalizują kernele.

Zapytaj o niezawodność

Popularny system plików XFS doczekał się wspacia dla nowego wywołania ioctl o nazwie GETFSMAP, wcześniej wspieranym już też na standardowym systemie plików EXT4. Wywołanie to pozwala aplikacjom zapytać system plików o spójność danych, to jest wykorzystanie bloków na dysku – zidentyfikowanie pustych obszarów, ustalenie pozycji metadanych, powiązanie danych użytkownika z określonymi plikami.

Dysponując takimi informacjami, aplikacje mogą łatwo sprawdzić możliwe błędy odczytu na dysku, a następnie wskazać, które pliki są nimi dotknięte – i przystąpić do ich ratowania.

Co potrafi powiedzieć USB Type-C?

Podsystem USB doczekał się nowej klasy dla nowoczesnych złączy szeregowych Type-C. Przez nie aplikacje mogą zarówno pytać o ich stan (oczywiście o ile obsługują to sterowniki), jak również nimi sterować, np. przełączając tryby przesyłu danych czy kontrolując napięcie.

Do tego pojawiła się obsługa debugowania systemu po złączu USB 3.x – nawet zanim udostępnione zostaną inne wyjścia, np. sieć czy grafika.

Podkręcanie bezpieczeństwa

W Linuksie 3.14 zadebiutował eksperymentalnie mechanizm KASLR (Kernel Address Space Layout Randomization), właściwie to samo, czym dziś Microsoft chwali się w odniesieniu do zabezpieczeń Windowsa 10. Teraz KASLR uznano za wystarczająco dojrzały (w architekturze x86), by go domyślnie włączyć. Kernel będzie więc zmieniał losowo swoje wewnętrzne adresy, by utrudnić życie autorom exploitów. Co prawda wielu ekspertów od bezpieczeństwa twierdzi, że ta metoda zabezpieczenia jest formą kultu cargo, równie łatwą do zaimplementowania i wytłumaczenia laikom, co łatwą do obejścia – ale nikt nie twierdzi przecież, że tylko na tym ma bezpieczeństwo Linuksa polegać.

Kernel obsługuje teraz podsystem TEE (Trusted Execution Enviroment) układów ARM. To taki sobie zamknięty mini-system, ukryty w strefie TrustZone, niedostępny dla normalnych aplikacji i wykorzystywany np. do przechowywania kluczy szyfrujących czy skrótów kryptograficznych bootloadera. Obsługa sprowadza się tu oczywiście tylko do interfejsów TEE, kernel do środka nijak nie zajrzy, w dodatku potrzeba jeszcze zgodnych sterowników do układów SoC, ale już w ten sposób można zaimplementować bezpieczny rozruch w rodzaju Secure Boot.

Położono też podwaliny pod mechanizm Kernel Lockdown, który pozwala ograniczyć dostęp do zasobów sprzętowych, gdy system zostaje uruchomiony w jakimś bezpiecznym trybie (np. wspomnianym UEFI Secure Boot). Chodzi o uniemożliwienie wprowadzania zmian do działającego kernela – np. zablokowanie ładowania niepodpisanych modułów, zakaz pisania bezpośrednio do pamięci, wyłączenie hibernacji, ograniczenia ACPI czy trybu debugowania. Ot taki knebel dla całej przestrzeni użytkownika.

Domyślny system całodyskowego szyfrowania w Linuksie – dm-crypt dostał teraz nowe urządzenie o nazwie dm-integrity. Przechowuje ono metadane służące do testów spójności danych. W połączeniu z nowym zabezpieczeniem Cryptographic Data Integrity Protection, kernel potrafi teraz wykrywać i ostrzegać, gdyby doszło do zmiany bloków na zaszyfrowanym dysku bez użycia właściwego klucza.

Na koniec warto wspomnieć o czarnej liście kluczy, którym kernel ma nie ufać – nawet jeśli mają podpisy czy certyfikaty uznane za wiarygodne. W ten sposób system może zablokować ładowanie modułów, które mogłyby np. zawierać funkcje szpiegowskie.

Kompletna lista nowości w Linuksie 4.12 powinna niebawem pojawić się już w serwisie Kernel Newbies – w momencie pisania tego tekstu wciąż wisiał tam opis 4.11.

© 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.   

Trwa konkurs "Ogól naczelnego", w którym codziennie możecie wygrać najnowsze maszynki systemowe Hydro Connect 5 marki Wilkinson Sword.

Więcej informacji

Gratulacje!

znalezione maszynki:

Twój czas:

Ogól Naczelnego!
Znalazłeś(aś) 10 maszynek Wilkinson Sword
oraz ogoliłaś naszego naczelnego!
Przejdź do rankingu
Podpowiedź: Przyciśnij lewy przycisk myszki i poruszaj nią, aby ogolić brodę.