Zunächst enthält das BIOS einen Treiber für Ihren integrierten AHCI-Controller. Befindet sich der Controller nicht an Bord, sondern auf einer PCI-Karte, enthält die Karte ein PCI-Options-ROM mit einem BIOS-Treiber für den Controller.
Wenn Ihre Firmware UEFI unterstützt, enthält sie (oder das Options-ROM) auch einen UEFI-Treiber für den Controller.
Gleiches gilt für alle anderen Komponenten, von denen Ihr PC booten kann (dh normalerweise USB, CD-ROM, kabelgebundenes Netzwerk). Andere Komponenten haben normalerweise überhaupt keine BIOS / UEFI-Treiber.
Betriebssysteme können die BIOS- oder UEFI-Treiber verwenden (z. B. DOS oder Windows 95), aber die meisten modernen Betriebssysteme versuchen, den Aufwand zu vermeiden und die Einschränkungen der BIOS-Treiber zu umgehen, und verwenden stattdessen ihr eigenes Treiberformat.
Allgemeine Einschränkungen von BIOS-Treibern:
- in der Regel schlechte Leseleistung und noch schlechtere Schreibleistung
- Wird nur unterstützt, wenn nur der erste Prozessor / Core aktiviert ist
- Nur im 16-Bit-Modus arbeiten (dies impliziert Single-Tasking und einen adressierbaren Speicher von 640 KB)
- funktioniert nur, wenn das A20-Gatter gelöscht ist (was 1 MB adressierbaren Speicher impliziert)
Das bedeutet, dass moderne Betriebssysteme während des Startvorgangs wiederholt zwischen dem 16-Bit- und dem 32-Bit- / 64-Bit-Single-Tasking-Modus wechseln und das A20-Gate so oft umschalten müssen, bis sie den Betriebssystemkern und zumindest den Festplattentreiber in den High-Zustand eingelesen haben Speicher (640 K reichen heute normalerweise nicht mehr aus); Dann wechseln sie in den Multitasking-Modus und laden den Rest des Betriebssystems mithilfe des jetzt geladenen Kernels und des Festplattentreibers weiter.
UEFI-Einschränkungen sind weniger schlimm (UEFI-Treiber werden im 64-Bit-Modus ausgeführt, erfordern jedoch immer noch den Single-Tasking-Modus und nur einen aktivierten Core), aber immer noch so schlimm, dass ich kein Betriebssystem kenne, das nach dem Start versucht, UEFI-Treiber zu verwenden - und das ist wahrscheinlich auch der Grund, warum niemand einen Webbrowser für reines UEFI geschrieben hat (Webbrowser sind von Natur aus Multithread-fähig und es wäre schwierig, einen leistungsfähigen Single-Thread-Webbrowser zu schreiben).