Quelle est la différence entre RTOS et Linux Embarqué? [fermé]

RTOS et Linux Embarqué sont utilisés pour la programmation de systèmes embarqués. Linux embarqué est-il lui-même un RTOS ? Quelqu'un peut-il énumérer la comparaison ou la différence s " il vous plaît?

31
demandé sur demongolem 2014-09-16 18:32:53

1 réponses

Linux est un système d'exploitation à usage général (GPOS); son application aux systèmes embarqués est généralement motivée par la disponibilité de la prise en charge des périphériques, des systèmes de fichiers, de la connectivité réseau et de la prise en charge de l'interface utilisateur. Toutes ces choses peuvent être disponibles dans un RTOS, mais souvent avec un soutien moins large, ou à un coût supplémentaire ou un effort d'intégration.

Beaucoup de RTO ne sont pas un système d'exploitation complet dans le sens où Linux l'est, en ce sens qu'ils comprennent une bibliothèque de liens statiques fournissant uniquement la planification des tâches, L'IPC, la synchronisation et services d'interruption et peu plus-essentiellement le noyau de planification seulement. Une telle Bibliothèque est liée à votre code d'application pour produire un seul exécutable que votre système démarre directement (ou via un chargeur de démarrage). La plupart des RTOS ne supportent pas directement le chargement et le déchargement de code dynamiquement à partir d'un système de fichiers comme vous le feriez avec Linux - tout est là au démarrage et s'exécute jusqu'à la mise hors tension.

Critique Linux n'est pas capable en temps réel. Un RTOS fournit des garanties de planification à assurer un comportement déterministe et des événements de réponse et des interruptions en temps opportun. Dans la plupart des cas, cela passe par un algorithme de planification préventive basé sur la priorité, où la tâche la plus prioritaire prête à être exécutée s'exécute toujours-immédiatement - en préemptant toute tâche de priorité inférieure sans rendement spécifique ou abandon de la CPU, ou achèvement d'une tranche de temps.

Linux a un certain nombre d'options de planification, y compris un planificateur en temps réel, mais c'est au mieux "doux" en temps réel-un terme que je n'aime pas depuis il est mal défini, et signifie essentiellement en temps réel, la plupart du temps, mais parfois pas. Si votre application n'a pas besoin de temps réel "dur", c'est bien, mais les latences typiques de Linux en temps réel seront de l'ordre de dizaines ou de centaines de microsecondes, alors qu'un noyau RTOS en temps réel typique peut atteindre des latences de zéro à quelques microsecondes.

Un autre problème avec Linux embarqué est qu'il a besoin de ressources CPU importantes, peut-être > 200MIPS, processeur 32 bits, idéalement avec un MMU, 4 Mo de ROM et 16 Mo de RAM à peu près au démarrage (ce qui peut prendre plusieurs secondes). Un RTOS d'autre part peut être en millisecondes, exécuté en moins de 10 Ko, sur les microcontrôleurs à partir de 8 bits. Cela peut avoir un impact significatif sur le coût du système pour la production en volume en dépit d'être ostensiblement "libre".

Il existe de plus grands produits RTOS qui présentent certaines des fonctionnalités D'un GPOS telles que le chargement dynamique, les systèmes de fichiers, la mise en réseau ,L'interface graphique (par exemple, dans QNX), et de nombreux RTOS fournissent un POSIX API (généralement secondaire à leur API native en temps réel) par exemple VxWorks et encore QNX, de sorte qu'une grande partie du code Développé pour Linux et Unix peut être porté relativement facilement. Ces produits RTOS plus grands et plus complets restent évolutifs, de sorte que les fonctionnalités non requises ne sont pas incluses. Linux en comparaison a une évolutivité beaucoup plus limitée.

53
répondu Clifford 2017-08-11 07:22:48