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?
bios
operating-systems
sata
ahci
user4691
quelle
quelle
Antworten:
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:
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).
quelle