środa, 4 listopada 2015

Linux 4.2 - kernel na jesień 2015

Linux Kernel 4.2 - Owocna jesień linuksowa 2015 


Koniec lata i jesień 2015 zapowiadała się wprowadzaniem najnowszego Jądra Linuksa do wszystkich wiodących dystrybucji linuksowych. Linus Torvalds ogłosił dnia 18 sierpnia 2015 wydanie siódmej wersji Release Candidate jądra Linuksa o numerze 4.2. Była to już ostatnia wersja kandydująca i w kolejnym tygodniu można się było spodziewać finalnego wydania 4.2, chociaż ostateczne wydanie Linux 4.2 opóźniło się o tydzień, z korzyścią dla jakości i ulepszeń. Z tego co napisał Linus Torvalds można wnioskować, że Linux 4.2 RC7 przynosi sporo zmian i są to chociażby uaktualnione sterowniki: sieci, NTB, Xen, MD i GPU, a reszta dotyczy architektury oraz uaktualnień sieci nie związanych ze sterownikami. 


 Jednakże nie było do końca pewne czy najbliższa czy jeszcze kolejna niedziela na pewno będzie dniem wydania wersji finalnej. Linus Torvalds uzależniał to od przebiegu prac w kolejnym tygodniu. Jak bowiem twierdził dużo prac w kolejnym tygodniu z przepisywaniem kodu niskiego poziomu dotyczącego x86 nie do końca go do tego przekonywało. Z jednej strony był przekonany, że problemy z kompatybilnością 32-bitową zostały już ostatecznie naprawione, z drugiej jednak strony jak to określił - "jest nadal lekko nieufny". Ogólnie jednak jest zadowolony z wydanej właśnie wersji oraz ilości zmian w jądrze genialnego systemu Linux. Podsumowuje to słowami: "Tak więc wydanie w przyszłym tygodniu jest z pewnością nadal możliwe." Teoretycznie więc 24 sierpnia 2015 mogło być datą wydania nowej wersji jądra Linuksa, a do tej pory można było pobrać i przetestować najnowsze wydanie Linuksa 4.2 RC7. 

Linuksa 4.2 - jedno z największych wydań kernela w historii


Linus Torvalds, zgodnie z harmonogramem, dnia 5 lipca 2015 roku wydał pierwszą wersję testową Release Candidate nowej wersji kernela Linux 4.2. Linus Torvalds stwierdził, że Linux Kernel 4.2 to "jedno z największych wydań w historii Linuksa". Linus wyjaśnił "To zależy jak na to spojrzeć, to wydanie dostało najwięcej commitów, tak więc, zaprawdę, to jedno z większych wydań Release Candidate w historii, ale wersja 3.10-rc1 była niemal tak samo duża, a finalna wersja 3.10 przerosła nasze oczekiwania. Myślę, że Linux 4.2 dorówna pod tym względem wersji 3.10, zwłaszcza, jak nie dodajemy poważniejszych zmian po -rc1. Jedynie wydanie 3.15-rc1 ma więcej commitów niż aktualnie 4.2-rc1, tak więc to nie jest największe wydanie -rc1 w historii, ale będzie jednym z najlepszych jakościowo." 


Jądro Linux 4.2 - Opis Kernela 


Ostatecznie z tygodniowym opóźnieniem, w niedzielę dnia 30 sierpnia 2015 roku pojawiło się finalne wydanie kolejnej, oznaczonej numerem 4.2 wersji jądra Linuksa. Wciąż nosi nazwę kodową „Hurd durr I'ma sheep” i nic dziwnego – kto by chciał zmieniać tak ładną nazwę? Nazwa się nie zmieniła, ale w środku sporo nowości, na czele z zupełnie nowym sterownikiem grafiki AMD. Poprawki wprowadzone przez ostatni tydzień sierpnia 2015 roku to same drobiazgi, i sam mistrz Linus przyznaje, że nie byłoby błędem wydać wersję 4.2 zgodnie z harmonogramem tydzień wcześniej, ale z drugiej strony, nic też takiego się nie stało, skoro wiele uciążliwych drobiazgów dopracowano. Coraz większe w rozmiarach jądro systemu Linux wymaga wiele staranności – od początku roku 2015 przybyło w jądrze Linuksa ponad 450 tysięcy linii kodu. Informatycy i programiści oraz testerzy dużo się zatem napracowali. 

Linus Torvalds w ostatnią niedzielę na koniec sierpnia 2015 roku ogłosił wydanie jądra Linux 4.2. Pojawił się sterownik AMDGPU, który zastąpił używane do tej porty wolne sterowniki Radeon. Ma on wspierać najnowsze karty graficzne, w tym: Radeon R9 285, Fiji, Fury, a także układ Carrizo. Dodano pełne wsparcie dekodowania filmów z użyciem silnika VCE1 w sterowniku Radeon. Sterownik graficzny VirtIO-GPU ma wspomóc akcelerację 2D dla maszyn wirtualnych i najpewniej będzie używany w projekcie Virgil3D, czyli wprowadzenia sprzętowej akceleracji 3D dla QEMU. Pojawiło się wstępne wsparcie dla układów Intel Broxton, które posiadają kartę graficzną z procesorów Skylake oraz architekturę, opartą o Goldmont. 

