#image_title

Le micro-noyau rencontre le calcul haute performance

Comment QNX Software-Development Platform 8.0 change notre façon de penser l’architecture du micronoyau.

L’adoption de systèmes d’exploitation pour les appareils Internet des objets (IoT) et de systèmes basés sur l’architecture à micro-noyau est en augmentation. L’accent mis sur les plates-formes d’exploitation compatibles IoT et micronoyau est tout à fait naturel, étant donné les avantages substantiels qu’elles peuvent offrir en termes de sûreté, de sécurité, d’isolation logicielle, de modularité et de portabilité pour les systèmes critiques tels que les véhicules, la robotique et les systèmes industriels. Des exemples notables de systèmes d’exploitation jouant un rôle central dans l’innovation des appareils incluent Apple, avec son incorporation du micronoyau Mach dans OS X, et Google, avec sa création de Fuchsia pour les appareils IoT et de KataOS pour les applications d’apprentissage automatique (ML).

Le BlackBerry QNX RTOS (real-time OS) reflète plusieurs décennies d’expérience avec les micro-noyaux. De notre première offre commerciale QNX il y a plus de 40 ans à notre récente annonce de QNX OS 8.0, nous nous sommes constamment concentrés sur les capacités et les performances de notre micro-noyau. Ce blog explique certains concepts qui sous-tendent la résurgence actuelle des systèmes d’exploitation basés sur l’architecture micro-noyau et partage les récentes mises à jour architecturales de QNX OS 8.0 qui prennent en charge ses capacités uniques en leur genre fonctionnant sur le dernier matériel de calcul haute performance (HPC).

Qu’est-ce qu’un micro-noyau ?

Un micro-noyau est fondamentalement une architecture de conception de système d’exploitation dans laquelle le noyau s’exécute dans son propre espace d’adressage en mémoire, également appelé espace noyau, et fournit uniquement l’ensemble de services les plus essentiels nécessaires. Celles-ci incluent généralement la gestion de la mémoire, la planification des threads et la facilitation de la communication entre les composants logiciels, y compris d’autres services du système d’exploitation situés en dehors de l’espace du noyau. Le noyau est intentionnellement réduit et ne contient que les fonctions et le système d’exploitation critiques. Les pilotes de périphériques, les réseaux, les graphiques et les systèmes de fichiers s’exécutent tous dans leur propre espace d’adressage dédié.

Le principal avantage de cette conception est qu’elle fournit un système d’exploitation sécurisé, fiable et modulaire. Les services supplémentaires fournis par les graphiques d’un système d’exploitation typique, les pilotes de périphériques, les systèmes de fichiers, la mise en réseau, etc. fonctionnent en dehors de l’espace du noyau en mode utilisateur. Cela place une petite quantité de code dans l’anneau de supervision du processeur, ce qui limite considérablement les risques et l’exposition aux bogues de sécurité.

En revanche, dans un système d’exploitation basé sur un noyau monolithique, le noyau, le réseau, les systèmes de fichiers, les pilotes de périphérique, les graphiques et les autres services du système d’exploitation s’exécutent tous dans l’espace du noyau, où ils partagent le même espace d’adressage en mémoire que le noyau. Du point de vue des performances, dans certaines conditions, cette conception est plus favorable car les services du système d’exploitation s’exécutent dans l’espace du noyau et il n’y a pas de changement de contexte lorsque ces services communiquent avec le noyau. Cependant, étant donné que tous les services s’exécutent dans l’espace du noyau, cette conception augmente considérablement le risque et l’exposition aux bogues de sécurité qui pourraient survenir dans un service du système d’exploitation, tel que la mise en réseau, et qui pourraient avoir un impact sur le noyau ou d’autres services du système d’exploitation. Par exemple, si un bogue de sécurité associé à une corruption de mémoire est détecté dans la pile réseau, il aura probablement un impact sur les autres services du système d’exploitation et sur le noyau, puisque la pile réseau partage le même espace mémoire. L’effet domino qui en résulte au niveau du système pourrait être important si le noyau et d’autres services du système d’exploitation sont affectés. Cela pourrait entraîner un comportement erratique du système global, ce qui, dans les systèmes critiques pour la mission ou la sécurité, pourrait mettre des vies en danger.

Attributs traditionnels du micro-noyau

La beauté de la conception du micro-noyau réside dans sa modularité dans la mesure où la sécurité, la sûreté ou tout bug associé aux services du système d’exploitation sont contenus dans leur propre espace d’adressage qui s’exécute dans l’espace utilisateur, ce qui limite l’exposition au noyau et aux autres services du système d’exploitation.

