Jądro Linux 3.6

Jądro Linux 3.6

    przez -
    6 474
    Linux Tux
    Linus Torvalds ogłosił wydanie jądra Linux 3.6, które jest aktualizacją dla wydanego jądra Linux 3.5. Z powodu wykrytych problemów, Linus zdecydował się wydać siedem wersji kandydujących. Linux 3.6 przynosi jak zwykle wiele zmian, a w szczególności aktualizację sterowników, poszerzoną listę obsługiwanego sprzętu, usprawnienia wielu komponentów jądra i systemu plików, a także zmiany w sieciach.

    System plików i przechowywanie danych

    Btrfs

    Eksperymentalny system plików Btrfs otrzymał wsparcie quotas dla subwoluminów – oddzielnych przestrzeni na systemie plików. Dodano także funkcję send/receive, która pozwala programom użytkownika odróżnić dwa różne snapshoty, zapisać różnicę do pliku, po czym przywrócić je, jeżeli będą wymagane.

    Ext4

    Usunięto informacje dotyczące quota z widocznych plików. Zamiast tego, są one przechowywane w formie ukrytych inodów w metadanych. Tym samym wsparcie dla tej funkcji zostało oznaczone, jako first class supported feature.

    Ograniczenie przed zwiększaniem uprawnień

    Jądro otrzymało możliwość nie podążania za dowiązaniami twardymi i miękkimi, które posiadają ustawiony sticky bit i wskazują na katalog wyżej w drzewie. Ma to zapobiegać zwiększaniu uprawnień atakującego, poprzez wykorzystanie uruchomionych w tle usług, z prawami roota.

    Zmiana rozmiaru

    Nowy interfejs pozwala programom w przestrzeni użytkownika na informowanie jądra, kiedy została zmieniona wielkość partycji, którą aktualnie wykorzystują. Pozwala to na śledzenie zmian wielkości partycji w czasie uruchomienia i podejmowanie odpowiednich działań. Jednym z pierwszych programów, które będą korzystały z nowego interfejsu jest resizeprat, zawarty w narzędziu util-linux 2.22-rc2

    RAID

    Zmiany w podsystemie MD, powinny zwiększyć wydajność tablicy RAID, jeżeli posiada ona jeden lub więcej dysków SSD. Narzędzie do mapowania urządzeń, potrafi obsłużyć funkcje RAID 10, zapewniane przez podsystem MD.

    SCSI

    Sterownik virtio-scsi otrzymał wsparcie hotplug, pozwalając na dodawanie lub usuwanie dysków z wirtualnych systemów, w czasie ich pracy.

    Sieci

    Dodano funkcję TCP Small Queues (TSQ), która nakazuje jądru używanie buforów nie większych, niż 128kB na port sieciowy. Ma to zapobiegać przeciążeniu i zbyt dużym opóźnieniom w przesyle danych.

    Pojawiła się obsługa TCP Fast Open (TFO) po stronie klienta. Na wersję dla serwerów poczekamy do wydania jądra Linux 3.7.

    Sterownik bnx2x, obsługujący chipy Broadcoma, otrzymał wsparcie standardu Energy-Efficient Ethernet (EEE), który został opisany w specyfikacji IEEE 802.3az. Sterownik stmmac dla wbudowanych jąder internetowych potrafi obsługiwać te technologie.

    Sterownik r8169 potrafi obsługiwać chipsety RTL8168G i RTL8106E. Sterownik WiFi rt2800pci otrzymał wsparcie dla chipsetów Ralink RF5360 i RT5392, oraz eksperymentalne wsparcie dla rodziny RT3290.

    Architektura

    Tryb wyłączenia

    Najnowsze jądro będzie posiadało sporo udoskonaleń, w kwestii oszczędzania energii. Urządzenia PCI-E będą mogły przechodzić w stan głębokiego uśpienia D3cold. Podsystem Libata potrafi w podobny sposób wyłączyć indywidualne porty ATA. Powyższe udoskonalenia są wstępem do wsparcia technologii zwanej ZPODD (Zero-Power Optical Disk Drive).

    Sterownik intel_idle potrafi kontrolować usypianie na generacji procesorów Ivy Bridge, co może się okazać przydatne, w przypadku braku obsługi przez firmware. Udoskonalono także narzędzie turbostat, które zapewnia analizę trybów turbo i uśpienia.

    Wirtualizacja

    Dodano IOMMU Groups, co udoskonaliło izolację urządzeń PCI i PCI-E , używający technologii wirtualizacji I/O, takich jak AMD-Vi iIntel VT-d. Funkcja IOMMU Group jest podstawą dla VFIO (Virtual Function I/O) userspace driver framework. Została ona napisane dla KVM, aby umożliwić szybki dostęp maszynom wirtualnym do urządzeń PCI i PCI-E, bez ryzyka awarii dla hosta.

    KVM zawiera sporo modyfikacji, które zmniejszają obciążenie, w celu zwiększenia wydajności oraz obsługi przerwań. Xen otrzymał wsparcie zapisu logów błędów maszyny przy pomocy mcelog. Nowy interfejs sysfs pozwala maszynom wirtualnym Xena, wyłączać rdzenie procesora, aby zaoszczędzić energię.

    Platformy

    Infrastruktura PERF, dostępna z procesorami Intel Nehalem i Sandy Bridge EP, oferuje pokazywanie informacji o wydajności przestrzeni uncore, która to zawiera kontroler pamięci oraz cache L3.

    Zoptymalizowano sterownik crypto, który udostępnia modułom algorytmów Serpent and Twofish, dostęp do implementacji asemblera AVX.

    Kod ARM otrzymał wsparcie chipów Marvell Armada XP i Armada 370, jak i platformy Altera z rdzeniem Coretex A9. Jądro potrafi zaadresować także Texas Instruments OMAP5. Kod MIPS otrzymał wsparcie dla Loongson 1B.

    Sterowniki

    Radeon
    Sterowniki Radeon potrafią teraz obsłużyć PCI-E 2.0, kiedy jest ta funkcja wspierana przez sprzęt. Udoskonalono także kod źródłowy dokumentacji.

    >nVidia
    Sterownik Nouveau otrzymał kilka drobnych zmian. Główną rewizję zobaczymy w jądrze Linux 3.7

    Intel
    Poszerzono listę rdzeni graficznych Haswell do 37 sztuk, które są wspierane przez sterownik i915.

    Multimedia

    Sterowniki dźwięki otrzymało wsparcie procesorów Intel Haswell oraz całej platformy Lynx Point. Zintegrowano kod wspierający demodulator Realtek RTL2832 DVB-T, używany w odbiornikach DVB-T, do podsystemu multimedialnego, ze sterownikami DVB i V4L. Jest on także używany przez sterownik dvb-usb-rtl28xxu, dzięki czemu dodano wsparcie Terratec Cinergy T Stick Black.

    Zintegrowano drugą część podsystemu EDAC – error detection and correction. Pojawił się sterownik do obsługi klawiatury USB Lenovo ThinkPad z trackpointem. Sterowniki multitouch wspierają protokół HID dla urządzeń dotykowych Windows 8. Dodano sterowniki do obsługi laptopów Lenovo IdeaPad Z570, Samsung R40 i Samsung R41, Asus K53E i Asus U41SV, Acer 1810TZ i Acer AOD260.

    Infrastruktura

    Być może doczekamy się wreszcie dobrej obsługi hybrydowego uśpienia, które po angielsku brzmi Suspend to Both. Polega ono na umieszczeniu zawartości systemu na dysku twardym oraz pamięci RAM, podczas hibernacji. Zaletą takiego rozwiązania jest bardzo szybkie wybudzenie, trwające kilka sekund.