Oczyszczono sporo kodu Asemblera, dzięki czemu łatwiej go będzie utrzymywać. Poprawiono jego wydajność w ramach tych działań. Dodano obsługę nowych układów ARM: Freescale i.MX7D, ZTE ZX296702 i HiSilicon hi6220, a także płytki LeMaker HiKey. Udoskonalono obsługę procesorów Intela w tym: Intel PT hardware CPU tracer, Intel CQM (Cache Quality Monitoring), PEBSv3, PEBS interrupt batching. Dodano Jitter RNG do podsystemu kryptograficznego. Pojawiło się sporo ulepszeń w kwestii KVM i planisty. Dodano obsługę mikrokontrolerów Renesas H8/300, a także procesorów ARCv2 i HS38. 

Z ważnych zmian wspomnijmy dokładniej grafikę, bo to jest w tym wydaniu najbardziej interesujące. W wersji Linux 4.2 pojawił się nowy sterownik AMDGPU, który wspierać ma układy Tonga (Radeon R9 285) oraz późniejsze, działając obok standardowego sterownika Radeon i stanowiąc podstawę własnościowego sterownika Catalyst. Celem AMD jest doprowadzenie do sytuacji, w której Radeony będą mogły bez problemów działać na otwartym sterowniku, także dla tych, którzy chcą sobie pograć, zaś własnościowy sterownik, działający w przestrzeni użytkownika, byłby dla tych, którzy oczekują maksymalnej wydajności i zawierał tylko taki kod, którego nie można otworzyć i udostępnić ze względów licencyjnych. 

Druga ważna nowość w jądrze Linuksa 4.2 to sterownik VirtIO GPU, który otwiera drogę do udostępnienia sprzętowej akceleracji grafiki maszynom wirtualnym działającym pod kontrolą KVM i QEMU. W wersji 4.1 Linuksa zadebiutowało analogiczne rozwiązanie dla hiperwizora Xen. Więcej o tym można poczytać na stronie projektu Virgil 3D, rozwijanego przez Red Hata. Linux 4.2 otrzymał też wsparcie dla nowych czipów Atom Broxton, wykorzystujących najnowszą zintegrowaną grafikę gen9 Intela. To dobra wiadomość, gdyż pierwsze urządzenia z Broxtonami (głównie tablety) pojawić się mają już na jesieni 2015 roku. 

Ulepszono działanie narzędzia perf na systemach z procesorami Intela – jest ono wykorzystywane przede wszystkim do testowania wydajności aplikacji. Lista zmian jest spora, obejmuje między innymi sterowniki sprzętowego mechanizmu śledzenia procesora, kontroli jakości bufora itp.), a także dodanie nowych benchmarków i funkcji pomiarowych. 

Sporo istotnych zmian zaszło w hiperwizorze KVM. Najważniejszą jest wsparcie dla System Management Mode, niezbędnego dla obsługiwania UEFI Secure Boot w maszynach wirtualnych, ale też wsparcie dla techniki write combining, pozwalającej dane łączyć i przechowywać tymczasowo w buforze, a następnie zbiorczo zapisywać, bez konieczności przeprowadzania oddzielnych transakcji. Ma to znaczenie przede wszystkim w zapisie do pamięci karty graficznej. Dodano również obsługę wielu przestrzeni adresowych, a także poprawki dla architektur ARM i s390. 

Użytkowników nowoczesnych dysków SSD zainteresują zmiany w bibliotece libata, pozwalające lepiej Linuksowi obsługiwać mechanizm NCQ TRIM, pozwalający na kolejkowanie poleceń TRIM wraz z żądaniami I/O, a także jego wyłączanie i włączanie. Skolejkowany TRIM trafia coraz częściej do firmware nowych dysków, ale do tej pory jego stabilność pozostaje pod znakiem zapytania, więc możliwość wyłączenia jest tu bardzo przydatna. 

Trzeba także wspomnieć o zmianach w warstwie kryptograficznej Linuksa. Stworzono nowy interfejs programowania akcipher dla szyfrowania kluczem publicznym, który pozwala na przerzucenie niezbędnych obliczeń na wspierany sprzęt, jednocześnie zachowując pełną kompatybilność ze starym interfejsem. Cierpiącym na braki entropii systemom pomoże nowy generator jitter, który gromadzi krótkookresowe odchylenia od ustalonych charakterystyk pracy procesora. Wprowadzono też kilka nowych algorytmów szyfrujących, nową implementację szyfru RSA, oraz co szczególnie ciekawe dla użytkowników androidowych smartfonów, sprzętową akcelerację dla funkcji SHA-512 na 64-bitowych procesorach ARM. 

