Увеличение цифры мажорной версии до 5 не означает каких-то грандиозных изменений или поломок совместимости. Оно просто помогает дорогому нашему Линусу Торвальдсу сохранить душевный покой. Ниже — список некоторых изменений и новшеств.
Сердцевина ядра:
- Планировщик процессов CFS на асимметричных процессорах вроде ARM работает иначе — первым делом нагружает маломощные и энергоэффективные ядра.
- Через API отслеживания файловых событий fanotify можно получать уведомления об открытии файла на исполнение.
- Интегрирован контроллер cpuset, которым можно ограничивать группы процессов по использованию CPU и узлов NUMA.
- Включена поддержка следующих ARM-устройств: Qualcomm QCS404, Allwinner T3, NXP/Freescale i.MX7ULP, NXP LS1028A, i.MX8, RDA Micro RDA8810PL, Rockchip Gru Scarlet, Allwinner Emlid Neutis N5, и многих других.
- Улучшения в подсистеме ARM: горячее подключение памяти, защита от Meltdown и Spectre, 52-битная адресация памяти, и др.
- Поддержка инструкции WBNOINVD для x86-64.
Подсистема памяти:
- Для инструмента KASAN на ARM64-платформах доступна подстановка проверочных тегов с малым потреблением памяти.
- Фрагментация памяти кардинально снижена (до 90%), в результате механизм Transparent HugePage работает лучше.
- Скорость работы mremap(2) на больших областях памяти увеличена до 20 раз.
- В механизме KSM jhash2 заменена xxhash, благодаря чему на 64-битных системах скорость работы KSM выросла в 5 раз.
- Улучшения в ZRam и OOM.
Блочные устройства и файловые системы:
- Механизм blk-mq с многоуровневой системой очередей запросов стал основным для блочных устройств. Весь не-mq код удалён.
- Улучшения поддержки NVMe, особенно в плане работы устройств через сеть.
- Для Btrfs реализована полноценная поддержка swap-файлов, а также изменение FSID без перезаписи метаданных.
- В F2FS добавлен ioctl-вызов для отложенной проверки ФС через fsck.
- Интегрирована BinderFS — псевдо-ФС для межпроцессного взаимодействия. Позволяет запустить несколько экземпляров Android в одной среде.
- Ряд улучшений в CIFS: кэш DFS, расширенные атрибуты, протокол smb3.1.1.
- ZRam оптимальнее работает с неиспользующимися swap-устройствами, экономя память.
Безопасность и виртуализация:
- Добавлена хэш-функция Streebog (ГОСТ 34.11-2012), разработанная ФСБ РФ.
- Поддержка алгоритма шифрования Adiantum, разработанного Google для маломощных устройств.
- Включены алгоритмы XChaCha12, XChaCha20 и NHPoly1305.
- Обработку вызовов seccomp теперь можно вынести в пространство пользователя.
- Для гостевых систем KVM реализована поддержка расширений Intel Processor Trace с минимальной просадкой производительности.
- Улучшения в подсистеме KVM/Hyper-V.
- Драйвер virtio-gpu получил поддержку симуляции EDID для виртуальных мониторов.
- В драйвере virtio_blk реализован вызов discard.
- Реализованы функции безопасности для NV-памяти, основанных на спецификациях Intel DSM 1.8.
Драйверы устройств:
- Изменения в DRM API для полноценной поддержки адаптивной синхронизации (часть стандарта DisplayPort) и изменчивых частот обновления (часть стандарта HDMI).
- Включен стандарт Display Stream Compression для сжатия без потерь видеопотоков, адресованных экранам с высоким разрешением.
- Драйвер AMDGPU теперь поддерживает FreeSync 2 HDR и сброс графического процессора для CI, VI, SOC15.
- Видеодрайвер Intel получил поддержку чипов Amber Lake, форматов YCBCR 4:2:0 и YCBCR 4:4:4.
- В драйвер Nouveau включена работа с видеорежимами для видокарт семейства Turing TU104/TU106.
- Интегрированы драйверы тачскрина Raspberry Pi, панелей CDTech, Banana Pi, DLC1010GIG и др.
- В драйвере HDA доступна поддержка кнопки «jack», LED-индикаторов, устройств Tegra186 и Tegra194.
- Подсистема ввода научилась работать с высокоточной прокруткой на некоторых мышах Microsoft и Logitech.
- Масса изменений в драйверах вебкамер, ТВ-тюнеров, USB, IIO, и др.
Сетевая подсистема:
- В стеке UDP реализована поддержка механизма zero-copy для передачи данных через сокет без промежуточной буферизации.
- Там же добавлен механизм Generic Receive Offload.
- Улучшена производительность поиска в политиках xfrm при большом их количестве.
- В драйвер VLAN добавлена возможность выгрузки туннелей.
- Ряд улучшений в поддержке Infiniband и беспроводных сетей.