Comment sont tous les jours des machines programmées?
Comment sont les machines (pas tellement les ordinateurs et les appareils mobiles comme les appareils ménagers, les montres numériques, etc) - il programmé? Ce genre de code va dans la programmation d'un Coca-Cola distributeur automatique? Comment mon bouilloire accepter une pré-programmation du temps et de commencer à brasser un pot de café heures plus tard, lorsque ce moment arrive?
Faire ces sortes de machines ont des systèmes d'exploitation à l'intérieur d'eux, ou est-il quelque chose d'encore plus fondamental? Sont-ils écrits en assembleur, C, ou une autre langue?
Et, j'aimerais vraiment trouver une ressource qui répertorie ces systèmes d'exploitation ou des sous-tendent les systèmes de code, peut-être même avec le code source si possible. Si quelqu'un sait de la ressource (la recherche a abouti à rien pour moi), ce serait fantastique.
- Question fantastique! Je me demandais la même chose moi-même.
- Faire quelques recherches, des recherches sur les "systèmes embarqués" (j'ai même ajouté l'étiquette pour vous).
- Scandinavie de la clôture des votes: je ne vois pas ce que le matériel pour les Programmeurs, car il est à propos de la programmation. D'autre part, il pourrait bien faire de l'électronique SE site, simple, parce qu'il n'y aura plus de spécialistes. La réponse, bien sûr, est que certains de ceux-ci. Vous aurez besoin de choisir une plus petite de la classe avant que vous pouvez obtenir une réponse.
- Son très vaste question qui couvre au moins 3 disciplines de l'ingénierie et de nombreuses nuances entre les deux.
- FWIW, vous pourriez être intéressé à jouer avec un microcontrôleur plate-forme comme l'Arduino (~$30) arduino.cc.
- Le vote pour la fermer comme trop large.
Vous devez vous connecter pour publier un commentaire.
La plupart de ce dont vous parlez, sont intégrés en fonction des systèmes où C est un luxe souvent pas disponibles. Ils n'ont pas le logiciel dans le sens traditionnel du terme. La plupart du temps, le logiciel est écrit en C, assemblée, ou même du code machine. C et ASM exiger que les compilateurs d'être écrite à utiliser pour cette plate-forme. Machine code est écrit en binaire w/o d'un compilateur.
Votre pot de café, et les plus simples comme les systèmes qui ne portent pas d'un système d'exploitation. Ils suffit de charger à partir d'une adresse de départ dans la mémoire et que vous mettez votre code. Souvent, ces systèmes ont leur "code" gravé dans EEPROM qui agissent comme le disque dur du système. Visser le code après la gravure de la proms,
jeter les puces loingravez le code de la puce, et de recommencer. Il y a des nouvelles puces FPGA que la hausse de la fin de l'utilisation de dispositifs pour effectuer des tests, déploiement, etc facile, mais ils sont la même chose.Coca-cola machines, routeurs, etc. généralement l'utilisation d'un OS temps réel comme QNX, EMBOS, ou parfois RTlinux si vous avez de la chance. La plupart de ces sont la propriété OS vous de licence pour beaucoup d'argent, mais ils ont des compilateurs C, pilotes de matériel, etc.
http://www.qnx.com/
http://www.segger.com/cms/embos.html
http://www.microsoft.com/windowsembedded/en-us/campaigns/compact7/default.aspx?WT.srch=1&WT.mc_ID=SEARCH
RTLinux
Ils utilisent des microcontrôleurs, des le 8051 est la classique. Ce sont 8-bit ou 16-bit cœurs, ils ont rarement un système d'exploitation. Le programmeur écrit le code pour initialiser les périphériques intégrés et de mettre en œuvre les gestionnaires d'interruption. Les langues utilisées sont l'assemblage et le C. Difficile débogage emplois exigent un émulateur circuit.
Il y a beaucoup de croissance au-delà de cela, avec 32-bit intégré cœurs (de BRAS, c'est du 100 gorille) qui boot une version embarquée de Linux et/ou le Java JVM.
Ce sont systèmes embarqués, et doit être programmé en utilisant un langage de bas niveau comme le C ou le montage. En règle générale, ce système va fonctionner sans un système d'exploitation, bien que certaines nouvelles "machines" comme le blue-ray lecteurs DVD et les routeurs sans fil faire exécuter leur code sur un unix système d'exploitation.
mise à Jour
Le long des lignes de ce que les autres ont dit, beaucoup de modernes systèmes embarqués également exécuter une saveur de windows. Il repose sur l'application. Aussi, il ya une tendance dans de nombreux espaces pour s'exécuter sur une plate-forme plus puissante avec un système d'exploitation pour gérer les cas tels que des lecteurs blu-ray besoin pour exécuter Java, et d'autres cas où l'utilisateur désire plus de fonctionnalités.
Nous allons réfléchir sur le processeur de votre ordinateur de bureau. Il ne fait qu'exécuter les instructions machine, et par lui-même, n'est pas vraiment inquiète des "systèmes d'exploitation" ou "programmes".
Vous allumez votre ordinateur, le processeur de points à la première instruction, et il commence à s'exécuter.
Sur votre bureau, il commence l'exécution du "système d'exploitation". Mais il n'y a aucune raison que vous ne pouvait pas le processeur de l'exécution de toutes les instructions que vous avez choisi. (Cela peut ne pas être très utile, car vous auriez encore envie de sortie des résultats sur l'écran, et que cette fonctionnalité réside dans le système d'exploitation.) En même temps, si vos instructions machine se composait de la droite opcodes de sorte que le processeur serait sortie de la séquence correcte des signaux à peindre une image sur l'écran, tout le meilleur. Pas d'OS nécessaire.
Ordinateurs de bureau en faire beaucoup trucs que nous avons généralement besoin de l'abstraction d'un OS. Mais à la base, tout le processeur n'est d'exécuter des instructions.
Même pour le processeur dans la Coke et machines à Café. Il ne fait qu'exécuter les instructions.
Bien, l'écriture des instructions machine bit-par-bit est fastidieux. Ainsi, de même qu'avec les ordinateurs de bureau, en général, nous pouvons écrire le code en C, qui est ensuite compilé en code machine. Que le code machine est chargé dans le processeur embarqué et il fonctionne.
Systèmes embarqués ne si peu qu'ils n'ont pas besoin de sur les Systèmes d'exploitation. Un microcontrôleur pourrait avoir 8 ou 16 broches de la puce par rapport aux scores de broches dans votre socket CPU.
De sorte que le flux de travail est d'écrire un peu de code (par exemple, en C), le compiler sur votre ordinateur de bureau. Que le compilateur génère du code machine pour la puce intégrée. Alors que le code est chargé sur le microprocesseur (et vous avez besoin de matériel spécial pour ce faire.) Ensuite, vous la puissance de la puce et de commencer à exécuter les instructions. Simple!
De nombreux dispositifs qui exercent une fonction spécifique ne contiennent pas de "code". Ils s'acquittent de leurs fonctions par les propriétés de leurs composants électroniques. Des systèmes plus avancés, ce qui permet d'effectuer de nombreuses fonctions différentes ou doivent être facilement mis à niveau, contient un microcontrôleur et une sorte de "système d'exploitation". Depuis ceux-ci ont toujours des limites à leur fonctionnalité, le système d'exploitation sera simple et spécialement conçu. Encore plus avancé, le périphérique ne contient quelque chose de similaire à un ordinateur. Il sera plus compliqué de système d'exploitation qui peut communiquer avec les différentes parties du système. Enfin, vous arrivez à des dispositifs tels que les téléphones intelligents, qui contient un système d'exploitation complet qui permet d'exécuter le niveau de l'utilisateur code et ont beaucoup plus de la saisie de l'utilisateur que les appareils plus simples. Cependant, même les processeurs modernes sont essentiellement de très grands circuits électriques. Chaque instruction du PROCESSEUR reconnaît va provoquer un circuit différent à être utilisé pour effectuer cette fonction.
Voici quelques pages de Wikipédia, vous pouvez être intéressé par:
http://en.wikipedia.org/wiki/Electrical_engineering
http://en.wikipedia.org/wiki/Integrated_circuits
http://en.wikipedia.org/wiki/Electronic_engineering
http://en.wikipedia.org/wiki/Computer_engineering
http://en.wikipedia.org/wiki/Microcontroller
C'est une très vaste question et ça dépend beaucoup de la machine. Je ne peux que deviner que la majorité de ces distributeurs automatiques sont contrôlés par des microcontrôleurs (8051, PIC, ARM7, pour ne citer que les plus utilisés) et, rarement, avoir un OS et si a tout, il serait une sorte de RTOS, comme FreeRTOS.
Machines plus complexes, tels que les DVD/BluRay joueurs ou les téléphones mobiles fonctionnent au-dessus de sofisticated plates-formes, telles que OMAP4. Habituellement, un système d'exploitation Unix s'exécute sur eux.
Bas de gamme de microcontrôleurs trouvé dans les appareils électroménagers ne sont généralement pas exécuter un système d'exploitation. Ils sont choisis pour leur faible coût, et les principaux facteurs de coût sont le nombre de broches sur la puce (d'une dizaine à quelques centaines) et la quantité de mémoire à l'intérieur (à partir de quelques kilo-octets à un mégaoctet ROM, à partir de quelques octets à une centaine de kilo-octets de RAM).
Comme fonction de fluage travaille sa magie, il arrive qu'un four à micro-ondes peuvent avoir besoin d'effectuer plusieurs tâches. Dans ce cas, le programmeur se souvient de leur exploitation en cours sur les systèmes et instruments de transmission de message, la planification des tâches, asynchronous I/O, etc que nécessaire!
Bien sûr, pour le bien de l'opportunisme, de la simplicité, de la taille du code, etc, les caractéristiques ont tendance à être fait de manière rudimentaire. Souvent, cela dépend de comment vous analysez le programme pour trouver généralisée OS des fonctionnalités spécifiques à la tâche de code. Mais c'est un long chemin à partir d'un codée en dur dans le planificateur de tâches pour un système d'exploitation, et quand vous n'avez que quelques kilo-octets à travailler avec, un hors-la-plateau OS est pas la solution.
Prendre un coup d'oeil à DigiKey, un quartier populaire de pièces électroniques de sélection de site, de connaître le bas de gamme de Mcu. Ici est leur info sur un très bas prix MCU avec un contrôleur de l'écran LCD, comme peut être trouvée dans une machine à café. Il est assez facile d'obtenir le manuel de programmation et tout et tout.
L'emploi d'un système d'exploitation est la condition de l'accès partagé aux ressources du PROCESSEUR, temps d'exécution, RAM, I/O etc. Le plus simple microcontrôleur basée sur les systèmes embarqués ont un seul programme en cours d'exécution à un moment, et ils ont accès (et gérer) ces ressources elles-mêmes, donc ils n'ont pas besoin d'un système d'exploitation.
Les systèmes embarqués sont généralement programmé en C, et parfois de l'assemblée de l'extrême calendrier ou de l'optimisation de la mémoire utilisée. Certains incorporé compilateurs permettent de ponctuer l'assemblée dans un langage de plus haut niveau.
Je suis récemment tombé sur une cigarette à la machine distributrice, qui a couru Ubuntu (la machine a redémarré, j'ai donc pu voir le logo).
Prendre un coup d'oeil à Systèmes Embarqués Magazine et Circuit Cave
Si vous êtes autour de googler pour des informations générales, des chercher des choses comme des "systèmes embarqués", "soc" (system-on-a-chip). Je dirais qu'une grande partie de ces types d'appareils dans les bas-niveau des langues, comme le C.
Fait amusant: Java a été conçu à l'origine comme une solution pour les systèmes embarqués programmation: http://en.wikipedia.org/wiki/Oak_(programming_language)
La plupart des Kiosques, des registres, des drive-thru les écrans, et même le haut de gamme des machines à café et un micro-ondes fait exécuter Windows XP ou Linux, comme le "Jura Impressa" les machines de la série; vous pouvez utiliser le protocole SSH en eux et de préparer le café.
Voici un github script d'une machine à café tâche cron: https://github.com/NARKOZ/hacker-scripts/blob/master/fucking_coffee.rb
La plupart des Routeurs, les nouveaux fours, les nouveaux réfrigérateurs, voitures, lecteurs de DVD, appareils électroniques divers, les plus récents de la domotique produits, y compris les ampoules, exécutez une version de linux ARM ou Linux embarqué.
La plupart des appareils les moins chers, à moins de 20$, si elles sont plus récentes, sur l'ESP8266 ou d'un appareil similaire (peut fonctionner avec LUA ou d'une réduction de Nœud de serveur pour 2 $en vrac - incroyablement bon marché)
http://nodemcu.com/index_en.html
À l'aide de FPGA et les systèmes embarqués comme 8051, Z80 ou d'autres équipements embarqués comme CCIP, AVR et Arduino va bientôt être remplacé par tout-en-un/SoC (Système sur Puce) des systèmes comme l'ESP8266. Ils sont tout simplement trop facile à programmer, et sont un système complet sur une puce qui gèrent leur propre serveur web; vous venez de puissance, de télécharger votre code source et vous avez un serveur réseau pour 2$.
J'ai grandi codage de la CCIP et de l'AVR et 8051, et je suis triste de les voir partir, mais je n'ai pas touché à rien d'autre que ESP8266es dans les années parce qu'ils sont de 1/10ème du prix et sont d'un ordre de grandeur plus facile de travailler avec. Vous pouvez les obtenir sur les conseils de développement avec des packs de batteries et a explosé mise en page broches pour 5 $sur ebay ou 10 $sur adafruit.
Je l'ai entendu d'un ingénieur que de Siemens, à la Lumière de trains de Banlieue Trains sont à l'386s.