Warum benötigte Windows XP AHCI-Treiber, wenn es sich schon ohne laden konnte?

562
Mehrdad

Wenn Windows XP auf einem SATA-System ohne AHCI-Treiber bootet, erhalten Sie ein ähnliches BSOD 0x0000007b.

Was ich nicht verstehe ist, warum es ohne AHCI-Treiber nicht geladen werden kann. Offensichtlich war es bereits in der Lage, den Kernel-Code zu laden, der Ihnen den BSOD gibt. Warum konnte er den Rest des Betriebssystems nicht auf dieselbe Weise laden?

Alternativ: Alle ATA-Formen unterstützen Programmierte E / A und IIRC, Windows XP, auch PIO. Also hätten sie auch den Rest des Betriebssystems mit PIO laden können ... oder?

0
Gute Frage. Ich vermute, * wird die Firmware (z. B. BIOS von UEFI im CSM-Modus) verwendet, um auf das Laufwerk zuzugreifen, bevor auf interne Treiber umgestellt wird. Hennes vor 6 Jahren 0
@ Hennes: Möglicherweise. Aber wieder - warum sollte das nicht weitergehen? Mehrdad vor 6 Jahren 0
Interne Treiber können aktualisiert werden und sind wahrscheinlich viel besser. Sie benötigen auch nicht jedes Mal einen Kontextwechsel über einen Interrupt, wenn Sie einen neuen Sektor laden möchten. Nicht dass ich vermute. Es ist ein wahrscheinlicher Grund. Ich bin gespannt, ob jemand mit harten Fakten dies bestätigen wird. Hennes vor 6 Jahren 0
@Hennes: Richtig, aber das ist nur ein Argument dafür, warum interne Treiber besser sind, nicht warum sie die einzige Option sein sollten. Mehrdad vor 6 Jahren 0

1 Antwort auf die Frage

3
Daniel B

Windows verwendet den INT13h (BIOS) -Zugriff auf Festplatten nur zu einem sehr frühen Zeitpunkt . Wenn während dieser Zeit kein geeigneter Windows-Treiber für den Zugriff auf die Festplatte geladen wird, wird der blaue Bildschirm angezeigt.

INT13h ist nur im Real-Modus verfügbar. Moderne Windows laufen jedoch im geschützten Modus oder im langen Modus (x64).

Auf nativer UEFI (wie: wenn CSM nicht verwendet wird) ist INT13h nicht verfügbar. Windows verwendet (vermutlich) UEFI-Dienste für den Zugriff auf Festplatten in dieser Umgebung.

Antwort auf die Bearbeitung : Ob Ihr SATA-Controller im AHCI-Modus läuft, wird nicht vom Betriebssystem gesteuert. Stattdessen wählen Sie aus, welche Datei in den Firmware-Einstellungen verwendet werden soll. Die Firmware setzt die entsprechenden Bits in den Registern der Steuerung.

Der virtuelle 8086-Modus ist genau das: virtuell. Es bietet keinen Zugriff auf echte BIOS-Funktionen. Stattdessen muss der Host diese Funktionen emulieren.

Obwohl ich kein Experte bin, finde ich es sehr wahrscheinlich, dass ein Zurückschalten in den Real-Modus wichtige Informationen in der MMU und vieles mehr verwirft, ganz zu schweigen von den Auswirkungen, wenn der geschützte Modus angehalten wird, nur um auf die Festplatte zuzugreifen.

Wäre die Antwort auf die Frage also wirklich, dass sie keinen Wechsel vom geschützten Modus in den realen Modus implementiert haben? Weil es absolut möglich ist, dies zu tun, und es ist für mich ein wenig überraschend, wenn sie es nicht schon getan hätten ... Mehrdad vor 6 Jahren 0
Es kann nicht zurückschalten. Windows hängt von den Funktionen des geschützten Modus ab. Daniel B vor 6 Jahren 0
Sie benötigen jedoch nicht das gesamte Windows, während auf die Festplatte zugegriffen wird, oder? Sie könnten während des Zugriffs auf die Festplatte wechseln und dann zurückschalten. Und nochmal: Wollen Sie damit sagen, dass sie das noch nicht tun? Mehrdad vor 6 Jahren 0
Beachten Sie übrigens, dass ATA (einschließlich SATA) auch programmierte E / A unterstützt, die auch von Windows XP unterstützt werden. So hatten sie auch diesen Mechanismus zur Verfügung. Warum war es so wichtig, AHCI-Treiber zu laden? Mehrdad vor 6 Jahren 0
Wenn „alle Windows“ aufhören würden, wenn etwas auf (langsamen!) Speicherplatz zugreift, würden Sie wahrscheinlich Ihren PC aus dem Fenster werfen. Ziemlich sicher, dass es aus anderen Gründen nicht möglich ist. auch. Was meinst du mit "das schon tun"? Ob Ihr SATA-Controller im AHCI-Modus ausgeführt wird oder nicht, liegt nicht im Betriebssystem. Es ist eine Firmware-Einstellung. Denken Sie auch daran, dass Kommentare nicht für eine erweiterte Diskussion vorgesehen sind. Daniel B vor 6 Jahren 0
vorübergehend das gesamte Setup nur für den Zugriff auf eine Festplatte zu verkrüppeln. Ich vermute, sie könnten das eher als Blue Screening. Es sollte aber keinesfalls ein Ausfall sein. Stattdessen sollte der Legacy-Modus (keine Switches und bessere Leistung) oder die richtige AHCI (mit allen Festplattenfunktionen) verwendet werden. Hennes vor 6 Jahren 0
@Hennes: Ich meine, es würde den Unterschied zwischen dem Wegwerfen der Betriebssysteminstallation und der Ermöglichung der Installation von AHCI-Treibern durch die Benutzer nach der Installation ausmachen, was einen ziemlich entscheidenden Unterschied darstellt. Mit "das schon tun" meinte ich, ob es irgendetwas gab, für das bereits ein Wechsel in den Realmodus erforderlich war? Aber auch das ist nicht nötig. XP unterstützte bereits den Virtual 8086-Modus, den er auch für diesen Zweck hätte nutzen können. Es müsste überhaupt nicht in den Realmodus zurückgeschaltet werden. Ich versuche nicht, eine ausführliche Diskussion in den Kommentaren zu führen, ich sage, diese sollten in Ihrer Antwort angesprochen werden. Mehrdad vor 6 Jahren 0
Ich bin nicht sicher, wie Fenster zwischen Modi wechseln können. Wenn es klingt, klingt es weniger als Blue Screening. Ich bin nicht zu 100% sicher, dass dies möglich ist, ohne dass Informationen verloren gehen. (Grundsätzlich stürzen die laufenden Fenster ab und im besten Fall kehren Sie zum Setup zurück. Drücken Sie erneut F6 und legen Sie eine Diskette mit einem Treiber ein). Hennes vor 6 Jahren 0
Komm schon, Jungs, geh in den Chatraum für diese Diskussion Ramhound vor 6 Jahren 0
+1 ok danke. Sie haben vergessen, @ zu benachrichtigen, damit ich nicht benachrichtigt wurde. @ Ramhound: Entspannen Sie sich. Es ist keine Diskussion, ich weise nur auf Fragen hin, die für die Frage unmittelbar relevant sind und in der Antwort angesprochen oder geklärt werden müssen. Genau dafür sind Kommentare gedacht. Mehrdad vor 6 Jahren 0