Le terme Plug-and-Play (PnP) (Installez et Utilisez) a plusieurs sens. Au sens large c'est uniquement une auto-configuration o� l'on installe simplement un p�riph�rique et que celui-ci se configure par lui-m�me. Au sens o� je l'entends dans cet HOWTO, la configuration ne concerne que la configuration de la ressource PnP et la communication de l'information au pilote de p�riph�rique. Dans un sens plus �troit c'est simplement le param�trage des ressources des p�riph�riques. Cela peut aussi concerner les sp�cifications qui, (entre autres choses) indiquent comment les donn�es PnP de la ressource doivent �tre lues ou �crites dans les p�riph�riques (souvent des cartes) sur le bus ISA. Les sp�cifications du standard PCI (et non PnP) sont de m�me nature pour le bus PCI.
Le Plug-and_Play (PnP) met en relation les p�riph�riques et leurs pilotes et sp�cifie leurs "canaux" de communication. Sur le bus ISA, avant le Plug-and-Play, les ressources �taient configur�es sur le mat�riel par des cavaliers et les pilotes de p�riph�riques �taient assign�s aux ressources par des fichiers de configuration (ou quelque chose du m�me style) ou par des tests des p�riph�riques � des adresses o� ils �taient suppos�s se trouver. Le bus PCI a �t� compatible PnP d�s le d�but et il a �t� trivial d'impl�menter le PnP pour ce bus. Mais comme les sp�cifications du bus PCI n'utilisent pas le terme PnP on ne sait pas si l'on doit dire que le bus PCI est PnP (mais il supporte le mat�riel que l'on appelle aujourd'hui PnP).
Voici une explication tr�s simple de la fa�on dont fonctionne le PnP. Le programme de configuration PnP (�ventuellement un programme du BIOS) recherche tous les p�riph�riques PnP et demande � chacun les ressources du bus dont il a besoin. Ensuite, il regarde les ressources du bus (IRQs, etc.) qu'il doit attribuer. Bien s�r, s'il y a des ressources du bus r�serv�es par des p�riph�riques (anciens) non PnP (dont il a connaissance), il ne les attribue pas. Puis il utilise un certain crit�re (non pr�cis� dans les sp�cifications PnP) pour attribuer les ressources de fa�on � ce qu'elles n'entrent pas en conflit et que tous les p�riph�riques obtiennent ce dont ils ont besoin. Il indique alors � chaque p�riph�rique physique quelles ressources du bus lui ont �t� affect�es et chacun se configure alors pour n'utiliser que les seules ressources du bus qui lui ont �t� affect�es.
Par exemple, supposons qu'une carte carte ait besoin d'une interruption (d'un num�ro d'interruption) et de 1 MB de m�moire partag�e. Le programme PnP lit cette requ�te dans la carte. Il attribue alors le num�ro d'interruption 5 (IRQ 5) et un m�ga-octet d'espace m�moire � partir de l'adresse 0xe9000000. Ce n'est pas toujours aussi simple car la carte peut utiliser uniquement certains num�ros d'interruption (seulement pour ISA) ou n'accepter qu'un certain domaine d'adressage. Les d�tails sont diff�rents pour les bus ISA et PCI, les choses �tant plus complexes pour le bus ISA
Le logiciels PnP peut utiliser quelques raccourcis. L'un d'entre eux consiste � garder une trace de la mani�re dont il a assign� les ressources du bus lors de la derni�re configuration (lors de la derni�re utilisation de l'ordinateur) et la r�utiliser. Windows9x et les BIOS PNP le font mais ce n'est pas le cas du Linux standard. Windows9x enregistre ces informations dans ses "Registres" sur le disque dur et un BIOS PnP le fait dans la m�moire non volatile de votre PC (connu sou le nom d' ESCD; voir La Base de donn�es ESCD du BIOS).
Sous Linux, c'est le r�gne du "chaque p�riph�rique pour lui-m�me" et il n'existe aucun registre centralis� des affectations de ressources. Certains pilotes de p�riph�riques enregistrent la derni�re configuration qu'ils ont utilis� et la r�utilisent � la prochaine remise en route de l'ordinateur. Implicitement, ils consid�rent que le reste du mat�riel n'aura pas besoin d'utiliser ses ressources du bus.
Si les p�riph�riques se souvenaient de leur configuration pr�c�dente, il n'y aurait aucun mat�riel pour les reconfigurer au prochain d�marrage, mais ils semblent oublier leur configuration lorsque l'on stoppe l'alimentation. Certains p�riph�riques ont une configuration par d�faut (mais pas n�cessairement la derni�re utilis�e). Le programme de configuration PnP doit �tre ex�cut� � chaque mise sous tension du PC. De m�me, si l'on ajoute un nouveau p�riph�rique, celui-ci a besoin d'�tre configur�. L'allocation de ressources du bus � ce nouveau p�riph�rique peut n�cessiter d'en enlever � un p�riph�rique existant et de donner � celui-ci des ressources du bus diff�rentes qu'il pourra utiliser � la place.
Lors de la mise sous tension initiale du PC le circuit BIOS ex�cute son programme pour d�marrer l'ordinateur (la premi�re �tape consistant � tester le mat�riel). Si le syst�me d'exploitation est stock� sur le disque dur (ce qui constitue le cas normal), le BIOS doit trouver le disque dur. Si le disque dur est PnP, alors le BIOS doit utiliser une m�thode PnP pour le trouver. Donc, pour permettre � l'utilisateur de configurer manuellement la m�moire CMOS du BIOS et de r�agir aux messages d'erreur apparaissant au d�marrage de l'ordinateur, un �cran (une carte vid�o) et un clavier sont �galement n�cessaires. Donc, le BIOS doit configurer, selon la proc�dure PnP, ces p�riph�riques lui-m�me.
Une fois que le BIOS a identifi� le disque dur, la carte vid�o et le clavier il est pr�t � entamer le processus de d�marrage (chargement du syst�me d'exploitation du disque dur vers la m�moire centrale). Si vous avez indiqu� � votre BIOS que vous aviez un syst�me d'exploitation PnP (SE PnP ou PnP OS), il devrait commencer � d�marrer le PC de la mani�re indiqu�e ci-dessus et laisser le soin de terminer la configuration PnP au syst�me d'exploitation. Autrement, un BIOS-PnP essaiera de r�aliser le reste de la configuration PnP des p�riph�riques avant le chargement du syst�me d'exploitation (mais ne chargera pas leurs pilotes).
Le bus ISA est le vieux bus du vieil IBM PC alors que le bus PCI est un bus plus r�cent et plus rapide de Intel. Le bus PCI a �t� con�u pour ce que l'on appelle aujourd'hui le PnP. Il est facile (si l'on compare au bus ISA) de voir comment les ressources du bus ont �t� assign�es aux p�riph�riques. Pour voir comment cela s'est pass� consulter le "fichier" /proc/pci (/proc/bus/pnp/devices pour les noyaux 2.2+), les messages de d�marrage sur votre �cran (utilisez shift-PageUp pour revenir en arri�re), ou utilisez les utilitaires PCI (pour les noyaux 2.2+).
Pour ce qui concerne le bus ISA, il y a un vrai probl�me pour impl�menter le PnP car personne n'y pensait lors de la conception de ce bus et il n'y a pratiquement pas d'adresse d'E/S disponible pour communiquer les informations de configuration aux p�riph�riques physiques. Il en r�sulte que la mani�re dont le PnP a �t� implant� sur le bus ISA est tr�s compliqu�e. Un livre entier a �t� r�dig� � ce sujet. Voir Le livre du PnP. Entre autres choses, le programme PnP doit attribuer � chaque p�riph�rique PnP un "identificateur" provisoire de fa�on � pouvoir l'adresser pour la configuration PnP. L'assignation de ces "identificateurs" provisoires est appel�e "isolation". Voir Isolation pour de plus amples d�tails.
Finalement, le bus ISA finira par dispara�tre. Ce jour l�, le PnP deviendra plus simple puisqu'il sera facile de voir comment le BIOS a configur� le mat�riel. Il restera cependant n�cessaire de mettre en correspondance les p�riph�riques et leurs pilotes ainsi que de configurer les p�riph�riques ajout�s alors que le PC est en fonctionnement. Ces besoins seraient satisfaits si Linux �tait un syst�me d'exploitation PnP.
Le PnP (pour le bus ISA) a �t� invent� par Compaq, Intel et Phoenix. Microsoft a �t� un des leaders de sa promotion. Linux aurait �t� meilleur si le PnP n'avait jamais �t� "invent�". Finalement, le bus ISA aura disparu et le bus PCI � la mode PnP pr�vaudra de sorte que nous aurons alors un PnP facile � implanter. Mais, que l'on veuille ou pas, la plupart des nouveaux mat�riels ISA aujourd'hui sont PnP et Linux ne peut pas faire autrement que de g�rer efficacement le PnP. Cependant le Linux standard (celui du d�but 1999) rend la gestion du PnP compliqu�e (sp�cialement pour le bus ISA) alors que le but du PnP �tait de rendre les choses faciles.
D'une certaine fa�on, Linux est un peu PnP pour le bus PCI. Quand le PC d�marre vous pouvez noter, en lisant les messages sur la console, que certains pilotes de p�riph�riques Linux trouvent leurs p�riph�riques (et les ressources du bus que le BIOS leur a attribu�). Mais il y a des situations o� un syst�me d'exploitation PnP pourrait prendre les choses en compte de mani�re plus satisfaisante :
Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:01:43