Линус Торвальдс анонсировал релиз Linux-ядра 2.6.39, в состав которого включен код ipset, добавлен планировщик потока пакетов CHOKe, обеспечена поддержка архитектуры UniCore-32, добавлена новая подсистема "media controller", интегрированы сетевые бэкенды Xen ("netback"). Нынешний релиз был выпущен с трудом, Линус намеревался выпустить еще одну тестовую версию (rc8) для окончательной проверки всех внесенных после выпуска rc7 изменений, которых оказалось достаточно много. Так как Линус должен посетить конференцию LinuxCon в Японии, выпуск еще одной тестовой версии означал бы срыв всех планов и перенос релиза как минимум на три недели, поэтому посоветовавшись разработчики приняли решение выпустить релиз как есть с учетом того, что последние тестовые выпуски зарекомендовали себя, как достаточно стабильные.

В новую версию принято 11055 исправлений от 1405 разработчиков, размер патча - 56 Мб (добавлено 11014 тыс. строк кода, удалено - 10979 тыс. строк). Около 39% всех представленных в 2.6.39 изменений связаны с драйверами устройств, примерно 26% изменений имеют отношение к обновлению кода специфичного для аппаратных архитектур, 12% связано с сетевым стеком, 5% - файловыми системами и 6% c внутренними подсистемами ядра.

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

  • Сетевая подсистема
    • Интеграция кода ipset, позволяющего повысить эффективность работы пакетного фильтра с большими списками IP-адресов и подсетей. Подробнее о последней версии ipset можно прочитать здесь;
    • Интегрирован новый планировщик потока пакетов CHOKe (CHOose and Keep), разработанный с целью избавления сетевых подсистем от излишней буферизации, приводящей к возникновению дополнительных задержек и понижению пропускной способности.
    • В соответствии c современными реалиями и рекомендациями RFC 3390 до 10 сегментов увеличен начальный размер скользящего окна TCP, что позволит примерно на 10% повысить отзывчивость при выполнении таких операций, как открытие пользователем web-сайтов;
    • Добавлена новая дисциплина планирования приоритетов, манипулирующая сразу несколькими очередями пакетов и поддерживающая вынос управления QoS на плечи сетевых адаптеров, поддерживающих данный вид акселерации;
  • Память и системные сервисы
    • Реализация техники трансцендентного управления памятью ("Transcendent memory"), позволяющей улучшить поведение системы при работе с не представляющими важность данными (например кэш) в условиях дефицита оперативной памяти. По сути Transcendent memory напоминает RAM-диск, имеющий ряд особенностей: размер RAM-диска не известен, запись данных не всегда может быть гарантирована и уже записанные данные могут быть очищены (удалены);
    • Реализация таймера CLOCK_BOOTTIME, позволяющего организовать автоматический выход системы из спящего режима в определенное время;
    • Добавление опции, заставляющей обработчики прерываний выполняться в виде нитей (threads);
    • Реализована новая подсистема "media controller", расширяющая возможности V4L2 в плане работы с устройствами аппаратной акселерации обработки мультимедиа-контента;
    • Последний компонент ядра избавлен от использования глобальной блокировки (Big Kernel Lock, BKL).
    • Специальные привилегированные процессы теперь могут записывать данные в /proc/pid/mem других процессов;
  • Дисковая подсистема, ввод/вывод и файловые системы
    • Реализация новых системных вызовов name_to_handle и open_by_handle, позволяющих пользовательским приложениям сопоставить имя файла с внутренней структурой file_handle или открыть файл, указав его handle. Нововведение может быть полезным для реализации серверов NFS и 9P на пользовательском уровне. Файловая система XFS уже поддерживает подобные механизмы, которые были реализованы через специализированные ioctl-вызовы FS_IOC_PATH_TO_HANDLE и XFS_IOC_OPEN_BY_HANDLE;
    • Добавлен новый системный вызов syncfs(int fd), который работает как sync() за исключением того, что сброс буферов на постоянный носитель осуществляется только для файловой системы, отождествленной с указанным файловым дескриптором;
    • Добавлена специализированная псевдо-файловая система "pstore", предназначенная для организации доступа к присутствующим на некоторых платформах хранилищам, позволяющим сохранить отладочную информацию о причине краха между перезагрузками;
    • Добавлено специальное блочное устройство "mtdswap", позволяющее осуществлять своппинг напрямую в MTD-устройства (Memory Technology Devices), оперирующие с Flash-памятью;
    • Проведена работа по повышению масштабируемости и производительности файловой системы Ext4 и подсистемы работы с блочными устройствами. Ext4 теперь по умолчанию монтируется с опцией mblk_io_submit, задействуя механизм Multiple Page-IO Submissions. Код по поддержке Multiple Page-IO Submission был добавлен ещё в 37 ветке, но содержал серьёзную ошибку, приводящую в определённых случаях к потере данных, и поэтому был отключён по умолчанию (сейчас данная ошибка исправлена). Также значительно обновлена документация по Ext4, добавлены разъяснения новых опций и обзор файлов в Procfs и Sysfs, создаваемых ФС;
    • В файловой системе Btrfs реализована функция Batched Discard, позволяющая информировать SSD-накопители о неиспользуемых областях;
  • Виртуализация и безопасность
    • Интегрированы недостающие сетевые бэкенды (xen-netback), необходимые для работы Xen Dom0;
    • В DRM-драйвер для Xen Dom0 добавлена поддержка менеджера памяти TTM (Translation Table Maps);
    • В реализацию IPSec добавлена поддержка расширенных номеров последовательностей, определенных в RFC-4304;
    • Начальная поддержка Linux capabilities в изолированных контейнерах "user namespace", что позволяет делегировать расширенные права (например, root-доступ) группе процессов, отождествленных с контейнером, которые могут быть использованы только внутри этой группы и не могут влиять на другие части системы. User namespace является своеобразной легковесной техникой виртуализации, при которой некоторые процессы могут быть отрезаны от остальной системы, работая в отдельном пространстве имен (необходимые для работы таких процессов ресурсы виртуально пробрасываются в контейнер);
    • В KVM обеспечена поддержка асинхронной обработки обращения к невыделенным страницам памяти (page faults), что дает возможность выполнения в гостевой системе не связанной с выделением памяти нити во время выделения хост-системой запрошенных страниц памяти;
  • Оборудование и аппаратные архитектуры
    • Добавлена поддержка новой архитектуры UniCore-32, разработанной в микропроцессорном центре Пекинского университета. Процессоры на базе архитектуры UniCore-32 активно используются в Китае;
    • Улучшения DRM/KMS-модулей:
      • Поддержка метода Page Flipping и Z-сжатия (Z-compression) для видеодрайвера Nouveau.
      • Реализация в DRM/KMS-драйвере Radeon поддержки карт Radeon HD 6900 "Cayman", а также поддержка тайлинга (tiling, процесс обработки изображения по частям с последующей раздельной обработкой фрагментов) для карт r6xx/r7xx.
      • Включение в состав ядра прототипа драйвера для карт Intel GMA 500 Poulsbo, который пока не поддерживает функции акселерации.
      • Добавление DRM-модуля для видеокарт с интерфейсом USB и USB2VGA-переходников на базе чипов DisplayLink, позволяющих подключить дополнительный монитор через USB-порт;
    • Начало работы по унификации кода поддержки платформ m68k и m68knommu;
    • Расширение поддержки оборудования, большинство изменений в ядре связаны с драйверами устройств:
      • Cистемы: VIA/WonderMedia VT8500/WM85xx SoC, платы IMX27 IPCAM и смартбуки MX51 Genesi Efika, платы CompuLab, сенсоры платформы Intel Medfield и WMI-интерфейс ноутбуков Asus;
      • Контроллеры блочных устройств: ARASAN CompactFlash PATA, Broadcom NetXtreme II FCoE и Freescale MXS Multimedia Card, кард-ридеры RealTek PCI-E;
      • Сетевые адаптеры: WiFi чипы Realtek RTL8192CU и RTL8188CU, Blouetooth-контроллер Texas Instruments WiLink7, Bosch C_CAN, Faraday FTMAC100 10/100 Ethernet;
      • USB-контроллеры: Faraday FUSB300, OMAP USBHS host, NVIDIA Tegra USB host, Diolan U2C-12 USB;
      • Звуковые карты, подключаемые через Firewire. Кодеки: Wolfson Micro WM8991, Cirrus CS4271, Freescale SGTL5000, TI tlv320aic32x4, Maxim MAX9850. USB-карты TerraTec 6fire DMX.
      • Video4Linux: ресиверы Technisat USB2.0 DVB-S/S2, сенсоры камер Silicionfile NOON010PC30 CIF, тюнеры DiBcom 9000, камеры 3com homeconnect "ViCam", демодуляторы ST Microelectronics STV0367, контроллеры камер на базе OMAP3 и Divio NW80x, инфракрасные приемники ITE Tech IT8712/IT8512;
    • Улучшена поддержка процессоров Intel на базе архитектуры "SandyBridge";
    • В USB-подсистему добавлена поддержка хабов USB 3.0;


Источник: http://www.opennet.ru/opennews/art.shtml?num=30603