Компания 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, свободно пространство), „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. На всеки процес може да бъде зададен идентификатор на бисквитка, който определя област на доверие между процесите (например, принадлежност на един потребител или контейнер). При организацията на изпълнението на кода планировчикът може да осигури съвместно използване на едно ядро на CPU само за процеси, свързани с един собственик, което може да бъде използвано за блокиране на някои атаки от клас Spectre чрез предотвратяване на изпълнение в един поток SMT (Hyper Threading) на доверителни и недоверителни задачи.
- За cgroups е реализиран контролер за разпределение на паметта slab (контролер за паметта slab), който е забележителен с преминаването на отчетността на slab от нивото на страниците на паметта на нивото на обектите на ядрото, което позволява споделянето на slab-страници в различни cgroup, вместо да се отделят отделни кешове slab за всяка cgroup. Предложеният подход повишава ефективността на използването на slab, намалява с 30-45% размера на паметта, използвана за slab, значително намалява общото потребление на памет от ядрото и намалява фрагментацията на паметта.
- Осигурена е доставка на отладъчни данни в формат CTF (Compact Type Format), осигуряващ компактно съхранение на информация за C-типове, връзки между функции и отладъчни символи.
- Доставката на модула DRBD (Distributed Replicated Block Device) и устройството /dev/raw (за директен достъп до файловете следва да се използва флага O_DIRECT) е прекратена.
Източник: opennet.ru
