Page suivantePage pr�c�denteTable des mati�res

4. Que se passe-t-il lorsque vous ex�cutez des programmes � partir du shell?

Le shell normal vous donne le prompt '$' que vous voyez apr�s vous �tre connect� (cependant vous pouvez le modifier et mettre autre chose). Nous ne parlerons pas de la syntaxe du shell et des choses faciles que vous pouvez voir sur votre �cran ici ; alors que nous 'jetterons un oeil' sur ce qu'il se passe du point de vue de l'ordinateur.

Apr�s la phase de boot et avant que vous n'ex�cutiez un programme, vous pouvez penser � votre ordinateur comme �tant un zoo de processus qui attendent qu'il se passe quelque chose. Ils attendent des �v�nements. Un �v�nement, ce peut �tre l'enfoncement d'une touche ou un d�placement de la souris. Ou, si votre machine est connect�e � un r�seau, un �v�nement peut �tre un paquet de donn�es venant de ce r�seau.

Le noyau est un de ces processus. C'en est un sp�cial, car il contr�le le moment o� les autres processus utilisateur peuvent s'ex�cuter, et c'est normalement le seul processus qui acc�de directement au mat�riel de la machine. En fait, les processus utilisateurs font des requ�tes au noyau lorsqu'ils veulent obtenir une entr�e clavier, �crire sur votre �cran, lire ou �crire sur votre disque ou juste autre chose que consommer quelques bits en m�moire. Ces requ�tes sont appel�es appels syst�me.

Normalement toute Entr�e/Sortie passe par le noyau de mani�re � ce qu'il puisse ordonnancer les op�rations et �viter ainsi aux processus de se marcher les uns sur les autres. Quelques processus utilisateur sont autoris�s � contourner le noyau, habituellement en ayant acc�s directement aux ports d'Entr�e/Sortie. Les serveurs X (les programmes qui traitent les requ�tes graphiques des autres programmes sur la plupart des machines Unix) sont des exemples classiques. Mais nous n'avons pas vu de serveur X pour l'instant ; vous �tes au prompt du shell sur une console en mode caract�res.

Le shell est juste un processus utilisateur, et non un processus particuli�rement sp�cial. Il attend vos frappes sur les touches du clavier, �coutant (� travers le noyau) le port d'E/S du clavier. Comme le noyau les voit, il les affiche sur votre �cran et les passe au shell. Le shell essaie de les interpr�ter comme �tant des commandes.

Tapez `ls' suivi de `Enter' afin de lister le contenu d'un r�pertoire. Le shell applique ses r�gles internes pour �valuer la commande que vous voulez ex�cuter dans le fichier `/bin/ls'. Il fait un appel syst�me en demandant au noyau de lancer `/bin/ls' comme un processus fils et donne son acc�s � l'�cran et au clavier � travers le noyau. Le shell se rendort en attendant que 'ls' se termine.

Lorsque /bin/ls est termin�, il dit au noyau qu'il a termin� en effectuant un appel syst�me exit. Le noyau r�veille le shell et lui dit qu'il peut continuer � s'ex�cuter. Le shell affiche un autre prompt et attend une autre ligne en entr�e.

D'autres choses peuvent �tre faites pendant l'ex�cution de `ls', cependant (nous supposerons que la liste du r�pertoire est tr�s longue). Vous pourriez basculer sur une autre console virtuelle, vous connecter, et lancer une jeu de Quake par exemple. Ou bien, supposez que vous �tes connect� � Internet : votre machine peut envoyer ou recevoir des mails pendant que `/bin/ls' s'ex�cute.


Page suivantePage pr�c�denteTable des mati�res

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