Линус Торвальдс объявил о выходе ядра Linux 3.18, основные новшества:

скачать: https://www.kernel.org/pub/linux/kernel … .18.tar.xz

В ядро интегрирована файловая система 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;