Линус Торвальдс анонсировал релиз 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-адресов и подсетей;
Интегрирован новый планировщик потока пакетов CHOKe (CHOose and Keep), разработанный с целью избавления сетевых подсистем от излишней буферизации, приводящей к возникновению дополнительных задержек и понижению пропускной способности.
В соответствии современными реалиями и рекомендациями 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-памятью;
Виртуализация и безопасность
Интегрированы недостающие сетевые бэкенды (xen-netback), необходимые для работы Xen Dom0;
В DRM-драйвер для Xen Dom0 добавлена поддержка менеджера памяти TTM (Translation Table Maps);
В реализацию IPSec добавлена поддержка расширенных номеров последовательностей, определенных в RFC-4304;
Начальная поддержка нового вида изолированных контейнеров "user namespace", позволяющих делегировать права root группе процессов, отождествленных с контейнером, которые могут быть использованы только внутри этой группы и не могут влиять на другие части системы. Т.е. своеобразная легковесная техника виртуализации, при которой некоторые процессы могут быть отрезаны от остальной системы, работая в отдельном пространстве имен (необходимые для работы таких процессов ресурсы виртуально пробрасываются в контейнер);
Оборудование и аппаратные архитектуры
Добавлена поддержка новой архитектуры 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;
Сетевые адаптеры: 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.