Линус Торвальдс представил очередной релиз ядра, в ходе разработки в ядро внесено примерно 11500 исправлений принятых от 1200 разработчиков, размер патча 38 МБ. При этом примерно 46% изменений связаны с драйверами устройств, около 19% изменений связаны с кодом для различных аппаратных архитектур, 12% — с сетевым стеком, 4% — с файловыми системами и примерно 4% — c внутренними подсистемами ядра.
Наиболее интересные новшества:
- Для файловой системы btrfs появилась возможность быстрой замены дисков в RAID 5/6 без предварительного добавления нового диска, переноса данных и вывода из массива старого диска. Теперь при помощи утилиты btrfs-replace можно просто поменять на лету один диск на другой, как это делалось для накопителей, не состоящих в RAID.
- Также для btrfs с RAID 5/6 добавлена функция проверки целостности данных («Scrubbing», сверка контрольных сумм, сохранённых и вычисленных на основе фактических данных), которая ранее не могла быть применена к RAID разделам btrfs.
- Для файловой системы Ceph добавлена поддержка inline-размещения данных, что привело к увеличению производительности при работе с мелкими файлами, и поддержка верификации сообщений по цифровой подписи для аутентификации обмена данными между клиентами и серверами Ceph.
- В файловую систему F2FS добавлена опция «fastboot», которую можно использовать для сокращения числа проверок во время загрузки.
- Появилась поддержка расширений MPX (Memory Protection Extensions), которые появятся в следующих поколениях микроархитектур процессоров Intel (Skylake и Goldmont) и дадут возможность организовать проверку указателей на соблюдение границ, связанных с ними областей памяти.
- В ядро добавлен драйвер «ipvlan», позволяющий создавать виртуальные сетевые устройства для связи между изолированными контейнерами.
- Для архитектуры ARM64 реализован механизм seccomp, используемый для ограничения доступа приложений к системным вызовам.
- Удалена из ядра поддержка использования системы виртуализации KVM на серверах с архитектурой Itanium (ia64), так как данная возможность не использовалась на практике и оставалась без сопровождения.
- Для NFS добавлена поддержка опций ALLOCATE и DEALLOCATE, определённых в стандарте NFS 4.2 и позволяющих заранее зарезервировать место в хранилище для файла, до его фактической записи.
- В сетевой стек добавлена новая подсистема для задействования аппаратных механизмов ускорения коммутации и маршрутизации на поддерживающем данные возможности оборудовании.
- Для подсистемы InfiniBand обеспечена поддержка подкачки по необходимости (on-demand paging), что позволяет создавать и размещать области RDMA через обработчик обращений к невыделенным страницам памяти (page faults).
- Добавлена в системный вызов getsockopt() новая опция SO_INCOMING_CPU, при помощи которой можно определить CPU, используемый для обработки указанного сокета.
- Появился системный вызов execveat(), который позволяет запустить исполняемый файл из открытого файлового дескриптора или определить исполняемый файл при передаче файлового дескриптора директории.
- В основной состав ядра перемещён механизм межпроцессного взаимодействия Binder, предложенный разработчиками платформы Android.
- Появился новый внутренний API, позволяющий унифицировать доступ драйверов к параметрам оборудования через ACPI или Device Tree.
- Продолжена работа над устранением проблемы 2038 года, вызванной переполнением 32-разрядного типа time_t. Внутренние функции ядра do_settimeofday(), timekeeping_inject_sleeptime() и mktime() заменены на варианты, в которых используется 64-разрядный тип time64_t или timespec64.
- Добавлена поддержка микропроцессорной архитектуры с программным ядром Altera Nios II (soft-процессор), конкурирующей с архитектурой MicroBlaze.
- Добавлен драйвер «AMD KFD», предоставляющий новый интерфейс для использования вычислительных возможностей графических процессоров в приложениях, не связанных с графикой (GPGPU). Взаимодействие с драйвером на пользовательском уровне осуществляется через библиотеку HSA (Heterogenous System Architecture), которая позволяет использовать OpenCL для организации гибридных вычислений и наладить совместную работу CPU, GPU и иных процессоров, в которых подходящее вычислительное устройство выбирается в прозрачном режиме в зависимости от задачи. В HSA CPU и GPU имеют доступ к единым областям памяти, что упрощает организацию работы гибридных приложений.
- В компоненты прямого рендеринга (DRM) добавлена поддержка атомарного переключения видеорежимов, позволяющая разом, в рамках одной атомарной операции, изменить несколько параметров графического режима.
- В DRM-драйвер Nouveau добавлена частичная поддержка видеокарт NVIDIA GeForce 900 (GPU GM204), реализована возможность управления напряжением в Tegra K1.
- В DRM-драйвере Intel реализована начальная поддержка графической подсистемы процессоров нового поколения, построенных в соответствии с микроархитектурой Skylake.
- В DRM-драйвере Radeon улучшены средства управления частотой вращения кулера для Radeon HD 7000 и более новых GPU.
- Поддержка GPU, используемых в SoC Freescale i.MX и Rockchip.
- Поддержка звуковых устройств на чипах Intel Baytrail.
- Поддержка контроллеров USB 3.0 от компании Broadcom.
- Поддержка SoC Amlogic Meson8, Allwinner A80, Samsung Exynos4415, Freescale LS1021A, Alphascale ASM9260 и AMD Seattle.
- Поддержка SCSI-адаптеров Tekram DC390(T), Am53/79C974 и Western Digital WD7193/7197/7296.