Релиз Linux-ядра 2.6.37

Линус Торвальдс представил релиз Linux-ядра 2.6.37, в котором представлена поддержка механизма синхронизации TINY_PREEMPT_RCU, продолжена работа по избавлению ядра от глобальных блокировок, в состав включены дополнительные элементы для обеспечения поддержки Xen Dom0, активирован механизм нотификации об изменениях в файловой системе fanotify.

В новую версию принято 12237 (в 2.6.36 было 10195) исправлений от 1456 (1326) разработчиков, размер патча — 67 Мб (добавлено 11139 тыс. строк кода, удалено — 11131 тыс. строк). Около 39% всех представленных в 2.6.37 изменений связаны с драйверами устройств, примерно 24% изменений имеют отношение к обновлению кода специфичного для аппаратных архитектур, 12% связано с сетевым стеком, 6% — файловыми системами и 5% c внутренними подсистемами ядра;

Наиболее интересные новшества ядра 2.6.37:

  • Виртуализация и безопасность
    • Начальная поддержка хост-режима системы виртуализации Xen (Dom0). Для полноценной поддержки Dom0 в Linux-ядре теперь недостает только бэкенд-драйверов, которые планируется интегрировать в версию 2.6.38;
    • В состав ядра включены Xen-драйверы privcmd и xen-pcifront. Добавлена поддержка Xen PCI, реализована возможность горячей замены паравиртуализированных PCI-устройств (Xen paravirtualised PCI hotplug);
    • В KVM обеспечена возможность создания паравиртуализированных гостевых окружений на платформе PowerPC;
    • В криптоподсистему добавлена поддержка интерфейса AEAD (Authenticated Encryption with Associated Data);
  • Память и системные сервисы
    • Поддержка сжатия методом LZO сбрасываемого на диск содержимого памяти при переходе в спящий режим;
    • Окончательный уход от использования устаревшей глобальной BKL-блокировки (Big Kernel Lock), которая оставалась многие годы узким местом в некоторых подсистемах;
    • TINY_PREEMPT_RCU — легковесный вариант механизма синхронизации RCU (Read-copy-update), позволяющего организовать одновременный доступ к данным без использования блокировок. TINY_PREEMPT_RCU отличается значительным уменьшением потребления памяти, но поддерживает только однопроцессорные системы;
    • Объявлена устаревшей и отключена по умолчанию вторая версия иерархии объектов в служебной файловой системе sysfs;
    • При выполнении «make xconfig» конфигуратор теперь по умолчанию использует библиотеку Qt4;
  • Дисковая подсистема, ввод/вывод и файловые системы
    • В libata добавлена поддержка секторов, размером более 512 байт (например, 4 Кб). Реализован класс ATA-транспорта. Добавлена поддержка LPM для разветвителей портов;
    • Для файловой системы Ext4 добавлена функция «Lazy Inode Table Initialisation», созданная с целью значительного сокращения времени создания Ext4-разделов. Добавлена поддержка контроля за Ext4 через sysfs;
    • В файловой системе XFS поддержка опции «-o delaylog» переведена в разряд стабильных. Опция предназначена для организации отложенной записи в лог в режиме журналирования, позволяя организовать накопление нескольких асинхронных транзакций в памяти, вместо их многократного сброса в лог. Использование отложенной записи позволяет заметно сократить число операций ввода/вывода, связанных с журналированием, и повысить производительность при интенсивных операциях с мета-данными;
    • Fnotify, новый механизм уведомления приложений (например, антивирусных сканеров) об изменениях в файловой системе, идущего на смену системам inotify и dnotify (для данных систем обеспечен режим эмуляции, который работает поверх fanotify). Fanotify поддерживает отслеживание как активных событий (открытие, закрытие, чтение, запись и т.п.), так и выполнение пассивных операций, таких как открытие специального файлового дескриптора к отслеживаемому объекту, доступного только на чтение. В отличие от inotify и dnotify в новой системе устранены проблемы с масштабированием при контроле за большим числом объектов и обеспечена поддержка нотификации на основе блокировки и контроля доступа.
    • Появилась поддержка опции «root=PARTUUID=hex-uuid», нацеленной на корректное определение блочных устройств с которых должно производиться монтирование корневого раздела, через указание UUID дискового раздела;
    • В файловой системе OCFS2 (Oracle Cluster File System) добавлена поддержка монтирования дисковых разделов, размером более 16 Тб. Добавлена новая опция монтирования «coherency=*» для реализации обеспечения согласованности данных в кластере при режиме записи O_DIRECT. Добавлен ioctl OCFS2_IOC_INFO, позволяющий получить непривилегированному пользователю статистику о работе ФС;
    • В реализацию файловой системы CIFS добавлена поддержка опций монтирования «mfsymlinks» и multiuser«, а также возможность привязки к определенному локальному IP;
    • В файловой системе NFS добавлена опция ‘-olocal_lock’ для локального хранения локов;
  • Сетевая подсистема
    • Добавлена возможность конфигурирования подсетей как локальных адресов, например, для привязки всех адресов подсети 10.1.0.0/16 к интерфейсу eth0 (ответ будет получен при запросе любого адреса из данной подсети), необходимо выполнить «ip rule add from all iif eth0 lookup 200; ip route add local 10.1/16 dev lo proto kernel scope host src 127.0.0.1 table 200»;
    • Поддержка программной эмуляции аппаратных механизмов акселерации VLAN. Поддержка 802.1q VLAN для Infiniband over Ethernet;
    • Проведена большая работа по оптимизации работы на SMP-системах кода, связанного с маршрутизацией и работой драйверов;
    • Приведены в соответствие с RFC 3390 и RFC 5681 параметры формирования начального размера скользящего окна TCP;
    • В ядро интегрирован код проекта accel-pptp, который представляет собой высокопроизводительную реализацию сервера PPTP/PPPoE/L2TP и клиента PPTP, основанную на коде проектов poptop и pptpclient, но благодаря работе на уровне ядра, отличающуюся от poptop/pptpclient существенным ускорением работы и понижением нагрузки на CPU. В состав ядра включено два модуля: «pptp» (PPP over IPv4, Point-to-Point Tunneling Protocol) и «gre» (демультиплексор GRE-пакетов);
  • Оборудование и аппаратные архитектуры
    • В DRM-модуле i915 для видеокарт Intel реализована поддержка вывода звука через DisplayPort и HDMI порты, обеспечена поддержка GPU, встроенного в процессоры SandyBridge. Добавлен драйвер-заглушка для Intel GMA500 (Poulsbo). В Nouveau добавлена поддержка сенсоров, например, для слежения за температурой. В Radeon добавлена поддержка карт семейства Evergreen. В VIAFB добавлена начальная поддержка VX900;
    • Драйвер uas с поддержкой протокола USB Attached SCSI Protocol (UASP) для устройств хранения с интерфейсом USB 3.0;
    • В подсистеме ata добавлена поддержка Intel IDE-R, в ata_piix реализован режим LPM;
    • Интегрирован драйвер для поддержки аппаратного акселератора AES-шифрования на платформах OMAP2/3;
    • Новые драйверы для беспроводных устройств: Atheros AR9170 802.11n, ath6kl (Atheros AR6003), brcm80211 (Broadcom 802.11n), r8712u (RealTek RTL8712U/RTL8192SU), Beeceem USB Wimax, SBE 2T3E3. В драйвере ath5k добавлена поддержка виртуальных STA и AP;
    • Драйверы для USB-устройств: Flarion OFDM, кард-ридеры ENE, Intel Langwell USB OTG Transceiver, UAS, Meywa-Denki Kayac YUREX, Atmel SAM Boot Assistant (SAM-BA);
    • Поддержка устройств ввода Apple Magic Trackpad;
    • Драйверы для звуковых плат: Intel SST, Edirol DA-2496, Aztech Sound Galaxy, Traktor Kontrol S4, BOSS ME-25, USB3 SuperSpeed, поддержка звука в большом количестве новых ASoC.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.