Релиз ядра Linux 4.9.
После двух месяцев разработки Линус Торвальдс представил релиз ядра Linux 4.9. Среди наиболее заметных изменений: средства для диагностики и блокирования переполнений стека ядра, поддержка SELinux в OverlayFS, поддержка алгоритма контроля перегрузки BBR, поддержка POSIX ACL в FUSE, механизм квот в netfilter, реализация шины Greybus.
В новую версию принято около 16 тысяч исправлений от 1719 разработчиков, размер патча - 45 Мб (изменения затронули 11042 файлов, добавлено 632157 строк кода, удалено 354728 строк). Отмечается, что ядро 4.9 побило рекорд по числу изменений, принятых в рамках одного выпуска.
Латиноамериканский Фонд свободного ПО оперативно сформировал вариант полностью свободного ядра 4.9 - Linux-libre 4.9-gnu, очищенного от элементов прошивок и драйверов, содержащих несвободные компоненты или участки кода, область применения которых ограничена производителем.
Основные новшества:
• Для архитектуры x86 добавлен набор изменений с реализацией механизма виртуального маппинга стека ядра;
• В SELinux обеспечена поддержка многослойных файловых систем, таких как OverlayFS;
• Добавлены новые системные вызовы pkey_alloc(), pkey_free() и pkey_mprotect();
• В систему сборки добавлена возможность использования плагина GCC "latent_entropy";
• Добавлены настройки, позволяющие ограничить число пространств имён и других объектов (cgroup, точки монтирования, ipc), создаваемых из пространства имён идентификаторов пользователей;
• В состав ядра включена реализация предложенного компанией Google алгоритма контроля перегрузки TCP (congestion control) - BBR (Bottleneck Bandwidth and RTT);
• В netfilter добавлен новый механизм "quota" с реализацией байтовых квот (правило срабатывает только до истечения квоты);
• Реализован новый JIT-компилятор для BPF;
• Для сетевого mesh-протокола B.A.T.M.A.N. ("Better Approach To Mobile Adhoc Networking) подготовлен новый механизм настройки на основе интерфейса netlink;
• Проведены оптимизации обработки программных прерываний;
• В состав включена подсистема Greybus, разработанная для обеспечения взаимодействия компонентов модульного смартфона Ara;
• Представлен новый набор файлов в /sys/kernel/irq, описывающих состав таблицы обработчиков прерываний;
• Продолжено развитие средств для форматирования документации к ядру с использованием разметки reStructuredText (RST) и пакета Sphinx;
• Переработан алгоритм выбора режимов производительности (P-state) для процессоров Atom;
• В систему трассировки ядра добавлена поддержка хронометрированных выборок (timed sampling);
• В модуле FUSE появилась поддержка списков контроля доступа, соответствующих POSIX ACL;
• В файловую систему XFS добавлена поддержка общих экстентов (shared extents);
• В NFS-сервер добавлена поддержка операции COPY, определённой в спецификации NFS4.2;
• В подсистеме MD RAID для увеличения производительности вычислений контрольных сумм для RAID 6 задействованы оптимизации на базе инструкций AVX512;
• В Btrfs и Ext4 отмечается только исправление ошибок. В F2FS проведена работа по увеличению производительности;
• В файловой системе ubifs, предназначенной для использования на Flash-накопителях, обеспечена поддержка OverlayFS и возможность использования опции O_TMPFILE;
• В драйвер AMDGPU добавлена экспериментальная поддержка семейства GPU Southern Islands на базе микроархитектуры GCN 1.0;
• Поддержка новых SoC: Broadcom BCM47189 и BCM53573, Broadcom BCM958525er, BCM958522er, BCM988312hr, BCM958623hr и BCM958622hr, Qualcomm DragonBoard 820c, Marvell Armada 8040, Renesas r8a7796, ZTE ZX296718;
• Официальная поддержка 29 устройств на базе архитектуры ARM;
• Добавлена поддержка систем на базе платформы Mellanox Technologies;
• Поддержка контроллеров USB 3.0 Broadcom Northstar и контроллеров USB 2.0 Rockchip/Innosilicon;
• Поддержка звуковых кодеков Realtek RT5660/RT5663/RT5668 и X-Powers AC100;