web-dev-qa-db-fra.com

différence entre le système d'exploitation intégré et le système d'exploitation de bureau

  1. Quelle est la différence entre un système d'exploitation intégré et un système d'exploitation de bureau?

  2. Est-il possible de charger une application créée dans Desktop Operating System dans Embedded Operating System?

  3. Supposons que je crée une application en vc ++ et C # pour effectuer un traitement d'image à l'aide de Visual Studio et WindowXp Pro. Est-il possible de charger l'application dans un système d'exploitation intégré?

40
subbu

Un système d'exploitation de bureau est un exécutif logiciel, plus, généralement, des outils utilisateur conçus pour exécuter des logiciels arbitraires, généralement de nature interactive (mais pas toujours). Il tend (mot important, cela) à impliquer une utilisation intensive des ressources, de solides mécanismes de protection (à la fois en termes de sécurité et en termes d'applications mal écrites non la suppression d'autres applications et/ou du système) et une certaine forme de normalisation de l'interface utilisateur.

Un système d'exploitation intégré exécute le spectre. Pour les grands systèmes embarqués lourds, le cœur peut être un véritable système de bureau (comme les systèmes Linux embarqués, par exemple). La plupart des systèmes d'exploitation embarqués, cependant, sont plus petits, utilisent beaucoup moins de ressources, ont peut-être moins de mécanismes de protection (voire aucun) et, dans de nombreux cas (la plupart?), N'ont aucune exigence particulière pour les interfaces utilisateur.

Ces dernières races de "systèmes d'exploitation" sont souvent appelées plutôt "exécutif" (comme dans "exécutif multitâche en temps réel" ou RMX) car elles ne sont souvent que ce que les systèmes de bureau appellent le noyau et n'ont que les fonctionnalités activées dont vous avez besoin pour l'ensemble d'applications généralement fixe que vous exécutez dans le système intégré. Ils fournissent le changement de tâche, le traitement d'interruption et les schémas de priorité et pas grand-chose d'autre et le reste est fourni par un ensemble fixe d'applications qui effectuent les tâches réelles du domaine problématique.

