Pourquoi un ordinateur doit-il avoir un BIOS?

35

Le logiciel du BIOS est intégré au PC. Il s’agit du premier code exécuté par un PC lorsqu’il est allumé («firmware d’amorçage»). Lors du démarrage du PC, le premier travail du BIOS est le test automatique à la mise sous tension, qui initialise et identifie les périphériques du système, tels que le processeur, la mémoire vive, la carte vidéo, le clavier et la souris, le lecteur de disque dur, le lecteur de disque optique, etc. autre matériel. Le BIOS localise ensuite le logiciel de chargeur de démarrage stocké sur un périphérique (appelé «périphérique de démarrage»), tel qu'un disque dur ou un CD / DVD, puis charge et exécute ce logiciel en lui donnant le contrôle du PC [2]. Ce processus s'appelle amorçage ou amorçage, ce qui est synonyme d'amorçage.

Quelles conditions requises déterminent qu'un BIOS doit être installé sur un ordinateur?

Pourquoi le système opérationnel ne peut-il pas utiliser tout le BIOS?

Diogo
la source
40
Pourquoi un moteur de voiture a-t-il besoin d'un démarreur? Le moteur ne devrait-il pas être assez puissant pour démarrer tout seul?
Der Hochstapler
4
@OliverSalzburg cela sera possible dans un avenir proche, moteurs à essence sans démarreurs. Avec l'injection directe et les ordinateurs, c'est un jeu d'enfant.
Moab
2
Ils ont déjà des moteurs à démarrage automatique, mais ce sont principalement des moteurs à 12 cylindres ou rotatifs. La plupart des moteurs ne peuvent pas démarrer tout simplement parce qu'ils ne peuvent pas produire assez de puissance en un seul coup de moteur pour surmonter son moment d'inertie. L’injection directe et une meilleure synchronisation pourraient aider un peu, mais il faut vraiment des moteurs plus légers pour augmenter le rapport entre l’énergie générée dans un accident vasculaire cérébral et le moment d’intertia créé par le volant, le vilebrequin, les engrenages, etc.
Lèse majesté
5
En réalité, un BIOS au sens PC n’est PAS nécessaire. Les ordinateurs IBM System / 360 et / 370 (et peut-être des versions plus récentes) ont démarré avec une seule instruction câblée lisant un seul enregistrement à partir d'un périphérique sélectionné par des numéros sur la console. Cet enregistrement contenait un programme d'amorçage (il devait contenir 80 octets - une carte perforée) qui chargeait un programme d'amorçage plus complexe, qui chargeait le système d'exploitation à partir du disque. J'imagine que le 'BIOS' était cette instruction simple à exécuter lorsque vous avez appuyé sur le bouton droit (appelé IPL ou charge du programme initial).
Ex Umbris
2
Vous confondez "ordinateur" et "PC" dans votre question. C'est pourquoi les réponses sont confuses et parfois contradictoires.
Rds

Réponses:

41

Un BIOS est un morceau de code dépendant du matériel stocké sur la carte mère elle-même. Chaque carte mère a besoin d'un BIOS personnalisé écrit pour elle. Il serait donc impossible d'avoir un BIOS / OS générique tout-en-un (bien que le BIOS ne soit qu'un code stocké, vous pouvez donc théoriquement écrire un système d'exploitation pour une carte mère particulière). . Comme vous l'avez mentionné, le but du BIOS est de:

Lorsque le PC démarre, le premier travail du BIOS est le test automatique à la mise sous tension, qui initialise et identifie les périphériques du système tels que le processeur, la mémoire vive, la carte vidéo, le clavier et la souris, le lecteur de disque dur, le lecteur de disque optique et les périphériques. autre matériel.

Notez que vous pouvez toujours démarrer un ordinateur sans stockage externe - c'est pourquoi le BIOS est une exigence pour un ordinateur. En d'autres termes, le BIOS fournit une interface logicielle commune permettant à un programme informatique stocké de communiquer avec divers périphériques matériels connectés à la carte mère.

