Précédent Index Suivant

2.2   Les objets d'UNIX

UNIX distingue des flux, des tâches et des fichiers. Un fichier (file) est une suite ordonnée d'octets. La taille maximale des fichiers est bien sûr limitée par la taille physique des mémoires qui les retiennent. Un fichier peut contenir n'importe quelle séquence d'octets et en particulier Un fichier peut être vide, c'est-à-dire exister et ne rien contenir !


Une tâche (process) est un programme en cours d'exécution. Un même programme peut être simultanément exécuté par plusieurs tâches : par exemple, plusieurs personnes peuvent user en même temps d'un même compilateur ou d'un même éditeur de texte. Une tâche naît, vit puis meurt. Une tâche peut même changer de programme support (cf. exec) sans pour cela devoir perdre la vie.

Une tâche effectue un certain travail en exploitant des flux (stream) pour en produire d'autres.


Un flux est une suite d'octets produite par un fichier ou une tâche en destination d'un fichier ou d'une tâche.


Tout agencement particulier de tâches, flux ou fichiers peut être mis en oeuvre par UNIX, notamment des choses aussi tératologiques que :


Quelques fichiers spéciaux existent qui mettent en oeuvre les périphériques. Ainsi /dev/tty est-il, pour chaque utilisateur, son ensemble clavier-écran : lire /dev/tty permet de lire les caractères frappés ; écrire sur /dev/tty permet inversement d'afficher des textes sur l'écran.

Lorsque le calculateur est mis sous tension, un processus d'amorçage (bootstrap) se déroule et met en place pour chaque utilisateur potentiel une tâche particulière associée à trois flux connectés à un fichier spécial : /dev/tty.



Le rôle de cette tâche particulière est de permettre, après connexion et divers autres réglages, la mise en oeuvre du noyau d'UNIX, c'est-à-dire la réalisation de schémas associant flux, fichiers et tâches. Elle lit les commandes frappées au clavier décrivant un schéma, les interprète c'est-à-dire détermine la suite des appels au noyau UNIX nécessaire pour former et lancer l'exécution du schéma souhaité (cf. « Presque le fin mot »).

Cette tâche est généralement une incarnation du programme /bin/sh et est connue sous le nom d'interprète de commandes ou shell. Le nom de shell (coquillage mais l'idée correspond mieux à celle d'un éventail) correspond à l'idée graphique suivante :


L'utilisateur se voit offrir un choix équanime entre tous les programmes accessibles. Tous les schémas concevables ne sont pas descriptibles en /bin/sh, mais la plupart des plus usuels le peuvent être.
Précédent Index Suivant