Jądro Linux 3.1

Jądro Linux 3.1

    przez -
    28 1101
    Linux Tux
    Linus Torvalds ogłosił wydanie jądra Linux 3.1, które jest aktualizacją dla wydanej serii 3.0. Nowa wersja przynosi jak zwykle wiele zmian, a w szczególności aktualizację sterowników (głównie dla WiFi), poszerzoną listę obsługiwanego sprzętu oraz usprawnienia dotyczące wirtualizacji.

    Sterowniki WiFi

    Jądro Linux 3.1 otrzymało dużą ilość sterowników do bezprzewodowych kart sieciowych. Deweloperzy jądra dodali sterownik rtl8192de, który wspiera takie chipy jak: RTL8192DE oraz RTL8188DE PCIe. Natomiast sterownik rtl8192cu został zaktualizowany i otrzymał wsparcie dla modułów WiFi na USB.

    W dużej liczbie netbooków pojawiły się chipy WiFi firmy Intel, dlatego nowe jądro otrzymało aktualizację sterownika iwlagn. Wspiera on teraz standard WoWLAN (Wake on Wireless LAN) oraz kilka dodatkowych parametrów związanych z zarządzaniem energią. Pierwszy z nich to power_save, który odpowiada za oszczędzanie energii i jest domyślnie wyłączony. Drugi z nich to power_level, który pozwala na ustawienie poziomu oszczędzania energii, między wartościami 1 – 5.

    Kolejnym zaktualizowanym sterownikiem jest ath9k dla chipów Atheros. Pojawiła się w nim obsługa AR9330. Natomiast sterownik ath6kl, który jest ulepszoną wersją poprzednika, o tej samej nazwie, zostanie włączony dopiero w jądrze Linux 3.2.

    Sterownik Ralink Rt2800 zaczął obsługiwać takie chipy jak: RT3572, RT3592, RT3592. Ulepszona została obsługa serii Rt35xx, która zmieniła status na testową.

    Sterowniki dla Broadcoma

    Wokół sterowników dla chipów Broadcoma powstało małe zamieszanie. Otóż w gałęzi rozwojowej dostępne są dwie wersje: jedne tworzone przez Broadcoma (brcmsmac), a drugie przez Polaka, Rafała Miłeckiego (b43). Linus chcąc uniknąć dublowania obsługi tych samych urządzeń, poprosił o wyjaśnienie tej sprawy. Dlatego Miłecki napisał do Broadcoma w tej kwestii, jednakże bez odzewu z drugiej strony.

    Do tej pory żaden ze sterowników nie trafił do stabilnej gałęzi, jednakże b43 ma lepsze szanse, ze względu na większą liczbę wspieranych chipów. Prócz nich brakuje również brcm80211, który został wydany przez Broadcom we wrześniu 2010 roku, ale nie został dopuszczony przez hackerów jądra, ze względu na brak spełnionych standardów.

    Sterownik b43 wspiera teraz wiele kart Wi-Fi 802.11n, kompatybilnych z Advanced Microcontroller Bus Architecture (AMBA). Są to m.in. BCM43224 (PCI-ID 14e4:4353) i BCM43225 (14e4:4357), których obsługę dodał Rafał Miłecki, sponsorowany przez Politechnikę Poznańską.

    LAN

    Ulepszono wsparcie ipset, które zostało dodane w jądrze 2.6.39, w celu udostępniania filtra informacyjnego, umożliwiającego prostszy i szybszy dostęp do tabel, z kodem zapory sieciowej. Obsługa sieci w jądrze została wzbogacona o podsystem Near Field Communication (NFC). Zapoczątkowany w jądrze 3.0, kompilator Just-in-Time od Berkeley Packet Filter otrzymał wsparcie dla systemów PPC64.

    Pozostałe zmiany w obsłudze sieci tyczą się głównie aktualizacji sterowników.

    System plików

    Programowy RAID zaczął wspierać zarządzanie uszkodzonymi blokami, a dm-crypt potrafi informować dysk SSD o wolnych powierzchniach. Zaktualizowano iSCSI target framework LIO do wersji 4.1, natomiast docelowe ustawienia Ext3 czynią system plików bardziej solidnym, ale wolniejszym.

    Dodatkowo Ext3 otrzyma barierę zapisu, znaną z Ext4, która lekko spowolni jego szybkość, ale ulepszy stabilność w przypadku awarii. Ext4 natomiast będzie pamiętał nieużywane bloki, które wcześniej zostały zgłoszone do podstawowego magazynu danych, podczas żądania wysłanego przez Fstrim. Btrfs będzie mógł natomiast przyspieszyć przy mocnym obciążeniu odczytu, dzięki mechanizmowi zamykania.

    Programiści jądra rozszerzyli pstore (platform persistent storage), w celu umożliwienia przechowywania danych do analizy, w przypadku awarii, w nieulotnym obszarze pamięci, wykorzystywanym przez UEFI.

    Wirtualizacja

    Dzięki integracji odpowiednich komponentów do operacji Dom0 dla hyperwizora Xen, wersja 3.1 będzie oferowała kilka dodatkowych opcji. Jedną z nich jest możliwość kontroli trybu tekstowego VGA przez Xen, co pozwoli jądrowemu Dom0 na wyświetlanie wyjścia obrazu. Kolejną rzeczą jest backend dla PCI, co daje możliwość skorzystania z urządzeń PCI/PCIe. Dodano wsparcie SR-IOV dla parawirtualizowanych gości, podłączania dodatkowej pamięci RAM na włączonej maszynie.

    KVM otrzymał podstawową funkcjonalność do startowania goszczonych systemów z innego goszczonego systemu (zagnieżdżona wirtualizacja) na procesorach Intela. Gość KVM może od teraz używać funkcji procesora SMEP (Supervisory Mode Execute Protection), która jest jedną z nowych cech nadchodzących procesorów Ivy Bridge.
    Wsparcie zero-copy RX dla Macvtap i Vhost-net (domyślnie wyłączone i eksperymentalne), zostało zaprojektowane w celu ulepszenia wydajności sieciowej na środowiskach wirtualnych, ponieważ zmniejsza przeciążenie administracyjne, kiedy dane są wymieniane lub przekazywane przez sieć.

    Deweloperzy zmodyfikowali kod czasu KVM (KVM timer code)w celu implementacji wsparcia kradzionego czasu (steal time). Nowy kod jest używany przez KVM w trybie hypervisora na 64 bitowych procesorac Book-3S, takich jak POWER7.

    Infrastruktura

    Jądro otrzymało specjalny kod do dynamicznego kontrolowania ilości zapisywanych danych do szybkości zapisu danego urządzenia, dzięki czemu praca systemu nie zostanie zakłócona przez przeładowanie.

    Dokonano kilku zmian w SLUB slowpaths, które zostały zaprojektowane w celu zwiększenia wydajności SLUB, funkcji, które są odpowiedzialne za doręczanie małych fragmentów pamięci. Okazuje się jednakże, że starsze alternatywy SLAB dla SLUB, są w niektórych obszarach nadal lepsze. Przyszłe optymalizacje mają na celu zredukowanie lub całkowite wyeliminowanie tejże luki.

    Architektura

    Linux 3.1 jako pierwszy będzie wspierał architekturę OpenRISC – otwarto-źródłową architekturę procesorów, z zestawem instrukcji RISC, która została zaprojektowana przez OpenCores.org, ale jest tymczasowo rozwijana przez projekt OpenRISC.net.

    Kod Sparc wspiera od teraz procesory serii UltraSPARC-T3. Nadal poprawiane jest wsparcie architektury ARM, która posiadała kilka niejasności, przez co Linus Torvalds, zmienił zasady dodawania nowych platform, na bardziej restrykcyjne. Prócz tego zobaczymy także wsparcie dla SoC Prima2, Zynq oraz platform Omap S3C, rozwijanych przez Samsunga i Texas Instruments.

    Zarządzanie energią

    Kod zarządzania energią oferuje teraz power domains, które są aktualnie związane głównie z platformami wbudowanymi. Od jądra Linux 3.1 katalog z narzędziami z oprogramowaniem kernel-related userland będzie zawierał narzędzie diagnostyczne cpupower, które to jest następcą popularnego cpufrequtils, odpowiedzialnego za oszczędzanie energii i częstotliwość wielu nowoczesnych procesorów.

    Sterowniki graficzne

    Sterownik Nouveau-DRM/KMS potrafi generować firmware “fuc” dla chipów graficznych Fermi, co pozwoli jądru na używanie różnych funkcji graficznych 3D kart graficznych serii 4xx i 5xx. Wiki projektu Nouveau twierdzi, że ta funkcjonalność będzie działała z chipami NVC0, NVC4, NVCE, które nie są zawarte w serii GTX, jak 460, 465, 470, 470M, 480, 480M, 560. Reszta modeli działa niestabilnie, mają różnorakie braku, nie zostały przetestowane lub działają tylko ze sterownikami własnościowymi. Aby używać wyżej wymienionych możliwości, wymagane jest posiadanie sterowników Mesa 3D i X.Org. Warto dodać, że powyższe sterowniki nie wspierają oszczędzania energii i kontroli wiatraków.

    Programiści sterownika Intel DRM/KMS planują dodać domyślną opcję RC6, która odpowiada za zarządzanie mechanizmem oszczędzania energii, który jest dostępny w wielu procesorach i chipsetach Intela, z przestrzeni kilku lat. Aktualnie jest ona wyłączona, ponieważ sprawiała na kilku komputerach problemy ze stabilnością, jednakże jej zalety są nieocenione. Szczególnie chodzi tutaj o notebooki, ponieważ zmniejsza ona zużycie energii o 6 Watów, oraz zmniejsza głośność systemów chłodzenia, przez odpowiednie zarządzanie częstotliwością pracy.

    Aby włączyć opcję, należy dodać parametr: i915_enable_rc6=1. podczas ładowania modułu i915, albo dać wywołanie dla jądra z takim samym parametrem.

    Główny część sterownika graficznego GMA500, została rozszerzona o wsparcie platformy Medfield, jednakże nadal pozostaje w sferze rozwojowej.

    Sterownik Radeon DRM/KMS dla Radeonów HD 5000, został rozszerzony o komendy obliczeniowe, pozwalające na przekazywanie obliczeń do chipów graficznych.

    Dźwięk i obraz

    Sterownik snd-ctxfi wspiera od teraz Creative Titanium HD. Sterownik HDA-codec wspiera kodeki serii CS421x Cirrus Logic i Creative CA0132.

    Podsystem multimedialny ze sterownikami do zdalnej kontroli i dla sprzętu DVB, radio oraz wideo został rozszerzony o sterowniki dla demodulatora Micronas DRX-K DVB-C/T i tunera TDA18271C2. Sterownik ddbridge wspiera sprzęt wideo z komponentami Ddbridge, takimi jak Octopus, Octopus mini, Octopus LE i cineS2(v6) h DuoFlex S2 lub tunerem DuoFlex CT.

    Pojawił się nowy sterownik ir-mce_kbd-decoder, który pozwala Microsoft Remote Keyboard z systemu Windows Media Center Edition, na użytkowanie z normalnym odbiornikiem IR.

    Bluetooth

    Wiele zmian dokonano w kwestii zmniejszenia poboru energii. Andre Guedes dodał wsparcie LE Adversiment cache, dzięki czemu wszystkie znalezione w pobliżu urządzenia są cacheowane w liście, a po ich zniknięciu od razu usuwane z listy. Vinicius Gomes i Anderson Briglia dodali wstępną implementację LE Security Manager Protocol. Aktualnie zaimplementowane jest jedynie JustWorks pairing.

    Gustavo Padovan pracował nad refaktoryzacją zestawu łatek L2CAP, w celu wyraźnego podziału między l2cap_core.c i l2cap_sock.c. Peter Hurley poprawił sporo potencjalnego impasu we wszystkich podsystemach Bluetooth. Mat Martineu przeprojektował często zajętą lokalną obsługę wewnątrz L2CAP Enhanced Retransmission Mode.

    Dokonano sporo pomniejszych zmian, napraw i oczyszczenia kodu, jak poprawie ścieżki autoryzacji HCI przez Waldemara Rymarkiewicz, czy zdalna czarna lista urządzeń w interfejsie MGMT.

    Pełna lista jest dostępna po przez tą komendę:

    git shortlog -n v3.0..origin/master –no-merges  net/bluetooth/ include/net/bluetooth/ drivers/bluetooth

    Pomniejsze zmiany

    Zabraknie kilku sterowników do Microsoft Hyper-V, które zostaną dodane dopiero w jądrze 3.2, z powodu błędów jakości. Rozszerzono podsystem wejścia, dołączając sterownik Wiimote dla Human Interface Devices (HID), który pozwala na użytkowanie kontrolerów Wiimote od konsoli Nintendo Wii, jako urządzenia wskazującego.

    Dodano sterownik dla platformy IdeaPad, która pozwala na kontrolę jasności. Działa to również z Samsungiem Q10 oraz niektórymi notebookami Dell Latitude X200.