5.20日音訊,即插即用的基本要求。即插即用框架由Microsoft協(xié)同Intel于1993年提出,而后在眾多硬件廠商的支持下,逐漸成為各種硬件設(shè)備的即插即用工業(yè)標(biāo)準(zhǔn)。自1995年以后設(shè)計(jì)和生產(chǎn)的大多數(shù)計(jì)算機(jī)和硬件設(shè)備都能夠支持即插即用,而Windows95以后的Windows操作系統(tǒng)(包括WindowsNT內(nèi)核的系統(tǒng)和Windows9x系列)都提供了即插即用的能力。
一個計(jì)算機(jī)系統(tǒng)的即插即用特性體現(xiàn)在兩個方面:第一,當(dāng)計(jì)算機(jī)引導(dǎo)時,操作系統(tǒng)可以自動掃描當(dāng)前系統(tǒng)中所有出現(xiàn)的硬件設(shè)備,并且正確地配置這些設(shè)備,包括為它們分配資源以及加載適當(dāng)?shù)尿?qū)動程序,當(dāng)出現(xiàn)資源沖突時,能合理地進(jìn)行資源仲裁;第二,在系統(tǒng)運(yùn)行過程中,當(dāng)設(shè)備插入或移除時,操作系統(tǒng)可以檢測到硬件設(shè)備的變化,并對硬件設(shè)備進(jìn)行配置,增減驅(qū)動程序,必要時向系統(tǒng)中正在運(yùn)行的軟件(系統(tǒng)組件或應(yīng)用程序)發(fā)送設(shè)備變化通知。硬件設(shè)備使用的公共資源主要是中斷向量、I/O端口、I/O內(nèi)存,以及其他與總線相關(guān)的資源。如果系統(tǒng)中存在不支持即插即用特性的設(shè)備,則操作系統(tǒng)必須兼顧這些設(shè)備的“硬”需求。
在系統(tǒng)引導(dǎo)階段,即插即用的支持主要是由計(jì)算機(jī)的BIOS(BasicInputOutputSystem)來完成的。系統(tǒng)BIOS是即插即用框架結(jié)構(gòu)中的一個重要部件。通常的做法是,BIOS標(biāo)識出系統(tǒng)總線(比如PCI總線)上的即插即用設(shè)備和非即插即用設(shè)備,并且獲得它們的配置要求,然后判斷是否存在資源沖突。如果沒有資源沖突,則引導(dǎo)繼續(xù)進(jìn)行,否則需要重新分配資源。系統(tǒng)中關(guān)于設(shè)備的資源配置可以保存在一個稱為ESCD(ExtendedSystemConfigurationData)的非易失存儲空間中。操作系統(tǒng)利用BIOS中的設(shè)備資源配置信息,正確地配置設(shè)備的驅(qū)動程序和相關(guān)的軟件,從而保證它們能正常地工作。
除了BIOS的即插即用支持,系統(tǒng)總線也必須提供即插即用能力,這樣才能自動地列舉出該總線上附載的設(shè)備??偩€和設(shè)備之間按照約定的規(guī)范進(jìn)行通信。當(dāng)總線需要列舉設(shè)備時,支持即插即用的設(shè)備能夠標(biāo)識它們自身,并報告它們的資源需求;當(dāng)系統(tǒng)要進(jìn)行資源重新分配時,這些設(shè)備可以接受新的資源分配。
在操作系統(tǒng)中,即插即用能力主要通過設(shè)備的驅(qū)動程序來體現(xiàn)。總線的驅(qū)動程序和附載在總線上的設(shè)備的驅(qū)動程序相互協(xié)作,完成設(shè)備的列舉和自動配置工作。例如,在系統(tǒng)引導(dǎo)之初,操作系統(tǒng)指示總線的驅(qū)動程序列舉其上的設(shè)備,并收集這些設(shè)備的配置信息,然后,它利用這些信息,加載并初始化相應(yīng)的驅(qū)動程序。另一方面,當(dāng)系統(tǒng)中插入或移除一個設(shè)備時,總線的驅(qū)動程序也要與設(shè)備的驅(qū)動程序進(jìn)行通信,以確保設(shè)備獲得或釋放它的I/O資源,而且,操作系統(tǒng)可能也需要維護(hù)系統(tǒng)狀態(tài)的一致性,以避免因?yàn)樵O(shè)備的動態(tài)變化而造成系統(tǒng)不穩(wěn)定,從而真正做到支持“熱插拔”。