Как современные операционные системы, такие как Windows или Linux, узнают карту памяти конкретного чипсета?

Карта памяти периферийных устройств определяется чипсетом. Однако современные операционные системы, такие как Linux и Windows, могут загружаться практически с любого чипа (если они скомпилированы для правильной архитектуры). Насколько мне известно, устройства с отображением памяти, такие как USB Host, не включены в стандарт архитектуры. Как ОС может по-прежнему загружаться, загружать драйверы и функционировать? Я полагаю, должна быть какая-то спецификация, где описан чипсет.

Сформулировано немного по-другому: как работает идентификация набора микросхем, какие стандарты определяют связь между набором микросхем и процессором, чтобы он работал на разных аппаратных средствах, и как ядро ​​​​узнает правильные физические адреса для разных периферийных устройств?


person elFreak    schedule 15.05.2020    source источник


Ответы (1)


В открытых системах обычно используется дерево устройств, которое представляет собой спецификацию подключенного оборудования и способов его подключения. Существует еще одна система, ACPI, которая поддерживает устаревшие ПК. Любая система позволяет операционной системе находить и настраивать необходимые ей шины и связанные с ними периферийные устройства.

Это никогда не бывает на 100% так просто. Например, ОС может знать, что на шине 1 по адресу 1000 есть контроллер scsi; но если кода для драйвера scsi нет в загруженном образе ОС, то это знание мало полезно, так как у него нет возможности загрузить драйвер.

Спецификация Intel для ACPI пытается исправить это, встраивая крошечные реализации драйверов в прошивку либо платформы, либо самого устройства, либо того и другого. Поскольку устройство не обязательно знает, на каком процессоре оно будет работать, эти мини-драйверы написаны в виде виртуального набора инструкций, для которого хост-ОС требует интерпретатор.

UEFI предоставляет альтернативный способ обращения к зависимости загрузки с помощью более общего механизма использования драйверов мини-загрузки для той же цели.

person mevets    schedule 18.05.2020