Релиз Linux ядра 2.6.33
Спустя менее чем три месяца с момента выхода прошлой версии 2.6.32, Линус Торвальдс представил следующий релиз Linux ядра - 2.6.33 0. В новое ядро принято 11708 исправлений от 1354 разработчиков, размер патча - 54 Мб (добавлено 869 тыс. строк кода, удалено - 489 тыс.).
Основные новшества:
* Дисковая подсистема, ввод/вывод и файловые системы
o Принят код DRBD, реализация распределенного реплицируемого блочного устройства (RAID-1 по сети);
o Удалена поддержка планировщика ввода/вывода Anticipatory Scheduler, вместо него рекомендуется использовать CFQ;
o Интегрирована система "Block I/O controller", предназначенная для организации ограничения пропускной способности блочных устройств. Одно из наиболее интересных применений разработки - введение ограничений на дисковый ввод/вывод для одного или группы процессов, а также для окружений, работающих через системы виртуализации.
o Переработана организация блокировок в файловой системе reiserfs v3: осуществлена замена глобальной блокировки на использование рекурсивного mutex, что не решило всех проблем (полный уход от глобальных блокировок требует переработки архитектуры reiserfs), но позволило частично повысить производительность reiserfs на многоядерных и многопроцессорных системах.
* Сетевая подсистема
o Поддержка TCPCT (TCP Cookie Transactions), расширения протокола TCP, нацеленного на защиту от DoS-атак, таких как SYN-флуд и массовый преждевременный обрыв соединений. В отличие от классического кода защиты от SYN-флуда, TCPCT не конфликтует с другими расширениями протокола TCP, но требует поддержки в TCP-стеках на стороне клиента и сервера. Основная причина использования TCPCT - активное внедрение протокола DNSSEC.
* Память и системные сервисы
o Compcache - система для организации хранения содержимого системных кэшей в сжатом виде. Основная идея новой технологии в сжатии неиспользуемых страниц памяти и оставлении их в ОЗУ, без вытеснения в раздел подкачки. По сути Compcache представляет собой размещенный на RAM-диске виртуальный раздел подкачки с хранением данных в сжатом виде.
o Добавлен новый системный вызов recvmmsg(), позволяющий организовать получение в рамках одного системного вызова сразу нескольких сообщений, которые ранее потребовали бы отдельных вызовов recvmsg(). Технология значительно повышает эффективность работы приложений передающих большие объемы данных или оперирующих пакетами небольшого размера.
* Оборудование и аппаратные архитектуры
o В экспериментальном режиме включен DRM-модуль (Direct Rendering Manager) из состава Nouveau, открытого драйвера для видеокарт NVIDIA с поддержкой 2D- и 3D-акселерации. Nouveau уже используется в качестве основного драйвера для видеокарт от NVIDIA в релизе Fedora 12 и будет использован в Ubuntu 10.04. К сожалению, в последнем выпуске драйвера Nouveau был изменен API, что делает код драйвера, работающий на уровне пользователя, несовместимым с принятым в "staging" дерево Linux ядра 2.6.33 модулем DRM. Поддержка нового API появится в ядре 2.6.34;
o Обновлены ранее включенные в Linux ядро DRM модули для карт Intel и ATI/AMD. Статус модуля для карт ATI Radeon изменён с экспериментального на стабильный;
o Добавлена поддержка оборудования, используемого в игровых приставках Nintendo Wii и Gamecube.
o Из состава ядра удален код драйверов для платформы Android, разработанный компанией Google. В качестве причины удаления названо отсутствие должной поддержки со стороны разработчика, не продолжившего устранение недочетов в рамках слияния кода с ядром Linux.
o Подверглась доработке инфраструктура трассировки, в инфраструктуру ftrace добавлена поддержка динамической трассировки, расширены возможности утилиты "perf" (tools/perf). Добавлен ряд новых команд: perf probe, perf bench, perf kmem, perf diff. Внесенные в ядро 2.6.33 изменения позволили реализовать в утилите PowerTop возможность отслеживания эффективности использования энергосберегающих технологий в звуковой и SATA подсистемах;
* Виртуализация
o В состав ядра включены два драйвера для оптимизации работы гостевых окружений в системе виртуализации VMware: VWware Virtual GPU для акселерации графического вывода в гостевых окружениях и драйвер виртуального Ethernet адаптера vmxnet3;
o Поддержка Xen PV-on-HVM (ioctl KVM_XEN_HVM_CONFIG), что дает возможность запуска гостевых окружений в пространстве пользовательского процесса.