Компанія Oracle опублікувала ядро ​​Unbreakable Enterprise Kernel 6

Компанія Oracle представила перший стабільний випуск Непорушне корпоративне ядро ​​6 (UEK R6), розширеної збірки ядра Linux, що позиціонується для використання в дистрибутиві Oracle Linux як альтернатива штатному пакету з ядром з Red Hat Enterprise Linux. Ядро доступне лише для архітектур x86_64 та ARM64 (aarch64). Вихідні тексти ядра, включаючи розбивку на окремі патчі, опубліковано у публічному Git-репозиторії Oracle.

Пакет Unbreakable Enterprise Kernel 6 базується на ядрі Linux 5.4 (UEK R5 базувався на ядрі 4.14), яке доповнено новими можливостями, оптимізаціями та виправленнями, а також перевірено на сумісність з більшістю додатків, що працюють у RHEL, та спеціально оптимізовано для роботи з промисловим програмним забезпеченням та обладнанням Oracle. Настановні та src-пакети з ядром UEK R6 підготовлені для Oracle Linux 7.x и 8.x. Підтримка гілки 6.x припинена, для застосування UEK R6 слід оновити систему до Oracle Linux 7 (немає жодних перешкод щодо використання даного ядра в аналогічних версіях RHEL, CentOS та Scientific Linux).

Ключові нововведення Unbreakable Enterprise Kernel 6:

  • Розширена підтримка систем на базі 64-розрядної архітектури ARM (aarch64).
  • Реалізовано підтримку всіх можливостей Cgroup v2.
  • Реалізовано фреймворк ktask для розпаралелювання завдань у ядрі, що споживають значні ресурси CPU. Наприклад, за допомогою ktask може бути організовано розпаралелювання операцій з очищення діапазонів сторінок пам'яті або обробки списку inode;
  • Увімкнено розпаралелену версію kswapd для обробки операцій заміни сторінок пам'яті в асинхронному режимі, дозволяючи скоротити кількість прямих (синхронних) операцій заміни. При зменшенні кількості вільних сторінок пам'яті kswapd виконує сканування для виявлення сторінок, що не використовуються, які можуть бути вивільнені.
  • Підтримка верифікації цілісності образу ядра та прошивок по цифровому підпису, завантаження ядра за допомогою механізму Kexec (завантаження ядра з вже завантаженої системи).
  • Проведено оптимізацію продуктивності системи управління віртуальною пам'яттю, покращено ефективність очищення сторінок пам'яті та кешу, покращено обробку звернень до не виділених сторінок пам'яті (page faults).
  • Розширена підтримка NVDIMM, вказана стала пам'ять тепер може використовуватися як традиційна ОЗУ.
  • Здійснено перехід на систему динамічного налагодження DTrace 2.0, яка переведена використання підсистеми ядра eBPF. DTrace тепер працює поверх eBPF, за аналогією з тим, як поверх eBPF працюють інструменти трасування, що існують в Linux.
  • Внесено покращення у файлову систему OCFS2 (Oracle Cluster File System).
  • Покращено підтримку файлової системи Btrfs. Додано можливість застосування Btrfs на кореневих розділах. У інсталятор додано опцію для вибору Btrfs під час форматування пристроїв. Додана можливість розміщення файлів підкачки на розділах із Btrfs. В Btrfs додано підтримку стиснення з використанням алгоритму ZStandard.
  • Додана підтримка інтерфейсу для асинхронного введення/виводу — io_uring, який примітний підтримкою поллінга введення/виводу та можливістю роботи як з буферизацією, так і без буферизації. За продуктивністю io_uring дуже близький до SPDK і суттєво випереджає libaio під час роботи з включеним полінгом. Для використання io_uring у кінцевих додатках, що працюють у просторі користувача, підготовлено бібліотеку liburing, що надає високорівневу обв'язку над інтерфейсом ядра;
  • Додана підтримка режиму Adiantum для швидкого шифрування накопичувачів
  • Додано підтримку стиснення з використанням алгоритму Зстандарт (ZSTD).
  • У файловій системі ext4 задіяні 64-розрядні позначки часу в полях суперблоку.
  • У XFS включені засоби для інформування про стан цілісності ФС під час роботи та отримання статусу виконання fsck на льоту.
  • TCP-стек за промовчанням переведено на модель «Early Departure Time» замість «As Fast As Possible» під час надсилання пакетів. Для UDP включено підтримку GRO (Generic Receive Offload). Додано підтримку прийому та відправлення TCP-пакетів у режимі zero-copy.
  • Задіяна реалізація протоколу TLS на рівні ядра (KTLS), яка тепер може застосовуватися не тільки для даних, що надсилаються, але і для даних.
  • Як бекенд для міжмережевого екрана за замовчуванням задіяний
    nftables. Опціонально додано підтримку bpfilter.

  • Додана підтримка підсистеми XDP (eXpress Data Path), що дозволяє в Linux запускати BPF-програми на рівні мережного драйвера з можливістю прямого доступу до DMA-буфера пакетів і на стадії до виділення skbuff буфера мережним стеком.
  • Покращений та включений під час використання UEFI Secure Boot режим Lockdown, який обмежує доступ користувача root до ядра та блокує шляхи обходу UEFI Secure Boot. Наприклад, у режимі lockdown обмежується доступ до /dev/mem, /dev/kmem, /dev/port, /proc/kcore, debugfs, налагоджувального режиму kprobes, mmiotrace, tracefs, BPF, PCMCIA CIS (Card Information Structure), деяких інтерфейсів ACPI та MSR-регістрам CPU, блокуються виклики kexec_file та kexec_load, забороняється перехід у сплячий режим, лімітується використання DMA для PCI-пристроїв, забороняється імпорт коду ACPI зі змінних EFI, не допускаються маніпуляції з портами вводу/виводу, у тому числі зміна номеру переривання та порту введення/виводу для послідовного порту.
  • Додано підтримку розширених інструкцій IBRS (Enhanced Indirect Branch Restricted Speculation), які дозволяють адаптивно дозволяти та забороняти спекулятивне виконання інструкцій під час обробки переривань, системних викликів та перемикань контексту. За наявності підтримки Enhanced IBRS цей метод застосовується для захисту від атак класу Spectre V2 замість Retpoline, оскільки дозволяє досягти більш високої продуктивності.
  • Покращено захист у каталогах, доступних всім на запис. У подібних каталогах заборонено створення FIFO-файлів та файлів, що належать користувачам, які не збігаються з власником каталогу з прапором sticky.
  • За умовчанням на системах ARM увімкнена рандомізація адресного простору ядра на системах (KASLR). Для Aarch64 включено аутентифікацію покажчиків.
  • Додана підтримка NVMe over Fabrics TCP.
  • Доданий драйвер virtio-pmem, що надає доступ до пристроїв зберігання, відображених у фізичний адресний простір, таким як NVDIMM.

Джерело: opennet.ru

Додати коментар або відгук