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.
Наконец, если вам интересно узнать об этом больше, вы можете проверить подробности в по следующей ссылке.