Le logiciel BIOS est intégré au PC et constitue le premier code exécuté par un PC à la mise sous tension ("firmware de démarrage"). 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. 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 système informatique doit avoir un BIOS installé?
Pourquoi le système opérationnel ne peut-il pas utiliser tout le BIOS?
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 différente a besoin d’un BIOS personnalisé, il serait donc impossible d’avoir un générique BIOS/OS tout-en-un (bien que le BIOS est techniquement juste du code stocké, de sorte que vous pourriez 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 un 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, 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 construit lui-même 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 donc des modifications lors de votre prochain démarrage). Cependant, comme je l’ai dit 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, ceci est très dépendant du matériel et du logiciel, mais montre que toutes les interfaces informatiques sont relatives. Le BIOS correspond 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.
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, ainsi que de faire des tests et de vous permettre de configurer certains paramètres du BIOS.
Votre système d'exploitation ne peut pas faire cela 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.
Pas de vraie raison logique. C'est plus une question d'héritage et d'histoire.
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
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.
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 également souhaiter qu'un autre processus démarre en premier lieu:
Le processus s'appelle amorçage .
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 de CP/M devraient être dans un 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 grand-chose: une unité de disque, un écran, un port série ou deux (ports COM ou AUX,) auxquels des imprimantes ou des modems pourraient être connectés.
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 également.
À 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 chargé de 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é mis au point, principalement dans le BIOS, pour prendre en charge la gestion de l’alimentation et la configuration d’objets 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 hébergeant ARM, les CPU exécutant Linux (ainsi que le matériel des 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.
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 une connaissance plus approfondie 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 tenter d'obtenir un système d'exploitation de plusieurs gigaoctets dans ROM coûte cher, en plus des problèmes de suivi liés à sa correction et à sa 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.
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'oeuf 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 suffisamment de fondations pour que les chargeurs de démarrage de deuxième étape, tels que GRUB ou NTLDR , peut être chargé et exécuté. Ces chargeurs de deuxième étage sont plus sophistiqués que le programme BIOS, ce qui leur permet de fournir une base plus solide au système d’exploitation permettant de charger et d’assumer le contrôle.
Si un processeur peut s’adresser directement à un disque dur sans s’appuyer sur le BIOS, l’EFI ou un autre code de la mémoire ROM (ou de la mémoire NVRAM ou autre), ce processeur pourrait en théorie charger un système d’exploitation. à partir du disque dans RAM et commencez à 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 relier de manière rigoureuse certains concepts relatifs aux disques, tels que les tables de partition et les systèmes de fichiers, dans la CPU. De nos jours, les CPU sont assez gros pour le faire, mais ce ne serait pas une approche très flexible ou efficace pour concevoir un CPU.