Par exemple, si j'ai deux cartes mères différentes avec deux contrôleurs SATA différents, le BIOS me permet d'écrire un morceau de code qui peut fonctionner avec les deux, sans que je sache comment la carte mère envoie réellement des commandes au périphérique SATA. Je dois juste dire à l'ordinateur "lire le secteur X à partir de ce périphérique SATA", et le BIOS est responsable de l'envoi de ces commandes au matériel.

Les informations du "secteur de lecture X" proviennent en fait d'un programme stocké contenu dans le BIOS, qui ordonne généralement à l'ordinateur de démarrer la lecture à partir d'un chargeur de démarrage stocké dans un emplacement commun. Ces emplacements communs sont agréés par divers développeurs de logiciels et de matériel informatique et sont généralement communiqués au public afin d'accroître la compatibilité entre les systèmes.

Une fois que le niveau de base de l’interfaçage (à nouveau, l’interfaçage logique via le logiciel) est établi, le système d’exploitation lui-même crée une interface commune avec vos divers périphériques matériels (généralement à l’aide de "pilotes de périphérique"), qui peut alors contrôler le matériel.


Enfin, il convient de noter que le BIOS sert également à modifier les configurations matérielles de l’ordinateur et à les stocker dans la mémoire EEPROM intégrée (votre ordinateur se souviendra de ces modifications lors de votre prochain démarrage). Cependant, comme je l'ai indiqué précédemment, une fois que le système d'exploitation est chargé, il a le contrôle total de l'ordinateur.

Cela permet aux fabricants de cartes mères de développer un logiciel vous permettant d’effectuer ces modifications à partir de votre système d’exploitation, au lieu de devoir redémarrer dans le BIOS. Encore une fois, cela dépend beaucoup du matériel et des logiciels, mais cela montre que toutes les interfaces informatiques sont relatives. Le BIOS est exactement ce que son nom implique - un système d'entrées / sorties de base, permettant à une interface logicielle commune à un programme plus avancé ("système d'exploitation") de prendre le contrôle de la machine.

Percée
la source
2
Lorsque vous démarrez l'ordinateur, le BIOS s'exécute en tant que code machine sur le processeur. Vous pouvez le penser comme ça, mais ce n'est pas vraiment "éteint" dans un sens, il bascule simplement pour exécuter le système d'exploitation. Lorsque vous démarrez l'ordinateur, le BIOS indique à celui-ci de commencer à exécuter le code machine stocké à l'emplacement X. En termes plus courants, le BIOS initialise simplement votre matériel et indique à l'ordinateur à partir duquel continuer à exécuter le code.
Percée le
13
Le BIOS / OS tout-en-un n’est PAS impossible. Je ne sais pas pourquoi tout le monde ici continue de le dire. Avoir chaque partie sur des périphériques / stockage séparés ne signifie pas qu'ils ne font pas partie de la même entité logique. Les ordinateurs antérieurs au PC IBM avaient un tout-en-un, c'est-à-dire que le BIOS avait été fabriqué et développé par le même qui avait développé le noyau du système d'exploitation. En fait, les mises à jour du système d'exploitation comprenaient parfois des mises à jour du BIOS.
m0skit0
3
@Oliver En réalité, avec ACPI, les fonctions du BIOS sont régulièrement utilisées après le démarrage du système d'exploitation.
derobert
1
Le BIOS permet au système d'exploitation (couche logicielle) d'interagir avec le matériel. Le BIOS et le système d'exploitation ont des objectifs différents. Ils sont deux parties d'un tout. L'un ne remplace pas l'autre.
Ben Richards
1
@ Breakthrough: dépend de la personne qui fabrique le matériel;) Dans le cas des PC IBM, l'évolution logique était indépendante du fabricant du BIOS et du système d'exploitation en raison de la multiplicité des types de matériel. Cela ne s'est pas passé dans le passé. C’est la raison pour laquelle le PC a été une (chance, sauf que M $ s’y trouve sans raison…) qui a changé tout le marché de l’informatique.
m0skit0
7

