Que se passe-t-il si vous démarrez un ordinateur sans système d’exploitation ?


Je vais répondre à la question que vous avez réellement posée et ensuite répondre à la question que je crois que vous aviez l'intention de poser. Le point clé est que tous les ordinateurs sont constitués d'une unité centrale, d'une mémoire principale et d'un système d'entrée/sortie. La façon dont ces composants sont assemblés varie d'un ordinateur à l'autre, mais ils sont tous présents. Sans logiciel, l'ordinateur est inutile en soi. De plus, généralement sans un système d'exploitation ou OS, et d'autres programmes qui fonctionnent au-dessus de cet OS plus une formation pour les utiliser, l'ordinateur n'est toujours pas très utile et ne va pas faire grand chose pour vous lorsque vous l'allumez.


La réalité est que lorsque vous allumez un ordinateur, c'est un tas de pierres chaudes très coûteuses et il ne fait rien. Rien, nada... inanimé, inutile, mort, à peu près aussi amusant qu'une " brique " (plus dans une minute). Donc, ... pour rendre un ordinateur utile, vous avez besoin de quelques choses en plus du matériel (les pièces):

  1. un programme écrit dans le "jeu d'instructions" de cette unité centrale particulière;
  2. un moyen d'obtenir ce programme dans la mémoire de l'ordinateur que vous avez;
  3. un moyen de dire à cet ordinateur de "commencer" l'exécution de ce programme ; et
  4. savoir quoi faire avec quand vous l'avez.

Retournons donc quelques pas en arrière et essayons de faire correspondre cela au processeur Geniune Intel*64 moderne ou compatible, qui est très probablement ce que vous venez d'acheter. Il s'avère que quelqu'un (très probablement une entreprise du Massachusetts appelée Phoenix's Technologies, ou une autre de Californie appelée American Megatrends, Inc), a écrit quelques programmes pour ces puces et les met sous licence. Le fabricant de votre carte mère a acheté des copies sous licence et le droit de dupliquer ces programmes et de les placer dans un dispositif appelé mémoire morte ou ROM. Les ROM ont la propriété intéressante de pouvoir être écrites à l'usine une fois et ensuite de " se souvenir " des bits qui ont été programmés à l'intérieur même lorsque le courant est coupé.


Donc, la carte mère que vous avez achetée contient une ROM qui a été programmée à l'usine avec ces programmes sous licence et, donc a été insérée dans la mémoire de l'ordinateur, donc vous avez résolu les 2 premières pièces manquantes. Et il s'avère que lorsque la carte mère a été conçue, des circuits spéciaux ont été ajoutés qui sont utilisés lors de la mise sous tension/réinitialisation pour indiquer au processeur de rechercher un programme à l'endroit où la ROM a été placée et de régler le compteur de programme du processeur de manière à ce qu'il commence l'exécution d'un programme en utilisant le contenu de cette ROM (c'est-à-dire le binaire du programme stocké dans la ROM).C'est-à-dire le binaire du programme stocké à l'intérieur.


Pour être complet dans ma réponse, vous n'avez pas besoin d'une ROM, et franchement, pour ceux d'entre nous qui ont un certain âge, nous n'avions pas l'habitude d'utiliser des ordinateurs avec des ROMs dedans (les ROMs n'avaient pas été inventées ou étaient très chères à l'époque). Alors comment le "programme initial" apparaissait-il dans la mémoire de l'ordinateur ? Autrefois, nous avions des interrupteurs à bascule sur la face avant de l'ordinateur et nous chargions le "programme initial du chargeur de démarrage" dans la mémoire, qui était généralement un simple programme qui savait lire un bloc ou deux de mémoire à partir d'un périphérique d'entrée/sortie, qui avait sur lui un autre programme, qui pouvait faire plus, etc. Cette opération était appelée "amorçage" de l'ordinateur, car elle était similaire à celle d'un grimpeur qui monte sur une corde en utilisant ses chaussures. C'était très lent et un tantinet fastidieux.

La vérité est que vous pourriez faire la même chose aujourd'hui si vous remplaciez la ROM par un moyen quelconque d'insérer un programme dans la mémoire principale, comme nous l'avons fait dans les années 60 et 70. Comme les ordinateurs modernes n'ont pas d'interrupteurs à bascule et de " console " comme les anciens systèmes, vous devez trouver un moyen de charger le premier programme dans la mémoire principale (c'est-à-dire résoudre l'étape 2).

À partir des ordinateurs construits à la fin des années 70, les ROM de démarrage sont devenues standard telles que vous les avez aujourd'hui. Le contenu de cette ROM dans un ordinateur moderne a un nom (c'est-à-dire les programmes logiciels à l'intérieur). On l'appelle le BIOS ou système d'entrée/sortie de base de l'ordinateur. Cependant, si vous utilisez un ordinateur Intel*64 ou compatible, il s'agit plutôt de la clé UEFI ou Unified Extensible Firmware Interface [les différences dépassent le cadre de cette réponse]. Mais le point est que le contenu de la ROM sont des programmes qui sont écrits, licence et fourni avec la carte mère, et exécuté à l'allumage du CPU.

