Jądro Linux 3.4

Jądro Linux 3.4

    przez -
    15 565
    Linux Tux
    Linus Torvalds ogłosił wydanie jądra Linux 3.4, które jest aktualizacją dla wydanego jądra Linux 3.3. Z powodu wykrytych problemów, Linus zdecydował się wydać aż siedem wersji kandydujących, Nowa wersja przynosi jak zwykle wiele zmian, a w szczególności aktualizację sterowników, poszerzoną listę obsługiwanego sprzętu, usprawnienia dotyczące wirtualizacji i systemu plików, a także kilka zmian w sieciach.

    Sterowniki graficzne

    nVidia

    Mesa 3D otrzymała sterowniki ncv0, dzięki czemu prócz wsparcia chipów graficznych GeForce 400 i GeForce 500, mamy wsparcie dla rdzenia NVE4/GK104 Kepler, czyli GTX 680. Inne karty graficzne z chipami Kepler otrzymają wsparcie w następnych wersjach.

    AMD

    Sterownik Radeon DRM/KMS będzie wspierał chipy graficzne Southern Islands i Trinity. Southern Islands znane też jako RAxx zawiera rdzenie Tahiti, Pitcairn i Verde, które znajdują się w kartach graficznych Radeon HD 7700, 7800 i 7900.

    Trinity natomiast to najnowsza rodzina procesorów APU, która ma zastąpić Llano. Posiadają one udoskonalone rdzenie Bulldozer oraz architekturę graficzną VLIW4 znaną z serii Radeon HD 6990 (Cayman). Warto dodać, że sterownik xf86-video-ati 6.14.4 posiada wsparcie dla APU Trinity.

    Znajdziemy także wsparcie tilingu 2D dla chipów Northern Islands i Evergreen. Dodano technologię dystrybucji różnych danych pomiędzy pamięcią kart graficznych, co powinno zwiększyć wydajność. Pojawiła się również poprawka dla adapterów VGA z DisplayPort na procesorach serii A.

    Intel

    Dodano długo oczekiwane wsparcie dla technologii oszczędzania energii RC6. Działa ona z procesorami Sand Bridge i zmniejsza pobór mocy w idlu do 3-5 Watów. We wcześniejszych jądrach wystarczy dodać parametr i915.i915_enable_rc6=1, aby owa funkcja została włączona. Warto przypomnieć, że jądro Ubuntu 12.04 LTS posiada to domyślnie aktywowane.

    Naprawiono problem ze sterownikiem i915 DRM/KMS, który powodował wycieki pamięci lub nieprawidłowe zachowanie, podczas przechodzenia w stan hibernacji i uśpienia.

    Sterownik Intela w nowym jądrze otrzymał wsparcie przeplotu w wyjściach HDMI i SDVO. Na starszych rdzeniach graficznych sterownik i915 DRM/KMS będzie teraz wykorzystywać wcześniejsze cechy swizzling i ppgtt, które powinny dać pewien wzrosty wydajności. W trakcie prac odkryto również problemy z udziałem interakcji pomiędzy ponownym mapowaniem DMA, wymaganym do VT-d, a ppgtt. W konsekwencji jądro będzie używało tego ostatniego, tylko w przypadki wyłączenia remapowania DMA i dezaktywowania technologii VT-d w BIOSie.

    Monitory USB

    Pojawiła się obsługa protokołu DisplayLink, który jest używany do kontrolowania monitorów USB. Sterownik został napisany przez Dave’a Airlie i wspiera podstawową funkcjonalność sprzętu UDL. Warto dodać, że sterownik udl jest silnie związany z KMS, co pozwala wykorzystać jego możliwość ze wolnymi sterownikami graficznymi.

    Duża część kodu udl jest oparta o udlfb, sterownik bufora ramki USB DisplayLink, który jest częścią jądra i oferują podobną funkcjonalność. Przepisane go do infrastruktury DRM/KMS jest ważną częścią procesu integracji, a także projektu Wayland. Udl wspiera hot plugging.

    Infrastruktura

    x32 ABI

    Począwszy od jądra Linux 3.4, programy które zostały skompilowane jako 32 bitowe, mogą wykorzystać x32 ABI (Application Binary Interface) w celu dostępu do 64 bitowych rejestrów i ścieżek danych, dzięki czemu nie niwelowany jest nażut związany z 64 bitowymi operacjami – mniejsze zużycie pamięci, a jednocześnie aplikacje 32 bitowe mogą wykorzystać część z udogodnień, jakie niesie ze sobą architektura 64 bitowa.

    Wirtualizacja

    Zmiany w kodzie Xen obejmują modyfikacje operacji jądra Dom0, w celu przesyłania kilku informacji z prędkością zegara procesora i stanów uśpienia do hyperwizora Xen, po tym jak procesor zinterpretuje tabele ACPI w BIOSie. Hyperwizor może użyć tych informacji do zarządzania P-stanami procesora lub wysłać CPU w krótkie C-stany (uśpienie). Zmniejsza to pobór prądu, a w szczególności wydłuża czas działania baterii w notebookach.

    Urządzenia PCI 2.3, które posiadają linie przerwań z innymi urządzeniami PCI, mogą być użytkowane przez maszyny wirtualne na hoście KVM. Podsystem SCSI zawiera sterownik virtio-scsi (taka sama nazwa jest wspierana w Qemu), jest odpowiedni do emulowania urządzeń, które kontrolują przesył danych pomiędzy hostem, a maszynami wirtualnymi bez zbytniego obciążenia.

    Obsługa ARM

    Przepisano od nowa cały kod obsługi ARM, które to prace rozpoczęto ponad rok temu. Nowy framework Common CLK pozwala jądru na sterowanie węzłami zegara obecnymi w dzisiejszych urządzeniach. Ma to uprościć i zredukować powtarzający się kod obsługujący wiele urządzeń, opartych o architekturę ARM. Podobne cele są rpmsg i remoteproc, których kod jest używany do komunikacji z innymi procesorami, jeżeli jest ich kilka na jednym chipie SOC.

    Warto zaznaczyć, że jądro Linux 3.4 jako pierwsza wersja obsługuje chip Samsung Exynos5250, SMP na nVidia Tegra 3, a jądro ARM oferuje kompilator Just-in-Time do filtrowania pakietów sieciowych.

    Pomniejsze zmiany

    Różne zmiany w kodzie x86 i systemie udev, mają pozwolić na automatyczne ładowanie odpowiednich sterowników do każdego procesora, jeżeli zostały one skompilowane jako moduły. Zintegrowano sporo udoskonaleń do infrastruktury Ftrace. Nowe opcje konfiguracyjne pozwalają użytkownikom i dystrybucjom zdefiniować, jak jądro ma obsługiwać ASPM (Active State Power Management).

    Systemy plików, przechowywanie danych i sterowniki

    Przechowywanie danych

    Kod MD do obsługi RAID otrzymał możliwość zmiany rozmiary macierzy RAID 10 (md/raid10 – support resizing some RAID10 arrays) w taki sposób, że dodatkowa przestrzeń w urządzeniu składowym może być użyta, po zmianie podstawowych dysków na większe. Sterownik dla kontrolerów hosta flash, który posiada specyfikację Universal Flash Storage (UFS), został dodany do podsystemu SCSI. Libfc, który zajmuje się obsługą różnych zadań sprzętu Fibre Channel, wspiera Fabric Device Management Interface (FDMI), który jest zdefiniowany, jako specyfikacja FC-GS-4.

    Sieć

    Sterownik sieci bezprzewodowej Brcmfmac Broadcom współpracuje z chipami USB Bcm43235/6/8, podczas gdy sterownik Ralink rt2x00 wspiera chipset sieci bezprzewodowej RT5372. Sterownik rtl8187, odpowiedzialny za chipy Realtek otrzymał wsparcie ad hoc. Dodano rozszerzenia do infrastruktury Netfilter, dzięki czemu administratorzy mogą definiować własne limity czasowe dla każdego przepływu danych.

    Sterowniki

    Sprzęt DVB otrzymał wsparcie dla tunera KWorld PC150-U ATSC, AzureWave 6007 oraz sprzętu USB 2.0 DVB-T/C. Pojawił się nowy sterownik RTL2831U dla sprzętu DVB-T.

    Sterowniki dla sprzętu audio, AHCI i adapterów SATA otrzymały wsparcie dla chipsetów Intel Lynx Point, która to platforma ma się pojawić w 2013 roku, razem z procesorami Haswell. Dodano sterownik dla touchpadów Synaptics poprzez USB. Udoskonalono kodeki dźwięku Realtek i ich konfigurację. Dzięki poprawionym sterownikom dla notebooków Samsunga, możemy uruchomić podświetlenie klawiatury. Kod USB otrzymał automatyczną aktywację funkcji usypiania hubów USB 3.0. Sysfs potrafi kolejkować urządzenia podłączone do portu USB, które mają zostać usunięte, na podstawie informacji z firmware lub BIOSu. Dodano kod sterownika Audio Class 2.0 Driver do gadżetów USB, dzięki czemu system Linux może być sprzętem audio dla innego systemu.