Linux 6.12 может иметь поддержку PREEMPT_RT в режиме реального времени

Preempt-RT — модификация, позволяющая задачам с более высоким приоритетом прерывать задачи с более низким приоритетом.

El концепция системы реального времени В последние годы в Linux об этом не думали, поскольку идея этого началось почти 20 лет назад, а точнее в 2005 году. в рамках проекта «Realtime-Preempt» («-rt») с разработкой режима PREEMPT_RT для ядра Linux.

Для тех, кто не знает ПРИЕМПТ_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-следующий. Это означает поведение «устаревшей консоли», т. е. отсутствие печати с атомарный контекст в чрезвычайных ситуациях. Контроллер UART 8250 — единственный который сегодня обеспечивает поддержку «атомной консоли».

Все Эта работа вот-вот принесет плоды., так как полная интеграция необходимых изменений заняла пять лет и близится к завершению, так как ожидается, что в версии 6.12 ядро ​​можно будет скомпилировать в режиме PREEMPT_RT без необходимости применения дополнительных патчей.

Упоминается, что последнее препятствие что препятствовало включению PREEMPT_RT, было отсутствие поддержка неблокирующего атомарного вывода с использованием функции printk. Эта функция уже была принят в ветке linux-next. Кроме того, для контроллера UART 8250 ожидается реализация неблокирующей атомарной консоли, отсутствие которой в настоящее время не позволяет выводить на консоль экстренные сообщения из кода, выполняемого в атомарных контекстах.

При объединении битов printk PREEMPT_RT можно включить на X86, ARM64. и Риск-В. Эти три объединенные архитектуры потребовали изменений с течением времени.
лет, оставив меня в положении, когда у меня нет существенных изменений в
очередь, которая повлияет на них. Для ARM и POWERPC осталось несколько важных патчей…

Разработчики ядра Linux объявили об интеграции последних необходимых изменений в ветку linux-next, который будет использоваться для компиляции версии 6.12. Эти изменения позволят компилировать ядро ​​с опцией PREEMPT_RT, которая предоставляет возможности работы в реальном времени.

Как только эти изменения будут приняты в основной ветке, режим PREEMPT_RT Он будет доступен для архитектур X86, ARM64 и RISC-V. Поддержка архитектур ARM и POWERPC будет добавлена ​​позже, так как необходимые патчи еще не полностью интегрированы.

Стоит отметить, что предложенные изменения еще не окончательны и возможно, что если PREEMPT_RT не появится в ветке 6.12, то он будет интегрирован до следующего года в версии 6.13.

Наконец, если вам интересно узнать об этом больше, вы можете проверить подробности в по следующей ссылке.