La première chose qui nous vient à l’esprit lorsque nous entendons le mot système d’exploitation est le logiciel utilisé dans nos ordinateurs de bureau et ordinateurs portables tels que Microsoft Windows, Linux, Ubuntu, etc., et Android pour les smartphones. En fait, la plupart des appareils électroniques numériques utilisent un système d’exploitation développé par le programme du microcontrôleur. L'évolution du microcontrôleur a ouvert la voie à de nombreuses applications de systèmes embarqués qui jouent un rôle crucial dans notre vie quotidienne, d'une manière ou d'une autre.
Un de ces systèmes dont nous avons entendu parler récemment est le système d'exploitation en temps réel, ou simplement appelé «RTOS». Le RTOS est un système d’exploitation utilisé pour les applications en temps réel, c’est-à-dire les applications qui traitent les données au fur et à mesure qu’elles arrivent dans les délais impartis. QNX et VxWorks sont deux systèmes d'exploitation en temps réel différents, largement utilisés dans les environnements industriels et universitaires. Le but de cet article est de faire une comparaison impartiale entre les deux.
QNX est un système d’exploitation commercial en temps réel développé à l’origine pour les systèmes embarqués et initialement développé par Quantum Software Systems au début des années 1980. La société basée au Canada a par la suite été renommée QNX Software Systems et a finalement été acquise par Research in Motion (RIM) pour servir de base à leur système d'exploitation BlackBerry 10 OS et à leur populaire BlackBerry Playbook. La version du système d'exploitation utilisée dans le Playbook était QNX Neutrino, qui reposait sur une véritable architecture de micro-noyau. QNX a été le premier système d’exploitation à base de micro-noyaux à avoir connu un succès commercial. QNX est fondamentalement un système d'exploitation de type Unix basé sur une véritable conception de micro-noyau et une architecture modulaire dans laquelle les éléments du système d'exploitation s'exécutent en tant que tâches, appelées gestionnaires de ressources, qui permettraient aux développeurs de désactiver toute fonctionnalité qui, à leur avis, ne le serait pas. requis plus dans le système particulier. La meilleure chose à propos de QNX est qu’il repose sur une communication interprocessus basée sur des messages.
VxWorks est un système d'exploitation en temps réel spécialement conçu pour l'informatique distribuée pour les applications en temps réel avec des systèmes intégrés. Il s'agit d'un système d'exploitation propriétaire en temps réel développé par Wind River Systems, une société californienne spécialisée dans le développement de logiciels embarqués pour les systèmes connectés intelligents. VxWorks est le RTOS le plus avancé du secteur, qui construit des systèmes et des périphériques intégrés depuis plus de trois décennies. C'est un noyau monolithique avec de nombreuses fonctions de communication et de synchronisation entre processus. Chaque version de VxWorks est unique en raison de son architecture où l'ensemble du système d'exploitation fonctionne dans l'espace noyau, ce qui signifie que tous les services du noyau et les services utilisateur existent dans le même espace adresse, ce qui accélère l'exécution du système d'exploitation. Il fournit des fonctions de débogage, de surveillance des performances, de gestion de la mémoire, de planification du processeur et d'autres fonctions du système d'exploitation via des appels système..
Tous deux sont des systèmes d’exploitation temps réel tout à fait uniques, spécialement conçus pour les applications temps réel avec des systèmes embarqués, chacun avec des charges de composants différents avec des fonctionnalités différentes. Les deux systèmes sont largement utilisés dans les grands environnements industriels et universitaires et sont en activité depuis des décennies. QNX est un RTOS commercial développé par Quantum Software Systems au Canada, au début des années 1980, puis acquis par RIM en 2010. VxWorks est un logiciel propriétaire développé par Wind River Systems, un chef de file de l'industrie spécialisée dans la construction de logiciels embarqués. pour les produits et systèmes connectés intelligents.
Les deux systèmes d'exploitation utilisent un noyau en temps réel pour les applications critiques qui traitent les données, ce qui signifie que le système est soumis à une contrainte en temps réel qui garantit une réponse dans des contraintes de temps prédéfinies, appelées également «délais». La principale différence réside dans l'architecture: alors que QNX repose sur une architecture de transmission de messages, VxWorks se prête à une architecture à mémoire partagée. La transmission des messages est fondamentale pour la conception du noyau, ce qui permet au système de transmettre des informations d’une tâche à une autre ou à plusieurs autres personnes du système. Architecture de mémoire partagée fait référence à un système qui possède son propre espace d'adressage privé pour les mémoires distribuées physiquement..
L'une des principales différences entre les deux systèmes d'exploitation temps réel est que QNX est un système d'exploitation basé sur un micro-noyau, tandis que VxWorks est un noyau monolithique. Un micro-noyau est comme un petit système d'exploitation qui exploite les appels système pour gérer des services de base tels que la gestion de l'espace d'adressage, la gestion des threads et les communications interprocessus. Cela fait référence à un système qui requiert un ensemble limité de primitives et une dépendance minimale au logiciel pour mettre en œuvre un système d'exploitation. Un noyau monolithique, quant à lui, gère tous les services de base et les services définis par l'utilisateur, y compris les communications interprocessus dans un espace noyau protégé. En tant que noyau monolithique, VxWorks est autonome..
Chaque thread ou processus a sa propre priorité dans QNX. Sous QNX, tous les processus s'exécutent sur une base préemptive basée sur les priorités, ce qui signifie que le processus avec la priorité la plus élevée accède d'abord à la CPU et que les priorités vont de 0 à 31. La planification est effectuée en temps réel et chaque thread hérite de la priorité de son parent. par défaut. Lorsque deux threads partagent la même priorité, d'autres méthodes de planification sont utilisées par QNX, telles que la planification FIFO, Round-Robin et Sporadic. VxWorks, d’autre part, n’utilise que deux types d’algorithmes, l’ordonnancement préemptif basé sur les priorités et l’ordonnancement à tour de rôle. Ensemble, ils offrent un plus grand degré de contrôle aux utilisateurs pour une planification efficace..
Les deux systèmes d'exploitation en temps réel basés sur le noyau sont conçus pour des applications en temps réel qui nécessitent le traitement et l'achèvement de tâches au fur et à mesure qu'elles arrivent dans des contraintes de temps prédéfinies, également appelées échéances. Tous deux travaillent dans le secteur depuis plus de 25 ans et se spécialisent dans le développement de produits et de systèmes intégrés, mais toutes les similitudes prennent fin. QNX est un système d’exploitation en temps réel basé sur un micro-noyau, qui est plutôt fascinant en soi, grâce à son architecture basée sur le transfert de messages, idéale pour la création de systèmes distribués fiables. VxWorks est un noyau monolithique basé sur une architecture à mémoire partagée, ce qui le rend idéal pour les grands environnements industriels tels que les systèmes automobiles, l'avionique, l'électronique grand public, etc..