Votre système d'exploitation se trouve sur votre disque dur. Si vous allumez votre ordinateur, il ne commencera pas comme par magie à lire ce disque dur. C'est le BIOS qui charge le chargeur de démarrage à partir du disque dur et effectue des tests et vous permet de configurer certains paramètres du BIOS.

Votre système d'exploitation ne peut pas le faire car il se trouve sur le disque dur et non dans votre ROM.

Par conséquent, vous avez besoin d'un BIOS ou d'une technologie similaire (mais différente) comme EFI ...

Il est possible de mettre une partie du système d'exploitation sur la ROM (responsable du chargement du chargeur de démarrage du système d'exploitation) par le fabricant; cependant, cela n’est pas largement applicable et il existe un BIOS ou une EFI de toute façon.

Tamara Wijsman
la source
1
Vous mélangez deux concepts différents. Le BIOS est indépendant du système d’exploitation, c’est-à-dire que le BIOS pourrait en faire partie. Par exemple, s'il est fabriqué par le même fabricant et fonctionne uniquement avec ce système d'exploitation, à l'instar des bootstrappers de la console de jeu.
m0skit0
5
"Le BIOS est indépendant du système d'exploitation, c'est-à-dire que le BIOS pourrait en faire partie." Hein? La contradiction est très contradictoire, lol.
Percée
2
Les consoles de jeux sont des ordinateurs, tout comme Atari, Amiga et les vieux Mac, donc c'est tout à fait pertinent. @ Breakthrough: ce n'est pas contradictoire. Cela signifie que le BIOS n’a rien à voir avec le système d’exploitation et qu’il peut donc en faire partie (ou non).
m0skit0
@TomWijsman Vous êtes le seul à la traîne ici. Les consoles de jeu sont un sous-ensemble d’ordinateurs. S'il est possible pour certaines consoles de le faire, alors il est possible pour certains ordinateurs. Aussi, n'utilisez pas gras juste comme ça. C'est inapproprié.
luiscubal
1
@TomWijsman a raison, si les consoles de jeu peuvent le faire, les ordinateurs aussi. Aussi, tant que ce n'est pas une question ou une réponse, je ne vois pas de problème à ce que ce soit hors sujet. Les commentaires sont des commentaires, après tout; ni plus ni moins. (Aucun commentaire sur la question audacieuse - à chacun son sujet, même si cela concerne davantage la terminologie.)
Percée du
6

Pas de vraie raison logique. C'est plus une question d'héritage et d'histoire.

  1. Il n'est pas nécessaire qu'un ordinateur soit doté d'un BIOS. C'est l'héritage d'IBM PC. Bien que cela se soit avéré une bonne idée

  2. Faire fonctionner le système d'exploitation ne changerait vraiment rien car il ferait toujours quelque chose comme le BIOS. Bien entendu, le système d'exploitation doit être dans une ROM et non sur un périphérique d'E / S. Le problème peut survenir pour des problèmes de monopole lorsqu'un constructeur de système d'exploitation décide de rendre son BIOS de système d'exploitation incompatible avec les autres systèmes d'exploitation. Le fait de séparer les fabricants de BIOS des systèmes d'exploitation améliore la liberté d'utilisation des logiciels.

