Термин Legacy Plug and Play [1] , также сокращенный до Legacy PnP [2], описывает ряд спецификаций и функций Microsoft Windows , ориентированных на конфигурацию операционной системы устройств, а некоторые идентификаторы устройств назначаются UEFI Forum [3] . Стандарты были в первую очередь нацелены на стандартную шину IBM PC , позже названную Industry Standard Architecture (ISA) . Сопутствующие спецификации также определены для общих внешних или специальных шин, обычно подключаемых через ISA во время разработки, включая устройства RS-232 и параллельного порта .
Как функция Windows, Plug and Play относится к функциональности операционной системы, которая поддерживает подключение, настройку и управление с помощью собственных устройств Plug and Play. [4] Первоначально считавшийся частью того же набора функций, что и спецификации, Plug and Play в этом контексте относится в первую очередь к обязанностям и интерфейсам, связанным с разработкой драйверов Windows. [5]
Plug and Play позволяет обнаруживать устройства без вмешательства пользователя, а иногда и для незначительной настройки ресурсов устройства, таких как порты ввода-вывода и карты памяти устройства. PnP — это определенный набор стандартов, не путать с общим термином plug and play, который описывает любую спецификацию оборудования, которая устраняет необходимость в настройке ресурсов устройства пользователем. [6]
ACPI является преемником Legacy Plug and Play.
Стандарт Plug and Play требует, чтобы конфигурация устройств обрабатывалась PnP BIOS, который затем предоставляет сведения о выделении ресурсов операционной системе. Процесс вызывается во время загрузки. При первом включении компьютера идентифицируются совместимые устройства и назначаются неконфликтующие адреса ввода-вывода , номера запросов прерываний и каналы DMA .
Термин был принят корпорацией Microsoft в отношении их продукта Windows 95. Другие операционные системы , такие как AmigaOS Autoconfig и система Mac OS NuBus , уже некоторое время поддерживали такие функции (под разными названиями или без названия). [7] Даже Yggdrasil Linux рекламировал себя как «Plug and Play Linux» по крайней мере за два года до Windows 95. Но термин plug and play постепенно стал универсальным из-за всемирного признания Windows.
Обычно не-PnP-устройства должны быть идентифицированы в настройках BIOS компьютера, чтобы система PnP не переназначала эти устройства. Проблемы во взаимодействии между устаревшими не-PnP-устройствами и системой PnP могут привести к ее сбою, что привело к тому, что эта технология исторически называлась «plug and pray» (подключи и молись). [2]
Спецификация Legacy Plug and Play была определена Microsoft и Intel , которые предложили изменения в устаревшем оборудовании, а также в BIOS для поддержки обнаружения устройств, привязанного к операционной системе. Эти роли позже были взяты на себя стандартом ACPI [1], который также переносит поддержку управления питанием и настройки в операционную систему, в отличие от прошивки, как ранее требовалось спецификациями "Plug and Play BIOS" и APM . Следующие стандарты составляют то, что Microsoft описывает как Legacy Plug and Play, в отличие от собственных спецификаций Plug-and-Play, таких как PCI и USB .
Для Windows Vista требуется BIOS, совместимый с ACPI, а ISAPnP по умолчанию отключен. [11]
Для использования Plug and Play необходимо выполнить три требования:
Аппаратное обеспечение Plug-and-play обычно также требует некоторого кода ID, который оно может предоставить, чтобы программное обеспечение компьютера могло правильно его идентифицировать. Идентификатор Plug-and-play может иметь две формы: 3-байтовый идентификатор производителя плюс 2-байтовый шестнадцатеричный номер (например, PNP0A08) или 4-байтовый идентификатор производителя плюс 2-байтовый шестнадцатеричный номер (например, MSFT0101). [12] Кроме того, устройство PnP может иметь код класса и идентификатор подсистемы. [13]
Эта система кодов идентификаторов не была интегрирована в раннее оборудование промышленной стандартной архитектуры (ISA), распространенное в ПК, когда впервые был представлен Plug and Play. ISA Plug and Play вызвала некоторые из самых больших трудностей, которые изначально сделали PnP очень ненадежным. Это привело к насмешливому термину «Plug and Pray», поскольку адреса ввода-вывода и линии IRQ часто устанавливались неправильно в первые дни. Более поздние компьютерные шины, такие как MCA , EISA и PCI (которая в то время становилась отраслевым стандартом), интегрировали эту функциональность.
Наконец, операционная система компьютера должна уметь обрабатывать эти изменения. Обычно это означает поиск прерываний от шины, сообщающих об изменении конфигурации, а затем чтение информации с шины, чтобы определить, что произошло. Старые конструкции шины часто требовали считывания всей системы, чтобы определить эти изменения, что может быть трудоемким для многих устройств. Более современные конструкции используют какую-то систему, чтобы либо сократить, либо исключить эту «охоту»; например, USB использует для этой цели систему концентратора.
Когда изменение обнаружено, ОС затем проверяет информацию в устройстве, чтобы выяснить, что это такое. Затем она должна загрузить соответствующие драйверы устройств , чтобы заставить его работать. В прошлом это было делом «все или ничего», но современные операционные системы часто включают возможность найти нужный драйвер в Интернете и установить его автоматически.
Plug-n-Play SECS/GEM для устаревшего оборудования