Линус Торвальдс анонсировал релиз Linux-ядра 2.6.39
Линус Торвальдс анонсировал релиз Linux-ядра 2.6.39 0, в состав которого включен код ipset, добавлен планировщик потока пакетов CHOKe, обеспечена поддержка архитектуры UniCore-32, добавлена новая подсистема "media controller", интегрированы сетевые бэкенды Xen. Нынешний релиз был выпущен с трудом, Линус намеревался выпустить еще одну тестовую версию (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), разработанный с целью избавления сетевых подсистем от излишней буферизации, приводящей к возникновению дополнительных задержек и понижению пропускной способности.
В соответствии современными реалиями и рекомендациями RFC 3390 до 10 сегментов увеличен начальный размер скользящего окна TCP, что позволит примерно на 10% повысить отзывчивость при выполнении таких операций, как открытие пользователем web-сайтов;
Память и системные сервисы
Реализация техники трансцендентного управления памятью ("Transcendent memory"), позволяющей улучшить поведение системы при работе с не представляющими важность данными (например кэш) в условиях дефицита оперативной памяти. По сути Transcendent memory напоминает RAM-диск, имеющий ряд особенностей: размер RAM-диска не известен, запись данных не всегда может быть гарантирована и уже записанные данные могут быть очищены (удалены);
Реализация таймера CLOCK_BOOTTIME, позволяющего организовать автоматический выход системы из спящего режима в определенное время;
Добавление опции, заставляющей обработчики прерываний выполняться в виде нитей (threads);
Реализована новая подсистема "media controller", расширяющая возможности V4L2 в плане работы с устройствами аппаратной акселерации обработки мультимедиа-контента;
Последний компонент ядра избавлен от использования глобальной блокировки (Big Kernel Lock, BKL).
Дисковая подсистема, ввод/вывод и файловые системы
Реализация новых системных вызовов 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() за исключением того, что сброс буферов на постоянный носитель осуществляется только для файловой системы, отождествленной с указанным файловым дескриптором;
Виртуализация и безопасность
Интегрированы недостающие сетевые бэкенды (xen-netback), необходимые для работы Xen Dom0;
В DRM-драйвер для Xen Dom0 добавлена поддержка менеджера памяти TTM (Translation Table Maps);
Оборудование и аппаратные архитектуры
Добавлена поддержка новой архитектуры 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;
Расширение поддержки оборудования, большинство изменений в ядре связаны с драйверами устройств;