SATA (AHCI-Modus) - Warum benötigt ein Betriebssystem einen AHCI-Treiber, während das BIOS von der Festplatte booten kann?

2

Wie ist die Beziehung zwischen AHCI und SATA? Warum kann ein Betriebssystem einen SATA-Controller ohne AHCI-Treiber nicht betreiben, während das BIOS weiß, wie eine SATA-Festplatte gebootet wird?

Was ist der Unterschied zwischen den SATA-Controllern, sodass sie einen bestimmten AHCI-Treiber benötigen?

Verfügt das BIOS über einen "Treiber", um von einer SATA-Festplatte (im AHCI-Modus) zu arbeiten und zu booten?

user4691
quelle
Erstens kann ein SATA-Controller im alten ATA-Modus unter Verwendung eines generischen Treibers oder im AHCI-Modus unter Verwendung erweiterter Laufwerke ausgeführt werden. Zweitens weiß das BIOS, da es "Teil" des Motherboards ist, dass Ihre Systemhardware einen AHCI-Modustreiber unterstützt. Drittens kann das Betriebssystem so konfiguriert werden, dass entweder ein ATA-Treiber ODER ein AHCI-Treiber ausgeführt wird, jedoch nicht beide gleichzeitig. Da das Windows-Installationsprogramm nicht über die gleichen umfassenden Kenntnisse Ihrer Hardware verfügt, wird standardmäßig der Treiber verwendet, der auf den meisten Systemen funktioniert: der ATA-Treiber. Sie müssen AHCI manuell aktivieren und den Treiber installieren, um AHCI verwenden zu können.
Frank Thomas
In den meisten aktuellen Betriebssystemen sind AHCI-Treiber integriert. Was genau ist deine Frage? Die Unterschiede hängen von den Funktionen der Controller ab. Sie können diese Funktionen ermitteln, indem Sie die verschiedenen Controller vergleichen.
Ramhound
1
Beachten Sie, dass ein BIOS kein herkömmlicher Betriebssystemkernel ist und daher keine steckbaren "Treiber" verwendet, wie dies bei einem Betriebssystem der Fall ist. seine Operationen sind alle in seinem eprom geschrieben. Zugegeben, einige der EFI-Shells haben einige überraschende Benutzerfunktionen (aber wer möchte von seinem BIOS aus im Internet surfen?), Aber es ist immer noch eine ganz andere Art von Tier.
Frank Thomas

Antworten:

4

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).

mihi
quelle