Page suivantePage pr�c�denteTable des mati�res

3. G�n�ralit�s

Tous les processus sous Unix poss�dent un environnement. C'est une liste de variables contenant un nom et une valeur, les deux sous la forme de cha�nes (pouvant contenir la majorit� des caract�res). Tous les processus Unix poss�dent un processus parent, celui qui les a cr��s. Les processus fils h�ritent de l'environnement de leurs parents. Ils peuvent ensuite y faire quelques modifications avant de le passer � leurs propres processus fils.

Une variable importante de l'environnement est la variable PATH qui se pr�sente sous la forme d'une liste de r�pertoires s�par�s par le caract�re deux-points (':'). Ces r�pertoires sont parcourus pour rechercher les commandes. Si vous essayez de lancer la commande bidule, tous les r�pertoires contenus dans PATH seront examin�s (dans l'ordre), � la recherche de l'ex�cutable bidule (un fichier avec le bit ex�cutable positionn�). Si un tel fichier est trouv�, il sera ex�cut�.

Dans ce document, j'utilise le terme de commande pour un programme ex�cutable qui est appel� sans indication de son chemin, utilisant donc le m�canisme de PATH.

Sous Linux, m�me les appels de bas niveau pour lancer des processus (la famille des exec) se basent sur la variable PATH pour trouver les ex�cutables : vous pouvez donc utiliser le m�canisme de PATH n'importe o�, o� vous voulez ex�cuter une commande. Si un appel de exec re�oit le nom d'un fichier qui ne contient pas de '/', il cherchera dans la variable d'environnement PATH. M�me si cette variable n'existe pas, les r�pertoires /bin et /usr/bin seront examin�s � la recherche de cette commande.

Pour cr�er ou modifier l'environnement, on utilisera export avec sh ou setenv avec csh. Par exemple :

 sh:
 export PATH=/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games:.
 csh:
 setenv PATH /usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games:.
Les programmes C peuvent utiliser la fonction setenv() pour modifier l'environnement. Perl, quand � lui, conserve l'environnement dans le tableau associatif %ENV, et vous pouvez donc modifier PATH avec :
 $ENV{PATH}="/bin"
La commande env est le moyen le plus facile pour conna�tre les variables de l'environnement courant. Elle peut �galement �tre utilis�e pour les modifier.

Pour trouver plus d'information sur les commandes d'acc�s � l'environnement, vous pouvez regarder les pages de manuel de environ, execl, setenv, le fichier info env, ainsi que la documentation des shells.

Quand Linux d�marre, le premier processus a �tre lanc� est init. C'est un processus particulier car il n'a pas de parent. De plus, il s'agit de l'anc�tre de tous les autres processus. Son environnement restera celui des autres processus tant qu'ils ne le modifieront pas. La plupart le modifieront.

Le programme init lance un groupe de processus sp�cifi�s dans le fichier /etc/inittab. Ces processus travaillent dans un environnement directement h�rit� de init. Ce sont d'habitude des processus comme getty, le programme qui �crit 'login:' � l'�cran. Si vous lancez une connexion PPP ici, vous devez savoir que vous travaillez avec l'environnement de init. L'initialisation du syst�me est souvent effectu�e par un script lanc� � cet endroit. Dans le cas de la Debian 1.3, il s'agit de /etc/init.d/rc qui est charg� de lancer � son tour, les scripts d'initialisation.

Le syst�me comprend plusieurs d�mons qui peuvent ou non utiliser l'environnement par d�faut. La plupart de ceux-ci sont lanc� par les scripts d'initialisation et poss�dent donc l'environnement de init.

Quand un utilisateur se connecte, l'environnement est modifi� par les param�tres contenus dans les programmes, les scripts d'initialisation communs � tous, et ceux sp�cifiques � l'utilisateur. C'est assez compliqu� et la situation n'est pas compl�tement satisfaisante. En effet, le comportement est totalement diff�rent suivant que l'utilisateur se connecte � partir du terminal texte, de XDM ou du r�seau.


Page suivantePage pr�c�denteTable des mati�res

Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:01:28