Linux est désormais décliné en version temps réel à l'instar du nouveau et officiel Real-Time Ubuntu Server.

Newtech

Linux s’adapte au temps réel et Canonical lance Real-Time Ubuntu

Par Laurent Delattre, publié le 15 février 2023

La sortie cette semaine de la première déclinaison « temps réel » d’Ubuntu Linux est l’occasion pour IT for Business de revenir sur les systèmes dits « temps réels », leurs usages et comment Linux s’adapte aujourd’hui aux contraintes particulières du “real-time”.

Linux a fait ses preuves. Il est sans doute le système d’exploitation aux applications les plus diversifiées. On le retrouve sur les ordinateurs de bureau, sur les serveurs, dans les HPC les plus puissants, mais aussi dans les box des opérateurs, dans les routeurs et équipements réseau, au cœur d’Android ou de FireOS, dans des robots, sur la station spatiale, dans les voitures, dans certaines consoles de jeux et différents équipements du quotidien.

Toutefois, d’origine, Linux n’est pas le système le plus adapté du marché pour les dispositifs ayant besoin d’un véritable temps réel. De base, son Kernel se veut plus souple et plus polyvalent que les contraintes imposées par un vrai temps-réel. Un système « temps-réel » est effectivement contraint d’opérer sur des règles définies avec des deadlines fines et impératives. Dit autrement, le système doit répondre impérativement dans un délai prédéfini qui dépend souvent des applications pour lesquels il a été choisi mais aussi du hardware.

Des OS pour temps-réel

La plupart des systèmes « temps-réel » ne sont ainsi pas basés sur Linux. Ils se nomment, entre autres, FreeRTOS (le plus connu et supporté par AWS), ThreadX (autre star du monde industriel créé par Express Logic avant d’être racheté par Microsoft pour devenir officiellement Microsoft Azure RTOS), Deos (fun fact : un OS avec partitionnement temporel et spatial qui lui permet de satisfaire aux normes de l’aviation et qui dérive de travaux menés par Honeywell), DioneOS (pour microcontrôleurs), eCos (fun fact : anciennement racheté par Red Hat puis abandonné avant de rejoindre la FSF et devenir populaire sur Raspberry Pi), HeartOS (un « hard real time OS » basé sur POSIX développé par DDC-I à qui l’on doit aussi Deos), VxWorks (fun fact : né en 1987, bien avant Linux, programmable en C et ADA, et embarqué dans plusieurs missions de la Nasa dont les rovers Curiosity et Perseverance), Integrity (réputé dans le monde de l’embarqué),  LynxOS (fun fact : anciennement connu sous le nom de LynuxWorks mais bien antérieur à Linux), QNX Neutrino (désormais supervisé par BlackBerry et apprécié dans l’univers automobile notamment) ou encore Nucleus RTOS (né en 1990, fruit de William Lamie auteur de ThreadX et désormais piloté par Siemens).

Du Linux Temps Réel

Pour permettre à Linux de rejoindre l’univers du temps réel, plusieurs projets ont cherché à modifier le sacro-saint « Kernel Linux » de sorte à lui inculquer des capacités propres aux systèmes temps réel. Ainsi sont nés des projets comme :
– Zephyr (qui a été récupéré par la fondation Linux et dont Intel en a fait un Fork sous licence BSD pour Arduino) mais qui n’est pas basé sur un Kernel Linux même s’il offre une certaine compatibilité avec Linux ;
RTLinux qui était à l’origine un projet universitaire avant d’être récupéré par Wind River ;
RTAI, un projet universitaire italien qui dérive de RTLinux et se veut une « extension RT » pour le Kernel Linux en appui sur l’hyperviseur minimaliste Adeos ;
Xenomai, qui comme RTAI est en fait un co-Kernel temps réel « dur » qui fonctionne parallèlement au noyau Linux grâce à l’hyperviseur Adeos.

Tous ces efforts pour rendre le Kernel Linux plus temps-réel ont fini par donner naissance à une véritable initiative collaborative menée sous l’égide de la fondation Linux connue sous le nom de Real-Time Linux, RTL, Linux-RT mais plus concrètement déployée sous la forme des patchs « PREEMPT_RT ».

À LIRE AUSSI :

Dans une distro Linux classique, le Kernel Linux peut retarder temporairement l’exécution d’une tâche en cours pour en exécuter une autre. Dans l’univers du temps réel, un tel comportement est inacceptable.

Les patchs « PREEMP_RT » sont un ensemble de rustines qui modifie le code interne du Kernel Linux pour réduire la latence maximale subie par un processus au niveau utilisateur. Avec PREEMPT_RT, une application est capable de préempter ou de suspendre temporairement une tâche en cours pour exécuter une tâche plus prioritaire sans délai. Le patch PREEMPT_RT permet également d’assurer que le noyau ne reste pas bloqué indéfiniment en attendant des entrées/sorties ou d’autres événements, ce qui est important pour garantir la réactivité en temps réel.

Ces rustines permettent d’insuffler au Kernel Linux un comportement temps réel tout en limitant les modifications apportées au noyau Linux authentique. Ainsi, la compatibilité Linux reste très élevée et les patchs peuvent évoluer à peu près en même temps que le noyau.

Depuis l’apparition de ces patchs « PREEMPT_RT » bien des acteurs importants du monde Linux ont développé des variantes de leurs distros pour satisfaire les besoins d’applications de contrôle industriel, de systèmes d’acquisition de données, de systèmes de vision par ordinateur, de systèmes d’aide à la conduite automobile, de robots, etc. C’est le cas notamment de SUSE Linux Enterprise Real Time, RHEL for Real Time de Red Hat, ou Manjaro.

Ubuntu officialise sa version Real-Time

En bêta depuis très longtemps, Canonical a officialisé cette semaine sa propre distro temps réel basée sur son Ubuntu Linux.
Basée sur la version 5.15 du noyau Linux, la distribution Real-Time Ubuntu 22.04 LTS intègre les correctifs out-of-tree PREEMPT_RT pour les architectures x86 et Arm.

Avec cette nouvelle distribution, Canonical vise en priorité le marché des Telcos. « La solution offre une latence ultra-faible et une sécurité pour les infrastructureas critiques des télécoms explique l’éditeur. Nous avons a conçu le noyau en temps réel pour répondre aux besoins de transformation des réseaux des telcos pour la 5G ».

Ce noyau en temps réel est disponible sur toutes les variantes du système d’exploitation Ubuntu : Ubuntu Server, Ubuntu Pro, Ubuntu Core…
« Le noyau Ubuntu en temps réel apporte des performances et une résilience de niveau industriel. Le support logiciel de niveau entreprise de Canonical et la maintenance à long terme du noyau en temps réel assureront la longévité du produit. Les fournisseurs peuvent concentrer leurs efforts et réorienter leurs ressources vers des activités à valeur ajoutée sans se soucier de la stabilité et de la sécurité de l’infrastructure critique sous-jacente » ajoute l’éditeur qui au-delà des Telcos vise aussi les entreprises des secteurs de l’industrie, de l’automobile, de l’aérospatiale, de la défense et du retail.

À LIRE AUSSI :

Dans l'actualité

Verified by MonsterInsights