En dehors du noyau, une conception en micronoyau permet de développer un système robuste et modulaire. La majeure partie du logiciel système, y compris le service du système d’exploitation, s’exécute en mode utilisateur, ce qui limite l’impact sur l’intégrité du système en cas de panne, car le noyau s’exécute dans son propre espace d’adressage. Si un pilote, un système de fichiers, une pile réseau ou un autre service système tombe en panne sur un système à micro-noyau, cela entraînera un crash immédiat de ce service du système d’exploitation avec un impact limité sur le noyau et les autres services du système d’exploitation et c’est une bonne chose ! Cela signifie que le noyau, qui est le cœur de tout système d’exploitation, continue de fonctionner pour maintenir les fonctions essentielles du système opérationnelles. Il pourrait également passer dans un état de conception sûre et informer l’équipe logicielle du problème spécifique afin qu’elle puisse le dépanner et le résoudre rapidement.

En revanche, les systèmes d’exploitation monolithiques exécutent le noyau et les services du système d’exploitation tels que la mise en réseau, les systèmes de fichiers, les pilotes matériels et les graphiques dans l’espace d’adressage du noyau, ce qui donne lieu à une conception qui peut permettre à des bogues de corrompre ou de faire planter le noyau et d’autres services du système d’exploitation. Cela peut avoir un impact généralisé, voire catastrophique, sur l’ensemble du système.

Avantages supplémentaires du micronoyau

Les pilotes étant dans l’espace utilisateur, cela rend également le système d’exploitation basé sur un micro-noyau essentiellement indépendant du matériel. Bien entendu, le système d’exploitation incluant le noyau prendrait en charge des architectures matérielles spécifiques, telles que Armv8, Armv9 ou x86 64. Mais pour le matériel spécial fourni par les fournisseurs de silicium pour implémenter leurs architectures matérielles spécifiques, le package de support de carte (BSP) s’exécute dans l’espace utilisateur. Il s’agit d’un excellent avantage pour les intégrateurs de systèmes qui souhaitent pouvoir changer de matériel d’un fournisseur à un autre sans avoir à relancer le système d’exploitation. Avec le micro-noyau, tout ce dont vous avez besoin est un nouveau BSP pour le matériel et le tour est joué, vous êtes opérationnel sans aucune modification des services de base, ce qui signifie des modifications minimes du logiciel que l’intégrateur système a déployé au-dessus du système d’exploitation.

Un avantage supplémentaire est le modèle de développement. Étant donné que tous les composants non essentiels (comme les pilotes de périphériques et les piles de protocoles) fonctionnent comme des applications dans l’espace utilisateur, ils peuvent être développés et débogués à l’aide d’outils standard, éliminant ainsi le besoin d’API de débogage spécialisées ou de débogueurs dédiés.

Ces avantages sont quelques-unes des raisons pour lesquelles les produits logiciels QNX fondamentaux de BlackBerry sont construits sur cette architecture. Depuis 1982, chaque système d’exploitation QNX publié est basé sur une conception de micro-noyau. C’est pourquoi le logiciel QNX est le choix de confiance pour tant d’applications critiques, telles que l’espace et l’avionique, le médical, la défense, les centrales nucléaires, les systèmes de contrôle de locomotives et les automobiles.

Pourquoi tout n’est-il pas un micro-noyau ?

Compte tenu de l’amélioration tangible de la fiabilité apportée par les micro-noyaux, il semble que la plupart des systèmes d’exploitation auraient dû adopter cette direction depuis longtemps. Alors que de nombreux systèmes d’exploitation courants, tels que OS X, iOS, Windows et même Linux, exploitent les principes et les fonctionnalités des micro-noyaux, cette direction de développement a été entravée par une objection fréquente selon laquelle les micro-noyaux ont un changement de contexte supplémentaire et pourraient donc potentiellement prendre du retard. performances de débit par rapport aux systèmes d’exploitation monolithiques. Cette préoccupation a dans de nombreux cas dissuadé une exploration plus approfondie et a cantonné les micro-noyaux principalement à des applications où un fonctionnement fiable et robuste est une priorité plus élevée que la vitesse d’exécution. Pourtant, l’idée selon laquelle les micro-noyaux sont lents de par leur conception est désormais un terme inapproprié, basé sur les capacités et les exigences de matériels et de logiciels vieux de plusieurs décennies.

Pour retracer les origines de cette perception, il faut reconnaître que, dans la plupart des cas, l’architecture d’un micro-noyau transforme les requêtes du système d’exploitation en appels IPC entre l’application et le service, alors qu’un noyau monolithique gère cela avec un appel direct.

Figure 1 Coût en termes de performances des appels système monolithiques par rapport aux appels système micro-noyau

