Pour répondre à cette question, vous devez
être membre de Doc-étudiant

Si ce n'est pas encore fait ?

Inscrivez-vous !

Quelles sont les structures fondamentales des systèmes de fichiers UNIX ?

22 Janvier 2009 | Informatique | BTS

Quelles sont les structures fondamentales des systèmes de fichiers UNIX ?

joselito

44 points

Signaler un abus
Salut, je te recommande la lecture de ce document : http://questions.digischool.fr/Informatique-qr/Quelles-sont-les-structures-fondamentales-des-systemes-de-fichiers-UNIX-3600.html sur questions.digischool.fr.
Quelles sont les structures fondamentales des systèmes de fichiers UNIX ?

Les réponses à la question Quelles sont les structures fondamentales des systèmes de fichiers UNIX ?

1

24 Janvier 22h02

Les systèmes Linux adoptent tous une architecture standard pour l'organisation des fichiers. En effet, l'arborescence de fichiers respecte à quelques détails près le FHS (Filesystem Hierarchy Standard), un document de référence, établi dans le but d'homogénéiser la structure des systèmes de fichiers UNIX 1. Dans cet article, nous allons passer en revue la plupart des répertoires décrits dans le FHS, afin de bien comprendre le rôle de chacun.1 Vous trouverez le document complet de la description de ce standard à l'adresse suivante : http://www.pathname.com/fhs/. Les répertoires /bin et /sbin Le répertoire /bin contient des fichiers exécutables (fichiers "binaires"). Rien à voir avec une quelconque corbeille... Il s'agit en fait des commandes de base, fréquemment employées par les utilisateurs (et par l'administrateur du système), notamment pour effectuer des opérations sur les fichiers (ls, more, cat, cp, rm, chmod, grep, mkdir, mount, kill, tar, gunzip, etc.). En outre, ces commandes peuvent être utilisées par certains programmes. Ce répertoire contient également quelques liens symboliques pointant vers des programmes se situant dans un autre répertoire. Remarquez en particulier le lien /bin/sh (sh pour shell), un lien symbolique pointant en général vers /bin/bash (Bash étant l'interpréteur de commandes du projet GNU). Le répertoire /sbin contient lui aussi des fichiers exécutables (reboot, lsmod, modprobe, etc.) à la différence près que les utilitaires ne sont pas compilés de la même manière que dans /bin. Ils sont compilés de manière statique (sbin pour static binary), ce qui signifie qu'ils sont totalement autonomes et ne nécessitent aucune bibliothèque supplémentaire. En revanche, les utilitaires du répertoire /bin sont compilés en dynamique : les bibliothèques contenant les phrases qu'ils utilisent doivent être impérativement installées sur le système. En outre, les commandes contenues dans /sbin sont réservées exclusivement au super-utilisateur alors que les commandes contenues dans /bin peuvent être employées par tous les utilisateurs. Un système de fichiers est une structure dans laquelle les fichiers sont organisés dans des répertoires, qui eux-mêmes sont organisés de façon hiérarchique. L'arborescence de fichiers ainsi constituée peut contenir plusieurs systèmes de fichiers. Le répertoire racine / se trouve au sommet de cette arborescence. Il contient de nombreux répertoires que nous allons détailler ici. Pour visualiser le contenu de la racine, entrez les commandes cd /puis ls dans un terminal, ou bien ouvrez votre navigateur de fichiers graphique, puis cliquez sur Système de fichiers. Le répertoire /boot Ce dossier contient des fichiers nécessaires au démarrage du système. En d'autres termes, il contient la base même du système : le noyau Linux. On y trouve aussi des fichiers de ressources pour Grub. Grub (Grand Unified Bootloader) est un programme chargé de démarrer le système (tout comme Lilo, Linux Loader). Il est capable de reconnaître et de démarrer de multiples systèmes de fichiers. Un menu graphique peut être affiché au démarrage : cette interface vous permet en général de choisir quel système d'exploitation ou distribution vous souhaitez démarrer, autrement dit, quelle partition du disque doit être lancée. Le fichier de configuration de Grub est /boot/grub/menu.lst. Le répertoire /etc Le nom de ce répertoire est à traduire par Editing Text Config. Il contient en effet tous les fichiers de configuration du système et les principaux scripts de démarrage. Tous sont des fichiers textes simples, que vous pouvez modifier avec n'importe quel éditeur de texte. Explicitons plus en détail certains fichiers et répertoires contenus dans /etc... Le répertoire /etc/X11 concerne les scripts de configuration du serveur X. Le répertoire /etc/skel contient le "squelette" des fichiers d'utilisateurs, donné par défaut aux nouveaux utilisateurs qui reçoivent un compte. Ce répertoire peut contenir des sous-répertoires pour différents groupes d'utilisateurs. Les répertoires /etc/rc*.d contiennent des scripts de démarrage du système. Sous Linux, les fichiers de démarrage portent un nom commençant par "rc". Ils comportent un ensemble de commandes permettant le démarrage complet du système. Ces fichiers sont invoqués par le processus init selon le fichier de configuration /etc/inittab. Le fichier principal, rc, se trouve dans /etc/rc.d/rc (Red Hat) ou dans /etc/init.d (Debian, Ubuntu), le chemin peut être différent selon votre distribution. Le répertoire /etc/apt/ concerne la mise à jour des packages Debian (donc spécifiques aux distributions Debian et dérivées) ; vous y trouverez notamment le fichier sources.list qui désigne les différents dépôts de paquets pour Debian (et distributions dérivées). Les répertoires /etc/apache2 et /etc/mysql contiennent respectivement les fichiers de configuration de votre serveur web Apache et de votre serveur de base de données MySQL. Le répertoire /etc contient par ailleurs divers fichiers relatifs à la connexion réseau comme le fichier /etc/hostname, qui accueille l'alias de votre machine, le fichier /etc/hosts qui permet de définir la correspondance entre les adresses IP des machines du réseau et leur nom d'hôtes, et les fichiers /etc/hosts.allow et /etc/hosts.deny qui respectivement autorisent ou interdisent l'accès du système (l'utilisation de services) à certaines machines (adresses IP). Le répertoire /etc peut également contenir un fichier de configuration du bootloader Lilo (lilo.conf). Le fichier /etc/anacrontab définit les tâches qui doivent être exécutées périodiquement, à des moments bien précis (en général pendant la nuit si votre machine reste allumée ou pendant le démarrage du système). Pour chaque tâche évoquée dans ce fichier, Anacron vérifie si le travail a été effectué dans les x derniers jours (valeur spécifiée dans le fichier). Si ce n'est pas le cas, Anacron exécute la commande associée à ladite tâche. Une fois la tâche effectuée, Anacron enregistre la date du jour dans un fichier du répertoire /var/spool/anacron. Le fichier /etc/group définit tous les groupes du système. Chaque ligne du fichier désigne un groupe, et contient quatre champs dans cet ordre : le nom du groupe, le mot de passe associé au groupe, le GID (qui détermine les permissions sur les fichiers), la liste des utilisateurs appartenant au groupe. Le fichier /etc/passwd contient toutes les informations relatives aux comptes utilisateur (login, mot de passe, UIG, GID, nom complet, répertoire personnel, le programme lancé à la connexion). Ce fichier est primordial ! Sans lui, il vous sera impossible d'utiliser votre système. Le fichier de configuration /etc/modules.conf regroupe les paramètres éventuels à passer lors du chargement des modules du noyau. Enfin, il est possible de définir les montages des différents systèmes de fichiers grâce au fichier /etc/fstab. Il fait l'inventaire des divers systèmes de fichiers que le noyau Linux est susceptible de gérer, précise la façon de les monter, s'ils doivent l'être au démarrage, etc. Ainsi, si toutes les informations nécessaires au montage d'un système de fichiers se trouvent dans ce fichier, seul le nom du périphérique ou du point de montage suffira pour monter le système de fichiers associé. Comme vous pouvez le voir sur la capture correspondante, chaque ligne de la "table de montage" présente les champs suivants : le nom du périphérique ou son libellé ; le point de montage ; le type du système de fichiers (ext3, swap, vfat, iso9660, etc.) ; les différentes options de la commande de montage mount ; une indication pour la commande de sauvegarde dump ; l'ordre de vérification du système de fichiers au démarrage par fsck. Le répertoire /home C'est certainement le répertoire que vous utilisez le plus souvent. Ce répertoire est votre répertoire de travail, ou plus généralement, le répertoire de travail de tous les utilisateurs de l'ordinateur. Vous y trouverez un dossier pour chaque utilisateur (nommé en général par votre login) : /home/francois/, /home/isabelle/, etc. Et c'est dans votre répertoire /home/votre_login/ que vous stockez vos fichiers textes, vos documents PDF, vos photos et vidéos, vos fichiers de musique, etc. Vous y trouverez aussi vos propres fichiers de configuration, autrement dit vos paramètres d'utilisation des diverses applications. Ces derniers apparaissent sous forme de fichiers ou répertoires cachés (leur nom commence par un point). Il faut saisir la commande ls -a pour pouvoir les lister, ou bien sélectionner Afficher les fichiers cachés dans votre navigateur graphique. Ex : /home/login/.evolution/, /home/login/.gimp-2.2/, /home/login/.mozilla/, /home/login/.audacity, /home/login/.grip, etc. Remarque : lors de l’installation de votre distribution, il est assez pertinent d’installer le répertoire /home sur une partition distincte du reste du système. De cette manière, les données utilisateurs et les données système sont clairement séparées. Le répertoire /root Comme vous l'avez peut-être deviné, ceci est le répertoire personnel du super-utilisateur (root). C'est l'équivalent d'un répertoire /home, mais celui-ci est réservé à l'administrateur du système. Le répertoire /lib Ce répertoire contient les bibliothèques nécessaires à l'exécution des fichiers binaires contenus dans les répertoires et /sbin, et utilisées également lors du processus de démarrage. Par conséquent, les répertoires /bin, /sbin et /lib sont fondamentaux pour votre système. En particulier, vous trouverez les fichiers de code compilé des modules de votre noyau dans le sous-répertoire nommé /lib/modules/version_noyau/... /bin Le répertoire /dev Ce répertoire contient des fichiers spéciaux, qui permettent au système de communiquer avec les divers périphériques : disques durs, souris, carte son, etc. (dev pour device, qui signifie périphérique). Ces fichiers sont donc essentiels pour le bon fonctionnement du système. Ces fichiers spéciaux sont créés au moment de l'installation. Les noms de ces fichiers respectent une certaine nomenclature. Ainsi, les fichiers relatifs aux lecteurs de disquettes sont /dev/fd* (fd pour floppy disk), pour les disques durs non SCSI, il s'agit de /dev/hda* et /dev/hdb*, pour les disques durs SCSI : /dev/sda* ou /dev/sdb*. Enfin, les fichiers /dev/tty* concernent les modems et autres périphériques série. Chacun des fichiers est caractérisé par un couple de numéros appelé " majeur/mineur ". Ces deux numéros permettent au noyau du système d'identifier le type de périphérique associé au fichier. Le répertoire /dev contient aussi, sur la plupart des distributions, un script nommé MAKEDEV capable de créer des fichiers spéciaux lors de l'ajout de nouveaux pilotes de périphériques. Par ailleurs, /dev abrite un fichier très spécial, il s'agit du fichier /dev/null. Toute donnée qui y est inscrite disparaît immanquablement. En quelque sorte, ce fichier fait office de poubelle. Les programmeurs s'en servent parfois pour rejeter la sortie standard d'une ligne de commande. Le répertoire /proc Ce répertoire est considéré comme un "pseudo-répertoire". Il contient en fait une image de votre système. Plus précisément, c'est un système de fichiers virtuel qui représente l'état de votre système et des processus en cours d'exécution. Pour chaque processus lancé, un sous-répertoire est créé dans /proc/. Note : Un article entièrement consacré à /proc est paru dans Linux Pratique n°33. Je vous invite à le consulter pour de plus amples informations. Les répertoires /mnt et /media Le système se sert du répertoire /mnt pour effectuer le montage des partitions externes. Il est vide ou peut contenir quelques répertoires vides prédéfinis, comme /mnt/floppy/ ou /mnt/cdrom/, prévus respectivement pour le montage du lecteur de disquettes et le lecteur de CD-Rom. Notez que ces répertoires peuvent varier d'une distribution à l'autre ; parfois, il est possible de les trouver dans le répertoire /media. En fait, le répertoire /media est réservé généralement au montage des périphériques dits " amovibles " (lecteur de disquette et de CD-Rom, clef USB, etc.) et /mnt sert essentiellement à l'administrateur système pour le montage temporaire de systèmes de fichiers. Le répertoire /lost+found Ce répertoire est créé automatiquement au démarrage de votre système. Il est utilisé par l'outil de vérification fsck (File System Check) pour le stockage des fichiers récupérés suite à un incident sur le système (plantage, coupure de courant, etc.). Ce répertoire est censé être vide. Le répertoire /opt C'est dans ce répertoire que s'effectue l'installation d'applications supplémentaires. Plus précisément ce répertoire permet de stocker des paquetages de logiciels statiques de grande taille. L'avantage, c'est que /opt fournit un système organisationnel logique. Lorsqu'un paquetage est installé dans /opt, il crée automatiquement un répertoire portant le nom du paquetage, qui va contenir tous les fichiers inhérents au paquetage en question. Par exemple, le paquetage exemple sera contenu dans le répertoire /opt/exemple/, lequel contiendra des sous-répertoires du type /opt/exemple/bin, /opt/exemple/man, etc. De cette façon, l'administrateur système s'y retrouve plus facilement et comprend mieux le rôle des différents fichiers du paquetage. Le répertoire /srv Ce répertoire renferme des données spécifiques concernant les différents services disponibles sur le serveur. Les données y sont en général classées par protocole (ftp, www, cvs, etc.). Le répertoire /tmp C'est dans ce répertoire que le système va stocker tous les fichiers temporaires dont il a besoin. Notez que tous les utilisateurs du système peuvent déposer un fichier dans ce répertoire, mais sachez que ce répertoire est régulièrement "nettoyé", en fonction de ce qu'aura paramétré l'administrateur du système. Pour une utilisation personnelle, il est préférable de créer et utiliser un répertoire /tmp dans son répertoire /home, sur lequel on pourra contrôler la suppression des fichiers. Le répertoire /usr Ce répertoire est l'un des plus importants car il renferme toutes les ressources du système (usr pour Unix System Resources). En outre, c'est le répertoire (avec votre répertoire personnel /home), qui occupe le plus de place sur votre disque dur. Il contient lui-même plusieurs sous-répertoires : Dans /usr/bin/, vous trouverez les fichiers exécutables de toutes les applications installées sur votre système grâce au gestionnaire de paquets (deb ou rpm). Ces utilitaires seront donc spécifiques à votre distribution. Parallèlement, le dossier /usr/lib/ renferme les bibliothèques associées aux exécutables contenus dans le dossier /usr/bin/. Le répertoire /usr/include/, quant à lui, contient les fichiers d'en-tête (issus de l'installation éventuelle de versions de développement des bibliothèques). Par conséquent, ce répertoire est utile lors de la compilation de programmes. Le répertoire /usr/X11R6/ contient des fichiers relatifs au système de fenêtrage X Window (bibliothèque, fichiers exécutables, etc.) Le répertoire /usr/share/ contient les ressources partagées par tous les logiciels qui se trouvent dans le répertoire /usr/bin/. Si vous jetez un œil au contenu, vous constaterez qu'un répertoire a été créé pour chaque logiciel. Chacun contient divers éléments propres au logiciel (documentation utilisateur, icônes, etc.). Vous y trouverez aussi des fichiers d'internationalisation (dans /usr/share/locale/). Si vous avez besoin d'aide, vous disposez au choix du répertoire /usr/share/man/ contenant toutes les pages du manuel de commandes (que vous pouvez consulter à l'aide de la commande man), /usr/share/doc/ ou encore /usr/share/info/. Ces derniers étant fournis par les développeurs des différentes applications pour vous aider dans leur découverte et leur utilisation. Dans le répertoire /usr/share/icons/, vous trouverez toutes les icônes et images utilisées dans vos applications favorites, ou par votre environnement de bureau. Le répertoire /usr/local/ peut être assimilé à /usr/. En effet, il contient exactement la même arborescence. Cependant, le répertoire /usr/local/ n'est pas géré par votre gestionnaire de paquets, mais dépend des logiciels que vous installez à partir des sources, ou installés via leur propre mode d'installation. Le répertoire /usr/games/ devrait contenir tous les jeux installés par défaut sur votre système. Le répertoire /usr/src/ est destiné, quant à lui, à accueillir les sources des logiciels qui sont sous licence libre. Le répertoire /var Ce dossier renferme les données " variables " liées à la machine : travaux d'impression, traces de connexions HTTP, fichiers journaux, etc. Bien évidemment, la taille de ce répertoire dépend des services lancés par le système. Les journaux système se trouvent dans le répertoire /var/log/. Tous les évènements survenus sur votre système y sont scrupuleusement inscrits (processus de démarrage du système, lancement des services et applications, les problèmes divers, etc.). En fait, chaque fichier de " log " peut être assimilé à un historique. D'ailleurs, il est toujours intéressant de consulter les fichiers de log en cas de plantage ou de dysfonctionnement de votre système. C'est un moyen simple de comprendre ce qu'il s'est passé, et éventuellement de pouvoir résoudre le problème. Le fichier /var/log/messages contient tous les messages d'ordre général concernant les services et les démons. Les heures de connexion et de déconnexion sont aussi inscrites dans ce fichier (même les échecs de connexion). Le répertoire /var/lock/ contient des fichiers, communément appelés fichiers " verrous ". Ces fichiers sont créés par les applications de type serveur (serveur Web, serveur FTP, etc.), de façon à empêcher que les programmes correspondants soient lancés plusieurs fois. Évidemment, ces fichiers sont effacés lorsque les programmes correspondants sont arrêtés. Le répertoire /var/spool/ regroupe les files d'attente des différents services : impression, messagerie électronique, planificateur de tâches, etc. Conclusion Vous connaissez à présent le rôle de l'essentiel des répertoires qui constituent l'arborescence de votre système de fichiers. Sachez que certaines distributions "étendent" la structure standard afin de prendre en charge certains fichiers spéciaux. Ainsi, la racine de votre système contient peut-être des répertoires qui ne sont pas évoqués ici. Le répertoire /initrd par exemple est un répertoire vide, utilisé comme point de montage pendant le processus de démarrage du système. Il est donc très important. Modifier l'un ou l'autre des fichiers évoqués dans cet article, et notamment les fichiers de configuration du système, peut être catastrophique lorsque l'on s'y prend mal, et votre système pourrait devenir inutilisable. Si vous souhaitez apporter l'une ou l'autre modification sur un fichier du système, il est toujours plus prudent d'en effectuer une copie au préalable. De cette manière vous pourrez toujours récupérer le fichier initial en cas de problème...
hichem1

