Les réponses précédentes sont toutes correctes, mais très techniques. Je vais essayer de les simplifier.
Je m'excuse auprès des personnes techniques qui existent, car je vais utiliser une terminologie incorrecte au détriment de la simplicité des choses.
Les bases:
- Le matériel est conçu à l'aide de la lithographie et de plaquettes de silicium
- Les circuits sont conçus à l'aide de portes logiques et d'algèbre booléenne
- Les programmes sont créés à l'aide de commandes logiques
- Le logiciel connecte le matériel à des processus en arrière-plan
- Appuyer sur un bouton fait se produire des choses par magie
Conception de puces d'ordinateur :
Les puces informatiques sont construites en bâtissant des circuits sur une plaquette de silicium.
Les composants utilisés pour construire les circuits ne sont pas des pièces individuelles créées et placées physiquement sur la plaquette, mais plutôt des équivalents de taille atomique de ces composants individuels.
Ils sont créés en pulvérisant des matériaux conducteurs et isolants dans une zone spécifique, puis en les attaquant sélectivement pour construire une structure en 3d couches qui représente le circuit souhaité.
Le processus est appelé lithographie.
Si vous avez déjà vu un rétroprojecteur, où l'on fait dessiner une leçon de classe sur une feuille de plastique transparent de format A4, et où l'on utilise une lumière en dessous pour la projeter sur un mur, la lithographie est un processus similaire, mais en sens inverse.
Vous concevez d'abord le circuit, puis vous utilisez une lentille pour focaliser un négatif de la conception du circuit sur un point minuscule. La zone sur laquelle on fait la mise au point est recouverte d'un matériau photosensible, qui réagit aux zones claires et sombres de la conception du circuit. L'acide est ensuite utilisé pour graver les zones non désirées du circuit, laissant derrière lui les pistes de circuit souhaitées.
Conception de portes logiques:
Les portes logiques sont une étape au-dessus du niveau matériel du circuit.
Ils sont des modules de circuit créés en utilisant uniquement des transistors.
Un transistor est un interrupteur électronique permettant de contrôler le flux de courant électrique.
Il se comporte un peu comme une route avec un feu de circulation.
Quand le feu est vert, le trafic circule. Lorsque le feu est rouge, le trafic s'arrête.
Les transistors sont utilisés dans diverses dispositions pour concevoir des circuits, appelés portes logiques.
Les portes logiques sont utilisées pour créer des circuits modulaires qui peuvent être mélangés et assortis pour construire des circuits à un niveau supérieur.
Chaque type de porte logique a un symbole spécifique utilisé pour le décrire.
Il existe de nombreux types de portes logiques, tels que AND, NAND, OR, NOR, XOR etc.
Le but de l'utilisation des portes logiques est de faciliter la construction d'un circuit,
en utilisant des commandes logiques, plutôt que d'avoir à se soucier de la façon dont vous créeriez chaque composant au niveau matériel.
Il y a beaucoup de choses impliquées à ce niveau, mais pour plus d'informations sur la façon de concevoir des circuits en utilisant des portes logiques, faites quelques lectures sur la logique booléenne.
La logique booléenne est un processus où vous utilisez l'algèbre mathématique de base pour créer une expression mathématique qui décrit tous les résultats possibles d'un processus.
Une fois que cela a été utilisé, vous pouvez réduire le nombre de portes logiques nécessaires pour construire précisément votre circuit.
Les logiciels informatiques sont écrits de manière logique, comme dans :
Si ceci se produit, faites cela.
En programmation, vous entendrez parler des instructions If et Or,
ainsi que des instructions While.
Tous les processus de haut niveau sont décomposés en leurs formes les plus simples, et écrits de manière logique, afin de décrire précisément un processus prévisible.
L'idée de la programmation à un très haut niveau, est de cartographier toutes les possibilités impliquées dans la réalisation de ce que vous essayez de faire, afin que toutes les bases soient couvertes. Si des possibilités sont manquées, votre programme pourrait se planter en raison d'une erreur inattendue.
La programmation de bas niveau est effectuée juste au-dessus du niveau matériel, en utilisant le
"code machine", qui est très précis, mais peut être très intimidant, car il implique la programmation des registres matériels avec l'hexadécimal.
Ce type de programmation créait de petits programmes avec un code très efficace.
Un programme de haut niveau utilise des commandes écrites de manière plus conviviale pour l'homme, comme :
"dessiner un cercle de rayon x"
La programmation de haut niveau comprend de nombreux types de langages de programmation, car certains langages sont plus faciles à utiliser pour certains types de programmes, tandis que d'autres sont adaptés à différents types.
Une fois qu'un programme est créé, et vérifié pour les erreurs, il est "compilé".
C'est un processus de conversion des commandes de haut niveau en code machine.
Ce processus de conversion rend les langages de haut niveau moins efficaces que leur écriture en code machine au départ, mais aussi beaucoup plus rapides et faciles à créer.
Les programmes plus importants sont créés à l'aide d'équipes de programmeurs, qui cartographient tous les processus logiques impliqués dans un aspect particulier d'un processus, puis chaque partie est incorporée en tant que module dans le programme principal.
Comme chaque programmeur codera ses processus de sa propre manière, il arrive que des bogues et des plantages de programme se développent entre les versions, en raison de conflits entre les modules.
Les processus de débogage utilisés aujourd'hui sont meilleurs que par le passé, mais en raison de la complexité des programmes plus importants, cela peut prendre un certain temps pour éliminer toute erreur possible de se produire.
En plus de tout cela, lorsque vous publiez votre programme, et que les gens l'exécutent sur des milliers de combinaisons différentes de matériel, il en résulte que certaines personnes rencontrent des problèmes, et d'autres n'en ont aucun.
Système d'exploitation
Le système d'exploitation est un type de programme qui interface le matériel informatique avec d'autres logiciels. ie c'est un logiciel qui permet aux programmes de fonctionner.
La complexité du code utilisé pour créer Microsoft Windows est énorme en soi, et puis en plus de cela, la plupart des gens installent 10 programmes ou plus sur leurs ordinateurs, chacun créé de différentes manières par des dizaines ou des centaines de personnes.
Les "pilotes" sont des logiciels qui interfacent le matériel informatique et les périphériques avec les logiciels.
Chaque fois qu'une mise à jour logicielle est installée, on court le risque de corriger un problème, tout en créant un autre nouveau problème ailleurs. Beaucoup de tests et de temps sont consacrés à l'élimination d'autant de bogues que possible avant la sortie d'un logiciel.
Conclusion
Alors, la prochaine fois que vous naviguez sur le web et que votre ordinateur affiche un message d'erreur, au lieu de vous dire " pourquoi ne peut-il pas'fonctionner correctement ? "
vous devriez maintenant apprécier le niveau de complexité impliqué pour ne serait-ce que rester inactif sur le bureau de Windows sans aucun autre programme ouvert.