Comment le BIOS contrôle-t-il les périphériques d'E / S sans aucune forme de pilote?
Par exemple, comment une image s'affiche-t-elle pendant le démarrage de l'ordinateur si le BIOS n'a pas de pilote pour la carte graphique.
Existe-t-il une sorte de pilote générique standard dans tous les BIOS et le matériel qui permet au BIOS d'exécuter des fonctions de base, quel que soit le matériel installé?
Toute aide serait appréciée.
Merci.
Do you have a specific problem your trying to solve?
Oui, ils essaient de résoudre le problème de trouver une réponse à la question qu'ils ont posée. ¬_¬Réponses:
Normes. Tous les composants implémentent une interface de base, et le BIOS est programmé pour l'utiliser. Bien sûr, car il s'agit d'une interface de base (c'est ce que signifie le «B» dans le BIOS), elle ne peut pas tirer parti des capacités complètes du matériel; qui est laissé au logiciel à mettre en œuvre via des pilotes qui peuvent accéder directement au matériel.
À l'origine, les fabricants de BIOS ont créé un ensemble d' API que les appareils devaient utiliser s'ils voulaient être compatibles. Ils l'ont fait via des « interruptions », ce qui est un moyen pour un appareil d' interrompre le programme pour lui faire savoir que quelque chose s'est produit et vice versa.
Dans le cas de l'affichage avant démarrage, le micrologiciel de l'adaptateur vidéo implémente VESA (Video Electronics Standards Association), une norme qui a été créée pour simplifier l'accès au matériel d'affichage. Le BIOS sait comment accéder au matériel vidéo en utilisant les fonctions standard fournies. Il est quelque peu similaire à la façon dont DirectX a été implémenté en tant qu'API de niveau supérieur pour le matériel afin que les programmeurs n'aient pas à tenir compte de chaque configuration matérielle unique.
Sorte de. Ce n'est pas un pilote, mais une API standard ; un ensemble de fonctions de programmation qui peuvent être utilisées pour effectuer des tâches de base telles que l'initialisation d'un périphérique ou l'entrée et la sortie de données.
Si les fabricants veulent vendre leurs produits, ils devront s'assurer qu'ils implémentent au moins les API standard afin qu'ils soient compatibles. De cette façon, le système peut détecter le matériel et dans le cas de périphériques critiques au démarrage, ils peuvent y accéder à un niveau de base jusqu'à ce qu'un pilote logiciel qui sache comment y accéder complètement puisse être chargé.
la source
Le BIOS dans un PC était censé remplir une fonction similaire à celle du BIOS dans un système CP / M 8 bits, populaire avant que le PC ne prenne le relais au milieu des années 80. Le BIOS devait contenir un chargeur de démarrage minimal et des routines de bas niveau dépendant du matériel pour effectuer des entrées et des sorties sur quelques périphériques (écran, disque, bande, port COM). Les connaissances nécessaires pour ce faire ont été intégrées à la ROM - aucun pilote requis et, bien sûr, aucun matériel supplémentaire pris en charge par cette ROM. (Des choses comme la gestion de l'alimentation et ACPI sont venues beaucoup plus tard, dans les années 90, après que le PC s'est imposé comme une plate-forme omniprésente.)
(Le "système de fichiers" CP / M était dans un composant chargé sur le disque appelé BDOS - de même, la connaissance du système de fichiers FAT et de ses interfaces se trouve dans (au moins l'un de) deux fichiers cachés MSDOS.SYS ou IO.SYS - ne fait pas partie de la ROM du BIOS.)
Cependant ... Le BIOS du PC, contrairement au CP / M, supportait la notion d '"Option ROMS" qui pourrait être incluse sur une carte d'extension. Il y avait donc au moins un mécanisme minimal pour étendre le BIOS. Les cartes vidéo commençant par CGA (MDA, le prédécesseur de CGA peut aussi l'avoir fait) auraient une ROM optionnelle qui étendrait ou ajouterait des fonctions d'E / S à l'interface du BIOS. (C'est pourquoi vous voyez un message NVidia avant le démarrage de votre BIOS.) Les contrôleurs durs et les cartes SCSI également. Tout cela continue. De nombreuses cartes réseau plus anciennes ont un socket pour une ROM de démarrage.
Gardez également à l'esprit que les fabricants de clones PC apparus dans les années 80 ont très rapidement décidé de ne pas fournir uniquement une interface BIOS compatible, mais ont fini par devoir copier la plate-forme PC dans son ensemble, y compris tout le matériel de bas niveau tel que la puce de minuterie , contrôleur d'interruption, etc. (Cela a été relativement facile car il était peu propriétaire d'IBM.) Cela était dû au fait que le BIOS était lent à faire les choses et que les programmeurs accédaient directement au matériel, en particulier pour les jeux.
Ainsi, entre les ROM optionnelles et ce consensus de matériel standard qui forme la plate-forme PC, ainsi que le fait qu'elle ait été maintenue rétrocompatible tout au long de l'évolution du PC, quelque chose souhaitant utiliser l'affichage sans pilote peut:
Tout le matériel d'affichage PC fonctionne toujours en mode "compatible VGA" au démarrage. L'adaptateur IBM VGA d'origine avait des modes compatibles avec les cartes EGA, CGA et MDA antérieures. Tout cela signifie que quelque chose qui s'exécute à partir du BIOS ou à l'extérieur d'un système d'exploitation peut supposer qu'il peut toujours lire et écrire la même mémoire connectée à l'écran maintenant qu'elle le pouvait en 1985, par convention.
la source