Компанията Oracle публикува стабилни версии на дистрибуцията Oracle Linux 9 и ядрото Unbreakable Enterprise Kernel 7 (UEK R7), което е позиционирано за използване в дистрибуцията Oracle Linux като алтернатива на стандартния пакет с ядро от Red Hat Enterprise Linux. Дистрибуцията Oracle Linux 9 е създадена на базата на пакетната база Red Hat Enterprise Linux 9 и е напълно бинарно съвместима с нея.
За сваляне без ограничения са предложени инсталационни ISO образи с размер 8.6 ГБ и 840 МБ, подготвени за архитектурите x86_64 и ARM64 (aarch64). За Oracle Linux 9 е осигурен неограничен и безплатен достъп до yum репозитория с бинарни актуализации на пакети с корекции на грешки (errata) и проблеми със сигурността. За сваляне са подготвени и отделно поддържани репозитории с комплекти от пакети Application Stream и CodeReady Builder.
Освен пакета с ядрото от състава RHEL (базирано на ядрото 5.14), в Oracle Linux е предложено собствено ядро Unbreakable Enterprise Kernel 7, основано на ядрото Linux 5.15 и оптимизирано за работа с индустриален софтуер и оборудване на Oracle. Изходните текстове на ядрото, включително разделението на отделни пачове, са достъпни в публичния Git репозиторий на Oracle. Ядрото Unbreakable Enterprise Kernel се инсталира по подразбиране, позиционирано е като алтернатива на стандартния пакет с ядро от RHEL и предоставя редица разширени възможности, като интеграция с DTrace и подобрена поддръжка на Btrfs. Освен допълнителното ядро, функционално версиите Oracle Linux 9 и RHEL 9 са напълно идентични (списък на промените можете да видите в анонса за RHEL9).
Ключови нововъведения в ядрото Unbreakable Enterprise Kernel 7:
- Подобрената поддръжка на архитектурата Aarch64. Размерът на страниците на паметта при 64-битни системи ARM по подразбиране е намален от 64 КБ на 4 КБ, което по-добре съответства на обемите на паметта и типичните натоварвания за ARM системи.
- Продължена е доставката на системата за динамична отладка DTrace 2.0, която е преобразувана да използва подсистемата на ядрото eBPF. DTrace 2.0 работи върху eBPF, подобно на начина, по който съществуващите инструменти за трасировка в Linux работят върху eBPF.
- Разширени са възможностите на файловата система Btrfs. В Btrfs е добавена асинхронна реализация на операцията DISCARD за маркиране на освободените блокове, които вече не е необходимо да се съхраняват физически. Асинхронната реализация позволява да не се чака завършването на DISCARD от хранилището и да се извършва операцията на фон. Добавени са нови опции за монтиране, които опростяват възстановяването на данни от повредена файловата система: „rescue=ignorebadroots“ за монтиране, независимо от повредите на някои коренови дървета (extent, uuid, data reloc, device, csum, free space), „rescue=ignoredatacsums“ за деактивиране на проверката на контролните суми за данните, и „rescue=all“ за едновременно включване на режимите ‘ignorebadroots’, ‘ignoredatacsums’ и ‘nologreplay’. Внесени са значителни оптимизации на производителността, свързани с изпълнението на операции fsync(). Добавена е поддръжка за fs-verity (проверка на автентичността и целостта на файловете) и съвпадение на идентификатори на потребители.
- В XFS е реализирана поддръжка на операции DAX за директен достъп до файловата система, за да се избегне кеширането на страниците и да се изключи двойното кеширане. Добавени са промени, които решават проблеми с преливането на 32-битовия тип данни time_t през 2038 година, включително са предложени нови опции за монтиране bigtime и inobtcount.
- Внесени са подобрения във файловата система OCFS2 (Oracle Cluster File System).
- Добавена е файловата система ZoneFS, която опростява нискоуровневата работа с зонирани устройства за съхранение. Под зонираните хранилища се имат предвид устройства на твърди магнитни дискове или NVMe SSD, пространството за съхранение на които е разделено на зони, съставляващи групи от блокове или сектори, в които е разрешено само последователното добавяне на данни с обновяване на цялата група блокове. ФС ZoneFS свързва всяка зона в хранилището с отделен файл, който може да се използва за съхранение на данни в raw-режим без манипулации на ниво сектори и блокове, т.е. позволява на приложенията да използват файловия API вместо директно достъп до блочно устройство чрез ioctl.
- Стабилизирана е поддръжката на протокола VPN WireGuard.
- Разширени са възможностите на подсистемата eBPF. Реализиран е механизъм CO-RE (Compile Once — Run Everywhere), който решава проблема с преносимостта на компилираните eBPF програми и позволява събиране на кода на eBPF програми само веднъж, използвайки специален универсален зареждач, който адаптира зарежданата програма към текущото ядро и типове BTF (BPF Type Format). Добавен е механизъм «BPF trampoline», който практически намалява до нула разходите за предаване на повиквания между ядрото и BPF програмите. Предоставени са възможности за директен достъп до функционалността на ядрото от BPF програмите и за спиране на обработчика.
- Интегриран е детектор на разделени заключвания («split lock»), които възникват при достъп до неравномерни данни в паметта, поради факта, че при изпълнение на атомарна инструкция данните пресичат две линии на кеша на CPU. Ядрото може на лето да идентифицира подобни блокировки, които водят до значително намаляване на производителността, и да издава предупреждения или да изпраща сигнал SIGBUS на приложението, предизвикало блокировката.
- Осигурена е поддръжка на Multipath TCP (MPTCP), разширение на TCP протокола за организиране на работа на TCP свързване с доставка на пакети едновременно по няколко маршрута през различни мрежови интерфейси, свързани с различни. IP адреси.
- В планировчика на задачите е реализиран режим на планиране SCHED_CORE, позволяващ управление на това кои процеси могат да се изпълняват заедно на едно ядро CPU. На всеки процес може да бъде назначен cookie идентификатор, определящ обхвата на доверие между процесите (например принадлежи на един и същи потребител или контейнер). При организиране на изпълнението на кода, планировчика може да осигури споделянето на едно ядро CPU само за процеси, свързани с един собственик, което може да се използва за блокиране на някои атаки от клас Spectre, чрез предотвратяване на изпълнението в един поток SMT (Hyper Threading) на доверителни и недоверителни задачи.
- За cgroups е реализиран контролер за разпределение на паметта slab (контролер за памет slab), който се отличава с прехвърляне на отчитането на slab от нивото на страниците на паметта на нивото на обектите на ядрото, което позволява споделянето на slab-страници между различни cgroup, вместо отделно разпределение на кешове slab за всяка cgroup. Предложеният подход позволява да се увеличи ефективността на използването на slab, да се намали размерът на използваната за slab памет с 30-45%, значително да се намали общото потребление на памет от ядрото и да се намали фрагментацията на паметта.
- Осигурено е предоставянето на отладъчни данни в формат CTF (Compact Type Format), който осигурява компактен начин за съхранение на информация за Си-типове, връзки между функции и отладъчни символи.
- Прекратено е предоставянето на модула DRBD (Distributed Replicated Block Device) и устройството /dev/raw (за директен достъп до файлове трябва да се използва флага O_DIRECT).
Източник: opennet.ru
