Pourquoi avons-nous besoin d'un chargeur de démarrage?


29

Après le démarrage du BIOS, ou quelque chose de similaire qui sert de firmware, le contrôle est passé au chargeur de démarrage, pour autant que je sache.

Pourquoi le BIOS ne peut-il pas charger directement le noyau du système d'exploitation?

En outre, le manuel GRUB dit: brièvement, un chargeur de démarrage est le premier programme logiciel qui s'exécute au démarrage d'un ordinateur . Le BIOS n'est-il pas le premier programme qui s'exécute?


Réponses:


28

Un BIOS aurait besoin de savoir comment charger un noyau, et cela rendrait le BIOS trop compliqué: imaginez un BIOS qui a besoin de savoir comment charger les nombreux systèmes d'exploitation disponibles, comment leur transmettre les paramètres du noyau, etc.

Ainsi, il initialise uniquement le matériel et passe à un endroit connu où le chargeur de démarrage est stocké; ensuite, le contrôle lui est transmis.

Extrait du HOWTO Unix et Internet Fundamentals :

Vous vous demandez peut-être pourquoi le BIOS ne charge pas directement le noyau - pourquoi le processus en deux étapes avec le chargeur de démarrage? Eh bien, le BIOS n'est pas très intelligent. En fait, c'est très stupide et Linux ne l'utilise pas du tout après le démarrage. Il a été initialement écrit pour les PC 8 bits primitifs avec de minuscules disques, et ne peut littéralement pas accéder suffisamment au disque pour charger directement le noyau. L'étape du chargeur de démarrage vous permet également de démarrer l'un des nombreux systèmes d'exploitation à différents endroits de votre disque, dans le cas peu probable où Unix ne vous conviendrait pas.

Quant au BIOS étant le premier programme qui s'exécute: (de Wikipedia )

Le logiciel du BIOS est intégré au PC et est le premier code exécuté par un PC lorsqu'il est allumé («firmware de démarrage»).

Mais un firmware est un logiciel. Je suppose donc que le manuel GRUB est au moins déroutant sur cette partie; le chargeur de démarrage peut être considéré comme le premier logiciel défini par l' utilisateur qui s'exécute sur l'ordinateur.


10

La raison en est la flexibilité. Vous pouvez avoir plusieurs OS différents sur un seul disque dur (Windows, Linux, etc.), ou vous pouvez avoir plusieurs versions différentes du même OS. Par conséquent, il est préférable d'avoir un morceau de code indépendant du système d'exploitation qui sache où réside chaque système d'exploitation installé sur le disque dur, comment charger chacun d'eux, lequel charger, s'il faut présenter ou non un menu, etc. un chargeur de démarrage.

Le BIOS charge et exécute le code situé dans un emplacement prédéfini sur un disque dur (premier secteur). Nous appelons ce code un chargeur de démarrage, mais techniquement, si vous avez installé Windows sur un disque dur vierge, ce code est également installé par Windows, vous pouvez donc l'appeler partie de Windows, d'autant plus que le chargeur de démarrage Windows ne peut pas charger d'autre système d'exploitation que Windows.

Concernant le premier logiciel qui s'exécute au démarrage d'un ordinateur: la distinction micrologiciel / logiciel est assez mince et le processus de démarrage d'un ordinateur moderne est très compliqué. Le BIOS en soi n'est pas non plus un programme monolithique, mais plusieurs étapes distinctes enchaînées. Cependant, le chargeur de démarrage est le premier code modifiable par l'utilisateur qui s'exécute. C'est le premier morceau de code que l'utilisateur peut endommager, effacer, infecter avec un virus, etc. Donc, je suppose que même si techniquement le BIOS est le premier logiciel qui s'exécute, le chargeur de démarrage est d'abord en un sens que si l'ordinateur ne démarre pas, l'utilisateur a besoin pour vérifier si c'est ok.


1
Par expérience, un utilisateur peut certainement casser le BIOS.
Arrêtez de nuire à Monica

2

Pourquoi le BIOS ne peut-il pas charger directement le noyau du système d'exploitation?

Trois raisons:

  • Le BIOS sur la plate-forme PC originale lors de son introduction en 1981 était censé fonctionner dans le même rôle que celui du système d'exploitation CP / M - à savoir, une couche d'abstraction mince pour quelques appareils et un simple chargeur de démarrage sur disque. CP / M avait une autre couche appelée "BDOS" qui gérait le système de fichiers. Le DOS était similaire au CP / M à bien des égards car c'était le système d'exploitation en vogue à l'époque, et était structuré de la même manière. Le BIOS était destiné à gérer les aspects spécifiques au matériel de la plate-forme, un rôle que les pilotes dans les systèmes d'exploitation jouent désormais.

  • La notion d'un système de fichiers distinct du système d'exploitation n'a pas encore vraiment pris racine.

  • À cette époque, la RAM et la ROM étaient des ressources coûteuses et rares. Le PC IBM 5150 d'origine pouvait être obtenu avec aussi peu que 16 Ko de RAM ( référence ). La taille de la ROM de ce système était de 48 Ko et comprenait un interprète BASIC. Il n'existait pas non plus de système de fichiers standard à l'époque.

Depuis que DOS est devenu le système d'exploitation le plus populaire pour cette plate-forme, et Windows par la suite, qui a fonctionné avec cette configuration, personne n'a pensé à étendre le BIOS de cette manière pour inclure une véritable capacité de chargement de démarrage.

Je ne suis pas sûr des capacités de l'UEFI - il peut avoir une réelle capacité de démarrage qui n'est pas utilisée par Windows pour une raison ou une autre (Windows insiste pour utiliser son propre gestionnaire de démarrage lorsque vous l'installez). D'autres firmwares non BIOS comme U-Boot et ceux de nombreux téléphones et routeurs chargent et exécutent directement les noyaux. Il n'y a pas eu de raison technique à cela depuis que les BIOS ont commencé à avoir de la place dans la ROM pour faire plus de choses.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.