Най-общо казано, повечето съвременни операционни системи (Windows и Linux) ще сканират отново открития хардуер като част от последователността за зареждане. Доверяването на BIOS да открие всичко и да го настрои правилно се оказа ненадеждно.
В типичен x86 компютър има комбинация от техники, използвани за откриване на прикачен хардуер.
PCI и PCI Express шините имат стандартен механизъм, наречен Конфигурационно пространство, което можете да сканирате, за да получите списък с прикачени устройства. Това включва устройства, инсталирани в PCI/PCIe слот, както и контролера(ите) в чипсета (видео контролер, SATA и т.н.).
Ако бъде открит IDE или SATA контролер, OS/BIOS трябва да говори с контролера, за да получи списък с прикачени устройства.
Ако бъде открит USB контролер, OS/BIOS зарежда стек от USB протоколи и след това изброява свързаните хъбове и устройства.
При "наследените" ISA устройства нещата са малко по-сложни. Дори ако вашата дънна платка няма ISA слот, обикновено все още имате редица "ISA" устройства в системата (серийни портове, паралелни портове и т.н.). Тези устройства обикновено нямат наистина стандартизиран метод за автоматично откриване. За откриване на тези устройства има 2 опции:
Проверете известни адреси - Серийните портове обикновено са на 0x3F8, 0x2F8, 0x3E8, 0x2E8, така че прочетете от тези адреси и вижте дали там има нещо, което прилича на UART на сериен порт. Това далеч не е перфектно. Може да имате сериен порт на нестандартен адрес, който не е сканиран. Може също така да имате устройство без сериен порт на един от тези адреси, което не реагира добре на сондиране. Помните ли как Windows 95 и 98 блокираха много при откриване на хардуер по време на инсталация?
ISA Plug-n-Play – Този стандарт беше популярен за гореща минута, тъй като ISA беше премахната през в полза на PCI. Вероятно няма да срещнете много устройства, които поддържат това. Вярвам, че ISA PnP е деактивиран по подразбиране в Windows Vista и по-нови, но в момента се боря да намеря източник за това.
ACPI Изброяване – ОС може да разчита на BIOS, за да опише тези устройства в ASL код. (Виж отдолу.)
Освен това може да има редица не-PnP устройства в системата на полуфиксирани адреси, като например TPM чип, HPET или онези „специални“ бутони на клавиатурите на лаптопи. За да бъдат обяснени тези устройства на операционната система, стандартният метод е да се използва ACPI.
ACPI таблиците на BIOS трябва да предоставят списък на устройствата на дънната платка на операционната система. Тези таблици са написани на език, наречен ASL (или AML за компилираната форма). По време на зареждане операционната система чете ACPI таблиците и изброява всички описани устройства. Имайте предвид, че за да работи това, производителят на дънната платка трябва да е написал правилно своя ASL код. Това не винаги е така.
И разбира се, ако всички методи за автоматично откриване не успеят, може да бъдете принудени ръчно да инсталирате драйвер. Правите това чрез съветника за добавяне на нов хардуер в Windows. (Точната процедура варира в зависимост от версията на Windows, която сте инсталирали.)
person
myron-semack
schedule
18.03.2014
BIOS
, поне както повечето хора знаят, сега е скърцащ x86 феномен и дори тогава е много далеч от това да е единствената игра в града. - person marko   schedule 18.09.2013