Тема: Релиз Linux ядра 2.6.30. Обзор новшеств
Че-то луг заплесневел, предлагаю активизироваться.
Линус Торвальдс представил новый релиз Linux ядра - 2.6.30. В новое ядро принято более 13 тысяч исправлений от 1334 разработчиков, размер патча - 63Мб (добавлено 1 096 994 строк кода, удалено - 470 555).
В код ядра 2.6.30 добавлено несколько существенных улучшений, связанных с файловыми системами и хранилищами данных:
* Файловая система NILFS2, разработанная в недрах японской телефонной компании NTT, как система особо устойчивая к сбоям. Для хранения всех данных в NILFS2 используются подобные логам структуры, в которых только добавляются новые записи и никогда не переписываются активные. Таким образом оборванная крахом операция записи, никак не отразится на целостности хранимых данных. В NILFS используются B-tree деревья и 64-битные структуры данных, поддерживается возможность фиксации снапшотов (контрольных точек в логе) для просмотра состояния данных на определенный момент времени. Более того с данными в снапшотах можно продолжать работать как с альтернативной веткой ФС, существующей параллельно.
* Файловая система Exofs (старое название osdfs), разработанная Avishay Traeger из IBM и представляющая собой вариант файловой системы ext2, адаптированный для работы с новым типом хранилищ объектов OSD (Object-based Storage Device). OSD представляет новый уровень абстракции при размещении информации, вместо линейной последовательности секторов в блочном устройстве (массив), представлена идея хранения объекта как единого целого. Exofs поддерживает протокол T10 OSD (расширение к SCSI), который позволяет передавать данные не блоками, а объектами (целыми файлами), при раздельной передаче данных и метаданных. Для экспериментов можно использовать тестовый OSD Initiator, хранящий данные в БД SQLite или симулятор OSD накопителя.
* fscache/cachefiles - разработанная в Red Hat универсальная инфраструктура для организации кэширования в локальной файловой системе данных, передаваемых через сетевые файловые системы, подобные NFS и AFS.
* В экспериментальном режиме ("staging") в состав ядра включен код высокопроизводительной распределенной сетевой файловой системы POHMELFS и устройства DST, представляющего собой драйвер сетевого устройства транспортного уровня для организации распределенных хранилищ данных, функционирующего в ядре на уровне блочного устройства, работающего поверх нескольких машин в сети (ближайшие аналоги - DRBD, iSCSI и NBD). Основные характеристики POHMELFS можно посмотреть здесь, DST - здесь. Системы разработаны Евгением Поляковым.
* Добавлены патчи улучшающие работу файловых систем btrfs, reiserfs, ext3, ext4. В состав включен патч к файловой системе ext4 с решением проблемы с потерей данных в файлах, перезаписываемых незадолго до момента краха системы. В патче представлен новый режим монтирования "auto_da_alloc", меняющий поведение отложенной записи данных при выполнении функций close и rename;
* Начальная поддержка NFS 4.1, уже реализована поддержка сессий, но интеграция кода Parallel NFS ожидается только в будущих версиях.
* В MD реализации программного RAID добавлена поддержка дополнительного контроля целостности данных, добавлены средства для преобразования raid6 в raid5 и реализована поддержка создания RAID6 поверх RAID5, RAID4 поверх RAID5 и RAID5 поверх RAID1. В DM (device mapper) появилась поддержка механизма "барьеров", который позволяет обеспечить неизменность некоторых запросов в очереди ввода/вывода для корректной фиксации транзакций ФС;
Другие заметные улучшения:
* Существенно переработана поддержка спящего и ждущего режима (suspend/resume), особенно в плане поддержки временной остановки во многих драйверах устройств;
* Поддержка протокола RDS (Reliable Datagram Sockets), предназначенного для высокоскоростного обмена сообщениями между узлами в кластере, с минимальной задержкой и гарантированной доставкой. Код предоставлен компанией Oracle;
* Реализована поддержка модулей безопасности TOMOYO Linux, по сути очень похожих на AppArmor, также привязывающих политику безопасности процесса к файловому пути, но реализованные концептуально более правильно (патч с AppArmor ранее был отвергнут для включения в Linux ядро);
* IMA (Integrity Management Architecture) - инфраструктура контроля целостности исполняемых файлов, созданная разработчиками IBM как дополнение средств SELinux и Slim возможностью защиты в офлайн режиме (например, когда злоумышленник получает доступ загрузившись со своего LiveCD). Новая система позволяет исполнять только файлы, имеющие корректную цифровую подпись, при изменении или замене файла его выполнение будет блокировано;
* Реализована поддержка чернового варианта будущего стандарта IEEE 802.11w, определяющего некоторые новые технологии для повышения безопасности передачи управляющей информации в беспроводных сетях;
* Добавлены системные вызовы preadv() и pwritev(), имеющиеся в BSD-системах;
* Расширена поддержка нового оборудования, в комплект включено много новых драйверов устройств (особенно WiFi), код звуковой системы ALSA обновлен до версии 1.0.19. В беспроводном стеке улучшена поддержка режимов энергосбережения, представленных в современных Wifi картах;
* Обработчики прерываний переведены на многопоточную систему работы, что позволит существенно повысить отзывчивость системы за счет ухода от блокировок;
* Добавлены дополнительные патчи, позволяющие уменьшить время загрузки ядра за счет асинхронной инициализации некоторых подсистем и аппаратных устройств, разработанные в рамках проекта Moblin.
* Добавлен DRM (Direct Rendering Manager) модуль для видеокарт ATI R600/700;
* Поддержка сжатия собранного образа ядра методами LZMA и BZIP2;
* В сетевую подсистему принят патч, позволяющий организовать обработку более 64 тысяч одновременных соединений через один bind() с указанием нулевого порта (номер порта будет выбран из группы доступных локальных адресов);
* Добавлена поддержка архитектуры MicroBlaze (софт-процессоры на базе Xilinx FPGA), обновлена input-прослойка, улучшен код загрузки прошивок (firmware), добавлен драйвер intel для организации виртуальных сетей.