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.
Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:01:28