83 votes

Comment fonctionne le logiciel/Logiciel de Code en fait de communiquer avec le Matériel?

Ma question est:

Quand j'appuyez sur la touche "Arrêt" de bouton dans Windows/Linux,l'ordinateur s'arrête. Comment la commande "Arrêt" à l'ordinateur Physiquement arrêt?

Pour bien me faire comprendre:

Quand nous avons un coup de pied un ballon,il y a un contact physique entre le ballon et nos jambes,pour que le ballon se déplacer.Alors, comment est la connexion physique atteint entre le logiciel et le matériel?Comment fonctionne le texte brut de codes font à l'ordinateur ce qu'il fait?

(Question de Noob,je sais, mais il a été irritant moi pour un certain temps maintenant)

58voto

Alan Points 21367

Au niveau le plus élémentaire, texte brut code de finalement se traduit par 0 et de 1. Ces 0 et 1 représentent basse et haute tension. À ce stade, les niveaux de tension de contrôle des différents circuits.

Pensez à une batterie alimenté par un ventilateur. Courant fourni par la batterie alimente un moteur électrique, qui à l'intérieur, utilise l'électricité pour créer un emag-champ ce qui provoque un arbre de rotation, ce qui entraîne le ventilateur tourner les lames. Ceci est un exemple de la façon dont la tension peut devenir physique.

Vous pourriez construire un "switch" que, compte tenu de la bonne tension, finira par le bloc d'alimentation d'arrêter de tirer le courant de la paroi.

Bien évidemment, il est beaucoup plus compliqué que cela, mais c'est l'essentiel.

Pour faciliter les choses, l'ordinateur sont composés avec des couches d'abstraction.

Au niveau le plus bas est des tensions, des circuits, des transistors, et le silicium. La couche suivante au-dessus du matériel est le système d'exploitation. Plutôt que de ré-écrire du code pour chaque type de matériel d'accès, encore et encore, le système d'exploitation gère le matériel, et fournit des "crochets" pour l'utiliser. Ces crochets, ou des "interfaces" permettre à votre code pour avoir une méthode commune pour l'accès disparates matériel. Donc, en utilisant les interfaces fournies par le système d'exploitation, vous pouvez écrire votre Application.

Dans chacune de ces couches, il existe des sous-couches, par exemple le matériel peut avoir firmware, une sorte de bas niveau de jeu d'instructions qui dicte la façon dont le matériel doit exécuter, stockées dans l'EEPROM, et chargé lorsque le variateur est sous tension. Un autre sous-couche est de savoir comment un langage de plus haut niveau comme python fournit une bibliothèques d'écrire un logiciel de réseau sans avoir à programmer directement sur le raw socket api fournie par le système d'exploitation.

Le système d'exploitation gère la plupart de matériel/logiciel d'interaction. Les fournisseurs de matériel d'écriture "des plugins/modules/drivers" qui permet à l'OS de contrôler leur matériel spécifique.

Si vous écrivez une Application qui tire parti de ces OS interfaces fournies au matériel. Par exemple, si vous vouliez éteindre l'ordinateur, windows fournit une interface à l'arrêt de l'ordinateur. Votre logiciel de appel de cette interface, et lors de la compilation/interprétation, transformé en code qui va appeler une interface pour le système d'exploitation. Cette interface, à son tour, va exécuter un bien connu ensemble d'instructions pour instruire l'arrêt de l'ordinateur. Ces instructions sont 0 et de 1, basse et haute tension, dont l'accès à une partie spécifique de l'ordinateur qui est conçu pour gérer la mise sous tension/arrêt/veille, et donné le signal de droite, permettra de faire exactement cela.

7voto

Jim Rossi Points 1

Le logiciel est stocké dans le matériel des domaines magnétiques sur le disque dur ou la disquette, ou comme basse et haute tensions dans les puces d'ordinateur. Lorsque vous tapez sur un clavier, chaque caractère est converti en un courant électrique de la série de 0 et de 1 qui sont ensuite stockés comme basse et haute tensions dans les puces d'ordinateur appelé RAM. La basse et haute tensions dans la RAM sont ensuite convertis en domaines magnétiques sur le disque dur ou la disquette pour plus tard la lecture du disque chefs en tensions, ou sont stockés en tant que basse et haute tensions, dans la non-volatile puces d'ordinateur pour une lecture ultérieure de retour. La basse et haute tension représentent les électrique de 0 et de 1 qui ont été générés par les caractères du clavier.

