Nachdem das BIOS oder etwas ähnliches, das als Firmware dient, gestartet wurde, wird die Steuerung meines Wissens an den Bootloader übergeben.
Warum kann das BIOS den Betriebssystemkern nicht direkt laden?
Außerdem heißt es im GRUB-Handbuch: Ein Bootloader ist das erste Softwareprogramm, das beim Starten eines Computers ausgeführt wird . Ist das BIOS nicht das erste Programm, das ausgeführt wird?
bios
grub
bootloader
aoeui
quelle
quelle
Antworten:
Ein BIOS muss wissen, wie ein Kernel geladen wird, und dies würde das BIOS übermäßig komplizieren: Stellen Sie sich ein BIOS vor, das wissen muss, wie die vielen verschiedenen Betriebssysteme geladen werden, wie Kernelparameter an sie übergeben werden usw.
Daher wird nur die Hardware initialisiert und zu einem bekannten Ort gesprungen, an dem der Bootloader gespeichert ist. dann wird die Steuerung an sie übergeben.
Aus dem Unix- und Internet-Grundlagen-HOWTO :
Das BIOS ist das erste Programm, das ausgeführt wird: (aus Wikipedia )
Aber eine Firmware ist Software. Ich würde also annehmen, dass das GRUB-Handbuch in diesem Punkt zumindest verwirrend ist. Der Bootloader kann als die erste benutzerdefinierte Software angesehen werden, die auf dem Computer ausgeführt wird.
quelle
Der Grund ist Flexibilität. Auf einer Festplatte befinden sich möglicherweise mehrere verschiedene Betriebssysteme (Windows, Linux usw.) oder Sie haben möglicherweise mehrere verschiedene Versionen desselben Betriebssystems. Daher ist es besser, ein vom Betriebssystem unabhängiges Stück Code zu haben, das weiß, wo sich jedes auf der Festplatte installierte Betriebssystem befindet, wie jedes von ihnen geladen wird, welches geladen wird, ob ein Menü angezeigt wird oder nicht usw. Dies ist ein Bootloader.
Das BIOS lädt und führt Code aus, der sich an einer vordefinierten Stelle auf einer Festplatte befindet (erster Sektor). Wir nennen diesen Code einen Bootloader. Wenn Sie Windows jedoch auf einer leeren Festplatte installiert haben, wird dieser Code auch von Windows installiert, sodass Sie ihn als Teil von Windows bezeichnen können, zumal der Windows-Bootloader kein anderes Betriebssystem als Windows laden kann.
In Bezug auf das erste Softwareprogramm, das beim Starten eines Computers ausgeführt wird: Die Unterscheidung zwischen Firmware und Software ist recht gering, und der Startvorgang eines modernen Computers ist sehr kompliziert. BIOS an sich ist auch kein monolithisches Programm, sondern mehrere verschiedene Phasen, die miteinander verkettet sind. Der Bootloader ist jedoch der erste vom Benutzer änderbare Code, der ausgeführt wird. Dies ist der erste Code, der vom Benutzer beschädigt, gelöscht, mit einem Virus infiziert usw. werden kann. Ich nehme an, dass das BIOS zwar die erste Software ist, die ausgeführt wird um zu überprüfen, ob es in Ordnung ist.
quelle
Drei Gründe:
Das BIOS auf der ursprünglichen PC-Plattform, als es 1981 eingeführt wurde, sollte dieselbe Rolle spielen wie das im CP / M-Betriebssystem - nämlich eine dünne Abstraktionsschicht für einige Geräte und einen einfachen Disk-Bootloader. CP / M hatte eine andere Schicht namens "BDOS", die das Dateisystem handhabte. DOS war CP / M in vielerlei Hinsicht ähnlich, da es zu dieser Zeit das in Mode gekommene Betriebssystem war, und es war ähnlich aufgebaut. BIOS sollte hardwarespezifische Aspekte der Plattform behandeln, eine Rolle, die Treiber in Betriebssystemen jetzt erfüllen.
Die Vorstellung eines vom Betriebssystem getrennten Dateisystems hat sich noch nicht wirklich durchgesetzt.
Zu dieser Zeit waren RAM und ROM teure und knappe Ressourcen. Der ursprüngliche IBM 5150-PC konnte mit nur 16 KB RAM ( Referenz ) beschafft werden . Die ROM-Größe dieses Systems betrug 48 KB und beinhaltete einen BASIC-Interpreter. Auch ein Standard-Dateisystem gab es damals nicht.
Da DOS zum beliebtesten Betriebssystem für diese Plattform wurde und Windows danach mit diesem Setup funktionierte, dachte niemand daran, das BIOS auf diese Weise um echte Boot-Funktionen zu erweitern.
Ich bin mir nicht sicher, ob UEFI wirklich bootfähig ist - möglicherweise wird es aus dem einen oder anderen Grund nicht von Windows verwendet (Windows besteht darauf, bei der Installation einen eigenen Boot-Manager zu verwenden). Andere Nicht-BIOS-Firmwares wie U-Boot und solche in vielen Telefonen und Routern laden Kernel und führen sie direkt aus. Es gab keinen technischen Grund dafür, seit BIOSes mehr Platz im ROM hatten, um mehr Dinge zu tun.
quelle