• Aucun résultat trouvé

L’ARBORESCENCE UNIX

Dans le document Td corrigé UNIX - Free pdf (Page 77-81)

3. SYSTEME DE GESTION DE FICHIERS

3.10 L’ARBORESCENCE UNIX

Les commandes non résidentes sont organisées dans des répertoires dont chacun a un rôle précis. Tout programmeur doit respecter l’organisation de l’arborescence pour faciliter la portabilité de logiciels. Une des fonctions de l’administrateur d’un système est de veiller à l’existence et à l’accessibilité des répertoires dont les noms sont quelquefois figés dans le code de certaines commandes.

Ci-dessous un schéma des répertoires standards traditionnels d’UNIX ainsi qu'une description des rôles des répertoires dédiés aux utilisateurs.

L ' A R B O R E S C E N C E U N I X S V R 4

s b i n g a m e s i n c l u d e l i b s h a r e s r c u c b b i n m a n e t c u c b l i b u c b i n c l u d e

m a n l i b / u s r

/ v a r

a d m m a i l n e w s p r e s e r v e s a f t m p c r o n o p t s p o o l u u c p

l p u u c p u u c p p u b l i c L e r é p e r t o i r e r o o t

e t c d e v e x p o r t t m p h o m e u s r l i b s t a n d m n t p r o c b i n s b i n

u n i x

Racine (root)

Au sommet de l’arborescence se trouve le répertoire root noté / qui sert de référence aux noms absolus des fichiers.

Il faut distinguer le sens du caractère / selon sa position dans le nom du fichier: à gauche, il représente la racine; ailleurs il sert de séparateur des différents répertoires référencés.

Chaque répertoire créé contient au moins deux entrées symbolisées par. qui représente le répertoire courant et par.. qui représente le répertoire parent. Une particularité du répertoire root est qu’il est le seul répertoire tel que. =.

3.10.1 Répertoires sous la racine

/mnt

Le rattachement par la commande /etc/mount d’un système de gestion de fichiers sur l’arborescence peut se faire sur un répertoire quelconque (les différentes partitions d’un disque sont ainsi montées à l’initialisation). Le répertoire /mnt, en général réservé pour le rattachement de systèmes de fichiers en provenance de supports amovibles externes (cartouches, lecteur de disquettes...). dont l’utilisation est en général temporaire (récupération de fichiers, copies, archivage...).

/lost+found

Chaque système de fichiers doit impérativement contenir le répertoire lost+found dans lequel sont transférés les blocs récupérés lors de l’exécution de la commande fsck, avec comme nom leur numéro d’inode.

/unix

Le fichier /unix (ou vmunix, hp-ux, vmlinuz, etc...) est le noyau du système. Les systèmes dotés plusieurs noyaux correspondant à diverses configurations doivent effectuer un lien au démarrage entre le noyau chargé et l’entrée /unix.

3.10.2 Commandes publiques

L’exécution d’un commande par l’interprète nécessite la consultation des répertoires dans l’ordre où ils sont définis dans la variable shell PATH.

/bin et /usr/bin

 Ces deux répertoires contiennent le binaire exécutable des commandes publiques.

 Leur utilisation était liée historiquement aux caractéristiques physiques des disques: un disque d’accès rapide mais de faible capacité pour le répertoire /bin contenait les commandes les plus utilisées, en particulier celles qui étaient nécessaires au démarrage (boot).

 Les autres commandes (dans le répertoire /usr/bin) étaient stockées sur un disque plus lent. Cette organisation subsiste aujourd’hui: elle permet d’équilibrer les échanges avec les disques et de faciliter la maintenance par la création de systèmes de fichiers gérés séparément.

 Il est conseillé à tout utilisateur de créer sous son répertoire de connexion un sous-répertoire bin pour y stocker ses propres commandes (binaires exécutables ou shell scripts). Il lui suffit alors d’ajouter

$HOME/bin à sa variable PATH. L’ordre des répertoires indiqués dans la variable PATH étant significatif (de gauche à droite), cela permet à l’utilisateur de réutiliser le nom des commandes publiques. C'est néanmoins déconseillé car cela oblige à donner un nom absolu pour accéder à la commande publique traditionnelle.