5voto

Guffa Points 308133

Eh bien, l'arrêt n'est pas vraiment physique, tous les circuits de l'ordinateur ne sont pas totalement hors de jusqu'à ce que vous débranchez physiquement le pouvoir.

Le logiciel utilise l' APM (Advanced Power Management) de l'interface dans le BIOS pour contrôler les circuits d'alimentation de l'ordinateur.

Lorsque l'ordinateur est hors tension, il peut toujours être allumé sans être physiquement en tirant sur un interrupteur, par exemple par un Wake on LAN signal à partir d'une carte réseau de l'ordinateur.

3voto

mdma Points 33973

La jambe coups de pied un ballon est un bon exemple. C'est assez similaire à une machine. Le PROCESSEUR est relié à toutes les autres parties du système, mais à la différence du système nerveux qui est un câblage physique, avec tous les nerfs d'être connecté à la fois, la CPU n'a pas de maintenir une connexion permanente avec le reste du système. Il se connecte à la partie souhaitée sur demande similaire à faire un appel téléphonique - tous les téléphones ont des connexions, mais quelques-uns seulement sont connectés à la fois.

Le processeur fonctionne en exécutant les instructions - les logiciel. Il y a des codes d'instruction qui instruisent le cpu pour composer une partie du système. Chaque partie a un certain nombre, et le cpu a une instruction pour composer un numéro. Une fois que le cpu compose ce numéro, il envoie un message à cette partie - le message est simplement de données à partir d'un peu jusqu'à n'importe quelle taille de bloc. Le matériel à l'emplacement agit alors sur le message codé.

En faisant comme cela, le processeur peut contrôler n'importe quel morceau de matériel à l'aide du même mécanisme. La seule chose qui change pour chaque périphérique est le nombre de l'uc à cadran et les données de l'uc envoie à l'appareil - détails qui sont mis dans le logiciel de l'uc est en cours d'exécution.

Donc, pour faire tourner la machine hors tension, le processeur compose le numéro pour la gestion de l'alimentation de l'appareil, et l'envoie des instructions pour aller en un état de puissance. Le matériel répond, et le bloc d'alimentation s'arrête l'envoi d'alimentation primaire de la carte mère.

Lorsque vous écrivez des logiciels, vous n'avez pas à connaître tous ces détails vous-même. Ils sont généralement pré-emballés, prêts à l'utilisation de code, de sorte que votre logiciel est-à-dire "arrêt" et le prêt-à-codes pour ce (généralement dans le BIOS) sont exécutés pour effectuer la mise à l'arrêt, comme indiqué ci-dessus.

1voto

Pavel Radzivilovsky Points 11613

Il y en a plusieurs interfaces entre les programmes de PC et le monde réel à l'extérieur.

Certains se connecter à l'UC. Des exemples de ces sont des Ports et du matériel interruptions (IRQ). Ceux-ci permettent l'envoi de petites quantités de données (par le programme d'accueil de la demande) et l'appel de fonctions (gestionnaires d'interruption) basé sur des déclencheurs matériels (discrete ligne allant de faible à élevé).

Il y a des interfaces plus rapides pour le transfert de quantités massives de données que l'évitement de l'UC. Ceci est appelé DMA (direct memory access). Ceux-ci sont utilisés pour transférer des données sur le disque, réseau, carte graphique, etc.

Pour le port IO (opcodes IN et OUT) le logiciel est l'initiateur. Pour les IRQ, le matériel parle d'abord de déclencher des logiciels de réponse.

Seuls les pilotes de périphériques sont autorisés à le faire toutes ces. Si vous essayez de le faire à partir de l'application, système d'exploitation va écraser à l'instant. Les Applications de se connecter à ce monde thru Api présentés par les pilotes de périphériques. Beaucoup de l'Api sont standardalized, de sorte que vous pouvez remplacer réel de l'appareil, sans avoir à interagir différemment (une imprimante, disque, clavier, souris, CRROM, bloc d'alimentation ATX commutateur dans votre exemple).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X