После двух с половиной лет разработки компания Oracle представила первый стабильной выпуск Unbreakable Enterprise Kernel 5 (UEK R5), расширенной сборки ядра Linux, позиционируемой для использования в дистрибутиве Oracle Linux в качестве альтернативы штатному пакету с ядром из Red Hat Enterprise Linux. Ядро доступно только для архитектур x86_64 и ARM64 (aarch64). Исходные тексты ядра, включая разбивку на отдельные патчи, опубликованы в публичном Git-репозитории Oracle.

Пакет Unbreakable Enterprise Kernel 5 основан на ядре Linux 4.14 (UEK R4 базировался на ядре 4.1), которое дополнено новыми возможностями, оптимизациями и исправлениями, а также проверено на совместимость с большинством приложений, работающих в RHEL, и специально оптимизировано для работы с промышленным программным обеспечением и оборудованием Oracle. Установочные и src-пакеты с ядром UEK R5 подготовлены для Oracle Linux 7.5. Поддержка ветки 6.x и старых выпусков 7.x прекращена, для применения UEK R5 следует обновить систему до Oracle Linux 7.5 (нет никаких препятствий по использованию данного ядра в аналогичных версиях RHEL, CentOS и Scientific Linux).

Ключевые новшества Unbreakable Enterprise Kernel 5:

  • Добавлена полноценная поддержка систем на базе 64-разрядной архитектуры ARM (aarch64). Для ARM64 в том числе портирован DTrace и улучшена поддержка гипервизора KVM;
  • Улучшена поддержка режима верифицированной загрузки (Secure boot), при котором допускается запуск только заверенных цифровой подписью компонентов загрузчика, ядра, драйверов и модулей. В
    kmod добавлена поддержка цифровых подписей PKCS#7. Блокировано использование некоторых лазеек, позволяющих обойти режим защищённой загрузки. Например, закрыт доступ к /dev/mem, /dev/kmem и /proc/kcore, отключена функция do_kexec_load, блокирован переход в спящий и ждущий режимы, обеспечена синхронизация флагов и проверок с kexec, закрыт доступ к портам ввода/вывода, debugfs, отладочному режиму kprobes, BPF, DTrace, некоторым интерфейсам ACPI и MSR-регистрам CPU;

  • Включена по умолчанию функция автоматической балансировки NUMA-узлов. В балансировщике решены все проблемы (подвисание процессов в состоянии D, возникали задержки при вводе/выводе), которые ранее наблюдались на системах с несколькими NUMA-узлами;
  • Добавлена поддержка протокола RoCE (RDMA over Converged Ethernet), предназначенного для эффективной передачи данных в сетях RDMA over Ethernet, используя инкапсуляцию Layer 3 трафика в UDP;
  • Включён по умолчанию алгоритм контроля перегрузки TCP (congestion control) – BBR (Bottleneck Bandwidth and RTT), который позволяет значительно увеличить пропускную способность и сократить задержки передачи данных.
    В BBR применяются методы моделирования канала связи, прогнозирующие имеющуюся пропускную способность через последовательные проверки и оценку времени приема-передачи (RTT), без доведения канала связи до начала потери пакетов или задержек в передаче;

  • Включено автоматическое сжатие ядра и всех модулей с использованием алгоритма xz;
  • Включено использование ускорителей криптографических операций на базе Intel QuickAssist Technology;
  • Добавлена поддержка подсистемы Heterogeneous memory management (HMM), позволяющей использовать устройства с собственными блоками управления памятью (MMU, memory management unit), которые могут получать доступ к основной памяти. Например, при помощи HMM можно организовать совместное адресное пространство между GPU и CPU, в котором GPU может получить доступ к основной памяти процесса;
  • Добавлен модуль с функциональностью NBD (Network Block Device), позволяющий примонтировать блочное устройство с удалённого сервера;
  • Добавлена подсистема “libnvdimm”, предоставляющая различные методы доступа к массивам энергонезависимой памяти (NVM, non-volatile memory), сочетающей производительность ОЗУ с возможностью постоянного хранения содержимого;
  • Добавлен механизм TCMU (Target Core Module in Userspace), позволяющий создавать модули с реализацией iSCSI targets в пространстве пользователя;
  • Гипервизор KVM обновлён до состояния, соответствующего ядру 4.16;
  • Добавлена поддержка механизма защиты AMD Secure Encrypted Virtualization (AMD SEV), позволяющего обеспечить прозрачное шифрование памяти виртуальных машин, при которой доступ к расшифрованным данным имеет только текущая гостевая система, а остальные виртуальные машины и гипервизор при попытке обращения к этой памяти получают зашифрованные данные;
  • Добавлена поддержка режима “User-Mode Instruction Prevention” (UMIP), предоставляемого процессорами Intel. При включении данного режима на уровне CPU в пространстве пользователя запрещается выполнение некоторых инструкций, таких как SGDT, SLDT, SIDT, SMSW и STR, которые могут применяться в атаках, нацеленных на повышение привилегий в системе;
  • Улучшена реализация DTrace. Включена поддержка динамической отладки ядра (CONFIG_DYNAMIC_DEBUG), добавлен PID-провайдер и обеспечена возможность использования SDT-проверок (Statically Defined Tracing) для ядра с рандомизацией адресного пространства;
  • В Btrfs улучшена реализация системы групповых квот. В ext4 добавлена поддержка DAX для прямого доступа к ФС в обход страничного кэша без применения уровня блочных устройств;
  • Включён по умолчанию PID cgroup controller, предоставляющих защиту от fork-бомб (даёт возможность задать лимит на максимальное число процессов в группе);
  • Обновлены драйверы для гостевых систем под управлением гипервизора
    Hyper-V. Увеличена производительность ввода/вывода в драйвере hv_storvsc, в сетевом драйвере hv_netvsc добавлена поддержка SR-IOV;

  • Добавлен драйвер i40iw с поддержкой устройств Intel Ethernet Connection X722 iWARP RDMA. В состав также включена библиотека libi40iw, позволяющая взаимодействовать с оборудованием RDMA из пространства пользователя;
  • Обновлён драйвер для сетевых адаптеров ENA (Elastic Network Adapter), используемых компанией Amazon в инфраструктуре Elastic Compute Cloud (EC2) для организации связи между узлами EC2;
  • Добавлены дополнительные опции для управления энергопотреблением;
  • Обновлены драйверы устройств и расширена поддержка оборудования.