/5bin

Ce répertoire de l'environnement BSD contient les commandes compatibles SYSTEM V.

/usr/lbin

Ce répertoire contient des fichiers binaire locaux (ATT).

/usr/ucb et /usr/local/bin

 Le répertoire /usr/ucb contient les commandes compatibles BSD.

 Le répertoire /usr/local/bin contient des commandes spécifiques à un site.

 Une des taches de l’administrateur est de veiller à ce que les répertoires des commandes publiques soient accessibles par tous en lecture et que leur droit en écriture y soit limité au propriétaire (en général bin ou root).

3.10.3 Fichiers temporaires

/tmp et /usr/tmp

 L’utilisation de certains utilitaires (éditeurs, compilateurs) provoque la création de fichiers temporaires dont le répertoire standard est /tmp (pour les mêmes raisons qu’avec /bin et /usr/bin, certains utilitaires utilisent /usr/tmp), les versions actuelles tendant à éliminer cette particularité).

 Le répertoire /tmp doit avoir les droits rwx pour tous les utilisateurs. Il est utilisé par différents utilitaires pour y créer des fichiers temporaires lors d’édition de textes ou de compilation.

 Par convention, les noms des fichiers temporaires comportent le plus souvent deux parties: l’une littérale identifiant la fonction assurée, et l’autre numérique garantissant l’unicité du nom (souvent le PID du processus associé).

 Les utilitaires créant des fichiers dans le répertoire /tmp doivent normalement les détruire à leur terminaison.Toutefois, certains fichiers peuvent y subsister. Aussi lors du démarrage du système, le répertoire /tmp est normalement purgé. Il est judicieux de le charger directement en mémoire (ramdisk) ce qui permet une accélération importante des entrées/sorties qui l’utilisent. Attention au gros fichiers qui risquent alors de saturer la mémoire.

3.10.4 Bibliothèques

/lib et /usr/lib

Les bibliothèques standards d’UNIX sont stockés dans les répertoires /lib et /usr/lib (l’existence de deux répertoires provient des mêmes considérations historiques que pour /bin et /usr/bin).

Convention des noms des bibliothèques

Chaque bibliothèque a pour nom libxxx.a où xxx précise sa nature (c pour le langage C, f77 pour fortran...) et a le suffixe signifiant archive. Sur SYSTEM V R4, l’édition de liens dynamique est possible.

Dans ce cas, les bibliothèques concernées sont suffixées par.so (shared objects) ou .sl (shared library).

Ordre de recherche

Les sous programmes des bibliothèques sont examinées séquentiellement ce qui pose des problèmes si un sous-programme fait référence à un sous-programme placé avant lui. Il faut alors soit examiner deux fois la bibliothèque, soit la réorganiser pour garantir que toutes les références sont en avant. La répartition des bibliothèques entre /lib et /usr/lib dépend de l’implémentation sur chaque système en fonction des outils disponibles.

Commandes de gestion des bibliothèques

Il existe des bibliothèques pour les langages (C, PASCAL...), mathématiques (IMSL, NAG,...), graphiques (PHIGS,...), pour la gestion de terminaux, pour divers utilitaires (yacc, profil...), pour la génération du noyau. Des commandes spécifiques (ar, ranlib...) permettent de les gérer.

Autres répertoires

Les répertoires /lib et /usr/lib sont de plus en plus souvent complétés par des fichiers utilisables par tous de façon transparente, regroupés quelquefois en sous-répertoires. On trouve ainsi:

 les programmes associés aux différentes passes des compilateurs (cpp...) ainsi que les fichiers objets (crto.o...),

 les programmes et fichiers associés aux commandes uucp, learn... regroupés dans des sous répertoires du même nom,

 les macros utilisés par les utilitaires nroff et troff regroupées dans tmac,

 les caractéristiques des terminaux pour troff regroupées sous term,

 les polices de caractères (fontes) recroupées dans font,

 les fichiers associés au service cron regroupés dans cron (ou les fichiers crontab et atrun en version Berkeley),

 des fichiers isolés associés aux commandes calendar, lint, spell, units, cref, xref, yacc..

Dans le document Td corrigé UNIX - Free pdf (Page 77-81)