Linux 6.12 пристига с поддръжка на RT, механизъм sched_ext, подобрения в поддръжката и др

Tux, талисманът на ядрото на Linux

След два месеца разработка, Линус Торвалдс обяви пускането на ядрото Linux 6.12, версия, в която Откроява се възможността за активиране на режим в реално време, добавянето на sched_ext, за да позволи създаването на планировчици на процесора с помощта на eBPF, и механизъм, който генерира QR кодове в критични ситуации.

Linux 6.12 включва общо 14,607 XNUMX направени корекции, Те бяха добавени повече от 507,913 XNUMX реда код и елиминиране на 234,083 XNUMX. Въпреки че корекцията е по-малка в сравнение с предишните версии, тя представлява безпрецедентна оптимизация.

Основни новини в Linux 6.12

Linux ядрото сега може да се изгради с опцията PREEMPT_RT iинтегриран, премахвайки необходимостта от външни пачове за работа в реално време. Това беше постигнато чрез включване на поддръжка във функцията printk. PREEMPT_RT и е наличен на архитектури като x86, x86_64, ARM64 и RISC-V.

В компилацията, Поддръжката за компилатора Clang беше разширена до стандартната библиотека nolibc, позволяващи оптимизации като оптимизиране на времето за връзка (LTO). Също така е добави система за проследяване на звънене, който запазва информация за отстраняване на грешки в паметта след рестартиране, улеснявайки анализа след повреда.

От страна на Rust-for-Linux, това продължава да напредва с нови модули като списък и rbtree за свързани списъци и червено-черно дърво. Освен това поддръжката беше разширена в ключови области като инициализация, синхронизация и обработка на грешки. Възможно е да се компилира ядрото с Rust, като същевременно се поддържат разширени защити като Spectre и отстраняване на грешки с KASAN или kCFI. Освен това беше интегриран Ethernet PHY драйвер, написан на Rust.

Още една новост Това, което се откроява в тази нова версия на ядрото на Linux 6.12, е въвеждането на механизъм sched_ext (SCX), което ви позволява да използвате eBPF за създаване на персонализирани планировчици на процесора. Със SCX разработчиците могат да проектират динамични планировчици, които оптимизират изпълнението на задачи въз основа на състоянието на системата и специфичните нужди на приложението, което улеснява експериментирането и прилагането на стратегии в производствени среди.

също SCHED_DEADLINE интегрирането на сървъра е завършено, по-ефективно решение за да се избегне монополизирането на процесора от задачи с висок приоритет, подобряване на разпределението на ресурси за задачи с нисък приоритет. Освен това планировчикът на CFS беше заменен с новия EEVDF (Earliest Eligible Virtual Deadline First), който по-справедливо разпределя ресурсите на процесора и елиминира необходимостта от ръчни настройки, намалявайки закъсненията при критични задачи.

Контролерът DRM Паника, отговорен за обработката на спешни случаи в ядрото, сега можете да показвате визуален отчет с лога и QR кодове включително компресирани диагностични данни. Тези QR кодове улесняват анализа на грешките, позволявайки на потребителите да бъдат пренасочени към страници, конфигурирани от дистрибуциите, за да докладват за проблеми.

Относно ARM, добавена поддръжка за POE разширение (Разширение за наслагване на разрешения), което активира механизми като ключове за защита на паметта за ограничаване на достъпа до определени области на паметта, без да е необходимо да променяте таблиците на страниците. Освен това, оптимизирането на системното повикване getrandom() с помощта на vDSO увеличи скоростта на генериране на произволни числа до 15 пъти на Loongarch, ARM64, PowerPC и s390 архитектури.

Un нов USB драйвер позволява използването на протокола 9pfs за прехвърляне на данни между USB устройства чрез монтиране на 9p файлови системи. Това е особено полезно за вградени устройства, осигурявайки ефективна алтернатива на NFS за зареждане на root дялове.

Подсистемата io_uring добави поддръжка за абсолютни изчаквания, активиран в определени часове въз основа на системния часовник. Това подобрява контрола върху асинхронните операции, осигурявайки по-голяма прецизност при тяхното изпълнение.

за библиотеката libcpupower, включени файлове за генериране на връзки с помощта на SWIG, което позволява езици като Python да се използват за разширяване на неговата функционалност. Освен това помощната програма cpuidle е подобрена, която вече може да измерва минималното време на неактивност, необходимо за оправдаване на преходните енергийни разходи.

В областта на мрежите, един Най-забележителните подобрения са TCP механизма за паметта на устройството, която позволява директен трансфер на данни между паметта на периферните устройства и мрежата, без да минава през процесора, постигайки забележителна ефективност. Освен това, възможностите на множество Ethernet и WiFi контролери, като iwlwifi на Intel и rtw89 на RealTek, са разширени с допълнителна поддръжка за WiFi 6 чипове и усъвършенствани IEEE стандарти. За IPv6 беше въведена нова функционалност за оптимизиране на разпределението на адреси с помощта на DHCPv6-PD, докато MPTCP получи подобрения в маршрутизирането и откриването на загуба на трафик.

В хардуерната поддръжка, Добавена е постоянна поддръжка за AMD RDNA4 в AMDGPU драйвера и подобрения на Xe DRM драйвера за Intel Xe GPU. Също така беше добавен Поддръжка за процесори Xeon Granite Rapids и нови ARM платформи, включително Snapdragon X Elite SoC.

И накрая, ако се интересувате да научите повече за него, можете да се консултирате с подробностите в следваща връзка.