Після двох місяців роботи, Лінус Торвальдс оголосив про запускі нова версія ядра Linux 6.13, яка приносить із собою важливі досягнення та новинки. Серед основних новинок, які він представляє, виділяється: модель ледачого випередження, яка розташована між добровільним і повним режимами, включення підтримка атомарного запису у файлові системи, такі як XFS і Ext4.
Інші зміни включають драйвер virtual-cpufreq, новий netlink net-shap APIі режим монтування tmpfs, який тепер чутливий до регістру, а також підтримка розширень POSIX в SMB3, і драйвер оптимізатора кешу від AMD.
У цій новій версії взяли участь 2086 розробників, які внесли 14,172 15,375 виправлення, що вплинуло на 598,707 406,294 файлів і призвело до додавання XNUMX XNUMX рядків коду з видаленням XNUMX XNUMX рядків.
Основні нові функції Linux 6.13
Ядро 6.13, одна з найважливіших змін є впровадження механізму «дрібних часових позначок». що підвищує точність отримання даних про модифікації або доступи до файлів, досягаючи точності більше мілісекунди без негативного впливу на продуктивність.
Ще однією новою функцією ядра Linux 6.13 є sпідтримка атомарних записів, який гарантує, що дані, розмір яких перевищує розмір сектора, записуються атомарно на пристрої, які підтримують цю функцію. В даний час ця функція Він доступний у файлових системах, таких як XFS, Ext4 у режимі O_DIRECT, і в конфігураціях RAID 0/1/10 з md.
Що стосується інших файлових систем, Linux 6.13 означає остаточне видалення ReiserFS, EROFS тепер підтримує параметри SEEK_HOLE і SEEK_DATA в lseek(), тоді як У F2FS додано підтримку псевдонімів пристроївsy XFS додала підтримку квот на пристроях реального часу та покращила керування каталогами метаданих. Крім того, SMB3 тепер підтримує розширення POSIX, необхідні для зберігання спеціальних файлів, таких як символічні посилання та файли пристроїв.
У пам'яті та системних службах нова лінива модель переваг (PREEMPT_LAZY). Ця модель дозволяє підтримувати можливості випередження завершується для завдань у реальному часі, водночас затримуючи випередження звичайних завдань до ліміту. Крім того, модель спрощує логіку планувальника завдань, видаляючи драйвери з інших частин ядра з процесу планування.
Щодо оптимізації збірки, інтегровано підтримку оптимізації AutoFDO під час компіляції за допомогою Clang, які використовують профілі виконання для налаштування коду та підвищення продуктивності, як було показано, зменшують затримку на 10%. Також до системного виклику madvise() додано новий прапорець, щоб покращити керування пам’яттю процесу. Прапор MADV_GUARD_INSTALL дозволяє замінити певні адреси захисту сторінок, запобігаючи виключенням доступу (SIGSEGV) без необхідності виділення нових областей віртуальної пам’яті.
IO_uring також отримав кілька покращень, включаючи можливість змінювати розмір буферів, синхронно надсилати повідомлення між кільцевими буферами та частково клонувати буфери. Крім того, було реалізовано гібридне опитування вводу-виводу, а API було розширено для реєстрації кільцевих буферів і областей пам’яті.
Як удосконалено апаратне забезпечення, додано можливість виявлення «роздільних блокувань» на процесорах AMD, явище, яке виникає, коли дані неправильно вирівняні в пам’яті та перетинають два рядки кешу, що може серйозно вплинути на продуктивність. Щоб пом’якшити цю проблему, був інтегрований драйвер AMD Cache Optimizer, який використовує переваги технології AMD 3D V-Cache для підвищення продуктивності окремих ядер ЦП шляхом збільшення розміру доступного кешу L3 або збільшення частоти.
Для архітектури MIPS, додано підтримку для систем з кількома контролерами переривань. кластери, надаючи окремий обробник переривань для кожного кластера ЦП. Також реалізовано нову операцію ioctl, PIDFD_GET_INFO, яка дозволяє отримати інформацію про процес за допомогою його ідентифікатора PIDFD, який залишається постійним, навіть якщо пов’язаний PID змінюється після завершення процесу.
En ARM, ключові досягнення включають підтримку запуску Linux на віртуальних машинах захищений конфіденційною обчислювальною архітектурою Arm, а також підтримкою тіньових стеків у просторі користувача, що покращує безпеку. Він також реалізує a новий механізм підрахунку посилань для файлів, досягнення більшої масштабованості.
El Планувальник завдань тепер підтримує механізм виконання проксі, розв’язуючи задачу інверсії пріоритету. Цей механізм не дозволяє завданням з низьким пріоритетом затримувати ресурси, необхідні для завдань з високим пріоритетом (у реальному часі), блокуючи їх. Крім того, контексти програмування та виконання процесів були розділені.
З іншого боку, це підкреслює міграція змін, пов'язаних з використанням Rust у розробці драйверів і модулів ядра. Хоча Підтримка Rust не ввімкнена за замовчуванням, додано прив’язки та структури даних дозволити писати драйвери цією мовою, включаючи підтримку трасування подій і драйвер Binder, переписаний на Rust.
Підсистема BPF покращено завдяки реалізації окремого стеку для програм BPF, що зменшує ризик переповнення при обробці великих ланцюжків викликів. Також додано можливість надсилати сигнали іншим процесам і використовувати спільну пам’ять у картах BPF, що полегшує обмін даними між драйверами планувальника завдань.
Крім того, Відстеження особливих ситуацій покращено для генерування помилок сторінки коли точки трасування запускаються в системних викликах, що дозволяє читати параметри, передані з простору користувача. Також було додано параметр transparent_hugepage_shmem для контролю використання великих сторінок пам’яті у файлових системах tmpfs і shmem.
У мережах введено підтримка призупинення NAPI під час бездіяльності, покращення енергоспоживання та новий API мережевих пристроїв, який полегшує розширену конфігурацію апаратного забезпечення передачі (TX). Крім того, io_uring отримав кілька оптимізацій, які покращують обробку асинхронних операцій введення/виведення.
Нарешті це реалізованопідтримка архітектури Loongarch у режимі реального часу і нові розширення архітектури RISC-V, які дозволяють маскувати покажчики в просторі користувача. Щоб покращити стиснення образу ядра, стандартний алгоритм було змінено на lz4 замість lz4c.
Якщо вам цікаво дізнатися про це більше, ви можете ознайомитися з деталями У наступному посиланні.