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

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

В новую версию принято 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;
  • TINY_PREEMPT_RCU - легковесный вариант механизма синхронизации RCU (Read-copy-update), позволяющего организовать одновременный доступ к данным без использования блокировок. TINY_PREEMPT_RCU отличается значительным уменьшением потребления памяти, но поддерживает только однопроцессорные системы;
  • Окончательный уход от использования устаревшей глобальной BKL-блокировки (Big Kernel Lock), которая оставалась многие годы узким местом в некоторых подсистемах;
  • Для файловой системы Ext4 добавлена функция "Lazy Inode Table Initialisation", созданная с целью значительного сокращения времени создания Ext4-разделов;
  • Fnotify, новый механизм уведомления приложений (например, антивирусных сканеров) об изменениях в файловой системе, идущего на смену системам inotify и dnotify (для данных систем обеспечен режим эмуляции, который работает поверх fanotify). Fanotify поддерживает отслеживание как активных событий (открытие, закрытие, чтение, запись и т.п.), так и выполнение пассивных операций, таких как открытие специального файлового дескриптора к отслеживаемому объекту, доступного только на чтение. В отличие от inotify и dnotify в новой системе устранены проблемы с масштабированием при контроле за большим числом объектов и обеспечена поддержка нотификации на основе блокировки и контроля доступа.
  • В ядро интегрирован код проекта accel-pptp, который представляет собой высокопроизводительную реализацию сервера PPTP/PPPoE/L2TP и клиента PPTP, основанную на коде проектов poptop и pptpclient, но благодаря работе на уровне ядра, отличающуюся от poptop/pptpclient существенным ускорением работы и понижением нагрузки на CPU. В состав ядра включено два модуля: "pptp" (PPP over IPv4, Point-to-Point Tunneling Protocol) и "gre" (демультиплексор GRE-пакетов);

© OpenNet