Donc maintenant vient la question que vous aviez l'intention de poser. Le problème est que c'est probablement l'ordinateur tel qu'il est configuré qui ne va pas vous être utile. Vous pourriez remplacer vous-même le contenu de la ROM et programmer le HW brut et utiliser directement le matériel informatique. Il est probable que si vous essayez cela, vous aurez une autre "brique" lorsque vous aurez terminé. En fait, le processus d'essayer de développer et de charger un nouveau firmware sur des appareils, vous entendrez ou verrez le terme 'bricking' l'ordinateur - qui fait référence à ce processus.

Cela dit, des programmeurs très expérimentés, souvent avec d'autres outils, comme les programmeurs de Phoenix ou d'Intel eux-mêmes, c'est exactement ce qu'ils font. Mais ce n'est probablement pas ce que vous voulez faire... il est plus probable que vous vouliez utiliser les ROM que vous avez pour charger un système d'exploitation (OS) et ensuite pour exécuter des programmes qui fonctionnent par-dessus. Donc ...

  1. vous devez fournir un OS;
  2. vous devez le stocker quelque part ; et
  3. vous devez le charger en mémoire depuis un endroit quelconque.

Beaucoup de gens utilisent une saveur Microsoft d'un OS et pour cela vous devrez aller aux endroits habituels. Il était autrefois possible qu'un utilisateur l'achète auprès d'eux, bien que franchement, je ne suis pas sûr que cela soit encore possible. Veuillez vérifier auprès d'Amazon, de NewEgg ou d'autres sites similaires. Franchement, je suis l'un des auteurs originaux d'UNIX et je ne sais même pas comment faire, car je n'utilise pas ce qui est souvent appelé "Winders" par mes pairs. De même, Mac OS peut également être obtenu auprès d'Apple si vous avez les licences et les comptes appropriés, bien que je pense que vous aurez besoin d'un système Apple pour le télécharger pour commencer - vous devez donc chercher (google est votre ami) si vous voulez construire un soi-disant "Hackintosh" en supposant que vous avez le matériel approprié. Et je vous préviens que la légalité de faire tourner le système d'exploitation d'Apple sur autre chose que du matériel Apple est discutable, donc je ne vous dis pas de le faire, seulement que c'est possible. Personnellement, je recommanderais une implémentation UNIX moderne actuelle telle que FreeBSD ou Linux - encore une fois, google est votre ami si vous voulez les détails de comment, mais encore une fois, la portée est au-delà de cette réponse - j'essaie d'expliquer ce qui se produirait / pourrait se produire.

Je vais donc supposer que vous avez un OS à exécuter tel qu'un FreeBSD, Linux, Mac OSX, Winders, ou similaire pour répondre au reste de la question. La question maintenant est de savoir où vous stockez le système d'exploitation et comment vous le chargez dans l'ordinateur ?

Le système d'exploitation doit être stocké sur un périphérique d'entrée/sortie, traditionnellement cela a été un disque local ou une bande ou un lecteur de disquettes. Il n'est pas nécessaire qu'il le soit. Les ROM d'aujourd'hui peuvent démarrer à partir du réseau en utilisant un protocole appelé 'PXE' ou le Pre-Boot Execution Environment, qu'Intel a défini il y a quelques années comme un moyen de standardiser le démarrage en réseau des systèmes basés sur la compatibilité Intel (FWIW Apple utilise son propre schéma qui est similaire appelé NetBoot).

Dans tous les cas, le démarrage local ou à distance, le système d'exploitation (qui est un programme) est stocké quelque part sur un périphérique d'entrée/sortie. La ROM de votre carte mère lance l'exécution du processeur lors de la réinitialisation à la mise sous tension. Cela configure le processeur, amène le chargeur d'amorçage, après quelques étapes que je vais sauter (parce que chaque OS a tendance à le faire un peu différemment), finalement l'OS lui-même est placé en mémoire et le PC du CPU est réglé pour commencer à l'exécuter.

Selon l'OS spécifique que vous utilisez, à un moment donné, cet OS exécutera un programme qui effectue des E/S vers des périphériques qui s'interfacent d'une manière ou d'une autre avec l'utilisateur humain, probablement soit par l'écran et le clavier, soit par le réseau. Finalement, le système d'exploitation recevra l'instruction d'exécuter un programme à la demande de l'utilisateur humain, ce que nous appelons généralement l'exécution d'une commande. Maintenant, l'ordinateur fait quelque chose d'" utile ", c'est-à-dire qu'il exécute des programmes directement pour vous.

Donc ....

  • le fait est que quelqu'un a écrit des programmes pour l'ordinateur.
  • Ils ont en quelque sorte été stockés quelque part pour vous.
  • Vous (en tant qu'utilisateur humain) avez en quelque sorte demandé qu'ils soient exécutés pour vous et,
  • ils ont été en quelque sorte chargés en mémoire pour vous.
  • L'ordinateur lui-même n'était qu'une pierre très chère, mais chaude. Juste une brique.
  • Sans logiciel, il n'était pas possible qu'il soit utile.
  • Et finalement, il fallait une certaine formation et des connaissances pour apprendre à s'interfacer avec lui, pour qu'il fasse réellement quelque chose pour vous qui soit utile. Qu'il s'agisse de jouer à un jeu, d'éditer une feuille de calcul ou de développer un autre programme.

Modifié le 29/6/19 pour corriger quelques coquilles et clarifier certaines phrases, mis à jour un an plus tard pour en réparer quelques autres.