diff options
Diffstat (limited to 'fr_FR.ISO8859-1/books/handbook/basics/chapter.sgml')
-rw-r--r-- | fr_FR.ISO8859-1/books/handbook/basics/chapter.sgml | 2970 |
1 files changed, 0 insertions, 2970 deletions
diff --git a/fr_FR.ISO8859-1/books/handbook/basics/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/basics/chapter.sgml deleted file mode 100644 index 94d8c79a9e..0000000000 --- a/fr_FR.ISO8859-1/books/handbook/basics/chapter.sgml +++ /dev/null @@ -1,2970 +0,0 @@ -<!-- - The FreeBSD Documentation Project - The FreeBSD French Documentation Project - - $FreeBSD$ - Original revision: 1.126 ---> - -<chapter id="basics"> - <chapterinfo> - <authorgroup> - <author> - <firstname>Chris</firstname> - <surname>Shumway</surname> - <contrib>Réécrit par </contrib> - </author> - </authorgroup> - <!-- 10 Mar 2000 --> - </chapterinfo> - - <title>Quelques bases d'UNIX</title> - &trans.a.fonvieille; - - <sect1 id="basics-synopsis"> - <title>Synopsis</title> - <indexterm><primary>bases</primary></indexterm> - - - <para>Le chapitre suivant couvrira les commandes et fonctionnalités - de base du système d'exploitation FreeBSD. La plupart de ces - informations sera valable pour n'importe quel système - d'exploitation &unix;. Soyez libre de passer ce chapitre si vous - êtes familier avec ces informations. Si vous êtes nouveau - à - FreeBSD, alors vous voudrez certainement lire attentivement ce - chapitre.</para> - - <para>Après la lecture de ce chapitre, vous saurez:</para> - - <itemizedlist> - <listitem> - <para>Comment utiliser les “consoles virtuelles” - de &os;.</para> - </listitem> - <listitem> - <para>Comment les permissions de fichier d'&unix; - fonctionnent.</para> - </listitem> - <listitem> - <para>L'architecture par défaut du système de - fichiers sous &os;.</para> - </listitem> - <listitem> - <para>L'organisation des disques sous &os;.</para> - </listitem> - <listitem> - <para>Comment monter et démonter des systèmes de - fichier.</para> - </listitem> - <listitem> - <para>Ce que sont les processus, daemons et signaux.</para> - </listitem> - <listitem> - <para>Ce qu'est un interpréteur de commande, et comment - changer votre environnement de session par - défaut.</para> - </listitem> - <listitem> - <para>Comment utiliser les éditeurs de texte de base.</para> - </listitem> - <listitem> - <para>Ce que sont les périphériques et les - fichiers spéciaux de périphérique.</para> - </listitem> - <listitem> - <para>Quel est le format des binaires utilisé sous - &os;.</para> - </listitem> - <listitem> - <para>Comment lire les pages de manuel pour plus - d'information.</para> - </listitem> - </itemizedlist> - - </sect1> - - <sect1 id="consoles"> - <title>Consoles virtuelles & terminaux</title> - <indexterm><primary>consoles virtuelles</primary></indexterm> - <indexterm><primary>terminaux</primary></indexterm> - - <para>FreeBSD peut être utilisé de diverses façons. - L'une d'elles est en tapant des commandes sur un terminal - texte. Une bonne partie de la flexibilité et de la puissance - d'un système d'exploitation &unix; est directemtent - disponible sous vos mains en utilisant FreeBSD de cette manière. - Cette section décrit ce que sont les “terminaux” et - les “consoles”, et comment les utiliser sous - FreeBSD.</para> - - <sect2 id="consoles-intro"> - <title>La console</title> - <indexterm><primary>console</primary></indexterm> - - <para>Si vous n'avez pas configuré FreeBSD pour lancer - automatiquement un environnement graphique au démarrage, le - système vous présentera une invite d'ouverture de session - après son démarrage, juste après la fin des - procédures de démarrage. Vous verrez quelque chose - de similaire à:</para> - - <screen>Additional ABI support:. -Local package initialization:. -Additional TCP options:. - -Fri Sep 20 13:01:06 EEST 2002 - -FreeBSD/i386 (pc3.example.org) (ttyv0) - -login:</screen> - - <para>Les messages pourront être différents sur votre - système, mais cela devrait y ressembler. Les deux - dernières lignes sont celles qui nous intéressent - actuellement. La seconde de ces lignes nous donne:</para> - - <programlisting>FreeBSD/i386 (pc3.example.org) (ttyv0)</programlisting> - - <para>Cette ligne contient quelques éléments d'information - sur le système que vous venez de démarrer. Vous - êtes en train de lire une console “FreeBSD”, - tournant sur un processeur Intel ou compatible de la famille - x86<footnote> - <para>C'est ce que signifie <literal>i386</literal>. Notez - que même si vous faites tourner FreeBSD sur un CPU Intel - 386, cela sera <literal>i386</literal>. Ce n'est pas le - type de votre microprocesseur, mais - “l'architecture” du microprocesseur qui est - donnée ici.</para> - </footnote>. Le nom de cette machine (chaque machine &unix; - a un nom) est <hostid>pc3.example.org</hostid>, et vous - regardez actuellement sa console système—le terminal - <devicename>ttyv0</devicename>.</para> - - <para>Et enfin, la dernière ligne est toujours:</para> - - <programlisting>login:</programlisting> - - <para>C'est le moment où vous êtes supposé - taper votre “nom d'utilisateur” pour vous - attacher au système FreeBSD. La section suivante décrit - comment procéder.</para> - </sect2> - - <sect2 id="consoles-login"> - <title>Ouvrir une session sur un système FreeBSD</title> - - <para>FreeBSD est un système multi-utilisateur, - multi-processeur. C'est la description formelle qui est - habituellement donnée pour un système qui peut - être utilisé par différentes personnes, - qui exécutent simultanément de nombreux programmes sur une - machine individuelle/</para> - - <para>Chaque système multi-utilisateur a besoin d'un moyen pour - distinguer un “utilisateur” du reste. Sous - FreeBSD (et sous tous les systèmes de type &unix;), - cela est effectué en demandant à chaque utilisateur de - “s'attacher” au système avant d'être en - mesure d'exécuter des programmes. Chaque utilisateur - possède un nom unique (le nom d'utilisateur) et une clé - secrète personnelle (le mot de passe). FreeBSD demandera ces - deux éléments avant d'autoriser un utilisateur à - lancer un programme.</para> - - <indexterm><primary>procédures de démarrage</primary></indexterm> - <para>Juste après que FreeBSD ait démarré et - en ait terminé avec l'exécution des procédures de - démarrage<footnote> - <para>Les procédures de démarrage sont des programmes - qui sont exécutés automatiquement pas FreeBSD au - démarrage. Leur fonction principale est de configurer le - système pour permettre l'exécution de tout programme, - et de démarrer tout service que vous avez configuré pour - tourner en tâche de fond et exécuter des choses - utiles.</para> - </footnote>, il présentera une invite et demandera un nom - d'utilisateur valide:</para> - - <screen>login:</screen> - - <para>Pour cet exemple, supposons que votre nom d'utilisateur - est <username>john</username>. Tapez - <username>john</username> à cette invite puis appuyez sur - <keycap>Entrée</keycap>. Alors vous devrez être - invité à entrer un “mot de passe”:</para> - - <screen>login: <userinput>john</userinput> -Password:</screen> - - <para>Tapez maintenant le mot de passe de <username>john</username>, - et appuyez sur <keycap>Entrée</keycap>. Le mot de passe - <emphasis>n'est pas affiché!</emphasis> Vous n'avez pas à - vous préoccuper de cela maintenant. Il suffit de penser que - cela est fait pour des raisons de sécurité.</para> - - <para>Si vous avez tapé correctement votre mot de passe, - vous devriez être maintenant attaché - au système et prêt à essayer toutes les commandes - disponibles.</para> - - <para>Vous devriez voir apparaître le <acronym>MOTD</acronym> - ou message du jour suivi de l'invite de commande (un - caractère <literal>#</literal>, <literal>$</literal>, ou - <literal>%</literal>). Cela indique que vous avez ouvert - avec succès une session sous &os;.</para> - </sect2> - - <sect2 id="consoles-virtual"> - <title>Consoles multiples</title> - - <para>Exécuter des commandes &unix; dans une console est bien - beau, mais FreeBSD peut exécuter plusieurs programmes - à la fois. Avoir une seule console sur laquelle les commandes - peuvent être tapées serait un peu du gaspillage quand - un système d'exploitation comme FreeBSD peut exécuter des - dizaines de programmes en même temps. C'est ici que des - “consoles virtuelles” peuvent être vraiment - utiles.</para> - - <para>FreeBSD peut être configuré pour présenter - de nombreuses consoles virtuelles. Vous pouvez basculer - d'une console virtuelle à une autre en utilisant une - combinaison de touches sur votre clavier. Chaque console - a son propre canal de sortie, et FreeBSD prend soin de - rediriger correctement les entrées au clavier et la sortie - vers écran quand vous basculez d'une console virtuelle à - la suivante.</para> - - <para>Des combinaisons de touches spécifiques ont - été réservées par FreeBSD pour le - basculement entre consoles<footnote> - <para>Une description assez technique et précise de tous - les détails de la console FreeBSD et des pilotes de - clavier peut être trouvée dans les pages de manuel de - &man.syscons.4;, &man.atkbd.4;, &man.vidcontrol.1; - et &man.kbdcontrol.1;. Nous ne nous étendrons pas - en détails ici, mais le lecteur intéressé peut - toujours consulter les pages de manuel pour explication plus - détaillée et plus complète sur le - fonctionnement des choses.</para> - </footnote>. Vous pouvez utiliser - <keycombo><keycap>Alt</keycap><keycap>F1</keycap></keycombo>, - <keycombo><keycap>Alt</keycap><keycap>F2</keycap></keycombo>, - jusqu'à - <keycombo><keycap>Alt</keycap><keycap>F8</keycap></keycombo> - pour basculer vers une console virtuelle différente sous - FreeBSD.</para> - - <para>Quand vous basculez d'une console à une autre, FreeBSD - prend soin de sauvegarder et restaurer la sortie d'écran. - Il en résulte l'“illusion” d'avoir plusieurs - écrans et claviers “virtuels” que vous pouvez - utiliser pour taper des commandes pour FreeBSD. Les - programmes que vous lancez sur une console virtuelle ne - cessent pas de tourner quand cette console n'est plus visible. - Ils continuent de s'exécuter quand vous avez - basculé vers une console virtuelle différente.</para> - </sect2> - - <sect2 id="consoles-ttys"> - <title>Le fichier <filename>/etc/ttys</filename></title> - - <para>La configuration par défaut de FreeBSD démarre avec huit - consoles virtuelles. Cependant ce n'est pas un paramétrage - fixe, et vous pouvez aisément personnaliser votre installation - pour démarrer avec plus ou moins de consoles virtuelles. Le - nombre et les paramétrages des consoles virtuelles sont - configurés dans le fichier - <filename>/etc/ttys</filename>.</para> - - <para>Vous pouvez utiliser le fichier - <filename>/etc/ttys</filename> pour configurer les consoles - virtuelles de FreeBSD. Chaque ligne non-commentée dans ce fichier - (les lignes qui ne débutent pas par le caractère - <literal>#</literal>) contient le paramétrage d'un terminal ou - d'une console virtuelle. La version par défaut de ce - fichier livrée avec FreeBSD configure neuf consoles virtuelles, - et en active huit. Ce sont les lignes commençant avec le terme - <literal>ttyv</literal>:</para> - - <programlisting># name getty type status comments -# -ttyv0 "/usr/libexec/getty Pc" cons25 on secure -# Virtual terminals -ttyv1 "/usr/libexec/getty Pc" cons25 on secure -ttyv2 "/usr/libexec/getty Pc" cons25 on secure -ttyv3 "/usr/libexec/getty Pc" cons25 on secure -ttyv4 "/usr/libexec/getty Pc" cons25 on secure -ttyv5 "/usr/libexec/getty Pc" cons25 on secure -ttyv6 "/usr/libexec/getty Pc" cons25 on secure -ttyv7 "/usr/libexec/getty Pc" cons25 on secure -ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure</programlisting> - - <para>Pour une description détaillée de chaque colonne - de ce fichier et toutes les options que vous pouvez utiliser - pour configurer les consoles virtuelles, consultez la page de - manuel &man.ttys.5;.</para> - </sect2> - - <sect2 id="consoles-singleuser"> - <title>Console en mode mono-utilisateur</title> - - <para>Une description détaillée de ce qu'est - <quote>le mode mono-utilisateur</quote> peut être - trouvée dans <xref linkend="boot-singleuser">. Il est - important de noter qu'il n'y a qu'une console de disponible - quand vous exécuter FreeBSD en mode mono-utilisateur. Il n'y - a aucune console virtuelle de disponible. Le paramétrage de - la console en mode mono-utilisateur peut être - également trouvé dans le fichier - <filename>/etc/ttys</filename>. Recherchez la ligne qui - commence avec le mot <literal>console</literal>:</para> - - <programlisting># name getty type status comments -# -# If console is marked "insecure", then init will ask for the root password -# when going to single-user mode. -console none unknown off secure</programlisting> - - <note> - <para>Comme l'indiquent les commentaires au-dessus de la ligne - <literal>console</literal>, vous pouvez éditer cette ligne - et changer <literal>secure</literal> pour - <literal>insecure</literal>. Si vous faites cela, quand - FreeBSD démarrera en mode mono-utilisateur, il demandera le - mot de passe de <username>root</username>.</para> - - <para><emphasis>Cependant faites attention quand vous modifiez - cela pour <literal>insecure</literal>.</emphasis> Si vous - oubliez le mot de passe de <username>root</username>, le - démarrage en mode mono-utilisateur sera condamné. - Il est encore possible, mais cela pourra être relativement - compliqué pour quelqu'un qui n'est pas à l'aise avec le - processus de démarrage de FreeBSD et les programmes entrant - en jeu.</para> - </note> - </sect2> - </sect1> - - <sect1 id="permissions"> - <title>Permissions</title> - <indexterm><primary>UNIX</primary></indexterm> - - <para>FreeBSD, étant un descendant direct de l'&unix; BSD, est - basé sur plusieurs concepts clés d'&unix;. Le premier, - et le plus prononcé, est le fait que FreeBSD est un - système d'exploitation multi-utilisateurs. Le système - peut gérer plusieurs utilisateurs travaillant tous - simultanément sur des tâches complètement - indépendantes. Le système est responsable du partage - correct et de la gestion des requêtes pour les - périphériques matériels, la mémoire, - et le temps CPU de façon équitable entre chaque - utilisateur.</para> - - <para>Puisque le système est capable de supporter des utilisateurs - multiples, tout ce que le système gère possède un - ensemble de permissions définissant qui peut écrire, lire, - et exécuter la ressource. Ces permissions sont stockées - sous forme de trois octets divisés en trois parties, une pour le - propriétaire du fichier, une pour le groupe auquel appartient le - fichier, et une autre pour le reste du monde. - Cette représentation numérique fonctionne comme - ceci:</para> - - <indexterm><primary>permissions</primary></indexterm> - <indexterm> - <primary>permissions de fichier</primary> - </indexterm> - <informaltable frame="none"> - <tgroup cols="3"> - <thead> - <row> - <entry>Valeur</entry> - <entry>Permission</entry> - <entry>Contenu du répertoire</entry> - </row> - </thead> - - <tbody> - <row> - <entry>0</entry> - <entry>Pas d'accès en lecture, pas d'accès en - écriture, - pas d'accès en exécution</entry> - <entry><literal>---</literal></entry> - </row> - - <row> - <entry>1</entry> - <entry>Pas d'accès en lecture, pas d'accès en - écriture, exécution</entry> - <entry><literal>--x</literal></entry> - </row> - - <row> - <entry>2</entry> - <entry>Pas d'accès en lecture, écriture, pas - d'accès en exécution</entry> - <entry><literal>-w-</literal></entry> - </row> - - <row> - <entry>3</entry> - <entry>Pas d'accès en lecture, écriture, - exécution</entry> - <entry><literal>-wx</literal></entry> - </row> - - <row> - <entry>4</entry> - <entry>Lecture, pas d'accès en écriture, pas - d'accès en exécution</entry> - <entry><literal>r--</literal></entry> - </row> - - <row> - <entry>5</entry> - <entry>Lecture, pas d'accès en écriture, - exécution</entry> - <entry><literal>r-x</literal></entry> - </row> - - <row> - <entry>6</entry> - <entry>Lecture, écriture, pas d'accès en - exécution</entry> - <entry><literal>rw-</literal></entry> - </row> - - <row> - <entry>7</entry> - <entry>Lecture, écriture, exécution</entry> - <entry><literal>rwx</literal></entry> - </row> - </tbody> - </tgroup> - </informaltable> - <indexterm> - <primary><command>ls</command></primary> - </indexterm> - <indexterm><primary>répertoires</primary></indexterm> - - <para>Vous pouvez utiliser l'option <option>-l</option> avec la - commande &man.ls.1; pour afficher le contenu du répertoire - sous forme une longue et détaillée qui inclut une colonne - avec des informations sur les permissions d'accès des fichiers - pour le propriétaire, le groupe, et le reste du monde. - Par exemple un <command>ls -l</command> dans un répertoire - quelconque devrait donner:</para> - - <screen>&prompt.user; <userinput>ls -l</userinput> -total 530 --rw-r--r-- 1 root wheel 512 Sep 5 12:31 myfile --rw-r--r-- 1 root wheel 512 Sep 5 12:31 otherfile --rw-r--r-- 1 root wheel 7680 Sep 5 12:31 email.txt -...</screen> - - <para>Voici - comment est divisée la première colonne de l'affichage - généré par <command>ls -l</command>:</para> - - <screen>-rw-r--r--</screen> - - <para>Le premier caractère (le plus à gauche) indique - si c'est un fichier normal, un répertoire, ou - un périphérique mode caractère, - une socket, ou tout autre pseudo-périphérique. - Dans ce cas, <literal>-</literal> - indique un fichier normal. Les trois caractères suivants, - <literal>rw-</literal> dans cet exemple, donnent les - permissions pour le propriétaire du fichier. Les trois - caractères qui suivent, <literal>r--</literal>, donnent les - permissions pour le groupe auquel appartient le fichier. - Les trois derniers caractères, <literal>r--</literal>, - donnent les permissions pour le reste du - monde. Un tiret signifie que la permission est désactivée. - Dans le cas de ce fichier, les permissions sont telles que le - propriétaire peut lire et écrire le fichier, le groupe - peut lire le fichier, et le reste du monde peut seulement lire le fichier. - D'après la table ci-dessus, les permissions pour ce fichier - seraient <literal>644</literal>, où chaque chiffre - représente les - trois parties des permissions du fichier.</para> - - <para>Tout cela est bien beau, mais comment le système - contrôle les permissions sur les périphériques? - En fait FreeBSD traite la plupart des périphériques - sous la forme d'un fichier que les programmes peuvent ouvrir, lire, - et écrire des données dessus comme tout autre fichier. - Ces périphériques spéciaux sont stockés - dans le répertoire <filename>/dev</filename>.</para> - - <para>Les répertoires sont aussi traités comme des fichiers. - Ils ont des droits en lecture, écriture et exécution. - Le bit d'exécution pour un répertoire a une signification - légèrement différente que pour les fichiers. - Quand un répertoire est marqué exécutable, cela - signifie que l'on peut être traversé, i.e. il est possible - d'utiliser “cd” (changement de répertoire). Ceci signifie également qu'à - l'intérieur du répertoire il est possible d'accéder - aux fichiers dont les noms sont connues (en fonction, bien sûr, - des permissions sur les fichiers eux-mêmes).</para> - - <para>En particulier, afin d'obtenir la liste du - contenu d'un répertoire, la permission de lecture doit être - positionnée sur le répertoire, tandis que pour effacer un - fichier dont on connaît le nom, il est nécessaire d'avoir - les droits d'écriture <emphasis>et</emphasis> d'exécution - sur le répertoire contenant le fichier.</para> - - <para>Il y a d'autres types de permissions, mais elles sont - principalement employées dans des circonstances - spéciales comme les binaires “setuid” et - les répertoires “sticky”. Si - vous désirez plus d'information sur les permissions de fichier et - comment les positionner, soyez sûr de consulter la page de manuel - &man.chmod.1;.</para> - - <sect2> - <sect2info> - <authorgroup> - <author> - <firstname>Tom</firstname> - <surname>Rhodes</surname> - <contrib>Contribution de </contrib> - </author> - </authorgroup> - </sect2info> - - <title>Permissions symboliques</title> - <indexterm><primary>Permissions</primary><secondary>symboliques</secondary></indexterm> - - <para>Les permissions symboliques, parfois désignées - sous le nom d'expressions symboliques, utilisent des - caractères à la place de valeur en octal pour - assigner les permissions aux fichiers et répertoires. - Les expressions symboliques emploient la syntaxe: (qui) - (action) (permissions), avec les valeurs possibles - suivantes:</para> - - <informaltable frame="none"> - <tgroup cols="3"> - <thead> - <row> - <entry>Option</entry> - <entry>Lettre</entry> - <entry>Représente</entry> - </row> - </thead> - - <tbody> - <row> - <entry>(qui)</entry> - <entry>u</entry> - <entry>Utilisateur</entry> - </row> - - <row> - <entry>(qui)</entry> - <entry>g</entry> - <entry>Groupe</entry> - </row> - - <row> - <entry>(qui)</entry> - <entry>o</entry> - <entry>Autre</entry> - </row> - - <row> - <entry>(qui)</entry> - <entry>a</entry> - <entry>Tous (<quote>le monde entier</quote>)</entry> - </row> - - <row> - <entry>(action)</entry> - <entry>+</entry> - <entry>Ajouter des permissions</entry> - </row> - - <row> - <entry>(action)</entry> - <entry>-</entry> - <entry>Retirer des permissions</entry> - </row> - - <row> - <entry>(action)</entry> - <entry>=</entry> - <entry>Fixe les permissions de façon explicite</entry> - </row> - - <row> - <entry>(permissions)</entry> - <entry>r</entry> - <entry>Lecture</entry> - </row> - - <row> - <entry>(permissions)</entry> - <entry>w</entry> - <entry>Ecriture</entry> - </row> - - <row> - <entry>(permissions)</entry> - <entry>x</entry> - <entry>Exécution</entry> - </row> - - <row> - <entry>(permissions)</entry> - <entry>t</entry> - <entry>bit collant (sticky)</entry> - </row> - - <row> - <entry>(permissions)</entry> - <entry>s</entry> - <entry>Exécuter avec l'ID utilisateur (UID) ou groupe (GID)</entry> - </row> - </tbody> - </tgroup> - </informaltable> - - <para>Ces valeurs sont utilisées avec la commande - &man.chmod.1; comme précédemment mais avec - des lettres. Par exemple, vous pourriez utiliser la commande - suivante pour refuser l'accès au fichier - <replaceable>FICHIER</replaceable> à d'autres - utilisateurs:</para> - - <screen>&prompt.user; <userinput>chmod go= FICHIER</userinput></screen> - - <para>Une liste séparé par des virgules peut être - fournie quand plus d'un changement doit être effectué - sur un fichier. Par exemple la commande suivante retirera - les permissions d'écriture aux groupes et au “reste du - monde” sur le fichier <replaceable>FICHIER</replaceable>, - puis ajoutera la permission d'exécution pour tout le - monde:</para> - - <screen>&prompt.user; <userinput>chmod go-w,a+x <replaceable>FICHIER</replaceable></userinput></screen> - -<!-- - <para>La plupart des utilisateurs ne relèveront pas ceci, - mais il doit être précisé que la - méthode avec les nombres en octal ne fera que fixer ou - assigner des permissions à un fichier; elle n'en ajoutera - ou n'en supprimera pas.</para> ---> - </sect2> - </sect1> - - <sect1 id="dirstructure"> - <title>Organisation de l'arborescence des répertoires</title> - <indexterm><primary>hiérarchie des répertoires</primary></indexterm> - - <para>L'organisation de l'arborescence des répertoires de FreeBSD - est essentielle pour obtenir une compréhension globale du - système. Le concept le plus important à saisir est - celui du répertoire racine, “/”. - Ce répertoire est le premier a être monté au - démarrage et il contient le système de base - nécessaire pour préparer le système d'exploitation - au fonctionnement multi-utilisateurs. - Le répertoire racine contient également les - points de montage pour tous les autres systèmes de fichiers que - vous pourriez vouloir monter.</para> - - <para>Un point de montage est un répertoire où peuvent - être greffés des systèmes de fichiers - supplémentaires au système de - fichiers racine. Les points de montage standards incluent - <filename>/usr</filename>, <filename>/var</filename>, - <filename>/mnt</filename>, et <filename>/cdrom</filename>. Ces - répertoires sont en général - référencés par des entrées dans le - fichier <filename>/etc/fstab</filename>. - <filename>/etc/fstab</filename> est une table des divers systèmes - de fichiers et de leur point de montage utilisé comme - référence par le système. - La plupart des systèmes de fichiers présents dans - <filename>/etc/fstab</filename> sont montés automatiquement au - moment du démarrage par la procédure &man.rc.8; à - moins que - l'option <option>noauto</option> soit présente. Consultez la page - de manuel de &man.fstab.5; pour plus d'information sur le format - du fichier <filename>/etc/fstab</filename> et des options qu'il - contient.</para> - - <para>Une description complète de l'arborescence du système de - fichiers est disponible dans la page de manuel &man.hier.7;. Pour - l'instant, une brève vue d'ensemble des répertoires les plus - courants suffira.</para> - - <para> - <informaltable frame="none"> - <tgroup cols="2"> - <thead> - <row> - <entry>Répertoire</entry> - <entry>Description</entry> - </row> - </thead> - <tbody> - <row> - <entry><filename class="directory">/</filename></entry> - <entry>Répertoire racine du système de - fichiers.</entry> - </row> - - <row> - <entry><filename class="directory">/bin/</filename></entry> - <entry>Programmes utilisateur fondamentaux aux deux modes - de fonctionnement mono et multi-utilisateurs.</entry> - </row> - - <row> - <entry><filename class="directory">/boot/</filename></entry> - <entry>Programmes et fichiers de configuration utilisés - durant le processus de démarrage du - système.</entry> - </row> - - <row> - <entry><filename class="directory">/boot/defaults/</filename></entry> - <entry>Fichiers de configuration par défaut du processus - de démarrage; voir la page de manuel - &man.loader.conf.5;.</entry> - </row> - - <row> - <entry><filename class="directory">/dev/</filename></entry> - <entry>Fichiers spéciaux de périphérique; - voir la page de manuel &man.intro.4;.</entry> - </row> - - <row> - <entry><filename class="directory">/etc/</filename></entry> - <entry>Procédures et fichiers de configuration du - système.</entry> - </row> - - <row> - <entry><filename class="directory">/etc/defaults/</filename></entry> - <entry>Fichiers de configuration du système par - défaut; voir la page de manuel &man.rc.8;.</entry> - </row> - - <row> - <entry><filename class="directory">/etc/mail/</filename></entry> - <entry>Fichiers de configuration pour les agents de - transport du courrier électronique comme - &man.sendmail.8;.</entry> - </row> - - <row> - <entry><filename class="directory">/etc/namedb/</filename></entry> - <entry>Fichiers de configuration de <command>named</command>; - voir la page de manuel &man.named.8;.</entry> - </row> - - <row> - <entry><filename class="directory">/etc/periodic/</filename></entry> - <entry>Procédures qui sont exécutées de - façon quotidienne, hebdomadaire et mensuelle par - l'intermédiaire de &man.cron.8;; - voir la page de manuel &man.periodic.8;.</entry> - </row> - - <row> - <entry><filename class="directory">/etc/ppp/</filename></entry> - <entry>Fichiers de configuration de <command>ppp</command>; voir - la page de manuel &man.ppp.8;.</entry> - </row> - - <row> - <entry><filename class="directory">/mnt/</filename></entry> - <entry>Répertoire vide habituellement utilisé - par les administrateurs système comme un point de - montage temporaire.</entry> - </row> - - <row> - <entry><filename class="directory">/proc/</filename></entry> - <entry>Le système de fichiers pour les processus; voir les - pages de manuel &man.procfs.5;, &man.mount.procfs.8;.</entry> - </row> - - <row> - <entry><filename class="directory">/root/</filename></entry> - <entry>Répertoire personnel du compte - <username>root</username>.</entry> - </row> - - <row> - <entry><filename class="directory">/sbin/</filename></entry> - <entry>Programmes systèmes et utilitaires systèmes - fondamentaux aux environnements mono et multi-utilisateurs. - </entry> - </row> - - <row> - <entry><filename class="directory">/stand/</filename></entry> - <entry>Programmes utilisés dans un environnement - autonome.</entry> - </row> - - - <row> - <entry><filename class="directory">/tmp/</filename></entry> - <entry>Fichiers temporaires, généralement un - système de fichiers en mémoire &man.mfs.8; - (le contenu de <filename class="directory">/tmp</filename> - n'est en général PAS préservé - par un redémarrage du système).</entry> - </row> - - - <row> - <entry><filename class="directory">/usr/</filename></entry> - <entry>La majorité des utilitaires et applications - utilisateur.</entry> - </row> - - <row> - <entry><filename class="directory">/usr/bin/</filename></entry> - <entry>Utilitaires généraux, outils de - programmation, et applications.</entry> - </row> - - <row> - <entry><filename class="directory">/usr/include/</filename></entry> - <entry>Fichiers d'en-tête C standard.</entry> - </row> - - <row> - <entry><filename class="directory">/usr/lib/</filename></entry> - <entry>Ensemble des bibliothèques.</entry> - </row> - - - <row> - <entry><filename class="directory">/usr/libdata/</filename></entry> - <entry>Divers fichiers de données de service.</entry> - </row> - - <row> - <entry><filename class="directory">/usr/libexec/</filename></entry> - <entry>Utilitaires et daemons système - (exécutés par d'autres programmes).</entry> - </row> - - <row> - <entry><filename - class="directory">/usr/local/</filename></entry> - - <entry>Exécutables, bibliothèques, etc... Egalement - utilisé comme destination de défaut pour les - logiciels portés pour FreeBSD. Dans - <filename>/usr/local</filename>, l'organisation - générale - décrite par la page de manuel &man.hier.7; pour - <filename>/usr</filename> devrait être utilisée. - Exceptions faites du répertoire man qui est directement - sous <filename>/usr/local</filename> plutôt que sous - <filename>/usr/local/share</filename>, et la - documentation des logiciels portés est dans - <filename>share/doc/<replaceable>port</replaceable></filename>. - </entry> - </row> - - <row> - <entry><filename class="directory">/usr/obj/</filename></entry> - <entry>Arborescence cible spécifique à une - architecture produite par la compilation de l'arborescence - <filename>/usr/src</filename>.</entry> - </row> - - <row> - <entry><filename class="directory">/usr/ports</filename></entry> - <entry>Le catalogue des logiciels portés - (optionnel).</entry> - </row> - - <row> - <entry><filename class="directory">/usr/sbin/</filename></entry> - <entry>Utilitaires et daemons système - (exécutés par les utilisateurs).</entry> - </row> - - <row> - <entry><filename class="directory">/usr/share/</filename></entry> - <entry>Fichiers indépendants de l'architecture.</entry> - </row> - - <row> - <entry><filename class="directory">/usr/src/</filename></entry> - <entry>Fichiers source FreeBSD et/ou locaux.</entry> - </row> - - <row> - <entry><filename - class="directory">/usr/X11R6/</filename></entry> - <entry>Exécutables, bibliothèques etc... de la - distribution d'X11R6 (optionnel).</entry> - </row> - - <row> - <entry><filename class="directory">/var/</filename></entry> - <entry>Fichiers de traces, fichiers temporaires, et - fichiers tampons. - </entry> - </row> - - - <row> - <entry><filename class="directory">/var/log/</filename></entry> - <entry>Divers fichiers de trace du système.</entry> - </row> - - <row> - <entry><filename class="directory">/var/mail/</filename></entry> - <entry>Boîtes aux lettres des utilisateurs.</entry> - </row> - - <row> - <entry><filename class="directory">/var/spool/</filename></entry> - <entry>Divers répertoires tampons des systèmes - de courrier électronique et d'impression. - </entry> - </row> - - <row> - <entry><filename class="directory">/var/tmp/</filename></entry> - <entry>Fichiers temporaires qui sont conservés durant les - redémarrages.</entry> - </row> - - <row> - <entry><filename>/var/yp</filename></entry> - <entry>Tables NIS.</entry> - </row> - - </tbody> - </tgroup> - </informaltable> - </para> - - </sect1> - - <sect1 id="disk-organization"> - <title>Organisation des disques</title> - - <para>Le plus petit élément qu'utilise FreeBSD pour - retrouver des fichiers est le nom de fichier. Les noms de - fichiers sont sensibles à la casse des caractères, - ce qui signifie que <filename>readme.txt</filename> et - <filename>README.TXT</filename> sont deux fichiers - séparés. FreeBSD n'utilise pas l'extension - (<filename>.txt</filename>) d'un fichier pour déterminer - si ce fichier est un programme, un document ou une autre forme - de donnée.</para> - - <para>Les fichiers sont stockés dans des - répertoires. Un répertoire peut ne contenir aucun - fichier, ou en contenir plusieurs centaines. Un - répertoire peut également contenir d'autre - répertoires, vous permettant de construire une - hiérarchie de répertoires à - l'intérieur d'un autre. Cela rend plus simple - l'organisation de vos données.</para> - - <para>Les fichiers et les répertoires sont - référencés en donnant le nom du fichier ou - du répertoire, suivi par un slash, <literal>/</literal>, - suivi par tout nom de répertoire nécessaire. Si - vous avez un répertoire <filename>foo</filename>, qui - contient le répertoire <filename>bar</filename>, qui - contient le fichier <filename>readme.txt</filename>, alors le - nom complet, ou <firstterm>chemin</firstterm> - (“path”) vers le fichier est - <filename>foo/bar/readme.txt</filename>.</para> - - <para>Les répertoires et les fichiers sont stockés - sur un système de fichiers. Chaque système de - fichiers contient à son niveau le plus haut un - répertoire appelé <firstterm>répertoire - racine</firstterm> pour ce système de fichiers. Ce - répertoire racine peut alors contenir les autres - répertoires.</para> - - <para>Jusqu'ici cela est probablement semblable à n'importe - quel autre système d'exploitation que vous avez pu avoir - utilisé. Il y a quelques différences: par - exemple, &ms-dos; utilise <literal>\</literal> pour séparer - les noms de fichier et de répertoire, alors que MacOS - utilise <literal>:</literal>.</para> - - <para>FreeBSD n'utilise pas de lettre pour les lecteurs, ou - d'autres noms de disque dans le chemin. Vous n'écrirez - pas <filename>c:/foo/bar/readme.txt</filename> sous - FreeBSD.</para> - - <para>Au lieu de cela, un système de fichiers est - désigné comme <firstterm>système de - fichiers racine</firstterm>. La racine du système de - fichiers racine est représentée par un - <literal>/</literal>. Tous les autres systèmes de - fichiers sont alors <firstterm>montés</firstterm> sous le - système de fichiers racine. Peu importe le nombre de - disques que vous avez sur votre système FreeBSD, chaque - répertoire apparaît comme faisant partie du - même disque.</para> - - <para>Supposez que vous avez trois systèmes de fichiers, - appelés <literal>A</literal>, <literal>B</literal>, et - <literal>C</literal>. Chaque système de fichiers - possède un répertoire racine, qui contient deux - autres répertoires, nommés <literal>A1</literal>, - <literal>A2</literal> (et respectivement <literal>B1</literal>, - <literal>B2</literal> et <literal>C1</literal>, - <literal>C2</literal>).</para> - - <para>Appelons <literal>A</literal> le système de fichiers - racine. Si vous utilisiez la commande <command>ls</command> - pour visualiser le contenu de ce répertoire, vous verriez - deux sous-répertoires, <literal>A1</literal> et - <literal>A2</literal>. L'arborescence des répertoires - ressemblera à ceci:</para> - - <mediaobject> - <imageobject> - <imagedata fileref="install/example-dir1" format="EPS"> - </imageobject> - - <textobject> - <literallayout class="monospaced"> / - | - +--- A1 - | - `--- A2</literallayout> - </textobject> - </mediaobject> - - <para>Un système de fichiers doit être monté - dans un répertoire d'un autre système de fichiers. - Supposez maintenant que vous montez le système de - fichiers <literal>B</literal> sur le répertoire - <literal>A1</literal>. Le répertoire racine de - <literal>B</literal> remplace <literal>A1</literal>, et les - répertoires de <literal>B</literal> par conséquent - apparaissent:</para> - - <mediaobject> - <imageobject> - <imagedata fileref="install/example-dir2" format="EPS"> - </imageobject> - - <textobject> - <literallayout class="monospaced"> / - | - +--- A1 - | | - | +--- B1 - | | - | `--- B2 - | - `--- A2</literallayout> - </textobject> - </mediaobject> - - <para>Tout fichier de <literal>B1</literal> ou - <literal>B2</literal> peut être atteint avec le chemin - <filename>/A1/B1</filename> ou <filename>/A1/B2</filename> si - nécessaire. Tous les fichiers qui étaient dans - <filename>A1</filename> ont été temporairement - cachés. Ils réapparaîtront si - <literal>B</literal> est - <firstterm>démonté</firstterm> de A.</para> - - <para>Si <literal>B</literal> a été monté sur - <literal>A2</literal> alors le diagramme sera semblable à - celui-ci:</para> - - <mediaobject> - <imageobject> - <imagedata fileref="install/example-dir3" format="EPS"> - </imageobject> - - <textobject> - <literallayout class="monospaced"> / - | - +--- A1 - | - `--- A2 - | - +--- B1 - | - `--- B2</literallayout> - </textobject> - </mediaobject> - - <para>et les chemins seront <filename>/A2/B1</filename> et - respectivement <filename>/A2/B2</filename>.</para> - - <para>Les systèmes de fichiers peuvent être - montés au sommet d'un autre. En continuant l'exemple - précédent, le système de fichiers - <literal>C</literal> pourrait être monté au sommet - du répertoire <literal>B1</literal> dans le - système de fichiers <literal>B</literal>, menant à - cet arrangement:</para> - - <mediaobject> - <imageobject> - <imagedata fileref="install/example-dir4" format="EPS"> - </imageobject> - - <textobject> - <literallayout class="monospaced"> / - | - +--- A1 - | - `--- A2 - | - +--- B1 - | | - | +--- C1 - | | - | `--- C2 - | - `--- B2</literallayout> - </textobject> - </mediaobject> - - <para>Où <literal>C</literal> pourrait être - monté directement sur le système de fichiers - <literal>A</literal>, sous le répertoire - <literal>A1</literal>:</para> - - <mediaobject> - <imageobject> - <imagedata fileref="install/example-dir5" format="EPS"> - </imageobject> - - <textobject> - <literallayout class="monospaced"> / - | - +--- A1 - | | - | +--- C1 - | | - | `--- C2 - | - `--- A2 - | - +--- B1 - | - `--- B2</literallayout> - </textobject> - </mediaobject> - - <para>Si vous êtes familier de &ms-dos;, ceci est semblable, bien - que pas identique, à la commande - <command>join</command>.</para> - - <para>Ce n'est normalement pas quelque chose qui doit vous - préoccuper. Généralement vous créez - des systèmes de fichiers à l'installation de - FreeBSD et décidez où les monter, et ensuite ne - les modifiez jamais à moins que vous ajoutiez un nouveau - disque.</para> - - <para>Il est tout à fait possible de n'avoir qu'un seul - grand système de fichiers racine, et de ne pas en - créer d'autres. Il y a quelques inconvénients - à cette approche, et un avantage.</para> - - <itemizedlist> - <title>Avantages des systèmes de fichiers - multiples</title> - - <listitem> - <para>Les différents systèmes de fichiers - peuvent avoir différentes <firstterm>options de - montage</firstterm>. Par exemple, avec une planification - soigneuse, le système de fichiers racine peut - être monté en lecture seule, rendant impossible - tout effacement par inadvertance ou édition de fichier - critique. La séparation des systèmes de - fichiers inscriptibles par l'utilisateur permet leur montage - en mode <firstterm>nosuid</firstterm>; cette option - empêche les bits - <firstterm>suid</firstterm>/<firstterm>guid</firstterm> des - exécutables stockés sur ce système de - fichiers de prendre effet, améliorant peut-être - la sécurité.</para> - </listitem> - - <listitem> - <para>FreeBSD optimise automatiquement la disposition des - fichiers sur un système de fichiers, selon la - façon dont est utilisé le système de - fichiers. Aussi un système de fichiers contenant - beaucoup de petits fichiers qui sont écrits - fréquemment aura une optimisation différente - à celle d'un système contenant moins, ou de plus - gros fichiers. En ayant un seul grand système de - fichiers cette optimisation est perdue.</para> - </listitem> - - <listitem> - <para>Les systèmes de fichiers de FreeBSD sont - très robustes même en cas de coupure secteur. - Cependant une coupure secteur à un moment critique - pourrait toujours endommager la structure d'un système - de fichiers. En répartissant vos données sur - des systèmes de fichiers multiples il est plus probable - que le système redémarre, vous facilitant la - restauration des données à partir de sauvegardes - si nécessaire.</para> - </listitem> - </itemizedlist> - - <itemizedlist> - <title>Avantage d'un système de fichiers unique</title> - - <listitem> - <para>Les systèmes de fichiers ont une taille fixe. Si - vous créez un système de fichiers à - l'installation de FreeBSD et que vous lui donnez une taille - spécifique, vous pouvez plus tard vous apercevoir que - vous avez besoin d'une partition plus grande. Cela n'est pas - facilement faisable sans sauvegardes, recréation du - système de fichiers, et enfin restauration des - données.</para> - - <important> - <para>FreeBSD 4.4 et suivants disposent d'une commande, - &man.growfs.8;, qui permettra d'augmenter la taille d'un - système de fichiers au vol, supprimant cette - limitation.</para> - </important> - </listitem> - </itemizedlist> - - <para>Les systèmes de fichiers sont contenus dans des - partitions. Cela n'a pas la même signification que - l'utilisation commune du terme partition (par exemple une - partition - &ms-dos;), en raison de l'héritage Unix de FreeBSD. - Chaque partition est identifiée par une lettre de - <literal>a</literal> à <literal>h</literal>. Chaque - partition ne contient qu'un seul système de fichiers, - cela signifie que les systèmes de fichiers sont souvent - décrits soit par leur point de montage typique dans la - hiérarchie du système de fichiers, soit par la - lettre de la partition qui les contient.</para> - - <para>FreeBSD utilise aussi de l'espace disque pour - <firstterm>l'espace de pagination</firstterm> - (“swap”). L'espace de pagination fournit à - FreeBSD la <firstterm>mémoire virtuelle</firstterm>. - Cela permet à votre ordinateur de se comporter comme s'il - disposait de beaucoup plus de mémoire qu'il n'en a - réellement. Quand FreeBSD vient à manquer de - mémoire il déplace certaines données qui ne - sont pas actuellement utilisées vers l'espace de - pagination, et les rapatrie (en déplaçant quelque - chose d'autre) quand il en a besoin.</para> - - <para>Quelques partitions sont liées à certaines - conventions.</para> - - <informaltable frame="none" pgwide="1"> - <tgroup cols="2"> - <colspec colwidth="1*"> - <colspec colwidth="5*"> - - <thead> - <row> - <entry>Partition</entry> - - <entry>Convention</entry> - </row> - </thead> - - <tbody> - <row> - <entry><literal>a</literal></entry> - - <entry>Contient normalement le système de - fichiers racine</entry> - </row> - - <row> - <entry><literal>b</literal></entry> - - <entry>Contient normalement l'espace de pagination</entry> - </row> - - <row> - <entry><literal>c</literal></entry> - - <entry>Normalement de la même taille que la tranche - (“slice”) contenant les partitions. Cela - permet aux utilitaires devant agir sur - l'intégralité de la tranche (par exemple - un analyseur de blocs défectueux) de travailler - sur la partition <literal>c</literal>. Vous ne devriez - normalement pas créer de système de - fichiers sur cette partition.</entry> - </row> - - <row> - <entry><literal>d</literal></entry> - - <entry>La partition <literal>d</literal> a eu dans le - passé une signification spécifique, c'est - terminé maintenant. A ce jour, quelques outils - peuvent fonctionner curieusement si on leur dit de - travailler sur la partition <literal>d</literal>, aussi - <application>sysinstall</application> ne créera - normalement pas de partition - <literal>d</literal>.</entry> - </row> - </tbody> - </tgroup> - </informaltable> - - <para>Chaque partition contenant un système de fichiers est - stockée dans ce que FreeBSD appelle une - <firstterm>tranche</firstterm> (“slice”). Tranche - - “slice” est le terme FreeBSD pour ce qui - est communément appelé partition, - et encore une fois, cela en raison des fondations Unix de - FreeBSD. Les tranches sont numérotées, en partant - de 1, jusqu'à 4.</para> - - <indexterm><primary>slices</primary></indexterm> - <indexterm><primary>tranches</primary></indexterm> - <indexterm><primary>partitions</primary></indexterm> - <indexterm><primary>mode dédié</primary></indexterm> - - <para>Les numéros de tranche suivent le nom du - périphérique, avec le préfixe - <literal>s</literal>, et commencent à 1. Donc - “da0<emphasis>s1</emphasis>” est la première - tranche sur le premier disque SCSI. Il ne peut y avoir que - quatre tranches physiques sur un disque, mais vous pouvez avoir - des tranches logiques dans des tranches physiques d'un type - précis. Ces tranches étendues sont - numérotées à partir de 5, donc - “ad0<emphasis>s5</emphasis>” est la première - tranche étendue sur le premier disque IDE. Elles sont - utilisées par des systèmes de fichiers qui - s'attendent à occuper une tranche entière.</para> - - <para>Les tranches, les disques “en mode - dédié”, et les autres disques contiennent - des <firstterm>partitions</firstterm>, qui sont - représentées par des lettres allant de - <literal>a</literal> à <literal>h</literal>. Cette - lettre est ajoutée au nom de périphérique, - aussi “da0<emphasis>a</emphasis>” est la partition a - sur le premier disque da, qui est en “en mode - dédié”. - “ad1s3<emphasis>e</emphasis>” est la - cinquième partition de la troisième tranche du - second disque IDE.</para> - - <para>En conclusion chaque disque présent sur le - système est identifié. Le nom d'un disque - commence par un code qui indique le type de disque, suivi d'un - nombre, indiquant de quel disque il s'agit. Contrairement aux - tranches, la numérotation des disques commence à - 0. Les codes communs que vous risquez de rencontrer sont - énumérés dans le <xref - linkend="basics-dev-codes">.</para> - - <para>Quand vous faites référence à une - partition, FreeBSD exige que vous nommiez également la - tranche et le disque contenant la partition, et quand vous - faites référence à une tranche vous devrez - également faire référence au nom du disque. - Faites cela en écrivant le nom du disque, - <literal>s</literal>, le numéro de la tranche, et enfin - la lettre de la partition. Des exemples sont donnés dans - l'<xref linkend="basics-disk-slice-part">.</para> - - <para>L'<xref linkend="basics-concept-disk-model"> montre un - exemple de l'organisation d'un disque qui devrait aider à - clarifier les choses.</para> - - <para>Afin d'installer FreeBSD vous devez tout d'abord configurer - les tranches sur votre disque, ensuite créer les - partitions dans la tranche que vous utiliserez pour FreeBSD, et - alors créer un système de fichiers (ou espace de - pagination) dans chaque partition, et décider de - l'endroit où seront montés les systèmes de - fichiers.</para> - - <table frame="none" pgwide="1" id="basics-dev-codes"> - <title>Codes des périphériques disques</title> - - <tgroup cols="2"> - <colspec colwidth="1*"> - <colspec colwidth="5*"> - - <thead> - <row> - <entry>Code</entry> - - <entry>Signification</entry> - </row> - </thead> - - <tbody> - <row> - <entry><devicename>ad</devicename></entry> - - <entry>Disque ATAPI (IDE)</entry> - </row> - - <row> - <entry><devicename>da</devicename></entry> - - <entry>Disque SCSI</entry> - </row> - - <row> - <entry><devicename>acd</devicename></entry> - - <entry>CDROM ATAPI (IDE)</entry> - </row> - - <row> - <entry><devicename>cd</devicename></entry> - - <entry>CDROM SCSI</entry> - </row> - - <row> - <entry><devicename>fd</devicename></entry> - - <entry>Lecteur de disquette</entry> - </row> - </tbody> - </tgroup> - </table> - - <example id="basics-disk-slice-part"> - <title>Exemples d'appellation de disques, tranches et - partitions</title> - - <informaltable frame="none" pgwide="1"> - <tgroup cols="2"> - <colspec colwidth="1*"> - <colspec colwidth="5*"> - - <thead> - <row> - <entry>Nom</entry> - - <entry>Signification</entry> - </row> - </thead> - - <tbody> - <row> - <entry><literal>ad0s1a</literal></entry> - - <entry>Première partition (<literal>a</literal>) - sur la première tranche (<literal>s1</literal>) - du premier disque IDE - (<literal>ad0</literal>).</entry> - </row> - - <row> - <entry><literal>da1s2e</literal></entry> - - <entry>Cinquième partition (<literal>e</literal>) - sur la seconde tranche (<literal>s2</literal>) du - deuxième disque SCSI - (<literal>da1</literal>).</entry> - </row> - </tbody> - </tgroup> - </informaltable> - </example> - - <example id="basics-concept-disk-model"> - <title>Modèle conceptuel d'un disque</title> - - <para>Ce diagramme montre comment FreeBSD voit le premier disque - IDE attaché au système. Supposons que le disque - a une capacité de 4 GO, et contient deux tranches - de 2 GO (partitions &ms-dos;). La première tranche - contient un disque &ms-dos;, <devicename>C:</devicename>, et la - seconde tranche contient une installation de FreeBSD. Dans - cet exemple l'installation de FreeBSD a trois partitions, et - une partition de pagination.</para> - - <para>Les trois partitions accueilleront chacune un - système de fichiers. La partition <literal>a</literal> - sera utilisée en tant que système de fichiers - racine, la partition <literal>e</literal> pour le contenu du - répertoire <filename>/var</filename>, et - <literal>f</literal> pour l'arborescence du répertoire - <filename>/usr</filename>.</para> - - <mediaobject> - <imageobject> - <imagedata fileref="install/disk-layout" format="EPS"> - </imageobject> - - <textobject> - <literallayout class="monospaced">.-----------------. --. -| | | -| DOS / Windows | | -: : > Première tranche, ad0s1 -: : | -| | | -:=================: ==: --. -| | | Partition a, montée en tant que / | -| | > référencée ad0s2a | -| | | | -:-----------------: ==: | -| | | Partition b, utilisée comme swap | -| | > référencée ad0s2b | Partition c, -| | | | pas de -:-----------------: ==: | système de -| | | Partition e, utilisée en /var > fichiers -| | > référencée ad0s2e | intégralité -| | | | de la tranche -:-----------------: ==: | FreeBSD ad0s2c -| | | | -: : | Partition f, utilisée en /usr | -: : > référencée ad0s2f | -: : | | -| | | | -| | --' | -`-----------------' --'</literallayout> - </textobject> - </mediaobject> - </example> - </sect1> - - <sect1 id="mount-unmount"> - <title>Monter et démonter des systèmes de fichiers</title> - - <para>Le système de fichiers peut être vu comme un arbre - enraciné sur le répertoire <filename>/</filename>. - <filename>/dev</filename>, <filename>/usr</filename>, et les - autres répertoires dans le répertoire racine sont des - branches, qui peuvent avoir leurs propres branches, comme - <filename>/usr/local</filename>, et ainsi de suite.</para> - - <indexterm><primary>système de fichiers racine</primary></indexterm> - <para>Il y a diverses raisons pour héberger certains de ces - répertoires sur des systèmes de fichiers - séparés. - <filename>/var</filename> contient les répertoires - <filename>log/</filename>, <filename>spool/</filename>, et divers - types de fichiers temporaires, et en tant que tels, peuvent voir - leur taille augmenter de façon importante. - Remplir le système de - fichiers racine n'est pas une bonne idée, aussi séparer - <filename>/var</filename> de <filename>/</filename> est souvent - favorable.</para> - - <para>Une autre raison courante de placer certains répertoires sur - d'autres systèmes de fichiers est s'ils doivent être - hébergés sur - des disques physiques séparés, ou sur des disques virtuels - séparés, comme les <link linkend="network-nfs">systèmes de - fichiers réseau</link>, ou les lecteurs de CDROM.</para> - - <sect2 id="disks-fstab"> - <title>Le fichier <filename>fstab</filename></title> - <indexterm> - <primary>systèmes de fichiers</primary> - <secondary>montés avec fstab</secondary> - </indexterm> - - <para>Durant le <link linkend="boot">processus de - démarrage</link>, les systèmes de fichiers listés - dans <filename>/etc/fstab</filename> sont automatiquement - montés (à moins qu'il ne soient listés avec - l'option <option>noauto</option>).</para> - - <para>Le fichier <filename>/etc/fstab</filename> contient une - liste de lignes au format suivant:</para> - - <programlisting><replaceable>device</replaceable> <replaceable>/mount-point</replaceable> <replaceable>fstype</replaceable> <replaceable>options</replaceable> <replaceable>dumpfreq</replaceable> <replaceable>passno</replaceable></programlisting> - - <variablelist> - <varlistentry> - <term><literal>device</literal></term> - <listitem> - <para>Un nom de périphérique (qui devrait exister), - comme expliqué dans la - <xref linkend="disks-naming">.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>mount-point</literal></term> - - <listitem><para>Un répertoire (qui devrait exister), sur - lequel sera monté le système de fichier.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>fstype</literal></term> - - <listitem><para>Le type de système de fichiers à - indiquer à - &man.mount.8;. Le système de fichiers par défaut de - FreeBSD est l'<literal>ufs</literal>.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>options</literal></term> - - <listitem><para>Soit <option>rw</option> pour des systèmes de - fichiers à lecture-écriture, soit - <option>ro</option> pour des systèmes de fichiers - à lecture seule, suivi par toute - option qui peut s'avérer nécessaire. Une option - courante est <option>noauto</option> pour les systèmes de - fichiers qui ne sont normalement pas montés durant la - séquence de démarrage. D'autres options sont - présentées dans la page de manuel &man.mount.8;.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>dumpfreq</literal></term> - - <listitem><para>C'est utilisé par &man.dump.8; pour - déterminer quels systèmes de fichiers - nécessitent - une sauvegarde. Si ce champ est absent, une valeur - de zéro est supposée.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>passno</literal></term> - - <listitem> - <para>Ceci détermine l'ordre dans lequel les systèmes - de fichiers devront être vérifiés. - Les systèmes de fichiers - qui doivent être ignorés devraient avoir leur - <literal>passno</literal> positionné à zéro. - Le système de fichiers racine (qui doit être - vérifié avant tout le reste) devrait avoir son - <literal>passno</literal> positionné à un, - et les options <literal>passno</literal> des autres - systèmes fichiers devraient être positionnées - à des valeurs supérieures à un. Si plus - d'un système de fichiers ont le même - <literal>passno</literal> alors &man.fsck.8; essaiera - de vérifier les systèmes de fichiers - en parallèle si c'est possible.</para> - </listitem> - </varlistentry> - </variablelist> - </sect2> - - <sect2 id="disks-mount"> - <title>La commande <command>mount</command></title> - <indexterm> - <primary>systèmes de fichiers</primary> - <secondary>montage</secondary> - </indexterm> - - <para>La commande &man.mount.8; est ce qui est finalement - utilisé pour monter des systèmes de fichiers.</para> - - <para>Dans sa forme la plus simple, vous utilisez:</para> - - <informalexample> - <screen>&prompt.root; <userinput>mount <replaceable>device</replaceable> <replaceable>mountpoint</replaceable></userinput></screen> - </informalexample> - - <para>Il y beaucoup d'options, comme mentionné dans la page de - manuel &man.mount.8;, mais les plus courantes sont:</para> - - <variablelist> - <title>Options de montage</title> - - <varlistentry> - <term><option>-a</option></term> - - <listitem> - <para>Monte tous les systèmes de fichiers listés dans - <filename>/etc/fstab</filename>. Exception faite de ceux - marqués comme “noauto”, ou exclus par - le drapeau <option>-t</option>, ou encore ceux qui sont - déjà montés.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>-d</option></term> - - <listitem> - <para>Tout effectuer à l'exception de l'appel - système de montage réel. Cette option est utile - conjointement avec le drapeau <option>-v</option> pour - déterminer ce que &man.mount.8; est en train - d'essayer de faire.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>-f</option></term> - - <listitem> - <para>Force le montage d'un système de fichiers non propre - (dangereux), ou force la révocation de l'accès en - écriture quand on modifie l'état de montage d'un - système de fichiers de l'accès - lecture-écriture à l'accès - lecture seule.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>-r</option></term> - - <listitem> - <para>Monte le système de fichiers en lecture seule. C'est - identique à l'utilisation de l'argument - <option>rdonly</option> avec l'option - <option>-o</option>.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>-t</option> - <replaceable>fstype</replaceable></term> - - <listitem> - <para>Monte le système de fichiers comme étant - du type de système donné, ou monte - seulement les systèmes de fichiers du type donné, - si l'option <option>-a</option> est précisée.</para> - - <para>“ufs” est le type de système de - fichiers par défaut.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>-u</option></term> - - <listitem> - <para>Mets à jour les options de montage sur le - système de fichiers.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>-v</option></term> - - <listitem> - <para>Rends la commande prolixe.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>-w</option></term> - - <listitem> - <para>Monte le système de fichiers en - lecture-écriture.</para> - </listitem> - </varlistentry> - </variablelist> - - <para>L'option <option>-o</option> accepte une liste d'options - séparées par des virgules, dont les suivantes:</para> - - <variablelist> - <varlistentry> - <term>nodev</term> - - <listitem> - <para>Ne pas prendre en compte les périphériques - spéciaux sur le système de fichiers. C'est une - option de sécurité utile.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>noexec</term> - - <listitem> - <para>Ne pas autoriser l'exécution de binaires sur ce - système de fichiers. C'est également une - option de sécurité utile.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>nosuid</term> - - <listitem> - <para>Ne pas prendre en compte les indicateurs setuid ou setgid - sur le système de fichiers. C'est également une - option de sécurité utile.</para> - </listitem> - </varlistentry> - </variablelist> - </sect2> - - <sect2 id="disks-umount"> - <title>La commande <command>umount</command></title> - <indexterm> - <primary>systèmes de fichiers</primary> - <secondary>démontage</secondary> - </indexterm> - - <para>La commande &man.umount.8; prend, comme paramètre, un des - points de montage, un nom de périphérique, ou - l'option <option>-a</option> ou <option>-A</option>.</para> - - <para>Toutes les formes acceptent <option>-f</option> pour forcer - de démontage, et <option>-v</option> pour le mode - prolixe. Soyez averti que l'utilisation de <option>-f</option> - n'est généralement pas une bonne idée. - Démonter de force des systèmes de fichiers pourrait - faire planter l'ordinateur ou endommager les données sur - le système de fichiers.</para> - - <para>Les options <option>-a</option> et <option>-A</option> - sont utilisées pour démonter tous les systèmes - de fichiers actuellement montés, éventuellement - modifié par les types de systèmes de fichiers - listés après l'option <option>-t</option>. - Cependant l'option <option>-A</option>, n'essaye pas de - démonter le système de fichiers racine.</para> - </sect2> - </sect1> - - <sect1 id="basics-processes"> - <title>Processus</title> - - <para>FreeBSD est un système d'exploitation multi-tâches. - Cela veut dire qu'il semble qu'il y ait plus d'un programme - fonctionnant à - la fois. Tout programme fonctionnant à un moment donné est - appelé un <firstterm>processus</firstterm>. Chaque commande que - vous utiliserez lancera au moins un nouveau processus, et il y a - de nombreux processus système qui tournent constamment, maintenant - ainsi les fonctionnalités du système.</para> - - <para>Chaque processus est identifié de façon unique par - un nombre appelé <firstterm>process ID</firstterm> (identifiant de - processus), ou <firstterm>PID</firstterm>, et, comme pour les fichiers, - chaque processus possède également un propriétaire - et un groupe. Les informations sur le propriétaire et le groupe - sont utilisées pour déterminer quels fichiers et - périphériques sont accessibles au processus, en utilisant le - principe de permissions de fichiers abordé plus tôt. - La plupart - des processus ont également un processus parent. Le processus - parent est le processus qui les a lancés. Par exemple, si vous - tapez des commandes sous un interpréteur de commandes, alors - l'interpréteur de commandes est un processus, et toute commande - que vous lancez est aussi un processus. Chaque processus que vous - lancez de cette manière aura votre interpréteur de - commandes comme processus parent. - Une exception à cela est le processus spécial - appelé &man.init.8;. <command>init</command> est - toujours le premier processus, donc son PID est toujours 1. - <command>init</command> est lancé automatiquement par le noyau au - démarrage de FreeBSD.</para> - - <para>Deux commandes sont particulièrement utiles pour voir les - processus sur le système, &man.ps.1; et &man.top.1;. La - commande <command>ps</command> est utilisée pour afficher une liste statique - des processus tournant actuellement, et peut donner leur PID, la - quantité de mémoire qu'ils utilisent, la ligne de - commande par l'intermédiaire de laquelle ils ont - été lancés, et ainsi de suite. - La commande &man.top.1; affiche tous les processus, et actualise - l'affichage régulièrement, de sorte que vous puissiez voir - de façon intéractive ce que fait l'ordinateur.</para> - - <para>Par défaut, &man.ps.1; n'affiche que les commandes que vous - faites tourner et dont vous êtes le propriétaire. Par - exemple:</para> - - <screen>&prompt.user; <userinput>ps</userinput> - PID TT STAT TIME COMMAND - 298 p0 Ss 0:01.10 tcsh - 7078 p0 S 2:40.88 xemacs mdoc.xsl (xemacs-21.1.14) -37393 p0 I 0:03.11 xemacs freebsd.dsl (xemacs-21.1.14) -48630 p0 S 2:50.89 /usr/local/lib/netscape-linux/navigator-linux-4.77.bi -48730 p0 IW 0:00.00 (dns helper) (navigator-linux-) -72210 p0 R+ 0:00.00 ps - 390 p1 Is 0:01.14 tcsh - 7059 p2 Is+ 1:36.18 /usr/local/bin/mutt -y - 6688 p3 IWs 0:00.00 tcsh -10735 p4 IWs 0:00.00 tcsh -20256 p5 IWs 0:00.00 tcsh - 262 v0 IWs 0:00.00 -tcsh (tcsh) - 270 v0 IW+ 0:00.00 /bin/sh /usr/X11R6/bin/startx -- -bpp 16 - 280 v0 IW+ 0:00.00 xinit /home/nik/.xinitrc -- -bpp 16 - 284 v0 IW 0:00.00 /bin/sh /home/nik/.xinitrc - 285 v0 S 0:38.45 /usr/X11R6/bin/sawfish</screen> - - <para>Comme vous pouvez le voir dans cet exemple, la sortie de - &man.ps.1; est organisée en un certain nombre de colonnes. - <literal>PID</literal> est l'identifiant de processus discuté plus - tôt. Les PIDs sont assignés à partir de 1, et - vont jusqu'à 99999, - et puis repassent à 1 quand le maximum est atteint. - La colonne <literal>TT</literal> donne le terminal sur lequel tourne le - programme, et peut être pour le moment ignoré sans risque. - <literal>STAT</literal> affiche l'état du programme, peut - être également ignoré. - <literal>TIME</literal> est la durée d'utilisation du CPU—ce - n'est généralement pas le temps écoulé depuis - que vous avez lancé le programme, comme la plupart des programmes passent - beaucoup de temps à attendre que certaines choses se produisent - avant qu'ils n'aient besoin de dépenser du temps CPU. - Et enfin, <literal>COMMAND</literal> est la ligne de commande qui a - été utilisée lors du lancement du programme.</para> - - <para>&man.ps.1; supporte un certain nombre d'options différentes - pour modifier les informations affichées. Un des ensembles - d'options les plus utiles est <literal>auxww</literal>. - <option>a</option> affiche l'information au sujet de tous les - processus tournant, et pas seulement les vôtres. - <option>u</option> donne le nom de l'utilisateur du propriétaire - du processus, ainsi que l'utilisation de la mémoire. - <option>x</option> affiche des informations sur les processus - “daemon”, et <option>ww</option> oblige &man.ps.1; à - afficher la ligne de commande complète, plutôt que de la - tronquer quand elle est trop longue pour tenir à - l'écran.</para> - - <para>La sortie de &man.top.1; est semblable. Un extrait de session - ressemble à ceci:</para> - - <screen>&prompt.user; <userinput>top</userinput> -last pid: 72257; load averages: 0.13, 0.09, 0.03 up 0+13:38:33 22:39:10 -47 processes: 1 running, 46 sleeping -CPU states: 12.6% user, 0.0% nice, 7.8% system, 0.0% interrupt, 79.7% idle -Mem: 36M Active, 5256K Inact, 13M Wired, 6312K Cache, 15M Buf, 408K Free -Swap: 256M Total, 38M Used, 217M Free, 15% Inuse - - PID USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND -72257 nik 28 0 1960K 1044K RUN 0:00 14.86% 1.42% top - 7078 nik 2 0 15280K 10960K select 2:54 0.88% 0.88% xemacs-21.1.14 - 281 nik 2 0 18636K 7112K select 5:36 0.73% 0.73% XF86_SVGA - 296 nik 2 0 3240K 1644K select 0:12 0.05% 0.05% xterm -48630 nik 2 0 29816K 9148K select 3:18 0.00% 0.00% navigator-linu - 175 root 2 0 924K 252K select 1:41 0.00% 0.00% syslogd - 7059 nik 2 0 7260K 4644K poll 1:38 0.00% 0.00% mutt -...</screen> - - <para>La sortie est divisée en deux sections. - L'entête (les cinq premières lignes) donne le PID du - dernier processus lancé, la charge système moyenne - (qui est une mesure de l'occupation du système), la durée - de fonctionnement du système (le temps écoulé - depuis le dernier redémarrage), et l'heure actuelle. Les autres - éléments de l'entête concernent le nombre de - processus en fonctionnement (47 dans notre cas), combien d'espace - mémoire et d'espace de pagination sont occupés, et - combien de temps le système passe dans les différents - états du CPU.</para> - - <para>En dessous il y a une série de colonnes contenant des - informations semblables à celles données par &man.ps.1;. - Comme précédemment vous pouvez lire le PID, le nom - d'utilisateur, la quantité de temps CPU consommée, et - la commande qui a été lancée. &man.top.1; vous - affiche par défaut la quantité d'espace mémoire - utilisée par chaque processus. Cela est divisé en deux - colonnes, une pour la quantité totale, et une autre pour la - quantité résidente—la quantité totale - représente l'espace mémoire dont a eu besoin l'application, - et la quantité résidente représente - l'espace qui est en fait utilisé actuellement. Dans cet exemple - vous pouvez voir que <application>&netscape;</application> a - exigé presque 30 MO de RAM, mais - utilise actuellement seulement 9MO.</para> - - <para>&man.top.1; actualise l'affichage toutes les deux secondes; - cela peut être modifié avec l'option - <option>s</option>.</para> - </sect1> - - <sect1 id="basics-daemons"> - <title>Daemons, signaux, et comment tuer un processus</title> - - <para>Quand vous utilisez un éditeur il est facile de le - contrôler, de lui dire de charger des fichiers, et ainsi de suite. - Vous pouvez faire cela parce que l'éditeur fournit les - possibilités de le faire, et parce qu'un éditeur est - attaché à un <firstterm>terminal</firstterm>. - Certains programmes ne sont pas conçus pour fonctionner avec - un dialogue constant avec l'utilisateur, et donc ils se - déconnectent du terminal à la première occasion. - Par exemple, un serveur web passe son temps à répondre - aux requêtes web, il n'attend normalement pas d'entrée de - votre part. Les programmes qui transportent le courrier - électronique de site en site sont un autre exemple de cette - classe d'application.</para> - - <para>Nous appelons ces programmes des - <firstterm>daemons</firstterm> (démons). Les - “daemons” étaient des personnages de la mythologie - Grec; ni bon ni mauvais, c'étaient de petits esprits serviteurs - qui, généralement, ont été à l'origine - de choses utiles à l'humanité. - Un peu comme les serveurs web ou de courrier d'aujourd'hui nous - sont utiles. C'est pourquoi la mascotte BSD a été, pendant - longtemps, un démon à l'apparence joyeuse portant des - chaussures de tennis et une fourche.</para> - - <para>Il existe une convention pour nommer les programmes qui - fonctionnent normalement en tant que daemons qui est d'utiliser - une terminaison en “d”. - <application>BIND</application> est le “Berkeley Internet Name - Daemon” (et le programme réel qui est exécuté - s'appelle <command>named</command>), le programme - correspondant au serveur web <application>Apache</application> est - appelé <command>httpd</command>, le daemon de gestion de la file - d'attente de l'imprimante est <command>lpd</command>, et ainsi de - suite. C'est une convention, mais pas une obligation pure et - simple; par exemple le daemon principal de gestion du courrier - électronique pour l'application - <application>Sendmail</application> est appelé - <command>sendmail</command>, et non pas <command>maild</command>, - comme vous pourriez l'imaginer.</para> - - <para>Parfois vous devrez communiquer avec un processus daemon. - Ces communications sont appelées <firstterm>signaux</firstterm>, et - vous pouvez communiquez avec un daemon (ou avec tout processus en - fonctionnement) en lui envoyant un signal. Il existe un certain - nombre de signaux différents que vous pouvez - envoyer—certains d'entre eux ont une signification précise, - d'autres sont interprétés par l'application, et la - documentation de l'application vous indiquera comment l'application - interprète ces signaux. Vous ne pouvez envoyer de signaux - qu'aux processus dont vous êtes le propriétaire. - Si vous envoyez un signal à un - processus appartenant à quelqu'un d'autre avec &man.kill.1; - ou &man.kill.2; vous obtiendrez un refus de permission. Il existe - une exception à cela: l'utilisateur <username>root</username>, qui - peut envoyer des signaux aux processus de chacun.</para> - - <para>Dans certain cas FreeBSD enverra également aux applications - des signaux. Si une application est mal écrite, et tente - d'accéder à une partie de mémoire à - laquelle elle n'est pas supposée avoir accès, FreeBSD - envoie au processus le signal de - <firstterm>violation de segmentation</firstterm> - (<literal>SIGSEGV</literal>). Si une application a utilisé - l'appel système &man.alarm.3; pour être avertie - dès qu'une période de temps précise est - écoulée alors lui sera envoyé le signal d'alarme - (<literal>SIGALRM</literal>), et ainsi de suite.</para> - - <para>Deux signaux peuvent être utilisés pour arrêter - un processus, <literal>SIGTERM</literal> et <literal>SIGKILL</literal>. - <literal>SIGTERM</literal> est la manière polie de tuer un - processus; le processus peut <emphasis>attraper</emphasis> le signal, - réaliser que vous désirez qu'il se termine, fermer les - fichiers de trace qu'il a peut-être ouvert, et - généralement - finir ce qu'il était en train de faire juste avant la demande - d'arrêt. Dans certains cas un processus peut ignorer un - <literal>SIGTERM</literal> s'il est au milieu d'une tâche qui ne - peut être interrompue.</para> - - <para><literal>SIGKILL</literal> ne peut être ignoré par un - processus. C'est le signal “Je me fiche de ce que vous - faites, arrêtez immédiatement”. Si vous envoyez un - <literal>SIGKILL</literal> à un processus alors FreeBSD - stoppera le processus<footnote> - <para>Ce n'est pas tout à fait vrai—il y a quelques cas - où les choses ne peuvent être interrompues. Par exemple, - si le processus est en train d'essayer de lire un fichier qui - est sur un autre ordinateur sur le réseau, et que l'autre - ordinateur n'est plus accessible pour quelque raison - (a été éteint, ou le réseau a un - problème), - alors le processus est dit “non interruptible”. - Par la suite le processus entrera en pause, typiquement après - deux minutes. Dès que cette pause sera effective le processus - sera tué.</para> - </footnote>.</para> - - <para>Les autres signaux que vous pourriez avoir envie d'utiliser - sont <literal>SIGHUP</literal>, <literal>SIGUSR1</literal>, et - <literal>SIGUSR2</literal>. Ce sont des signaux d'usage - général, et différentes applications se - comporteront différemment quand ils - sont envoyés.</para> - - <para>Supposez que vous avez modifié le fichier de configuration de - votre serveur web—vous voudriez dire à votre serveur web de - relire son fichier de configuration. Vous pourriez arrêter et - relancer <command>httpd</command>, mais il en résulterait une - brève période d'indisponibilité de votre serveur - web, ce qui peut être indésirable. - La plupart des daemons sont écrits pour répondre - au signal <literal>SIGHUP</literal> en relisant leur fichier de - configuration. Donc au lieu de tuer et relancer - <command>httpd</command> vous lui enverriez le signal - <literal>SIGHUP</literal>. Parce qu'il n'y a pas de manière - standard de répondre à ces signaux, différents - daemons auront différents comportements, soyez sûr - de ce que vous faites et lisez - la documentation du daemon en question.</para> - - <para>Les signaux sont envoyés en utilisant la commande - &man.kill.1;, comme cet exemple le montre:</para> - - <procedure> - <title>Envoyer un signal à un processus</title> - - <para>Cet exemple montre comment envoyer un signal à - &man.inetd.8;. Le fichier de configuration d'<command>inetd</command> est - <filename>/etc/inetd.conf</filename>, et <command>inetd</command> relira ce - fichier de configuration quand un signal - <literal>SIGHUP</literal> est envoyé.</para> - - <step> - <para>Trouvez l'identifiant du processus (PID) auquel vous - voulez envoyer le signal. Faites-le en employant &man.ps.1; - et &man.grep.1;. La commande &man.grep.1; est utilisée pour - rechercher dans le résultat la chaîne de - caractères que - vous spécifiez. Cette commande est lancée en tant - qu'utilisateur normal, et &man.inetd.8; est lancé en tant que - <username>root</username>, donc les options <option>ax</option> - doivent être passées à &man.ps.1;.</para> - - <screen>&prompt.user; <userinput>ps -ax | grep inetd</userinput> - 198 ?? IWs 0:00.00 inetd -wW</screen> - - <para>Donc le PID d'&man.inetd.8; est 198. Dans certains cas la - commande <literal>grep inetd</literal> pourrait aussi - apparaître dans le résultat. C'est à - cause de la façon dont - &man.ps.1; recherche la liste des processus en - fonctionnement.</para> - </step> - - <step> - <para>Utilisez &man.kill.1; pour envoyer le signal. Etant donné - qu'&man.inetd.8; tourne sous les droits de l'utilisateur - <username>root</username> vous devez utilisez &man.su.1; pour - devenir, en premier lieu, <username>root</username>.</para> - - <screen>&prompt.user; <userinput>su</userinput> -<prompt>Password:</prompt> -&prompt.root; <userinput>/bin/kill -s HUP 198</userinput></screen> - - <para>Comme la plupart des commandes &unix;, &man.kill.1; n'affichera - rien si la commande est couronnée de succès. Si vous - envoyez un signal à un processus dont vous n'êtes pas le - propriétaire alors vous verrez <errorname>kill: - <replaceable>PID</replaceable>: Operation not - permitted</errorname>. Si vous avez fait une erreur dans le - PID, vous enverrez le signal soit à un mauvais processus, ce - qui peut être mauvais, soit, si vous êtes chanceux, vous - enverrez le signal à un PID qui n'est pas actuellement - utilisé, et vous verrez <errorname>kill: - <replaceable>PID</replaceable>: No such - process</errorname>.</para> - - <note> - <title>Pourquoi utiliser <command>/bin/kill</command>?</title> - - <para>De nombreux interpréteurs de commandes fournissent la - commande <command>kill</command> comme commande interne; - c'est à dire, que l'interpréteur de commandes enverra - directement le signal, plutôt que de lancer - <filename>/bin/kill</filename>. Cela peut être utile, - cependant les différents interpréteurs ont une syntaxe - différente pour spécifier le nom du signal à - envoyer. - Plutôt que de tenter de les apprendre toutes, il peut - être plus simple de juste employer directement la commande - <command>/bin/kill - <replaceable>...</replaceable></command>.</para> - </note> - </step> - </procedure> - - <para>Envoyer d'autres signaux est très semblable, substituez juste - <literal>TERM</literal> ou <literal>KILL</literal> dans la ligne - de commande si nécessaire.</para> - - <important> - <para>Tuer au hasard des processus sur le système peut - être une mauvaise idée. - En particulier, &man.init.8;, processus à - l'identifiant 1, qui est très particulier. Lancer la commande - <command>/bin/kill -s KILL 1</command> est une manière - rapide d'arrêter votre système. Vérifiez - <emphasis>toujours</emphasis> à deux fois les arguments que vous - utilisez avec &man.kill.1; <emphasis>avant</emphasis> d'appuyer - sur <keycap>Entrée</keycap>.</para> - </important> - </sect1> - - <sect1 id="shells"> - <title>Interpréteurs de commandes - “Shells”</title> - <indexterm><primary>interpréteurs de commandes</primary></indexterm> - <indexterm><primary>ligne de commande</primary></indexterm> - - <para>Sous FreeBSD, beaucoup du travail quotidien est effectué sous - une interface en ligne de commande appelée interpréteur de - commandes ou “shell”. Le rôle principal d'un - interpréteur de commandes est de prendre les commandes sur le - canal d'entrée et de les exécuter. Beaucoup - d'interpréteurs de commandes ont également des fonctions - intégrées pour aider dans les tâches quotidiennes - comme la gestion de fichiers, le mécanisme de - remplacement et d'expansion des jokers (“file globbing”), - l'édition de la ligne de commande, les macros commandes, et les - variables d'environnement. FreeBSD est fournit avec un ensemble - d'interpréteurs de commandes, comme <command>sh</command>, - l'interpréteur de commandes Bourne, et <command>tcsh</command>, - l'interpréteur de commandes C-shell amélioré. - Beaucoup d'autres - interpréteurs de commandes sont disponibles dans le catalogue des - logiciels portés, comme <command>zsh</command> et - <command>bash</command>.</para> - - <para>Quel interpréteur de commandes utilisez-vous? C'est vraiment - une question de goût. Si vous programmez en C vous pourriez vous - sentir plus à l'aise avec un interpréteur de commandes - proche du C - comme <command>tcsh</command>. Si vous venez du monde Linux ou que - vous êtes nouveau à l'interface en ligne de commande d'&unix; - vous pourriez essayer <command>bash</command>. L'idée principale - est que chaque interpréteur de commandes à des - caractéristiques uniques qui peuvent ou ne peuvent pas - fonctionner avec votre environnement de travail - préféré, et que vous avez vraiment le - choix de l'interpréteur de commandes à utiliser.</para> - - <para>Une des caractéristiques communes des interpréteurs de - commandes est de pouvoir compléter les noms de fichiers - (“filename completion”). En tapant les premières - lettres d'une commande ou d'un fichier, vous pouvez habituellement - faire compléter automatiquement par l'interpréteur de - commandes le reste de la commande ou du nom du fichier en appuyant sur la - touche <keycap>Tab</keycap> du clavier. Voici un exemple. - Supposez que vous avez deux fichiers appelés respectivement - <filename>foobar</filename> et <filename>foo.bar</filename>. - Vous voulez effacer <filename>foo.bar</filename>. Donc ce - que vous devriez taper sur le clavier est: <command>rm - fo[<keycap>Tab</keycap>].[<keycap>Tab</keycap>]</command>.</para> - - <para>L'interpréteur de commandes devrait afficher <command>rm - foo[BEEP].bar</command>.</para> - - <para>Le [BEEP] est la sonnerie de la console, c'est l'interpréteur - de commande indiquant qu'il n'est pas en mesure de compléter - totalement le nom du fichier parce qu'il y a plus d'une - possibilité. <filename>foobar</filename> et - <filename>foo.bar</filename> commencent tous les deux par - <literal>fo</literal>, mais il fut capable de compléter - jusqu'à <literal>foo</literal>. Si vous tapez - <literal>.</literal>, puis appuyez à nouveau sur - <keycap>Tab</keycap>, l'interpréteur de - commandes devrait pouvoir compléter le reste du nom du fichier - pour vous.</para> - <indexterm><primary>variables d'environnement</primary></indexterm> - - <para>Une autre caractéristique de l'interpréteur de - commandes est l'utilisation de variables d'environnement. Les variables - d'environnement sont une paire variable-valeur stockées dans - l'espace mémoire d'environnement de l'interpréteur de - commandes. Cet espace peut être lu par n'importe quel programme - invoqué par l'interpréteur de commandes, et contient - ainsi beaucoup d'éléments - de configuration des programmes. Voici une liste des variables - d'environnement habituelles et ce qu'elles signifient:</para> - <indexterm><primary>variables d'environnement</primary></indexterm> - - <informaltable frame="none"> - <tgroup cols="2"> - <thead> - <row> - <entry>Variable</entry> - <entry>Description</entry> - </row> - </thead> - - <tbody> - <row> - <entry><envar>USER</envar></entry> - <entry>Le nom d'utilisateur de la personne actuellement - attachée au système.</entry> - </row> - - <row> - <entry><envar>PATH</envar></entry> - <entry>La liste des répertoires, séparés par - deux points, pour la recherche des programmes.</entry> - </row> - - <row> - <entry><envar>DISPLAY</envar></entry> - <entry>Le nom réseau de l'affichage X11 auquel on peut se - connecter, si disponible.</entry> - </row> - - <row> - <entry><envar>SHELL</envar></entry> - <entry>Le nom de l'interpréteur de commandes actuellement - utilisé.</entry> - </row> - - <row> - <entry><envar>TERM</envar></entry> - <entry>Le nom du terminal de l'utilisateur. Utilisé pour - déterminer les capacités du terminal.</entry> - </row> - - <row> - <entry><envar>TERMCAP</envar></entry> - <entry>L'entrée de la base de données des codes - d'échappement pour permettre l'exécution de - diverses fonctions du terminal.</entry> - </row> - - <row> - <entry><envar>OSTYPE</envar></entry> - <entry>Type du système d'exploitation, e.g. FreeBSD.</entry> - </row> - - <row> - <entry><envar>MACHTYPE</envar></entry> - <entry>L'architecture du CPU sur lequel tourne actuellement - le système.</entry> - </row> - - <row> - <entry><envar>EDITOR</envar></entry> - <entry>L'éditeur de texte préferé de - l'utilisateur.</entry> - </row> - - <row> - <entry><envar>PAGER</envar></entry> - <entry>Le visualisateur de page de texte préferré de - l'utilisateur.</entry> - </row> - - <row> - <entry><envar>MANPATH</envar></entry> - <entry>La liste des répertoires, séparés par - deux points, pour la recherche des pages de manuel.</entry> - </row> - </tbody> - </tgroup> - </informaltable> - - <indexterm><primary>Bourne shells</primary></indexterm> - <para>Fixer une variable d'environnement diffère - légèrement d'un interpréteur de commandes - à l'autre. Par exemple, - dans le style de l'interpréteur de commandes de type C-shell comme - <command>tcsh</command> et <command>csh</command>, vous - utiliseriez <command>setenv</command> pour fixer le - contenu d'une variable d'environnement. Sous les interpréteurs de - commandes Bourne comme <command>sh</command> et - <command>bash</command>, vous utiliseriez - <command>export</command> pour configurer vos - variables d'environnement. Par exemple, pour fixer ou modifier la - variable d'environnement <envar>EDITOR</envar>, sous - <command>csh</command> ou <command>tcsh</command> une commande - comme la suivante fixera <envar>EDITOR</envar> à - <filename>/usr/local/bin/emacs</filename>:</para> - - <screen>&prompt.user; <userinput>setenv EDITOR /usr/local/bin/emacs</userinput></screen> - - <para>Sous les interpréteurs de commandes Bourne:</para> - - <screen>&prompt.user; <userinput>export EDITOR="/usr/local/bin/emacs"</userinput></screen> - - <para>Vous pouvez faire afficher à la plupart des - interpréteurs de commandes la variable d'environnement - en plaçant un caractère - <literal>$</literal> juste devant son nom sur la ligne - de commande. Par exemple, <command>echo $TERM</command> affichera - le contenu de <envar>$TERM</envar>, car l'interpréteur de commande - complète <envar>$TERM</envar> et passe la main à - <command>echo</command>.</para> - - <para>Les interpréteurs de commandes traitent beaucoup de - caractères spéciaux, appelés - métacaractères, en tant que représentation - particulière des données. Le plus commun est le - caractère <literal>*</literal>, qui représente - zéro ou plusieurs caractères dans le nom du fichier. - Ces métacaractères spéciaux peuvent être - utilisés pour compléter automatiquement le nom des - fichiers. Par exemple, taper <command>echo *</command> est presque - la même chose - que taper <command>ls</command> parce que l'interpréteur de - commandes prendra tous les fichiers qui correspondent à - <literal>*</literal> et les passera à <command>echo</command> pour - les afficher.</para> - - <para>Pour éviter que l'interpréteur de commande - n'interprète les caractères spéciaux, ils peuvent - être neutralisés en ajoutant un - caractère antislash (<literal>\</literal>) devant. <command>echo - $TERM</command> affichera votre type de terminal. <command>echo - \$TERM</command> affichera <envar>$TERM</envar> tel quel.</para> - - <sect2 id="changing-shells"> - <title>Changer d'interpréteur de commandes</title> - - <para>La méthode la plus simple pour changer votre - interpréteur de commandes est d'utiliser la commande - <command>chsh</command>. En lançant <command>chsh</command> - vous arriverez dans l'éditeur - correspondant à votre variable d'environnement - <envar>EDITOR</envar>; si elle n'est pas fixée, cela sera - <command>vi</command>. Modifiez la ligne “Shell:” - en conséquence.</para> - - <para>Vous pouvez également passer le paramètre - <option>-s</option> à <command>chsh</command>; cela modifiera - votre interpréteur de commandes sans avoir à utiliser - un éditeur. Par exemple, si - vous vouliez changer votre interpréteur de commandes pour - <command>bash</command>, - ce qui suit devrait faire l'affaire:</para> - - <screen>&prompt.user; <userinput>chsh -s /usr/local/bin/bash</userinput></screen> - - <para>Utiliser <command>chsh</command> sans paramètres et modifier - votre interpréteur de commandes directement à partir - de là devrait également fonctionner.</para> - - <note> - <para>L'interpréteur de commandes que vous désirez - utiliser <emphasis>doit</emphasis> être présent dans - le fichier <filename>/etc/shells</filename>. Si vous avez - installé l'interpréteur de commandes à partir - du <link linkend="ports">catalogue des logiciels portés</link>, - alors cela a dû déjà être fait pour vous. - Si vous avez installé à - la main l'interpréteur de commandes, vous devez alors le - faire.</para> - - <para>Par exemple, si vous avez installé <command>bash</command> - à la main et l'avez placé dans - <filename>/usr/local/bin</filename>, vous devrez faire:</para> - - <screen>&prompt.root; <userinput>echo "/usr/local/bin/bash" >> /etc/shells</userinput></screen> - - <para>Puis relancer <command>chsh</command>.</para> - </note> - </sect2> - </sect1> - - <sect1 id="editors"> - <title>Editeurs de texte</title> - <indexterm><primary>éditeurs de texte</primary></indexterm> - <indexterm><primary>éditeurs</primary></indexterm> - - <para>Beaucoup de configurations sous FreeBSD sont faites en éditant - des fichiers textes. Aussi ce serait une bonne idée de se - familiariser avec un éditeur de texte. FreeBSD est fourni avec - quelques-uns en tant qu'éléments de système de base, - et beaucoup d'autres sont disponibles dans le catalogue des logiciels - portés.</para> - - <indexterm> - <primary><command>ee</command></primary> - </indexterm> - <para>L'éditeur de plus facile et le plus simple à apprendre - est un éditeur appelé <application>ee</application>, - qui signifie l'éditeur facile (easy editor). Pour lancer - <application>ee</application>, on taperait sur la ligne de - commande <command>ee <replaceable>fichier</replaceable></command> où - <replaceable>fichier</replaceable> est le nom du fichier qui doit être - édité. Par exemple, pour éditer - <filename>/etc/rc.conf</filename>, tapez <command>ee - /etc/rc.conf</command>. Une fois sous <command>ee</command>, toutes - les commandes pour utiliser les fonctions de l'éditeur sont - affichées en haut de l'écran. Le caractère - <literal>^</literal> - représente la touche <keycap>Ctrl</keycap> sur le clavier, donc - <literal>^e</literal> représente la combinaison de touches - <keycombo - action="simul"><keycap>Ctrl</keycap><keycap>e</keycap></keycombo>. - Pour quitter <application>ee</application>, appuyez sur la touche - <keycap>Echap</keycap>, ensuite choisissez - “leave editor”. L'éditeur - vous demandera s'il doit sauver les changements si le fichier a - été modifié.</para> - - <indexterm> - <primary><command>vi</command></primary> - </indexterm> - <indexterm> - <primary>éditeurs</primary> - <secondary><command>vi</command></secondary> - </indexterm> - <indexterm> - <primary><command>emacs</command></primary> - </indexterm> - <indexterm> - <primary>éditeurs</primary> - <secondary><command>emacs</command></secondary> - </indexterm> - <para>FreeBSD est également fourni avec des éditeurs de texte - plus puissants comme <application>vi</application> en tant - qu'élément du - système de base, alors que d'autres éditeurs, comme - <application>Emacs</application> et <application>vim</application>, en tant - qu'élément du catalogue des logiciels portés de - FreeBSD (<filename role="package">editors/emacs</filename> et <filename role="package">editors/vim</filename>). Ces éditeurs offrent beaucoup plus de - fonctionnalités et de puissance aux dépens d'être - un peu plus compliqués à apprendre. - Cependant si vous projetez de faire beaucoup d'édition de texte, - l'étude d'un éditeur plus puissant comme - <application>vim</application> ou - <application>Emacs</application> vous permettra d'économiser beaucoup plus - de temps à la longue.</para> - </sect1> - - <sect1 id="basics-devices"> - <title>Périphériques et fichiers spéciaux de - périphérique</title> - - <para>Un périphérique est un terme utilisé la plupart - du temps pour les activités en rapport avec le matériel - présent sur le système, - incluant les disques, les imprimantes, les cartes graphiques, et les - claviers. Quand FreeBSD démarre, la majorité de ce - qu'affiche FreeBSD est la détection des - périphériques. Vous pouvez à nouveau - consulter les messages de démarrage en visualisant le fichier - <filename>/var/run/dmesg.boot</filename>.</para> - - <para>Par exemple, <devicename>acd0</devicename> est le premier - lecteur de CDROM IDE, tandis que <devicename>kbd0</devicename> - représente le clavier.</para> - - <para>La plupart de ces périphériques sous un système - d'exploitation &unix; peuvent être accédés par - l'intermédiaire de fichiers appelés fichiers - spéciaux de périphérique - (“device node”), qui sont situés dans le - répertoire <filename>/dev</filename>.</para> - - <sect2> - <title>Créer des fichiers spéciaux de - périphérique</title> - <para>Quand vous ajoutez un nouveau périphérique - à votre système, ou compilez le support pour des - périphériques supplémentaires, vous aurez - peut être besoin de créer un ou plusieurs fichiers - spéciaux de périphérique pour les nouveaux - périphériques.</para> - - <sect3> - <title>MAKEDEV Script</title> - <para>Sur les systèmes sans <literal>DEVFS</literal> (cela concerne toutes les versions de FreeBSD antérieures à la 5.0), les - fichiers spéciaux - de périphérique doivent être - créés à l'aide de la procédure - &man.MAKEDEV.8; comme montré ci-dessous:</para> - - <screen>&prompt.root; <userinput>cd /dev</userinput> -&prompt.root; <userinput>sh MAKEDEV ad1</userinput> - </screen> - - <para>Cet exemple devrait créer les fichiers spéciaux de - périphérique corrects pour le second disque IDE - quand il est installé.</para> - </sect3> - - <sect3> - <title><literal>DEVFS</literal> (“DEVice File System” - - Système de fichiers de périphérique)</title> - - <para>Le système de fichiers de périphérique, ou - <literal>DEVFS</literal>, fournit un accès à l'espace - nom des périphériques du noyau dans l'espace nom du - système de fichiers global. Au lieu d'avoir à - créer et modifier les fichiers spéciaux de - périphérique, <literal>DEVFS</literal> - maintient ce système de fichiers particulier pour vous.</para> - - <para>Voir la page de manuel de &man.devfs.5; pour plus - d'information.</para> - - <para><literal>DEVFS</literal> est utilisé par défaut - sous FreeBSD 5.0 et suivantes</para> - </sect3> - </sect2> - </sect1> - - <sect1 id="binary-formats"> - <title>Le format des fichiers binaires</title> - - <para>Afin de comprendre pourquoi &os; utilise le format - &man.elf.5;, vous devez d'abord connaître - quelques détails concernant les trois formats - “dominants” d'exécutables actuellement en vigueur - sous &unix;:</para> - - <itemizedlist> - <listitem> - <para>&man.a.out.5;</para> - - <para>Le plus vieux et le format objet “classique” - d'&unix;. Il utilise une entête courte et compacte - avec un nombre magique au début qui est souvent - utilisé pour caractériser le format (voir la - page de manuel &man.a.out.5; pour plus de détails). - Il contient trois segments chargés: .text, .data, - et .bss plus une table de symboles et une table de - chaînes de caractères.</para> - </listitem> - - <listitem> - <para><acronym>COFF</acronym></para> - - <para>Le format objet SVR3. L'entête comprend une - table de section, de telle sorte que vous avez plus de - sections qu'uniquement .text, .data et .bss.</para> - </listitem> - - <listitem> - <para>&man.elf.5;</para> - - <para>Le successeur de <acronym>COFF</acronym>, qui - permet des sections multiples et des valeurs possibles de 32 - bits et 64 bits. Un inconvénient majeur: - <acronym>ELF</acronym> a aussi été conçu - en supposant qu'il y aurait qu'un seul ABI par architecture - système. Cette hypothèse est en fait assez - incorrecte, et même dans le monde SYSV (qui a - au moins trois ABIs: SVR4, Solaris, SCO) cela ne se - vérifie pas.</para> - - <para>&os; essaye de contourner ce problème en - fournissant un utilitaire pour <emphasis>marquer</emphasis> - un exécutable connu <acronym>ELF</acronym> avec - des informations sur l'ABI qui va avec. Consultez la page - de manuel de &man.brandelf.1; pour plus - d'informations.</para> - </listitem> - </itemizedlist> - - <para>&os; vient du camp “classique” et a - utilisé le format &man.a.out.5;, une technologie - employée et éprouvée à travers des - générations de BSDs, jusqu'aux débuts de la - branche 3.X. Bien qu'il fut possible de compiler et - d'exécuter des binaires natifs <acronym>ELF</acronym> (et - noyaux) sous &os; avant cela, &os; a initiallement - résisté à la “pression” de passer - à <acronym>ELF</acronym> comme format par défaut. - Pourquoi? Bien, quand le camp Linux ont fait leur - pénible transition vers <acronym>ELF</acronym>, ce n'est pas - tant fuir le format <filename>a.out</filename> qui rendait - difficile la construction de bibliothèques partagée - pour les développeurs mais le mécanisme de - bibliothèques partagées basé sur des tables de - sauts inflexible. Puisque les outils <acronym>ELF</acronym> - disponibles offraient une solution au problème - des bibliothèques partagées et étaient - perçus comme “le chemin à suivre” de toute - façon, le coût de la migration a été - accepté comme nécessaire, et la transition a - été réalisée. Le mécanisme &os; - de bibliothèques partagées se rapproche plus - du style de mécanisme de bibliothèques - partagées de &sunos; de Sun, et est très simple - à utiliser.</para> - - <para>Pourquoi existe-t-il tant de formats différents?</para> - - <para>Dans un obscure et lointain passé, il y avait du - matériel simple. Ce matériel simple supportait - un simple petit système. <filename>a.out</filename> - était complètement adapté pour - réprésenter les binaires sur ce système simple - (un PDP-11). Au fur et à mesure que des personnes - portaient &unix; à partir de ce système - simple, ils ont maintenus le format <filename>a.out</filename> - parce qu'il était suffisant pour les premiers portages - d'&unix; sur des architectures comme le Motorola 68k, les VAX, - etc.</para> - - <para>Alors un certain ingénieur matériel brillant - a décidé qu'il pourrait forcer le matériel - à faire des choses bizarre, l'autorisant ainsi à - réduire le nombre de portes logiques et permettant - au coeur du CPU de fonctionner plus rapidement. - Bien qu'on l'a fait fonctionner avec ce nouveau - type de matériel (connu de nos jour sous le nom de - <acronym>RISC</acronym>), <filename>a.out</filename> n'était pas adapté - à ce matériel, aussi beaucoup de formats ont - été développés - pour obtenir de meilleures performances de ce matériel - que ce que pouvait offrir le simple et limité format - qu'était <filename>a.out</filename>. Des - choses comme <acronym>COFF</acronym>, <acronym>ECOFF</acronym>, - et quelques autres obscures formats ont été - inventé et leur limites explorées avant que les choses - ne se fixent sur <acronym>ELF</acronym>.</para> - - <para>En outre, les tailles des programmes devenaient - énormes alors que les disques (et la mémoire - physique) étaient toujours relativment - petits, aussi le concept de bibliothèque partagée - est né. Le système de VM (mémoire virtuelle) - est également devenu plus sophistiqué. - Tandis que chacune de ces avancées était - faites en utilisant le format <filename>a.out</filename>, - son utilité a été élargie - de plus en plus avec chaque nouvelle fonction. De plus les - gens ont voulu charger dynamiquement des choses à - l'exécution, ou se débarasser de partie de - leur programme après l'initialisation pour économiser - de l'espace mémoire et de pagination. Les langages - sont devenus plus sophistiqués et les gens ont voulu - du code appelé automatiquement avant la partie - principale du programme. Beaucoup de modifications ont - été apportées au format <filename>a.out</filename> - pour rendre possible toutes ces choses, et cela a - fonctionné pendant un certain temps. Avec le temps, - <filename>a.out</filename> n'était plus capable de - gérer tous ces problèmes sans une augmentation - toujours croissante du code et de sa complexité. - Tandis <acronym>ELF</acronym> résolvait plusieurs de - ces problèmes, il aurait été pénible - de quitter un système qui a fonctionné. - Ainsi <acronym>ELF</acronym> a dû attendre jusqu'au moment - où il était plus pénible de rester avec - <filename>a.out</filename> que d'émigrer vers - <acronym>ELF</acronym>.</para> - - <para>Cependant, avec le temps, les outils de compilation - desquels ceux de &os; sont dérivés (l'assembleur - et le chargeur tout spécialement) ont - évolué en parallèle. - Les développeurs &os; ajoutèrent les - bibliothèques partagées et corrigèrent - quelques bogues. Les gens de chez GNU qui ont à - l'origine écrit ces programmes, les récrivèrent - et ajoutèrent un support plus simple pour la compilation - multi-plateformes, avec différents formats - à volonté, et ainsi de suite. Lorsque beaucoup de personnes - ont voulu élaborer des compilateurs multi-plateformes - pour &os;, elles n'eurent pas beaucoup de chance puisque - les anciennes sources que &os; avait pour - <application>as</application> et <application>ld</application> - n'étaient pas adaptées à cette tâche. - Le nouvel ensemble d'outils de GNU - (<application>binutils</application>) supporte la compilation - multi-plateformes, <acronym>ELF</acronym>, les - bibliothèques partagées, les extensions C++, etc. - De plus, de nombreux vendeurs de logiciels fournissent des - binaires <acronym>ELF</acronym>, et c'est une bonne chose pour - permettre leur exécution sous &os;.</para> - - <para><acronym>ELF</acronym> est plus expressif - qu'<filename>a.out</filename> et permet plus d'extensibilité - dans le système de base. - Les outils <acronym>ELF</acronym> sont mieux maintenus, et - offrent un support pour la compilation multi-plateformes, ce qui - est important pour de nombreuses personnes. - <acronym>ELF</acronym> peut être légèrement plus lent - qu'<filename>a.out</filename>, mais tenter de mesurer cette - différence n'est pas aisé. Il y a - également de nombreux détails qui - diffèrent entre les deux dans la façon dont - ils mappent les pages mémoire, gère le code - d'initialisation, etc. - Dans le futur, le support <filename>a.out</filename> sera - retiré du noyau <filename>GENERIC</filename>, et - par la suite retiré des sources du noyau une fois que le - besoin d'exécuter d'anciens programmes - <filename>a.out</filename> aura disparu.</para> - </sect1> - - <sect1 id="basics-more-information"> - <title>Pour plus d'information</title> - - <sect2 id="basics-man"> - <title>Les pages de manuel</title> - <indexterm><primary>pages de manuel</primary></indexterm> - - <para>La documentation la plus complète sur FreeBSD est sous la - forme de pages de manuel. Presque chaque programme sur le - système est fournit avec un court manuel de - référence expliquant l'utilisation de base et les - diverses options. Ces manuels peuvent être visualisés - avec la commande <command>man</command>. - L'utilisation de la commande <command>man</command> est - simple:</para> - - <screen>&prompt.user; <userinput>man <replaceable>command</replaceable></userinput></screen> - - <para><literal>command</literal> est le nom de la commande - à propos de laquelle vous désirez en savoir plus. - Par exemple, pour en savoir plus au sujet de la commande - <command>ls</command> tapez:</para> - - <screen>&prompt.user; <userinput>man ls</userinput></screen> - - <para>Les manuels en ligne sont divisés en sections - numérotées:</para> - - <orderedlist> - <listitem> - <para>Commandes utilisateur.</para> - </listitem> - - <listitem> - <para>Appels système et numéros d'erreur.</para> - </listitem> - - <listitem> - <para>Fonctions des bibliothèques C.</para> - </listitem> - - <listitem> - <para>Pilotes de périphérique.</para> - </listitem> - - <listitem> - <para>Formats de fichier.</para> - </listitem> - - <listitem> - <para>Jeux et autres divertissements.</para> - </listitem> - - <listitem> - <para>Information diverse.</para> - </listitem> - - <listitem> - <para>Commandes de maintenance et d'utilisation du - système.</para> - </listitem> - - <listitem> - <para>Information de développement du noyau.</para> - </listitem> - </orderedlist> - - <para>Dans certains cas, le même sujet peut apparaître - dans plus d'une section du manuel en ligne. Par exemple, il existe une - commande utilisateur <command>chmod</command> et un appel - système <function>chmod()</function>. Dans ce cas, vous pouvez - préciser à la commande <command>man</command> laquelle - vous désirez en spécifiant la section:</para> - - <screen>&prompt.user; <userinput>man 1 chmod</userinput></screen> - - <para>Cela affichera la page de manuel de la commande utilisateur - <command>chmod</command>. Les références à - une section particulière du manuel en ligne sont - traditionnellement placées entre parenthèses, ainsi - &man.chmod.1; se rapporte à la commande - utilisateur <command>chmod</command> et &man.chmod.2; se - rapporte à l'appel système.</para> - - <para>C'est parfait si vous connaissez le nom de la commande et - vous souhaitez simplement savoir comment l'utiliser, mais qu'en - est-il si vous ne pouvez pas vous rappelez du nom de la - commande? Vous pouvez utiliser <command>man</command> pour - rechercher des mots-clés dans les descriptions de commandes en - employant l'option <option>-k</option>:</para> - - <screen>&prompt.user; <userinput>man -k mail</userinput></screen> - - <para>Avec cette commande on vous affichera la liste des commandes - qui ont le mot-clé “mail” dans leurs descriptions. - C'est en fait équivalent à l'utilisation de la commande - <command>apropos</command>.</para> - - <para>Ainsi, vous regardez toutes ces commandes fantaisistes - contenues dans <filename>/usr/bin</filename> mais vous n'avez - pas la moindre idée de ce quelles font vraiment? Faites - simplement:</para> - - <screen>&prompt.user; <userinput>cd /usr/bin</userinput> -&prompt.user; <userinput>man -f *</userinput></screen> - - <para>ou</para> - - <screen>&prompt.user; <userinput>cd /usr/bin</userinput> -&prompt.user; <userinput>whatis *</userinput></screen> - - <para>ce qui fait la même chose.</para> - </sect2> - - <sect2 id="basics-info"> - <title>Fichiers GNU Info</title> - <indexterm><primary>Free Software Foundation</primary></indexterm> - <indexterm><primary>Fondation pour le Logiciel Libre</primary></indexterm> - - <para>FreeBSD inclut beaucoup d'applications et d'utilitaires - produit par la Fondation pour le Logiciel Libre ( Free Software - Foundation). En plus des pages de manuel, ces programmes sont - fournis avec des documents hypertexte appelés fichiers - <literal>info</literal> qui peuvent être lus avec la commande - <command>info</command> ou, si vous avez installé - <application>emacs</application>, dans le mode info - d'<application>emacs</application>.</para> - - <para>Pour utiliser la commande &man.info.1;, tapez simplement:</para> - - <screen>&prompt.user; <userinput>info</userinput></screen> - - <para>Pour une brève introduction, tapez <literal>h</literal>. - Pour une référence rapide sur la commande, tapez - <literal>?</literal>.</para> - </sect2> - </sect1> -</chapter> -<!-- - Local Variables: - mode: sgml - sgml-declaration: "../chapter.decl" - sgml-indent-data: t - sgml-omittag: nil - sgml-always-quote-attributes: t - sgml-parent-document: ("../book.sgml" "part" "chapter") - End: ---> - |