hichem1

4 jetons

Donnez votre réponse agrave; la question Quelles sont les structures fondamentales des systèmes de fichiers UNIX ?

Noter la réponse

Nouvelles questions de Informatique

shimouma

12 points

11 Mai 23h38 | Informatique

Quelqu'un peut me guider pour ecrire un re...

je suis en cours de préparer mon rapport de pfe , et je sais pas comment ecrire un remerciment est ...

hutor

68 points

09 Avril 17h38 | Informatique

A quoi sert le processeur d'un ordinateur ?

Bonjour tout le monde, je ne comprends rien du tout en informatique et on me demande d'expliquer ...

Couic

47 points

03 Avril 11h34 | Informatique

Qu'est-ce qu'un protocole ssl ?

J'ai un exercice d'informatique à faire mais l'informatique et moi, ça fait deux. Je dois expliquer c...

Manue-M

93 points

30 Janvier 17h43 | Informatique

Qu'est-ce qu'un cms ? ?

Je voudrais savoir ce qu'est un CMS ? Enfin j'en entends parler parfois mais impossible de savoir...

munic

67 points

20 Décembre 17h42 | Informatique

A quoi sert java script ?

Qu'est-ce que java script ? A quoi cela sert -il est-ce que tous les pc l'ont ? Est-ce un élément e...

Je m'inscris