différence entre le système d'exploitation embarqué et le système D'exploitation de bureau [fermé]

  1. Quelle est la différence entre un Système d'Exploitation embarqué et Système d'Exploitation de Bureau?

  2. Est-il possible de charger une application créée dans le Système d'Exploitation de Bureau dans le Système d'Exploitation Embarqué?

  3. Disons que je crée une application en VC++ et C# pour faire le traitement d'image en utilisant Visual Studio et WindowXp Pro est-il possible de charger l'application dans un système d'exploitation intégré?

39
demandé sur Kyle Strand 2011-05-04 12:29:58

5 réponses

Un système d'exploitation de bureau est un logiciel exécutif, 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 forte utilisation des ressources, des mécanismes de protection solides (à la fois en termes de sécurité et en termes d'applications mal écrites ne détruisant pas d'autres applications et/ou le système) et une certaine forme de normalisation pour l'interface utilisateur.

Un système d'exploitation embarqué exécute le spectre. Pour les grands systèmes embarqués lourds, le noyau peut être un système de bureau réel (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 (ou même pas) de mécanismes de protection et, dans de nombreux (la plupart?) cas ont aucune exigence particulière pour les interfaces utilisateur.

Ces dernières races de "systèmes d'exploitation" sont souvent appelées "executive" (comme dans "realtime multitâche executive" ou RMX) parce qu'ils 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 fixes que vous exécutez dans le système embarqué. Ils fournissent la commutation de tâches, 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, que vous puissiez ou non exécuter un logiciel créé pour système d'exploitation de bureau sur un intégré dépend de plusieurs facteurs. Si le système embarqué cible est le même système d'exploitation que vous avez développé et a 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.

153
répondu JUST MY correct OPINION 2011-05-04 08:55:27

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

Bien qu'il soit possible d'intégrer 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 avant tout en charge la réponse et la planification en temps réel. Ils sont généralement beaucoup plus petits ou au 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 avec le code de l'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. Évidemment, Linux embarqué ou Windows Embedded ne tombent pas dans cette catégorie.

Un noyau RTOS typique fournit uniquement des services de planification, de synchronisation et de communication inter-processus. Tout le reste doit être fourni par l'application ou par option ou des bibliothèques et des pilotes tiers add-on.


Est-il possible de charger une application créée dans le Système d'Exploitation de Bureau dans le Système d'Exploitation Embarqué?

Généralement, les applications pour les systèmes embarqués sont créées sur un système de bureau par un processus appelé compilation croisée. Ces applications ne seront pas exécutées sur l'hôte de développement. De même les applications ciblées pour s'exécuter sur un système de bureau ne s'exécuteront pas sur un système embarqué à moins qu'il n'exécute le même système D'exploitation et l'architecture du 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 affichage ou dispositif de pointage).

Le plus souvent, l'hôte de développement et la cible embarquée sont incompatibles, soit par L'architecture OS ou matérielle, et généralement les deux.


Disons que je crée une application en VC++ et C# pour faire l'image traitement en utilisant Visual Studio et WindowXp Pro est-il possible de charger l'application dans un système d'exploitation embarqué?

Si la cible exécute WindowsXP Embedded ou Windows 7 Embedded, Oui, mais sinon non.

Vous pouvez également développer en utilisant VC++ ou C# pour cibler WindowsCE, et C # pour. NET Micro pour une gamme 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 autre que comme une simulation de périphérique.


Quel est l'avantage et L'inconvénient de ces deux systèmes d'exploitation?

Système d'exploitation Embarqué:

  • Évolutivité
  • performances en temps réel (dans le cas D'un RTOS)
  • large support d'architecture
  • caractéristiques 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és ou portés par le développeur.
  • beaucoup systèmes différents et largement incompatibles.

Système d'exploitation de bureau

  • moins évolutive
  • pas capable en temps réel, ou capacité en temps réel limitée.
  • large appui aux applications
  • Grand corps de développeurs
  • seulement trois acteurs majeurs, dont seulement deux sont intégrables.
  • large choix de langages et d'outils de développement
  • matériel périphérique standard étendu, système de fichiers et communications soutien.
  • l'hôte de développement et l'environnement cible peuvent être identiques.
19
répondu Clifford 2011-05-04 17:37:35

Les systèmes D'exploitation embarqué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 d'une certaine saveur de traitement en temps réel. Vous créez généralement des applications pour les systèmes embarqués sur un ordinateur de bureau, mais vous devez utiliser des outils qui ciblent le système d'exploitation/matériel embarqué (souvent des compilateurs croisés, etc.).

4
répondu dbrank0 2011-05-04 08:50:41

Embedded a tendance à être plus simple en ce sens qu'il n'a que le 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. Embedded doit être plus fiable, les gens tolèrent le redémarrage ou le remplacement d'un ordinateur écrasé mais ne tolèrent pas le redémarrage ou le remplacement de leur ordinateur de voiture ou de leur système de contrôle de vol pour un avion de passagers.

Desktop est super générique, doit exécuter des applications ainsi que des pilotes et des applications ont pas encore été écrites. En raison des caractéristiques plus larges, etc., ils sont plus volumineux et moins fiables.

Embedded 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 à modifier des disques durs et de la mémoire et de la vidéo à volonté et votre attente est qu'il continuera à fonctionner. Avec embedded le fournisseur contrôle normalement tout cela et une partie de la fiabilité et des performances vient de limiter le support logiciel à exactement une vidéo pilote ou un petit ensemble de périphériques à travers une gamme de produits (vs le bureau doit tout supporter 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 vs Un Linux embarqué ou Desktop windows vs embedded windows. Normalement, vous devez planifier cette portabilité et vous limiter aux fonctionnalités communes aux deux plates-formes. Si vous prenez une ancienne application de bureau, puis essayez de l'exécuter sur un système intégré similaire plate-forme Je ne m'attendrais pas à ce que cela fonctionne toujours, je m'attendrais à quelques ajustements et, dans certains cas, à une réécriture.

4
répondu old_timer 2011-05-04 14:37:16

Un système d'exploitation de bureau est un système d'exploitation conçu pour s'exécuter sur un ordinateur de bureau. Il a des pilotes, des optimisations et des interfaces (API et interfaces utilisateur) pour une utilisation de bureau.

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

, Il pourrait possible de charger une application créée sur un OS de bureau sur un système d'exploitation embarqué, selon l'application, le système d'exploitation, le matériel, les outils de développement utilisés et éventuellement d'autres facteurs. Mais il est probablement pas à moins que 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 le matériel embarqué. L'inconvénient est qu'ils ne peuvent échelle à d'autres matériels.

2
répondu Fred Foo 2011-05-04 09:46:51