Plug and Play (zkr. PnP), doslovně přeloženo jako „Plug and play (práce)“ je technologie určená k rychlé identifikaci a konfiguraci zařízení v počítači a dalších technických zařízení. V závislosti na hardwarovém rozhraní a softwarové platformě (OS, BIOS) lze proceduru Plug and Play provést ve fázi spouštění systému nebo v režimu hot swap – to se provádí například pro rozhraní USB a IEEE 1394 [1] .
Některé rané počítačové systémy, jako je Apple II , mohou vyžadovat, aby uživatel přepájel a řezal kolíky na rozšiřujících tabulích, aby je mohl překonfigurovat [2] . Tato technika rekonfigurace byla složitá a drasticky zkrátila životnost zařízení.
Jak byly počítače dostupné stále širšímu publiku, začaly být vyžadovány jednodušší, pohodlnější a dostupnější rekonfigurační technologie. Zpočátku byly navrženy propojky (propojky) a DIP přepínače namísto řezání a pájení vodičů pro změnu konfigurace rozšiřujících karet .
Vlevo: Propojky různých velikostí. Vpravo: Blok DIP přepínačů s 8 přepínači |
Později byl proces rekonfigurace rozšiřujících desek automatizován [3] .
MSX [4] , vydaný v roce 1983, byl původně navržen jako systém Plug and Play. To bylo realizováno pomocí speciálně organizovaného systému rozšiřujících slotů , z nichž každý, včetně podslotů v případě použití slotového expandéru (slot expanderu) [5] , měl vlastní virtuální adresní prostor, což eliminovalo samotný zdroj pro případné konflikty adres mezi zařízeními. Pro konfiguraci systému nebylo nutné přepínat propojky ani provádět žádné další procedury v manuálním režimu. Nezávislý adresní prostor umožnil použití levných mikroobvodů v expanzních zařízeních. Vrstva mezilehlé logiky, která prováděla přenos virtuálních adres na skutečné, se také ukázala jako velmi levná na implementaci.
Na straně softwaru byly ovladače a softwarová rozšíření dodávány v paměti pouze pro čtení , umístěné na rozšiřujících kartách. To umožnilo společnosti ASCII Corporation vytvořit systém, který nevyžadoval disky s ovladači ani žádnou uživatelskou manipulaci se softwarem během instalace dalšího hardwaru. Rozšíření BIOS nainstalovaná na ROM (rozšíření ROM v terminologii MSX) poskytla implementaci hardwarové abstraktní vrstvy (HAL) , která umožnila softwaru pracovat se standardním rozhraním API zařízení, aniž by se věnovala pozornost zvláštnostem jeho hardwarové implementace.
Architektura rozšiřující sběrnice NuBus , vyvinutá v roce 1984 na Massachusetts Institute of Technology , byla koncipována [6] jako platformově neutrální rozhraní s plně automatickou konfigurací zařízení k němu připojených. Specifikace rozhraní dokonce zahrnovala současnou podporu pro big endian a little endian reprezentace čísel, což bývalo jedním z důvodů nekompatibility platforem. Nicméně zvýšená složitost implementace platformově neutrálního rozhraní, které vyžadovalo dražší čipy, byla v 80. letech faktorem, který zabránil širokému přijetí tohoto rozhraní.
V roce 1984 vyvinul Commodore protokol Autoconfig a rozšiřující sběrnici Zorro pro svou rodinu osobních počítačů Amiga . Vývoj byl poprvé představen veřejnosti na Consumer Electronics Show , která se konala v Las Vegas v roce 1985, pod názvem „Lorraine“, tento prototyp technologie. Stejně jako NuBus , zařízení připojená ke sběrnici Zorro nevyžadovala žádné propojky ani DIP přepínače. Informace o konfiguraci zařízení byly uloženy v paměti ROM rozšiřující karty a hostitelský systém přidělil kartě potřebné prostředky během spouštění. Architektura Zorro nebyla široce přijata průmyslem a byla z velké části nevyužita mimo produktovou řadu Amiga . Byl však postupně upgradován na Zorro II a 32bitový Zorro III .
V roce 1987 IBM vydala aktualizovanou řadu modelů IBM PC , známou jako rodina Personal System/2 , využívající novou rozšiřující sběrnici, Micro Channel Architecture [7] . PS/2 byl schopen plně automatické sebekonfigurace . Každé z rozšiřujících zařízení bylo dodáno s disketou obsahující speciální soubor pro konfiguraci systému. Uživatel nainstaloval rozšiřující desku, zapnul počítač, vložil disketu a počítač automaticky přiřadil přerušení, kanály DMA a další prostředky požadované deskou.
Ve srovnání s implementacemi ve výše zmíněných systémech mělo toto schéma automatické konfigurace jednu nevýhodu: disketa se mohla poškodit nebo ztratit a jediný způsob, jak obnovit potřebný soubor nastavení, bylo obdržet jej od společnosti poštou nebo stáhnout z IBM BBS . Bez disku bylo nové zařízení zcela k ničemu a počítač nemohl správně nabootovat, dokud nebylo zařízení odpojeno od rozšiřující sběrnice. Výhodou tohoto přístupu byla zároveň teoretická možnost aktualizovat informace nutné pro provoz zařízení.
Sběrnice MCA nezískala širokou podporu [8] , protože IBM zabránila jejímu použití nezávislými výrobci počítačů kompatibilních s IBM-PC . Každý z vývojářů zařízení kompatibilních s MCA podepsal smlouvu o mlčenlivosti s IBM a musel za každé zařízení platit licenční poplatky, což zvýšilo jejich náklady.
Standard EISA, vydaný konsorciem devíti výrobců počítačů kompatibilních s IBM-PC , byl umístěn jako alternativa k MCA. Měl extrémně podobnou implementaci Plug and Play založenou na konfiguračních souborech dodaných s disketami. Na rozdíl od MCA se však počítač s nenakonfigurovaným zařízením EISA mohl stále spustit a pokračovat bez přístupu softwaru k zařízení.
Stejně jako Micro Channel, ani EISA nebyla široce přijata a samotná technologie a na ní založená implementace plug and play nebyly dále rozvíjeny.
Sběrnice ISA se objevila dříve, než se do systémů, které ji využívají, začala zavádět technologie Plug and Play. V tomto ohledu rozšiřující karty pracující s touto sběrnicí využívaly širokou škálu konfiguračních technik, včetně propojek, DIP přepínačů, proprietárních ovladačů a utilit a dalších metod v různých kombinacích. Vzhled Plug and Play karet ve formě specifikace od Microsoftu tento systém dále zkomplikoval, zejména proto, že různé operační systémy implementovaly Plug and Play různými způsoby.
Závažnost problému s nastavením ISA karet pro koncové uživatele byla odstraněna nikoli zavedením Plug and Play, ale postupným odchodem tohoto standardu z širokého oběhu. Zmíněná specifikace Microsoft ISA PnP, známá také jako Legacy Plug and Play , obsahovala požadavky jak na úpravy hardwaru, tak BIOSu a chování operačního systému. Ztratil svůj význam, protože se rozšířil standard PCI , ve kterém byla původně implementována technologie Plug and Play.
V roce 1995 Microsoft vydal Windows 95 , který se poprvé pokusil automatizovat detekci nainstalovaných zařízení a jejich konfiguraci. V rozsahu, v jakém to bylo obecně možné a při implementaci režimu návratu k manuální konfiguraci systému, je-li to nutné. Během počátečního instalačního procesu Windows 95 se pokusil zpočátku identifikovat všechna zařízení nainstalovaná v systému. Vzhledem k tomu, že tento proces nebyl plně podporován průmyslem a neměl zpětnou kompatibilitu, operační systém zapsal protokol, ve kterém označil pokusy o autodetekci zařízení. Pokud v důsledku tohoto postupu počítač zamrzl, měl uživatel stále možnost vynutit si jeho restart. Proces automatické detekce konfigurace počítače během jeho nového bootování pokračoval přeskočením jeho fáze, což dříve způsobilo zablokování. Systém tak mohl postupně projít procedurou zjišťování konfigurace počítače až do konce [9] .
Ačkoli původní implementace VMEbus nebyla Plug and Play, řada rozšíření a odvozených standardů, jako je VME64x, podporuje Plug and Play. Obecně lze situaci s konfigurací desek kompatibilních s VMEbus srovnat se situací u desek ISA - ne zcela akceptované standardy jsou kombinovány s privátními řešeními jednotlivých výrobců v libovolných kombinacích.
V současnosti je již dávno odstraněna hlavní akutnost problému s autodetekcí konfigurace počítačů operačním systémem pro univerzální počítače. Naprostá většina zařízení, rozšiřujících rozhraní a operačních systémů podporuje postupy Plug and Play.
Tato rozhraní zahrnují
a mnoho dalších.
Zároveň je ve většině případů uživatel zbaven kontroly nad složitostí nastavování svých zařízení a periferních rozhraní počítače. Například rozhraní jako FireWire a USB sdílejí šířku pásma mezi všemi zařízeními připojenými k určitému portu na tomto rozhraní, ale uživatel nemá žádnou kontrolu nad tím, jak je šířka pásma mezi těmito zařízeními sdílena. Poskytuje se automaticky prostřednictvím operačního systému.