m0skit0
la source
1
Pourquoi ne peut-il pas fonctionner comme un BIOS? Donnez une explication sur pourquoi. Il vous suffit de mettre bootstrapper sur une ROM et vous avez terminé. Je ne veux pas l’avoir entièrement en ROM, et même ainsi, cela fonctionnerait si la ROM était suffisamment grande (bien sûr, pour l’exécuter, vous devrez charger des parties dans la RAM, mais le BIOS actuel le fait également).
m0skit0
3
Il a dit "ordinateur", pas de PC. Et oui c'est applicable. En fait, c'était comme ça avant le PC IBM (Atari, Amiga ... le BIOS fait partie du système d'exploitation).
m0skit0
2
Drôle de moi, j’avais l'habitude d'écrire des logiciels pour des ordinateurs embarqués sans BIOS ni système d'exploitation, juste du code d'application. Ou ne parlons-nous pas de tous les ordinateurs, seulement de ceux auxquels la plupart des gens pensent?
Jwernerny
2
Non applicable à grande échelle? Vérifiez combien d’Ataris, d’Amiga et de Mac existaient avant le PC.
m0skit0
2
L'iPhone est un ordinateur et je ne pense pas qu'il dispose d'un BIOS. Même avant l'ère numérique ... un ordinateur est une machine programmable qui effectue des opérations et génère le même résultat pour une entrée donnée, n'est-ce pas? Un métier à tisser Jacquard est un ordinateur, et il ne possède certainement pas de BIOS (il n'a même pas de système d'exploitation).
Rds
5

Quelque chose est requis pour démarrer le système d'exploitation. Si le système d'exploitation peut tenir dans une mémoire non volatile, il peut être démarré directement, mais avec les systèmes d'exploitation complets tels que Windows, OSX ou Linux, cela n'est pas possible.

Ce qu'il faut, c'est un petit "système d'exploitation" léger pouvant être chargé à la mise sous tension et effectuant les opérations de base, telles que l'accès à la mémoire et au disque, puis chargeant le système d'exploitation. Bien que cela puisse faire partie du système d'exploitation lui-même et non pas d'une entité séparée, vous pouvez souhaiter qu'un autre processus démarre en premier lieu:

  1. Mises à jour - si le système d'exploitation était corrigé de la sorte, il deviendrait difficile de le mettre à jour si des correctifs de sécurité étaient nécessaires. Cela peut être fait - les mises à jour du micrologiciel arrivent tout le temps aux périphériques tels que les routeurs, etc. mais des systèmes d'exploitation relativement simples sont installés.
  2. Flexibilité - un ordinateur est une machine polyvalente et le même matériel peut exécuter plusieurs systèmes d'exploitation différents. Avoir un BIOS qui charge ensuite le système d'exploitation à partir du disque signifie que vous pouvez choisir lequel exécuter - vous pouvez même aller aussi loin en avoir plusieurs installés côte à côte.

Le processus est appelé amorçage .

ChrisF
la source
1
Donc, la réponse est parce que nous avons beaucoup de systèmes d’exploitation différents? Je veux dire, si nous n'avions qu'un seul modèle de système d'exploitation pour un matériel spécifique, nous éliminerions le besoin d'un BIOS?
Diogo
1
Je ne vois pas pourquoi il est impossible que Microsoft crée un BIOS ...
m0skit0
1
Vous n'avez pas besoin de l'intégralité du système d'exploitation pour tenir dans la mémoire non volatile (ce qu'il peut d'ailleurs, vous avez juste besoin de suffisamment de ROM: P). Vous avez seulement besoin du bootstrapper pour être là.
m0skit0
1
@ m0skit0 Microsoft ne peut pas créer de BIOS car il devrait créer un BIOS différent pour chaque carte mère sur laquelle le logiciel doit s'exécuter. :)
Percée le
1
De plus, @ChrisF, placer un système d’exploitation sur une ROM compromet l’intérêt d’un système d’exploitation. Il peut être judicieux d’utiliser la ROM pour exécuter directement certains programmes stockés sur le processeur (ce qui donnerait de bien meilleures performances), mais l’intérêt d’un système d’exploitation est d’interdire explicitement ce type d’opération et de fournir une interface logicielle commune aux utilisateurs. fais le.
Percée le
4

Le concept PC BIOS dépend de CP / M, un système d’exploitation très répandu sur les ordinateurs à bus Z-80 "S-100" 8 bits avant que le PC IBM ne prenne la relève.

Les fonctions dépendantes du matériel du CP / M devraient être dans une ROM (BIOS). Une autre partie, chargée hors du disque par le chargeur de démarrage, était le logiciel qui supportait le système de fichiers CP / M (BDOS), puis le processeur de commande ou "shell" (CCP). Le matériel que CP / M devait prendre en charge n’était pas très important: un lecteur de disque, un écran, un port série ou deux (ports COM ou AUX) pouvant être connectés à des imprimantes ou des modems.

Le BIOS du PC a exécuté une fonction d’amorçage de base similaire à celle utilisée par CP / M, et DOS a utilisé les fonctions du BIOS pour effectuer les entrées et les sorties de base, comme prévu. Les programmeurs ont fini par contourner ces fonctions car elles étaient lentes. Cela a conduit les fabricants de clones de PC au milieu des années 80 à recréer la plate-forme dans son ensemble (facile, car IBM a très bien documenté le PC d'origine à l'intérieur et à l'extérieur), au lieu de simplement fournir un BIOS avec des interfaces compatibles, bien qu'ils devaient le faire aussi.

À ce stade, nous pouvons dire que, pour un système d’exploitation moderne, le BIOS n’est pas vraiment nécessaire au-delà du démarrage du système. Toutefois ...

À partir du début des années 90, la notion de gestion de l’alimentation a pris forme et le BIOS s’est vu confier cette tâche. APM fonctionne bien avec un système d'exploitation mono-tâche tel que DOS, mais pas avec de véritables systèmes d'exploitation multitâches tels que Windows ou Linux. À peu près à la même époque, le 386 était en pleine vigueur, le processeur Intel prenant en charge le multitâche réel. DOS et le BIOS n'ont pas été mis à jour en réponse aux nouvelles fonctionnalités de ce processeur, principalement parce que tous les processeurs Intel continueront de fonctionner en mode de compatibilité 16 bits hérité pour lequel le BIOS PC d'origine a été conçu. Ainsi, les systèmes d’exploitation modernes ignorent / contournent pratiquement toutes les fonctionnalités d’entrée / sortie de type CP / M du BIOS, sauf éventuellement lors des premières étapes d’amorçage.

ACPI a finalement été développé, principalement dans le cadre du BIOS, qui prend en charge la gestion de l’alimentation et la configuration de composants spécifiques à la plate-forme (souvent les ordinateurs portables). ACPI gère également l'état final de mise en veille, de mise en veille ou d'arrêt de l'alimentation.

Donc, de nos jours, c’est ACPI et son successeur, EFI, qui fait que quelque chose comme le BIOS est une nécessité pour les PC. Le concept général est que ACPI doit être l’interface entre la plate-forme ou la carte mère et le système d’exploitation. doivent être fabriqués pour chaque type de carte mère.

Les cartes de développement qui hébergent des processeurs ARM sous Linux (ainsi que du matériel pour téléphones cellulaires) présentent ce problème. Généralement, ils viennent avec un micrologiciel pour chargeur de démarrage tel que U-boot, mais le système d’exploitation doit prendre en charge chaque carte en tant que plate-forme distincte.

LawrenceC
la source
3

En un sens, vous avez raison. Le BIOS et le système d'exploitation font en partie les mêmes choses. La séparation dans le BIOS et le système d'exploitation est uniquement pour la flexibilité.

Le BIOS est généralement créé par un fabricant de matériel. Le matériel doit s'assurer qu'une fonctionnalité de base est présente, par exemple qu'un lecteur de disque peut être lu et qu'un affichage de base des diagnostics et des erreurs est affiché. D'où le nom "Système d'entrée-sortie de base".

Cela peut être fait, dans une certaine mesure, sans aucune connaissance supplémentaire des composants réels réellement présents sur le système spécifique, car ils doivent tous prendre en charge un certain petit standard du BIOS. Cela permet aux fournisseurs de créer un système complet sur mesure. Le BIOS doit juste en faire assez pour démarrer le système d'exploitation. Il existe certaines conventions pour indiquer où se trouvent ces points de départ, aussi essaye-t-il les uns après les autres. Cela permet également d'utiliser différents systèmes d'exploitation sur le même matériel. (il y a encore de la flexibilité)

Une fois que le système d'exploitation (ou au moins son chargeur de démarrage) est détecté et démarré par le BIOS, celui-ci devient en grande partie obsolète. Les systèmes d’exploitation modernes n’utilisent que très peu du BIOS de manière fonctionnelle après le chargement.

Si vous voulez que le système d’exploitation fasse tout le travail, vous devez le placer dans un emplacement accessible par le matériel, sans l’aide préalable d’un logiciel (ROM). Cela peut être possible pour certains systèmes fermés, où la flexibilité n'est pas un problème. Si vous envisagez d'intégrer un support matériel à un autre matériel, vous construisez à nouveau une sorte de BIOS ...

Une autre préoccupation concerne la taille de la mémoire et son coût. Les systèmes d'exploitation complets sont volumineux et il est coûteux d’obtenir un système d’exploitation de plusieurs gigaoctets dans la ROM, sans compter les problèmes de suivi liés à la correction et à la mise à jour.

Donc non, il n'y a pas de raison technique, mais de nombreuses raisons pratiques, en particulier pour la plate-forme PC flexible.

Oliver
la source
3

Pour exécuter un programme sur un PC moderne, vous devez déjà avoir un programme en cours d'exécution qui sache utiliser le matériel et charger les programmes en mémoire. Ce problème de la poule et de l'œuf est résolu en implantant un programme de base dans le matériel lui-même.

Le système BIOS (Basic Input / Output System) est très petit et de portée très limitée, mais fournit une base suffisante pour que des chargeurs de démarrage de deuxième étape, tels que GRUB ou NTLDR , puissent être chargés et exécutés. Ces chargeurs de deuxième étape sont plus sophistiqués que le programme BIOS, ce qui leur permet de fournir une base plus robuste au système d'exploitation permettant de charger et d'assumer le contrôle.

Andrew Lambert
la source
Bonne explication non technique.
Escargot mécanique
1

Si un processeur peut s’adresser directement à un disque dur sans s’appuyer sur le BIOS, l’EFI ou un autre code ROM (ou NVRAM, etc.), ce processeur peut théoriquement charger un système d’exploitation dans la RAM et commencer. l'exécuter.

En réalité, en théorie, un tel processeur pourrait même exécuter des instructions sans les charger dans la RAM. Il n'y a aucune raison théorique qu'un ordinateur ne puisse utiliser un disque dur comme stockage principal. Mais ce serait très, très lent.

Cela impliquerait d'avoir plus de code dans la CPU pour accéder au disque et de cerner dans le CPU certains concepts relatifs aux disques, tels que les tables de partition et les systèmes de fichiers. Les processeurs actuels sont assez gros pour le faire, mais ce ne serait pas une approche très flexible ou efficace pour concevoir un processeur.

david25272
la source
Auparavant, les ordinateurs fonctionnaient directement à partir d'un disque / tambour, sans quantité importante de RAM.
Daniel R Hicks
-1

Il n'en a pas besoin!

Ce qu'on appelle souvent le BIOS est un ensemble de 3 choses.

  • Un chargeur de démarrage
  • Un outil de configuration: désormais obsolète, sauf l'ordre de démarrage, et l'horloge. La plupart des autres doivent être automatiques ou configurés par le fabricant.
  • Le BIOS: une bibliothèque de routines de sortie pour aider le système d’exploitation à communiquer avec le matériel. Malheureusement, le bios est 16 bits, obsolète et ne peut pas être utilisé par les systèmes d'exploitation modernes, il est donc en grande partie ignoré.
ctrl-alt-delor
la source
Le chargeur de démarrage fait partie du BIOS.
Daniel R Hicks
@ Daniel, j'ai réécrit pour clarifier, merci.
ctrl-alt-delor