Le coût en performances associé aux micro-noyaux se résume à deux commutateurs de mode supplémentaires et deux commutateurs de contexte supplémentaires. Ce temps supplémentaire n’est onéreux que lorsque le coût de l’appel représente une proportion importante du temps total passé, ou pour être plus précis, lorsque le service système gère les frais généraux afin d’effectuer une très petite opération. Même si quelques changements de contexte et de mode supplémentaires ont pu avoir un impact significatif au début des architectures en mode protégé, les processeurs modernes continuent de réduire cet inconvénient. Cela est particulièrement vrai si l’on considère les vitesses maximales des processeurs hautes performances d’aujourd’hui.

Le moment de briller pour les micro-noyaux

Alors que l’impact du micronoyau sur les performances continue de diminuer, des aspects uniques de la manière dont le développement HPC peut bénéficier des fonctionnalités spécifiques au micronoyau deviennent évidents :

  • Le confinement des pannes s’étend de plus en plus au-delà du domaine des logiciels critiques pour englober de nombreux types d’applications, y compris celles du HPC. Le confinement des pannes est défini comme l’ensemble des services du système d’exploitation, des applications utilisateur ou des pilotes qui partagent une ou plusieurs ressources communes et peuvent être affectés par une seule panne. Un système d’exploitation basé sur un micronoyau est tolérant aux pannes en raison de son architecture et permet au système de gérer efficacement les stratégies de redondance, telles que le remplacement à chaud du matériel défaillant ou le redémarrage des services et des pilotes. Le résultat est une mise en œuvre cohérente des fonctionnalités de tolérance aux pannes dans l’ensemble du système, comme en témoigne le High Availability Manager de BlackBerry. Cette approche minimise l’impact de la récupération après panne, y compris le temps de récupération, faisant d’un redémarrage complet une rare nécessité.

  • Applications sensibles au bruit : les applications HPC qui utilisent un modèle de programmation synchrone en masse s’appuient sur des threads de calcul et de communication fonctionnant en parfaite synchronisation pour maximiser le débit. Cependant, le bruit du système d’exploitation créé par la maintenance sporadique du système d’exploitation et les tâches en arrière-plan peuvent avoir un effet considérable sur les performances. Anticiper un thread peut gaspiller plusieurs milliers de cycles en provoquant un déphasage des processus synchronisés, ce qui équivaut à un ralentissement global important. Le micro-noyau QNX, grâce à sa capacité à gérer l’essentiel du traitement des interruptions matérielles dans le code au niveau utilisateur, contribue à réduire le traitement en arrière-plan variable qui peut perturber des tâches bien synchronisées.

QNX SDP 8.0 et HPC : amélioration des performances et de la flexibilité

La dernière version du micronoyau QNX, QNX SDP 8.0 présente de nombreuses améliorations qui le rendent particulièrement adapté aux applications HPC et aux systèmes basés sur HPC dans des domaines clés. Ceux-ci inclus:

  • Micro-noyau de nouvelle génération conçu sur mesure pour le HPC

  • Planificateurs de noyau nouveaux et mis à jour

  • Déterminisme difficile en temps réel

  • Parallélisme uniforme et préemption

  • Mise en réseau haute performance

Ce ne sont là que quelques-unes des nouvelles fonctionnalités qui permettent à QNX SDP 8.0 d’être optimisé pour un environnement HPC sans sacrifier la sûreté et la sécurité.

Embrasser la prochaine ère d’innovation

L’intérêt croissant pour les micro-noyaux est motivé par leur capacité à améliorer la fiabilité, alors que les préoccupations en matière d’efficacité continuent de diminuer. Les dernières mises à jour de QNX SDP 8.0 et QNX OS 8.0 montrent un engagement clair à adapter les micro-noyaux aux besoins modernes, en offrant des améliorations dans des domaines qui profitent aux performances globales, en particulier dans les conceptions HPC. Ces changements reflètent non seulement les atouts traditionnels des micro-noyaux, mais également l’engagement continu en faveur de l’innovation avec BlackBerry QNX.

Pour en savoir plus sur BlackBerry QNX et les fonctionnalités offertes par QNX SDP 8.0, visitez cette page.

Pour des articles et des actualités similaires livrés directement dans votre boîte de réception, abonnez-vous au Blog BlackBerry.

Louay Abdelkader

About Louay Abdelkader

Louay Abdelkader est chef de produit technique principal, BlackBerry QNX.


www.actusduweb.com
Suivez Actusduweb sur Google News


Ce site utilise des cookies pour améliorer votre expérience. Nous supposerons que cela vous convient, mais vous pouvez vous désinscrire si vous le souhaitez. J'accepte Lire la suite