Répondre à votre édition ultérieure, si vous pouvez exécuter ou non un logiciel créé pour un système d'exploitation de bureau sur un système embarqué dépend de plusieurs facteurs. Si le système intégré cible est le même système d'exploitation que celui sur lequel vous avez développé et que toutes les fonctionnalités activées que votre application utilise (par exemple, le CLR, en utilisant votre exemple C #), alors pourrait être possible d'exécuter votre application en mode natif. Mais ce n'est pas très probable.

Quelle est la différence entre un système d'exploitation intégré et un système d'exploitation de bureau?

Bien qu'il soit possible d'incorporer un système d'exploitation à usage général tel que Linux ou Windows 7 Embedded, les systèmes embarqués exécutent généralement un système d'exploitation en temps réel (RTOS). Ceux-ci prennent en charge avant tout la réponse et la planification en temps réel. Ils sont généralement beaucoup plus petits ou du moins beaucoup plus évolutifs.

Le plus souvent (mais pas toujours) un système d'exploitation intégré est en fait une bibliothèque qui est liée statiquement au code d'application pour créer une image d'application monolithique. Cela diffère d'un système d'exploitation de bureau qui peut charger et exécuter dynamiquement du code d'application arbitraire chargé à partir d'un système de fichiers. De toute évidence, Embedded Linux ou Windows Embedded n'entrent pas dans cette catégorie.

Un noyau RTOS noyau fournit uniquement des services de planification, de synchronisation et de communication interprocessus. Tout le reste doit être fourni par l'application ou par des bibliothèques et pilotes complémentaires facultatifs ou tiers.


Est-il possible de charger une application créée dans Desktop Operating System dans Embedded Operating System?

En règle générale, les applications pour les systèmes intégrés sont créées sur un système de bureau par un processus appelé compilation croisée. Ces applications ne s'exécuteront pas sur l'hôte de développement. De même, les applications destinées à s'exécuter sur un système de bureau ne s'exécuteront pas sur un système intégré, à moins qu'il n'exécute la même architecture de système d'exploitation et de microprocesseur. C'est-à-dire qu'une application de bureau Windows 7 peut s'exécuter sur Windows 7 Embedded si le système cible dispose des ressources appropriées (par exemple, une application GUI n'est pas très utile dans un système sans écran ou périphérique de pointage).

Le plus souvent, l'hôte de développement et la cible intégrée sont incompatibles, que ce soit par le système d'exploitation ou l'architecture matérielle, et généralement les deux.


Supposons que je crée une application en vc ++ et C # pour effectuer un traitement d'image à l'aide de Visual Studio et WindowXp Pro. Est-il possible de charger l'application dans un système d'exploitation intégré?

Si la cible exécute Windows XP Embedded ou Windows 7 Embedded, oui, mais sinon non.

Vous pouvez également développer à l'aide de VC++ ou C # pour cibler WindowsCE et C # pour .NET Micro pour une plage limitée de cibles non x86, mais dans ces cas, l'exécutable cible ne s'exécutera pas sur l'hôte de développement autrement que comme une simulation de périphérique.


Quels sont les avantages et les inconvénients de ces deux systèmes d'exploitation?

OS intégré:

  • Évolutivité
  • Performances en temps réel (dans le cas d'un RTOS)
  • Prise en charge étendue de l'architecture
  • Les fonctionnalités telles que les systèmes de fichiers, la mise en réseau, l'interface graphique, l'USB, le WiFi, etc. sont généralement via des options complémentaires ou des bibliothèques tierces, et peuvent ne pas être disponibles pour tous les systèmes, ou devront être implémentées ou portées par le développeur.
  • De nombreux systèmes différents et largement incompatibles.

OS de burea

  • Moins évolutif
  • Pas en temps réel ou capacité en temps réel limitée.
  • Prise en charge étendue des applications
  • Grand corps de développeurs
  • Seuls trois acteurs majeurs, dont seulement deux sont intégrables.
  • Large choix de langages et d'outils de développement
  • Prise en charge étendue du matériel périphérique standard, du système de fichiers et des communications.
  • L'hôte de développement et l'environnement cible peuvent être identiques.
19
Clifford

Les systèmes d'exploitation intégrés sont conçus à d'autres fins, contrôlant souvent certains périphériques ou processus (non informatiques). Certains systèmes embarqués ont des exigences particulières, comme la prise en charge de certains aspects du traitement en temps réel. Vous créez généralement des applications pour les systèmes intégrés sur un ordinateur de bureau, mais vous devez utiliser des outils qui ciblent le système d'exploitation/matériel intégré (souvent des compilateurs croisés, etc.).

4
dbrank0

L'embarqué a tendance à être plus simple en ce sens qu'il ne dispose que du logiciel nécessaire pour effectuer la tâche. La tâche est généralement bien définie, bien qu'avec les téléphones et les applications téléchargeables, les règles changent. L'embarqué doit être plus fiable, les gens tolèrent le redémarrage ou le remplacement d'un ordinateur en panne, mais ne tolèrent pas le redémarrage ou le remplacement de leur ordinateur de voiture ou de leur système de commande de vol pour un avion de ligne.

Le bureau est super générique, doit exécuter les applications actuelles ainsi que les pilotes et les applications qui n'ont pas encore été écrits. En raison des fonctionnalités plus larges, etc., ils sont plus volumineux et moins fiables.

L'embarqué a tendance à avoir des ressources plus limitées et statiques, où les bureaux ont beaucoup plus de ressources et sont dynamiques, vous pouvez continuer à ajouter ou à changer des disques durs et de la mémoire et de la vidéo à volonté et vous vous attendez à ce que cela continue de fonctionner. Avec l'intégration, le fournisseur contrôle normalement tout cela et une partie de la fiabilité et des performances provient de la limitation de la prise en charge logicielle à exactement un pilote vidéo ou un petit ensemble de périphériques sur une gamme de produits (par rapport au bureau, il doit tout prendre en charge des années 1980 à nos jours). ).

Il est tout à fait possible d'écrire des applications qui fonctionnent dans les deux environnements, que ce soit un bureau Linux contre un Linux intégré ou des fenêtres de bureau contre des fenêtres intégrées. Normalement, vous devez prévoir cette portabilité et vous limiter aux fonctionnalités communes aux deux plates-formes. Si vous prenez une ancienne application de bureau et essayez de l'exécuter sur une plate-forme intégrée similaire, je ne m'attendrais pas à ce qu'elle fonctionne toujours, je m'attendrais à quelques ajustements et, dans certains cas, à une réécriture.

4
old_timer

Un système d'exploitation de bureau est un système d'exploitation conçu pour fonctionner sur un ordinateur de bureau. Il dispose de pilotes, d'optimisations et d'interfaces (API et interfaces utilisateur) pour une utilisation bureautique.

Un système d'exploitation embarqué est la même chose mais destiné à un appareil embarqué.

Il peut être possible de charger une application créée sur un système d'exploitation de bureau sur un système d'exploitation intégré, en fonction de l'application, du système d'exploitation, du matériel, des outils de développement utilisés et éventuellement d'autres facteurs. Mais ce n'est probablement pas sauf si l'application a été conçue pour faire face à la différence.

L'avantage d'un système d'exploitation de bureau est qu'il fonctionne bien sur le matériel de bureau. L'avantage d'un système d'exploitation intégré est qu'il fonctionne bien sur du matériel intégré. L'inconvénient des deux est qu'ils peuvent ne pas s'adapter à d'autres matériels.

2
Fred Foo