El концепція системи реального часу Це не те, про що думали в останні роки в Linux, з моменту появи ідеї розпочався майже 20 років тому, а точніше у 2005 році в рамках проекту «Realtime-Preempt» («-rt») з розробкою режиму PREEMPT_RT для ядра Linux.
Для тих хто не знає PREEMPT_RT, вони повинні це знати це патч для ядра Linuxі перетворює операційну систему на систему реального часу (в реальному часі). Основна мета PREEMPT_RT — зменшити затримку та забезпечити передбачуваність у виконанні завдань, що має вирішальне значення в програмах, які вимагають швидких відповідей.
Простіше кажучи, ми можемо сказати, що PREEMPT_RT дозволяє переривати майже всі частини ядра, що зменшує затримку. На відміну від стандартного ядра, не всі розділи можуть бути перервані, що може спричинити затримки часу відповіді.
З 2015 року проект знаходиться під наглядом Linux Foundation і досі реалізація режиму PREEMPT_RT пропонувалася у формі зовнішніх патчів. На основі цих патчів, такі дистрибутиви, як RHEL, SUSE та Ubuntu створили версії своїх продуктів у реальному часі, користується високим попитом у таких секторах, як фінансові системи, пристрої обробки аудіо та відео, авіаційні системи, медицина, робототехніка, телекомунікації та промислове застосування, де важливо гарантувати передбачуваний час реакції на події.
En 2019 розпочався процес просування патчів, розроблених у проекті PREEMPT_RT до основного ядра Linux. У версії ядра 5.3 параметр PREEMPT_RT був включений у файл конфігурації, щоб увімкнути режим реального часу.
Біти printk, необхідні для PREEMPT_RT, знаходяться в linux-next. Це була останньою відомою перешкодою для PREEMPT_RT. Черга RT має також "атомна консоль" для UART 8250, якої ще немає linux-next. Це означає поведінку "застарілої консолі", як і відсутність друку з атомний контекст у випадках надзвичайної ситуації. Контролер 8250 UART єдиний який сьогодні забезпечує підтримку «атомної консолі».
Всі Ця робота ось-ось принесе плоди., оскільки повна інтеграція необхідних змін зайняла п’ять років і наближається до завершення, оскільки очікується, що у версії 6.12 ядро можна буде скомпілювати в режимі PREEMPT_RT без необхідності застосування додаткових виправлень.
Згадується, що остання перешкода що перешкоджало ввімкненню PREEMPT_RT, була відсутність підтримка неблокуючого атомарного виведення за допомогою функції printk. Ця функція вже була прийнятий у гілці linux-next. Крім того, очікується реалізація неблокуючої атомарної консолі для контролера 8250 UART, відсутність якої наразі запобігає виведенню екстрених повідомлень на консоль із коду, що виконується в атомарних контекстах.
З об’єднаними бітами printk PREEMPT_RT можна ввімкнути на X86, ARM64 та Risc-V. Ці три об’єднані архітектури потребували змін протягом багатьох років.
років, залишаючи мене в положенні, коли я не маю істотних змін у
черги, яка вплине на них. Для ARM і POWERPC залишилося кілька важливих виправлень…
Розробники ядра Linux оголосили про інтеграцію останніх необхідних змін у гілку linux-next, який буде використано для компіляції версії 6.12. Ці зміни дозволять скомпілювати ядро з опцією PREEMPT_RT, яка вводить можливості реального часу.
Після прийняття цих змін на головній гілці, режим PREEMPT_RT Він буде доступний для архітектур X86, ARM64 і RISC-V. Підтримка архітектур ARM і POWERPC буде додана пізніше, оскільки необхідні патчі ще не повністю інтегровані.
Варто зазначити, що запропоновані зміни ще не є остаточними, і можливо, якщо PREEMPT_RT не надійде у гілку 6.12, він буде інтегрований до наступного року у версії 6.13.
Нарешті, якщо вам цікаво дізнатись більше про це, ви можете перевірити деталі в наступне посилання.