Линус Торвальдс объявил о выходе ядра Linux 3.18, основные новшества:
- В ядро интегрирована файловая система OverlayFS, разработанная SUSE и позволяющая создать виртуальную многослойную файловую систему, поверх доступной только на чтение основы.
- Для сервера NFS появилась поддержка операции SEEK.
- В файловую систему F2FS добавлена поддержка атомарных операций записи, позволяющих рассматривать успешное или сбойное завершение серии операций как единое целое.
- Для Btrfs улучшен код восстановления повреждённых RAID-массивов и перестроения RAID.
- Появилась сетевая подсистема FOU (Foo-over-UDP) для организации тунеллирования различных IP-протоколов поверх UDP.
- Добавлена поддержка алгоритма контроля перегрузки TCP DCTCP (Data Center TCP).
- Внесён ряд оптимизаций в сетевую подсистему, направленных на увеличение производительности пакетной передачи данных.
- Появилась поддержка протокола Geneve (Generic Network Virtualization Encapsulation), универсального протокола инкапсуляции для виртуализированных сетей.
- Добавлен новый системный вызов bpf(), предоставляющий доступ к возможностям универсальной виртуальной BPF-машины внутри ядра.
- Удалось добиться существенного сокращения времени перехода в спящий режим для систем с большим числом процессоров за счёт избавления от задержки в 100ms для каждого CPU перед его остановкой.
- В системный вызов prctl() добавлена новая операция PR_SET_MM_MAP, позволяющая выставить основные параметры раскладки адресного пространства процесса, в том числе указать где разместить области с кодом и данными, где находится стек, определить точки останова.
- Включена подсистема RCU tasks, позволяющая использовать механизм синхронизации RCU (Read-copy-update) для защиты целостности структур данных.
- Внесён ряд изменений, направленных на обеспечения сборки ядра при помощи компилятора Clang. В частности, осуществлена замена массивов переменной длины в структурах данных (VLAIS, Variable Length Array In Struct) на созданный при помощи макроса SHASH_DESC_ON_STACK() эквивалент, совместимый со спецификацией C99 и поддерживаемый в Clang.
- Включены в ядро некоторые патчи, подготовленные в рамках инициативы по обеспечению сборки как можно более компактного ядра Linux, занимающего минимальный размер. Добавлена возможность исключения из сборки системных вызовов madvise() и fadvise(), а также кода разбора флагов с описанием возможностей процессора.
- Добавлена штатная поддержка установки модулей ядра в сжатом виде.
- Был добавлен драйвер «pvSCSI» (Paravirtualized SCSI), позволяющая организовать работу гостевых систем, работающих под управлением гипервизора Xen, с привязанными к ним SCSI-устройствами.
- В код для архитектуры ARM64 адаптирован новый JIT-компилятор BPF (eBPF).
- Архитектура SPARC64 переведена на четырёхуровневые таблицы страниц памяти, что значительно увеличило размер адресуемой памяти.
- Для DRM-драйвера Nouveau добавлена поддержка вывода звука через порт DisplayPort.
- В DRM-драйвер Radeon для старых карт R600 добавлена поддержка UVD (Unified Video Decoder) для ускорения декодирования видео.
- В DRM-драйвере Intel реализована поддержка кэширования значений EDID и внесена порция накопившихся улучшений.
- Добавлена поддержка:
- Новых SoC: Hisilicon HiP04 Cortex A15, Amlogic Meson6 (8726MX), Renesas R-Car E2 (R8A77940), Broadcom BCM63xx DSL, Atmel SAMA5D4, Cavium Inc. Thunder;
- Звуковых карт Freescale, добавлены кодеки для Everest ES8328, Freescale ES8328 и Cirrus Logic CS35L32;
- Ethernet-контроллеров Qualcomm Atheros QCA7000 и Ethernet-коммутаторов Broadcom Starfighter 2, Intel FM10000 и Marvell 88E6171;
Более полная новость на opennet.ru