Почему Windows XP требовала драйверов AHCI, когда она уже могла загружаться сама?

469
Mehrdad

Когда Windows XP загружается без драйверов AHCI в системе SATA, вы получаете тип BSOD 0x0000007b.

Чего я не понимаю, так это того, почему он не может загружаться без драйверов AHCI. Очевидно, что он уже мог загружать код ядра, который дает вам BSOD, так почему же он не может загрузить остальную часть ОС таким же образом?

Альтернативно: все формы ATA поддерживают программируемый ввод / вывод, а IIRC Windows XP также поддерживает PIO. Таким образом, они могли бы загрузить остальную часть ОС, используя PIO тоже ... не так ли?

0
Хороший вопрос. Я * думаю * использует встроенное ПО (например, BIOS UEFI в режиме CSM) для доступа к диску до переключения на внутренние драйверы. Hennes 6 лет назад 0
@Hennes: возможно. Но опять же - почему он не мог продолжать это делать? Mehrdad 6 лет назад 0
Внутренние драйверы могут быть обновлены и, вероятно, работают намного лучше. Они также не нуждаются в переключении контекста через прерывание каждый раз, когда вы хотите загрузить новый сектор. Не то чтобы я догадывался. Это вероятная причина. Мне любопытно, если кто-то с неопровержимыми фактами подтвердит это. Hennes 6 лет назад 0
@Hennes: Да, но это только аргумент, почему внутренние драйверы лучше, а не почему они должны быть единственным вариантом. Mehrdad 6 лет назад 0

1 ответ на вопрос

3
Daniel B

Windows использует INT13h (BIOS) для доступа к жестким дискам только на самых ранних этапах. Если в течение этого времени не загружен подходящий драйвер Windows для доступа к диску, появится синий экран.

INT13h доступен только в реальном режиме. Современная Windows, однако, работает в защищенном режиме или в длинном режиме (x64).

На собственном UEFI (как в: когда не используется CSM) INT13h недоступен. Windows (предположительно) использует службы UEFI для доступа к дискам в этой среде.

Ответ на редактирование : работает ли ваш контроллер SATA в режиме AHCI или нет, не контролируется операционной системой. Вместо этого вы выбираете, что использовать в настройках прошивки. Микропрограмма устанавливает соответствующие биты в регистрах контроллера.

Виртуальный режим 8086 это просто виртуальный. Он не обеспечивает доступ к реальным функциям BIOS. Вместо этого хост должен эмулировать эти функции.

Несмотря на то, что я не эксперт, я нахожу весьма вероятным, что переключение обратно в реальный режим приведет к удалению важной информации в MMU и так далее, не говоря уже о последствиях остановки всего защищенного режима только для доступа к диску.

Так будет ли фактический ответ на вопрос, что они не осуществили переключение обратно из защищенного режима в реальный режим? Потому что это вполне возможно, и для меня немного удивительно, если они этого еще не сделали ... Mehrdad 6 лет назад 0
Он не может вернуться обратно. Все Windows зависит от функций защищенного режима. Daniel B 6 лет назад 0
Но вам не нужна вся Windows для запуска во время обращения к жесткому диску, верно? Вы можете переключиться при доступе к диску, а затем переключиться обратно. И снова: вы говорите, что они уже не делают это для чего-то еще? Mehrdad 6 лет назад 0
Кстати, обратите внимание, что ATA (включая SATA) также поддерживает программируемый ввод / вывод, который также поддерживается Windows XP. Таким образом, они также имели этот механизм в наличии. Так почему так важно загрузить драйверы AHCI? Mehrdad 6 лет назад 0
Если бы «все Windows» останавливалось всякий раз, когда что-то обращается к (медленному!) Хранилищу, вы, вероятно, выбросили бы свой компьютер из окна. Уверен, это невозможно по другим причинам. тоже. Что вы подразумеваете под «уже делающим это»? Работает ли ваш контроллер SATA в режиме AHCI или нет, зависит не от ОС. Это настройка прошивки. Также имейте в виду, что комментарии не для расширенного обсуждения. Daniel B 6 лет назад 0
временно использовать всю настройку только для доступа к жесткому диску. Я думаю, что они могли бы сделать это, а не синий скрининг. Но это, конечно, не должно быть по умолчанию. Вместо этого он должен использовать устаревший режим (без коммутаторов и лучшую производительность) или надлежащий AHCI (используя все функции диска). Hennes 6 лет назад 0
@Hennes: Я имею в виду, что будет иметь значение различие между установкой ОС и предоставлением пользователям возможности устанавливать драйверы AHCI после установки, что является довольно важным отличием. Под «уже делающим это» я имел в виду, было ли что-то, что уже требовало возврата в реальный режим? Но даже в этом нет необходимости. XP уже поддерживает режим Virtual 8086, который он мог бы использовать и для этой цели. Это не должно было бы переключиться обратно в реальный режим вообще. Я не пытаюсь вести расширенную дискуссию в комментариях, я говорю, что они должны быть рассмотрены в вашем ответе. Mehrdad 6 лет назад 0
Я не уверен, как окна могут переключать режимы. Если возможно, это звучит хуже, чем синий экран. Я не уверен на 100%, что это возможно без потери информации (в основном сбой работающих окон и, в лучшем случае, возвращение к настройке. Снова нажмите F6 и вставьте дискету с драйвером). Hennes 6 лет назад 0
Давай, ребята, иди в чат для этого обсуждения Ramhound 6 лет назад 0
+1 хорошо, спасибо. Кстати, вы забыли @ уведомить меня, поэтому я не получил уведомления. @Ramhound: успокойся. Это не обсуждение, я просто указываю на вопросы, имеющие непосредственное отношение к вопросу, которые необходимо решить или уточнить в ответе. Это именно то, для чего нужны комментарии. Mehrdad 6 лет назад 0

Похожие вопросы