Sophie

Sophie

distrib > Mandriva > 10.0-com > i586 > by-pkgid > 664c05250964d29fcf1d0bb310959fbc > files > 17

mandrake-doc-fr-10.0-5.1.100mdk.noarch.rpm

<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
-&gt; ../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>