Linux 6.12 pourrait avoir le support « PREEMPT_RT » en temps réel

Preempt-RT est une modification qui permet aux tâches de priorité plus élevée d'interrompre les tâches de priorité inférieure.

El concept d'un système en temps réel Ce n'est pas quelque chose auquel on a pensé ces dernières années sous Linux, puisque l'idée de​​cela a commencé il y a presque 20 ans, pour être exact en 2005 dans le cadre du projet « Realtime-Preempt » (« -rt ») avec le développement du mode PREEMPT_RT pour le noyau Linux.

Pour ceux qui ne savent pas PREEMPT_RT, ils devraient savoir que c'est un patch pour le noyau Linuxet convertit le système d'exploitation en un système en temps réel (en temps réel). L'objectif principal de PREEMPT_RT est de réduire la latence et d'assurer la prévisibilité de l'exécution des tâches, ce qui est crucial dans les applications nécessitant des réponses rapides.

En termes plus simples, nous pouvons dire que PREEMPT_RT permet d'interrompre presque toutes les parties du noyau, ce qui réduit la latence. Contrairement à un noyau standard, toutes les sections ne peuvent pas être interrompues, ce qui peut entraîner des retards dans les temps de réponse.

Depuis 2015, le projet est sous la supervision de la Linux Foundation et jusqu'à présent, l'implémentation du mode PREEMPT_RT était proposée sous forme de patchs externes. Sur la base de ces correctifs, des distributions telles que RHEL, SUSE et Ubuntu ont créé des éditions en temps réel de leurs produits, très demandé dans des secteurs tels que les systèmes financiers, les dispositifs de traitement audio et vidéo, les systèmes aéronautiques, la médecine, la robotique, les télécommunications et les applications industrielles, où il est essentiel de garantir des temps de réponse prévisibles aux événements.

En 2019, le processus de promotion a commencé des patchs développés dans le projet PREEMPT_RT au noyau Linux principal. Dans la version 5.3 du noyau, l'option PREEMPT_RT a été incluse dans le fichier de configuration pour activer le mode temps réel.

Les bits printk requis pour PREEMPT_RT se trouvent dans Linux-next. Ce était le dernier obstacle connu pour PREEMPT_RT. La file d'attente RT a également la "console atomique" pour l'UART 8250 qui n'est pas encore disponible Linux-suivant. Cela signifie un comportement de "console héritée", comme le fait de ne pas imprimer à partir de le contexte atomique en cas d’urgence. Le contrôleur UART 8250 est le seul qui fournit aujourd’hui le support de la « console atomique ».

Tout Ce travail est sur le point de porter ses fruits., puisque l'intégration complète des modifications nécessaires a pris cinq ans et est en voie d'achèvement, puisqu'il est prévu que dans la version 6.12, le noyau puisse être compilé en mode PREEMPT_RT sans qu'il soit nécessaire d'appliquer des correctifs supplémentaires.

Il est mentionné que le dernier obstacle ce qui empêchait PREEMPT_RT d'être activé était le manque de prise en charge de la sortie atomique non bloquante à l'aide de la fonction printk. Cette fonctionnalité a déjà été adopté dans la branche Linux-next. De plus, une console atomique non bloquante est en attente de mise en œuvre pour le contrôleur UART 8250, dont l'absence empêche actuellement la sortie de messages d'urgence vers la console à partir de code exécuté dans des contextes atomiques.

Avec la fusion des bits printk, PREEMPT_RT pourrait être activé sur X86, ARM64 et Risc-V. Ces trois architectures fusionnées ont nécessité des évolutions au fil des années.
années, me laissant dans une position où je n'ai aucun changement essentiel dans le
file d'attente qui les affecterait. ARM et POWERPC ont encore quelques correctifs essentiels…

Développeurs de noyau Linux ont annoncé l'intégration des dernières modifications nécessaires dans la branche Linux-next, qui servira à compiler la version 6.12. Ces changements permettront au noyau d'être compilé avec l'option PREEMPT_RT, qui introduit des fonctionnalités temps réel.

Une fois ces changements acceptés sur la branche principale, mode PREEMPT_RT Il sera disponible pour les architectures X86, ARM64 et RISC-V. Le support des architectures ARM et POWERPC sera ajouté ultérieurement, car les correctifs nécessaires n'ont pas encore été entièrement intégrés.

Il est à noter que les changements proposés ne sont pas encore définitifs et il est possible que si PREEMPT_RT n'arrive pas dans la branche 6.12, il soit intégré jusqu'à l'année prochaine dans la version 6.13.

Enfin, si vous souhaitez en savoir plus, vous pouvez vérifier les détails dans le lien suivant