Pracujący dla firmy Red Hat deweloperzy Fedory ukończyli też prace nad wprowadzeniem do jądra mechanizmu UEFI ESRT (EFI System Resource Table). To nietrywialna rzecz, gdyż pozwoli na łatwe aktualizowanie firmware komputerów, wspierających specyfikację UEFI 2.5 lub późniejszą. Cały ten mechanizm będzie dostępny w przestrzeni użytkownika i udostępniony przez sysfs.

Deweloperzy firmy Samsung, idąc w ślad za wprowadzeniem do systemu plików ext4 natywnego wsparcia dla szyfrowania, wprowadzili coś bardzo podobnego do swojego systemu F2FS (Flash Friendly File System). Oprócz szyfrowania dodano też mechanizmy naprawcze dla zepsutych superbloków i lepszą obsługę TRIM.

Należy pamiętać o wsparciu dla nowych urządzeń peryferyjnych. Kernel Linux 4.2 radzi sobie już z projektowaną dla Windows 8 wieloprzyciskową myszką Logitech M560, która udaje przed systemem kombinację myszy i klawiatury. Fani Playstation ucieszą się zaś z obsługi bezprzewodowych kontrolerów Sony Motion Controller i Move Navigation Controller, wykorzystywanych w tych „ruchowych” grach konsolowych. Sporo zrobiono też w kwestii wsparcia dla architektury ARM, w szczególności dla czipów Tegra, Freescale i.MX7 i Allwinner A23, oraz licznych płytek deweloperskich. 

Już chwilę po wydaniu Linuksa 4.2 pojawiła się w Sieci wersja GNU Linux-Libre 4.2, pozbawiona obrzydliwości w postaci sterowników grafiki AMDGPU i Intel i915. Czemu obrzydliwości? Otóż sterowniki te pobierają sobie binarne komponenty, kalając w ten sposób czystość jądra. Na szczęście Free Software Foundation czuwa i oczyściła Linuksa z tego, co dla wolności niedobre. 

Kernel 4.2 w Ubuntu 


Użytkownicy długowiecznych wydań Ubuntu LTS jedyne czego mogą zazdrościć Ubuntu 15.10 Wily Werewolf, to nowy i naszpikowany nowościami kernel z linii 4.2.x. Nowy kernel to nie tylko dobrze wyglądający marketingowo numerek ale i nowe sterowniki, nowe optymalizacje i rozwiązania. Finalnie może skutkować lepszą obsługą karty graficznej (otwarte sterowniki), dłuższym czasem pracy na baterii i ogólną sprawnością, która na pulpicie jest zawsze pożądana. Jak zatem zapożyczyć od młodszego krewniaka kernel 4.2.x do naszego LTSa? Wszystko czego potrzebujemy to umiejętność wklejania poleceń do terminala (lub posługiwanie się wget i dpkg) oraz znajomość lokalizacji, gdzie znajdziemy archiwum zawierające przeróżne kernele dla Ubuntu. Tym miejsce jest kernel.ubuntu.com/~kernel-ppa/mainline, a nas interesuje stamtąd katalog v4.2.5-wily. Znajdziemy w nim kernel i jego nagłówki (potrzebne choćby do prawidłowego działania dkms). Jak się słusznie domyślacie, musimy je pobrać na dysk i zainstalować – pamiętając przy tym, aby pobrać wersję właściwą dla wersji naszego systemu, 32bit lub 64bit, a zalety najnowszego na 2015 rok kernela 4.2 długo by wymieniać. 


Najnowsze jądra czyli kernele systemu operacyjnego Linux rozpoczęło w marcu 2015 jądro z serii Linux 4.0. W drugiej połowie czerwca 2015 debiutuje stabilna wersja LTS jądra Linux 4.1. 

Nowe jądra nieomal natychmiast udostępniają wiodące dystrybucje jak chociażby ROSA Desktop Fresh,  OpenMandriva, Mageia, Ubuntu, Arch Linux czy Mint. Wyraźnie widać efekty w postaci szybszej i wydajniejszej pracy Linux OS, system startuje szybciej i zamyka się szybciej, szybciej startują programy. Na wielu dystrybucjach, jak w przypadku Rosa Linux trzeba dodać repozytorium z nową serią jądra do listy miejsc z których pobierane są aktualizacje (najpiej poprzez urpmi.addmedia) oraz dokonać aktualizacji z pomocą urpmi --auto-update - najbardziej niezawodnego, doskonałego narzędzia aktualizacyjnego w Linuksie opartym o bardzo wydajne paczki RPM. Rosa Linux, edycja Rosa Desktop Fresh jest jedną z najbardziej nowoczesnych, dopracowanych i niezawodnych dystrybucji Linuksa, najbardziej popularną w państwach BRICS, gdzie na tym systemie pracują miliony użytkowników. 

LINKI


Artykuł o jądrze Linux 4 



Brak komentarzy:

Prześlij komentarz