Релиз ядра Linux версии 3.7

Минувшей ночью после двух с небольшим месяцев разработки Линус Торвальдс (Linus Torvalds) представил новую версию ядра Linux 3.7.

В новой версии представлена большая порция существенных изменений связанных с архитектурой ARM: возможность формирования многоплатформенных ARM-сборок поддержка архитектуры AArch64 (ARM64) адаптация Xen для работы на процессорах ARM Cortex A15. Из других улучшений можно отметить реализацию пространства имён для идентификаторов пользователей возможность проверки цифровой подписи при загрузке модулей ядра использование инструкций SMAP для защиты от эксплуатации уязвимостей в ядре поддержку протоколов SMB2.1 и VXLAN реализацию GRE и NAT для IPv6 поддержку режима TFO на стороне сервера.

В новую версию принято 10409 исправлений от более чем 1200 разработчиков размер патча - 95 Мб (изменения затронули 15886 файлов добавлено 1570793 строк кода удалено 1246965 строк). В связи с изменением структуры размещения и переработкой иерархии дириекторий некоторых частей ядра размер нынешнего патча более чем в два раза больше по сравнению с прошлыми выпусками. Около 33% всех представленных в 3.7 изменений связаны с драйверами устройств примерно 23% изменений имеют отношение к обновлению кода специфичного для аппаратных архитектур 6% связано с сетевым стеком 3% - файловыми системами и 3% c внутренними подсистемами ядра.

В этом выпуске произведены такие изменения:

  • в файловых системах:
    • увеличена производительность btrfs в части кода отвечающего за fsync;
    • для той же btrfs представлена поддержка технологии «hole punching» которая позволяет освобождать незанятое пространство внутри файла что особенно ценно при работе с образами жёстких дисков виртуальных машин;
    • для ext4 добавлена поддержка изменения размера раздела больше 16 ТБ причём эта операция теперь выполняется несколько быстрее нежели ранее;
    • в JFS добавлена поддержка TRIM/discard;
    • в CIFS добавлена поддержка SMB 2.0;
    • NFSv4.1 больше не считается экспериментальной;
  • в подсистеме хранения данных:
    • код программной реализации RAID теперь поддерживает операцию «discard»;
    • добавлена возможность изменять тип кеширования для устройств ATA через sysfs;
    • в подсистему libata добавлена поддержка т.н. «агрессивной спячки» для устройств SATA (согласно спецификации AHCI 1.3.1);
    • добавлена поддержка команды «WRITE SAME» что позволяет передавать пакеты данных один раз а потом записывать их во все указанные блоки I/O т.е. например быстрее инициализировать массивы RAID;
    • Virtio-Scsi теперь поддерживает изменение размера устройств хранения данных;
  • в сетевой подсистеме:
    • добавлена поддержка NAT для IPv6;
    • реализована поддержка TCP Fast Open на серверной стороне (клиентский код был добавлен в версии ядра 3.6);
    • протокол GRE теперь может туннелировать другие протоколы поверх IPv6;
    • добавлена поддержка протокола туннелирования VXLAN;
  • в инфраструктуре:
    • добавлена поддержка архитектуры ARMv8 AArch64;
    • расширен спектр 32-битных платформ ARM для которых возможно создание единого образа ядра;
    • для процессоров ARM Cortex-A15 добавлена поддержка аппаратной виртуализации с помощью Xen;
    • добавлена поддержка подписывания загружаемых модулей и проверки их подписи;
    • добавлено расширение для оценки целостности в рамках IMA которое используется для определения нежелательного изменения бинарных файлов;
    • ядро теперь может загружать файлы прошивок без помощи udev;
    • значительно улучшена поддержка пространств имён (namespaces);
    • добавлена поддержка расширенных атрибутов в файловой системе cgroup;
    • расширение безопасности YAMA теперь может использоваться вместе с остальными аналогичными подсистемами;
    • добавлена поддержка SMAP функции предотвращения доступа в режим супервизора которая будет представлена в процессорах Intel Haswell;
    • значительно переработана подсистема RCU;
    • началось разделение заголовочных файлов на используемые ядром и используемые программами пространства пользователя;
    • рабочие очереди (workqueues) теперь нереэнтерабельны (non-reentrant) по умолчанию что означает что один и тот же код больше не исполняется на всех процессорах одновременно;
    • в ядре появилась базовая реализация хеш-таблиц призванная заменить аналогичные разрозненные реализации в различных подсистемах ядра;
    • улучшена подсистема perf;
    • переписана реализация кластерной ОЗУ Ramster;
    • подсистема ввода теперь может работать более чем с 32 устройствами;
    • оптимизированы по скорости криптографические алгоритмы;
  • в драйверах:
    • значительно улучшен Nouveau; например проведена реструктуризация кода с целью дальнейшего внедрения поддержки SLI а для чипов NV40 и NV50 добавлена базовая поддержка управления вращением кулера;
    • в коде i915 значительно улучшена поддержка выходов на дисплеи;
    • через sysfs теперь можно задавать верхнее ограничение частоты графического процессора что будет полезным для ещё не вышедших чипов Haswell и ValleyView;
    • изменения в драйвере Radeon теперь позволяют новым чипам управлять несколькими мониторами через одну петлю ФАПЧ а также уменьшают энергопотребление;
    • добавлена поддержка регулировки яркости на многих ноутбуках с чипами AMD;
    • для популярных звуковых чипов HD добавлена поддержка механизма энергосбережения во время работы;
    • улучшена поддержка многоканального звука;
    • добавлен новый API для устройств DVB подключаемых через USB а также расширен спектр поддерживаемых устройств DVB;
    • версия ALSA больше не экспортируется через /proc;
    • добавлена поддержка SoC BCM2835 используемого в Raspberry Pi;
    • добавлена поддержка звукового чипа C-Media CMI8328;
    • добавлена поддержка тезеринга для iPhone 5;
    • в ath9k добавлена поддержка чипов AR9565;
    • в brcmfmac добавлена поддержка беспроводных чипов USB 43242 и 43143 а также мастер-режима для работы в качестве точки доступа;
    • в qla4xxx добавлена поддержка Qlogic 8032 (ISP83XX).

Оригинал статьи http://pingvinoff.net/2012/12/11/linux-kernel-3-7/

0 комментариев

Оставить комментарий