Компания Oracle първият стабилен выпуск (UEK R6), разширена версия на ядрото на Linux, предназначена за използване в дистрибуцията на Oracle Linux като алтернатива на стандартния пакет с ядро от Red Hat Enterprise Linux. Ядрото е налично само за архитектури x86_64 и ARM64 (aarch64). Исходният код на ядрото, включително разделения на отделни пачове, в публичното Git хранилище на Oracle.
Пакетът Unbreakable Enterprise Kernel 6 е базиран на ядрото (UEK R5 бе базиран на ядрото 4.14), което съдържа нови функции, оптимизации и корекции, както и е проверено за съвместимост с повечето приложения, работещи с RHEL, и е специално оптимизирано за работа с индустриален софтуер и оборудване на Oracle. Инсталационните и src-пакети с ядрото UEK R6 са подготвени за Oracle Linux и . Поддръжката на версия 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, посочената постоянно памет вече може да се използва като традиционна RAM.
- Осуществен е преход към система за динамична отладка DTrace 2.0, която за използването на подсистемата на ядрото eBPF. DTrace вече работи върху eBPF, аналогично на начина, по който съществуващите инструменти за проследяване в Linux работят върху eBPF.
- Внесени са подобрения във файловата система OCFS2 (Oracle Cluster File System).
- Подобрена е поддръжката на файловата система Btrfs. Добавена е възможността за прилагане на Btrfs на кореновите дялове. В инсталатора е добавена опция за избор на Btrfs при форматиране на устройства. Добавена е възможност за разполагане на файлове за свръхакумулация на дялове с Btrfs. В Btrfs е добавена поддръжка за компресия с използване на алгоритъма ZStandard.
- Добавена е поддръжка на интерфейса за асинхронен вход/изход — io_uring, който обаче поддържа polling на вход/изход и може да работи както с буфериране, така и без. По производителност io_uring е много близък до SPDK и значително надминава libaio при работа с включен polling. За използване на io_uring в крайни приложения, работещи в пространството на потребителя, е подготвена библиотеката liburing, предоставяща високослойна обвивка над интерфейса на ядрото;
- Добавена е поддръжка на режим за бързо шифроване на устройства.
- Добавена е поддръжка за компресия с използване на алгоритъма (zstd).
- В файловата система ext4 са задействани 64-битови времеви марки в полета на суперконтролера.
- В XFS са включени средства за информиране за състоянието на целостта на файловата система по време на работа и получаване на статус за изпълнението на fsck в реално време.
- TCP стекът по подразбиране е преминал на модела "" вместо "As Fast As Possible" при изпращане на пакети. За UDP е включена поддръжка за GRO (Generic Receive Offload). Добавена е поддръжка за получаване и изпращане на TCP пакети в режим zero-copy.
- Задействана е реализацията на протокола TLS на ниво ядро (KTLS), която вече може да се прилага не само за изпратени, но и за получени данни.
- Като бекенд за междусетевия екран по подразбиране е задействан
nftables. Опционално е добавена поддръжка на . - Добавена е поддръжка на подсистемата XDP (eXpress Data Path), позволяваща в Linux да се стартират BPF програми на ниво мрежов драйвър с възможност за директен достъп до DMA буфер на пакетите и в етапа преди разпределението на буфера skbuff от мрежовия стек.
- Подобрено и включено при използване на UEFI Secure Boot режим , който ограничава достъпа на потребителя 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
