<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Tout est fichier</title><meta name="generator" content="DocBook XSL Stylesheets V1.64.0"><link rel="home" href="index.html" title="Manuel de référence"><link rel="up" href="ext2fs.html" title="Chapitre 9. Le système de fichiers Linux"><link rel="previous" href="ch09s01.html" title="Comparatif de quelques systèmes de fichiers"><link rel="next" href="ext2fs-ln.html" title="Les liens"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Tout est fichier</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch09s01.html">Précédent</a> </td><th width="60%" align="center">Chapitre 9. Le système de fichiers Linux</th><td width="20%" align="right"> <a accesskey="n" href="ext2fs-ln.html">Suivant</a></td></tr></table><hr></div><div class="sect1" lang="fr"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2554489"></a>Tout est fichier</h2></div></div><div></div></div><p><a name="BId-ext2fs-pa17"></a>Le <i class="citetitle">Guide de démarrage</i> a introduit les concepts de propriété des fichiers et les droits d'accès, mais pour vraiment comprendre le <a name="BId-ext2fs-gt1" href="glossary.html#term-filesystem"><i class="glossterm">système de fichiers</i></a> de <span class="application">UNIX</span> (cela s'applique aux systèmes de fichiers <span class="application">Linux</span>), il faut redéfinir cette notion même de fichier.</p><p><a name="BId-ext2fs-pa18"></a>Ici, « <span class="quote">tout</span> » veut <span class="emphasis"><em>vraiment</em></span> tout : un disque dur, une partition sur ce disque dur, un port parallèle, une connexion à un site Web, une carte <tt class="systemitem">Ethernet</tt>, même les répertoires sont des fichiers pour <span class="application">Linux</span>. Ainsi, mis à part les fichiers ordinaires et ces répertoires, d'autres types de fichiers sont donc reconnus. Mais ces types ne sont pas de l'ordre d'une différence de <span class="emphasis"><em>contenu</em></span> puisque, pour <span class="application">GNU/Linux</span> et pour tout système <span class="application">UNIX</span>, un fichier, qu'il soit une image <span class="acronym">PNG</span>, un fichier binaire ou autre, n'est fondamentalement qu'une quantité d'octets. La différenciation des fichiers en fonction de leur contenu est du ressort des applications.</p><div class="sect2" lang="fr"><div class="titlepage"><div><div><h3 class="title"><a name="id2554591"></a>Les différents types de fichier</h3></div></div><div></div></div><p><a name="BId-ext2fs-pa19"></a>Vous vous souviendrez sans doute que dans la sortie de la commande <span><b class="command">ls -l</b></span>, le caractère qui apparaît avant l'énoncé des droits d'accès représente le type du fichier. Deux types de fichiers ont déjà été présentés : les fichiers ordinaires (<tt class="literal">-</tt>) et les répertoires (<tt class="literal">d</tt>). Il est possible que vous rencontriez également ceux qui suivent si vous explorez l'arborescence et listez le contenu des répertoires :</p><div class="orderedlist"><ol type="1"><li><p><a name="BId-ext2fs-pa20"></a><a class="indexterm" name="BId-ext2fs-it11"></a> <a name="BId-ext2fs-gt2" href="glossary.html#term-character-mode-files"><i class="glossterm">Fichiers en mode caractère</i></a> : ces fichiers sont soit des fichiers spéciaux du système (tel <tt class="filename">/dev/null</tt>, déjà mentionné) ou des périphériques (ports série ou parallèle) ; leur particularité commune étant en fait que leur contenu (s'il existe) n'est pas <a name="BId-ext2fs-gt3" href="glossary.html#term-buffer"><i class="glossterm">conservé en mémoire</i></a><sup>[<a name="id2554688" href="#ftn.id2554688">23</a>]</sup>. L'identification de ces fichiers se fait par la lettre <tt class="literal">'c'</tt>.</p></li><li><p><a name="BId-ext2fs-pa21"></a><a class="indexterm" name="BId-ext2fs-it12"></a> <a name="BId-ext2fs-gt4" href="glossary.html#term-block-mode-files"><i class="glossterm">Fichiers en mode bloc</i></a> : ces fichiers sont des périphériques, et contrairement aux fichiers en mode caractère, leur contenu est, quant à lui, <span class="emphasis"><em>sauvegardé</em></span> en mémoire. Les fichiers qui entrent dans cette catégorie peuvent être les disques durs, les partitions sur ces disques durs, les lecteurs de disquettes et de <span class="acronym">CD-ROM</span>, etc. Les fichiers <tt class="filename">/dev/hda</tt>, <tt class="filename">/dev/sda5</tt> sont d'autres exemples de ces fichiers en mode bloc. Sur la sortie d'un <span><b class="command">ls -l</b></span>, ces fichiers seront identifiés par la lettre <tt class="literal">'b'</tt>.</p></li><li><p><a name="BId-ext2fs-pa22"></a><a class="indexterm" name="BId-ext2fs-it13"></a><a name="BId-ext2fs-gt5" href="glossary.html#term-symbolic-links"><i class="glossterm">Liens symboliques</i></a> : ces fichiers sont très courants et très utilisés dans la procédure de démarrage de <span class="application">Mandrakelinux</span> (voir le chapitre <a href="sysv.html" title="Chapitre 11. Les fichiers de démarrage : init sysv">Chapitre 11, <i>Les fichiers de démarrage : init sysv</i></a>). Comme leur nom l'indique, leur raison d'être est de lier symboliquement d'autres fichiers, c'est-à-dire qu'ils pointent (ou non) sur un fichier existant (ce point précis sera explicité plus loin dans le présent chapitre). Ils sont très souvent appelés <a name="BId-ext2fs-gt6" href="glossary.html#term-soft-links"><i class="glossterm"> <span class="foreignphrase"><i class="foreignphrase">soft links</i></span> </i></a>en anglais, ce qui est une erreur. Ils sont identifiés par la lettre <tt class="literal">'l'</tt>.</p></li><li><p><a name="BId-ext2fs-pa23"></a> <a class="indexterm" name="BId-ext2fs-it14"></a> <a name="BId-ext2fs-gt7" href="glossary.html#term-named-pipe"><i class="glossterm">Tubes nommés</i></a> : au cas où vous vous posez la question : ils sont effectivement très similaires aux tubes utilisés par le <span class="foreignphrase"><i class="foreignphrase">shell</i></span>, mais avec la particularité que ceux-ci ont un nom. Ils sont en fait très rares, et il est peu probable que vous en voyiez un durant votre voyage dans l'arborescence. Au cas où, cependant, leur identification se fait par la lettre <tt class="literal">'p'</tt> (pour en apprendre plus, lisez <a href="ext2fs-pipe.html" title='Tubes "anonymes" et tubes nommés'>la section intitulée « Tubes "anonymes" et tubes nommés »</a>). </p></li><li><p><a name="BId-ext2fs-pa24"></a> <a class="indexterm" name="BId-ext2fs-it15"></a> <a name="BId-ext2fs-gt8" href="glossary.html#term-socket"><i class="glossterm"> <span class="foreignphrase"><i class="foreignphrase">Sockets</i></span> </i></a> : ce type de fichier est celui de toutes les connexions réseau. Mais seules quelques-unes d'entre elles portent des noms. Pour compliquer les choses, il existe plusieurs types de <span class="foreignphrase"><i class="foreignphrase">sockets</i></span>, et un seul d'entre elles peut être lié, mais ces subtilités de classement dépassent de loin les objectifs de ce manuel. Des tels fichiers seront identifiés par la lettre <tt class="literal">'s'</tt>. </p></li></ol></div><p><a name="BId-ext2fs-pa25"></a> Voici un exemple pour chacun de ces types de fichiers : </p><a name="BId-ext2fs-sc1"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="screen">$ ls -l /dev/null /dev/sda /etc/rc.d/rc3.d/S20random /proc/554/maps \ /tmp/ssh-reine/ssh-510-agent crw-rw-rw- 1 root root 1, 3 May 5 1998 /dev/null brw-rw---- 1 root disk 8, 0 May 5 1998 /dev/sda lrwxrwxrwx 1 root root 16 Dec 9 19:12 /etc/rc.d/rc3.d/S20random -> ../init.d/random* pr--r--r-- 1 reine reine 0 Dec 10 20:23 /proc/554/maps| srwx------ 1 reine reine 0 Dec 10 20:08 /tmp/ssh-reine/ssh-510-agent= $</pre></td></tr></table></div><div class="sect2" lang="fr"><div class="titlepage"><div><div><h3 class="title"><a name="id2555026"></a>I-nœuds</h3></div></div><div></div></div><a class="indexterm" name="BId-ext2fs-it16"></a><p><a name="BId-ext2fs-pa26"></a>Les I-nœuds sont, avec le paradigme « <span class="quote">Tout est fichier</span> », les fondements de tout système de fichier <span class="application">UNIX</span>. Le mot <a name="BId-ext2fs-gt9" href="glossary.html#term-inode"><i class="glossterm">inode</i></a> est l'abréviation de <span class="foreignphrase"><i class="foreignphrase">Nœud d'Index</i></span>.</p><p><a name="BId-ext2fs-pa27"></a>Les i-nœuds sont stockés sur disque dans une <span class="emphasis"><em>table des i-nœuds</em></span>. Les i-nœuds existent pour n'importe quel type de fichier susceptible d'être stocké sur un système de fichier, et cela inclut les répertoires, tubes nommés, fichiers en mode caractère, et ainsi de suite. Cela conduit à la fameuse phrase : « <span class="quote">L'I-nœud est le fichier.</span> » Les I-nœuds sont aussi le moyen grâce auquel <span class="application">UNIX</span> identifie un fichier de manière unique.</p><p><a name="BId-ext2fs-pa28"></a>Oui, vous avez bien lu : sous <span class="application">UNIX</span>, vous <span class="emphasis"><em>n'identifiez pas un fichier par son nom</em></span>, mais par son numéro d'i-nœud <sup>[<a name="id2555139" href="#ftn.id2555139">24</a>]</sup>. La raison en est qu'un même fichier peut avoir plusieurs noms, ou même pas de nom du tout. Un nom de fichier, sous <span class="application">UNIX</span>, n'est qu'une entrée dans un i-nœud répertoire. Une telle entrée est appelée <span class="emphasis"><em>lien</em></span>. Voyons ces liens d'un peu plus près.</p></div><div class="footnotes"><br><hr width="100" align="left"><div class="footnote"><p><sup>[<a name="ftn.id2554688" href="#id2554688">23</a>] </sup>On emploie parfois le néologisme barbare <i class="glossterm">bufferisé</i>, qui vient de l'anglais <i class="glossterm"> <span class="foreignphrase"><i class="foreignphrase">buffered</i></span> </i>, c'est-à-dire gardé en mémoire dans des tampons (<span class="foreignphrase"><i class="foreignphrase">buffers</i></span>).</p></div><div class="footnote"><p><sup>[<a name="ftn.id2555139" href="#id2555139">24</a>] </sup>Important : notez que les numéros d'i-nœud sont uniques <span class="emphasis"><em>par système de fichier</em></span>, ce qui signifie qu'un i-nœud avec le même numéro peut exister sur un autre système de fichier. Cela conduit à la différence entre les i-nœuds sur disque et les i-nœuds en mémoire. Alors que deux i-nœuds peuvent avoir le même numéro sur disque s'ils sont sur deux systèmes de fichiers différents, les i-nœuds en mémoire ont un numéro unique sur tout le système. Une solution pour obtenir l'unicité est par exemple de combiner le numéro sur disque avec l'identifiant du périphérique qui héberge le système de fichiers.</p></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch09s01.html">Précédent</a> </td><td width="20%" align="center"><a accesskey="u" href="ext2fs.html">Niveau supérieur</a></td><td width="40%" align="right"> <a accesskey="n" href="ext2fs-ln.html">Suivant</a></td></tr><tr><td width="40%" align="left" valign="top">Comparatif de quelques systèmes de fichiers </td><td width="20%" align="center"><a accesskey="h" href="index.html">Sommaire</a></td><td width="40%" align="right" valign="top"> Les liens</td></tr></table></div></body></html>