Co nowego w kernelu 3.7 12


TuxDwa poprzednie wydania kernela były bardziej spokojnie – cykl prac trwał po 62 dni. Nad najnowszym wydaniem pracowano w sumie 71 dni. Nic dziwnego, skoro deweloperzy na ostatnie miesiące roku powyciągali z zakamarków swoich dysków twardych wszystkie ciekawe pomysły.

Podpisywane moduły kernela

Linuksowy kernel to monolit ale taki, który można składać w locie z mniejszych klocków. Jest to bardzo wygodne. Takie Ubuntu może dostarczać tysiące prekompilowanych sterowników ze swoim kernelem ale ładowane są tylko te, które są w danej chwili potrzebne. W ten sposób oszczędzamy pamięć operacyjną. Moduły pracują jednak w przestrzeni jądra i raz załadowane mogą wyrządzić wiele złego. Co powstrzyma twórcę wirusa przed napisaniem własnego modułu? Na pewno fakt, że do załadowania takiego kodu potrzeba uprawnień administratora. Ale…

Do tej pory nie było mechanizmu sprawdzania czy ładowany moduł rzeczywiście jest tym za który się podaje. Nieużywane binarki modułów leżą sobie na dysku. Powiedzmy, że atakujący podmienia binarkę i w momencie jej załadowania do jądra przejmie kontrolę nad komputerem.  Można moduł zamienić, można moduł zmodyfikować (dopisać do niego złośliwy kod). Wszystko wymaga uprawnień roota, ale wciąż scenariusz jest możliwy (chociaż mało prawdopodobny). Jak więc upewnić się, że ładowany moduł jest tym za który się podaje? Bardzo prosto – podpisując go cyfrowo. I w nowym kernelu można wymusić, aby każdy ładowany moduł był najpierw weryfikowany.

System plików btrfs i ext4

Jako uzupełnienie toczącej się tutaj dyskusji warto napisać kilka ciekawostek. Po pierwsze poprawiono wydajność zapisu/modyfikacji dużych plików. Na dyskach talerzowych przepustowość takich operacji powinna być około 20% wyższa, zaś na testowych dyskach flash podłączanych przez interfejs PCI, osiągnięto wynik 500% lepszy. Druga zmiana w obsłudze bardzo dużych plików dotyczy mechanizmu zapychania dziur. Jeżeli jakiś obszar pliku jest nieużywany, to zostanie „zapomniany” i zwolni pamięć. Przynajmniej do momentu, kiedy znowu ten obszar będzie potrzebny.
Co to są „bardzo duże pliki”? Np. terabajtowa plikopartycja maszyny wirtualnej.
Trzecia ciekawostka – zniesiono limit 20 twardych dowiązań na plik. Teraz jest on „nieco” większy: 2^16

Architektura ARM i ARM64

Procesory ARM robią teraz furorę – zarówno w świecie mobilnym jak i serwerowym. 64 bitowy ARM jest logicznym następstwem tego stanu rzeczy. Nowy kernel obsługuje cały zestaw instrukcji przewidzianych w specyfikacji ARM64. Urządzenia z tymi procesorami powinny pojawić się na rynku w przyszłym roku (kila modeli takich procesorów już istnieje, ale nie są one szeroko stosowane).

Jeżeli chodzi o typową architekturę ARM (32 bit) to trwają prace nad ujednoliceniem obrazów jądra systemu, tak aby raz skompilowany kernel mógł działać na jak największej ilości czipów. To jest standard w świecie architektury x86, ale dla ARM-ów to jest nowość. Wcześniej każdy producent podchodził trochę inaczej do kwestii zgodności między sobą (a także z Linuksem). Obecna ekspansja architektury ARM wymusza wypracowanie wspólnych standardów i rezultaty prac już widać. Można stworzyć obraz kernela 3.7, który będzie działał na czipach firm Highbank, Mvebu, Picoxcell, Socfpga i Vexpress.

Otwarte sterowniki graficzne

Wszystkie trzy główne sterowniki (dla kart Nvidia, AMD i Intela) dostały sporo nowych poprawek. W przypadku Nvidii jest to głównie masa łatek dla znalezionych błędów, ale też i lepsza obsługa sterowania obrotami wiatraczka z przestrzeni użytkownika. Posiadaczy laptopów z kartami graficznymi AMD Radeon ucieszy fakt poprawienia obsługi wielu monitorów (np. podłączanie rzutnika) oraz dodanie obsługi podświetlania matrycy i regulacji jasności w wielu modelach laptopów. Karty Intela bazujące na i915 (przyszłoroczne procesory Haswell i ValleyView) mogą teraz poprzez /sys raportować częstotliwość pracy. W tym samym miejscu można też regulować ten parametr (określając limity) w celu zmniejszenia zużycia energii.

Nowe sterowniki do sprzętu sieciowego

Sterownik ipheth umożliwia wykorzystanie iPhona 5 jako punktu dostępowego do internetu (tethering). Sterownik ath9 obsługuje teraz czipy Atheros AR9565. Nowy kernel obsługuje też nowe chipy 43242 i 43143 od Broadcoma.

Inne

  1. W podsystemie libata (obsługa dysków twardych SATA) włączono możliwość agresywnego oszczędzania energii (wg. specyfikacji AHCI 1.3.1).
  2. Udev (oprogramowanie m.in. tworzące system plików /dev ale też i zarządzające urządzeniami podłączanymi do komputera) nie będzie już używane do ładowania firmware urządzeń. Od wydania 3.7 będzie zajmował się tym kernel. Zmiana spowodowana jest częstym występowaniem dużych opóźnień w działaniu udev i w rezultacie znacznym wydłużeniem czasu uruchamiania się komputera.
  3. System oszczędzania energii w popularnych czipach audio jest teraz włączony domyślnie.
  4. Karty dźwiękowe oparte na nowych czipach C-Media I8328  będą teraz działać dzięki nowemu sterownikowi.
  5. Pojawiło się sporo sterowników dla tunerów DVB. Chodzi o urządzenia: Analog Devices’ ADV7604, TechnoTrend’s, Terratec Cynergy 2400i Dual DVB-T, Asus MyCinema U3100Mini Plus.
  6. Dodano sterownik obsługujący sprzęt audio-video w urządzeniach Easycap’s DVR USB
  7. Poprawiono część algorytmów kryptograficznych, osiągając w niektórych benchmarkach trzykrotny wzrost wydajności.
  8. Kernel 3.7 obsługuje teraz natywnie procesor ARM Broadcom’s BCM2835 używany w komputerku Raspberry PI. Wcześniej trzeba było kompilować kernel z dodatkowymi patchami.
  9. Linux obsługuje teraz więcej niż 32 urządzenia wejścia. Możecie już podłączać trzydziestą piątą klawiaturę do swojego komputera. Albo Balance Board od Nintendi Wii, bo i dla tego urządzenia pojawił się sterownik.
  10. Statystyki kernela 3.7: 16 191 690 linijek kodu w 40 905 plikach. W ciągu 71 dni wprowadzono 11 990 łat.

Źródła:
LKML.org (informacje o wydaniu)
h-online(1, 2, 3, 4, 5, 6)
phoronix.com(1)


Skomentuj konrad Anuluj pisanie odpowiedzi

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

12 komentarzy do “Co nowego w kernelu 3.7