                                 Manuel FreeBSD

  Groupe de Documentation FreeBSD

   Version: a266a60bd2

   Copyright (c) 1995-2021 Groupe de Documentation FreeBSD

   Copyright

   Redistribution and use in source (XML DocBook) and 'compiled' forms (XML,
   HTML, PDF, PostScript, RTF and so forth) with or without modification, are
   permitted provided that the following conditions are met:

    1. Redistributions of source code (XML DocBook) must retain the above
       copyright notice, this list of conditions and the following disclaimer
       as the first lines of this file unmodified.

    2. Redistributions in compiled form (transformed to other DTDs, converted
       to PDF, PostScript, RTF and other formats) must reproduce the above
       copyright notice, this list of conditions and the following disclaimer
       in the documentation and/or other materials provided with the
       distribution.

  Important:

   THIS DOCUMENTATION IS PROVIDED BY THE FREEBSD DOCUMENTATION PROJECT "AS
   IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
   THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
   PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD DOCUMENTATION
   PROJECT BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
   DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

   FreeBSD is a registered trademark of the FreeBSD Foundation.

   3Com and HomeConnect are registered trademarks of 3Com Corporation.

   3ware is a registered trademark of 3ware Inc.

   ARM is a registered trademark of ARM Limited.

   Adaptec is a registered trademark of Adaptec, Inc.

   Adobe, Acrobat, Acrobat Reader, Flash and PostScript are either registered
   trademarks or trademarks of Adobe Systems Incorporated in the United
   States and/or other countries.

   Apple, AirPort, FireWire, iMac, iPhone, iPad, Mac, Macintosh, Mac OS,
   Quicktime, and TrueType are trademarks of Apple Inc., registered in the
   U.S. and other countries.

   Android is a trademark of Google Inc.

   Heidelberg, Helvetica, Palatino, and Times Roman are either registered
   trademarks or trademarks of Heidelberger Druckmaschinen AG in the U.S. and
   other countries.

   IBM, AIX, OS/2, PowerPC, PS/2, S/390, and ThinkPad are trademarks of
   International Business Machines Corporation in the United States, other
   countries, or both.

   IEEE, POSIX, and 802 are registered trademarks of Institute of Electrical
   and Electronics Engineers, Inc. in the United States.

   Intel, Celeron, Centrino, Core, EtherExpress, i386, i486, Itanium,
   Pentium, and Xeon are trademarks or registered trademarks of Intel
   Corporation or its subsidiaries in the United States and other countries.

   Intuit and Quicken are registered trademarks and/or registered service
   marks of Intuit Inc., or one of its subsidiaries, in the United States and
   other countries.

   Linux is a registered trademark of Linus Torvalds.

   LSI Logic, AcceleRAID, eXtremeRAID, MegaRAID and Mylex are trademarks or
   registered trademarks of LSI Logic Corp.

   Microsoft, IntelliMouse, MS-DOS, Outlook, Windows, Windows Media and
   Windows NT are either registered trademarks or trademarks of Microsoft
   Corporation in the United States and/or other countries.

   Motif, OSF/1, and UNIX are registered trademarks and IT DialTone and The
   Open Group are trademarks of The Open Group in the United States and other
   countries.

   Oracle is a registered trademark of Oracle Corporation.

   RealNetworks, RealPlayer, and RealAudio are the registered trademarks of
   RealNetworks, Inc.

   Red Hat, RPM, are trademarks or registered trademarks of Red Hat, Inc. in
   the United States and other countries.

   Sun, Sun Microsystems, Java, Java Virtual Machine, JDK, JRE, JSP, JVM,
   Netra, OpenJDK, Solaris, StarOffice, SunOS and VirtualBox are trademarks
   or registered trademarks of Sun Microsystems, Inc. in the United States
   and other countries.

   MATLAB is a registered trademark of The MathWorks, Inc.

   SpeedTouch is a trademark of Thomson.

   VMware is a trademark of VMware, Inc.

   Mathematica is a registered trademark of Wolfram Research, Inc.

   XFree86 is a trademark of The XFree86 Project, Inc.

   Ogg Vorbis and Xiph.Org are trademarks of Xiph.Org.

   Many of the designations used by manufacturers and sellers to distinguish
   their products are claimed as trademarks. Where those designations appear
   in this document, and the FreeBSD Project was aware of the trademark
   claim, the designations have been followed by the << (TM) >> or the
   << (R) >> symbol.

   2021-01-12 19:12:21 +0100 par Marc Fonvieille.
   Resume

   Bienvenue `a FreeBSD! Ce manuel decrit l'installation et l'utilisation
   quotidienne de FreeBSD 12.1-RELEASE, et FreeBSD 11.3-RELEASE. Ce document
   est le resultat du travail toujours en cours de nombreuses personnes.
   Certaines sections peuvent ne pas etre `a jour. Les personnes qui sont
   interessees pour aider `a mettre `a jour et `a completer ce document
   devraient envoyer un courrier electronique `a la liste de diffusion du
   groupe de documentation de FreeBSD.

   La derniere version anglaise de ce document est disponible sur le site Web
   de FreeBSD. Les versions anterieures peuvent etre obtenues aupres de
   http://docs.FreeBSD.org/doc/). Il peut etre aussi telecharge dans divers
   formats et options de compression depuis le serveur FTP FreeBSD ou l'un
   des nombreux sites miroirs. Des versions imprimees peuvent etre achetees
   aupres de FreeBSD Mall. Des recherches dans le Manuel et les autres
   documents peuvent etre effectuees `a partir de la page de recherches.

   N.d.T.: Contactez Marc Fonvieille <blackend@FreeBSD.org> si vous voulez
   collaborer `a la traduction.

   [ Multiples pages HTML / Page HTML unique ]

     ----------------------------------------------------------------------

   Table des matieres

   Preface

   I. Pour commencer

                1. Introduction

                             1.1. Synopsis

                             1.2. Bienvenue `a FreeBSD!

                             1.3. A propos du Projet FreeBSD

                2. Installer FreeBSD

                             2.1. Synopsis

                             2.2. Configuration materielle minimale

                             2.3. Taches de pre-installation

                             2.4. Lancer l'installation

                             2.5. Utilisation de bsdinstall

                             2.6. Allouer l'espace disque

                             2.7. Recuperation des fichiers de distribution

                             2.8. Comptes utilisateurs, fuseau horaire,
                             services et renforcement de la securite

                             2.9. Interfaces reseau

                             2.10. Depannage

                             2.11. Utilisation du CD Live

                3. Quelques bases d'UNIX

                             3.1. Synopsis

                             3.2. Consoles virtuelles & terminaux

                             3.3. Permissions

                             3.4. Organisation de l'arborescence des
                             repertoires

                             3.5. Organisation des disques

                             3.6. Monter et demonter des systemes de fichiers

                             3.7. Processus

                             3.8. Daemons, signaux, et comment tuer un
                             processus

                             3.9. Interpreteurs de commandes - "Shells"

                             3.10. Editeurs de texte

                             3.11. Peripheriques et fichiers speciaux de
                             peripherique

                             3.12. Le format des fichiers binaires

                             3.13. Pour plus d'information

                4. Installer des applications: les logiciels pre-compiles et
                les logiciels portes

                             4.1. Synopsis

                             4.2. Generalites sur l'installation de logiciels

                             4.3. Trouver votre application

                             4.4. Utiliser le systeme des logiciels
                             pre-compiles

                             4.5. Utiliser le catalogue des logiciels portes

                             4.6. Activites de post-installation

                             4.7. Que faire avec les logiciels portes ne
                             fonctionnant pas?

                5. Le systeme X Window

                             5.1. Synopsis

                             5.2. Terminologie

                             5.3. Installer X11

                             5.4. Configuration d'Xorg

                             5.5. Utilisation des polices de caracteres sous
                             Xorg

                             5.6. Le gestionnaire de connexion graphique XDM

                             5.7. Environnements de bureau

                             5.8. Installation de Compiz Fusion

   II. Taches courantes

                6. Bureautique

                             6.1. Synopsis

                             6.2. Navigateurs

                             6.3. Productivite

                             6.4. Lecteurs de document

                             6.5. Finance

                             6.6. Resume

                7. Multimedia

                             7.1. Synopsis

                             7.2. Configurer une carte son

                             7.3. Fichiers MP3

                             7.4. Lecture des Videos

                             7.5. Configuration des cartes TV

                             7.6. Scanners

                8. Configurer le noyau de FreeBSD

                             8.1. Synopsis

                             8.2. Pourquoi compiler un noyau sur mesure?

                             8.3. Compiler et installer un noyau sur mesure

                             8.4. Le fichier de configuration

                             8.5. Si quelque chose se passe mal

                9. Imprimer

                             9.1. Synopsis

                             9.2. Introduction

                             9.3. Configuration de base

                             9.4. Configuration avancee de l'imprimante

                             9.5. Using Printers ** Traduction en Cours **

                             9.6. Alternatives to the Standard Spooler **
                             Traduction en Cours **

                             9.7. Troubleshooting ** Traduction en Cours **

                10. Compatibilite binaire avec Linux(R)

                             10.1. Synopsis

                             10.2. Configurer la compatibilite binaire avec
                             Linux(R)

                             10.3. Sujets avances

   III. Administration Systeme

                11. Configuration et optimisation

                             11.1. Synopsis

                             11.2. Configuration principale

                             11.3. Configuration des applications

                             11.4. Demarrer des services

                             11.5. Configuration de l'utilitaire cron

                             11.6. Utilisation du systeme rc(8) sous FreeBSD

                             11.7. Configuration des cartes reseaux

                             11.8. Hotes virtuels

                             11.9. Fichiers de configuration

                             11.10. Optimisation avec sysctl(8)

                             11.11. Optimiser les disques

                             11.12. Optimisation des limitations du noyau

                             11.13. Ajouter de l'espace de pagination

                             11.14. Gestion de l'energie et des ressources

                             11.15. Utiliser et deboguer l'ACPI sous FreeBSD

                12. Processus de demarrage de FreeBSD

                             12.1. Synopsis

                             12.2. Le probleme du demarrage

                             12.3. Le gestionnaire de demarrage et les etapes
                             de demarrage

                             12.4. Interaction avec le noyau au demarrage

                             12.5. "Device Hints"-Parametrage des
                             peripheriques

                             12.6. Init: Initialisation de la gestion des
                             processus

                             12.7. Sequence d'arret du systeme

                13. Gestion des comptes et des utilisateurs

                             13.1. Synopsis

                             13.2. Introduction

                             13.3. Le compte super-utilisateur

                             13.4. Comptes systeme

                             13.5. Comptes utilisateur

                             13.6. Modifier des comptes

                             13.7. Mettre en place des restrictions pour les
                             utilisateurs

                             13.8. Groupes

                14. Securite

                             14.1. Synopsis

                             14.2. Introduction

                             14.3. Securing FreeBSD ** Traduction en Cours **

                             14.4. DES, MD5, et chiffrement

                             14.5. Mots de passe non reutilisables

                             14.6. L'encapsuleur TCP (<< TCP Wrappers >>)

                             14.7. Kerberos

                             14.8. Kerberos5 ** Traduction en Cours **

                             14.9. OpenSSL

                             14.10. IPsec

                             14.11. OpenSSH

                             14.12. Listes de controle d'acces au systeme de
                             fichiers

                             14.13. Surveillance des problemes de securite
                             relatifs aux programmes tierce-partie

                             14.14. Avis de securite de FreeBSD

                             14.15. Comptabilite des processus

                15. Environnements jail

                             15.1. Synopsis

                             15.2. Termes relatifs aux environnements jail

                             15.3. Introduction

                             15.4. Creation et controle de l'environnement
                             jail

                             15.5. Optimisation et administration

                16. Mandatory Access Control ** Traduction en Cours **

                             16.1. Synopsis

                             16.2. Key Terms in this Chapter

                             16.3. Explanation of MAC

                             16.4. Understanding MAC Labels

                             16.5. Module Configuration

                             16.6. The MAC bsdextended Module

                             16.7. The MAC ifoff Module

                             16.8. The MAC portacl Module

                             16.9. MAC Policies with Labeling Features

                             16.10. The MAC partition Module

                             16.11. The MAC Multi-Level Security Module

                             16.12. The MAC Biba Module

                             16.13. The MAC LOMAC Module

                             16.14. Implementing a Secure Environment with
                             MAC

                             16.15. Another Example: Using MAC to Constrain a
                             Web Server

                             16.16. Troubleshooting the MAC Framework

                17. Audit des evenements relatifs `a la securite du systeme

                             17.1. Synopsis

                             17.2. Mots-cles

                             17.3. Configuration de l'audit

                             17.4. Travailler avec les traces d'audit

                18. Stockage des donnees

                             18.1. Synopsis

                             18.2. Noms des peripheriques

                             18.3. Ajouter des disques

                             18.4. RAID

                             18.5. Peripheriques de stockage USB

                             18.6. Creation et utilisation de supports
                             optiques (CDs)

                             18.7. Creation et utilisation de supports
                             optiques (DVDs)

                             18.8. Creation et utilisation de disquettes

                             18.9. Creer et utiliser les bandes magnetiques

                             18.10. Sauvegardes sur disquettes

                             18.11. Strategies de sauvegarde

                             18.12. Sauvegardes

                             18.13. Systemes de fichiers reseaux, en memoire
                             et sauvegardes sur fichier

                             18.14. Instantane ("Snapshot") d'un systeme de
                             fichiers

                             18.15. Quotas d'utilisation des disques

                             18.16. Chiffrer les partitions d'un disque

                             18.17. Chiffrage de l'espace de pagination

                19. GEOM: architecture modulaire de gestion des disques

                             19.1. Synopsis

                             19.2. Introduction `a GEOM

                             19.3. RAID0 - << Striping >>

                             19.4. RAID1 - << mirroring >>

                             19.5. Peripheriques reseau << GEOM Gate >>

                             19.6. Ajouter un label `a un disque

                20. The Z File System (ZFS) ** Traduction en Cours **

                             20.1. What Makes ZFS Different

                             20.2. Quick Start Guide

                             20.3. zpool Administration

                             20.4. zfs Administration

                             20.5. Delegated Administration

                             20.6. Additional Resources

                             20.7. ZFS Features and Terminology

                21. Autres systemes de fichiers

                             21.1. Synopsis

                             21.2. Systemes de fichiers Linux(R)

                22. Le gestionnaire de volume Vinum

                             22.1. Synopsis

                             22.2. Les disques sont trop petits

                             22.3. Les goulots d'etranglement d'acces aux
                             donnees

                             22.4. Integrite des donnees

                             22.5. Objets Vinum

                             22.6. Quelques exemples

                             22.7. Appellation des objets

                             22.8. Configuration de Vinum

                23. Virtualisation

                             23.1. Synopsis

                             23.2. FreeBSD comme systeme d'exploitation
                             invite

                             23.3. FreeBSD comme systeme d'exploitation hote

                24. Localisation - Utilisation et configuration de
                l'I18N/L10N

                             24.1. Synopsis

                             24.2. Les bases

                             24.3. Utiliser la localisation

                             24.4. Compiler des programmes I18N

                             24.5. Localiser FreeBSD pour des langues
                             specifiques

                25. Mise `a jour de FreeBSD

                             25.1. Synopsis

                             25.2. Mise `a jour de FreeBSD

                             25.3. Portsnap: un outil de mise `a jour du
                             catalogue des logiciels portes

                             25.4. Updating the Documentation Set **
                             Traduction en Cours **

                             25.5. Suivre une branche de developpement

                             25.6. Synchroniser vos sources

                             25.7. Recompiler le systeme

                             25.8. Suivre les mises `a jour pour plusieurs
                             machines

                26. DTrace

                             26.1. Synopsis

                             26.2. Des differences de mise en oeuvre

                             26.3. Activer la prise en charge de DTrace

                             26.4. Utiliser DTrace

                             26.5. Le langage D

   IV. Reseau

                27. Serial Communications ** Traduction en Cours **

                             27.1. Synopsis

                             27.2. Introduction

                             27.3. Terminals

                             27.4. Dial-in Service

                             27.5. Dial-out Service

                             27.6. Setting Up the Serial Console

                28. PPP et SLIP

                             28.1. Synopsis

                             28.2. Using User PPP ** Traduction en Cours **

                             28.3. Utiliser PPP integre au noyau

                             28.4. Utiliser PPP sur Ethernet (PPPoE)

                             28.5. Utiliser PPP sur ATM (PPPoA)

                             28.6. Utiliser SLIP

                29. Courrier electronique

                             29.1. Synopsis

                             29.2. Utilisation du courrier electronique

                             29.3. Configuration de sendmail

                             29.4. Changer votre agent de transfert de
                             courrier

                             29.5. Depannage

                             29.6. Sujets avances

                             29.7. SMTP avec UUCP

                             29.8. Configuration pour l'envoi seul

                             29.9. Utiliser le courrier electronique avec une
                             connexion temporaire

                             29.10. Authentification SMTP

                             29.11. Clients de messagerie

                             29.12. Utiliser fetchmail

                             29.13. Utiliser procmail

                30. Serveurs reseau

                             30.1. Synopsis

                             30.2. Le "super-serveur" inetd

                             30.3. Systeme de fichiers reseau (NFS)

                             30.4. Services d'information reseau (NIS/YP)

                             30.5. Configuration reseau automatique (DHCP)

                             30.6. Serveurs de noms (DNS)

                             30.7. Serveur HTTP Apache

                             30.8. Protocole de transfert de fichiers (FTP)

                             30.9. Serveur de fichiers et d'impression pour
                             clients Microsoft(R) Windows(R) (Samba)

                             30.10. Synchronisation de l'horloge avec NTP

                31. Firewalls ** Traduction en Cours **

                             31.1. Introduction

                             31.2. Firewall Concepts

                             31.3. Firewall Packages

                             31.4. The OpenBSD Packet Filter (PF) and ALTQ

                             31.5. The IPFILTER (IPF) Firewall

                             31.6. IPFW

                32. Administration reseau avancee

                             32.1. Synopsis

                             32.2. Passerelles et routes

                             32.3. Reseau sans fil

                             32.4. Bluetooth

                             32.5. Bridging

                             32.6. Systeme sans disque dur

                             32.7. ISDN

                             32.8. Translation d'adresses

                             32.9. IP sur liaison parallele (PLIP)

                             32.10. IPv6

                             32.11. ATM (<< Asynchronous Transfer Mode >>)

   V. Annexes

                A. Se procurer FreeBSD

                             A.1. Editeurs de CD-ROMs et DVDs

                             A.2. Sites FTP

                             A.3. CVS anonyme

                             A.4. Utiliser CTM

                             A.5. Utiliser CVSup

                             A.6. Utiliser Portsnap

                             A.7. Etiquettes CVS

                             A.8. Sites AFS

                             A.9. Sites rsync

                B. Bibliographie

                             B.1. Livres & magazines consacres `a FreeBSD

                             B.2. Manuels d'utilisation

                             B.3. Manuels d'administration

                             B.4. Manuels de programmation

                             B.5. "Internes" du systeme d'exploitation

                             B.6. Ouvrages de reference en matiere de
                             securite

                             B.7. Ouvrages de reference sur le materiel

                             B.8. Histoire d'UNIX(R)

                             B.9. Revues et journaux

                C. Ressources sur Internet

                             C.1. Listes de diffusion

                             C.2. Forums de discussion

                             C.3. Serveurs World Wide Web

                             C.4. Adresses electroniques

                             C.5. Comptes

                D. Cles OpenPGP

                             D.1. Officiers

   Glossaire FreeBSD

   Index

   Liste des illustrations

   2.1. Menu du chargeur FreeBSD

   2.2. Menu des options du chargeur FreeBSD

   2.3. Menu d'accueil

   2.4. Chargement de la table de clavier

   2.5. Menu de selection de la table de clavier

   2.6. Menu de test de la table de clavier

   2.7. Configuration du nom de machine

   2.8. Selection des composants `a installer

   2.9. Installation `a partir du reseau

   2.10. Choix du partitionnement

   2.11. Selection parmi plusieurs disques

   2.12. Selection de l'integralite du disque ou d'une partition

   2.13. Confirmation

   2.14. Selection du systeme de partionnement

   2.15. Verification des partitions creees

   2.16. Confirmation finale

   2.17. Creer manuellement les partitions

   2.18. Creer manuellement les partitions

   2.19. Creer manuellement les partitions

   2.20. Menu de partionnement ZFS

   2.21. Type de pool ZFS

   2.22. Selection de disques

   2.23. Selection non-valide

   2.24. Recherche des peripheriques

   2.25. Analyse d'un disque

   2.26. Nom du Pool

   2.27. Quantite d'espace de pagination

   2.28. Derniere chance

   2.29. Mot de passe de chiffrement des disques

   2.30. Initialisation du chiffrement

   2.31. Recuperation des fichiers de distribution

   2.32. Verification des fichiers de distribution

   2.33. Decompression des fichiers de distribution

   2.34. Saisie du mot de passe root

   2.35. Selectionner une region

   2.36. Selection d'un pays

   2.37. Selection d'un fuseau horaire

   2.38. Confirmation du fuseau horaire

   2.39. Selection de la date

   2.40. Configuration de l'heure

   2.41. Selection de services supplementaires `a activer

   2.42. Selection des options de renforcement de la securite

   2.43. Ajout de comptes utilisateur

   2.44. Entree des informations utilisateur

   2.45. Quitter la gestion des utilisateurs et des groupes

   2.46. Configuration finale

   2.47. Configuration manuelle

   2.48. Achever l'installation

   2.49. Choix d'une interface reseau

   2.50. Recherche des points d'acces sans-fil

   2.51. Selection d'un reseau sans-fil

   2.52. Configuration WPA2

   2.53. Selection d'un fonctionnement reseau en IPv4

   2.54. Selection de la configuration IPv4 avec DHCP

   2.55. Configuration IPv4 en statique

   2.56. Selection d'un reseau IPv6

   2.57. Selection de la configuration IPv6 SLAAC

   2.58. Configuration IPv6 en statique

   2.59. Configuration du DNS

   2.60. Selection d'un site miroir

   22.1. Organisation par concatenation

   22.2. Organisation segmentee

   22.3. Organisation RAID-5

   22.4. Un simple volume Vinum

   22.5. Un volume Vinum en mode miroir

   22.6. Un volume Vinum segmente

   22.7. Un volume Vinum en mode miroir segmente

   Liste des tableaux

   2.1. Tables de partitionnement

   3.1. Codes des peripheriques disques

   5.1. Fichiers de configuration d'XDM

   17.1. Classes d'evenements par defaut

   17.2. Prefixes pour les classes d'audit

   18.1. Conventions de nom pour les disques physiques

   22.1. Organisations de plex Vinum

   32.1. Cablage d'un cable parallele pour reseau

   32.2. Adresses IPv6 reservees

   Liste des exemples

   2.1. Creation d'un systeme traditionnel de partitions pour systemes de
   fichiers separes

   3.1. Exemples d'appellation de disques, tranches et partitions

   3.2. Modele conceptuel d'un disque

   4.1. Telecharger un logiciel pre-compile `a la main puis l'installer
   localement

   5.1. Selection du pilote graphique Intel(R) `a l'aide d'un fichier

   5.2. Selection du pilote graphique Radeon `a l'aide d'un fichier

   5.3. Selection du pilote graphique VESA `a l'aide d'un fichier

   5.4. Selection du pilote graphique scfb `a l'aide d'un fichier

   5.5. Selection de la definition d'ecran `a l'aide d'un fichier

   5.6. Configuration manuelle des frequences du moniteur

   5.7. Configuration d'une disposition des touches de clavier

   5.8. Configuration de plusieurs dispositions des touches

   5.9. Activation de la sortie d'X `a l'aide du clavier

   5.10. Reglage du nombre de boutons de la souris

   11.1. Creer un fichier de pagination sous FreeBSD

   12.1. Ecran de boot0

   12.2. Ecran de boot2

   12.3. Une console non securisee dans /etc/ttys

   13.1. Ajouter un utilisateur sous FreeBSD

   13.2. Suppression interactive de compte avec rmuser

   13.3. chpass interactif par le super-utilisateur

   13.4. chpass interactif par un utilisateur ordinaire

   13.5. Modifier votre mot de passe

   13.6. Modifier le mot de passe d'un autre utilisateur en tant que
   super-utilisateur

   13.7. Ajouter un groupe en utilisant pw(8)

   13.8. Ajouter quelqu'un dans un groupe en utilisant pw(8)

   13.9. Utilisation de id(1) pour determiner l'appartenance `a un groupe

   14.1. Utiliser SSH pour creer un tunnel securise pour SMTP

   18.1. Utiliser dump(8) sur ssh

   18.2. Utiliser dump sur ssh avec la variable RSH positionnee

   18.3. Procedure de creation d'une disquette de demarrage

   18.4. Utilisation de mdconfig pour monter une image d'un systeme de
   fichiers

   18.5. Creation d'un nouveau disque sauvegarde sur fichier avec mdconfig

   18.6. Creation et montage d'un disque sauvegarde sur fichier avec mdmfs

   18.7. Creation d'un disque memoire avec mdconfig

   18.8. Creation d'un disque memoire avec mdmfs

   29.1. Configuration de la base de donnees d'acces de sendmail

   29.2. Exemple de base de donnees d'alias

   29.3. Exemple de correspondance de domaine virtuel de courrier

   30.1. Recharger le fichier de configuration d'inetd

   30.2. Monter un systemes de fichiers exporte avec amd

   32.1. Reseau d'agence ou `a domicile

   32.2. Siege social ou autre reseau

   A.1. Recuperer quelque chose de -CURRENT (ls(1)):

   A.2. Utiliser SSH pour recuperer l'arborescence src/:

   A.3. Recuperer la version 6-STABLE de ls(1):

   A.4. Generer la liste des differences concernant ls(1) (sous forme de
   "diffs unifies") entre differentes versions de FreeBSD

   A.5. Savoir quels autres noms de modules peuvent etre utilises:

                                    Preface

   Version franc,aise de Marc Fonvieille <blackend@FreeBSD.org>.

Public vise

   Le nouveau venu `a FreeBSD constatera que la premiere section de ce livre
   guide l'utilisateur `a travers le processus d'installation de FreeBSD, et
   presente progressivement les concepts et les conventions qui sont les
   fondements d'UNIX(R). Travailler avec cette section demande un peu plus
   que le simple desire d'explorer, et la capacite d'assimiler de nouveaux
   concepts quand ils sont presentes.

   Une fois que vous en etes arrive l`a, la seconde, bien plus grande,
   section du Manuel est une reference complete de tous les sujets qui
   interessent les administrateurs systemes de FreeBSD. Certains de ces
   chapitres peuvent vous recommander d'effectuer des lectures preliminaires,
   cela est note dans le synopsis au debut de chaque chapitre.

   Pour une liste de sources d'informations complementaires, veuillez
   consulter Annexe B, Bibliographie.

Modifications depuis la Seconde Edition

   Cette seconde edition est le point culminant de plus de deux ans de
   travail pour les membres du Groupe de Documentation de FreeBSD. Ce qui
   suit presente les changements principaux de cette nouvelle edition:

     * Chapitre 11, Configuration et optimisation, le chapitre
       << Configuration et optimisation >>, a ete augmente avec des
       informations nouvelles sur la gestion ACPI des ressources et de
       l'energie, sur l'utilitaire systeme cron, et sur d'autres d'options
       supplementaires d'optimisation du noyau.

     * Chapitre 14, Securite, le chapitre << Securite >>, a ete augmente avec
       de nouvelles informations sur les reseaux prives virtuels (VPNs), les
       listes de controle d'acces au systeme de fichiers (ACLs), et sur les
       avis de securite.

     * Chapitre 16, Mandatory Access Control ** Traduction en Cours **, << Le
       controle d'acces obligatoire >> (MAC) est un nouveau chapitre ajoute
       avec cette edition. Il explique ce qu'est le MAC et comment ce
       mecanisme peut etre utilise pour securiser un systeme FreeBSD.

     * Chapitre 18, Stockage des donnees, le chapitre << Stockage des
       donnees >>, a beneficie de l'ajout de nouvelles sections concernant
       les peripheriques de stockage USB, les instantanes de systemes de
       fichiers, les quotas d'utilisation des disques, les systemes de
       fichiers reseaux et sauvegardes sur fichier, et le chiffrage de
       partitions.

     * Chapitre 22, Le gestionnaire de volume Vinum, << Vinum >>, est un
       nouveau chapitre apparaissant avec cette edition. Il decrit
       l'utilisation de Vinum, un gestionnaire de volume qui permet la
       creation de disques logiques independants du peripherique, et
       l'utilisation de systemes RAID-0, RAID-1 et RAID-5 logiciels.

     * Une section depannage a ete ajoutee au chapitre Chapitre 28, PPP et
       SLIP, PPP et SLIP.

     * Chapitre 29, Courrier electronique, le chapitre << Courrier
       electronique >>, beneficie de nouvelles sections sur l'utilisation
       d'agents de transfert de courrier alternatifs, sur l'authentification
       SMTP, l'UUCP, fetchmail, procmail, et d'autres sujets avances.

     * Chapitre 30, Serveurs reseau, le chapitre << Serveurs reseau >>,
       apparait avec cette edition. Ce chapitre traite de la configuration du
       serveur HTTP Apache, de ftpd, et celle d'un serveur pour clients
       Microsoft(R) Windows(R) `a l'aide de Samba. Certaines sections du
       chapitre Chapitre 32, Administration reseau avancee, << Administration
       reseau avancee >> ont ete deplacees vers ce nouveau chapitre.

     * Chapitre 32, Administration reseau avancee, le chapitre
       << Administration reseau avancee >> a ete complete avec des
       informations sur l'utilisation des peripheriques Bluetooth(R) sous
       FreeBSD, la configuration de reseaux sans fil, et sur le mode de
       transfert reseau asynchrone (ATM).

     * Un glossaire a ete ajoute pour centraliser les definitions des termes
       techniques employes tout au long de cet ouvrage.

     * La presentation des tableaux et des figures a ete amelioree.

Modifications depuis la Premiere Edition

   La seconde edition est le point culminant de deux ans de travail pour les
   membres du Groupe de Documentation de FreeBSD. Ce qui suit presente les
   changements principaux de cette nouvelle edition:

     * Un sommaire complet a ete ajoute.

     * Toutes les figures ASCII ont ete remplacees par des graphiques.

     * Un synopsis standard a ete ajoute `a chaque chapitre pour donner un
       rapide resume des informations contenues par ce dernier et ce qu'est
       sense connaitre le lecteur.

     * Le contenu a ete reorganise de fac,on logique en trois parties: "Pour
       commencer", "L'Administration Systeme", et "Annexes".

     * Le Chapitre 2, Installer FreeBSD ("Installer FreeBSD") fut
       completement reecrit avec de nombreuses photos d'ecrans pour rendre le
       texte plus facile `a comprendre pour les nouveaux utilisateurs.

     * Le Chapitre 3, Quelques bases d'UNIX ("Quelques bases d'UNIX(R)") a
       ete augmente pour contenir des informations additionnelles sur les
       processus, daemons et signaux.

     * Le Chapitre 4, Installer des applications: les logiciels pre-compiles
       et les logiciels portes ("Installer des applications") a ete augmente
       pour contenir des informations complementaires sur la gestion des
       applications pre-compilees.

     * Le Chapitre 5, Le systeme X Window ("Le systeme X Window") a
       completement ete reecrit en insistant sur l'utilisation de
       technologies modernes d'environnement de travail comme KDE et GNOME
       sous XFree86(TM) 4.X.

     * Le Chapitre 12, Processus de demarrage de FreeBSD ("Le processus de
       demarrage de FreeBSD") a ete augmente.

     * Le Chapitre 18, Stockage des donnees ("Stockage des donnees") fut
       reecrit `a partir de ce qui etait `a l'origine deux chapitres separes
       "Disques" et "Sauvegardes". Nous pensons que le sujet est plus facile
       `a apprehender quand il est presente en un seul chapitre. Une section
       sur RAID (materiel et logiciel) fut egalement ajoutee.

     * Le Chapitre 27, Serial Communications ** Traduction en Cours **
       ("Communications serie") a ete completement reorganise et mis `a jour
       pour FreeBSD 4.X/5.X.

     * Le Chapitre 28, PPP et SLIP ("PPP et SLIP") a ete sensiblement mis `a
       jour.

     * Plusieurs nouvelles sections ont ete ajoute au Chapitre 32,
       Administration reseau avancee ("Administration reseau avancee").

     * Le Chapitre 29, Courrier electronique ("Courrier electronique") fut
       augmente pour inclure plus d'informations au sujet de la configuration
       de sendmail.

     * Le Chapitre 10, Compatibilite binaire avec Linux(R) ("Compatibilite
       Linux(R)") a ete augmente pour inclure des informations sur
       l'installation d'Oracle(R) et SAP(R) R/3(R).

     * Les nouveaux sujets suivants sont abordes dans cette seconde edition:

          * Configuration et optimisation (Chapitre 11, Configuration et
            optimisation).

          * Multimedia (Chapitre 7, Multimedia)

Organisation de cet ouvrage

   Ce livre est divise en cinq parties logiquement distinctes. Le premiere
   section, Pour commencer, couvre l'installation et les bases de
   l'utilisation de FreeBSD. On s'attend `a ce que le lecteur suive ces
   chapitres dans l'ordre, sautant eventuellement les chapitres traitant de
   sujets familiers. La seconde section Taches courantes, couvre les
   fonctionnalites de FreeBSD frequemment utilisees. Cette section, ainsi que
   toutes les sections suivantes, peuvent etre lues dans n'importe quel
   ordre. Chaque chapitre debute avec un synopsis succinct qui decrit ce dont
   parle le chapitre et ce qu'on s'attend `a ce que le lecteur sache dej`a.
   Cela en vue de permettre au lecteur occasionnel de se rendre directement
   aux chapitres qui l'interesse. La troisieme section, Administration
   systeme, traite des sujets concernant l'administration. La quatrieme
   section, Reseaux, couvre le domaine des reseaux et des serveurs. La
   cinquieme section contient des annexes d'information de reference.

   Chapitre 1, Introduction, Introduction

           Presente FreeBSD `a un nouvel utilisateur. Il decrit l'histoire du
           projet FreeBSD, ses objectifs, son mode de developpement.

   Chapitre 2, Installer FreeBSD, Installation

           Guide un utilisateur `a travers le processus d'installation.
           Quelques sujets d'installation avancee, comme l'installation avec
           une console serie, sont aussi couverts.

   Chapitre 3, Quelques bases d'UNIX, Quelques bases d'UNIX(R)

           Couvre les commandes et fonctionnalites de base du systeme
           d'exploitation FreeBSD. Si vous etes familier avec Linux(R) ou un
           autre type d'UNIX(R) alors vous pouvez probablement passer ce
           chapitre.

   Chapitre 4, Installer des applications: les logiciels pre-compiles et les
   logiciels portes, Installer des applications

           Couvre l'installation de logiciels tiers avec l'innovant
           "Catalogue de logiciels portes" de FreeBSD et les logiciels
           pre-compiles.

   Chapitre 5, Le systeme X Window, Le systeme X Window

           Decrit le systeme X Window en general et l'utilisation d'X11 sur
           FreeBSD en particulier. Decrit egalement les environnements de
           travail comme KDE et GNOME.

   Chapitre 6, Bureautique, Bureautique

           Liste les applications de bureautique courantes, comme les
           navigateurs Web et les suites de bureautique, et decrit comment
           les installer sous FreeBSD.

   Chapitre 7, Multimedia, Multimedia

           Montre comment installer le support du son et de la video pour
           votre systeme. Decrit egalement quelques applications audio et
           video.

   Chapitre 8, Configurer le noyau de FreeBSD, Configurer le noyau de FreeBSD

           Explique pour quelles raisons vous devriez configurer un nouveau
           noyau et fournit des instructions detaillees pour la
           configuration, la compilation et l'installation d'un noyau sur
           mesures.

   Chapitre 9, Imprimer, Impression

           Decrit la gestion des imprimantes sous FreeBSD, y compris les
           informations sur les pages d'en-tete, la comptabilisation de
           l'usage et la configuration de base.

   Chapitre 10, Compatibilite binaire avec Linux(R), Compatibilite binaire
   avec Linux(R)

           Decrit les caracteristiques de la compatibilite Linux(R) sous
           FreeBSD. Fournit egalement les instructions detaillees de
           l'installation de plusieurs applications Linux(R) populaires comme
           Oracle(R), SAP(R) R/3(R) et Mathematica(R).

   Chapitre 11, Configuration et optimisation, Configuration et optimisation

           Decrit les parametres disponibles pour les administrateurs
           systemes afin d' optimiser les performances d'un systeme FreeBSD.
           Decrit egalement les differents fichiers de configuration utilises
           dans FreeBSD et ou les trouver.

   Chapitre 12, Processus de demarrage de FreeBSD, Processus de demarrage de
   FreeBSD

           Decrit le processus de demarrage de FreeBSD et explique comment
           controler ce processus avec des options de configuration.

   Chapitre 13, Gestion des comptes et des utilisateurs, Gestion des comptes
   et des utilisateurs

           Decrit la creation et la manipulation des comptes utilisateur.
           Traite egalement des limitations de ressources qui peuvent etre
           appliquees aux utilisateurs et des autres taches de gestion des
           comptes.

   Chapitre 14, Securite, Securite

           Decrit differents outils disponibles pour vous aider `a securiser
           votre systeme FreeBSD, dont Kerberos, IPsec et OpenSSH.

   Chapitre 15, Environnements jail, Environnements jails

           Decrit l'organisation des environnements jail, et les
           ameliorations apportees par ces environnements par rapport au
           support chroot traditionnel de FreeBSD.

   Chapitre 16, Mandatory Access Control ** Traduction en Cours **, Controle
   d'acces mandataire

           Explique ce qu'est le controle d'acces mandataire (MAC) et comment
           ce mecanisme peut etre utilise pour securiser un systeme FreeBSD.

   Chapitre 17, Audit des evenements relatifs `a la securite du systeme,
   Audit des evenements relatifs `a la securite

           Decrit ce qu'est l'audit d'evenements sous FreeBSD, comment cette
           fonctionnalite peut etre installee, configuree et comment les
           audits peuvent etre examines et surveilles.

   Chapitre 18, Stockage des donnees, Stockage des donnees

           Decrit comment gerer les supports de stockage et les systemes de
           fichiers avec FreeBSD. Cela inclut les disques physiques, les
           systemes RAID, les supports optiques et bandes, les disques
           memoires, et les systemes de fichiers reseau.

   Chapitre 19, GEOM: architecture modulaire de gestion des disques, GEOM

           Decrit ce qu'est le systeme GEOM sous FreeBSD et comment
           configurer les differents niveaux de RAID supportes.

   Chapitre 22, Le gestionnaire de volume Vinum, Vinum

           Decrit comment utiliser Vinum, un gestionnaire de volume logique
           qui permet d'avoir des disques logiques independants du
           peripherique, et le RAID-0, RAID-1 et RAID-5 logiciel.

   Chapitre 23, Virtualisation, Virtualisation

           Decrit ce que les systemes de virtualisation apportent, et comment
           ils peuvent etre utilises avec FreeBSD.

   Chapitre 24, Localisation - Utilisation et configuration de l'I18N/L10N,
   Localisation

           Decrit comment utiliser FreeBSD avec des langues autres que
           l'anglais. Couvre la localisation du systeme et des applications.

   Chapitre 25, Mise `a jour de FreeBSD, Questions avancees

           Explique les differences entre FreeBSD-STABLE, FreeBSD-CURRENT et
           les versions de publication;. Decrit quel type d'utilisateurs
           pourrait tirer profit de suivre un systeme de developpement et
           presente le processus.

   Chapitre 27, Serial Communications ** Traduction en Cours **,
   Communications serie

           Explique comment connecter terminaux et modems `a votre systeme
           FreeBSD aussi bien pour les connexions entrantes que sortantes.

   Chapitre 28, PPP et SLIP, PPP et SLIP

           Decrit comment utiliser PPP, SLIP ou PPP sur Ethernet pour se
           connecter `a des systemes distants `a l'aide de FreeBSD.

   Chapitre 29, Courrier electronique, Courrier electronique

           Explique les differents composants d'un serveur de courrier et
           plonge dans la configuration de base du serveur de courrier le
           plus populaire: sendmail.

   Chapitre 30, Serveurs reseau, Serveurs reseau

           Fournit des instructions detaillees et des exemples de fichiers de
           configuration pour configurer votre machine FreeBSD comme serveur
           de fichiers, serveur de noms de domaine, serveur d'information
           reseau, ou comme serveur de synchronisation d'horloge.

   Chapitre 31, Firewalls ** Traduction en Cours **, Coupe-feux

           Explique la philosophie des coupe-feux logiciels et fournit des
           informations detaillees sur la configuration des differents
           coupe-feux disponibles pour FreeBSD.

   Chapitre 32, Administration reseau avancee, Administration reseau avancee

           Decrit de nombreux sujets sur l'utilisation reseau, dont le
           partage d'une connexion Internet avec d'autres ordinateurs sur
           votre reseau local, routage, reseaux sans-fils, Bluetooth(R), ATM,
           IPv6, et bien plus.

   Annexe A, Se procurer FreeBSD, Se procurer FreeBSD

           Enumere les differentes sources pour obtenir FreeBSD sur CDROM ou
           DVD, ainsi que les differents sites Internet qui vous permettent
           de telecharger et d'installer FreeBSD.

   Annexe B, Bibliographie, Bibliographie

           Cet ouvrage aborde de nombreux sujets cela peut vous laisser sur
           votre faim et `a la recherche de plus de details. La bibliographie
           enumere d'excellents ouvrages qui sont references dans le texte.

   Annexe C, Ressources sur Internet, Ressources sur Internet

           Decrit les nombreux forums disponibles pour les utilisateurs de
           FreeBSD pour poster des questions et engager des conversations
           techniques au sujet de FreeBSD.

   Annexe D, Cles OpenPGP, Cles PGP

           Liste les cles PGP de nombreux developpeurs FreeBSD.

Conventions utilisees dans ce livre

   Pour fournir un texte logique et facile `a lire, plusieurs conventions
   sont respectees tout au long du livre.

  Conventions typographiques

   Italique

           Une police de caracteres italique est utilisee pour les noms de
           fichiers, les URLs, le texte `a mettre en valeur et la premiere
           utilisation de termes techniques.

   Police de caracteres `a chasse fixe

           Une police de caracteres `a chasse fixe est utilisee pour les
           messages d'erreurs, les commandes, les variables d'environnement,
           les noms des logiciels portes, les noms d'hotes, les noms
           d'utilisateurs, les noms de groupes, les noms de peripheriques,
           les variables et les morceaux de code source.

   Caracteres gras

           Des caracteres gras sont utilises pour les applications, les
           commandes et les touches.

  Utilisation du clavier

   Les touches sont representees en gras pour ressortir du texte. Les
   combinaisons de touches qui sont sensees etre tapees simultanement sont
   representees avec `+' entre chaque touche, comme par exemple:

   Ctrl+Alt+Del

   Indiquant que l'utilisateur devra appuyer simultanement sur les touches
   Ctrl, Alt, et Del.

   Les touches qui sont sensees etre tapees en sequence seront separees par
   une virgule, par exemple:

   Ctrl+X, Ctrl+S

   Signifiera que l'on on attend `a ce que l'utilisateur tape les touches
   Ctrl et X simultanement et ensuite tape Ctrl et S simultanement.

  Exemples

   Les exemples commenc,ant par E:\> indiquent une commande MS-DOS(R). Sauf
   indication contraire, on peut executer ces commandes depuis une fenetre
   "d'invite de commande" dans un environnement Microsoft(R) Windows(R)
   moderne.

 E:\> tools\fdimage floppies\kern.flp A:

   Les exemples commenc,ant par # indiquent que la commande doit etre lancee
   en tant que super-utilisateur sous FreeBSD. Vous pouvez ouvrir une session
   en tant que root pour taper cette commande, ou ouvrir une session sous
   votre compte normal et utiliser su(1) pour obtenir les privileges de
   super-utilisateur.

 # dd if=kern.flp of=/dev/fd0

   Les exemples commenc,ant par % indiquent une commande qui devrait etre
   lancee par un utilisateur normal. Sauf indication contraire, la syntaxe de
   l'interpreteur de commandes C-shell est utilisee pour configurer les
   variables d'environnement et autres commandes de l'interpreteur.

 % top

Remerciements

   L'ouvrage que vous avez en main represente les efforts de plusieurs
   centaines de personnes dans le monde. Qu'ils aient envoye des corrections
   de fautes de frappe, ou soumis des chapitres entiers, toutes les
   contributions ont ete utiles.

   Plusieurs entreprises ont supporte le developpement de ce document en
   payant des auteurs `a travailler `a plein temps dessus, en payant pour la
   publication etc... En particulier, BSDi (rachetee plus tard par Wind River
   Systems) a paye `a temps plein des membres du Groupe de Documentation de
   FreeBSD `a l'amelioration de ce livre menant ainsi `a la publication de la
   premiere version imprimee en Mars 2000 (ISBN 1-57176-241-8). Wind River
   Systems a ensuite paye plusieurs auteurs supplementaires pour apporter un
   certain nombre d'ameliorations `a l'infrastructure de publication et `a
   l'ajout de chapitres. Ce travail a abouti `a la publication de la deuxieme
   edition imprimee en Novembre 2001 (ISBN 1-57176-303-1). En 2003-2004,
   FreeBSD Mall, Inc, a paye plusieurs auteurs pour travailler sur
   l'amelioration de ce manuel en vue de la publication de la troisieme
   edition papier.

                            Partie I. Pour commencer

   Cette partie du Manuel FreeBSD est destinee aux nouveaux venus `a FreeBSD,
   utilisateurs et administrateurs. Ces chapitres:

     * Presenteront FreeBSD.

     * Guideront les lecteurs `a travers le processus d'installation.

     * Enseigneront quelques bases et fondements d'UNIX(R).

     * Montreront comment installer la profusion d'applications tierces
       disponibles pour FreeBSD.

     * Presenteront X, le systeme de fenetrage d'UNIX(R), et detailleront
       comment configurer un environnement de travail qui rendra les
       utilisateurs plus productifs.

   Le nombre de references dans le texte a ete limite au minimum afin que
   cette section du Manuel puisse etre lue du debut jusqu'`a la fin avec le
   moins de changements de pages possibles.

   Table des matieres

   1. Introduction

                1.1. Synopsis

                1.2. Bienvenue `a FreeBSD!

                1.3. A propos du Projet FreeBSD

   2. Installer FreeBSD

                2.1. Synopsis

                2.2. Configuration materielle minimale

                2.3. Taches de pre-installation

                2.4. Lancer l'installation

                2.5. Utilisation de bsdinstall

                2.6. Allouer l'espace disque

                2.7. Recuperation des fichiers de distribution

                2.8. Comptes utilisateurs, fuseau horaire, services et
                renforcement de la securite

                2.9. Interfaces reseau

                2.10. Depannage

                2.11. Utilisation du CD Live

   3. Quelques bases d'UNIX

                3.1. Synopsis

                3.2. Consoles virtuelles & terminaux

                3.3. Permissions

                3.4. Organisation de l'arborescence des repertoires

                3.5. Organisation des disques

                3.6. Monter et demonter des systemes de fichiers

                3.7. Processus

                3.8. Daemons, signaux, et comment tuer un processus

                3.9. Interpreteurs de commandes - "Shells"

                3.10. Editeurs de texte

                3.11. Peripheriques et fichiers speciaux de peripherique

                3.12. Le format des fichiers binaires

                3.13. Pour plus d'information

   4. Installer des applications: les logiciels pre-compiles et les logiciels
   portes

                4.1. Synopsis

                4.2. Generalites sur l'installation de logiciels

                4.3. Trouver votre application

                4.4. Utiliser le systeme des logiciels pre-compiles

                4.5. Utiliser le catalogue des logiciels portes

                4.6. Activites de post-installation

                4.7. Que faire avec les logiciels portes ne fonctionnant pas?

   5. Le systeme X Window

                5.1. Synopsis

                5.2. Terminologie

                5.3. Installer X11

                5.4. Configuration d'Xorg

                5.5. Utilisation des polices de caracteres sous Xorg

                5.6. Le gestionnaire de connexion graphique XDM

                5.7. Environnements de bureau

                5.8. Installation de Compiz Fusion

Chapitre 1. Introduction

   Restructure, reorganise, et parties reecrites par Jim Mock.
   Table des matieres

   1.1. Synopsis

   1.2. Bienvenue `a FreeBSD!

   1.3. A propos du Projet FreeBSD

   Version franc,aise de Marc Fonvieille <blackend@FreeBSD.org>.

1.1. Synopsis

   Merci de votre interet pour FreeBSD! Le chapitre suivant traite de divers
   aspects concernant le projet FreeBSD, comme son histoire, ses objectifs,
   son mode de developpement, et d'autres.

   Apres la lecture de ce chapitre, vous connaitrez:

     * Comment FreeBSD est lie aux autres systemes d'exploitation.

     * L'histoire du Projet FreeBSD.

     * Les objectifs du Projet FreeBSD.

     * Les bases du mode de developpement open-source de FreeBSD.

     * Et bien sur: l'origine du nom "FreeBSD".

1.2. Bienvenue `a FreeBSD!

   FreeBSD est une systeme d'exploitation base sur 4.4BSD-Lite2 pour les
   ordinateurs `a base d'architecture Intel (x86 et Itanium(R)), AMD64, les
   ordinateurs DEC Alpha(TM), et Sun UltraSPARC(R). Le portage pour d'autres
   architectures est egalement en cours. Pour connaitre l'histoire du projet,
   lisez Un court historique de FreeBSD. Pour avoir une description de la
   version la plus recente, allez `a la section A propos de cette version. Si
   vous voulez contribuer d'une fac,on ou d'une autre au projet FreeBSD
   (code, materiel, dons), voyez s'il vous plait `a la section Contribuer `a
   FreeBSD.

  1.2.1. Que peut faire FreeBSD?

   FreeBSD dispose de nombreuses caracteristiques remarquables. Parmi
   lesquelles:

     * Multi-tache preemptif avec ajustement dynamique des priorites pour
       garantir un partage equilibre et fluide de l'ordinateur entre les
       applications et les utilisateurs et cela meme sous les charges les
       plus importantes.

     * Acces multi-utilisateurs qui permet `a de nombreuses personnes
       d'utiliser en meme temps un systeme FreeBSD `a des fins tres
       differentes. Cela signifie, par exemple, que des peripheriques tels
       que les imprimantes ou les lecteurs de bandes peuvent etre partages
       entre tous les utilisateurs sur le systeme ou sur le reseau et que des
       limitations d'utilisation des ressources peuvent etre appliquees `a
       des utilisateurs ou groupes d'utilisateurs, protegeant ainsi les
       ressources systemes critiques d'une sur-utilisation.

     * Reseau TCP/IP complet dont le support de standards industriels comme
       SCTP, DHCP, NFS, NIS, PPP, SLIP, IPsec, et IPv6. Cela signifie que
       votre machine FreeBSD peut cooperer facilement avec d'autres systemes
       ou etre utilisee comme serveur d'entreprise, fournissant des fonctions
       essentielles comme NFS (acces aux fichiers en reseau) et le service de
       courrier electronique, ou encore l'acces de votre entreprise `a
       l'Internet grace aux services WWW, FTP, et aux fonctionnalites de
       routage et de coupe-feu (securite).

     * La protection de la memoire garantit que les applications (ou les
       utilisateurs) ne peuvent interferer entre eux. Une application qui
       plante n'affectera en rien les autres.

     * FreeBSD est un systeme d'exploitation 32-bits (64-bits sur
       l'architecture Alpha, Itanium(R), AMD64, et UltraSPARC(R)) et a ete
       conc,u comme tel des le debut.

     * Le Systeme X Window (X11R7), standard industriel, fournit une
       interface graphique `a l'utilisateur (Graphical User Interface - GUI),
       moyennant l'achat d'une carte VGA ordinaire et d'un moniteur, et est
       livre avec l'integralite de son code source.

     * Compatibilite binaire avec de nombreux programmes compiles pour Linux,
       SCO, SVR4, BSDI et NetBSD.

     * Des milliers d'applications pretes `a l'emploi sont disponibles grace
       au catalogue des logiciels portes (ports) et au catalogue des
       logiciels pre-compiles (packages). Pourquoi chercher sur l'Internet
       alors que tout est l`a?.

     * Des milliers d'applications faciles `a porter sont disponibles sur
       l'Internet. FreeBSD est compatible au niveau du code source avec les
       systemes UNIX(R) commerciaux les plus repandus et donc la plupart des
       applications exigent peu, sinon aucune modification, pour les
       compiler.

     * Memoire virtuelle `a la demande et "cache unifie pour les disques et
       la memoire virtuelle" cela permet de repondre aux besoins des
       applications gourmandes en memoire tout en garantissant le temps de
       reponse aux autres utilisateurs.

     * Support du traitement symetrique multiprocesseurs (SMP).

     * Des outils complets de developpement C, C++, et Fortran. De nombreux
       autres langages pour la recherche de pointe et le developpement sont
       aussi disponibles dans les catalogues des logiciels portes et
       pre-compiles.

     * La disponibilite Code source de l'integralite du systeme vous donne un
       controle total sur votre environnement. Pourquoi etre prisonnier d'une
       solution proprietaire et dependant de votre fournisseur alors que vous
       pouvez avoir un veritable systeme ouvert?

     * Une documentation en ligne tres complete.

     * Et beaucoup d'autres choses encore!

   FreeBSD est base sur la version 4.4BSD-Lite2 du "Computer Systems Research
   Group" (CSRG) de l'Universite de Californie `a Berkeley et continue la
   tradition de developpement renommee des systemes BSD. En plus de
   l'excellent travail fourni par le CSRG, le Projet FreeBSD a investi des
   milliers d'heures de travail pour optimiser le systeme pour arriver aux
   meilleures performances et au maximum de fiabilite sous la charge d'un
   environnement de production. Alors que la plupart des geants dans le
   domaine des systemes d'exploitation pour PC s'acharnent encore `a obtenir
   de telles possibilites, performances et fiabilite, FreeBSD peut les offrir
   des maintenant!

   La seule limite aux domaines d'application auxquels FreeBSD peut
   satisfaire est votre propre imagination. Du developpement de logiciels `a
   la production robotisee, de la gestion de stocks `a la correction d'azimut
   pour les antennes satellites; si un UNIX(R) commercial peut le faire, il y
   a de tres fortes chances que FreeBSD le puisse aussi! FreeBSD beneficie
   aussi de centaines d'applications de haute qualite developpees par les
   centres de recherche et les universites du monde entier, souvent
   disponibles gratuitement ou presque. Il existe aussi des applications
   commerciales et leur nombre croit de jour en jour.

   Comme le code source de FreeBSD lui-meme est globalement disponible, le
   systeme peut aussi etre adapte sur mesure `a un point pratiquement jamais
   atteint pour des applications ou des projets particuliers, d'une fac,on
   qui serait habituellement impossible avec les systemes d'exploitation
   commerciaux de la plupart des principaux fournisseurs. Voici juste
   quelques exemples d'applications pour lesquelles FreeBSD est utilise:

     * Services Internet: les fonctionnalites reseau TCP/IP robustes
       qu'inclut FreeBSD en font la plate-forme ideale pour un eventail de
       services Internet, tels que:

          * Serveurs FTP

          * Serveurs World Wide Web (standard ou securise [SSL])

          * Routage IPv4 et IPv6

          * Coupe-feux et passerelles de traduction d'adresses ("IP
            masquerading")

          * Serveurs de courrier electronique

          * Serveurs de News USENET (forums de discussion) ou Bulletin Board
            Systems (BBS)

          * Et plus...

       Avec FreeBSD, vous pouvez facilement commencer petit avec un PC 386 `a
       bas prix et evoluer jusqu'`a un quadri-processeurs Xeon avec stockage
       RAID au fur et `a mesure que votre entreprise s'agrandit.

     * Education: Etes-vous etudiant en informatique ou dans un domaine
       d'ingenierie apparente? Il n'y a pas de meilleur moyen pour etudier
       les systemes d'exploitation, l'architecture des ordinateurs et les
       reseaux que l'experience directe et de "derriere la coulisse" que
       FreeBSD peut vous apporter. Il y a aussi un grand nombre d'outils
       mathematiques, graphiques et de Conception Assistee par Ordinateur qui
       en font un outil tres utile pour ceux qui s'interessent aux
       ordinateurs essentiellement pour faire un autre travail!

     * Recherche: Avec le code source de la totalite du systeme disponible,
       FreeBSD est un excellent outil de recherche sur les systemes
       d'exploitation tout autant que pour d'autres branches de
       l'informatique. Le fait que FreeBSD soit librement disponible rend
       aussi possible l'echange d'idees et le developpement partage entre
       groupes eloignes sans avoir `a se preoccuper de problemes de licence
       particulieres ou de restrictions `a ce qui pourrait etre discute sur
       des forums ouverts.

     * Reseau: Il vous faut un nouveau routeur? Un serveur de domaine (DNS)?
       Un coupe-feu pour tenir les gens `a l'ecart de votre reseau interne?
       FreeBSD peut facilement faire de votre vieux 386 ou 486 inutilise qui
       traine dans un coin un routeur evolue avec des fonctionnalites
       sophistiquees de filtrage de paquets.

     * Station de travail X Window: FreeBSD est un excellent choix pour faire
       un terminal X peu couteux, en utilisant le serveur X11 librement
       disponible. Au contraire d'un terminal X, FreeBSD permet d'executer
       localement, si desire, un grand nombre d'applications, dechargeant
       ainsi le serveur central. FreeBSD peut meme demarrer "sans disque", ce
       qui permet de concevoir des postes de travail individuels moins chers
       et plus faciles `a administrer.

     * Developpement de logiciel: Le systeme FreeBSD de base inclut un
       environnement de developpement complet dont les compilateur et
       debogueur GNU C/C++ reputes.

   FreeBSD est disponible sous forme de code source ou binaire sur CDROM, DVD
   ou par ftp anonyme, Voyez Annexe A, Se procurer FreeBSD pour plus de
   details.

  1.2.2. Qui utilise FreeBSD?

   FreeBSD est utilise par certains des plus importants sites sur l'Internet,
   parmi lesquels:

     * Yahoo!

     * Apache

     * Blue Mountain Arts

     * Pair Networks

     * Sony Japan

     * Netcraft

     * Weathernews

     * Supervalu

     * TELEHOUSE America

     * Sophos Anti-Virus

     * JMA Wired

   et de nombreux autres.

1.3. A propos du Projet FreeBSD

   La section suivante fournit des informations generales sur le projet, dont
   un court historique, les objectifs du projet, et le mode de developpement
   du projet.

  1.3.1. Un court historique de FreeBSD

   Contribution de Jordan Hubbard.

   Le projet FreeBSD a vu le jour au debut de 1993, en partie comme extension
   du "Kit de mise `a jour non officiel de 386BSD" des trois derniers
   coordinateurs du kit de mise `a jour : Nate Williams, Rod Grimes et
   moi-meme.

   Notre objectif de depart etait de fournir une distribution intermediaire
   de 386BSD pour corriger un certain nombre de problemes que le mecanisme du
   kit de mise `a jour ne permettait pas de resoudre. Certains d'entre vous
   se rappellent peut-etre que l'intitule de travail d'origine du projet
   etait "386 BSD 0.5" ou "386BSD Interim" en reference `a ce probleme.

   386BSD etait le systeme d'exploitation de Bill Jolitz, qui souffrait assez
   severement `a ce moment-l`a d'avoir ete neglige pendant presque un an.
   Comme le kit de mise `a jour enflait de plus en plus inconfortablement au
   fil des jours, nous avons decide `a l'unanimite qu'il fallait faire
   quelque chose et aider Bill en fournissant cette distribution provisoire
   de "remise `a plat". Ces projets se sont brutalement interrompus lorsque
   Bill a decide de retirer son aval au projet sans dire clairement ce qui
   serait fait `a la place.

   Il ne nous a pas fallu longtemps pour decider que l'objectif restait
   valable, meme sans l'adhesion de Bill, et nous avons donc adopte le nom
   "FreeBSD", une proposition de David Greenman. Nos objectifs de depart ont
   ete definis apres avoir consulte les utilisateurs du moment du systeme et,
   des qu'il est devenu clair que le projet etait parti pour devenir un jour
   eventuellement realite, nous avons contacte Walnut Creek CDROM dans
   l'optique d'ameliorer la distribution de FreeBSD pour le grand nombre de
   ceux qui n'avaient pas la chance de pouvoir acceder facilement `a
   l'Internet. Non seulement Walnut Creek CDROM a adopte l'idee de distribuer
   FreeBSD sur CDROM, mais a ete jusqu'`a fournir au projet une machine pour
   travailler et une connexion rapide `a l'Internet. Sans le degre
   pratiquement sans precedent de confiance de Walnut Creek CDROM en ce qui
   n'etait alors qu'un projet totalement inconnu, il y a peu de chance que
   FreeBSD ait ete aussi loin, aussi vite, que l`a ou il en est aujourd'hui.

   La premiere version sur CDROM (et sur l'ensemble du Net) fut FreeBSD 1.0,
   parue en Decembre 1993. Elle reposait sur la bande 4.3BSD-Lite ("Net/2")
   de l'Universite de Californie `a Berkeley, avec de nombreux composants
   venant aussi de 386BSD et de la "Free Software Foundation". Ce fut un
   succes honnete pour une version initiale, qui fut suivi par le franc
   succes de la version 1.1 de FreeBSD, publiee en Mai 1994.

   A peu pres `a cette epoque, des nuages menac,ants et inattendus apparurent
   lorsque commenc,a la bataille juridique entre Novell et l'U.C. Berkeley
   autour du statut legal de la bande Net/2 de Berkeley. Dans les termes de
   l'accord, l'U.C. Berkeley concedait qu'une grande partie de Net/2 etait du
   code "protege" et propriete de Novell, qui l'avait `a son tour rachete `a
   AT&T quelque temps auparavant. Berkeley obtint en retour la "benediction"
   de Novell que 4.4BSD-Lite soit, lorsqu'il vit finalement le jour, declare
   non protege et que tous les utilisateurs de Net/2 soit fortement incites
   `a migrer. Cela incluait FreeBSD, et l'on donna au projet jusqu'`a Juillet
   1994 pour mettre un terme `a son propre produit base sur Net/2. Selon les
   termes de cet accord, une derniere livraison etait autorisee avant le
   delai final; ce fut FreeBSD 1.1.5.1.

   FreeBSD s'attela alors `a la tache difficile de litteralement se
   reinventer `a partir de fragments totalement nouveaux et assez incomplets
   de 4.4BSD-Lite. Les versions "Lite" etaient legeres ("light") en partie
   parce que le CSRG avait retire de gros morceaux du code necessaires pour
   que l'on puisse effectivement en faire un systeme qui demarre (pour
   differentes raisons legales) et parce que le portage pour Intel de la
   version 4.4 etait tres partiel. Il fallu au projet jusqu'`a Novembre 1994
   pour terminer cette etape de transition et que FreeBSD 2.0 paraisse sur
   l'Internet et sur CDROM (fin Decembre). Bien qu'elle fut encore assez
   rugueuse aux angles, cette livraison obtint un succes significatif et fut
   suivie par la version 2.0.5 de FreeBSD, plus fiable et facile `a
   installer, en Juin 1995.

   Nous avons publie FreeBSD 2.1.5 en Aout 1996, et il s'avera suffisamment
   populaire chez les fournisseurs d'acces et les utilisateurs professionnels
   pour qu'une nouvelle version sur la branche 2.1-STABLE soit justifiee. Ce
   fut la version FreeBSD 2.1.7.1, parue en Fevrier 1997 et qui marque la fin
   de 2.1-STABLE comme branche principale de developpement. Des lors, il n'y
   aurait plus que des ameliorations quant `a la securite et autres
   corrections de bogues critiques sur cette branche, (RELENG_2_1_0), passee
   en phase de maintenance.

   La branche FreeBSD 2.2 fut creee `a partir de la branche principale de
   developpement ("-CURRENT") en Novembre 1996 en tant que branche
   RELENG_2_2, et la premiere version complete (2.2.1) parut en Avril 1997.
   Il y eut d'autres versions sur la branche 2.2 `a l'ete et `a l'automne 97,
   la derniere (2.2.8) parut en Novembre 1998. La premiere version officielle
   3.0 sortira en Octobre 1998 et annoncera le debut de la fin pour la
   branche 2.2.

   Il y eut la creation de nouvelles branches le 20 Janvier 1999, donnant une
   branche 4.0-CURRENT et une branche 3.X-STABLE. De cette derniere il y eut
   la version 3.1 livree le 15 Fevrier 1999, la version 3.2 livree le 15 Mai
   1999, la 3.3 le 16 Septembre 1999, la 3.4 le 20 Decembre 1999 et la 3.5 le
   24 Juin 2000, qui fut suivit quelques jours plus tard par une mise `a jour
   mineure 3.5.1 pour rajouter quelques correctifs de securite de derniere
   minute sur Kerberos. Cela sera la derniere version de la la branche 3.X `a
   paraitre.

   Le 13 Mars 2000 a vu l'apparition d'une nouvelle branche: la branche
   4.X-STABLE. Il y a eu plusieurs versions jusqu'ici: la 4.0-RELEASE est
   sortie en Mars 2000, et la derniere version, la 4.11-RELEASE est sortie en
   Janvier 2005.

   La tant attendue 5.0-RELEASE a ete annoncee le 19 Janvier 2003. Etant le
   point culminant de pres de trois ans de travail, cette version a engage
   FreeBSD sur la voie d'un support avance des systemes multiprocesseurs et
   des "threads", et a introduit le support des plateformes UltraSPARC(R) et
   ia64. Cette version fut suivie de la 5.1 en Juin 2003. La dernier version
   5.X issue de la branche -CURRENT fut la 5.2.1-RELEASE presentee en Fevrier
   2004.

   La branche RELENG_5 creee en Aout 2004, suivie par la 5.3-RELEASE, marque
   le debut de la branche 5-STABLE. La version la plus recente, la
   11.2-RELEASE, est sortie en Septembre 2013. Il n'est pas prevu de publier
   d'autres versions de la branche RELENG_5.

   La branche RELENG_6 a ete creee en Juillet 2005. La version 6.0-RELEASE,
   la premiere version issue de la branche 6.X a ete rendue publique en
   Novembre 2005. La version la plus recente, la 12.0-RELEASE, est sortie en
   Janvier 2014. De nouvelles versions sont prevues pour la branche RELENG_6.

   Pour le moment, les projets de developpement `a long terme continuent `a
   se faire dans la branche (tronc) 7.X-CURRENT, et des "instantanees" de la
   7.X sur CDROM (et, bien sur, sur le net) sont continuellement mises `a
   disposition sur le serveur d'instantane pendant l'avancement des travaux.

  1.3.2. Les objectifs du projet FreeBSD

   Contribution de Jordan Hubbard.

   L'objectif du projet FreeBSD est de fournir du logiciel qui puisse etre
   utilise `a n'importe quelle fin et sans aucune restriction. Nombre d'entre
   nous sont impliques de fac,on significative dans le code (et dans le
   projet) et ne refuseraient certainement pas une petite compensation
   financiere de temps `a autre, mais ce n'est certainement pas dans nos
   intentions d'insister l`a dessus. Nous croyons que notre premiere et
   principale "mission" est de fournir du code `a tout le monde, pour
   n'importe quel projet, de fac,on `a ce qu'il soit utilise le plus possible
   et avec le maximum d'avantages. C'est, nous le pensons, l'un des objectifs
   les plus fondamentaux du Logiciel Libre et l'un de ceux que nous soutenons
   avec enthousiasme.

   Le code de l'arborescence des sources, qui est regi par la Licence
   Publique GNU ("GNU Public License" - GPL) ou la Licence Publique GNU pour
   les Bibliotheques ("GNU Library Public License" - GLPL) impose legerement
   plus de contraintes, bien que plutot liees `a une disponibilite plus
   grande qu'au contraire, comme c'est generalement le cas. En raison des
   complications supplementaires qui peuvent resulter de l'utilisation
   commerciale de logiciels GPL, nous essayons, cependant de remplacer ces
   derniers par des logiciels soumis `a la licence BSD qui est plus souple,
   chaque fois que c'est possible.

  1.3.3. Le mode de developpement de FreeBSD

   Contribution de Satoshi Asami.

   Le developpement de FreeBSD est un processus tres ouvert et tres souple,
   c'est litteralement le resultat de contributions de centaines de personnes
   dans le monde entier, ce que reflete notre liste des participants.
   L'infrastructure de developpement de FreeBSD permet `a ces centaines de
   developpeurs de collaborer via l'Internet. Nous sommes toujours `a l'affut
   de nouveaux developpeurs et de nouvelles idees, et ceux que s'impliquer de
   plus pres interesse n'ont besoin que de contacter la liste de diffusion
   pour les discussions techniques sur FreeBSD. La liste de diffusion pour
   les annonces relatives `a FreeBSD est aussi disponible pour ceux qui
   veulent faire connaitre aux autres utilisateurs de FreeBSD les principaux
   domaines de developpement en cours.

   Quelques points utiles `a connaitre `a propos du projet FreeBSD et de son
   processus de developpement, que vous travailliez independamment ou en
   collaboration etroite:

   Les archives CVS

           L'arborescence centrale des sources de FreeBSD est geree sous CVS
           (Concurrent Version System), un systeme librement disponible de
           gestion de version des sources qui est livre avec FreeBSD. Les
           archives CVS principales sont sur une machine `a Santa Clara CA,
           USA, d'ou elles sont repliquees sur de nombreuses machines miroir
           `a travers le monde. L'arborescence CVS qui contient les branches
           -CURRENT et -STABLE peut facilement etre dupliquee sur votre
           propre machine. Reportez-vous `a la section Synchroniser votre
           arborescence des sources pour plus d'informations sur la fac,on de
           proceder.

   La liste des personnes autorisees, les "committers"

           Les personnes autorisees (committers) sont celles qui ont les
           droits en ecriture sur l'arborescence CVS, et sont autorisees `a
           faire des modifications dans les sources de FreeBSD (le terme
           "committer" vient de la commande cvs(1) commit, que l'on utilise
           pour reporter des modifications dans les archives CVS). La
           meilleure fac,on de proposer des modifications pour qu'elles
           soient validees par les "committers" est d'utiliser la commande
           send-pr(1). S'il semble y avoir un probleme dans ce systeme, vous
           pouvez aussi les joindre en envoyant un courrier electronique `a
           liste de diffusion pour les committers de FreeBSD.

   L'equipe de base de FreeBSD

           L'equipe de base de FreeBSD serait l'equivalent du comite de
           direction si le Projet FreeBSD etait une entreprise. La
           responsabilite principale de l'equipe de base est de s'assurer que
           le projet, dans son ensemble, fonctionne correctement et va dans
           la bonne direction. Proposer `a des developpeurs impliques et
           responsables de rejoindre notre groupe de personnes autorisees est
           une des fonctions de l'equipe de base, ainsi que le recrutement de
           nouveaux membres de l'equipe de base quand d'autres s'en vont.
           L'actuelle equipe de base a ete elu `a partir d'un ensemble de
           "committers" candidats en Juillet 2006. Des elections ont lieu
           tous les 2 ans.

           Certains membres de l'equipe de base ont aussi leur propre domaine
           de responsabilite, ce qui signifie qu'il leur est devolu de
           veiller `a ce qu'une partie significative du systeme satisfasse
           aux fonctionnalites annoncees. Pour une liste complete des
           developpeurs FreeBSD et de leurs domaines de responsabilite,
           veuillez consulter la liste des participants au projet.

  Note:

           La plupart des membres de l'equipe de base sont volontaires en ce
           qui concerne le developpement de FreeBSD et ne retirent aucun
           profit financier du projet, donc "implication" ne doit pas etre
           compris "support garanti". La comparaison precedente avec un
           comite directeur n'est pas tout `a fait exacte, et il serait plus
           juste de dire que ce sont des gens qui ont sacrifie leur vie `a
           FreeBSD contre toute raison!

   Contributions exterieures

           Enfin, mais certainement pas des moindres, le groupe le plus
           important de developpeurs est constitue par les utilisateurs
           eux-memes qui nous fournissent de fac,on quasi reguliere leur
           retour d'experience et leurs corrections de bogues. Le principal
           moyen d'entrer en contact avec le developpement plus decentralise
           de FreeBSD est de s'inscrire sur la liste de diffusion pour les
           discussions techniques sur FreeBSD ou ces questions sont abordees.
           Voyez Annexe C, Ressources sur Internet pour plus d'informations
           concernant les diverses listes de discussion FreeBSD.

           La liste de ceux qui ont contribue au projet est longue et en
           augmentation, pourquoi donc ne pas vous y joindre et contribuer `a
           quelque chose en retour des aujourd'hui?

           Fournir du code n'est pas la seule maniere de contribuer au
           projet; pour avoir une liste plus complete de ce qu'il y a `a
           faire, voyez s'il vous plait le site du projet FreeBSD.

   En resume, notre modele de developpement est organise comme un ensemble
   relache de cercles concentriques. Ce modele centralise est en place pour
   la commodite des utilisateurs de FreeBSD, qui disposent ainsi d'un moyen
   facile de suivre l'evolution d'une base de code centrale, et non pour
   tenir `a l'ecart d'eventuels participants! Nous souhaitons fournir un
   systeme d'exploitation stable avec un nombre consequent de programmes
   d'application coherents que les utilisateurs puissent facilement installer
   et employer - c'est un modele qui fonctionne tres bien pour cela.

   Tout ce que nous attendons de ceux qui se joindraient `a nous pour
   developper FreeBSD est un peu de la meme implication que les developpeurs
   actuels ont vis-`a-vis de sa reussite continue!

  1.3.4. A propos de cette version

   FreeBSD est une version librement disponible et incluant tout le code
   source base sur 4.4BSD-Lite2 pour les ordinateurs `a architectures Intel
   i386(TM), i486(TM), Pentium(R), Pentium(R) Pro, Celeron(R), Pentium(R) II,
   Pentium(R) III, Pentium(R) 4 (ou compatible), Xeon(TM), DEC Alpha(TM) et
   systemes bases sur UltraSPARC(R) de Sun. Il est base essentiellement sur
   du logiciel du groupe CSRG de l'Universite de Californie `a Berkeley, avec
   des additions venant de NetBSD, OpenBSD, 386BSD, et de la "Free Software
   Foundation".

   Depuis la publication de FreeBSD 2.0 fin 1994, les performances,
   fonctionnalites et la stabilite de FreeBSD ont ete ameliorees de fac,on
   spectaculaire. La plus grosse modification est un gestionnaire de memoire
   virtuelle totalement revu qui comprend un cache commun au disque et `a la
   memoire virtuelle, qui n'ameliore pas seulement les performances, mais
   diminue aussi l'occupation de la memoire, de telle sorte qu'une
   configuration avec 5 MO devienne un minimum acceptable. D'autres ajouts
   concernent le support integral des clients et serveurs NIS, le support des
   transactions TCP, les connexions PPP `a la demande, le support integre
   DHCP, un sous-systeme SCSI ameliore, support ISDN, support pour l'ATM,
   FDDI, les cartes "Fast et Gigabit Ethernet" (1000 Mbit), un meilleur
   support des derniers controleurs Adaptec et des milliers de corrections de
   bogues.

   En plus du systeme lui-meme, FreeBSD offre un nouveau catalogue de
   logiciels portes ("ports") qui inclut des milliers de programmes
   habituellement demandes. A l'heure ou sont ecrites ces lignes il y avait
   plus de 24,000 logiciels portes! La liste va des serveurs HTTP (WWW) aux
   jeux, langages, editeurs et presque tout ce qui existe entre. Le catalogue
   complet des logiciels demande pres de 440 Mo d'espace disque, les portages
   se presentant sous forme de "delta" avec les sources d'origine. Cela rend
   leur mise `a jour bien plus facile, et diminue de fac,on sensible l'espace
   necessaire par rapport `a l'ancien catalogue 1.0. Pour compiler un
   logiciel porte, il vous suffit d'aller dans le repertoire du programme que
   vous desirez installer, de taper make install, et de laisser le systeme
   faire le reste. La distribution originale complete de chaque logiciel est
   chargee dynamiquement depuis le CDROM ou un site FTP proche, il vous
   suffit de disposer de suffisamment d'espace disque pour compiler le
   logiciel que vous voulez. Presque tous les logiciels sont aussi fournis
   sous forme pre-compilee ("package"-paquetage) qui peut etre installe avec
   une seule commande (pkg_add), si vous ne voulez pas les compiler `a partir
   des sources. Plus d'information sur les paquetages et les logiciels portes
   peut etre trouvee dans le Chapitre 4, Installer des applications: les
   logiciels pre-compiles et les logiciels portes.

   Il y a un certain nombre d'autres documents qui vous serons peut-etre tres
   utiles `a l'installation et `a l'utilisation de FreeBSD, que vous pouvez
   maintenant trouver dans le repertoire /usr/share/doc de n'importe quelle
   machine sous une version recente de FreeBSD. Vous pouvez consulter les
   manuels localement disponibles avec n'importe quel navigateur HTML aux
   URLs suivantes:

   Le Manuel FreeBSD

           /usr/share/doc/handbook/index.html

   La FAQ de FreeBSD

           /usr/share/doc/faq/index.html

   Vous pouvez aussi consulter les exemplaires originaux (et les plus souvent
   mis `a jour) sur http://www.FreeBSD.org.

Chapitre 2. Installer FreeBSD

   Restructure, reorganise, et en partie reecrit par Jim Mock.
   Mis `a jour pour bsdinstall par Gavin Atkinson et Warren Block.
   Mis `a jour pour le systeme de fichiers racine sur ZFS par Allan Jude.
   Table des matieres

   2.1. Synopsis

   2.2. Configuration materielle minimale

   2.3. Taches de pre-installation

   2.4. Lancer l'installation

   2.5. Utilisation de bsdinstall

   2.6. Allouer l'espace disque

   2.7. Recuperation des fichiers de distribution

   2.8. Comptes utilisateurs, fuseau horaire, services et renforcement de la
   securite

   2.9. Interfaces reseau

   2.10. Depannage

   2.11. Utilisation du CD Live

   Version franc,aise de Marc Fonvieille <blackend@FreeBSD.org>.

2.1. Synopsis

   En fonction de l'environnement utilise, il existe plusieurs manieres
   differentes pour obtenir un FreeBSD en mesure de fonctionner. Il existe
   des:

     * Images de machines virtuelles, `a telecharger et `a importer dans
       l'environnement virtuel de votre choix. Elles peuvent etre recuperees
       `a partir de la page Download FreeBSD. Il existe des images pour KVM
       (<< qcow2 >>), VMWare (<< vmdk >>), Hyper-V (<< vhd >>), ainsi que des
       images disque brutes (<< raw >>) qui sont universellement supportees.
       Ce ne sont pas des images d'installation, mais plutot des instances
       preconfigurees (<< dej`a installees >>), pretes `a fonctionner et `a
       effectuer les taches de post-installation.

     * Images de machines virtuelles disponibles sur les plateformes Amazon
       AWS Marketplace, Microsoft Azure Marketplace, et Google Cloud
       Platform, `a executer sur leurs services d'hebergement respectifs.
       Pour plus d'information sur le deploiement de FreeBSD sur Azure,
       veuillez consulter le chapitre correspondant de la Documentayion
       Azure.

     * Images disque de cartes SD, pour les systemes embarques comme le
       Raspberry Pi ou le BeagleBone Black. Elles peuvent etre telechargees
       `a partir de la page Download FreeBSD. Ces fichiers doivent etre
       decompresses et ecrits sur une carte SD, comme un fichier d'image
       disque brut, `a partir de laquelle la carte embarquee pourra demarrer.

     * Images disque d'installation, pour installer FreeBSD sur un disque dur
       pour les ordinateurs de bureau, ordinateurs portables ou les systemes
       serveurs.

   Le reste de ce chapitre decrit les quatre cas, en expliquant comment
   installer FreeBSD en utilisant un programme d'installation en mode texte
   appele bsdinstall.

   Par defaut, les instructions d'installation de ce chapitre sont ecrites
   pour les architectures i386(TM) et AMD64. Ou elles seront applicables, des
   instructions specifiques `a d'autres architectures seront indiquees. Il
   peut y avoir des differences mineures entre le programme d'installation et
   ce qui est montre ici, aussi il faut utiliser ce chapitre comme un guide
   general plutot qu'une suite d'instructions `a suivre `a la ligne pres.

  Note:

   Les utilisateurs preferant installer FreeBSD `a l'aide d'un programme
   d'installation graphique peuvent etre interesses par GhostBSD, MidnightBSD
   ou NomadBSD.

   Apres la lecture de ce chapitre, vous connaitrez:

     * La configuration materielle minimale necessaire et les architectures
       materielles supportees par FreeBSD.

     * Comment creer le support d'installation de FreeBSD.

     * Comment lancer bsdinstall.

     * Les questions que bsdinstall posera, ce qu'elles signifient, et
       comment y repondre.

     * Comment depanner une installation qui a echoue.

     * Comment acceder `a la version << live >> de FreeBSD avant d'effectuer
       une installation.

   Avant de lire ce chapitre, vous devrez:

     * Lire la liste du materiel supporte fournie avec la version de FreeBSD
       qui va etre installee, et verifier que le materiel du systeme est
       supporte.

2.2. Configuration materielle minimale

   La configuration minimale pour installer FreeBSD varie avec l'architecture
   materielle concernee. Les architectures materielles et les peripheriques
   supportes par une version de FreeBSD sont listes sur la page d'Information
   sur les versions de FreeBSD. La page de Telechargement de FreeBSD donne
   egalement des recommandations pour le choix de l'image correcte pour les
   differentes architectures/

   Une installation de FreeBSD necessite un minimum de 96 Mo de RAM et 1.5 Go
   d'espace libre sur le disque dur. Neanmoins, des quantites aussi faibles
   de memoire et d'espace disque ne sont reellement utilisables que pour des
   applications particulieres comme les applications embarquees. Un
   ordinateur d'usage general aura besoin de plus de ressources. 2-4 Go de
   RAM et au moins 8 Go d'espace disque sont un bon point de depart.

   Voici les contraintes sur les processeurs pour chaque architecture:

   amd64

           C'est le type de processeur pour ordinateur de bureau et portable
           le plus courant, utilise dans les systemes modernes. Intel(R)
           l'appelle Intel64. D'autres fabricants l'appelle parfois x86-64.

           Des exemples de processeurs compatibles amd64 comprennent: les
           AMD Athlon(TM)64, AMD Opteron(TM), Intel(R) Xeon(TM) multi-coeurs,
           Intel(R) Core(TM) 2 et processeurs suivants.

   i386

           Les ordinateurs de bureau et portables plus anciens utilisent
           souvent cette architecture x86 32bits.

           Presque tous les processeurs compatibles i386 avec une unite de
           calcul en virgule flottante sont supportes. Tous les processeurs
           Intel(R) 486 ou superieurs sont supportes.

           FreeBSD utilisera le support de l'extension d'adresse physique
           (<< Physical Address Extensions >> ou PAE) sur les CPUs avec cette
           fonctionnalite. Un noyau avec la fonctionnalite PAE activee
           detectera la memoire au-dessus de 4 Go et permettra son
           utilisation par le systeme. Neanmoins, utiliser PAE ajoutera des
           contraintes aux pilotes de peripheriques et `a d'autres
           fonctionnalites de FreeBSD.

   powerpc

           Tous les systemes Apple(R) Mac(R) utilisant une ROM << New
           World >> avec l'USB integre sont supportes. Le fonctionnement SMP
           (multi-processeurs) est supporte sur les machines dotees de
           plusieurs CPUs.

           Un noyau 32bits ne peut utiliser que les 2 premiers Go de RAM.

   sparc64

           Les systemes supportes par FreeBSD/sparc64 sont listes sur la page
           du Projet FreeBSD/sparc64.

           Le SMP est supporte sur tous les systemes possedant plus d'un
           processeur. Un disque dur dedie est necessaire, etant donne qu'il
           n'est pas, `a l'heure actuelle, possible de partager un disque dur
           avec un autre systeme d'exploitation.

2.3. Taches de pre-installation

   Une fois determine que le systeme repond bien aux exigences minimales en
   termes de materiel pour installer FreeBSD, le fichier d'installation
   devrait etre telecharge et le support d'installation prepare. Avant de
   faire cela, verifier que le systeme est pret pour une installation en
   verifiant les differents elements de la liste de controle suivante:

    1. Sauvegarder les donnees importantes

       Avant d'installer tout systeme d'exploitation, il faut toujours en
       premier sauvegarder toutes les donnees importantes. Ne pas stocker la
       sauvegarde sur le systeme sur lequel aura lieu l'installation. A la
       place, sauvegarder les donnees sur un disque amovible comme un disque
       USB, sur un autre systeme sur le reseau, ou sur un systeme de
       sauvegarde en ligne. Tester la sauvegarde avant de lancer
       l'installation afin de s'assurer qu'elle contient tous les fichiers
       necessaires. Quand le programme d'installation formate le disque du
       systeme, toutes les donnees stockees sur ce disque seront perdues.

    2. Ou installer FreeBSD?

       Si FreeBSD sera le seul systeme d'exploitation installe, cette etape
       peut etre passee. Mais si FreeBSD partagera le disque avec un autre
       systeme d'exploitation, choisir quel disque ou partition sera utilisee
       pour FreeBSD.

       Dans les architectures i386 et amd64, les disques durs peuvent etre
       divises en plusieurs partitions en utilisant une des deux methodes de
       partitionnement. Le Master Boot Record (MBR) traditionnel contient une
       table de partitions definissant jusqu'`a quatre partitions primaires.
       Pour des raisons historiques, FreeBSD appelle ces partitions primaires
       slices ( tranches). Une de ces partitions primaire peut devenir une
       partition etendue contenant plusieurs partitions logiques. La table de
       partitionnement GUID (GUID Partition Table ou GPT) est une methode
       nouvelle et plus simple pour partitionner un disque. Les
       implementations classiques de GPT autorisent jusqu'`a 128 partitions
       par disque, supprimant ainsi le recours `a des partitions logiques.

       Le chargeur d'amorc,age de FreeBSD a besoin soit d'une partition
       primaire soit d'une partition GPT. Si toutes les partitions primaires
       ou GPT sont dej`a utilisees, l'une d'entre elles devra etre liberee
       pour FreeBSD. Pour creer une partition sans effacer les donnees
       existantes, utiliser un outil de redimensionnement de partition pour
       reduire une partition existante et creer une nouvelle partition en
       utilisant l'espace libere.

       De nombreux outils de partionnement gratuits et commerciaux sont
       listes sur
       http://en.wikipedia.org/wiki/List_of_disk_partitioning_software.
       GParted Live (http://gparted.sourceforge.net/livecd.php) est un CD
       Live gratuit qui comprend l'editeur de partition GParted. GParted est
       egalement disponible sur d'autres CDs Live Linux.

  Avertissement:

       Utilises correctement, les outils de redimensionnement des disques
       peuvent creer, sans risque, l'espace necessaire pour la creation d'une
       nouvelle partition. Etant donnee que la possibilite de selectionner la
       mauvaise partition existe, effectuer toujours une sauvegarde des
       donnees importantes et verifier son integrite avant de modifier les
       partitions du disque.

       Disposer de differentes partitions contenant chacune un systeme
       d'exploitation different rend possible l'installation de plusieurs
       systemes d'exploitation sur un ordinateur. Une autre methode est
       d'utiliser la virtualisation (Chapitre 23, Virtualisation) qui permet
       l'execution simultanee de plusieurs systemes d'exploitation sans avoir
       `a modifier les partitions du disque dur.

    3. Recuperer les informations relatives au reseau

       Certaines methodes d'installation de FreeBSD requierent une connexion
       reseau pour telecharger les fichiers d'installation. Apres toute
       installation, le programme d'installation proposera de configurer les
       interfaces reseau du systeme.

       Si le reseau dispose d'un serveur DHCP, il peut etre utilise pour
       fournir une configuration reseau automatique. Si la configuration par
       DHCP n'est pas possible, les informations reseau suivantes pour le
       systeme doivent etre obtenues aupres de l'administrateur reseau ou du
       fournisseur d'acces:

       Informations reseau necessaires
         1. Adresse IP

         2. Masque de sous-reseau

         3. Adresse IP de la passerelle par defaut

         4. Nom de domaine du reseau

         5. Adresse(s) IP du serveur DNS du reseau

    4. Verifier l'Errata FreeBSD

       Bien que le projet FreeBSD s'efforce de s'assurer que chaque version
       de FreeBSD soit aussi stable que possible, des bogues peuvent parfois
       exister. Il est tres rare que ces bogues affectent le processus
       d'installation. Des que ces problemes sont decouverts et corriges, ils
       sont notes dans l'Errata de FreeBSD
       (https://www.freebsd.org/releases/12.1R/errata.html) present sur le
       site Web de FreeBSD. Verifier l'errata avant l'installation afin
       d'etre sur qu'il n'y a pas de probleme pouvant affecter
       l'installation.

       Les informations sur chaque version, y compris les errata, peuvent
       etre trouves sur le site web de FreeBSD dans la section d'information
       sur les differentes versions
       (https://www.freebsd.org/releases/index.html).

  2.3.1. Preparer le support d'installation

   Le programme d'installation FreeBSD n'est pas une application qui peut
   etre executee `a partir d'un autre systeme d'exploitation. Au lieu de
   cela, telecharger un fichier d'installation de FreeBSD, copiez-le sur le
   support correspondant `a sa taille (CD, DVD, ou cle USB) et demarrer le
   systeme pour installer `a partir du support insere ou branche sur
   l'ordinateur.

   Les fichiers d'installation de FreeBSD sont disponibles sur
   www.freebsd.org/where.html#download. Chaque nom de fichier d'installation
   contient le numero de la version de FreeBSD, l'architecture et le type de
   fichier. Par exemple pour installer FreeBSD 12.1 sur un systeme amd64 `a
   partir d'un DVD, telechargez FreeBSD-12.1-RELEASE-amd64-dvd1.iso, gravez
   ce fichier sur un DVD, et demarrer le systeme avec le DVD insere.

   Les fichiers d'installation sont disponibles dans differents formats. Les
   formats varient en fonction de l'architecture materielle et du type de
   support.

   Des fichiers d'installation supplementaires sont prevus pour les
   ordinateurs qui sont amorces par UEFI (Unified Extensible Firmware
   Interface pour << Interface micrologicielle extensible unifiee >>). Le nom
   de ces fichiers comprend la chaine de caracteres uefi.

   Types de fichiers:

     * -bootonly.iso: C'est le plus petit fichier d'installation car il ne
       contient que le programme d'installation. Une connexion `a Internet
       fonctionnelle est requise lors de l'installation puisque le programme
       d'installation telechargera les fichiers necessaires pour effectuer
       l'installation de FreeBSD. Ce fichier doit etre grave sur un CD en
       utilisant une application de gravure de CDs.

     * -disc1.iso: Ce fichier contient tous les fichiers necessaires pour
       installer FreeBSD, ses sources, et le catalogue des logiciels portes.
       Il doit etre grave sur un CD en utilisant une application de gravure
       de CDs.

     * -dvd1.iso: Ce fichier contient tous les fichiers necessaires pour
       installer FreeBSD, ses sources, et le catalogue des logiciels portes.
       Il contient egalement un ensemble de paquetages binaires populaires
       pour installer un gestionnaire de fenetres et des applications de
       maniere `a ce qu'un systeme complet puisse etre installe sans
       necessiter une connexion `a Internet. Ce fichier etre grave sur un DVD
       en utilisant une application de gravure de DVDs.

     * -memstick.img: Ce fichier contient tous les fichiers necessaires pour
       installer FreeBSD, ses sources, et le catalogue des logiciels portes.
       Il doit etre copie sur une cle USB en suivant les instructions donnees
       plus bas.

     * -mini-memstick.img: Comme -bootonly.iso, ne contient pas les fichiers
       d'installation, mais les telechargera au fur et `a mesure des besoins.
       Une connexion `a Internet fonctionnelle est requise lors de
       l'installation. Copier ce fichier sur une cle USB comme decrit dans
       Section 2.3.1.1, << Ecrire un fichier image sur un disque USB >>.

   Apres avoir telecharge le fichier image du support d'installation,
   telechargez egalement le fichier CHECKSUM.SHA256 `a partir du meme
   repertoire. Calculez une somme de controle ou checksum du fichier image.
   FreeBSD fournit sha256(1) `a cet effet, `a utiliser comme sha256
   fichierimage. Les autres systemes d'exploitation proposent des outils
   similaires.

   Comparez la somme de controle calculee avec celle donnee dans le fichier
   CHECKSUM.SHA256. Les sommes de controle doivent etre identiques. Si une
   des sommes ne correspond pas, le fichier est corrompu et devra etre
   telecharge `a nouveau.

    2.3.1.1. Ecrire un fichier image sur un disque USB

   Le fichier *.img est une image de l'integralite du contenu d'une cle USB.
   Il ne peut pas etre copie directement vers le peripherique de destination
   comme un simple fichier. Plusieurs applications existent pour ecrire le
   fichier *.img sur une cle USB. Cette section decrit deux de ces
   utilitaires.

  Important:

   Avant de continuer, sauvegardez toutes les donnees importantes presentes
   sur la cle USB. Cette procedure effacera toutes les donnees sur la cle.

   Procedure 2.1. Utiliser dd pour ecrire une image

  Avertissement:

   Cet exemple prend /dev/da0 comme peripherique cible sur lequel l'image
   sera ecrite. Verifiez que le peripherique utilise comme cible est bien le
   bon, car cette commande detruira les donnees existantes.

     * L'utilitaire en ligne de commande dd(1) est disponible sur les
       systemes BSD, Linux(R), et Mac OS(R). Pour ecrire une image en
       utilisant dd, brancher la cle USB et determinez son nom de
       peripherique. Indiquer, alors, le nom du fichier d'installation
       telecharge et le nom du peripherique pour la cle USB. Cet exemple
       ecrit le fichier image d'installation amd64 sur le premier
       peripherique USB sur un systeme FreeBSD existant.

 # dd if=FreeBSD-12.1-RELEASE-amd64-memstick.img of=/dev/da0 bs=1M conv=sync

       Si cette commande echoue, verifier que la cle USB n'est pas montee et
       que le nom de peripherique est bien celui d'un disque et non d'une
       partition. Certains systemes d'exploitation pourront necessiter
       l'execution de cette commande avec sudo(8). La syntaxe dd(1) varie
       legerement en fonction des plate-formes; par exemple, Mac OS(R) a
       besoin d'un bs=1m en minuscules. Des systemes comme Linux(R) pourront
       mettre en tampon les ecritures. Pour forcer toutes les ecritures en
       attente `a s'effectuer, utiliser sync(8).

   Procedure 2.2. Utiliser Windows(R) pour ecrire l'image

  Avertissement:

   Assurez-vous de preciser le bon disque comme cible, car les donnees
   existantes sur ce disque seront ecrasees et detruites.

    1. Recuperer Image Writer for Windows(R)

       Image Writer for Windows(R) est une application gratuite pour ecrire
       une image sur une cle USB. Telechargez-la depuis
       https://sourceforge.net/projects/win32diskimager/ et decompressez-la
       dans un repertoire.

    2. Ecrire l'image avec Image Writer

       Double-cliquez sur l'icone Win32DiskImager pour lancer le programme.
       Verifiez que le lecteur affiche sous Device est celui de la cle USB.
       Cliquer sur l'icone repertoire et selectionner l'image `a ecrire sur
       la cle. Cliquer sur [ Save ] pour accepter le nom du fichier image.
       Verifiez que tout est correct, et qu'il n'y a pas de repertoires
       presents sur la cle USB ouverts dans d'autres fenetres. Puis quand
       tout est pret, cliquer sur [ Write ] pour ecrire le fichier image sur
       la cle USB.

   Vous etes maintenant pret `a commencer l'installation de FreeBSD.

2.4. Lancer l'installation

  Important:

   Par defaut, le processus d'installation ne modifiera rien sur le(s)
   disque(s) dur(s) jusqu'au message suivant:

 Your changes will now be written to disk. If you
 have chosen to overwrite existing data, it will
 be PERMANENTLY ERASED. Are you sure you want to
 commit your changes?

   L'installation peut etre quittee `a tout moment avant cet avertissement.
   Si quelque chose a mal ete configuree, arretez juste l'ordinateur avant ce
   point, et aucun changement ne sera effectue sur le disque dur.

   Cette section decrit comment demarrer le systeme `a partir du support
   d'installation qui a ete prepare `a l'aide des instructions de
   Section 2.3.1, << Preparer le support d'installation >>. Pour demarrer
   avec une cle USB demarrable, brancher la cle USB avant d'allumer
   l'ordinateur. Pour demarrer avec un CD ou un DVD, allumer l'ordinateur et
   inserer le disque `a la premiere occasion. Comment configurer le systeme
   pour demarrer `a partir du support utilise depend de l'architure
   materielle.

  2.4.1. Demarrage pour les architectures i386(TM) et amd64

   Ces architectures disposent d'un menu du BIOS pour selectionner le
   peripherique de demarrage. En fonction du support de demarrage choisi,
   selectionner le lecteur CD/DVD ou l'USB comme premier peripherique de
   demarrage. La plupart des systemes proposent egalement la selection du
   peripherique d'amorc,age au demarrage `a l'aide d'une touche sans avoir `a
   entrer dans le BIOS. Generalement, la touche est soit F10, soit F11, soit
   F12, ou encore Escape.

   Si l'ordinateur charge le systeme d'exploitation existant, alors soit:

    1. Le support d'installation n'a pas ete insere suffisamment tot lors du
       processus de demarrage. Laisser le support insere, et essayer de
       redemarrer l'ordinateur.

    2. Soit les modifications du BIOS etaient incorrectes ou
       non-sauvegardees. Verifier `a nouveau que le bon peripherique a ete
       choisi comme premier peripherique de demarrage.

    3. Ce systeme est trop ancien pour supporter l'amorc,age `a partir du
       support choisi. Dans ce cas, le gestionnaire de demarrage Plop
       (http://www.plop.at/en/bootmanager.html) peut etre utilise pour
       demarrer `a partir du support selectionne.

  2.4.2. Demarrage pour l'architecture PowerPC(R)

   Sur la plupart des machines, maintenir la touche C enfoncee lors du
   demarrage provoquera l'amorc,age du CD. Sinon appuyez sur
   Command+Option+O+F, ou Windows+Alt+O+F dans le cas des claviers
   non-Apple(R). A l'invite 0 >, entrez:

 boot cd:,\ppc\loader cd:0

  2.4.3. Menu d'amorc,age FreeBSD

   Une fois le systeme demarre `a partir du support d'installation, un menu
   similaire au suivant sera affiche:

   Figure 2.1. Menu du chargeur FreeBSD
   Menu du chargeur FreeBSD

   Par defaut, le menu attendra dix secondes une saisie de l'utilisateur
   avant de demarrer dans le programme d'installation de FreeBSD ou, si
   FreeBSD est dej`a installe, avant de demarrer sous FreeBSD. Pour mettre en
   pause ce decompte afin d'examiner les options offertes, appuyer sur
   Espace. Pour selectionner une option, appuyer sur le chiffre, le caractere
   ou la touche en surbrillance. Les options disponibles sont les suivantes.

     * Boot Multi User (Demarrage en mode multi-utilisateur): Cette option
       provoquera la poursuite du processus de demarrage de FreeBSD. Si le
       decompte du demarrage a ete mis en pause, appuyer sur 1, B majuscule
       ou minuscule, ou encore Entree.

     * Boot Single User (Demarrage en mode mono-utilisateur): Ce mode peut
       etre employe pour reparer une installation de FreeBSD existante comme
       decrit dans la Section 12.6.2, << Mode mono-utilisateur >>. Appuyer
       sur 2 ou B majuscule ou minuscule pour entrer dans ce mode.

     * Escape to loader prompt (Quitter vers l'interpreteur de commandes du
       chargeur): Cela demarrera le systeme dans l'interpreteur de commandes
       du chargeur qui offre un nombre limite de commandes bas-niveau. Cette
       invite de commandes est abordee dans la Section 12.3.3, << Etape
       trois, /boot/loader >>. Appuyer sur 3 ou Echap pour demarrer dans ce
       mode.

     * Reboot: Redemarre le systeme.

     * Kernel: Charge un noyau different.

     * Configure Boot Options: Ouvre le menu montre et decrit sur la
       Figure 2.2, << Menu des options du chargeur FreeBSD >>.

   Figure 2.2. Menu des options du chargeur FreeBSD
   Menu des options du chargeur FreeBSD

   Le menu des options du chargeur est divise en deux parties. La premiere
   partie peut etre utilisee pour soit retourner au menu de demarrage
   principal soit pour reinitialiser les options `a leur valeur par defaut.

   La partie suivante est utilisee pour positionner les options disponibles
   sur On ou Off en appuyant sur le chiffre ou le caractere en surbrillance
   pour chaque option. Le systeme demarre toujours en utilisant le
   parametrage choisi pour ces options jusqu'`a ce qu'il soit modifie.
   Plusieurs options peuvent etre modifees en utilisant ce menu:

     * ACPI Support: Si le systeme se fige au demarrage, essayer de
       positionner cette option `a Off.

     * Safe Mode: Si le systeme se fige toujours durant le demarrage meme
       avec l'option ACPI Support `a Off, essayer de positionner cette option
       `a On.

     * Single User (Mono-utilisateur): Positionner cette option sur On pour
       reparer une installation existante de FreeBSD comme decrit dans la
       Section 12.6.2, << Mode mono-utilisateur >>. Une fois le probleme
       regle, repositionner l'option `a Off.

     * Verbose (Verbeux): Positionner cette option sur On pour voir des
       messages plus detailles lors du processus de demarrage. Cela peut etre
       utile pour depanner un materiel.

   Apres avoir effectue les selections necessaires, appuyer sur 1 ou Retour
   arriere pour retourner au menu de demarrage principal, puis appuyer sur
   Entree pour demarrer sous FreeBSD. Une serie de messages de demarrage
   apparaitra au fur et `a mesure que FreeBSD detectera le materiel et
   chargera le programme d'installation. Une fois le demarrage acheve, le
   menu d'accueil de la Figure 2.3, << Menu d'accueil >> sera affiche.

   Figure 2.3. Menu d'accueil
   Menu d'accueil

   Appuyer sur Enter pour selectionner [ Install ] pour entrer dans le
   programme d'installation. Le reste de ce chapitre decrit comment utiliser
   ce programme d'installation. Sinon, utiliser la fleche droite ou gauche ou
   les lettres colorees pour selectionner l'element desire. [ Shell ] peut
   etre selectionne pour acceder `a un interpreteur de commandes FreeBSD afin
   d'utiliser des utilitaires en ligne de commande pour preparer les disques
   avant l'installation. L'option [ Live CD ] peut etre employee pour tester
   FreeBSD avant de l'installer. Cette option est decrite dans la
   Section 2.11, << Utilisation du CD Live >>.

  Astuce:

   Pour relire les messages de demarrage, dont la detection du materiel,
   appuyer sur la touche S majuscule ou minuscule, puis sur Entree pour
   acceder `a un interpreteur de commandes. A l'invite, taper more
   /var/run/dmesg.boot et utiliser la barre d'espace pour faire defiler les
   messages. Une fois termine, taper exit pour revenir au menu d'accueil.

2.5. Utilisation de bsdinstall

   Cette section presente dans l'ordre les menus de bsdinstall et le type
   d'information qui sera demande avant l'installation du systeme. Utiliser
   les touches flechees pour selectionner un menu, et ensuite la touche
   Espace pour selectionner ou deselectionner cet element du menu. Une fois
   termine, utiliser Enter pour sauvegarder la selection et passer `a l'ecran
   suivant.

  2.5.1. Selectionner le menu des tables de clavier

   Avant de demarrer le processus d'installation, bsdinstall chargera les
   fichiers de tables de clavier comme indique dans Figure 2.4, << Chargement
   de la table de clavier >>.

   Figure 2.4. Chargement de la table de clavier
   Chargement de la table de clavier

   Apres le chargement des tables de clavier, bsdinstall affiche le menu
   montre sur Figure 2.5, << Menu de selection de la table de clavier >>.
   Utilisez les fleches haut et bas pour choisir la table de clavier la plus
   proche de celle du clavier relie au systeme. Appuyer sur Enter pour
   sauvegarder la selection.

   Figure 2.5. Menu de selection de la table de clavier
   Menu de selection de la table de clavier

  Note:

   Un appui sur Echap provoquera la sortie de ce menu et l'utilisation de la
   table par defaut. Si le choix ne semble pas evident, choisir United States
   of America ISO-8859-1 est conseille.

   De plus, lors de la selection d'une table de clavier differente,
   l'utilisateur peut tester la table et s'assurer qu'elle est correcte avant
   de prendre en compte le changement comme montre sur Figure 2.6, << Menu de
   test de la table de clavier >>.

   Figure 2.6. Menu de test de la table de clavier
   Menu de test de la table de clavier

  2.5.2. Configurer le nom de la machine

   Le menu bsdinstall suivant est utilise pour configurer le nom de machine
   `a donner au systeme nouvellement installe.

   Figure 2.7. Configuration du nom de machine
   Configuration du nom de machine

   Saisir un nom de machine qui est unique sur le reseau. Cela doit etre un
   nom de machine complet comme machine3.example.com

  2.5.3. Choisir les composants `a installer

   Ensuite, bsdinstall demandera de choisir les composants optionnels `a
   installer.

   Figure 2.8. Selection des composants `a installer
   Selection des composants `a installer

   Decider quels composants installer dependra principalement de
   l'utilisation prevue du systeme et de l'espace disque disponible. Le noyau
   FreeBSD et les utilitaires de base, formant ensemble ce que l'on nomme le
   systeme de base, sont toujours installes. Selon l'architecture, certains
   de ces composants peuvent ne pas apparaitre:

     * base-dbg - Outils de base comme cat, ls parmi tant d'autres avec les
       symboles de debogage actives.

     * kernel-dbg - Noyau et modules avec les symboles de debogage actives.

     * lib32-dbg - Bibliotheques de compatibilite pour l'execution
       d'applications 32bits sur une version 64bits de FreeBSD avec les
       symboles de debogage actives.

     * lib32 - Bibliotheques de compatibilite pour l'execution d'applications
       32bits sur une version 64bits de FreeBSD.

     * ports - Le catalogue des logiciels portes pour FreeBSD.

       Le catalogue des logiciels portes est un ensemble de fichiers qui
       automatise le telechargement, la compilation et l'installation de
       logiciels tierce-partie. Le Chapitre 4, Installer des applications:
       les logiciels pre-compiles et les logiciels portes discute de
       l'utilisation du catalogue des logiciels portes.

  Avertissement:

       Le programme d'installation ne verifie pas la presence de l'espace
       requis. Selectionner cette option uniquement si l'espace disque
       suffisant est disponible. Le catalogue des logiciels portes occupe
       environ 440 Mo d'espace disque.

     * src - Code source complet du noyau et du systeme de base. Bien que
       n'etant pas requis pour la majorite des applications, il peut etre
       necessaire pour compiler des pilotes de peripheriques, des modules du
       noyau, ou des applications du catalogue des logiciels portes. Il est
       egalement utilise pour le developpement de FreeBSD. L'arborescence
       complete des sources demande 1 Go d'espace disque, et la recompilation
       du systeme FreeBSD complet necessite 5 Go d'espace supplementaire.

     * tests - Suite d'outils de test pour FreeBSD.

  2.5.4. Installation `a partir du reseau

   Le menu affiche dans Figure 2.9, << Installation `a partir du reseau >>
   n'apparait que lors de l'installation `a partir d'une image -bootonly.iso
   ou -mini-memstick.img etant donne que ces supports d'installation ne
   contiennent pas de copie des fichiers d'installation. Comme les fichiers
   d'installation doivent etre recuperes par l'intermediaire d'une connexion
   reseau, ce menu indique qu'une interface reseau doit etre configuree en
   premier lieu. Si ce menu est affiche `a un moment donne de l'installation,
   pensez `a suivre les instructions donnees dans Section 2.9.1,
   << Configuration des interfaces reseau >>.

   Figure 2.9. Installation `a partir du reseau
   Installation `a partir du reseau

2.6. Allouer l'espace disque

   Le menu suivant est utilise pour determiner la methode pour allouer
   l'espace disque.

   Figure 2.10. Choix du partitionnement
   Choix du partitionnement

   bsdinstall propose `a l'utilisateur quatre methodes pour allouer l'espace
   disque:

     * le partitionnement Auto (UFS) fixe automatiquement les partitions
       disque et utilise le systeme de fichiers UFS.

     * le partitionnement Manual (<< Manuel >>) permet aux utilisateurs
       avances de creer des partitions sur mesures `a partir des options du
       menu.

     * Shell ouvre une invite d'interpreteur de commandes dans laquelle les
       utilisateurs avances peuvent creer des partitions sur mesures en
       utilisant des utilitaires en ligne de commande comme gpart(8),
       fdisk(8), et bsdlabel(8).

     * le partitionnement Auto (ZFS) cree un systeme de fichiers racine sur
       ZFS avec le support optionnel du chiffrement GELI pour les
       environnements de demarrage.

   Cette section decrit ce qui doit etre pris en compte lors du
   partitionnement du disque. Elle montre ensuite comment utiliser les
   differentes methodes de partionnement.

  2.6.1. Choix du partitionnement

   Lors du partitionnement, il faut garder `a l'esprit que les disques durs
   transferent les donnees plus rapidement depuis les pistes exterieures que
   depuis les pistes interieures. Aussi, les systemes de fichiers plus petits
   et tres sollicites devraient etre positionnes vers l'exterieur du disque,
   alors que les partitions plus grandes comme /usr devraient etre placees
   vers l'interieur du disque. C'est une bonne idee de creer les partitions
   dans l'ordre suivant: /, espace de pagination, /var, et /usr.

   La taille de la partition /var reflete l'utilisation prevue de la machine.
   Cette partition est utilisee pour contenir les boites aux lettres de
   messagerie, les fichiers journaux, et les queues d'impression. Les boites
   aux lettres et les fichiers journaux peuvent croitre jusqu'`a atteindre
   des tailles inattendues en fonction du nombre d'utilisateurs et combien de
   temps sont conserves les fichiers journaux. En moyenne, la plupart des
   utilisateurs n'auront rarement besoin de plus d'un gigaoctet d'espace
   disque pour /var.

  Note:

   Parfois, beaucoup d'espace disque est necessaire pour /var/tmp. Quand de
   nouveaux logiciels sont installes, les outils de paquetage extraient une
   copie temporaire des paquetages dans /var/tmp. Les logiciels importants
   comme Firefox, ou LibreOffice peuvent etre delicats `a installer si
   l'espace disque dans /var/tmp n'est pas suffisant.

   La partition /usr contient beaucoup de fichiers necessaires au systeme,
   dont le catalogue des logiciels portes de FreeBSD et le code source du
   systeme. Au moins 2 gigaoctets d'espace sont recommandes pour cette
   partition.

   Lors du choix de la taille des partitions, gardez `a l'esprit les besoins
   en espace. Manquer d'espace sur une partition alors qu'une autre est `a
   peine utilisee peut etre tres frustrant.

   Par principe, votre espace de pagination devrait typiquement avoir une
   taille double de la quantite de memoire physique (RAM). Les systemes avec
   peu de memoire RAM pourront avoir de meilleures performances avec beaucoup
   plus d'espace de pagination. Configurer trop peu d'espace de pagination
   peut conduire `a une certaine inefficacite du code de pagination de la
   memoire virtuelle (VM) et peut etre `a l'origine de problemes
   ulterieurement si vous ajoutez plus de memoire `a votre systeme.

   Sur des systemes importants avec de multiples disques SCSI ou de multiples
   disques IDE fonctionnant sur differents controleurs, il est vivement
   recommande que vous configuriez un espace de pagination sur chaque disque,
   jusqu'`a quatre disques. Les partitions de pagination sur les differents
   disques devront avoir approximativement la meme taille. Le noyau peut
   gerer des tailles arbitraires mais les structures de donnees internes sont
   dimensionnees pour 4 fois la taille de la plus grande partition de
   pagination. Garder la taille des partitions de pagination proche permettra
   au noyau de repartir de maniere optimale l'espace de pagination entre les
   disques. Des espaces de pagination importants ne sont pas problematiques,
   meme s'ils sont peu utilises. Il peut etre plus simple de recuperer la
   main face un programme incontrolable avant d'etre force `a redemarrer la
   machine.

   En partitionnant correctement votre systeme, la fragmentation introduite
   sur les partitions plus petites et plus chargees en ecriture ne s'etendra
   pas sur les partitions principalement utilisees en lecture. De plus, avoir
   les partitions principalement utilisees en ecriture proche du bord du
   disque augmentera les performances d'E/S sur les partitions qui le
   demandent le plus. Bien qu'il soit necessaire d'avoir de bonnes
   performances d'E/S sur les grandes partitions, les deplacer plus vers
   l'exterieur du disque ne donnera pas lieu `a une augmentation
   significative des performances alors que le deplacement de performances
   alors que le deplacement de /var vers le bord peut avoir un serieux
   impact.

  2.6.2. Partitionnement guide avec utilisation d'UFS

   Quand cette methode est selectionnee, un menu affichera le(s) disque(s)
   disponible(s). Si plusieurs disques sont connectes, choisissez celui sur
   lequel FreeBSD doit etre installe.

   Figure 2.11. Selection parmi plusieurs disques
   Selection parmi plusieurs disques

   Une fois le disque selectionne, le menu suivant demande si l'installation
   se fait soit sur l'integralite du disque soit sur une partition `a creer
   `a partir de l'espace libre. Si [ Entire Disk ] est selectionne, une
   partition recouvrant la totalite du disque est automatiquement creee.
   Selectionner [ Partition ] cree une partition dans l'espace inutilise du
   disque.

   Figure 2.12. Selection de l'integralite du disque ou d'une partition
   Selection de l'integralite du disque ou d'une partition

   Apres la selection de [ Entire Disk ], bsdinstall affiche une boite de
   dialogue indiquant que le disque va etre efface.

   Figure 2.13. Confirmation
   Confirmation

   Le menu suivant montre une liste avec les differents types d'organisation
   des partitions. GPT est generalement le choix le plus adapte pour les
   ordinateurs de type amd64. Les ordinateurs plus anciens qui ne sont pas
   compatibles avec GPT devraient utiliser un partionnement de type MBR. Les
   autres types de partionnement sont generalement utilises pour les
   ordinateurs peu courants ou anciens. Plus d'informations sont disponibles
   dans la Tableau 2.1, << Tables de partitionnement >>.

   Figure 2.14. Selection du systeme de partionnement
   Selection du systeme de partionnement

   Une fois l'organisation des partitions creee, verifiez-la afin de
   s'assurer qu'elle correspond bien aux besoins de l'installation. La
   selection de [ Revert ] permettra de revenir au partitionnement de depart,
   et l'appui sur [ Auto ] creera les partitions FreeBSD automatiquement. Les
   partitions peuvent etre creees, modifiees, ou supprimees manuellement.
   Quand le partitionnement est correct, selectionner [ Finish ] pour
   poursuivre l'installation.

   Figure 2.15. Verification des partitions creees
   Verification des partitions creees

   Une fois les disques configures, le menu suivant offre une derniere chance
   pour effectuer des modifications avant que les disques selectionnes ne
   soient formates. Si des changements doivent etre faits, choisir [ Back ]
   pour retourner dans le menu principal de partionnement. [ Revert & Exit ]
   fera quitter le programme d'installation sans qu'aucun changement n'ait
   ete applique au disque dur. Selectionner [ Commit ] pour lancer le
   processus d'installation.

   Figure 2.16. Confirmation finale
   Confirmation finale

   Pour poursuivre le processus d'installation, aller `a la Section 2.7,
   << Recuperation des fichiers de distribution >>.

  2.6.3. Partitionnement manuel

   La selection de cette methode ouvre l'editeur de partitions.

   Figure 2.17. Creer manuellement les partitions
   Creer manuellement les partitions

   Selectionner le disque d'installation(ada0 dans cet exemple) et [ Create ]
   pour afficher un menu sur le choix du type de table de partitionnement.

   Figure 2.18. Creer manuellement les partitions
   Creer manuellement les partitions

   Le partitionnement GPT est generalement le choix le plus approprie pour
   les ordinateurs de type amd64 Les ordinateurs anciens qui ne sont pas
   compatibles avec GPT doivent utiliser `a la place un partitionnement de
   type MBR. Les autres systemes de partitionnement sont en general utilises
   pour les ordinateurs plus anciens ou particuliers.

   Tableau 2.1. Tables de partitionnement

   Abbreviation Description                                                   
   APM          Table de partition Apple, utilisee par l'architecture         
                PowerPC(R).                                                   
                Partition BSD (BSD Labels) sans MBR, parfois appelee          
   BSD          dangerously dedicated mode ou << mode dedie >> car les        
                utilitaires disques non-BSD peuvent ne pas la reconnaitre.    
   GPT          Table de partition GUID                                       
                (http://en.wikipedia.org/wiki/GUID_Partition_Table").         
   MBR          Master Boot Record                                            
                (http://en.wikipedia.org/wiki/Master_boot_record").           
   VTOC8        Volume Table Of Contents utilise par les ordinateurs Sun      
                SPARC64 et UltraSPARC.                                        

   Apres avoir choisi et cree le partitionnement, selectionner `a nouveau
   [ Create ] creera les nouvelles partitions. La touche Tab est utilisee
   pour deplacer le curseur entre les differents champs.

   Figure 2.19. Creer manuellement les partitions
   Creer manuellement les partitions

   Une installation standard de FreeBSD avec GPT utilise au moins trois
   partitions:

     * freebsd-boot - Contient le code de demarrage FreeBSD.

     * freebsd-ufs - Un systeme de fichiers UFS FreeBSD.

     * freebsd-zfs - Un systeme de fichiers ZFS FreeBSD. Plus d'informations
       au sujet de ZFS est disponible dans le Chapitre 20, The Z File System
       (ZFS) ** Traduction en Cours **.

     * freebsd-swap - Espace de pagination pour FreeBSD.

   Consulter la page de manuel gpart(8) pour la description d'autres types de
   partitions disponibles pour GPT.

   Des partitions avec plusieurs systemes de fichiers peuvent etre creees et
   certaines personnes preferent une organisation plus traditionnelle avec
   des partitions separees pour les systemes de fichiers /, /var, /tmp, et
   /usr. Consulter Exemple 2.1, << Creation d'un systeme traditionnel de
   partitions pour systemes de fichiers separes >>, pour un exemple.

   Les tailles peuvent etre entrees avec les abreviations courantes: K for
   kilooctet, M pour megaoctets, ou G pour gigaoctets.

  Astuce:

   Un alignement correct des secteurs sur le disque permet de meilleures
   performances, et creer des partitions de tailles multiples de 4Koctets
   permet de s'assurer de l'alignement sur les disques `a secteur de 512
   octets ou 4Koctets. Generalement, employer des tailles de partition qui
   sont des multiples d'1M ou 1G est le moyen le plus simple de garantir que
   chaque partition debute sur un multiple de 4K. Il existe une exception: la
   partition freebsd-boot ne devrait pas depasser 512K en raison de
   limitations du code de demarrage.

   Un point de montage est necessaire si cette partition contiendra un
   systeme de fichiers. Si une seule partition UFS unique sera creee, le
   point de montage devra etre /.

   Un Label (ou etiquette) est le nom avec lequel la partition sera connue.
   Les noms ou numeros de disques peuvent varier si le disque est connecte `a
   un controleur ou port different, mais le label de partition ne changera
   pas. Se referer aux labels plutot qu'aux noms de disques et numeros de
   partitions dans les fichiers comme /etc/fstab rend le systeme plus
   tolerant aux changements de materiel. Les labels GPT apparaissent dans le
   repertoire /dev/gpt/ lorsqu'un disque est attache au systeme. Les autres
   systemes de partitionnement presentent d'autres possibilites au niveau des
   labels et leurs labels apparaissent sous differentes repertoires dans
   /dev/.

  Astuce:

   Employez un label unique pour chaque partition pour eviter les conflits
   avec les labels identiques. Quelques lettres du nom du l'ordinateur, de
   son role, ou de son emplacement peuvent etre ajoutees au label. Par
   exemple, labroot ou rootfslab pour la partition UFS racine de l'ordinateur
   appele lab.

   Exemple 2.1. Creation d'un systeme traditionnel de partitions pour
   systemes de fichiers separes

   Pour une organisation traditionnelle de partitions dans laquelle les
   repertoires /, /var, /tmp, et /usr sont des systemes de fichiers separes
   ayant chacun leur propre partition, creer une table de partition GPT, puis
   creer les partitions comme montre ci-apres. Les tailles de partitions
   indiquees sont celles typiques pour un disque de 20G. Si plus d'espace est
   disponible sur le disque cible, une partition de pagination ou une
   partition /var plus importantes peuvent etre utiles. Les labels utilises
   ici sont prefixes par ex pour << exemple >>, mais le lecteur peut utiliser
   un autre label unique comme decrit plus haut.

   Par defaut, le programme gptboot de FreeBSD s'attend `a ce que la premiere
   partition UFS trouvee soit la partition /.

   Type de partition             Taille             Point de montage  Label   
   freebsd-boot      512K                                                     
   freebsd-ufs       2G                             /                exrootfs 
   freebsd-swap      4G                                              exswap   
   freebsd-ufs       2G                             /var             exvarfs  
   freebsd-ufs       1G                             /tmp             extmpfs  
   freebsd-ufs       valeur proposee par defaut (le /usr             exusrfs  
                     reste du disque)               

   Apres la creation des partitions, selectionnez [ Finish ] pour poursuivre
   l'installation et rendez-vous `a la Section 2.7, << Recuperation des
   fichiers de distribution >>.

  2.6.4. Partitionnement guide avec la racine du systeme de fichiers sur ZFS

   Ce mode de partitionnement ne fonctionne qu'avec des disques entiers et
   effacera le contenu du disque entier. Le menu principal de configuration
   ZFS presente plusieurs options pour controler la creation du pool
   (ensemble de stockage constitue d'un ou plusieurs disques).

   Figure 2.20. Menu de partionnement ZFS
   Menu de partionnement ZFS

   Voici un resume des options pouvant etre utilisees dans ce menu:

     * Install - Procede `a l'installation avec les options selectionnees.

     * Pool Type/Disks - Permet la configuration du Pool Type et des disques
       qui formeront le pool. Le programme d'installation ZFS automatique ne
       supporte, actuellement qu'un seul peripherique virtuel (<< top level
       vdev >>) de niveau superieur en dehors du mode stripe (un seul disque
       ou concatenation de plusieurs disques). Pour creer des pools plus
       complexes, utilisez les instructions de la Section 2.6.5,
       << Partitionnement `a partir de l'interpreteur de commandes >> pour
       creer le pool.

     * Rescan Devices - Met `a jour la liste des disques disponibles.

     * Disk Info - Ce menu peut etre utilise pour inspecter chaque disque, y
       compris sa table des partitions et differentes autres informations
       comme la reference du modele et son numero de serie s'ils sont
       disponibles.

     * Pool Name - Fixe le nom du pool. Le nom par defaut est zroot.

     * Force 4K Sectors? - Force l'utilisation de secteurs d'une taille de
       4Ko. Par defaut, le programme d'installation creera automatiquement
       des partitions qui seront alignees sur des emplacements multiples de
       4Ko et force ZFS `a utiliser des secteurs de 4Ko. C'est sans risque
       meme pour les disques avec des secteurs de 512 octets, et presente
       l'avantage de s'assurer que les pools crees sur des disques `a
       secteurs de 512 octets pourront se voir ajouter, dans le futur, des
       disques avec secteurs de 4Ko comme espace de stockage supplementaire
       ou en remplacement de disques defectueux. Appuyez sur la touche Enter
       pour choisir d'activer ou non cette option.

     * Encrypt Disks? - Le chiffrement des disques permet `a l'utilisateur de
       chiffer les disques avec GELI. Plus d'information au sujet du
       chiffrement des disques est disponible dans la Section 18.16.2,
       << Chiffrage des disques avec geli >>. Appuyez sur la touche Enter
       pour choisir d'activer ou non cette option.

     * Partition Scheme - Permet de choisir le systeme de partionnement. GPT
       est l'option recommandee dans la plupart des cas. Appuyez sur la
       touche Enter pour choisir parmi les differentes options.

     * Swap Size - Fixe la quantite d'espace de pagination.

     * Mirror Swap? - Permet `a l'utilisateur de creer un miroir de l'espace
       de pagination sur chaque disque. Faites attention, activer l'espace de
       pagination en mode miroir rend les crashs dumps inutilisables. Appuyez
       sur la touche Enter pour choisir d'activer ou non cette option.

     * Encrypt Swap? - Permet `a l'utilisateur de chiffrer l'espace de
       pagination. Le systeme chiffre l'espace de pagination avec une cle
       temporaire `a chaque demarrage du systeme et en change `a chaque
       redemarrage. Appuyez sur la touche Enter pour choisir d'activer ou non
       cette option. Plus d'information au sujet du chiffrement de l'espace
       de pagination dans la Section 18.17, << Chiffrage de l'espace de
       pagination >>.

   Selectionner T pour configurer le Pool Type et le ou les disques qui
   constitueront le pool.

   Figure 2.21. Type de pool ZFS
   Type de pool ZFS

   Voici un resume des Pool Type pouvant etre selectionnes dans ce menu:

     * stripe - Le mode striping ou entrelace offre le maximum d'espace de
       stockage `a partir de l'ensemble des peripheriques connectes, mais pas
       de redondance. Si un seul disque tombe en panne, les donnees du pool
       seront perdues de maniere definitive.

     * mirror - Le mode miroir stocke une copie complete des donnees sur
       chaque disque. Le mode miroir offre de bonnes performances en lecture
       parce que les donnees sont lues `a partir de tous les disques en
       paralleles. Les performances en ecriture sont plus lentes etant donne
       que les donnees doivent etre ecrites sur tous les disques du pool. Ce
       mode permet `a tous les disques sauf un de tomber en panne. Cette
       option necessite aux moins deux disques.

     * raid10 - Miroirs entrelaces. Offre les meilleures performances mais le
       moins d'espace de stockage. Cette option necessite un nombre pair de
       disques et au minimum quatre disques.

     * raidz1 - RAID `a simple redondance. Permet la panne d'un seul disque.
       Cette option necessite au moins trois disques.

     * raidz2 - RAID `a double redondance. Permet la panne simultanee de deux
       disques. Cette option necessite au moins quatre disques.

     * raidz3 - RAID `a triple redondance. Permet la panne simultanee de
       trois disques. Cette option necessite au moins cinq disques.

   Une fois que le Pool Type a ete selectionne, la liste des disques
   disponibles est affichee, et l'utilisateur est invite `a choisir un ou
   plusieurs disques pour former le pool. La configuration doit etre alors
   validee pour s'assurer que suffisamment de disques ont ete selectionnes.
   Si ce n'est pas le cas, selectionner <Change Selection> pour retourner `a
   la liste des disques, ou <Back> pour changer de Pool Type.

   Figure 2.22. Selection de disques
   Selection de disques
   Figure 2.23. Selection non-valide
   Selection non-valide

   Si un ou plusieurs disques manquent sur la liste, ou si des disques ont
   ete ajoutes apres le lancement du programme d'installation, selectionner -
   Rescan Devices pour mettre `a jour la liste des disques disponibles.

   Figure 2.24. Recherche des peripheriques
   Recherche des peripheriques

   Pour eviter d'effacer par accident les mauvais disques, le menu - Disk
   Info peut etre utilise pour inspecter chaque disque, y compris sa table
   des partitions et plusieurs autres informations comme le modele de disque
   et son numero de serie si disponibles.

   Figure 2.25. Analyse d'un disque
   Analyse d'un disque

   Selectionnez N pour configurer le Pool Name. Entrez le nom souhaite puis
   selectionnez <OK> pour le prendre en compte ou <Cancel> pour retourner au
   menu principal et conserver le nom par defaut.

   Figure 2.26. Nom du Pool
   Nom du Pool

   Selectionnez S pour fixer la quantite d'espace de pagination. Entrez la
   quantite souhaitee puis selectionnez <OK> pour la prendre en compte ou
   <Cancel> pour retourner au menu principal et conserver la quantite par
   defaut.

   Figure 2.27. Quantite d'espace de pagination
   Quantite d'espace de pagination

   Une fois que toutes les options ont ete configurees aux valeurs
   souhaitees, selectionnez l'option >>> Install en haut du menu. Le
   programme d'installation offre alors une derniere chance de tout annuler
   avant que le contenu des disques selectionnes ne soit detruit pour creer
   le pool ZFS.

   Figure 2.28. Derniere chance
   Derniere chance

   Si le chiffrement GELI du disque a ete active, le programme d'installation
   demandera deux fois le mot de passe `a utiliser pour chiffrer les disques.
   Ensuite, apres cela, l'initialisation du chiffrement commence.

   Figure 2.29. Mot de passe de chiffrement des disques
   Mot de passe de chiffrement des disques
   Figure 2.30. Initialisation du chiffrement
   Initialisation du chiffrement

   L'installation se poursuit alors normalement. Pour continuer
   l'installation, aller `a Section 2.7, << Recuperation des fichiers de
   distribution >>.

  2.6.5. Partitionnement `a partir de l'interpreteur de commandes

   Dans le cas d'installations complexes, les menus de partitionnement de
   bsdinstall peuvent ne pas proposer le niveau de flexibilite recherche. Les
   utilisateurs experimentes peuvent selectionner l'option Shell `a partir du
   menu de partitionnement afin de partitionner manuellement les disques, de
   creer le ou les systemes de fichiers, d'editer /tmp/bsdinstall_etc/fstab,
   et de monter les systemes de fichiers sous /mnt. Une fois cela fait, taper
   exit pour retourner dans bsdinstall et poursuivre l'installation.

2.7. Recuperation des fichiers de distribution

   La duree de l'installation variera en fonction de la distribution choisie,
   du support d'installation, et de la vitesse de l'ordinateur. Une serie de
   messages indiquera la progression de l'installation.

   En premier lieu, le programme d'installation formatera le(s) disque(s)
   selectionne(s) et initialisera les partitions. Ensuite, dans le cas d'une
   installation `a partir d'un support bootonly media ou mini memstick, il
   telechargera les composants selectionnes:

   Figure 2.31. Recuperation des fichiers de distribution
   Recuperation des fichiers de distribution

   Ensuite, l'integrite des fichiers de distribution est verifiee pour
   s'assurer qu'ils n'ont pas ete corrompus durant le telechargement ou leur
   lecture `a partir du support d'installation.

   Figure 2.32. Verification des fichiers de distribution
   Verification des fichiers de distribution

   Enfin, les fichiers controles sont decompresses sur le disque:

   Figure 2.33. Decompression des fichiers de distribution
   Decompression des fichiers de distribution

   Une fois que tous les fichiers de distribution requis ont ete
   decompresses, bsdinstall affichera le premier menu de post-installation.
   Cette serie de menu est decrite dans la section suivante.

2.8. Comptes utilisateurs, fuseau horaire, services et renforcement de la
securite

  2.8.1. Definir le mot de passe de root

   Tout d'abord, le mot de passe de l'utilisateur root doit etre defini.
   Notez que lors de la saisie du mot de passe, les caracteres tapes ne sont
   pas affiches sur l'ecran. Apres sa saisie, le mot de passe devra etre
   entre une deuxieme fois. Cela permet d'eviter les erreurs de frappe.

   Figure 2.34. Saisie du mot de passe root
   Saisie du mot de passe root

  2.8.2. Reglage du fuseau horaire

   La serie de menus suivante permet de determiner l'heure locale correcte en
   choisissant la region du monde, le pays et le fuseau horaire. Regler le
   fuseau horaire permet au systeme de corriger automatiquement l'heure lors
   des modifications regionales comme l'heure d'ete ou d'hiver, et
   d'effectuer correctement toute autre modification relative au fuseau
   horaire.

   L'exemple presente ici concerne une machine situee dans le fuseau horaire
   du centre de l'Espagne en Europe. Les choix pourront varier en fonction de
   la zone geographique.

   Figure 2.35. Selectionner une region
   Selectionner une region

   La region appropriee est choisie en utilisant les touches fleches puis en
   appuyant sur Entree.

   Figure 2.36. Selection d'un pays
   Selection d'un pays

   Selectionner le pays approprie en utilisant les touches fleches et appuyer
   sur Entree.

   Figure 2.37. Selection d'un fuseau horaire
   Selection d'un fuseau horaire

   Le fuseau horaire approprie est choisi en utilisant les touches fleches,
   puis en appuyant sur Entree.

   Figure 2.38. Confirmation du fuseau horaire
   Confirmation du fuseau horaire

   Confirmez que l'abreviation pour le fuseau horaire est correcte.

   Figure 2.39. Selection de la date
   Selection de la date

   La date correcte est selectionnee en utilisant les touches fleches puis en
   appuyant sur [ Set Date ]. Sinon, la selection de la date peut etre passee
   en appuyant sur [ Skip ].

   Figure 2.40. Configuration de l'heure
   Configuration de l'heure

   L'heure correcte est selectionnee en utilisant les touches fleches puis en
   appuyant sur [ Set Time ]. Sinon, cette configuration peut etre passee en
   appuyant sur [ Skip ].

  2.8.3. Activation des services

   Le menu suivant est destine `a choisir quels services systeme seront
   lances au demarrage. Tous ces services sont optionnels. Ne lancez que les
   services necessaires au fonctionnement du systeme.

   Figure 2.41. Selection de services supplementaires `a activer
   Selection de services supplementaires `a activer

   Voici un resume des services pouvant etre actives dans ce menu:

     * local_unbound - Active le resolveur DNS local. Il est important de
       garder `a l'esprit que c'est le resolveur du systeme de base qui n'est
       destine `a etre utilise uniquement qu'en tant que resolveur cache
       local. Si l'objectif est de mettre en place un resolveur pour tout le
       reseau, installer dns/unbound.

     * sshd - Le daemon Secure Shell (SSH) est utilise pour l'acces `a un
       systeme `a distance via une connexion chiffree. Activez ce service que
       si le systeme doit etre accessible pour l'ouverture de session `a
       distance.

     * moused - Activez ce service si la souris sera utilisee `a partir de la
       console systeme en ligne de commande.

     * ntpdate - Active la mise `a l'heure automatique de l'horloge au
       demarrage. La fonction de ce programme est desormais disponible dans
       le daemon ntpd(8). Apres une certaine periode d'adaptation,
       l'utilitaire ntpdate(8) sera supprime.

     * ntpd - Le daemon du protocole de temps reseau (Network Time Protocol)
       (NTP) pour la synchronisation automatique de l'horloge. Activez ce
       service s'il y a un serveur Windows(R), Kerberos, ou LDAP sur le
       reseau.

     * powerd - Utilitaire de controle de la gestion de l'energie du systeme
       pour le controle de la consommation en energie.

     * dumpdev - Activer les crash dumps peut s'averer tres utile pour
       deboguer les problemes du systeme, aussi les utilisateurs sont
       encourages `a activer les crashs dumps.

  2.8.4. Activer les options de renforcement de la securite

   Le menu suivant est utilise pour selectionner quelles options de securite
   seront activees. Toutes ces options sont facultatives. Mais leur
   utilisation est encouragee.

   Figure 2.42. Selection des options de renforcement de la securite
   Selection des options de renforcement de la securite

   Voici un resume des options qui peuvent etre activees dans ce menu:

     * hide_uids - Cache les processus en cours d'execution sous des
       utilisateurs differents pour eviter que des utilisateurs non autorises
       puissent voir les processus en cours d'execution executes par d'autres
       utilisateurs (UID) evitant ainsi la fuite d'information.

     * hide_gids - Cache les processus en cours d'execution sous des groupes
       differents pour eviter que des utilisateurs non autorises puissent
       voir les processus en cours d'execution executes par d'autres groupes
       (GID) evitant ainsi la fuite d'information.

     * hide_jail - Cache les processus en cours d'execution dans des jails
       pour eviter que des utilisateurs non autorises puissent voir les
       processus en cours d'execution dans les jails.

     * read_msgbuf - Desactive la lecture du tampon des messages du noyau
       pour les utilisateurs non autorises en empechant l'utilisation de
       dmesg(8) pour lire les messages du tampon de trace du noyau.

     * proc_debug - La desactivation des fonctionnalites de debogage des
       processus pour les utilisateurs non autorises desactive une variete de
       services de debogage inter-processus non-privilegies, cela comprend
       certaines fonctionnalites procfs, ptrace(), et and ktrace(). Veuillez
       noter que cela empeche egalement le fonctionnement d'outils de
       debogage pour les utilisateurs non autorises comme lldb(1), truss(1),
       procstat(1), ainsi que certaines fonctionnalites de debogage integrees
       dans certains langages comme PHP, etc.

     * random_pid - Rend aleatoire le choix de la valeur du PID de chaque
       nouveau processus.

     * clear_tmp - Nettoie le repertoire /tmp au demarrage du systeme.

     * disable_syslogd - Desactive l'ouverture d'un socket reseau syslogd.
       Par defaut, FreeBSD execute syslogd de maniere securisee avec le
       parametre -s. Cela evite que le daemon ecoute sur le port 514 les
       requetes UDP entrantes. Avec cette option activee syslogd sera execute
       avec les parametres -ss ce qui empeche l'ouverture de ports par
       syslogd. Pour des informations supplementaires, consultez la page de
       manuel syslogd(8).

     * disable_sendmail - Desactive l'agent de transfert de courrier
       Sendmail.

     * secure_console - Quand cette option est activee, l'invite reclame le
       mot de passe root lors de l'entree en mode utilisateur unique.

     * disable_ddtrace - DTrace peut fonctionner dans un mode qui affectera
       le noyau en execution. Des actions destructives ne pourront pas etre
       utilisees sauf si elles ont ete explicitement autorisees. Pour activer
       cette option lors de l'utilisation de DTrace utilisez le parametre -w.
       Pour des informations supplementaires, consultez la page de manuel
       dtrace(1).

  2.8.5. Ajouter des utilisateurs

   Le menu suivant demande de creer au moins un compte utilisateur. Il est
   recommande d'utiliser un compte utilisateur pour l'ouverture de session
   sur le systeme plutot que d'employer le compte root. Quand on utilise une
   session root, il n'existe aucune limite ou protection quant `a ce qui peut
   etre fait. Ouvrir une session en tant qu'utilisateur normal est plus sur
   et plus securise.

   Selectionner [ Yes ] pour ajouter de nouveaux utilisateurs.

   Figure 2.43. Ajout de comptes utilisateur
   Ajout de comptes utilisateur

   Suivez les instructions et saisissez les informations demandees pour le
   compte utilisateur `a ajouter. L'exemple donne dans Figure 2.44, << Entree
   des informations utilisateur >> cree le compte utilisateur asample.

   Figure 2.44. Entree des informations utilisateur
   Entree des informations utilisateur

   Voici un resume des informations `a saisir:

     * Username - Le nom d'utilisateur ou identifiant que l'utilisateur
       entrera pour ouvrir une session. Une convention courante est
       d'utiliser la premiere lettre du prenom associe au nom, tant que
       chaque nom d'utilisateur reste unique sur le systeme. Le nom
       d'utilisateur est sensible `a la casse et ne devrait pas contenir
       d'espace.

     * Full name - Le nom complet de l'utilisateur. Il peut contenir des
       espaces et est utilise comme description du compte utilisateur.

     * Uid - L'identifiant numerique pour cet utilisateur. En general, ce
       champ est laisse vide de fac,on `a ce que le systeme assigne par
       lui-meme une valeur.

     * Login group - Le groupe de l'utilisateur. Generalement il est laisse
       vide pour accepter le choix par defaut.

     * Invite user into other groups? - Groupes supplementaires pour lesquels
       l'utilisateur sera egalement ajoute comme membre. Si l'utilisateur a
       besoin d'un acces administrateur, tapez wheel ici.

     * Login class - Generalement laisse vide pour accepter la valeur par
       defaut.

     * Shell - Tapez un des noms listes pour choisir l'interpreteur de
       commande de l'utilisateur. Consulter Section 3.9, << Interpreteurs de
       commandes - "Shells" >> pour plus d'information sur les interpreteurs
       de commande.

     * Home directory - Le repertoire de l'utilisateur. La valeur par defaut
       est, en general, correcte.

     * Home directory permissions - Les permissions sur le repertoire
       utilisateur. La valeur par defaut est, en general, correcte.

     * Use password-based authentication? - En general yes de maniere `a ce
       que l'utilisateur soit invite `a entrer son mot de passe `a
       l'ouverture de session.

     * Use an empty password? - En general no car c'est un probleme de
       securite d'avoir un mot de passe vide.

     * Use a random password? - En general no de maniere `a ce que
       l'utilisateur puisse entrer son propre mot de passe `a l'invite
       suivante.

     * Enter password - Le mot de passe pour cet utilisateur. Les caracteres
       tapes n'apparaitront pas sur l'ecran.

     * Enter password again - Le mot de passe doit `a nouveau etre saisi pour
       verification.

     * Lock out the account after creation? - En general no de maniere `a ce
       que l'utilisateur puisse ouvrir une session.

   Apres avoir tout saisi, un resume est affiche pour verification. Si une
   erreur a ete faite, entrez no et recommencez. Si tout est correct, entrez
   yes pour creer ce nouvel utilisateur.

   Figure 2.45. Quitter la gestion des utilisateurs et des groupes
   Quitter la gestion des utilisateurs et des groupes

   S'il y a d'autres utilisateurs `a ajouter, repondez yes `a la question Add
   another user?. Entrez no pour terminer l'ajout d'utilisateurs et continuer
   l'installation.

   Pour plus d'information sur l'ajout d'utilisateurs et leur gestion,
   consultez Section 13.1, << Synopsis >>.

  2.8.6. Configuration finale

   Apres avoir tout installe et configure, une derniere chance de modifier
   les reglages est proposee.

   Figure 2.46. Configuration finale
   Configuration finale

   Utilisez ce menu pour effectuer des changements ou toute configuration
   supplementaire avant de terminer l'installation.

     * Add User - Decrit dans la Section 2.8.5, << Ajouter des
       utilisateurs >>.

     * Root Password - Decrit dans la Section 2.8.1, << Definir le mot de
       passe de root >>.

     * Hostname - Decrit dans la Section 2.5.2, << Configurer le nom de la
       machine >>.

     * Network - Decrit dans la Section 2.9.1, << Configuration des
       interfaces reseau >>.

     * Services - Decrit dans la Section 2.8.3, << Activation des
       services >>.

     * System Hardening - Decrit dans la Section 2.8.4, << Activer les
       options de renforcement de la securite >>.

     * Time Zone - Decrit dans la Section 2.8.2, << Reglage du fuseau
       horaire >>.

     * Handbook - Telecharge et installe le Manuel FreeBSD.

   Une fois la configuration finale achevee, selectionnez Exit.

   Figure 2.47. Configuration manuelle
   Configuration manuelle

   bsdinstall demandera s'il y a des elements supplementaires `a configurer
   avant le redemarrage sur le nouveau systeme. Selectionner [ Yes ] pour
   quitter vers un interpreteur de commande, ou [ No ] pour passer `a la
   derniere etape d'installation.

   Figure 2.48. Achever l'installation
   Achever l'installation

   Si d'autre configuration ou une configuration specifique est necessaire,
   choisissez [ Live CD ] pour demarrer dans le mode du CD Live.

   Si l'installation est achevee, selectionnez [ Reboot ] pour redemarrer
   l'ordinateur et demarrer le nouveau systeme FreeBSD. N'oubliez pas de
   retirer le support d'installation de FreeBSD ou l'ordinateur risque de
   redemarrer dessus `a nouveau.

   Lors du demarrage de FreeBSD, des messages d'information sont affiches.
   Une fois que le systeme a acheve son demarrage, une invite de session est
   affichee. A l'invite login:, saisissez le nom d'utilisateur ajoute lors de
   l'installation. Evitez d'ouvrir des sessions en tant que root. Consultez
   Section 13.3, << Le compte super-utilisateur >> pour des instructions sur
   comment devenir super-utilisateur quand un acces administrateur est
   necessaire.

   Les messages qui ont defile lors du demarrage peuvent etre `a nouveau
   visualises en appuyant sur Scroll-Lock (ou Arret defil) pour activer le
   defilement arriere du tampon des messages. Les touches PgUp, PgDn, et les
   touches flechees pourront etre utilisees pour remonter dans les messages.
   Une fois termine, appuyez `a nouveau sur Scroll-Lock pour deverrouiller
   l'ecran et fera revenir `a l'affichage normal de la console. Pour revoir
   ces messages quand le systeme en fonctionnement depuis un certain temps,
   tapez less /var/run/dmesg.boot `a partir de l'invite. Appuyez sur q pour
   retourner `a l'invite de commande apres la visualisation.

   Si sshd a ete active dans Figure 2.41, << Selection de services
   supplementaires `a activer >>, le premier demarage pourra etre un peu plus
   lent en raison de la generation des cles RSA et DSA. Les demarrages
   suivants seront plus rapides. Les empreintes des cles seront affichees,
   comme montre dans cet exemple:

 Generating public/private rsa1 key pair.
 Your identification has been saved in /etc/ssh/ssh_host_key.
 Your public key has been saved in /etc/ssh/ssh_host_key.pub.
 The key fingerprint is:
 10:a0:f5:af:93:ae:a3:1a:b2:bb:3c:35:d9:5a:b3:f3 root@machine3.example.com
 The key's randomart image is:
 +--[RSA1 1024]----+
 |    o..          |
 |   o . .         |
 |  .   o          |
 |       o         |
 |    o   S        |
 |   + + o         |
 |o . + *          |
 |o+ ..+ .         |
 |==o..o+E         |
 +-----------------+
 Generating public/private dsa key pair.
 Your identification has been saved in /etc/ssh/ssh_host_dsa_key.
 Your public key has been saved in /etc/ssh/ssh_host_dsa_key.pub.
 The key fingerprint is:
 7e:1c:ce:dc:8a:3a:18:13:5b:34:b5:cf:d9:d1:47:b2 root@machine3.example.com
 The key's randomart image is:
 +--[ DSA 1024]----+
 |       ..     . .|
 |      o  .   . + |
 |     . ..   . E .|
 |    . .  o o . . |
 |     +  S = .    |
 |    +  . = o     |
 |     +  . * .    |
 |    . .  o .     |
 |      .o. .      |
 +-----------------+
 Starting sshd.

   Consulter Section 14.11, << OpenSSH >> pour plus d'information au sujet
   des empreintes et de SSH.

   FreeBSD n'installe pas d'environnement graphique par defaut, mais de
   nombreux sont disponibles. Consultez Chapitre 5, Le systeme X Window pour
   plus d'information au sujet de l'installation et la configuration d'un
   gestionnaire de fenetres graphique.

   Arreter proprement un ordinateur sous FreeBSD aide `a proteger les donnees
   et meme le materiel de tout dommage. Ne coupez pas l'alimentation tant que
   le systeme n'est pas correctement arrete! Si l'utilisateur est membre du
   groupe wheel, passez en super-utilisateur en tapant su sur la ligne de
   commande et en entrant le mot de passe de root. Ensuite, utilisez la
   commande shutdown -p now et le systeme se fermera proprement, et si le
   materiel le support, s'eteindra lui-meme.

2.9. Interfaces reseau

  2.9.1. Configuration des interfaces reseau

   Ensuite, est affichee une liste des interfaces reseaux trouvees sur
   l'ordinateur. Selectionner l'interface `a configurer.

   Figure 2.49. Choix d'une interface reseau
   Choix d'une interface reseau

   Si une interface reseau Ethernet est choisie, le programme d'installation
   passera au menu montre dans la Figure 2.53, << Selection d'un
   fonctionnement reseau en IPv4 >>. Si une interface reseau sans-fil est
   choisie, le systeme recherchera les points d'acces sans-fil:

   Figure 2.50. Recherche des points d'acces sans-fil
   Recherche des points d'acces sans-fil

   Les reseaux sans-fil sont identifies par un Service Set Identifier (SSID),
   qui est un nom, court, unique donne `a chaque reseau. Les SSIDs trouves
   durant la recherche sont affiches, suivis par une description des types de
   chiffrement disponibles pour chaque reseau. Si le SSID desire n'apparait
   pas dans la liste, selectionner [ Rescan ] pour rechercher `a nouveau. Si
   le reseau desire n'apparait toujours pas, verifiez qu'il n'y a pas de
   problemes d'antenne ou essayez de rapprocher l'ordinateur du point
   d'acces. Rescannez apres chaque modification.

   Figure 2.51. Selection d'un reseau sans-fil
   Selection d'un reseau sans-fil

   Ensuite, entrer les informations de chiffrement pour se connecter au
   reseau sans-fil selectionne. Le chiffrement WPA2 est fortement recommande
   sachant que les chiffrements plus anciens, comme WEP, offrent peu de
   securite. Si le reseau utilise WPA2, entrez le mot de passe egalement
   connu sous le nom de Pre-Shared Key (PSK). Pour des raisons de securite,
   les caracteres tapes dans la boite de saisie apparaissent sous la forme
   d'asterisques.

   Figure 2.52. Configuration WPA2
   Configuration WPA2

   Ensuite, indiquez si une adresse reseau en IPv4 doit etre configuree ou
   non sur l'interface Ethernet ou sans-fil:

   Figure 2.53. Selection d'un fonctionnement reseau en IPv4
   Selection d'un fonctionnement reseau en IPv4

   Il existe deux methodes de configuration IPv4. En DHCP, l'interface reseau
   sera configuree automatiquement, c'est la methode `a privilegier si le
   reseau dispose d'un serveur DHCP. Sinon, les informations de configuration
   du reseau devront etre saisies manuellement sous la forme d'une
   configuration statique.

  Note:

   N'entrez pas de parametres reseau au hasard, cela ne fonctionnera pas. Si
   un serveur DHCP n'est pas disponible, recuperez les parametres listes dans
   Informations reseau necessaires aupres de l'administrateur reseau ou du
   fournisseur d'acces `a Internet.

   Si un serveur DHCP est disponible, selectionner [ Yes ] dans le menu
   suivant pour configurer automatiquement l'interface reseau. Le programme
   d'installation s'arretera pendant environ une minute pour trouver le
   serveur DHCP et recuperer l'information de configuration du reseau pour le
   systeme.

   Figure 2.54. Selection de la configuration IPv4 avec DHCP
   Selection de la configuration IPv4 avec DHCP

   S'il n'y a pas de serveur DHCP, selectionner [ No ] et tapez les
   parametres d'adressage suivants dans le menu qui suit:

   Figure 2.55. Configuration IPv4 en statique
   Configuration IPv4 en statique
     * IP Address - L'adresse IPv4 assignee `a cet ordinateur. Cette adresse
       doit etre unique et ne pas etre dej`a utilisee par un autre equipement
       sur le reseau local.

     * Subnet Mask - Le masque de sous-reseau utilise par le reseau.

     * Default Router - L'adresse IP de la passerelle par defaut du reseau.

   L'ecran suivant demandera si l'interface doit etre configuree pour l'IPv6.
   Si l'IPv6 est disponible et desire, choisir [ Yes ] pour le selectionner.

   Figure 2.56. Selection d'un reseau IPv6
   Selection d'un reseau IPv6

   Un reseau IPv6 peut etre configure suivant deux methodes. Le systeme
   d'autoconfiguration sans etat ou StateLess Address AutoConfiguration
   (SLAAC) demandera automatiquement les informations de configuration
   correctes `a un routeur local. Consulter http://tools.ietf.org pour plus
   d'information. La configuration statique, quant `a elle, demande la saisie
   manuelle des informations reseau.

   Si un routeur IPv6 est disponible, selectionner [ Yes ] dans le menu
   suivant pour configurer automatiquement l'interface reseau. Le programme
   d'installation s'arretera pendant environ une minute pour trouver le
   routeur et obtenir les informations de configuration reseau pour le
   systeme.

   Figure 2.57. Selection de la configuration IPv6 SLAAC
   Selection de la configuration IPv6 SLAAC

   S'il n'y a pas de routeur IPv6, selectionnez [ No ] et tapez les
   parametres d'adressage suivants dans le menu qui suit:

   Figure 2.58. Configuration IPv6 en statique
   Configuration IPv6 en statique
     * IPv6 Address - L'adresse IP assignee `a cet ordinateur. Cette adresse
       doit etre unique et ne pas etre dej`a utilisee par un autre equipement
       sur le reseau local.

     * Default Router - L'adresse IPv6 de la passerelle par defaut du reseau.

   Le dernier menu de configuration est utilise pour configurer le systeme de
   resolution Domain Name System (ou DNS) qui convertit les noms de machine
   en adresses reseau et inversement. Si la methode du DHCP ou du SLAAC a ete
   utilisee pour configurer automatiquement la carte reseau, les valeurs de
   configuration du systeme de resolution de noms (Resolver Configuration)
   pourront dej`a etre completees. Dans le cas contraire, entrer le nom de
   domaine du reseau local dans le champ Search. DNS #1 et DNS #2 sont les
   adresses IPv4 et/ou IPv6 des serveurs DNS locaux. Au moins un serveur DNS
   est necessaire.

   Figure 2.59. Configuration du DNS
   Configuration du DNS

   Une fois l'interface reseau configuree, selectionnez un site miroir qui
   est situe dans la meme region du monde que l'ordinateur sur lequel FreeBSD
   doit etre installe. Les fichiers peuvent etre recuperes plus rapidement
   quand le miroir est proche de l'ordinateur cible, reduisant ainsi le temps
   d'installation.

   Figure 2.60. Selection d'un site miroir
   Selection d'un site miroir

2.10. Depannage

   Cette section couvre le depannage basique de l'installation, comme les
   problemes courants rencontres.

   Verifier la liste du materiel supporte
   (https://www.freebsd.org/releases/index.html) de la version de FreeBSD
   pour etre sur que le materiel est supporte. Si le materiel est supporte et
   que des blocages ou autres problemes surviennent, compiler un noyau
   personnalise en utilisant les instructions de Chapitre 8, Configurer le
   noyau de FreeBSD pour ajouter le support pour les peripheriques qui ne
   sont pas presents dans le noyau GENERIC. Le noyau est configure de telle
   fac,on qu'il supposera que la plupart des peripheriques seront dans leur
   configuration d'usine en termes d'IRQs, d'adresses d'E/S, et canaux de
   DMA. Si le materiel a ete reconfigure, un fichier de configuration du
   noyau personnalise peut indiquer `a FreeBSD ou trouver les choses.

  Note:

   Quelques problemes d'installation peuvent etre evites ou alleges en
   mettant `a jour le firmware de divers composants materiels, en particulier
   la carte mere. Le firmware de la carte mere peut egalement etre designe
   par le terme BIOS. La plupart des constructeurs de cartes meres ou
   d'ordinateur disposent d'un site web ou peuvent etre trouvees les mises `a
   jour et les informations de mises `a jour.

   Les fabricants deconseillent fortement de mettre `a jour le BIOS de la
   carte mere `a moins d'avoir une bonne raison de le faire, comme une mise
   `a jour critique. Le processus de mise `a jour peut mal se passer,
   laissant un BIOS incomplet et l'ordinateur inutilisable.

   Si le systeme se bloque au demarrage pendant la detection du materiel, ou
   se comporte de maniere etrange lors de l'installation, l'ACPI peut etre le
   coupable. FreeBSD utilise de maniere intensive le systeme ACPI sur les
   plateformes i386 et amd64, s'il est detecte au demarrage, pour aider `a la
   configuration du materiel. Malheureusement, des bogues persistent dans le
   pilote ACPI, et sur les cartes meres et leur BIOS. L'ACPI peut etre
   desactive en positionnant le parametre hint.acpi.0.disabled pour le
   chargeur de demarrage:

 set hint.acpi.0.disabled="1"

   Ce parametre est reinitialise `a chaque demarrage du systeme, il est donc
   necessaire d'ajouter hint.acpi.0.disabled="1" au fichier
   /boot/loader.conf. Plus d'information au sujet du chargeur peut etre
   trouvee dans la Section 12.1, << Synopsis >>.

2.11. Utilisation du CD Live

   Le menu d'accueil de bsdinstall, montre dans Figure 2.3, << Menu
   d'accueil >>, propose une option [ Live CD ]. C'est utile pour ceux qui se
   demandent si FreeBSD est le bon choix et desirent tester certaines
   fonctionnalites avant l'installation.

   Les points suivants devront etre pris en compte avant l'utilisation du
   :[ Live CD ]

     * Pour utiliser le systeme, une authentification est necessaire. Le nom
       d'utilisateur est root, sans mot de passe.

     * Etant donne que le systeme s'execute directement `a partir du support
       d'installation, le systeme sera bien plus lent que s'il etait installe
       sur un disque dur.

     * Cette option ne propose qu'une invite de commande et pas d'interface
       graphique.

Chapitre 3. Quelques bases d'UNIX

   Reecrit par Chris Shumway.
   Table des matieres

   3.1. Synopsis

   3.2. Consoles virtuelles & terminaux

   3.3. Permissions

   3.4. Organisation de l'arborescence des repertoires

   3.5. Organisation des disques

   3.6. Monter et demonter des systemes de fichiers

   3.7. Processus

   3.8. Daemons, signaux, et comment tuer un processus

   3.9. Interpreteurs de commandes - "Shells"

   3.10. Editeurs de texte

   3.11. Peripheriques et fichiers speciaux de peripherique

   3.12. Le format des fichiers binaires

   3.13. Pour plus d'information

   Version franc,aise de Marc Fonvieille <blackend@FreeBSD.org>.

3.1. Synopsis

   Le chapitre suivant couvrira les commandes et fonctionnalites de base du
   systeme d'exploitation FreeBSD. La plupart de ces informations sera
   valable pour n'importe quel systeme d'exploitation UNIX(R). Soyez libre de
   passer ce chapitre si vous etes familier avec ces informations. Si vous
   etes nouveau `a FreeBSD, alors vous voudrez certainement lire
   attentivement ce chapitre.

   Apres la lecture de ce chapitre, vous saurez:

     * Comment utiliser les "consoles virtuelles" de FreeBSD.

     * Comment les permissions des fichiers d'UNIX(R) fonctionnent ainsi que
       l'utilisation des indicateurs de fichiers sous FreeBSD.

     * L'architecture par defaut du systeme de fichiers sous FreeBSD.

     * L'organisation des disques sous FreeBSD.

     * Comment monter et demonter des systemes de fichier.

     * Ce que sont les processus, daemons et signaux.

     * Ce qu'est un interpreteur de commande, et comment changer votre
       environnement de session par defaut.

     * Comment utiliser les editeurs de texte de base.

     * Ce que sont les peripheriques et les fichiers speciaux de
       peripherique.

     * Quel est le format des binaires utilise sous FreeBSD.

     * Comment lire les pages de manuel pour plus d'information.

3.2. Consoles virtuelles & terminaux

   FreeBSD peut etre utilise de diverses fac,ons. L'une d'elles est en tapant
   des commandes sur un terminal texte. Une bonne partie de la flexibilite et
   de la puissance d'un systeme d'exploitation UNIX(R) est directement
   disponible sous vos mains en utilisant FreeBSD de cette maniere. Cette
   section decrit ce que sont les "terminaux" et les "consoles", et comment
   les utiliser sous FreeBSD.

  3.2.1. La console

   Si vous n'avez pas configure FreeBSD pour lancer automatiquement un
   environnement graphique au demarrage, le systeme vous presentera une
   invite d'ouverture de session apres son demarrage, juste apres la fin des
   procedures de demarrage. Vous verrez quelque chose de similaire `a:

 Additional ABI support:.
 Local package initialization:.
 Additional TCP options:.

 Fri Sep 20 13:01:06 EEST 2002

 FreeBSD/i386 (pc3.example.org) (ttyv0)

 login:

   Les messages pourront etre differents sur votre systeme, mais cela devrait
   y ressembler. Les deux dernieres lignes sont celles qui nous interessent
   actuellement. La seconde de ces lignes nous donne:

 FreeBSD/i386 (pc3.example.org) (ttyv0)

   Cette ligne contient quelques elements d'information sur le systeme que
   vous venez de demarrer. Vous etes en train de lire une console "FreeBSD",
   tournant sur un processeur Intel ou compatible de la famille x86[1]. Le
   nom de cette machine (chaque machine UNIX(R) a un nom) est
   pc3.example.org, et vous regardez actuellement sa console systeme-le
   terminal ttyv0.

   Et enfin, la derniere ligne est toujours:

 login:

   C'est le moment ou vous etes suppose taper votre "nom d'utilisateur" pour
   vous attacher au systeme FreeBSD. La section suivante decrit comment
   proceder.

  3.2.2. Ouvrir une session sur un systeme FreeBSD

   FreeBSD est un systeme multi-utilisateur, multi-processeur. C'est la
   description formelle qui est habituellement donnee pour un systeme qui
   peut etre utilise par differentes personnes, qui executent simultanement
   de nombreux programmes sur une machine individuelle.

   Chaque systeme multi-utilisateur a besoin d'un moyen pour distinguer un
   "utilisateur" du reste. Sous FreeBSD (et sous tous les systemes de type
   UNIX(R)), cela est effectue en demandant `a chaque utilisateur de
   "s'attacher" au systeme avant d'etre en mesure d'executer des programmes.
   Chaque utilisateur possede un nom unique (le nom d'utilisateur) et une cle
   secrete personnelle (le mot de passe). FreeBSD demandera ces deux elements
   avant d'autoriser un utilisateur `a lancer un programme.

   Juste apres que FreeBSD ait demarre et en ait termine avec l'execution des
   procedures de demarrage[2], il presentera une invite et demandera un nom
   d'utilisateur valide:

 login:

   Pour cet exemple, supposons que votre nom d'utilisateur est john. Tapez
   john `a cette invite puis appuyez sur Entree. Alors vous devrez etre
   invite `a entrer un "mot de passe":

 login: john
 Password:

   Tapez maintenant le mot de passe de john, et appuyez sur Entree. Le mot de
   passe n'est pas affiche! Vous n'avez pas `a vous preoccuper de cela
   maintenant. Il suffit de penser que cela est fait pour des raisons de
   securite.

   Si vous avez tape correctement votre mot de passe, vous devriez etre
   maintenant attache au systeme et pret `a essayer toutes les commandes
   disponibles.

   Vous devriez voir apparaitre le MOTD ou message du jour suivi de l'invite
   de commande (un caractere #, $, ou %). Cela indique que vous avez ouvert
   avec succes une session sous FreeBSD.

  3.2.3. Consoles multiples

   Executer des commandes UNIX(R) dans une console est bien beau, mais
   FreeBSD peut executer plusieurs programmes `a la fois. Avoir une seule
   console sur laquelle les commandes peuvent etre tapees serait un peu du
   gaspillage quand un systeme d'exploitation comme FreeBSD peut executer des
   dizaines de programmes en meme temps. C'est ici que des "consoles
   virtuelles" peuvent etre vraiment utiles.

   FreeBSD peut etre configure pour presenter de nombreuses consoles
   virtuelles. Vous pouvez basculer d'une console virtuelle `a 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 entrees au clavier et la sortie vers ecran quand vous
   basculez d'une console virtuelle `a la suivante.

   Des combinaisons de touches specifiques ont ete reservees par FreeBSD pour
   le basculement entre consoles[3]. Vous pouvez utiliser Alt+F1, Alt+F2,
   jusqu'`a Alt+F8 pour basculer vers une console virtuelle differente sous
   FreeBSD.

   Quand vous basculez d'une console `a une autre, FreeBSD prend soin de
   sauvegarder et restaurer la sortie d'ecran. Il en resulte l'"illusion"
   d'avoir plusieurs ecrans 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'executer quand vous avez bascule vers
   une console virtuelle differente.

  3.2.4. Le fichier /etc/ttys

   La configuration par defaut de FreeBSD demarre avec huit consoles
   virtuelles. Cependant ce n'est pas un parametrage fixe, et vous pouvez
   aisement personnaliser votre installation pour demarrer avec plus ou moins
   de consoles virtuelles. Le nombre et les parametrages des consoles
   virtuelles sont configures dans le fichier /etc/ttys.

   Vous pouvez utiliser le fichier /etc/ttys pour configurer les consoles
   virtuelles de FreeBSD. Chaque ligne non-commentee dans ce fichier (les
   lignes qui ne debutent pas par le caractere #) contient le parametrage
   d'un terminal ou d'une console virtuelle. La version par defaut de ce
   fichier livree avec FreeBSD configure neuf consoles virtuelles, et en
   active huit. Ce sont les lignes commenc,ant avec le terme ttyv:

 # 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

   Pour une description detaillee de chaque colonne de ce fichier et toutes
   les options que vous pouvez utiliser pour configurer les consoles
   virtuelles, consultez la page de manuel ttys(5).

  3.2.5. Console en mode mono-utilisateur

   Une description detaillee de ce qu'est << le mode mono-utilisateur >> peut
   etre trouvee dans Section 12.6.2, << Mode mono-utilisateur >>. Il est
   important de noter qu'il n'y a qu'une console de disponible quand vous
   executez FreeBSD en mode mono-utilisateur. Il n'y a aucune console
   virtuelle de disponible. Le parametrage de la console en mode
   mono-utilisateur peut etre egalement trouve dans le fichier /etc/ttys.
   Recherchez la ligne qui commence avec le mot console:

 # 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

  Note:

   Comme l'indiquent les commentaires au-dessus de la ligne console, vous
   pouvez editer cette ligne et changer secure pour insecure. Si vous faites
   cela, quand FreeBSD demarrera en mode mono-utilisateur, il demandera le
   mot de passe de root.

   Cependant faites attention quand vous modifiez cela pour insecure. Si vous
   oubliez le mot de passe de root, le demarrage en mode mono-utilisateur
   sera condamne. Il est encore possible, mais cela pourra etre relativement
   complique pour quelqu'un qui n'est pas `a l'aise avec le processus de
   demarrage de FreeBSD et les programmes entrant en jeu.

  3.2.6. Modifier la resolution de la console

   La resolution (ou encore le mode video) de la console FreeBSD peut etre
   reglee `a 1024x768, 1280x1024, ou tout autre resolution supportee par le
   circuit graphique et le moniteur. Pour utiliser une resolution video
   differente vous devez en premier lieu recompiler votre noyau en ajoutant
   deux options supplementaires:

 options VESA
 options SC_PIXEL_MODE

   Une fois votre noyau recompile avec ces deux options, vous pouvez
   determiner quels sont les modes video supportes par votre materiel en
   utilisant l'outil vidcontrol(1). Pour obtenir une liste des modes
   supportes, tapez la ligne suivante:

 # vidcontrol -i mode

   La sortie de cette commande est une liste des modes video que supporte
   votre materiel. Vous pouvez ensuite decider d'utiliser un nouveau mode en
   le passant `a la commande vidcontrol(1) tout en ayant les droits de root:

 # vidcontrol MODE_279

   Si le nouveau mode video est satisfaisant, il peut etre active au
   demarrage de maniere permanente en le configurant dans le fichier
   /etc/rc.conf:

 allscreens_flags="MODE_279"

3.3. Permissions

   FreeBSD, etant un descendant direct de l'UNIX(R) BSD, est base sur
   plusieurs concepts cles d'UNIX(R). Le premier, et le plus prononce, est le
   fait que FreeBSD est un systeme d'exploitation multi-utilisateurs. Le
   systeme peut gerer plusieurs utilisateurs travaillant tous simultanement
   sur des taches completement independantes. Le systeme est responsable du
   partage correct et de la gestion des requetes pour les peripheriques
   materiels, la memoire, et le temps CPU de fac,on equitable entre chaque
   utilisateur.

   Puisque le systeme est capable de supporter des utilisateurs multiples,
   tout ce que le systeme gere possede un ensemble de permissions definissant
   qui peut ecrire, lire, et executer la ressource. Ces permissions sont
   stockees sous forme de trois octets divises en trois parties, une pour le
   proprietaire du fichier, une pour le groupe auquel appartient le fichier,
   et une autre pour le reste du monde. Cette representation numerique
   fonctionne comme ceci:

   Valeur                  Permission                   Contenu du repertoire 
   0      Pas d'acces en lecture, pas d'acces en        ---                   
          ecriture, pas d'acces en execution            
   1      Pas d'acces en lecture, pas d'acces en        --x                   
          ecriture, execution                           
   2      Pas d'acces en lecture, ecriture, pas d'acces -w-                   
          en execution                                  
   3      Pas d'acces en lecture, ecriture, execution   -wx                   
   4      Lecture, pas d'acces en ecriture, pas d'acces r--                   
          en execution                                  
   5      Lecture, pas d'acces en ecriture, execution   r-x                   
   6      Lecture, ecriture, pas d'acces en execution   rw-                   
   7      Lecture, ecriture, execution                  rwx                   

   Vous pouvez utiliser l'option -l avec la commande ls(1) pour afficher le
   contenu du repertoire sous forme une longue et detaillee qui inclut une
   colonne avec des informations sur les permissions d'acces des fichiers
   pour le proprietaire, le groupe, et le reste du monde. Par exemple un ls
   -l dans un repertoire quelconque devrait donner:

 % ls -l
 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
 ...

   Voici comment est divisee la premiere colonne de l'affichage genere par ls
   -l:

 -rw-r--r--

   Le premier caractere (le plus `a gauche) indique si c'est un fichier
   normal, un repertoire, ou un peripherique mode caractere, une socket, ou
   tout autre pseudo-peripherique. Dans ce cas, - indique un fichier normal.
   Les trois caracteres suivants, rw- dans cet exemple, donnent les
   permissions pour le proprietaire du fichier. Les trois caracteres qui
   suivent, r--, donnent les permissions pour le groupe auquel appartient le
   fichier. Les trois derniers caracteres, r--, donnent les permissions pour
   le reste du monde. Un tiret signifie que la permission est desactivee.
   Dans le cas de ce fichier, les permissions sont telles que le proprietaire
   peut lire et ecrire le fichier, le groupe peut lire le fichier, et le
   reste du monde peut seulement lire le fichier. D'apres la table ci-dessus,
   les permissions pour ce fichier seraient 644, ou chaque chiffre represente
   les trois parties des permissions du fichier.

   Tout cela est bien beau, mais comment le systeme controle les permissions
   sur les peripheriques? En fait FreeBSD traite la plupart des peripheriques
   sous la forme d'un fichier que les programmes peuvent ouvrir, lire, et
   ecrire des donnees dessus comme tout autre fichier. Ces peripheriques
   speciaux sont stockes dans le repertoire /dev.

   Les repertoires sont aussi traites comme des fichiers. Ils ont des droits
   en lecture, ecriture et execution. Le bit d'execution pour un repertoire a
   une signification legerement differente que pour les fichiers. Quand un
   repertoire est marque executable, cela signifie qu'il peut etre traverse,
   i.e. il est possible d'utiliser "cd" (changement de repertoire). Ceci
   signifie egalement qu'`a l'interieur du repertoire il est possible
   d'acceder aux fichiers dont les noms sont connus (en fonction, bien sur,
   des permissions sur les fichiers eux-memes).

   En particulier, afin d'obtenir la liste du contenu d'un repertoire, la
   permission de lecture doit etre positionnee sur le repertoire, tandis que
   pour effacer un fichier dont on connait le nom, il est necessaire d'avoir
   les droits d'ecriture et d'execution sur le repertoire contenant le
   fichier.

   Il y a d'autres types de permissions, mais elles sont principalement
   employees dans des circonstances speciales comme les binaires "setuid" et
   les repertoires "sticky". Si vous desirez plus d'information sur les
   permissions de fichier et comment les positionner, soyez sur de consulter
   la page de manuel chmod(1).

  3.3.1. Permissions symboliques

   Contribution de Tom Rhodes.

   Les permissions symboliques, parfois designees sous le nom d'expressions
   symboliques, utilisent des caracteres `a la place de valeur en octal pour
   assigner les permissions aux fichiers et repertoires. Les expressions
   symboliques emploient la syntaxe: (qui) (action) (permissions), avec les
   valeurs possibles suivantes:

       Option     Lettre                      Represente                      
   (qui)          u      Utilisateur                                          
   (qui)          g      Groupe                                               
   (qui)          o      Autre                                                
   (qui)          a      Tous (<< le monde entier >>)                         
   (action)       +      Ajouter des permissions                              
   (action)       -      Retirer des permissions                              
   (action)       =      Fixe les permissions de fac,on explicite             
   (permissions)  r      Lecture                                              
   (permissions)  w      Ecriture                                             
   (permissions)  x      Execution                                            
   (permissions)  t      bit collant (sticky)                                 
   (permissions)  s      Executer avec l'ID utilisateur (UID) ou groupe (GID) 

   Ces valeurs sont utilisees avec la commande chmod(1) comme precedemment
   mais avec des lettres. Par exemple, vous pourriez utiliser la commande
   suivante pour refuser l'acces au fichier FICHIER `a d'autres utilisateurs:

 % chmod go= FICHIER

   Une liste separe par des virgules peut etre fournie quand plus d'un
   changement doit etre effectue sur un fichier. Par exemple la commande
   suivante retirera les permissions d'ecriture au groupe et au "reste du
   monde" sur le fichier FICHIER, puis ajoutera la permission d'execution
   pour tout le monde:

 % chmod go-w,a+x FICHIER

  3.3.2. Indicateurs des fichiers sous FreeBSD

   Contribution de Tom Rhodes.

   En addition des permissions sur les fichiers precedemment presentees,
   FreeBSD supporte l'utilisation d'<< indicateurs de fichiers >>. Ces
   indicateurs rajoutent un niveau de controle et de securite sur les
   fichiers, mais ne concernent pas les repertoires.

   Ces indicateurs ajoutent donc un niveau de controle supplementaire des
   fichiers, permettant d'assurer que dans certains cas meme le
   super-utilisateur root ne pourra effacer ou modifier des fichiers.

   Les indicateurs de fichiers peuvent etre modifies avec l'utilitaire
   chflags(1), ce dernier presentant une interface simple. Par exemple, pour
   activer l'indicateur systeme de suppression impossible sur le fichier
   file1, tapez la commande suivante:

 # chflags sunlink file1

   Et pour desactiver l'indicateur de suppression impossible, utilisez la
   commande precedente avec le prefixe << no >> devant l'option sunlink:

 # chflags nosunlink file1

   Pour afficher les indicateurs propres `a ce fichier, utilisez la commande
   ls(1) avec l'option -lo:

 # ls -lo file1
        

   La sortie de la commande devrait ressembler `a:

 -rw-r--r--  1 trhodes  trhodes  sunlnk 0 Mar  1 05:54 file1

   Plusieurs indicateurs ne peuvent etre positionnes ou retires que par le
   super-utilisateur root. Dans les autres cas, le proprietaire du fichier
   peut activer ces indicateurs. Pour plus d'information, la lecture des
   pages de manuel chflags(1) et chflags(2) est recommandee `a tout
   administrateur.

3.4. Organisation de l'arborescence des repertoires

   L'organisation de l'arborescence des repertoires de FreeBSD est
   essentielle pour obtenir une comprehension globale du systeme. Le concept
   le plus important `a saisir est celui du repertoire racine, "/". Ce
   repertoire est le premier a etre monte au demarrage et il contient le
   systeme de base necessaire pour preparer le systeme d'exploitation au
   fonctionnement multi-utilisateurs. Le repertoire racine contient egalement
   les points de montage pour les autres systemes de fichiers qui sont montes
   lors du passage en mode multi-utilisateurs.

   Un point de montage est un repertoire ou peuvent etre greffes des systemes
   de fichiers supplementaires au systeme de fichiers parent (en general le
   systeme de fichiers racine). Cela est decrit plus en details dans la
   Section 3.5, << Organisation des disques >>. Les points de montage
   standards incluent /usr, /var, /tmp, /mnt, et /cdrom. Ces repertoires sont
   en general references par des entrees dans le fichier /etc/fstab.
   /etc/fstab est une table des divers systemes de fichiers et de leur point
   de montage utilise comme reference par le systeme. La plupart des systemes
   de fichiers presents dans /etc/fstab sont montes automatiquement au moment
   du demarrage par la procedure rc(8) `a moins que l'option noauto soit
   presente. Plus de details peuvent etre trouves dans la Section 3.6.1,
   << Le fichier fstab >>.

   Une description complete de l'arborescence du systeme de fichiers est
   disponible dans la page de manuel hier(7). Pour l'instant, une breve vue
   d'ensemble des repertoires les plus courants suffira.

     Repertoire                           Description                         
   /               Repertoire racine du systeme de fichiers.                  
   /bin/           Programmes utilisateur fondamentaux aux deux modes de      
                   fonctionnement mono et multi-utilisateurs.                 
   /boot/          Programmes et fichiers de configuration utilises durant le 
                   processus de demarrage du systeme.                         
   /boot/defaults/ Fichiers de configuration par defaut du processus de       
                   demarrage; voir la page de manuel loader.conf(5).          
   /dev/           Fichiers speciaux de peripherique; voir la page de manuel  
                   intro(4).                                                  
   /etc/           Procedures et fichiers de configuration du systeme.        
   /etc/defaults/  Fichiers de configuration du systeme par defaut; voir la   
                   page de manuel rc(8).                                      
   /etc/mail/      Fichiers de configuration pour les agents de transport du  
                   courrier electronique comme sendmail(8).                   
   /etc/namedb/    Fichiers de configuration de named; voir la page de manuel 
                   named(8).                                                  
   /etc/periodic/  Procedures qui sont executees de fac,on quotidienne,       
                   hebdomadaire et mensuelle par l'intermediaire de cron(8);  
                   voir la page de manuel periodic(8).                        
   /etc/ppp/       Fichiers de configuration de ppp; voir la page de manuel   
                   ppp(8).                                                    
   /mnt/           Repertoire vide habituellement utilise par les             
                   administrateurs systeme comme un point de montage          
                   temporaire.                                                
   /proc/          Le systeme de fichiers pour les processus; voir les pages  
                   de manuel procfs(5), mount_procfs(8).                      
   /rescue/        Programmes lies en statique pour les reparations           
                   d'urgence; consultez la page de manuel rescue(8).          
   /root/          Repertoire personnel du compte root.                       
   /sbin/          Programmes systemes et utilitaires systemes fondamentaux   
                   aux environnements mono et multi-utilisateurs.             
   /tmp/           Fichiers temporaires. Le contenu de /tmp n'est en general  
                   PAS preserve par un redemarrage du systeme. Un systeme de  
                   fichiers en memoire est souvent monte sur /tmp. Cela peut  
                   etre automatise en utilisant les variables rc.conf(5)      
                   relatives au systeme << tmpmfs >> (ou `a l'aide d'une      
                   entree dans le fichier /etc/fstab; consultez la page de    
                   manuel mdmfs(8)).                                          
   /usr/           La majorite des utilitaires et applications utilisateur.   
   /usr/bin/       Utilitaires generaux, outils de programmation, et          
                   applications.                                              
   /usr/include/   Fichiers d'en-tete C standard.                             
   /usr/lib/       Ensemble des bibliotheques.                                
   /usr/libdata/   Divers fichiers de donnees de service.                     
   /usr/libexec/   Utilitaires et daemons systeme (executes par d'autres      
                   programmes).                                               
   /usr/local/     Executables, bibliotheques, etc... Egalement utilise comme 
                   destination de defaut pour les logiciels portes pour       
                   FreeBSD. Dans /usr/local, l'organisation generale decrite  
                   par la page de manuel hier(7) pour /usr devrait etre       
                   utilisee. Exceptions faites du repertoire man qui est      
                   directement sous /usr/local plutot que sous                
                   /usr/local/share, et la documentation des logiciels portes 
                   est dans share/doc/port.                                   
   /usr/obj/       Arborescence cible specifique `a une architecture produite 
                   par la compilation de l'arborescence /usr/src.             
   /usr/ports      Le catalogue des logiciels portes (optionnel).             
   /usr/sbin/      Utilitaires et daemons systeme (executes par les           
                   utilisateurs).                                             
   /usr/share/     Fichiers independants de l'architecture.                   
   /usr/src/       Fichiers source FreeBSD et/ou locaux.                      
   /usr/X11R6/     Executables, bibliotheques etc... de la distribution       
                   d'X11R6 (optionnel).                                       
   /var/           Fichiers de traces, fichiers temporaires, et fichiers      
                   tampons. Un systeme de fichiers en memoire est parfois     
                   monte sur /var. Cela peut etre automatise en utilisant les 
                   variables rc.conf(5) relatives au systeme << varmfs >> (ou 
                   `a l'aide d'une entree dans le fichier /etc/fstab;         
                   consultez la page de manuel mdmfs(8)).                     
   /var/log/       Divers fichiers de trace du systeme.                       
   /var/mail/      Boites aux lettres des utilisateurs.                       
   /var/spool/     Divers repertoires tampons des systemes de courrier        
                   electronique et d'impression.                              
   /var/tmp/       Fichiers temporaires. Ces fichiers sont generalement       
                   conserves lors d'un redemarrage du systeme, `a moins que   
                   /var ne soit un systeme de fichiers en memoire.            
   /var/yp         Tables NIS.                                                

3.5. Organisation des disques

   Le plus petit element qu'utilise FreeBSD pour retrouver des fichiers est
   le nom de fichier. Les noms de fichiers sont sensibles `a la casse des
   caracteres, ce qui signifie que readme.txt et README.TXT sont deux
   fichiers separes. FreeBSD n'utilise pas l'extension (.txt) d'un fichier
   pour determiner si ce fichier est un programme, un document ou une autre
   forme de donnee.

   Les fichiers sont stockes dans des repertoires. Un repertoire peut ne
   contenir aucun fichier, ou en contenir plusieurs centaines. Un repertoire
   peut egalement contenir d'autre repertoires, vous permettant de construire
   une hierarchie de repertoires `a l'interieur d'un autre. Cela rend plus
   simple l'organisation de vos donnees.

   Les fichiers et les repertoires sont references en donnant le nom du
   fichier ou du repertoire, suivi par un slash, /, suivi par tout nom de
   repertoire necessaire. Si vous avez un repertoire foo, qui contient le
   repertoire bar, qui contient le fichier readme.txt, alors le nom complet,
   ou chemin ("path") vers le fichier est foo/bar/readme.txt.

   Les repertoires et les fichiers sont stockes sur un systeme de fichiers.
   Chaque systeme de fichiers contient `a son niveau le plus haut un
   repertoire appele repertoire racine pour ce systeme de fichiers. Ce
   repertoire racine peut alors contenir les autres repertoires.

   Jusqu'ici cela est probablement semblable `a n'importe quel autre systeme
   d'exploitation que vous avez pu avoir utilise. Il y a quelques
   differences: par exemple, MS-DOS(R) utilise \ pour separer les noms de
   fichier et de repertoire, alors que MacOS utilise :.

   FreeBSD n'utilise pas de lettre pour les lecteurs, ou d'autres noms de
   disque dans le chemin. Vous n'ecrirez pas c:/foo/bar/readme.txt sous
   FreeBSD.

   Au lieu de cela, un systeme de fichiers est designe comme systeme de
   fichiers racine. La racine du systeme de fichiers racine est representee
   par un /. Tous les autres systemes de fichiers sont alors montes sous le
   systeme de fichiers racine. Peu importe le nombre de disques que vous avez
   sur votre systeme FreeBSD, chaque repertoire apparait comme faisant partie
   du meme disque.

   Supposez que vous avez trois systemes de fichiers, appeles A, B, et C.
   Chaque systeme de fichiers possede un repertoire racine, qui contient deux
   autres repertoires, nommes A1, A2 (et respectivement B1, B2 et C1, C2).

   Appelons A le systeme de fichiers racine. Si vous utilisiez la commande ls
   pour visualiser le contenu de ce repertoire, vous verriez deux
   sous-repertoires, A1 et A2. L'arborescence des repertoires ressemblera `a
   ceci:

   Un systeme de fichiers doit etre monte dans un repertoire d'un autre
   systeme de fichiers. Supposez maintenant que vous montez le systeme de
   fichiers B sur le repertoire A1. Le repertoire racine de B remplace A1, et
   les repertoires de B par consequent apparaissent:

   Tout fichier de B1 ou B2 peut etre atteint avec le chemin /A1/B1 ou /A1/B2
   si necessaire. Tous les fichiers qui etaient dans A1 ont ete
   temporairement caches. Ils reapparaitront si B est demonte de A.

   Si B a ete monte sur A2 alors le diagramme sera semblable `a celui-ci:

   et les chemins seront /A2/B1 et respectivement /A2/B2.

   Les systemes de fichiers peuvent etre montes au sommet d'un autre. En
   continuant l'exemple precedent, le systeme de fichiers C pourrait etre
   monte au sommet du repertoire B1 dans le systeme de fichiers B, menant `a
   cet arrangement:

   Ou C pourrait etre monte directement sur le systeme de fichiers A, sous le
   repertoire A1:

   Si vous etes familier de MS-DOS(R), ceci est semblable, bien que pas
   identique, `a la commande join.

   Ce n'est normalement pas quelque chose qui doit vous preoccuper.
   Generalement vous creez des systemes de fichiers `a l'installation de
   FreeBSD et decidez ou les monter, et ensuite ne les modifiez jamais `a
   moins que vous ajoutiez un nouveau disque.

   Il est tout `a fait possible de n'avoir qu'un seul grand systeme de
   fichiers racine, et de ne pas en creer d'autres. Il y a quelques
   inconvenients `a cette approche, et un avantage.

   Avantages des systemes de fichiers multiples
     * Les differents systemes de fichiers peuvent avoir differentes options
       de montage. Par exemple, avec une planification soigneuse, le systeme
       de fichiers racine peut etre monte en lecture seule, rendant
       impossible tout effacement par inadvertance ou edition de fichier
       critique. La separation des systemes de fichiers inscriptibles par
       l'utilisateur permet leur montage en mode nosuid; cette option empeche
       les bits suid/guid des executables stockes sur ce systeme de fichiers
       de prendre effet, ameliorant peut-etre la securite.

     * FreeBSD optimise automatiquement la disposition des fichiers sur un
       systeme de fichiers, selon la fac,on dont est utilise le systeme de
       fichiers. Aussi un systeme de fichiers contenant beaucoup de petits
       fichiers qui sont ecrits frequemment aura une optimisation differente
       `a celle d'un systeme contenant moins, ou de plus gros fichiers. En
       ayant un seul grand systeme de fichiers cette optimisation est perdue.

     * Les systemes de fichiers de FreeBSD sont tres robustes meme en cas de
       coupure secteur. Cependant une coupure secteur `a un moment critique
       pourrait toujours endommager la structure d'un systeme de fichiers. En
       repartissant vos donnees sur des systemes de fichiers multiples il est
       plus probable que le systeme redemarre, vous facilitant la
       restauration des donnees `a partir de sauvegardes si necessaire.

   Avantage d'un systeme de fichiers unique
     * Les systemes de fichiers ont une taille fixe. Si vous creez un systeme
       de fichiers `a l'installation de FreeBSD et que vous lui donnez une
       taille specifique, vous pouvez plus tard vous apercevoir que vous avez
       besoin d'une partition plus grande. Cela n'est pas facilement faisable
       sans sauvegardes, recreation du systeme de fichiers, et enfin
       restauration des donnees.

  Important:

       FreeBSD dispose d'une commande, growfs(8), qui permettra d'augmenter
       la taille d'un systeme de fichiers au vol, supprimant cette
       limitation.

   Les systemes de fichiers sont contenus dans des partitions. Cela n'a pas
   la meme signification que l'utilisation commune du terme partition (par
   exemple une partition MS-DOS(R)), en raison de l'heritage Unix de FreeBSD.
   Chaque partition est identifiee par une lettre de a `a h. Chaque partition
   ne contient qu'un seul systeme de fichiers, cela signifie que les systemes
   de fichiers sont souvent decrits soit par leur point de montage typique
   dans la hierarchie du systeme de fichiers, soit par la lettre de la
   partition qui les contient.

   FreeBSD utilise aussi de l'espace disque pour l'espace de pagination
   ("swap"). L'espace de pagination fournit `a FreeBSD la memoire virtuelle.
   Cela permet `a votre ordinateur de se comporter comme s'il disposait de
   beaucoup plus de memoire qu'il n'en a reellement. Quand FreeBSD vient `a
   manquer de memoire il deplace certaines donnees qui ne sont pas
   actuellement utilisees vers l'espace de pagination, et les rapatrie (en
   deplac,ant quelque chose d'autre) quand il en a besoin.

   Quelques partitions sont liees `a certaines conventions.

   Partition                            Convention                            
   a         Contient normalement le systeme de fichiers racine               
   b         Contient normalement l'espace de pagination                      
   c         Normalement de la meme taille que la tranche ("slice") contenant 
             les partitions. Cela permet aux utilitaires devant agir sur      
             l'integralite de la tranche (par exemple un analyseur de blocs   
             defectueux) de travailler sur la partition c. Vous ne devriez    
             normalement pas creer de systeme de fichiers sur cette           
             partition.                                                       
   d         La partition d a eu dans le passe une signification              
             particuliere, ce n'est plus le cas aujourd'hui, et d pourra etre 
             utilisee comme une partition classique.                          

   Chaque partition contenant un systeme de fichiers est stockee dans ce que
   FreeBSD appelle une tranche ("slice"). Tranche - "slice" est le terme
   FreeBSD pour ce qui est communement appele partition, et encore une fois,
   cela en raison des fondations Unix de FreeBSD. Les tranches sont
   numerotees, en partant de 1, jusqu'`a 4.

   Les numeros de tranche suivent le nom du peripherique, avec le prefixe s,
   et commencent `a 1. Donc "da0s1" est la premiere 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 precis. Ces tranches etendues sont numerotees `a
   partir de 5, donc "ad0s5" est la premiere tranche etendue sur le premier
   disque IDE. Elles sont utilisees par des systemes de fichiers qui
   s'attendent `a occuper une tranche entiere.

   Les tranches, les disques "en mode dedie", et les autres disques
   contiennent des partitions, qui sont representees par des lettres allant
   de a `a h. Cette lettre est ajoutee au nom de peripherique, aussi "da0a"
   est la partition a sur le premier disque da, qui est en "en mode dedie".
   "ad1s3e" est la cinquieme partition de la troisieme tranche du second
   disque IDE.

   En conclusion chaque disque present sur le systeme est identifie. 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
   numerotation des disques commence `a 0. Les codes communs que vous risquez
   de rencontrer sont enumeres dans le Tableau 3.1, << Codes des
   peripheriques disques >>.

   Quand vous faites reference `a une partition, FreeBSD exige que vous
   nommiez egalement la tranche et le disque contenant la partition, et quand
   vous faites reference `a une tranche vous devrez egalement faire reference
   au nom du disque. On fait donc reference `a une partition en ecrivant le
   nom du disque, s, le numero de la tranche, et enfin la lettre de la
   partition. Des exemples sont donnes dans l'Exemple 3.1, << Exemples
   d'appellation de disques, tranches et partitions >>.

   L'Exemple 3.2, << Modele conceptuel d'un disque >> montre un exemple de
   l'organisation d'un disque qui devrait aider `a clarifier les choses.

   Afin d'installer FreeBSD vous devez tout d'abord configurer les tranches
   sur votre disque, ensuite creer les partitions dans la tranche que vous
   utiliserez pour FreeBSD, et alors creer un systeme de fichiers (ou espace
   de pagination) dans chaque partition, et decider de l'endroit ou seront
   montes les systemes de fichiers.

   Tableau 3.1. Codes des peripheriques disques

               Code                             Signification                 
   ad                            Disque ATAPI (IDE)                           
   da                            Disque SCSI                                  
   acd                           CDROM ATAPI (IDE)                            
   cd                            CDROM SCSI                                   
   fd                            Lecteur de disquette                         

   Exemple 3.1. Exemples d'appellation de disques, tranches et partitions

    Nom                              Signification                            
   ad0s1a Premiere partition (a) sur la premiere tranche (s1) du premier      
          disque IDE (ad0).                                                   
   da1s2e Cinquieme partition (e) sur la seconde tranche (s2) du deuxieme     
          disque SCSI (da1).                                                  

   Exemple 3.2. Modele conceptuel d'un disque

   Ce diagramme montre comment FreeBSD voit le premier disque IDE attache au
   systeme. Supposons que le disque a une capacite de 4 Go, et contient deux
   tranches de 2 Go (partitions MS-DOS(R)). La premiere tranche contient un
   disque MS-DOS(R), C:, et la seconde tranche contient une installation de
   FreeBSD. Dans cet exemple l'installation de FreeBSD a trois partitions de
   donnees, et une partition de pagination.

   Les trois partitions accueilleront chacune un systeme de fichiers. La
   partition a sera utilisee en tant que systeme de fichiers racine, la
   partition e pour le contenu du repertoire /var, et f pour l'arborescence
   du repertoire /usr.

3.6. Monter et demonter des systemes de fichiers

   Le systeme de fichiers peut etre vu comme un arbre enracine sur le
   repertoire /. /dev, /usr, et les autres repertoires dans le repertoire
   racine sont des branches, qui peuvent avoir leurs propres branches, comme
   /usr/local, et ainsi de suite.

   Il y a diverses raisons pour heberger certains de ces repertoires sur des
   systemes de fichiers separes. /var contient les repertoires log/, spool/,
   et divers types de fichiers temporaires, et en tant que tels, peuvent voir
   leur taille augmenter de fac,on importante. Remplir le systeme de fichiers
   racine n'est pas une bonne idee, aussi separer /var de / est souvent
   favorable.

   Une autre raison courante de placer certains repertoires sur d'autres
   systemes de fichiers est s'ils doivent etre heberges sur des disques
   physiques separes, ou sur des disques virtuels separes, comme les systemes
   de fichiers reseau, ou les lecteurs de CDROM.

  3.6.1. Le fichier fstab

   Durant le processus de demarrage, les systemes de fichiers listes dans
   /etc/fstab sont automatiquement montes (`a moins qu'il ne soient listes
   avec l'option noauto).

   Le fichier /etc/fstab contient une liste de lignes au format suivant:

 device       /mount-point fstype     options      dumpfreq     passno

   device

           Un nom de peripherique (qui devrait exister), comme explique dans
           la Section 18.2, << Noms des peripheriques >>.

   mount-point

           Un repertoire (qui devrait exister), sur lequel sera monte le
           systeme de fichier.

   fstype

           Le type de systeme de fichiers `a indiquer `a mount(8). Le systeme
           de fichiers par defaut de FreeBSD est l'ufs.

   options

           Soit rw pour des systemes de fichiers `a lecture-ecriture, soit ro
           pour des systemes de fichiers `a lecture seule, suivi par toute
           option qui peut s'averer necessaire. Une option courante est
           noauto pour les systemes de fichiers qui ne sont normalement pas
           montes durant la sequence de demarrage. D'autres options sont
           presentees dans la page de manuel mount(8).

   dumpfreq

           C'est utilise par dump(8) pour determiner quels systemes de
           fichiers necessitent une sauvegarde. Si ce champ est absent, une
           valeur de zero est supposee.

   passno

           Ceci determine l'ordre dans lequel les systemes de fichiers
           devront etre verifies. Les systemes de fichiers qui doivent etre
           ignores devraient avoir leur passno positionne `a zero. Le systeme
           de fichiers racine (qui doit etre verifie avant tout le reste)
           devrait avoir son passno positionne `a un, et les options passno
           des autres systemes fichiers devraient etre positionnees `a des
           valeurs superieures `a un. Si plus d'un systeme de fichiers ont le
           meme passno alors fsck(8) essaiera de verifier les systemes de
           fichiers en parallele si c'est possible.

   Consultez la page de manuel de fstab(5) pour plus d'information sur le
   format du fichier /etc/fstab et des options qu'il contient.

  3.6.2. La commande mount

   La commande mount(8) est ce qui est finalement utilise pour monter des
   systemes de fichiers.

   Dans sa forme la plus simple, vous utilisez:

 # mount device mountpoint

   Il y beaucoup d'options, comme mentionne dans la page de manuel mount(8),
   mais les plus courantes sont:

   Options de montage

   -a

           Monte tous les systemes de fichiers listes dans /etc/fstab.
           Exception faite de ceux marques comme "noauto", ou exclus par le
           drapeau -t, ou encore ceux qui sont dej`a montes.

   -d

           Tout effectuer `a l'exception de l'appel systeme de montage reel.
           Cette option est utile conjointement avec le drapeau -v pour
           determiner ce que mount(8) est en train d'essayer de faire.

   -f

           Force le montage d'un systeme de fichiers non propre (dangereux),
           ou force la revocation de l'acces en ecriture quand on modifie
           l'etat de montage d'un systeme de fichiers de l'acces
           lecture-ecriture `a l'acces lecture seule.

   -r

           Monte le systeme de fichiers en lecture seule. C'est identique `a
           l'utilisation de l'argument ro (rdonly pour les versions de
           FreeBSD anterieures `a la 5.2) avec l'option -o.

   -t fstype

           Monte le systeme de fichiers comme etant du type de systeme donne,
           ou monte seulement les systemes de fichiers du type donne, si
           l'option -a est precisee.

           "ufs" est le type de systeme de fichiers par defaut.

   -u

           Mets `a jour les options de montage sur le systeme de fichiers.

   -v

           Rends la commande prolixe.

   -w

           Monte le systeme de fichiers en lecture-ecriture.

   L'option -o accepte une liste d'options separees par des virgules, dont
   les suivantes:

   noexec

           Ne pas autoriser l'execution de binaires sur ce systeme de
           fichiers. C'est egalement une option de securite utile.

   nosuid

           Ne pas prendre en compte les indicateurs setuid ou setgid sur le
           systeme de fichiers. C'est egalement une option de securite utile.

  3.6.3. La commande umount

   La commande umount(8) prend, comme parametre, un des points de montage, un
   nom de peripherique, ou l'option -a ou -A.

   Toutes les formes acceptent -f pour forcer de demontage, et -v pour le
   mode prolixe. Soyez averti que l'utilisation de -f n'est generalement pas
   une bonne idee. Demonter de force des systemes de fichiers pourrait faire
   planter l'ordinateur ou endommager les donnees sur le systeme de fichiers.

   Les options -a et -A sont utilisees pour demonter tous les systemes de
   fichiers actuellement montes, eventuellement modifie par les types de
   systemes de fichiers listes apres l'option -t. Cependant l'option -A,
   n'essaye pas de demonter le systeme de fichiers racine.

3.7. Processus

   FreeBSD est un systeme d'exploitation multi-taches. Cela veut dire qu'il
   semble qu'il y ait plus d'un programme fonctionnant `a la fois. Tout
   programme fonctionnant `a un moment donne est appele un processus. Chaque
   commande que vous utiliserez lancera au moins un nouveau processus, et il
   y a de nombreux processus systeme qui tournent constamment, maintenant
   ainsi les fonctionnalites du systeme.

   Chaque processus est identifie de fac,on unique par un nombre appele
   process ID (identifiant de processus), ou PID, et, comme pour les
   fichiers, chaque processus possede egalement un proprietaire et un groupe.
   Les informations sur le proprietaire et le groupe sont utilisees pour
   determiner quels fichiers et peripheriques sont accessibles au processus,
   en utilisant le principe de permissions de fichiers aborde plus tot. La
   plupart des processus ont egalement un processus parent. Le processus
   parent est le processus qui les a lances. Par exemple, si vous tapez des
   commandes sous un interpreteur de commandes, alors l'interpreteur de
   commandes est un processus, et toute commande que vous lancez est aussi un
   processus. Chaque processus que vous lancez de cette maniere aura votre
   interpreteur de commandes comme processus parent. Une exception `a cela
   est le processus special appele init(8). init est toujours le premier
   processus, donc son PID est toujours 1. init est lance automatiquement par
   le noyau au demarrage de FreeBSD.

   Deux commandes sont particulierement utiles pour voir les processus sur le
   systeme, ps(1) et top(1). La commande ps est utilisee pour afficher une
   liste statique des processus tournant actuellement, et peut donner leur
   PID, la quantite de memoire qu'ils utilisent, la ligne de commande par
   l'intermediaire de laquelle ils ont ete lances, et ainsi de suite. La
   commande top(1) affiche tous les processus, et actualise l'affichage
   regulierement, de sorte que vous puissiez voir de fac,on interactive ce
   que fait l'ordinateur.

   Par defaut, ps(1) n'affiche que les commandes que vous faites tourner et
   dont vous etes le proprietaire. Par exemple:

 % ps
   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

   Comme vous pouvez le voir dans cet exemple, la sortie de ps(1) est
   organisee en un certain nombre de colonnes. PID est l'identifiant de
   processus discute plus tot. Les PIDs sont assignes `a partir de 1, et vont
   jusqu'`a 99999, et puis repassent `a 1 quand le maximum est atteint (un
   PID n'est pas reassigne s'il est dej`a utilise). La colonne TT donne le
   terminal sur lequel tourne le programme, et peut etre pour le moment
   ignore sans risque. STAT affiche l'etat du programme, peut etre egalement
   ignore. TIME est la duree d'utilisation du CPU-ce n'est generalement pas
   le temps ecoule depuis que vous avez lance le programme, comme la plupart
   des programmes passent beaucoup de temps `a attendre que certaines choses
   se produisent avant qu'ils n'aient besoin de depenser du temps CPU. Et
   enfin, COMMAND est la ligne de commande qui a ete utilisee lors du
   lancement du programme.

   ps(1) supporte un certain nombre d'options differentes pour modifier les
   informations affichees. Un des ensembles d'options les plus utiles est
   auxww. a affiche l'information au sujet de tous les processus tournant, et
   pas seulement les votres. u donne le nom de l'utilisateur du proprietaire
   du processus, ainsi que l'utilisation de la memoire. x affiche des
   informations sur les processus "daemon", et ww oblige ps(1) `a afficher la
   ligne de commande complete pour chaque processus, plutot que de la
   tronquer quand elle est trop longue pour tenir `a l'ecran.

   La sortie de top(1) est semblable. Un extrait de session ressemble `a
   ceci:

 % top
 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
 ...

   La sortie est divisee en deux sections. L'entete (les cinq premieres
   lignes) donne le PID du dernier processus lance, la charge systeme moyenne
   (qui est une mesure de l'occupation du systeme), la duree de
   fonctionnement du systeme (le temps ecoule depuis le dernier redemarrage),
   et l'heure actuelle. Les autres elements de l'entete concernent le nombre
   de processus en fonctionnement (47 dans notre cas), combien d'espace
   memoire et d'espace de pagination sont occupes, et combien de temps le
   systeme passe dans les differents etats du CPU.

   En dessous il y a une serie de colonnes contenant des informations
   semblables `a celles donnees par ps(1). Comme precedemment vous pouvez
   lire le PID, le nom d'utilisateur, la quantite de temps CPU consommee, et
   la commande qui a ete lancee. top(1) vous affiche par defaut la quantite
   d'espace memoire utilisee par chaque processus. Cela est divise en deux
   colonnes, une pour la quantite totale, et une autre pour la quantite
   residente-la quantite totale represente l'espace memoire dont a eu besoin
   l'application, et la quantite residente represente l'espace qui est en
   fait utilise actuellement. Dans cet exemple vous pouvez voir que
   Netscape(R) a exige presque 30 Mo de RAM, mais utilise actuellement
   seulement 9Mo.

   top(1) actualise l'affichage toutes les deux secondes; cela peut etre
   modifie avec l'option s.

3.8. Daemons, signaux, et comment tuer un processus

   Quand vous utilisez un editeur il est facile de le controler, de lui dire
   de charger des fichiers, et ainsi de suite. Vous pouvez faire cela parce
   que l'editeur fournit les possibilites de le faire, et parce qu'un editeur
   est attache `a un terminal. Certains programmes ne sont pas conc,us pour
   fonctionner avec un dialogue constant avec l'utilisateur, et donc ils se
   deconnectent du terminal `a la premiere occasion. Par exemple, un serveur
   web passe son temps `a repondre aux requetes web, il n'attend normalement
   pas d'entree de votre part. Les programmes qui transportent le courrier
   electronique de site en site sont un autre exemple de cette classe
   d'application.

   Nous appelons ces programmes des daemons (demons). Les "daemons" etaient
   des personnages de la mythologie Grecque: ni bon ni mauvais, c'etaient de
   petits esprits serviteurs qui, generalement, ont ete `a l'origine de
   choses utiles `a l'humanite, un peu comme les serveurs web ou de
   messagerie d'aujourd'hui nous sont utiles. C'est pourquoi la mascotte BSD
   a ete, pendant longtemps, un demon `a l'apparence joyeuse portant des
   chaussures de tennis et une fourche.

   Il existe une convention pour nommer les programmes qui fonctionnent
   normalement en tant que daemons qui est d'utiliser une terminaison en "d".
   BIND est le "Berkeley Internet Name Domain", mais le programme reel qui
   est execute s'appelle named); le programme correspondant au serveur web
   Apache est appele httpd; le daemon de gestion de la file d'attente de
   l'imprimante est lpd, et ainsi de suite. C'est une convention, mais pas
   une obligation pure et simple; par exemple le daemon principal de gestion
   du courrier electronique pour l'application Sendmail est appele sendmail,
   et non pas maild, comme vous pourriez l'imaginer.

   Parfois vous devrez communiquer avec un processus daemon. Une maniere de
   proceder est de lui (ou `a tout processus en cours d'execution) envoyer ce
   que l'on appelle un signal. Il existe un certain nombre de signaux
   differents que vous pouvez envoyer-certains d'entre eux ont une
   signification precise, d'autres sont interpretes par l'application, et la
   documentation de l'application vous indiquera comment l'application
   interprete ces signaux. Vous ne pouvez envoyer de signaux qu'aux processus
   dont vous etes le proprietaire. Si vous envoyez un signal `a un processus
   appartenant `a quelqu'un d'autre avec kill(1) ou kill(2), vous obtiendrez
   un refus de permission. Il existe une exception `a cela: l'utilisateur
   root, qui peut envoyer des signaux aux processus de chacun.

   Dans certain cas FreeBSD enverra egalement aux applications des signaux.
   Si une application est mal ecrite, et tente d'acceder `a une partie de
   memoire `a laquelle elle n'est pas supposee avoir acces, FreeBSD envoie au
   processus le signal de violation de segmentation (SIGSEGV). Si une
   application a utilise l'appel systeme alarm(3) pour etre avertie des
   qu'une periode de temps precise est ecoulee alors lui sera envoye le
   signal d'alarme (SIGALRM), et ainsi de suite.

   Deux signaux peuvent etre utilises pour arreter un processus, SIGTERM et
   SIGKILL. SIGTERM est la maniere polie de tuer un processus; le processus
   peut attraper le signal, realiser que vous desirez qu'il se termine,
   fermer les fichiers de trace qu'il a peut-etre ouvert, et generalement
   finir ce qu'il etait en train de faire juste avant la demande d'arret.
   Dans certains cas un processus peut ignorer un SIGTERM s'il est au milieu
   d'une tache qui ne peut etre interrompue.

   SIGKILL ne peut etre ignore par un processus. C'est le signal "Je me fiche
   de ce que vous faites, arretez immediatement". Si vous envoyez un SIGKILL
   `a un processus alors FreeBSD stoppera le processus[4].

   Les autres signaux que vous pourriez avoir envie d'utiliser sont SIGHUP,
   SIGUSR1, et SIGUSR2. Ce sont des signaux d'usage general, et differentes
   applications se comporteront differemment quand ils sont envoyes.

   Supposez que vous avez modifie le fichier de configuration de votre
   serveur web-vous voudriez dire `a votre serveur web de relire son fichier
   de configuration. Vous pourriez arreter et relancer httpd, mais il en
   resulterait une breve periode d'indisponibilite de votre serveur web, ce
   qui peut etre indesirable. La plupart des daemons sont ecrits pour
   repondre au signal SIGHUP en relisant leur fichier de configuration. Donc
   au lieu de tuer et relancer httpd vous lui enverriez le signal SIGHUP.
   Parce qu'il n'y a pas de maniere standard de repondre `a ces signaux,
   differents daemons auront differents comportements, soyez sur de ce que
   vous faites et lisez la documentation du daemon en question.

   Les signaux sont envoyes en utilisant la commande kill(1), comme cet
   exemple le montre:

   Procedure 3.1. Envoyer un signal `a un processus

   Cet exemple montre comment envoyer un signal `a inetd(8). Le fichier de
   configuration d'inetd est /etc/inetd.conf, et inetd relira ce fichier de
   configuration quand un signal SIGHUP est envoye.

    1. Trouvez l'identifiant du processus (PID) auquel vous voulez envoyer le
       signal. Faites-le en employant ps(1) et grep(1). La commande grep(1)
       est utilisee pour rechercher dans le resultat la chaine de caracteres
       que vous specifiez. Cette commande est lancee en tant qu'utilisateur
       normal, et inetd(8) est lance en tant que root, donc les options ax
       doivent etre passees `a ps(1).

 % ps -ax | grep inetd
   198  ??  IWs    0:00.00 inetd -wW

       Donc le PID d'inetd(8) est 198. Dans certains cas la commande grep
       inetd pourrait aussi apparaitre dans le resultat. C'est `a cause de la
       fac,on dont ps(1) recherche la liste des processus en fonctionnement.

    2. Utilisez kill(1) pour envoyer le signal. Etant donne qu'inetd(8)
       tourne sous les droits de l'utilisateur root vous devez utilisez su(1)
       pour devenir, en premier lieu, root.

 % su
 Password:
 # /bin/kill -s HUP 198

       Comme la plupart des commandes UNIX(R), kill(1) n'affichera rien si la
       commande est couronnee de succes. Si vous envoyez un signal `a un
       processus dont vous n'etes pas le proprietaire alors vous verrez kill:
       PID: Operation not permitted. Si vous avez fait une erreur dans le
       PID, vous enverrez le signal soit `a un mauvais processus, ce qui peut
       etre mauvais, soit, si vous etes chanceux, vous enverrez le signal `a
       un PID qui n'est pas actuellement utilise, et vous verrez kill: PID:
       No such process.

  Pourquoi utiliser /bin/kill?:

       De nombreux interpreteurs de commandes fournissent la commande kill
       comme commande interne; c'est `a dire, que l'interpreteur de commandes
       enverra directement le signal, plutot que de lancer /bin/kill. Cela
       peut etre utile, cependant les differents interpreteurs ont une
       syntaxe differente pour specifier le nom du signal `a envoyer. Plutot
       que de tenter de les apprendre toutes, il peut etre plus simple de
       juste employer directement la commande /bin/kill ....

   Envoyer d'autres signaux est tres semblable, substituez juste TERM ou KILL
   dans la ligne de commande si necessaire.

  Important:

   Tuer au hasard des processus sur le systeme peut etre une mauvaise idee.
   En particulier, init(8), processus `a l'identifiant 1, qui est tres
   particulier. Lancer la commande /bin/kill -s KILL 1 est une maniere rapide
   d'arreter votre systeme. Verifiez toujours `a deux fois les arguments que
   vous utilisez avec kill(1) avant d'appuyer sur Entree.

3.9. Interpreteurs de commandes - "Shells"

   Sous FreeBSD, beaucoup du travail quotidien est effectue sous une
   interface en ligne de commande appelee interpreteur de commandes ou
   "shell". Le role principal d'un interpreteur de commandes est de prendre
   les commandes sur le canal d'entree et de les executer. Beaucoup
   d'interpreteurs de commandes ont egalement des fonctions integrees pour
   aider dans les taches quotidiennes comme la gestion de fichiers, le
   mecanisme de remplacement et d'expansion des jokers ("file globbing"),
   l'edition de la ligne de commande, les macros commandes, et les variables
   d'environnement. FreeBSD est fournit avec un ensemble d'interpreteurs de
   commandes, comme sh, l'interpreteur de commandes Bourne, et tcsh,
   l'interpreteur de commandes C-shell ameliore. Beaucoup d'autres
   interpreteurs de commandes sont disponibles dans le catalogue des
   logiciels portes, comme zsh et bash.

   Quel interpreteur de commandes utilisez-vous? C'est vraiment une question
   de gout. Si vous programmez en C vous pourriez vous sentir plus `a l'aise
   avec un interpreteur de commandes proche du C comme tcsh. Si vous venez du
   monde Linux ou que vous etes nouveau `a l'interface en ligne de commande
   d'UNIX(R) vous pourriez essayer bash. L'idee principale est que chaque
   interpreteur de commandes `a des caracteristiques uniques qui peuvent ou
   ne peuvent pas fonctionner avec votre environnement de travail prefere, et
   que vous avez vraiment le choix de l'interpreteur de commandes `a
   utiliser.

   Une des caracteristiques communes des interpreteurs de commandes est de
   pouvoir completer les noms de fichiers ("filename completion"). En tapant
   les premieres lettres d'une commande ou d'un fichier, vous pouvez
   habituellement faire completer automatiquement par l'interpreteur de
   commandes le reste de la commande ou du nom du fichier en appuyant sur la
   touche Tab du clavier. Voici un exemple. Supposez que vous avez deux
   fichiers appeles respectivement foobar et foo.bar. Vous voulez effacer
   foo.bar. Donc ce que vous devriez taper sur le clavier est: rm
   fo[Tab].[Tab].

   L'interpreteur de commandes devrait afficher rm foo[BEEP].bar.

   Le [BEEP] est la sonnerie de la console, c'est l'interpreteur de commande
   indiquant qu'il n'est pas en mesure de completer totalement le nom du
   fichier parce qu'il y a plus d'une possibilite. foobar et foo.bar
   commencent tous les deux par fo, mais il fut capable de completer jusqu'`a
   foo. Si vous tapez ., puis appuyez `a nouveau sur Tab, l'interpreteur de
   commandes devrait pouvoir completer le reste du nom du fichier pour vous.

   Une autre caracteristique de l'interpreteur de commandes est l'utilisation
   de variables d'environnement. Les variables d'environnement sont une paire
   variable/valeur stockees dans l'espace memoire d'environnement de
   l'interpreteur de commandes. Cet espace peut etre lu par n'importe quel
   programme invoque par l'interpreteur de commandes, et contient ainsi
   beaucoup d'elements de configuration des programmes. Voici une liste des
   variables d'environnement habituelles et ce qu'elles signifient:

   Variable                            Description                            
   USER     Le nom d'utilisateur de la personne actuellement attachee au      
            systeme.                                                          
   PATH     La liste des repertoires, separes par deux points, pour la        
            recherche des programmes.                                         
   DISPLAY  Le nom reseau de l'affichage X11 auquel on peut se connecter, si  
            disponible.                                                       
   SHELL    Le nom de l'interpreteur de commandes actuellement utilise.       
   TERM     Le nom du type de terminal de l'utilisateur. Utilise pour         
            determiner les capacites du terminal.                             
   TERMCAP  L'entree de la base de donnees des codes d'echappement pour       
            permettre l'execution de diverses fonctions du terminal.          
   OSTYPE   Type du systeme d'exploitation, e.g. FreeBSD.                     
   MACHTYPE L'architecture du CPU sur lequel tourne actuellement le systeme.  
   EDITOR   L'editeur de texte prefere de l'utilisateur.                      
   PAGER    Le visualisateur de page de texte preferre de l'utilisateur.      
   MANPATH  La liste des repertoires, separes par deux points, pour la        
            recherche des pages de manuel.                                    

   Fixer une variable d'environnement differe legerement d'un interpreteur de
   commandes `a l'autre. Par exemple, dans le style de l'interpreteur de
   commandes de type C-shell comme tcsh et csh, vous utiliseriez setenv pour
   fixer le contenu d'une variable d'environnement. Sous les interpreteurs de
   commandes Bourne comme sh et bash, vous utiliseriez export pour configurer
   vos variables d'environnement. Par exemple, pour fixer ou modifier la
   variable d'environnement EDITOR, sous csh ou tcsh une commande comme la
   suivante fixera EDITOR `a /usr/local/bin/emacs:

 % setenv EDITOR /usr/local/bin/emacs

   Sous les interpreteurs de commandes Bourne:

 % export EDITOR="/usr/local/bin/emacs"

   Vous pouvez faire afficher `a la plupart des interpreteurs de commandes la
   variable d'environnement en plac,ant un caractere $ juste devant son nom
   sur la ligne de commande. Par exemple, echo $TERM affichera le contenu de
   $TERM, car l'interpreteur de commande complete $TERM et passe la main `a
   echo.

   Les interpreteurs de commandes traitent beaucoup de caracteres speciaux,
   appeles metacaracteres, en tant que representation particuliere des
   donnees. Le plus commun est le caractere *, qui represente zero ou
   plusieurs caracteres dans le nom du fichier. Ces metacaracteres speciaux
   peuvent etre utilises pour completer automatiquement le nom des fichiers.
   Par exemple, taper echo * est presque la meme chose que taper ls parce que
   l'interpreteur de commandes prendra tous les fichiers qui correspondent `a
   * et les passera `a echo pour les afficher.

   Pour eviter que l'interpreteur de commande n'interprete les caracteres
   speciaux, ils peuvent etre neutralises en ajoutant un caractere antislash
   (\) devant. echo $TERM affichera votre type de terminal. echo \$TERM
   affichera $TERM tel quel.

  3.9.1. Changer d'interpreteur de commandes

   La methode la plus simple pour changer votre interpreteur de commandes est
   d'utiliser la commande chsh. En lanc,ant chsh vous arriverez dans
   l'editeur correspondant `a votre variable d'environnement EDITOR; si elle
   n'est pas fixee, cela sera vi. Modifiez la ligne "Shell:" en consequence.

   Vous pouvez egalement passer le parametre -s `a chsh; cela modifiera votre
   interpreteur de commandes sans avoir `a utiliser un editeur. Par exemple,
   si vous vouliez changer votre interpreteur de commandes pour bash, ce qui
   suit devrait faire l'affaire:

 % chsh -s /usr/local/bin/bash

  Note:

   L'interpreteur de commandes que vous desirez utiliser doit etre present
   dans le fichier /etc/shells. Si vous avez installe l'interpreteur de
   commandes `a partir du catalogue des logiciels portes, alors cela a du
   dej`a etre fait pour vous. Si vous avez installe `a la main l'interpreteur
   de commandes, vous devez alors le faire.

   Par exemple, si vous avez installe bash `a la main et l'avez place dans
   /usr/local/bin, vous devrez faire:

 # echo "/usr/local/bin/bash" >> /etc/shells

   Puis relancer chsh.

3.10. Editeurs de texte

   Beaucoup de configurations sous FreeBSD sont faites en editant des
   fichiers textes. Aussi ce serait une bonne idee de se familiariser avec un
   editeur de texte. FreeBSD est fourni avec quelques-uns en tant qu'elements
   du systeme de base, et beaucoup d'autres sont disponibles dans le
   catalogue des logiciels portes.

   L'editeur de plus facile et le plus simple `a apprendre est un editeur
   appele ee, qui signifie l'editeur facile (easy editor). Pour lancer ee, on
   taperait sur la ligne de commande ee fichier ou fichier est le nom du
   fichier qui doit etre edite. Par exemple, pour editer /etc/rc.conf, tapez
   ee /etc/rc.conf. Une fois sous ee, toutes les commandes pour utiliser les
   fonctions de l'editeur sont affichees en haut de l'ecran. Le caractere ^
   represente la touche Ctrl sur le clavier, donc ^e represente la
   combinaison de touches Ctrl+e. Pour quitter ee, appuyez sur la touche
   Echap, ensuite choisissez "leave editor". L'editeur vous demandera s'il
   doit sauver les changements si le fichier a ete modifie.

   FreeBSD est egalement fourni avec des editeurs de texte plus puissants
   comme vi en tant qu'element du systeme de base, alors que d'autres
   editeurs, comme Emacs et vim, en tant qu'element du catalogue des
   logiciels portes de FreeBSD (editors/emacs et editors/vim). Ces editeurs
   offrent beaucoup plus de fonctionnalites et de puissance aux depens d'etre
   un peu plus compliques `a apprendre. Cependant si vous projetez de faire
   beaucoup d'edition de texte, l'etude d'un editeur plus puissant comme vim
   ou Emacs vous permettra d'economiser beaucoup plus de temps `a la longue.

3.11. Peripheriques et fichiers speciaux de peripherique

   Un peripherique est un terme utilise la plupart du temps pour les
   activites en rapport avec le materiel present sur le systeme, incluant les
   disques, les imprimantes, les cartes graphiques, et les claviers. Quand
   FreeBSD demarre, la majorite de ce qu'affiche FreeBSD est la detection des
   peripheriques. Vous pouvez `a nouveau consulter les messages de demarrage
   en visualisant le fichier /var/run/dmesg.boot.

   Par exemple, acd0 est le premier lecteur de CDROM IDE, tandis que kbd0
   represente le clavier.

   La plupart de ces peripheriques sous un systeme d'exploitation UNIX(R)
   peuvent etre accedes par l'intermediaire de fichiers appeles fichiers
   speciaux de peripherique ("device node"), qui sont situes dans le
   repertoire /dev.

  3.11.1. Creer des fichiers speciaux de peripherique

   Quand vous ajoutez un nouveau peripherique `a votre systeme, ou compilez
   le support pour des peripheriques supplementaires, de nouveaux fichiers
   speciaux de peripherique doivent etre crees.

    3.11.1.1. DEVFS ("DEVice File System" - Systeme de fichiers de peripherique)

   Le systeme de fichiers de peripherique, ou DEVFS, fournit un acces `a
   l'espace nom des peripheriques du noyau dans l'espace nom du systeme de
   fichiers global. Au lieu d'avoir `a creer et modifier les fichiers
   speciaux de peripherique, DEVFS maintient ce systeme de fichiers
   particulier pour vous.

   Voir la page de manuel de devfs(5) pour plus d'information.

3.12. Le format des fichiers binaires

   Afin de comprendre pourquoi FreeBSD utilise le format elf(5), vous devez
   d'abord connaitre quelques details concernant les trois formats
   "dominants" d'executables actuellement en vigueur sous UNIX(R):

     * a.out(5)

       Le plus vieux et le format objet "classique" d'UNIX(R). Il utilise une
       entete courte et compacte avec un nombre magique au debut qui est
       souvent utilise pour caracteriser le format (voir la page de manuel
       a.out(5) pour plus de details). Il contient trois segments charges:
       .text, .data, et .bss plus une table de symboles et une table de
       chaines de caracteres.

     * COFF

       Le format objet SVR3. L'entete comprend une table de section, de telle
       sorte que vous avez plus de sections qu'uniquement .text, .data et
       .bss.

     * elf(5)

       Le successeur de COFF, qui permet des sections multiples et des
       valeurs possibles de 32 bits et 64 bits. Un inconvenient majeur: ELF a
       aussi ete conc,u en supposant qu'il y aurait qu'un seul ABI par
       architecture systeme. Cette hypothese est en fait assez incorrecte, et
       meme dans le monde SYSV (qui a au moins trois ABIs: SVR4, Solaris,
       SCO) cela ne se verifie pas.

       FreeBSD essaye de contourner ce probleme en fournissant un utilitaire
       pour marquer un executable connu ELF avec des informations sur l'ABI
       qui va avec. Consultez la page de manuel de brandelf(1) pour plus
       d'informations.

   FreeBSD vient du camp "classique" et a utilise le format a.out(5), une
   technologie employee et eprouvee `a travers des generations de BSDs,
   jusqu'aux debuts de la branche 3.X. Bien qu'il fut possible de compiler et
   d'executer des binaires natifs ELF (et noyaux) sous FreeBSD avant cela,
   FreeBSD a initialement resiste `a la "pression" de passer `a ELF comme
   format par defaut. Pourquoi? Bien, quand le camp Linux ont fait leur
   penible transition vers ELF, ce n'est pas tant fuir le format a.out qui
   rendait difficile la construction de bibliotheques partagee pour les
   developpeurs mais le mecanisme de bibliotheques partagees base sur des
   tables de sauts inflexible. Puisque les outils ELF disponibles offraient
   une solution au probleme des bibliotheques partagees et etaient perc,us
   comme "le chemin `a suivre" de toute fac,on, le cout de la migration a ete
   accepte comme necessaire, et la transition a ete realisee. Le mecanisme
   FreeBSD de bibliotheques partagees se rapproche plus du style de mecanisme
   de bibliotheques partagees de SunOS(TM) de Sun, et est tres simple `a
   utiliser.

   Pourquoi existe-t-il tant de formats differents?

   Dans un obscure et lointain passe, il y avait du materiel simple. Ce
   materiel simple supportait un simple petit systeme. a.out etait
   completement adapte pour representer les binaires sur ce systeme simple
   (un PDP-11). Au fur et `a mesure que des personnes portaient UNIX(R) `a
   partir de ce systeme simple, ils ont maintenus le format a.out parce qu'il
   etait suffisant pour les premiers portages d'UNIX(R) sur des architectures
   comme le Motorola 68k, les VAX, etc.

   Alors un certain ingenieur materiel brillant a decide qu'il pourrait
   forcer le materiel `a faire des choses bizarre, l'autorisant ainsi `a
   reduire 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 materiel (connu de nos jour sous le nom de RISC), a.out
   n'etait pas adapte `a ce materiel, aussi beaucoup de formats ont ete
   developpes pour obtenir de meilleures performances de ce materiel que ce
   que pouvait offrir le simple et limite format qu'etait a.out. Des choses
   comme COFF, ECOFF, et quelques autres obscures formats ont ete invente et
   leur limites explorees avant que les choses ne se fixent sur ELF.

   En outre, les tailles des programmes devenaient enormes alors que les
   disques (et la memoire physique) etaient toujours relativement petits,
   aussi le concept de bibliotheque partagee est ne. Le systeme de VM
   (memoire virtuelle) est egalement devenu plus sophistique. Tandis que
   chacune de ces avancees etait faites en utilisant le format a.out, son
   utilite a ete elargie de plus en plus avec chaque nouvelle fonction. De
   plus les gens ont voulu charger dynamiquement des choses `a l'execution,
   ou se debarrasser de partie de leur programme apres l'initialisation pour
   economiser de l'espace memoire et de pagination. Les langages sont devenus
   plus sophistiques et les gens ont voulu du code appele automatiquement
   avant la partie principale du programme. Beaucoup de modifications ont ete
   apportees au format a.out pour rendre possible toutes ces choses, et cela
   a fonctionne pendant un certain temps. Avec le temps, a.out n'etait plus
   capable de gerer tous ces problemes sans une augmentation toujours
   croissante du code et de sa complexite. Tandis ELF resolvait plusieurs de
   ces problemes, il aurait ete penible de quitter un systeme qui a
   fonctionne. Ainsi ELF a du attendre jusqu'au moment ou il etait plus
   penible de rester avec a.out que d'emigrer vers ELF.

   Cependant, avec le temps, les outils de compilation desquels ceux de
   FreeBSD sont derives (l'assembleur et le chargeur tout specialement) ont
   evolue en parallele. Les developpeurs FreeBSD ajouterent les bibliotheques
   partagees et corrigerent quelques bogues. Les gens de chez GNU qui ont `a
   l'origine ecrit ces programmes, les recrivirent et ajouterent un support
   plus simple pour la compilation multi-plateformes, avec differents formats
   `a volonte, et ainsi de suite. Lorsque beaucoup de personnes ont voulu
   elaborer des compilateurs multi-plateformes pour FreeBSD, elles n'eurent
   pas beaucoup de chance puisque les anciennes sources que FreeBSD avait
   pour as et ld n'etaient pas adaptees `a cette tache. Le nouvel ensemble
   d'outils de GNU (binutils) supporte la compilation multi-plateformes, ELF,
   les bibliotheques partagees, les extensions C++, etc. De plus, de nombreux
   vendeurs de logiciels fournissent des binaires ELF, et c'est une bonne
   chose pour permettre leur execution sous FreeBSD.

   ELF est plus expressif qu'a.out et permet plus d'extensibilite dans le
   systeme de base. Les outils ELF sont mieux maintenus, et offrent un
   support pour la compilation multi-plateformes, ce qui est important pour
   de nombreuses personnes. ELF peut etre legerement plus lent qu'a.out, mais
   tenter de mesurer cette difference n'est pas aise. Il y a egalement de
   nombreux details qui different entre les deux dans la fac,on dont ils
   mappent les pages memoire, gere le code d'initialisation, etc. Dans le
   futur, le support a.out sera retire du noyau GENERIC, et par la suite
   retire des sources du noyau une fois que le besoin d'executer d'anciens
   programmes a.out aura disparu.

3.13. Pour plus d'information

  3.13.1. Les pages de manuel

   La documentation la plus complete sur FreeBSD est sous la forme de pages
   de manuel. Presque chaque programme sur le systeme est fournit avec un
   court manuel de reference expliquant l'utilisation de base et les diverses
   options. Ces manuels peuvent etre visualises avec la commande man.
   L'utilisation de la commande man est simple:

 % man command

   command est le nom de la commande `a propos de laquelle vous desirez en
   savoir plus. Par exemple, pour en savoir plus au sujet de la commande ls
   tapez:

 % man ls

   Les manuels en ligne sont divises en sections numerotees:

    1. Commandes utilisateur.

    2. Appels systeme et numeros d'erreur.

    3. Fonctions des bibliotheques C.

    4. Pilotes de peripherique.

    5. Formats de fichier.

    6. Jeux et autres divertissements.

    7. Information diverse.

    8. Commandes de maintenance et d'utilisation du systeme.

    9. Information de developpement du noyau.

   Dans certains cas, le meme sujet peut apparaitre dans plus d'une section
   du manuel en ligne. Par exemple, il existe une commande utilisateur chmod
   et un appel systeme chmod(). Dans ce cas, vous pouvez preciser `a la
   commande man laquelle vous desirez en specifiant la section:

 % man 1 chmod

   Cela affichera la page de manuel de la commande utilisateur chmod. Les
   references `a une section particuliere du manuel en ligne sont
   traditionnellement placees entre parentheses, ainsi chmod(1) se rapporte
   `a la commande utilisateur chmod et chmod(2) se rapporte `a l'appel
   systeme.

   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 man pour
   rechercher des mots-cles dans les descriptions de commandes en employant
   l'option -k:

 % man -k mail

   Avec cette commande on vous affichera la liste des commandes qui ont le
   mot-cle "mail" dans leurs descriptions. C'est en fait equivalent `a
   l'utilisation de la commande apropos.

   Ainsi, vous regardez toutes ces commandes fantaisistes contenues dans
   /usr/bin mais vous n'avez pas la moindre idee de ce quelles font vraiment?
   Faites simplement:

 % cd /usr/bin
 % man -f *

   ou

 % cd /usr/bin
 % whatis *

   ce qui fait la meme chose.

  3.13.2. Fichiers GNU Info

   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
   appeles fichiers info qui peuvent etre lus avec la commande info ou, si
   vous avez installe emacs, dans le mode info d'emacs.

   Pour utiliser la commande info(1), tapez simplement:

 % info

   Pour une breve introduction, tapez h. Pour une reference rapide sur la
   commande, tapez ?.

     ----------------------------------------------------------------------

   [1] C'est ce que signifie i386. Notez que meme si vous ne faites pas
   tourner FreeBSD sur un CPU Intel 386, cela sera i386. Ce n'est pas le type
   de votre microprocesseur, mais "l'architecture" du microprocesseur qui est
   donnee ici.

   [2] Les procedures de demarrage sont des programmes qui sont executes
   automatiquement par FreeBSD au demarrage. Leur fonction principale est de
   configurer le systeme pour permettre l'execution de tout programme, et de
   demarrer tout service que vous avez configure pour tourner en tache de
   fond et executer des choses utiles.

   [3] Une description assez technique et precise de tous les details de la
   console FreeBSD et des pilotes de clavier peut etre trouvee dans les pages
   de manuel de syscons(4), atkbd(4), vidcontrol(1) et kbdcontrol(1). Nous ne
   nous etendrons pas en details ici, mais le lecteur interesse peut toujours
   consulter les pages de manuel pour explication plus detaillee et plus
   complete sur le fonctionnement des choses.

   [4] Ce n'est pas tout `a fait vrai-il y a quelques cas ou les choses ne
   peuvent etre interrompues. Par exemple, si le processus est en train
   d'essayer de lire un fichier qui est sur un autre ordinateur sur le
   reseau, et que l'autre ordinateur n'est plus accessible pour quelque
   raison (a ete eteint, ou le reseau a un probleme), alors le processus est
   dit "non interruptible". Par la suite le processus entrera en pause,
   typiquement apres deux minutes. Des que cette pause sera effective le
   processus sera tue.

Chapitre 4. Installer des applications: les logiciels pre-compiles et les
logiciels portes

   Table des matieres

   4.1. Synopsis

   4.2. Generalites sur l'installation de logiciels

   4.3. Trouver votre application

   4.4. Utiliser le systeme des logiciels pre-compiles

   4.5. Utiliser le catalogue des logiciels portes

   4.6. Activites de post-installation

   4.7. Que faire avec les logiciels portes ne fonctionnant pas?

   Version franc,aise de Marc Fonvieille <blackend@FreeBSD.org>.

4.1. Synopsis

   FreeBSD est livre avec une riche collection d'outils en tant que partie du
   systeme de base. Beaucoup de choses peuvent etre faites avant d'avoir
   besoin de recourir `a l'installation d'une application tiers pour
   effectuer un travail precis. FreeBSD fournit deux technologies
   complementaires pour installer des logiciels tiers sur votre systeme: le
   Catalogue des logiciels portes de FreeBSD (pour une installation `a partir
   des sources), et les logiciels pre-compiles ou << paquetages >> (pour
   installer des binaires pre-compiles). N'importe laquelle de ces deux
   methodes peut etre utilisee pour installer les nouvelles versions de vos
   applications favorites `a partir d'un support local ou directement depuis
   le reseau.

   Apres la lecture de ce chapitre, vous saurez:

     * Comment installer des logiciels tiers pre-compiles.

     * Comment compiler des logiciels tiers `a partir des sources en
       utilisant le catalogue de logiciels portes.

     * Comment effacer les logiciels pre-compiles ou portes precedemment
       installes.

     * Comment modifier les parametres par defaut utilises par le catalogue
       des logiciels portes.

     * Comment trouver l'application recherchee.

     * Comment mettre `a jour vos applications.

4.2. Generalites sur l'installation de logiciels

   Si vous avez utilise auparavant un systeme UNIX(R) vous saurez que la
   procedure typique pour installer les logiciels tiers ressemble `a ceci:

    1. Telecharger le logiciel, qui peut etre distribue sous forme de code
       source, ou sous forme d'un binaire.

    2. Extraire le logiciel de son format de distribution (generalement une
       archive tar compressee soit avec compress(1), soit avec gzip(1), ou
       encore bzip2(1)).

    3. Recherchez la documentation (peut etre un fichier INSTALL ou README,
       ou des fichiers dans un sous repertoire doc/) et lisez les
       informations sur comment installer le logiciel.

    4. Si le logiciel etait distribue sous forme de sources, compilez-le.
       Cela peut impliquer l'edition d'un Makefile, ou l'execution d'une
       procedure configure, et d'autres activites.

    5. Tester et installer le logiciel.

   Et cela si seulement tout se passe bien. Si vous installez un logiciel qui
   n'a pas ete specialement porte pour FreeBSD, il se peut que vous deviez
   editer le code source pour le faire fonctionner correctement.

   Si vous le voulez, vous pouvez continuer d'installer des logiciels suivant
   la methode "traditionnelle" sous FreeBSD. Cependant, FreeBSD fournit deux
   technologies avec lesquelles vous pouvez vous economiser beaucoup
   d'efforts: les logiciels pre-compiles et le catalogue des logiciels
   portes. A l'heure de l'ecriture de ces lignes, plus de 24,000 applications
   tierces sont ainsi mises `a disposition.

   Pour n'importe quelle application donnee, le logiciel pre-compile FreeBSD
   pour cette application est un unique fichier `a telecharger. Il contient
   les copies pre-compilees de toutes les commandes de l'application, ainsi
   que tous fichiers de configuration et documentation. Un logiciel
   pre-compile telecharge peut etre manipule avec les commandes FreeBSD de
   gestion des logiciels pre-compiles, comme pkg_add(1), pkg_delete(1),
   pkg_info(1), et ainsi de suite. L'installation d'une nouvelle application
   peut etre effectuee grace `a une unique commande.

   Un logiciel porte pour FreeBSD est un ensemble de fichiers conc,us pour
   automatiser le processus de compilation d'une application `a partir du
   code source.

   Rappelez-vous qu'il y a un certain nombre d'etapes que vous effectueriez
   si vous compiliez un programme vous-meme (telechargement, extraction,
   application de correctifs, compilation, installation). Les fichiers qui
   composent un logiciel porte contiennent toute l'information necessaire
   pour permettre au systeme de faire cela pour vous. Vous lancez une poignee
   de commandes simples et le code source de l'application est
   automatiquement telecharge, extrait, corrige, compile, et installe pour
   vous.

   En fait, le catalogue des logiciels portes peut etre utilise pour generer
   ce qui pourra plus tard etre manipule avec pkg_add et d'autres commandes
   de gestion des logiciels pre-compiles qui seront presentes sous peu.

   Les logiciels pre-compiles et le catalogue des logiciels portes
   comprennent la notion de dependances. Supposez que vous voulez installer
   une application qui depend de l'installation d'une bibliotheque
   particuliere. L'application et la bibliotheque ont ete toutes deux rendues
   disponibles sous forme de logiciel porte pour FreeBSD ou de logiciel
   pre-compile. Si vous utilisez la commande pkg_add ou le catalogue des
   logiciels portes pour ajouter l'application, tous les deux remarqueront
   que la bibliotheque n'a pas ete installee, et installeront automatiquement
   en premier la bibliotheque.

   Etant donne que les deux technologies sont presque semblables, vous
   pourriez vous demander pourquoi FreeBSD s'ennuie avec les deux. Les
   logiciels pre-compiles et le catalogue de logiciels portes ont chacun
   leurs propres forces, et celle que vous emploierez dependra de votre
   preference.

   Avantages des logiciels pre-compiles
     * L'archive compressee d'un logiciel pre-compile est generalement plus
       petite que l'archive compressee contenant le code source de
       l'application.

     * Les logiciels pre-compiles ne necessitent pas de compilation
       supplementaire. Pour les grosses applications, comme Mozilla, KDE, ou
       GNOME cela peut s'averer important, particulierement si vous etes sur
       un systeme lent.

     * Les logiciels pre-compiles ne demandent pas une comprehension du
       processus implique dans la compilation de logiciels sous FreeBSD.

   Avantages du catalogue des logiciels portes
     * Les logiciels pre-compiles sont normalement compiles avec des options
       conservatrices, parce qu'ils doivent pouvoir tourner sur le plus grand
       nombre de systemes. En installant `a partir du catalogue des logiciels
       portes, vous pouvez ajuster les options de compilation pour (par
       exemple) generer du code specifique au Pentium 4 ou `a l'Athlon.

     * Certaines applications ont des options de compilation concernant ce
       qu'elles peuvent faire et ne pas faire. Par exemple, Apache peut etre
       configure avec une tres large variete d'options integrees differentes.
       En compilant `a partir du catalogue des logiciels portes vous n'avez
       pas `a accepter les options par defaut, et vous pouvez les configurez
       vous-meme.

       Dans certains cas, de multiples logiciels pre-compiles existeront pour
       la meme application pour specifier certaines configurations. Par
       exemple, Ghostscript est disponible comme logiciel pre-compile
       ghostscript et ghostscript-nox11 , en fonction de si vous avez
       installe ou non un serveur X11. Ce type d'arrangement est possible
       avec les logiciels pre-compiles, mais devient rapidement impossible si
       une application a plus d'une ou deux options de compilation.

     * Les licences de certains logiciels interdisent les distributions
       binaires. Ils doivent etre distribues sous forme de code source.

     * Certaines personnes ne font pas confiance aux distributions binaires.
       Au moins avec le code source, vous pouvez (en theorie) le parcourir et
       chercher les problemes potentiels par vous-meme.

     * Si vous avez des correctifs locaux, vous aurez besoin du code source
       afin de les appliquer.

     * Certaines personnes aiment avoir le code source `a portee de main,
       ainsi elles peuvent le lire si elles s'ennuient, le modifier, y faire
       des emprunts (si la licence le permet bien sur), etc...

   Pour suivre les mises `a jour du catalogue des logiciels portes,
   inscrivez-vous `a la liste de diffusion `a propos du catalogue des
   logiciels portes de FreeBSD et la liste de diffusion `a propos des
   rapports de bogue concernant le catalogue des logiciels portes de FreeBSD.

  Avertissement:

   Avant d'installer une application, vous devriez consulter
   http://vuxml.freebsd.org/ `a la recherche de probleme de securite
   concernant votre application.

   Vous pouvez egalement installer ports-mgmt/portaudit qui controlera
   automatiquement toutes les applications installees `a la recherche de
   vulnerabilites connues, un controle sera egalement effectue avant toute
   compilation de logiciel porte. De meme, vous pouvez utiliser la commande
   portaudit -F -a apres avoir installe des logiciels pre-compiles.

   Le reste de ce chapitre expliquera comment utiliser les logiciels
   pre-compiles et le catalogue des logiciels portes et la gestion des
   logiciels tiers sous FreeBSD.

4.3. Trouver votre application

   Avant que vous puissiez installer des applications vous devez savoir ce
   que vous voulez, et comment se nomment les applications.

   La liste des applications disponibles pour FreeBSD augmente de jours en
   jours. Heureusement, il y a plusieurs fac,ons de trouver ce que vous
   desirez:

     * Le site web de FreeBSD maintient `a jour une liste, dans laquelle on
       peut effectuer des recherches, de toutes les applications disponibles
       `a l'adresse http://www.FreeBSD.org/ports/. Le catalogue des logiciels
       portes est divise en categories, et vous pouvez soit chercher une
       application par son nom (si vous le connaissez), soit lister toutes
       les applications disponibles dans une categorie.

     * Dan Langille maintient FreshPorts, `a l'adresse
       http://www.FreshPorts.org/. FreshPorts suit les modifications des
       applications dans le catalogue des logiciels portes, vous permet de
       "surveiller" un ou plusieurs logiciels portes, et peut vous envoyer un
       courrier electronique quand ils sont mis `a jour.

     * Si vous ne connaissez pas le nom de l'application que vous voulez,
       essayez d'utiliser un site comme FreshMeat (http://www.freshmeat.net/)
       pour trouver une application, ensuite verifiez sur le site de FreeBSD
       si l'application a dej`a ete portee.

     * Si vous connaissez le nom exact du logiciel, vous devez juste
       determiner dans quelle categorie il se trouve, vous pouvez utiliser la
       commande whereis(1) pour cela. Tapez simplement whereis file ou file
       est le programme que vous voulez installer. S'il est trouve sur le
       systeme, on vous indiquera ou il se trouve, de la maniere suivante:

 # whereis lsof
 lsof: /usr/ports/sysutils/lsof

       Cela nous indique que lsof (un utilitaire systeme) peut etre trouve
       dans le repertoire /usr/ports/sysutils/lsof.

     * Vous pouvez egalement utiliser une simple commande echo(1) pour
       determiner ou se trouve un logiciel porte dans le catalogue de
       logiciels portes. Par exemple:

 # echo /usr/ports/*/*lsof*
 /usr/ports/sysutils/lsof

       Notez que cette commande retournera tout fichier telecharge du
       repertoire /usr/ports/distfiles correspondant `a ce motif de
       recherche.

     * Encore une autre fac,on de trouver un logiciel porte particulier est
       d'utiliser le mecanisme de recherche interne du catalogue des
       logiciels portes. Pour utiliser la fonction de recherche, vous devrez
       vous trouver dans le repertoire /usr/ports. Une fois dans ce
       repertoire, lancez make search name=program-name ou program-name
       represente le nom du programme que vous voulez localiser. Par exemple,
       si vous recherchiez lsof:

 # cd /usr/ports
 # make search name=lsof
 Port:   lsof-4.56.4
 Path:   /usr/ports/sysutils/lsof
 Info:   Lists information about open files (similar to fstat(1))
 Maint:  obrien@FreeBSD.org
 Index:  sysutils
 B-deps:
 R-deps:

       La partie du message de sortie `a laquelle vous devez preter attention
       est la ligne "Path:", car cela vous indique ou trouver le logiciel
       porte. Les autres informations ne sont pas necessaires afin
       d'installer le logiciel porte, aussi on en parlera pas ici.

       Pour une recherche plus en profondeur vous pouvez egalement utiliser
       make search key=string ou string est le texte `a rechercher. Cela
       recherche les noms de logiciels portes, les commentaires, les
       descriptions et les dependances et peut etre utilise pour trouver des
       logiciels portes se rapportant `a un sujet particulier si vous ne
       connaissez pas le nom du programme que vous cherchez.

       Dans les deux cas, la chaine de caractere de recherche n'est pas
       sensible `a la casse des caracteres. Rechercher "LSOF" menera aux meme
       resultats que la recherche de "lsof".

4.4. Utiliser le systeme des logiciels pre-compiles

   Contribution de Chern Lee.

   Il existe plusieurs outils utilises pour la gestion des logiciels
   pre-compiles sur FreeBSD

     * Les outils de gestion en ligne de commande des logiciels pre-compiles,
       qui sont le sujet de la suite de cette section.

  4.4.1. Installation d'un logiciel pre-compile

   Vous pouvez utiliser l'utilitaire pkg_add(1) pour installer un logiciel
   pre-compile FreeBSD `a partir d'un fichier local ou d'un serveur sur le
   reseau.

   Exemple 4.1. Telecharger un logiciel pre-compile `a la main puis
   l'installer localement

 # ftp -a ftp2.FreeBSD.org
 Connected to ftp2.FreeBSD.org.
 220 ftp2.FreeBSD.org FTP server (Version 6.00LS) ready.
 331 Guest login ok, send your email address as password.
 230-
 230-     This machine is in Vienna, VA, USA, hosted by Verio.
 230-         Questions? E-mail freebsd@vienna.verio.net.
 230-
 230-
 230 Guest login ok, access restrictions apply.
 Remote system type is UNIX.
 Using binary mode to transfer files.
 ftp> cd /pub/FreeBSD/ports/packages/sysutils/
 250 CWD command successful.
 ftp> get lsof-4.56.4.tgz
 local: lsof-4.56.4.tgz remote: lsof-4.56.4.tgz
 200 PORT command successful.
 150 Opening BINARY mode data connection for 'lsof-4.56.4.tgz' (92375 bytes).
 100% |**************************************************| 92375       00:00 ETA
 226 Transfer complete.
 92375 bytes received in 5.60 seconds (16.11 KB/s)
 ftp> exit
 # pkg_add lsof-4.56.4.tgz

   Si vous ne disposez pas d'une source locale de logiciels pre-compiles
   (comme l'ensemble de CDROM de FreeBSD) alors il sera probablement plus
   facile d'utiliser l'option -r de pkg_add(1). Cela fera determiner
   automatiquement `a l'utilitaire le format objet et la version corrects et
   ensuite recuperer et installer le logiciel pre-compile `a partir d'un site
   FTP.

 # pkg_add -r lsof

   L'exemple ci-dessus telechargera le logiciel pre-compile correct sans plus
   d'intervention de l'utilisateur. Si vous desirez indiquer un autre miroir
   FreeBSD pour les logiciels pre-compiles `a la place du site de
   distribution principal, vous devez positionner en consequence la variable
   d'environnement PACKAGESITE, pour remplacer les parametres par defaut.
   pkg_add(1) utilise fetch(3) pour telecharger les fichiers, qui respecte
   diverses variables d'environnement, dont FTP_PASSIVE_MODE, FTP_PROXY, et
   FTP_PASSWORD. Il se peut que vous ayez besoin de configurer une ou
   plusieurs de ces dernieres si vous etes derriere un coupe-feu, ou devez
   utiliser un proxy FTP/HTTP. Consultez la page de manuel fetch(3) pour la
   liste complete des variables. Vous pouvez egalement remarquer que dans
   l'exemple ci-dessus lsof est utilise au lieu de lsof-4.56.4. Quand la
   fonction de recuperation `a distance est utilisee, le numero de version
   doit etre retire. pkg_add(1) telechargera automatiquement la toute
   derniere version de l'application.

  Note:

   pkg_add(1) telechargera la derniere version de votre application si vous
   etes sous FreeBSD-CURRENT ou FreeBSD-STABLE. Si vous utilisez une version
   -RELEASE, il recuperera la version compilee avec votre version lors de sa
   publication. Il est possible de modifier ce comportement en surchargeant
   la variable d'environnement PACKAGESITE. Par exemple, si vous utilisez un
   systeme FreeBSD 8.1-RELEASE, par defaut pkg_add(1) tentera de recuperer
   les applications pre-compilees `a partir de
   ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8.1-release/Latest/.
   Si vous desirez forcer pkg_add(1) `a telecharger les versions des
   logiciels pre-compiles pour FreeBSD 8-STABLE, positionnez la variable
   PACKAGESITE `a
   ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8-stable/Latest/.

   Les logiciels pre-compiles sont distribues dans les formats .tgz et .tbz.
   Vous pouvez les trouver sur
   ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/, ou sur le CDROM de
   distribution de FreeBSD. Chaque CD de l'ensemble de 4-CD de FreeBSD (et le
   PowerPak, etc...) contient des logiciels pre-compiles dans le repertoire
   /packages. L'organisation des logiciels pre-compiles est semblable `a
   celle de l'arborescence /usr/ports. Chaque categorie possede son propre
   repertoire, et chaque logiciel pre-compile peut etre trouve dans le
   repertoire All.

   La structure de repertoires du systeme de logiciels pre-compiles
   correspond `a celle du catalogue des logiciels portes; ils travaillent
   ensemble pour former l'integralite du systeme de logiciels
   pre-compiles/portes.

  4.4.2. Gestion des logiciels pre-compiles

   pkg_info(1) est un utilitaire qui liste et decrit les divers logiciels
   pre-compiles installes.

 # pkg_info
 cvsup-16.1          A general network file distribution system optimized for CV
 docbook-1.2         Meta-port for the different versions of the DocBook DTD
 ...

   pkg_version(1) est un utilitaire qui recapitule les versions de tous les
   logiciels pre-compiles installes. Il compare la version du logiciel
   pre-compile avec la version actuelle trouvee dans le catalogue des
   logiciels portes.

 # pkg_version
 cvsup                       =
 docbook                     =
 ...

   Les symboles dans la seconde colonne indiquent l'age relatif de la version
   installee et de la version disponible dans le catalogue des logiciels
   portes local.

   Symbole                           Signification                            
           La version du logiciel pre-compile installee est equivalente `a    
   =       celle de celui trouve dans le catalogue des logiciels portes       
           local.                                                             
   <       La version installee est plus ancienne que celle disponible dans   
           le catalogue des logiciels portes.                                 
           La version installee est plus recente que celle trouvee dans le    
   >       catalogue local des logiciels portes. (le catalogue local des      
           logiciels portes est probablement ancien)                          
           Le logiciel pre-compile ne peut etre trouve dans l'index du        
   ?       catalogue des logiciels portes. (Cela peut se produire quand, par  
           exemple, un logiciel installe est supprime du catalogue des        
           logiciels portes ou renomme.)                                      
   *       Il y a de multiples versions de ce logiciel pre-compile.           
           Le logiciel installe existe dans l'index mais pour une raison      
   !       inconnue, pkg_version a ete incapable de comparer le numero de     
           version du paquetage installe avec l'entree correspondante dans    
           l'index.                                                           

  4.4.3. Effacer un logiciel pre-compile

   Pour desinstaller un logiciel pre-compile precedemment installe, utilisez
   l'utilitaire pkg_delete(1).

 # pkg_delete xchat-1.7.1

   Notez que pkg_delete(1) a besoin du nom complet du paquetage et du numero
   de version; la commande precedente n'aurait pas fonctionne avec xchat `a
   la place de xchat-1.7.1. It est cependant facile de retrouver la version
   du paquetage installe `a l'aide de la commande pkg_version(1). Vous pouvez
   `a la place simplement utiliser un joker:

 # pkg_delete xchat\*

   dans ce cas, tous les logiciels dont le nom commence par xchat seront
   supprimes.

  4.4.4. Divers

   Toute l'information sur les logiciels pre-compiles est stockee dans le
   repertoire /var/db/pkg. La liste des fichiers installes pour chaque
   logiciel pre-compile peut etre trouvee dans des fichiers de ce repertoire.

4.5. Utiliser le catalogue des logiciels portes

   Les sections suivantes fournissent des instructions de base sur
   l'utilisation du catalogue des logiciels portes pour installer et
   desinstaller des programmes sur votre systeme. Une description detaillee
   des cibles make et de variables d'environnement est disponible dans la
   page de manuel ports(7).

  4.5.1. Obtenir le catalogue des logiciels portes

   Avant que vous puissiez installer des logiciels portes, vous devez d'abord
   recuperer le catalogue des logiciels portes- qui est essentiellement un
   ensemble de Makefiles, de correctifs, et de fichiers de description
   habituellement places dans /usr/ports.

   Quand vous avez installe votre systeme FreeBSD, sysinstall vous a demande
   si vous aimeriez installer le catalogue des logiciels portes. Si vous avez
   choisi non, vous pouvez suivre ces instructions pour obtenir le catalogue
   des logiciels portes:

   Procedure 4.1. La methode CVSup

   C'est une methode rapide pour recuperer le catalogue des logiciels portes
   en utilisant le protocole CVSup. Si vous voulez en apprendre plus au sujet
   de CVSup, lisez la section Utiliser CVSup.

  Note:

   L'implementation du protocole CVSup presente dans le systeme de base de
   FreeBSD se nomme csup.

   Assurez-vous que le repertoire /usr/ports est vide avant d'utiliser csup
   pour la premiere fois. Si vous avez dej`a un catalogue des logiciels
   portes, obtenu `a partir d'une autre source, csup n'effacera pas les
   correctifs qui ont ete supprimes.

    1. Executer la commande csup:

 # csup -L 2 -h cvsup.FreeBSD.org /usr/share/examples/cvsup/ports-supfile

       Remplacez cvsup.FreeBSD.org avec un serveur CVSup proche de vous. Voir
       Sites CVSup (Section A.5.7, << Sites CVSup >>) pour une liste complete
       des sites miroirs.

  Note:

       Certains peuvent vouloir utiliser leur propre ports-supfile, par
       exemple pour eviter d'avoir `a passer le serveur CVSup sur la ligne de
       commande.

         1. Dans ce cas, en tant que root, copier
            /usr/share/examples/cvsup/ports-supfile `a un nouvel emplacement,
            comme /root ou votre repertoire d'utilisateur.

         2. Editez ports-supfile.

         3. Remplacez CHANGE_THIS.FreeBSD.org avec un serveur CVSup proche de
            vous. Voir Sites CVSup (Section A.5.7, << Sites CVSup >>) pour
            une liste complete des sites miroirs.

         4. Maintenant pour lancer csup, utilisez ce qui suit:

 # csup -L 2 /root/ports-supfile

    2. L'execution ulterieure de csup(1) telechargera et appliquera tous les
       changements recents `a votre catalogue des logiciels portes sans pour
       autant recompiler vos logiciels.

   Procedure 4.2. La methode Portsnap

   Portsnap est un systeme alternatif de distribution du catalogue des
   logiciels portes. Veuillez vous reporter `a la section Utiliser Portsnap
   pour une description detaillee de toutes les caracteristiques de Portsnap.

    1. Telechargez un instantane compresse du catalogue des logiciels portes
       dans le repertoire /var/db/portsnap. Vous pouvez vous deconnecter de
       l'Internet, si vous le desirez, apres cette operation:

 # portsnap fetch

    2. Si vous executez Portsnap pour la premiere fois, il faut extraire
       l'instantane dans le repertoire /usr/ports:

 # portsnap extract

       Si votre repertoire /usr/ports contient dej`a une version du catalogue
       des logiciels portes et que vous desirez juste mettre `a jour,
       utilisez plutot la commande:

 # portsnap update

   Procedure 4.3. La methode Sysinstall

   Cette methode implique l'utilisation de sysinstall pour installer le
   catalogue des logiciels portes `a partir du disque d'installation. Il faut
   noter que la version du catalogue qui sera installee est la version datant
   de la publication de votre disque d'installation. Si vous disposez d'un
   acces `a l'Internet, vous devriez toujours utiliser une des methodes
   precedemment exposees.

    1. En tant que root, lancez sysinstall comme montre ci-dessous:

 # sysinstall

    2. Faites defiler l'ecran vers le bas et selectionnez Configure, appuyez
       sur Entree.

    3. Faites defiler l'ecran vers le bas et selectionnez Distributions,
       appuyez sur Entree.

    4. Faites defiler l'ecran vers le bas jusqu'`a ports, appuyez sur Espace.

    5. Remontez jusqu'`a Exit, appuyez sur Entree.

    6. Choisissez le support d'installation desire, comme un CDROM, par FTP,
       etc.

    7. Remontez jusqu'`a Exit et appuyez sur Enter.

    8. Appuyez sur la touche X pour quitter sysinstall.

  4.5.2. Installation de logiciels portes

   La premiere chose qui devrait etre expliquee quand on aborde le catalogue
   des logiciels portes est ce que l'on entend par "squelette". En bref, un
   squelette est un ensemble minimal de fichiers qui indique `a votre systeme
   FreeBSD comment compiler et installer proprement un programme. Chaque
   squelette contient:

     * Un fichier Makefile. Le fichier Makefile contient les diverses
       declarations qui indiquent comment l'application devrait etre compilee
       et ou elle devrait etre installee sur votre systeme.

     * Un fichier distinfo. Ce fichier contient l'information `a propos des
       fichiers qui doivent etre telecharges pour compiler le logiciel, et
       leurs sommes de controle (en utilisant sha256(1)), pour s'assurer que
       ces fichiers n'ont pas ete corrompus durant le telechargement.

     * Un repertoire files. Ce repertoire contient les correctifs pour
       permettre la compilation et l'installation du programme sur votre
       systeme FreeBSD. Les correctifs sont `a la base de petits fichiers qui
       indiquent des modifications sur des fichiers particuliers. Ils sont
       sous forme de fichiers texte, qui disent "Effacer la ligne 10" ou
       "Modifier la ligne 26 par...". Les correctifs sont egalement connus
       sous le nom de "diffs" car ils sont generes par le programme diff(1).

       Ce repertoire peut egalement contenir d'autres fichiers utilises pour
       la compilation du logiciel porte.

     * Un fichier pkg-descr. C'est une description plus detaillee du
       programme, souvent en plusieurs lignes.

     * Un fichier pkg-plist. C'est une liste de tous les fichiers qui seront
       installes par le logiciel porte. Il indique egalement au systeme des
       logiciels portes quels fichiers sont `a effacer lors d'une
       desinstallation.

   Certains logiciels portes utilisent d'autres fichiers, comme pkg-message.
   Le catalogue des logiciels portes utilise ces fichiers pour faire face `a
   certaines situations speciales. Si vous desirez plus de details au sujet
   de ces fichiers, et sur les logiciels portes en general, consultez le
   Manuel du developpeur de logiciels portes.

   Le logiciel porte contient les instructions pour compiler le code source,
   mais ne contient pas le code source. Vous pouvez obtenir le code source `a
   partie d'un CDROM ou de l'Internet. Le code source est distribue de la
   fac,on dont l'auteur le desire. Frequemment c'est une archive tar
   compressee avec gzip, mais elle pourra etre compressee avec un autre outil
   ou meme non compressee. Le code source d'un programme, peu importe la
   forme sous laquelle il est distribue, est appele un fichier "distfile".
   Les deux methodes pour l'installation d'un logiciel porte pour FreeBSD
   sont decrites ci-dessous.

  Note:

   Vous devez avoir ouvert une session sous l'utilisateur root pour installer
   des logiciels portes.

  Avertissement:

   Avant d'installer un logiciel porte, vous devez vous assurer d'avoir un
   catalogue des logiciels portes `a jour et vous devez consulter
   http://vuxml.freebsd.org/ pour les problemes de securite relatifs `a votre
   logiciel.

   Un controle des problemes de securite peut etre effectue automatiquement
   par portaudit avant toute nouvelle installation d'application. Cet outil
   peut etre trouve dans le catalogue des logiciels porte
   (security/portaudit). Vous pouvez lancer portaudit -F avant l'installation
   d'un nouveau logiciel porte, pour telecharger la base de donnees
   actualisee des vulnerabilites. Un audit de securite et une mise `a jour de
   la base de donnees sera effectuee lors du controle quotidien de securite
   de la machine. Pour plus d'informations, lisez les pages de manuel
   portaudit(1) et periodic(8).

   Le catalogue des logiciels portes suppose que vous disposez d'une
   connection active `a l'Internet. Si ce n'est pas le cas, vous devez placer
   manuellement une copie du distfile dans le repertoire
   /usr/ports/distfiles.

   Pour commencer, rendez-vous dans le repertoire du logiciel porte que vous
   voulez installer:

 # cd /usr/ports/sysutils/lsof

   Une fois `a l'interieur du repertoire lsof vous verrez le squelette du
   logiciel porte. L'etape suivante est de compiler (egalement appele la
   "construction") le logiciel porte. Cela est fait en tapant simplement make
   `a l'invite. Une fois que c'est fait, vous devriez voir quelque chose
   comme ceci:

 # make
 >> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
 >> Attempting to fetch from ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/.
 ===>  Extracting for lsof-4.57
 ...
 [extraction output snipped]
 ...
 >> Checksum OK for lsof_4.57D.freebsd.tar.gz.
 ===>  Patching for lsof-4.57
 ===>  Applying FreeBSD patches for lsof-4.57
 ===>  Configuring for lsof-4.57
 ...
 [configure output snipped]
 ...
 ===>  Building for lsof-4.57
 ...
 [compilation output snipped]
 ...
 #

   Notez qu'une fois la compilation terminee, vous vous retrouvez face `a
   l'invite. L'etape suivante est d'installer le logiciel porte. Afin de
   l'installer, vous devez juste ajouter un mot `a la commande make, et ce
   mot est install:

 # make install
 ===>  Installing for lsof-4.57
 ...
 [installation output snipped]
 ...
 ===>   Generating temporary packing list
 ===>   Compressing manual pages for lsof-4.57
 ===>   Registering installation for lsof-4.57
 ===>  SECURITY NOTE:
       This port has installed the following binaries which execute with
       increased privileges.
 #

   Une fois de retour `a l'invite, vous devriez etre en mesure d'executer
   l'application que vous venez juste d'installer. Comme lsof est un
   programme qui tourne avec des privileges accrus, un avertissement sur la
   securite est affiche. Durant la compilation et l'installation de logiciels
   portes, vous devriez faire attention `a tout avertissement qui pourrait
   apparaitre.

   Il est conseille de supprimer le sous-repertoire de travail, qui contient
   tous les fichiers temporaires utilises lors de la compilation. Non
   seulement cela consomme de l'espace disque, mais cela posera probleme plus
   tard lors de la mise `a jour vers une nouvelle version du logiciel porte.

 # make clean
 ===>  Cleaning for lsof-4.57
 #

  Note:

   Vous pouvez vous economiser deux etapes supplementaires en lanc,ant juste
   make install clean `a la place de make, make install et make clean sous la
   forme de trois etapes separees.

  Note:

   Certains interpreteurs de commandes maintiennent un cache des commandes
   qui sont disponibles dans les repertoires listes dans la variable
   d'environnement PATH, pour accelerer les operations de recherche des
   fichiers executables de ces commandes. Si vous utilisez un de ces
   interpreteurs de commandes, vous pourrez avoir `a utiliser la commande
   rehash apres l'installation d'un logiciel porte, avant que la commande
   fraichement installee ne puisse etre utilisee. Cette commande fonctionnera
   pour les interpreteurs de commandes comme tcsh. Utilisez la commande hash
   -r pour les interpreteurs tels que sh. Consultez la documentation de votre
   interpreteur de commandes pour plus d'information.

   Certains DVD-ROMs comme le FreeBSD Toolkit de FreeBSD Mall contiennent des
   distfiles. Ils peuvent etre utilises avec le catalogue des logiciels
   portes. Montez le DVD-ROM sous /cdrom. Si vous utilisez un point de
   montage different, positionnez la variable make(1) CD_MOUNTPTS. Les
   distfiles necessaires seront automatiquement utilises s'ils sont present
   sur le disque.

  Note:

   Soyez conscient que les licences de quelques logiciels portes n'autorisent
   pas leur presence sur le CD-ROM. Cela peut etre du `a la necessite de
   remplir un formulaire d'enregistrement avant le telechargement, ou que la
   redistribution n'est pas permise, ou toute autre raison. Si vous desirez
   installer un logiciel porte qui n'est pas disponible sur le CD-ROM, vous
   devrez vous connecter afin de recuperer les fichiers necessaires.

   Le catalogue des logiciels portes utilise fetch(1) pour telecharger les
   fichiers, qui respecte diverses variables d'environnement, dont
   FTP_PASSIVE_MODE, FTP_PROXY, et FTP_PASSWORD. Il se peut que vous ayez
   besoin de configurer une ou plusieurs de ces dernieres si vous etes
   derriere un coupe-feu, ou devez utiliser un proxy FTP/HTTP. Consultez la
   page de manuel fetch(3) pour la liste complete des variables.

   Pour les utilisateurs qui ne peuvent rester connectes `a l'Internet
   indefiniment, il existe la commande make fetch. Executez cette commande `a
   la base du catalogue des logiciels portes (/usr/ports) et les fichiers
   necessaires seront telecharges. Cette commande fonctionnera egalement dans
   les sous-repertoires du catalogue, par exemple: /usr/ports/net. Notez que
   si un logiciel porte depend de bibliotheques particulieres ou d'autres
   logiciels portes, cette commande de recuperera pas les sources de ces
   logiciels. Remplacez fetch par fetch-recursive si vous voulez recuperer
   egalement les sources des logiciels dont depend un logiciel porte.

  Note:

   Vous pouvez compiler tous les logiciels d'une categorie ou de l'ensemble
   du catalogue en executant la commande make dans un repertoire de base,
   juste comme la commande make fetch precedente. C'est, cependant, une idee
   dangereuse etant donne que certains logiciels portes ne peuvent coexister.
   Dans d'autres cas, certains logiciels portes peuvent installer des
   fichiers differents ayant le meme nom.

   Dans de rares cas les utilisateurs peuvent vouloir recuperer les archives
   `a partir d'un site different du MASTER_SITES par defaut (l'emplacement
   par defaut `a partir duquel les fichiers sont telecharges). Vous pouvez
   surcharger l'option MASTER_SITES avec la commande suivante:

 # cd /usr/ports/repertoire
 # make MASTER_SITE_OVERRIDE= \
 ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetch

   Dans cet exemple nous modifions la valeur par defaut de l'option
   MASTER_SITES pour ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/.

  Note:

   Certains logiciels portes autorisent (ou meme necessitent) des options de
   compilation qui permettent l'activation/desactivation de parties de
   l'application qui ne sont pas necessaires, de certaines options de
   securite, et autres personnalisations. Quelques noms de logiciels viennent
   immediatement `a l'esprit: www/mozilla, security/gpgme, et
   mail/sylpheed-claws. Un message sera affiche quand de telles options sont
   disponibles.

    4.5.2.1. Modifier les repertoires par defaut des logiciels portes

   Il est parfois utile (ou obligatoire) d'utiliser des repertoires de
   travail ou cible differents. Les variables WRKDIRPREFIX et PREFIX
   permettent de modifier les repertoires par defaut. Par exemple:

 # make WRKDIRPREFIX=/usr/home/example/ports install

   compilera le logiciel dans le repertoire /usr/home/example/ports et
   installera tout dans /usr/local.

 # make PREFIX=/usr/home/example/local install

   le compilera dans /usr/ports et l'installera dans /usr/home/example/local.

   Et bien sur

 # make WRKDIRPREFIX=../ports PREFIX=../local install

   combinera les deux (c'est trop long pour tenir sur cette page, mais cela
   devrait vous donner une idee generale).

   Alternativement, ces variables peuvent egalement etre configurees dans
   votre environnement. Consultez la page de manuel de votre interpreteur de
   commandes pour des instructions sur la procedure `a suivre.

    4.5.2.2. Travailler avec imake

   Certains logiciels portes qui utilisent imake (une partie du systeme X
   Window) ne fonctionnent pas correctement avec la variable PREFIX, et
   insisteront pour s'installer sous /usr/X11R6. De fac,on similaire,
   certains logiciels Perl ignorent PREFIX et s'installent dans
   l'arborescence Perl. Faire en sorte que ces logiciels portes respectent
   PREFIX est une tache difficile voire impossible.

    4.5.2.3. Reconfigurer les logiciels portes

   Lors de la compilation de certains logiciels portes, un menu ncurses(3)
   pourra s'afficher et `a partir de celui-ci vous pourrez selectionner
   certaines options de compilation. Il n'est pas inhabituel pour les
   utilisateurs de vouloir revoir ce menu pour ajouter, supprimer, ou
   modifier ces options apres la compilation d'un logiciel. Il y a plusieurs
   manieres pour y parvenir. Une possibilite est de se rendre dans le
   repertoire contenant le logiciel porte et de taper make config, qui
   affichera `a nouveau le menu avec les memes options selectionnees. Une
   autre possibilite est d'utiliser make showconfig qui vous affichera toutes
   les options de configuration pour le logiciel porte. Enfin, une autre
   possibilite est d'executer make rmconfig qui supprimera toutes les options
   selectionnees et permettra donc de repartir `a zero. Toutes ces options,
   et bien d'autres, sont detaillees dans la page de manuel ports(7).

  4.5.3. Supprimer des logiciels portes installes

   Maintenant que vous savez comment installer des logiciels portes, vous
   vous demandez probablement comment les effacer, juste au cas ou vous en
   installez un et plus tard vous vous apercevez que vous n'avez pas installe
   le bon logiciel porte. Nous desinstallerons notre exemple precedent (qui
   etait lsof pour ceux d'entre vous qui n'ont pas suivi). Les logiciels
   portes sont supprimes de la meme maniere que pour les logiciels
   pre-compiles (comme decrit dans la section Utiliser le systeme des
   logiciels pre-compiles) en utilisant la commande pkg_delete(1):

 # pkg_delete lsof-4.57

  4.5.4. Mise `a jour des logiciels portes

   Tout d'abord, listez les logiciels portes perimes dont une nouvelle
   version est disponible dans le catalogue des logiciels portes `a l'aide de
   la commande pkg_version(1):

 # pkg_version -v

    4.5.4.1. /usr/ports/UPDATING

   Une fois que vous avez mis `a jour le catalogue des logiciels portes,
   avant de tenter la mise `a jour d'un logiciel porte, vous devrez consulter
   le fichier /usr/ports/UPDATING. Ce fichier decrit les divers problemes et
   les etapes supplementaires que les utilisateurs pourront rencontrer ou
   devront effectuer lors de la mise `a jour un logiciel porte, comme la
   modification de format de fichiers, le changement des emplacements des
   fichiers de configuration, ou des incompatibilites avec les versions
   anterieures.

   Si le contenu du fichier UPDATING prime meme s'il est en est en
   contradiction avec des informations presentees ici.

    4.5.4.2. Mise `a jour des logiciels portes `a l'aide de portupgrade

   Le logiciel portupgrade a ete conc,u pour une mise `a jour aisee des
   logiciels portes installes. Il est disponible via le logiciel porte
   ports-mgmt/portupgrade. Installez-le de la meme maniere que pour n'importe
   quel autre logiciel en employant la commande make install clean:

 # cd /usr/ports/ports-mgmt/portupgrade
 # make install clean

   Ensuite, parcourez la liste des logiciels installes avec la commande pkgdb
   -F et corrigez toutes les inconsistances qu'il signale. C'est une bonne
   idee d'effectuer ce controle regulierement avant chaque mise `a jour.

   En lanc,ant portupgrade -a, portupgrade mettra `a jour tous les logiciels
   portes perimes installes sur votre systeme. Ajoutez l'indicateur -i si
   vous voulez etre consulte pour confirmer chaque mise `a jour individuelle.

 # portupgrade -ai

   Si vous desirez mettre `a jour qu'une seule application bien particuliere
   et non pas l'integralite des applications, utilisez la commande:
   portupgrade nom_du_logiciel_porte. Ajoutez l'option -R si portupgrade doit
   mettre `a jour en premier lieu tous les logiciels portes necessaires `a
   l'application.

 # portupgrade -R firefox

   Pour utiliser les versions pre-compilees plutot que les logiciels portes
   pour l'installation, utilisez l'option -P. Avec cette option portupgrade
   cherche les repertoires locaux liste dans la variable PKG_PATH, ou
   recupere les paquetages `a partir d'un site distant s'ils ne sont pas
   trouves localement. Si les paquetages ne peuvent pas etre trouves
   localement ou recuperes `a distance, portupgrade utilisera les logiciels
   portes. Pour eviter l'usage des logiciels portes, specifiez l'option -PP.

 # portupgrade -PP gnome2

   Pour juste recuperer les sources (ou les paquetages, si l'option -P est
   utilisee) sans compiler ni installer quelque chose, utilisez -F. Pour plus
   d'informations consultez la page de manuel portupgrade(1).

    4.5.4.3. Mise `a jour des logiciels portes `a l'aide de Portmanager

   Portmanager est un autre utilitaire de mise `a jour aisee des logiciels
   portes installes. Il est disponible via le logiciel portes
   ports-mgmt/portmanager:

 # cd /usr/ports/ports-mgmt/portmanager
 # make install clean

   Tous les logiciels portes installes peuvent etre mis `a jour en utilisant
   cette simple commande:

 # portmanager -u

   Vous pouvez ajouter l'option -ui pour etre sollicite pour une confirmation
   `a chaque operation qu'effectuera Portmanager. Portmanager peut egalement
   etre employe pour installer de nouveaux logiciels portes sur le systeme.
   Contrairement `a la commande make install clean habituelle, il mettra `a
   jour toutes les dependances avant de compiler et d'installer le logiciel
   selectionne.

 # portmanager x11/gnome2

   Si des problemes concernant les dependances du logiciel porte selectionne
   apparaissent, vous pouvez utiliser Portmanager pour toutes les recompiler
   dans le bon ordre. Cette recompilation achevee, le logiciel porte en
   question peut alors etre `a son tour recompile.

 # portmanager graphics/gimp -f

   Pour plus d'information, consultez la page de manuel de Portmanager.

    4.5.4.4. Mise `a jour des logiciels portes `a l'aide de Portmaster

   Portmaster est un autre utilitaire destine `a la mise `a jour des
   logiciels installes. Portmaster a ete conc,u pour utiliser les outils
   presents dans le systeme de << base >> (il ne depend pas d'un autre
   logiciel porte) et utilise les informations contenues dans le repertoire
   /var/db/pkg/ pour determiner quel logiciel doit etre mis `a jour. Il est
   disponible `a partir du logiciel porte ports-mgmt/portmaster:

 # cd /usr/ports/ports-mgmt/portmaster
 # make install clean

   Portmaster repartit les logiciels portes en quatre categories:

     * logiciels dits << Root >> (pas de dependance, aucun logiciel n'en
       depend);

     * logiciels dits << Trunk >> (pas de dependance, d'autres logiciels en
       dependent);

     * logiciels dits << Branch >> (ont des dependances, d'autres logiciels
       en dependent);

     * logiciels dits << Leaf >> (ont des dependances, aucun logiciel n'en
       depend).

   Vous pouvez lister tous les logiciels installes et rechercher les mises `a
   jour en utilisant l'option -L:

 # portmaster -L
 ===>>> Root ports (No dependencies, not depended on)
 ===>>> ispell-3.2.06_18
 ===>>> screen-4.0.3
         ===>>> New version available: screen-4.0.3_1
 ===>>> tcpflow-0.21_1
 ===>>> 7 root ports
 ...
 ===>>> Branch ports (Have dependencies, are depended on)
 ===>>> apache-2.2.3
         ===>>> New version available: apache-2.2.8
 ...
 ===>>> Leaf ports (Have dependencies, not depended on)
 ===>>> automake-1.9.6_2
 ===>>> bash-3.1.17
         ===>>> New version available: bash-3.2.33
 ...
 ===>>> 32 leaf ports

 ===>>> 137 total installed ports
         ===>>> 83 have new versions available

   L'ensemble des logiciels portes installes peut etre mis `a jour en
   utilisant cette simple commande:

 # portmaster -a

  Note:

   Par defaut Portmaster fera une sauvegarde avant la suppression d'un
   logiciel porte. Si l'installation de la nouvelle version se passe
   correctement, Portmaster supprimera la sauvegarde. L'option -b demandera
   `a Portmaster de ne pas supprimer automatiquement la sauvegarde. L'ajout
   de l'option -i lancera Portmaster en mode interactif, vous serez alors
   sollicite avant la mise `a jour de chaque logiciel.

   Si vous rencontrez des erreurs lors du processus de mise `a jour, vous
   pouvez utiliser l'option -f pour mettre `a jour ou recompiler tous les
   logiciels installes:

 # portmaster -af

   Vous pouvez egalement employer Portmaster pour installer de nouveaux
   logiciels portes en mettant `a jour toutes les dependances avant la
   compilation et l'installation du nouveau logiciel:

 # portmaster shells/bash

   Pour plus d'information veuillez consulter la page de manuel
   portmaster(8).

  4.5.5. Logiciels portes et espace disque

   A la longue, l'utilisation du catalogue des logiciels portes consommera
   rapidement votre espace disque. Apres la compilation et l'installation de
   logiciels `a partir du catalogue des logiciels portes, vous devriez
   toujours penser `a supprimer les repertoires de travail temporaires, work,
   en utilisant la commande make clean. Vous pouvez balayer l'integralite du
   catalogue des logiciels portes pour supprimer tous les repertoires
   temporaires oublies precedement, employez alors la commande suivante:

 # portsclean -C

   Avec le temps, vous accumulerez beaucoup de fichiers sources obsoletes
   dans le repertoire distfiles. Vous pouvez les supprimer manuellement, ou
   vous pouvez utiliser la commande suivante pour effacer toutes les sources
   qui ne correspondent plus `a des logiciels portes d'actualite:

 # portsclean -D

   Ou pour supprimer les fichiers sources ne correspondant `a aucun logiciel
   installe sur votre systemes.

  Note:

   L'utilitaire portsclean fait partie de la suite portupgrade.

   Pensez `a supprimer les logiciels portes installes que vous n'utilisez
   plus. Un outil qui permet d'automatiser cette tache est disponible via le
   logiciel porte ports-mgmt/pkg_cutleaves.

4.6. Activites de post-installation

   Apres l'installation d'une nouvelle application vous voudrez normalement
   lire la documentation qui a pu etre egalement installee, editer les
   fichiers de configuration necessaires, verifier que l'application est
   lancee au demarrage (si c'est un daemon), et ainsi de suite.

   Les etapes que vous devez suivre pour configurer chaque application seront
   bien evidemment differentes. Cependant, si vous venez juste d'installer
   une nouvelle application et que vous vous demandez "Et maintenant?" les
   astuces suivantes pourront vous aider:

     * Utilisez pkg_info(1) pour determiner quels fichiers ont ete installes
       et `a quel endroit. Par exemple, si vous venez juste d'installer
       FooPackage version 1.0.0, alors la commande

 # pkg_info -L foopackage-1.0.0 | less

       affichera tous les fichiers installes par le logiciel pre-compile.
       Portez une attention toute particuliere aux fichiers dans les
       repertoires man/, qui seront des pages de manuel, dans les repertoires
       etc/ , qui seront des fichiers de configuration, et dans doc/ qui
       seront de la documentation plus complete.

       Si vous n'etes pas sur de la version de l'application qui vient juste
       d'etre installee, une commande comme

 # pkg_info | grep -i foopackage

       determinera tous les logiciels pre-compiles installes qui ont
       foopackage dans leur nom. Remplacez foopackage dans votre ligne de
       commande par ce qui convient.

     * Une fois que vous avez identifie ou les pages de manuel de
       l'application ont ete installees, consultez-les en utilisant la
       commande man(1). De meme, jetez un coup d'oeil aux exemples de
       fichiers de configuration, et toute autre documentation additionnelle
       qui peut avoir ete fournie.

     * Si l'application a un site web, consultez-le pour de la documentation
       supplementaire, des listes de questions frequemment posees, etc. Si
       vous n'etes pas sur de l'adresse du site web, elle peut etre affichee
       dans le resultat de la commande:

 # pkg_info foopackage-1.0.0

       La ligne WWW:, si elle est presente, devrait donner l'URL du site web
       de l'application.

     * Les logiciels qui doivent etre lances au demarrage (comme les serveurs
       Internet) installent generalement un exemple de procedure de lancement
       dans le repertoire /usr/local/etc/rc.d. Vous devriez controler si ce
       fichier est correct et l'editer ou le renommer si necessaire.
       Consultez la section Demarrer des services pour plus d'informations.

4.7. Que faire avec les logiciels portes ne fonctionnant pas?

   Si vous rencontrez un portage qui ne fonctionne pas, il y a certaines
   choses que vous pouvez faire:

    1. Verifiez s'il n'y a pas de correctif en attente pour le logiciel porte
       dans la base des rapports de bogue. Si c'est le cas, il se peut que
       vous puissiez utiliser le correctif propose.

    2. Demandez l'aide du responsable du logiciel porte. Tapez la commande
       make maintainer ou lisez le fichier Makefile pour trouver l'adresse
       electronique du responsable. Pensez `a preciser le nom et la version
       du logiciel porte (envoyer la ligne $FreeBSD: du fichier Makefile) et
       les messages d'erreurs quand vous ecrivez au responsable.

  Note:

       Certains logiciels portes ne sont pas maintenus par une personne mais
       par une liste de diffusion. Plusieurs, si ce n'est toutes, les
       adresses de ces listes ressemblent `a <freebsd-listname@FreeBSD.org>.
       Veuillez prendre cela en compte en redigeant vos questions.

       En particulier, les logiciels portes apparaissant comme maintenus par
       <ports@FreeBSD.org> ne sont en fait maintenus par personne. Correctifs
       et aide, s'ils y en a, provient de la communaute qui est abonnee `a
       cette liste de diffusion. Des volontaires supplementaires sont
       toujours les bienvenus!

       Si vous n'obtenez pas de reponse, vous pouvez utiliser send-pr(1) pour
       soumettre un rapport de bogue (consultez Ecrire des rapports de bogue
       pour FreeBSD).

    3. Corrigez le probleme! Le Manuel du developpeur de logiciels portes
       inclut des informations detaillees sur l'infrastructure des logiciels
       portes vous permettant de corriger le portage eventuellement
       defectueux ou meme soumettre le votre!

    4. Recuperez la version pre-compilee sur un serveur FTP proche de vous.
       Le catalogue de "reference" des logiciels pre-compiles se trouve sur
       ftp.FreeBSD.org dans le repertoire packages, mais verifiez d'abord
       votre miroir local! Il y a globalement plus de chances que cela
       marche, que d'essayez de compiler `a partir des sources, et cela va
       egalement beaucoup plus vite. Utilisez le programme pkg_add(1) pour
       installer le logiciel pre-compile sur votre systeme.

Chapitre 5. Le systeme X Window

   Table des matieres

   5.1. Synopsis

   5.2. Terminologie

   5.3. Installer X11

   5.4. Configuration d'Xorg

   5.5. Utilisation des polices de caracteres sous Xorg

   5.6. Le gestionnaire de connexion graphique XDM

   5.7. Environnements de bureau

   5.8. Installation de Compiz Fusion

   Version franc,aise de Marc Fonvieille <blackend@FreeBSD.org>.

5.1. Synopsis

   Une installation de FreeBSD `a l'aide de bsdinstall n'installe pas
   automatiquement d'interface graphique. Ce chapitre decrit comment
   installer et configurer Xorg, qui implemente une version libre du systeme
   X Window qui est utilise pour fournir un environnement graphique. Il
   decrit ensuite comme trouver et installer un environnement de bureau ou un
   gestionnaire de fenetres.

  Note:

   Les utilisateurs preferant une methode d'installation qui configure
   automatiquement Xorg devraient `a GhostBSD, MidnightBSD or NomadBSD.

   Pour plus d'informations sur le materiel video supporte par Xorg,
   consultez le site Web x.org.

   Apres la lecture de ce chapitre, vous connaitrez:

     * Les divers composants du systeme X Window et comment ils fonctionnent
       ensemble.

     * Comment installer et configurer Xorg.

     * Comment installer et configurer differents gestionnaires de fenetres
       et environnements de bureau.

     * Comment utiliser les polices de caracteres TrueType(R) sous Xorg.

     * Comment configurer votre systeme pour l'utilisation de procedures de
       connexions graphiques (XDM).

   Avant de lire ce chapitre, vous devrez:

     * Savoir comment installer des logiciels tiers comme decrit dans le
       Chapitre 4, Installer des applications: les logiciels pre-compiles et
       les logiciels portes.

5.2. Terminologie

   Alors qu'il n'est pas necessaire de comprendre tout le detail des divers
   composants du systeme X Window, ni comment ils interagissent entre eux,
   une certaine connaissance de base de ces composants peut etre utile.

   Le serveur X

           X a ete conc,u des le depart centre autour du reseau, et adopte un
           modele << client-serveur >>. Dans ce modele, le << serveur X >>
           tourne sur l'ordinateur sur lequel sont branches le clavier, le
           moniteur et la souris. Le serveur est responsable de taches telles
           que la gestion de l'affichage, des entrees en provenance du
           clavier et de la souris, et les entrees ou sorties d'autres
           peripheriques comme une tablette ou un video-projecteur. Cela
           jette le trouble chez certaines personnes, parce que la
           terminologie X est exactement le contraire de ce `a quoi ils
           s'attendent. Ils s'attendent `a ce que le << serveur X >> soit la
           grosse machine puissante au fond du couloir, et que le << client
           X >> soit a machine sur leur bureau.

   Le client X

           Chaque application X, comme XTerm ou Firefox est un << client >>.
           Un client envoie des messages au serveur comme << Dessine une
           fenetre aux coordonnees suivantes >>, et le serveur renvoie au
           client des messages du type << L'utilisateur vient de cliquer sur
           le bouton OK >>.

           A la maison ou dans un petit bureau, le serveur X et les clients X
           tourneront en general sur le meme ordinateur. Il est egalement
           possible de faire tourner le serveur X sur un ordinateur moins
           puissant et d'executer les applications X sur un systeme plus
           puissant. Dans ce scenario, la communication entre le client X et
           le serveur se fera par l'intermediaire du reseau.

   Le gestionnaire de fenetres

           X n'essaye pas de dicter quel aspect doivent avoir les fenetres `a
           l'ecran, comment les deplacer avec la souris, quelles combinaisons
           de touches devraient etre utilisees pour passer de l'une `a
           l'autre, comment devraient etre les barres de titres de chaque
           fenetre, etc. Au lieu de cela, X delegue cette responsabilite `a
           une application separee, le gestionnaire de fenetres (<< window
           manager >>). Il existe des douzaines de gestionnaires de fenetres
           disponibles. Chaque gestionnaire de fenetres propose une apparence
           et une prise en mains differentes: certains supportent les bureaux
           virtuels, d'autres permettent de personnaliser les combinaisons de
           touches pour la gestion du bureau, certains ont un bouton
           << Demarrer >>, et certains permettent d'utiliser des themes, pour
           un changement complet d'apparence et de prise en main du bureau.
           Les gestionnaires de fenetres sont disponibles dans la categorie
           x11-wm du catalogue des logiciels portes.

           Chaque gestionnaire de fenetre utilise un mecanisme de
           configuration propre. Certains demandent un fichier de
           configuration ecrit `a la main, alors que d'autres disposent
           d'outils graphiques pour la plupart des taches de configuration.

   Environnement de bureau

           KDE et GNOME sont consideres comme des environnements de bureau
           car ils integrent une suite complete d'applications pour effectuer
           les taches classiques d'un bureau informatique. Ils peuvent
           disposer de suites bureautiques, de navigateurs Web, ou encore de
           jeux.

   Politique de focus

           Le gestionnaire de fenetres est responsable de la politique ou
           strategie de focus de la souris. Cette politique offre plusieurs
           methodes pour choisir quelle fenetre doit recevoir les frappes au
           clavier et comment indiquer visuellement la fenetre actuellement
           active.

           Une des politiques de focus est appelee << click-to-focus >>
           (<< cliquer pour obtenir le focus >>). Dans ce mode, une fenetre
           devient active quand elle rec,oit un clic de la souris. Dans le
           mode << focus-follows-mouse >> (<< le focus suit la souris >>), la
           fenetre qui est sous le pointeur de la souris est la fenetre qui a
           le focus et le focus est modifie en pointant sur une autre
           fenetre. Si la souris est sur la fenetre racine (ou fond d'ecran),
           alors cette fenetre a le focus. Dans le mode << sloppy-focus >>
           (<< focus relache >>), si la souris est deplacee sur la fenetre
           racine, la derniere fenetre `a avoir eu le focus le conserve. Avec
           le mode focus relache, le focus n'est modifie que si le pointeur
           passe sur une nouvelle fenetre, et non pas quand il quitte la
           fenetre actuelle. Dans la politique << click-to-focus >>, la
           fenetre active est selectionnee par un clic de la souris. La
           fenetre peut etre remontee au premier plan au-dessus des autres
           fenetres. Toutes les frappes au clavier seront desormais dirigees
           vers cette fenetre, meme si le curseur est deplace vers une autre
           fenetre.

           Les differents gestionnaires de fenetres supportent differents
           modes pour le focus. Tous supportent le clic pour obtenir le
           focus, et une grande majorite supporte egalement d'autres
           politiques. Consultez la documentation du gestionnaire de fenetres
           pour determiner quels modes sont disponibles.

   widgets - Elements graphiques

           Widget est un terme pour designer tous les elements de l'interface
           utilisateur qui peuvent etre cliques ou manipules d'une fac,on ou
           d'une autre. Cela comprend les boutons, les boites `a cocher, les
           boutons radio, les icones et les listes. Une boite `a outils de
           widgets est un ensemble d'elements graphiques utilises afin de
           creer des applications graphiques. Il existe de nombreuses boites
           `a outils d'elements graphiques populaires comme Qt, utilisee par
           KDE, et GTK+, utilisee par GNOME. Cela aura pour consequence pour
           les applications de presenter une apparence et une prise en main
           differente en fonction de la famille d'elements graphiques
           utilisee pour creer ces applications.

5.3. Installer X11

   Sous FreeBSD, Xorg peut etre installe `a l'aide soit d'un paquet
   precompile soit d'un logiciel porte.

   Le paquet pre-compile peut etre installe rapidement mais avec moins
   d'options de personnalisation:

 # pkg install xorg

   Pour compiler et installer `a partir du catalogue des logiciels portes:

 # cd /usr/ports/x11/xorg
 # make install clean

   Chacune de ces deux methodes d'installation installera une version
   complete d'Xorg. La version en paquets pre-compiles reste la meilleure
   option pour la plupart des utilisateurs.

   Une plus petite version du systeme X adaptee aux utilisateurs experimentes
   est disponible dans le paquet x11/xorg-minimal. La plupart des
   documentations, des bibliotheques, et des applications ne sera pas
   installee. Certaines applications ont besoin de ces composants
   additionnels pour fonctionner.

5.4. Configuration d'Xorg

   Contribution originale de Warren Block.

  5.4.1. Demarrage rapide

   Xorg supporte les cartes graphiques, les claviers et les peripheriques de
   pointage les plus courants.

  Astuce:

   Les cartes graphiques, moniteurs et peripheriques d'entree sont detectes
   automatiquement. Ne creez pas de fichier xorg.conf ou n'utilisez pas
   l'option -configure en dehors d'un echec de la configuration automatique.

    1. Si Xorg a dej`a ete utilise sur cet ordinateur avant, deplacez ou
       supprimez les fichiers existants:

 # mv /etc/X11/xorg.conf ~/xorg.conf.etc
 # mv /usr/local/etc/X11/xorg.conf ~/xorg.conf.localetc

    2. Ajouter au groupe video ou wheel l'utilisateur qui executera Xorg pour
       activer l'acceleration 3D quand elle est disponible. Pour ajouter
       l'utilisateur jru aux groupes disponibles:

 # pw groupmod video -m jru || pw groupmod wheel -m jru

    3. Le gestionnaire de fenetres twm est inclu par defaut. Il est lance
       quand Xorg demarre:

 % startx

    4. Sur certaines anciennes versions de FreeBSD, la console systeme doit
       etre configuree en vt(4) avant que le retour `a la console texte
       puisse correctement fonctionner. Consultez Section 5.4.3, << Kernel
       Mode Setting (KMS) >>.

  5.4.2. Groupe utilisateur pour l'acceleration graphique

   L'acces `a /dev/dri est necessaire pour autoriser l'acceleration 3D sur
   les cartes graphiques. Il est en general plus simple d'ajouter
   l'utilisateur qui executera X soit au groupe video soit au groupe wheel.
   Ici, pw(8) est utilise pour ajouter l'utilisateur slurms au groupe video,
   ou au groupe wheel s'il n'y a pas de groupe video:

 # pw groupmod video -m slurms || pw groupmod wheel -m slurms

  5.4.3. Kernel Mode Setting (KMS)

   Quand l'ordinateur bascule de l'affichage sur la console vers une
   definition d'ecran plus haute pour X, il doit fixer le mode de sortie
   graphique. Les versions recentes de Xorg utilisent un systeme present dans
   le noyau pour effectuer ces changements de maniere la plus efficace. Les
   anciennes versions de FreeBSD utilisent sc(4) qui n'a pas connaissance du
   systeme KMS. La consequence est qu'apres avoir ferme X, l'affichage de la
   console systeme sera vide meme si elle reste fonctionnelle. La nouvelle
   console vt(4) evite ce probleme.

   Ajoutez la ligne suivante au fichier /boot/loader.conf pour activer vt(4):

 kern.vty=vt

  5.4.4. Fichiers de configuration

   Une configuration manuelle n'est generalement pas necessaire. Ne creez pas
   de fichiers de configuration `a la main `a moins que la configuration
   automatique ne fonctionne pas.

    5.4.4.1. Repertoire

   Xorg recherche ses fichiers de configuration dans plusieurs repertoires.
   /usr/local/etc/X11/ est le repertoire recommande pour ces fichiers sous
   FreeBSD. L'utilisation de ce repertoire permet de conserver une separation
   entre les fichiers des applications et ceux du systeme d'exploitation.

   Stocker les fichiers de configuration dans le repertoire /etc/X11/
   originel fonctionne toujours. Cependant, cela a pour consequence de
   melanger des fichiers concernant des applications avec ceux du systeme de
   base FreeBSD et n'est pas recommande.

    5.4.4.2. Un seul ou plusieurs fichiers

   Il est plus simple d'utiliser plusieurs fichiers qui chacun
   individuellement s'occupe de la configuration d'un parametre precis plutot
   qu'un seul fichier xorg.conf traditionnel. Ces fichiers sont stockes dans
   le sous-repertoire xorg.conf.d/ du repertoire principal de configuration.
   Son chemin d'acces complet est en general /usr/local/etc/X11/xorg.conf.d/.

   Des exemples de ces fichiers sont presentes plus bas dans cette section.

   Le fichier unique traditionnel xorg.conf fonctionne toujours mais n'est ni
   clair ni aussi flexible que plusieurs fichiers dans le sous-repertoire
   xorg.conf.d/.

  5.4.5. Cartes graphiques

   En raison de changements effectues dans les versions recentes de FreeBSD,
   il est desormais possible d'utiliser les pilotes de peripheriques
   graphiques proposes dans le catalogue des logiciels portes ou sous forme
   pre-compile. Par consequent, les utilisateurs peuvent utiliser un des
   pilotes disponibles `a partir du logiciel graphics/drm-kmod.

   Intel KMS driver, Radeon KMS driver, AMD KMS driver

           L'acceleration 2D et 3D sont supportees par la plupart des cartes
           graphiques Intel KMS driver en provenance d'Intel.

           Nom du pilote: i915kms

           L'acceleration 2D et 3D sont supportees par la plupart des
           anciennes cartes graphiques Radeon KMS driver en provenance d'AMD.

           Nom du pilote: radeonkms

           L'acceleration 2D et 3D sont supportees par la plupart des
           nouvelles cartes graphiques AMD KMS driver en provenance d'AMD.

           Nom du pilote: amdgpu

           Pour information, veuillez consulter
           https://en.wikipedia.org/wiki/List_of_Intel_graphics_processing_units
           ou
           https://en.wikipedia.org/wiki/List_of_AMD_graphics_processing_units
           pour une liste des GPUs supportes.

   Intel(R)

           L'acceleration 3D est supportee sur la plupart des cartes
           graphiques Intel(R) jusqu'au Ivy Bridge (HD Graphics 2500, 4000,
           et P4000), y compris Iron Lake (HD Graphics) et Sandy Bridge (HD
           Graphics 2000).

           Nom du pilote: intel

           Pour information, consultez
           https://en.wikipedia.org/wiki/List_of_Intel_graphics_processing_units.

   AMD(R) Radeon

           L'acceleration 2D et 3D sont supportees par les cartes Radeon
           jusqu'`a la serie HD6000 comprise.

           Nom du pilote: radeon

           Pour information, consultez
           https://en.wikipedia.org/wiki/List_of_AMD_graphics_processing_units.

   NVIDIA

           Plusieurs pilotes NVIDIA sont disponibles dans la categorie x11 du
           catalogue des logiciels portes. Installez le pilote correspondant
           `a la carte graphique.

           Pour information, consultez
           https://en.wikipedia.org/wiki/List_of_Nvidia_graphics_processing_units.

   Configuration graphique hybride

           Certains ordinateurs portables ont un processeur graphique
           supplementaire en plus de celui integre dans le chipset ou le
           microprocesseur. Le systeme Optimus combine du materiel Intel(R)
           et NVIDIA. Les systemes graphiques selectionnables ou systemes
           graphiques hybrides sont la combinaison d'un processeur Intel(R)
           ou AMD(R) et d'un GPU AMD(R) Radeon.

           L'implementation de ces systemes graphiques hybrides varie, et
           Xorg sous FreeBSD n'est pas en mesure de faire fonctionner toutes
           les versions.

           Certains ordinateurs fournissent une option du BIOS pour
           desactiver une de ces cartes graphiques ou pour selectionner un
           mode discret qui peut etre utilise avec un des pilotes graphiques
           standard. Par exemple, il est parfois possible de desactiver le
           GPU NVIDIA dans un systeme Optimus. La partie graphique Intel(R)
           peut alors etre utilisee avec un pilote Intel(R).

           Les parametres du BIOS dependent du modele d'ordinateur. Dans
           certaines situations, les deux GPU peuvent etre laisses actifs,
           mais la creation d'un fichier de configuration utilisant seulement
           le GPU principal dans la partie Device est suffisant pour qu'un
           tel systeme fonctionne.

   Autres cartes graphiques

           Les pilotes pour les cartes graphiques moins courantes peuvent
           etre trouves dans la categorie x11-drivers du catalogue des
           logiciels portes.

           Les cartes qui ne sont pas supportees par un pilote precis
           pourront toujours etre utilisables avec le pilote
           x11-drivers/xf86-video-vesa. Ce pilote est installe par x11/xorg.
           Il peut egalement etre installe manuellement en tant que
           x11-drivers/xf86-video-vesa. Xorg tente d'utiliser ce pilote quand
           un pilote specifique `a la carte graphique n'est pas trouve.

           x11-drivers/xf86-video-scfb est un pilote graphique non-specifique
           qui fonctionne sur de nombreux ordinateurs UEFI et ARM(R).

   Configuration du pilote graphique dans un fichier

           Pour configurer le pilote Intel(R) dans un fichier de
           configuration:

           Exemple 5.1. Selection du pilote graphique Intel(R) `a l'aide d'un
           fichier

           /usr/local/etc/X11/xorg.conf.d/driver-intel.conf

 Section "Device"
         Identifier "Card0"
         Driver     "intel"
         # BusID    "PCI:1:0:0"
 EndSection

           Si plus d'une carte graphique est presente, l'identifant BusID
           peut etre decommente et parametre pour selectionne la carte
           desiree. Une liste des IDs des cartes graphiques peut etre obtenu
           avec pciconf -lv | grep -B3 display.

           Pour configurer le pilote Radeon dans un fichier de configuration:

           Exemple 5.2. Selection du pilote graphique Radeon `a l'aide d'un
           fichier

           /usr/local/etc/X11/xorg.conf.d/driver-radeon.conf

 Section "Device"
         Identifier "Card0"
         Driver     "radeon"
 EndSection

           Pour configurer le pilote VESA dans un fichier de configuration:

           Exemple 5.3. Selection du pilote graphique VESA `a l'aide d'un
           fichier

           /usr/local/etc/X11/xorg.conf.d/driver-vesa.conf

 Section "Device"
         Identifier "Card0"
         Driver     "vesa"
 EndSection

           Pour configurer le pilote scfb pour une utilisation avec un
           ordinateur UEFI ou ARM(R):

           Exemple 5.4. Selection du pilote graphique scfb `a l'aide d'un
           fichier

           /usr/local/etc/X11/xorg.conf.d/driver-scfb.conf

 Section "Device"
         Identifier "Card0"
         Driver     "scfb"
 EndSection

  5.4.6. Moniteurs

   Presque tous les moniteus supportent la norme Extended Display
   Identification Data (EDID). Xorg utilise EDID pour communiquer avec le
   moniteur et detecter les definitions et les taux de rafraichissement
   supportes. Ensuite, il selectionne la combinaison de parametres la plus
   adaptee pour le moniteur.

   Les autres definitions supportees par le moniteur peuvent etre
   selectionnees en indiquant celle desiree dans les fichiers de
   configuration, ou `a l'aide de xrandr(1) apres avoir lance le serveur X.

   Utilisation de xrandr(1)

           Executez xrandr(1) sans aucun parametre pour voir la liste des
           sorties videos et des modes detectes du moniteur:

 % xrandr
 Screen 0: minimum 320 x 200, current 3000 x 1920, maximum 8192 x 8192
 DVI-0 connected primary 1920x1200+1080+0 (normal left inverted right x axis y axis) 495mm x 310mm
    1920x1200     59.95*+
    1600x1200     60.00
    1280x1024     85.02    75.02    60.02
    1280x960      60.00
    1152x864      75.00
    1024x768      85.00    75.08    70.07    60.00
    832x624       74.55
    800x600       75.00    60.32
    640x480       75.00    60.00
    720x400       70.08
 DisplayPort-0 disconnected (normal left inverted right x axis y axis)
 HDMI-0 disconnected (normal left inverted right x axis y axis)

           Ceci montre que la sortie DVI-0 est utilisee actuellement pour
           afficher une definition d'ecran de 1920x1200 pixels `a une
           frequence de rafraichissement d'environ 60 Hz. Il n'y a pas de
           moniteur branche aux connecteurs DisplayPort-0 et HDMI-0.

           N'importe quel autre mode d'affichage peut etre choisi avec
           xrandr(1). Par exemple, pour basculer sur 1280x1024 `a 60 Hz:

 % xrandr --mode 1280x1024 --rate 60

           Une operation courante est d'utiliser une sortie video externe sur
           un ordinateur portable pour un video-projecteur.

           Le type et le nombre de connecteurs de sortie varient en fonction
           des systemes, et le nom donne `a chaque sortie varie d'un pilote
           graphique `a l'autre. Ce qu'un pilote appelle HDMI-1, un autre
           l'appellera HDMI1. Aussi la premiere chose `a faire est de lancer
           xrandr(1) pour lister toutes les sorties disponibles.

 % xrandr
 Screen 0: minimum 320 x 200, current 1366 x 768, maximum 8192 x 8192
 LVDS1 connected 1366x768+0+0 (normal left inverted right x axis y axis) 344mm x 193mm
    1366x768      60.04*+
    1024x768      60.00
    800x600       60.32    56.25
    640x480       59.94
 VGA1 connected (normal left inverted right x axis y axis)
    1280x1024     60.02 +  75.02
    1280x960      60.00
    1152x864      75.00
    1024x768      75.08    70.07    60.00
    832x624       74.55
    800x600       72.19    75.00    60.32    56.25
    640x480       75.00    72.81    66.67    60.00
    720x400       70.08
 HDMI1 disconnected (normal left inverted right x axis y axis)
 DP1 disconnected (normal left inverted right x axis y axis)

           Quatre sorties ont ete trouvees: l'ecran integre LVDS1, et les
           connecteurs externes VGA1, HDMI1, et DP1.

           Le projecteur a ete connecte `a la sortie VGA1. xrandr(1) est
           maintenant utilise pour regler cette sortie sur la definition
           native de ce video-projecteur et pour ajouter l'espace d'affichage
           supplementaire `a droite du bureau:

 % xrandr --output VGA1 --auto --right-of LVDS1

           Le parametre --auto selectionne la definition et le taux de
           rafraichissement detecte par EDID. Si la definition n'est pas
           correctement detectee, une valeur definie peut etre donnee avec le
           parametre --mode `a la place de --auto. Par exemple, la plupart
           des video-projecteurs acceptent une definition de 1024x768 qui est
           reglee avec --mode 1024x768.

           xrandr(1) est souvent execute `a partir de .xinitrc pour regler le
           mode adapte quand X est lance.

   Configuration de la definition du moniteur dans un fichier

           Pour configurer la definition de l'ecran `a 1024x768 dans un
           fichier de configuration:

           Exemple 5.5. Selection de la definition d'ecran `a l'aide d'un
           fichier

           /usr/local/etc/X11/xorg.conf.d/screen-resolution.conf

 Section "Screen"
         Identifier "Screen0"
         Device     "Card0"
         SubSection "Display"
         Modes      "1024x768"
         EndSubSection
 EndSection

           Les quelques moniteurs ne supportant pas l'EDID peuvent etre
           configures en parametrant HorizSync et VertRefresh avec les plages
           de frequences supportees par le moniteur.

           Exemple 5.6. Configuration manuelle des frequences du moniteur

           /usr/local/etc/X11/xorg.conf.d/monitor0-freq.conf

 Section "Monitor"
         Identifier   "Monitor0"
         HorizSync    30-83   # kHz
         VertRefresh  50-76   # Hz
 EndSection

  5.4.7. Peripheriques d'entree

    5.4.7.1. Claviers

   Disposition des touches de clavier

           L'emplacement normalise des touches d'un clavier est appele
           disposition (layout). Les dispositions et d'autres parametres
           reglables sont listes dans la page de manuel xkeyboard-config(7).

           Une disposition des touches americaine est celle utilisee par
           defaut. Pour selectionner une disposition differente, configurez
           les options XkbLayout et XkbVariant dans une section InputClass.
           Cette configuration sera appliquee `a tous les peripheriques
           d'entree qui correspondent `a cette classe.

           Cet exemple selectionne une disposition de touches franc,aise.

           Exemple 5.7. Configuration d'une disposition des touches de
           clavier

           /usr/local/etc/X11/xorg.conf.d/keyboard-fr.conf

 Section "InputClass"
         Identifier      "KeyboardDefaults"
         MatchIsKeyboard "on"
         Option          "XkbLayout" "fr"
 EndSection

           Exemple 5.8. Configuration de plusieurs dispositions des touches

           Configuration des dispositions americaine, espagnole et
           ukrainienne. Le passage de l'une `a l'autre de ces dispositions se
           fait en appuyant sur Alt+Shift. x11/xxkb ou x11/sbxkb peuvent etre
           utilises pour un controle de la selection de la disposition des
           touches ameliore et pour avoir des indicateurs de la disposition
           en cours d'utilisation.

           /usr/local/etc/X11/xorg.conf.d/kbd-layout-multi.conf

 Section "InputClass"
         Identifier      "All Keyboards"
         MatchIsKeyboard "yes"
         Option          "XkbLayout" "us, es, ua"
 EndSection

   Quitter Xorg `a partir du clavier

           X peut etre ferme `a partir d'une combinaison de touches. Par
           defaut, cette combinaison n'est pas definie car elle entre en
           conflit avec les commandes passees au clavier pour certaines
           applications. L'activation de cette option necessite d'effectuer
           des modifications `a la section InputDevice du clavier:

           Exemple 5.9. Activation de la sortie d'X `a l'aide du clavier

           /usr/local/etc/X11/xorg.conf.d/keyboard-zap.conf

 Section "InputClass"
         Identifier      "KeyboardDefaults"
         MatchIsKeyboard "on"
         Option          "XkbOptions" "terminate:ctrl_alt_bksp"
 EndSection

    5.4.7.2. Souris et peripheriques de pointage

  Important:

   Si vous utilisez xorg-server 1.20.8 ou les versions suivantes sous
   FreeBSD 12.1 et que vous n'utilisez pas moused(8), ajoutez la ligne
   kern.evdev.rcpt_mask=12 au fichier /etc/sysctl.conf.

   Plusieurs parametres de la souris peuvent etre regles avec les options de
   configuration. Consultez la page de manuel mousedrv(4) pour une liste
   complete.

   Butons de la souris

           Le nombre de boutons d'une souris peut etre configure dans la
           section InputDevice du fichier xorg.conf. Pour fixer le nombre de
           boutons `a 7:

           Exemple 5.10. Reglage du nombre de boutons de la souris

           /usr/local/etc/X11/xorg.conf.d/mouse0-buttons.conf

 Section "InputDevice"
         Identifier  "Mouse0"
         Option      "Buttons" "7"
 EndSection

  5.4.8. Configuration manuelle

   Dans certains cas, la configuration automatique d'Xorg ne fonctionne pas
   avec un materiel specifique, ou une configuration differente est
   recherchee. Pour ces cas, un fichier de configuration personnalise peut
   etre cree.

  Avertissement:

   Ne creez pas de fichiers de configuration `a la main `a moins que cela ne
   soit necessaire. Une configuration inadaptee peut empecher un
   fonctionnement correct.

   Un fichier de configuration base sur le materiel detecte peut etre genere
   par Xorg. Ce fichier est un point de depart utile pour une configuration
   personnalisee.

   Generation d'un fichier xorg.conf:

 # Xorg -configure

   Le fichier de configuration est enregistre sous /root/xorg.conf.new.
   Effectuez les modifications desirees, puis tester ce fichier (avec
   l'option -retro de maniere `a avoir un fond d'ecran visible) avec:

 # Xorg -retro -config /root/xorg.conf.new

   Une fois que la nouvelle configuration a ete ajustee et testee, elle peut
   etre divisee en plus petits fichiers dans les emplacements habituels,
   /usr/local/etc/X11/xorg.conf.d/.

5.5. Utilisation des polices de caracteres sous Xorg

  5.5.1. Polices de caracteres Type1

   Les polices de caracteres livrees par defaut avec Xorg sont loin d'etre
   ideales pour des applications de type publication. Les grandes polices
   utilisees pour les presentations presentent un aspect en escalier et peu
   professionnel, et les petites polices sont presque completement
   illisibles. Cependant, il existe de nombreuses polices Type1
   (PostScript(R)) gratuites, de hautes qualites qui peuvent etre aisement
   utilisees avec Xorg.. Par exemple, la collection de polices de caracteres
   URW (x11-fonts/urwfonts) comprend une version haute qualite des polices de
   caracteres standards type1 (Times Roman(R), Helvetica(R), Palatino(R) et
   autres). La collection Freefonts (x11-fonts/freefonts) comprend beaucoup
   plus de polices de caracteres, mais la plupart d'entre elles sont
   destinees `a etre utilisees avec des logiciels graphiques comme Gimp, et
   ne sont pas suffisamment completes pour servir de polices de caracteres
   d'affichage. De plus Xorg peut etre configure pour utiliser les polices de
   caracteres TrueType(R) avec un minimum d'effort. Pour plus de details `a
   ce sujet, consultez la page de manuel X(7) ou la section Section 5.5.2,
   << Polices de caracteres TrueType(R) >>.

   Pour installer les collections de polices de caracteres Type1 precedentes
   `a partir des paquets binaires, lancez les commandes suivantes:

 # pkg install urwfonts

   Pour les compiler `a partir du catalogue des logiciels portes, lancez les
   commandes suivantes:

 # cd /usr/ports/x11-fonts/urwfonts
 # make install clean

   Et de meme pour la collection Freefont ou d'autres. Pour que le serveur X
   detecte ces polices, ajoutez une ligne appropriee au fichier de
   configuration du serveur X (/etc/X11/xorg.conf), du type:

 FontPath "/usr/local/share/fonts/URW/"

   Autre possibilite, en ligne de commande dans une session X lancez:

 % xset fp+ /usr/local/share/fonts/urwfonts
 % xset fp rehash

   Cela fonctionnera mais la configuration sera perdue quand la session X
   sera fermee, `a moins de l'ajouter dans le fichier de demarrage
   (~/.xinitrc pour une session startx classique, ou dans ~/.xsession quand
   on s'attache au systeme par l'intermediaire d'un gestionnaire de session
   graphique comme XDM). Une troisieme methode est d'utiliser le nouveau
   fichier /usr/local/etc/fonts/local.conf: comme montre dans la section
   Section 5.5.3, << Polices de caracteres anticrenelage >>.

  5.5.2. Polices de caracteres TrueType(R)

   Xorg dispose d'un support integre pour le rendu des polices TrueType(R).
   Il y a deux differents modules qui peuvent activer cette fonctionnalite.
   Le module freetype est utilise dans cet exemple parce qu'il est plus
   compatible avec les autres moteurs de rendu des polices de caracteres.
   Pour activer le module freetype ajoutez juste la ligne suivante dans la
   section "Module" du fichier /etc/X11/xorg.conf.

 Load  "freetype"

   Maintenant creez un repertoire pour les polices TrueType(R) (par exemple
   /usr/local/share/fonts/TrueType) et copiez toutes les polices TrueType(R)
   dans ce repertoire. Gardez `a l'esprit que les polices TrueType(R) ne
   peuvent etre directement prises d'un Apple(R) Mac(R); elles doivent etre
   dans un format UNIX(R)/MS-DOS(R)/Windows(R) pour etre utilisees sous Xorg.
   Une fois les fichiers copies dans ce repertoire, utilisez mkfontscale pour
   creer un fichier fonts.dir, de fac,on `a ce que le moteur d'affichage des
   polices d'X sache que de nouveaux fichiers ont ete installes. mkfontscale
   peut etre installe `a partir d'un paquet binaire:

 # pkg install mkfontscale

   Puis creez un index des polices de caracteres pour X dans le repertoire:

 # cd /usr/local/share/fonts/TrueType
 # mkfontscale

   Maintenant ajoutez le repertoire des polices TrueType(R) au chemin des
   polices de caracteres. Cela est identique `a ce qui est decrit dans la
   section Section 5.5.1, << Polices de caracteres Type1 >>:

 % xset fp+ /usr/local/share/fonts/TrueType
 % xset fp rehash

   ou ajouter une ligne FontPath au fichier xorg.conf.

   Desormais Gimp, LibreOffice, et toutes les autres applications X devraient
   maintenant reconnaitre les polices de caracteres TrueType(R) installees.
   Les polices tres petites (comme le texte de page web visualise sur un
   ecran haute resolution) et les tres grandes polices (dans LibreOffice)
   auront un rendu bien meilleur maintenant.

  5.5.3. Polices de caracteres anticrenelage

   Toutes les polices de caracteres sous Xorg se trouvant dans les
   repertoires /usr/local/share/fonts/ et ~/.fonts/ sont automatiquement
   disponibles pour l'anticrenelage avec les applications compatibles Xft. La
   plupart des application sont compatibles Xft, comme KDE, GNOME, et
   Firefox.

   Afin de controler quelles polices de caracteres sont anticrenelees, ou
   pour configurer les proprietes de l'anticrenelage, creez (ou editez, s'il
   existe dej`a) le fichier /usr/local/etc/fonts/local.conf. Plusieurs
   caracteristiques avancees du systeme de fontes Xft peuvent etre ajustees
   par l'intermediaire de ce fichier; cette section ne decrit que des
   possibilites simples. Pour plus de details, consultez la page de manuel
   fonts-conf(5).

   Ce fichier doit etre dans le format XML. Faites attention `a la casse des
   caracteres, et assurez-vous que toutes les balises sont correctement
   fermees. Le fichier debute avec l'entete XML classique suivie par une
   definition DOCTYPE, puis de la balise <fontconfig>:

         <?xml version="1.0"?>
         <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
         <fontconfig>
      

   Comme precise precedemment, l'ensemble des polices de caracteres du
   repertoire /usr/local/share/fonts/ comme du repertoire ~/.fonts/ sont
   disponibles pour les applications compatibles Xft. Si vous desirez ajouter
   un autre repertoire en dehors des ces deux l`a, ajoutez une ligne
   similaire `a la suivante au fichier /usr/local/etc/fonts/local.conf:

 <dir>/chemin/vers/mes/fontes</dir>

   Apres l'ajout de nouvelles polices, et tout particulierement de nouveaux
   repertoires de polices, vous devrez executer la commande suivante pour
   reconstituer le cache des polices de caracteres:

 # fc-cache -f

   L'anticrenelage rend les bords legerement flous, ce qui rend le texte tres
   petit plus lisible et enleve l'effet << d'escalier >> des grands textes,
   mais peut provoquer une fatigue visuelle si c'est applique au texte de
   taille normale. Pour exclure les tailles de polices inferieures `a 14
   points de l'anticrenelage, ajoutez ces lignes:

          <match target="font">
           <test name="size" compare="less">
                 <double>14</double>
           </test>
           <edit name="antialias" mode="assign">
                 <bool>false</bool>
           </edit>
         </match>
         <match target="font">
           <test name="pixelsize" compare="less" qual="any">
                 <double>14</double>
           </test>
           <edit mode="assign" name="antialias">
                 <bool>false</bool>
           </edit>
         </match>

   L'espacement pour certaines polices de caracteres `a chasse fixe peut
   egalement etre inapproprie avec l'anticrenelage. Cela semble etre un
   probleme avec KDE, en particulier. Une solution possible pour cela est de
   forcer l'espacement pour de telles polices de caracteres `a 100. Ajoutez
   les lignes suivantes:

          <match target="pattern" name="family">
           <test qual="any" name="family">
             <string>fixed</string>
           </test>
           <edit name="family" mode="assign">
             <string>mono</string>
           </edit>
         </match>
         <match target="pattern" name="family">
           <test qual="any" name="family">
             <string>console</string>
           </test>
           <edit name="family" mode="assign">
             <string>mono</string>
           </edit>
         </match>

   (ceci ajoute un alias "mono" pour les autres noms communs des polices de
   caracteres fixes), puis ajoutez:

          <match target="pattern" name="family">
           <test qual="any" name="family">
             <string>mono</string>
           </test>
           <edit name="spacing" mode="assign">
             <int>100</int>
           </edit>
         </match>

   Certaines polices de caracteres, comme Helvetica, peuvent presenter des
   problemes lors de l'anticrenelage. Generalement cela se manifeste par
   l'impression que la fonte semble coupee en deux verticalement. Au pire
   cela peut provoquer des crashs avec certaines applications. Pour eviter
   cela, pensez `a ajouter ce qui suit au fichier local.conf:

          <match target="pattern" name="family">
           <test qual="any" name="family">
             <string>Helvetica</string>
           </test>
           <edit name="family" mode="assign">
             <string>sans-serif</string>
           </edit>
         </match>

   Une fois l'edition de local.conf achevee, assurez-vous que le fichier se
   termine par la balise </fontconfig>. Si ce n'est pas le cas, tous vos
   changements seront ignores.

   Les utilisateurs peuvent ajouter leurs propres parametres par
   l'intermediaire de leur propre fichier ~/.config/fontconfig/fonts.conf. Ce
   fichier doit utiliser le meme format XML decrit precedemment.

   Un dernier point: avec un ecran LCD, un echantillonnage "sub-pixel" peut
   etre desire. Fondamentalement, ceci traite les composantes rouge, verte et
   bleu separement (horizontalement separees) pour ameliorer la resolution
   horizontale; les resultats peuvent etre dramatiques. Pour activer cela,
   ajoutez quelque part dans le fichier local.conf les lignes:

          <match target="font">
           <test qual="all" name="rgba">
             <const>unknown</const>
           </test>
           <edit name="rgba" mode="assign">
             <const>rgb</const>
           </edit>
         </match>
      

  Note:

   En fonction de type d'ecran, le terme rgb pourra devoir etre change pour
   bgr, vrgb ou vbgr: experimentez pour determiner lequel fonctionne le
   mieux.

5.6. Le gestionnaire de connexion graphique XDM

   Contribution originale de Seth Kingsley.

   Xorg propose un gestionnaire de connexion graphique, XDM, qui peut etre
   utilise pour la gestion des procedures de connexion graphique. XDM fournit
   une interface graphique pour selectionner `a quel serveur d'affichage se
   connecter et entrer des informations d'autorisation d'acces comme
   l'ensemble identifiant et mot de passe.

   Cette section montre comment configurer le gestionnaire de connexion
   graphique X sous FreeBSD. Certains environnements de bureau fournissent
   leur propre gestionnaire de connexion graphique. Se referer `a la
   Section 5.7.1, << GNOME >> pour des instructions sur comment configurer le
   gestionnaire de connexion graphique GNOME et `a la Section 5.7.2,
   << KDE >> pour des instructions concernant la configuration du
   gestionnaire de connexion graphique KDE.

  5.6.1. Configurer XDM

   Pour installer XDM, utilisez le logiciel porte ou la version pre-compilee
   x11/xdm. Une fois installe, XDM peut etre configure pour etre lance au
   demarrage de la machine en modifiant la ligne suivante dans /etc/ttys:

 ttyv8   "/usr/local/bin/xdm -nodaemon"  xterm   off secure

   Modifiez le off pour on et sauvegardez la modification. Le champ ttyv8 sur
   cette ligne indique que XDM demarrera sur le neuvieme terminal virtuel.

   Le repertoire de configuration d'XDM est situe dans
   /usr/local/etc/X11/xdm. Ce repertoire contient plusieurs fichiers utilises
   pour modifier le comportement et l'apparence d'XDM, ainsi que quelques
   procedures et programmes utilises pour configurer le bureau quand XDM est
   execute. Tableau 5.1, << Fichiers de configuration d'XDM >> resume la
   fonction de chacun de ces fichiers. La syntaxe exacte et l'utilisation de
   ces fichiers sont decrites dans xdm(1).

   Tableau 5.1. Fichiers de configuration d'XDM

    Fichier                             Description                           
              Le protocole utilise pour se connecter `a XDM est appele le     
              << X Display Manager Connection Protocol >> (XDMCP). Ce fichier 
   Xaccess    est un ensemble de regles d'autorisation client pour controler  
              les connexions XDMCP `a partir de machines distantes. Par       
              defaut, ce fichier n'autorise pas la connexion de clients       
              distants.                                                       
              Ce fichier controle l'apparence et la prise en main du          
              programme de selection et d'ouverture de session XDM. La        
              configuration par defaut est une simple fenetre d'ouverture de  
   Xresources session rectangulaire avec le nom de la machine hote affiche en 
              haut dans une grande police de caracteres et avec les invites   
              << Login: >> et << Password: >> en dessous. Le format de ce     
              fichier est identique au fichier de parametres par defaut       
              decrit dans la documentation Xorg                               
   Xservers   Liste des affichages distants et locaux que le systeme doit     
              proposer `a l'ouverture de session.                             
              Procedure d'ouverture de session par defaut qui est executee    
   Xsession   par XDM quand un utilisateur se connecte. Elle pointe vers une  
              procedure personnalisee de session dans le repertoire           
              ~/.xsession.                                                    
              Procedures utilisees pour lancer automatiquement des            
              applications avant d'afficher les interfaces de selection et    
   Xsetup_*   d'ouverture de session. Il existe une procedure pour chaque     
              ecran utilise, nommee Xsetup_*, ou * est le numero local de     
              l'ecran. En general, ces procedures executent un ou deux        
              programmes en tache de fond comme xconsole.                     
   xdm-config Configuration globale pour tous les ecrans tournant sur cette   
              machine.                                                        
              Contient les erreurs generees par le programme serveur. Si une  
              connexion qu'XDM tente d'ouvrir se bloque, examinez ce fichier  
   xdm-errors pour trouver des messages d'erreur. Ces messages sont egalement 
              ecrits dans le fichier ~/.xsession-errors de l'utilisateur `a   
              chaque session.                                                 
   xdm-pid    L'identifiant, ID, du processus executant XDM.                  

  5.6.2. Configurer l'acces `a distance

   Par defaut, seuls les utilisateurs sur le meme systeme peuvent ouvrir une
   session en utilisant XDM. Pour permettre aux utilisateurs d'autres systeme
   de se connecter au gestionnaire d'affichage, editez les regles de controle
   d'acces et activez l'ecoute des demandes de connexion.

   Pour configurer XDM pour l'ecoute des demandes de connexions distantes,
   commentez la ligne DisplayManager.requestPort dans le fichier
   /usr/local/etc/X11/xdm/xdm-config en ajoutant un ! devant:

 ! SECURITY: do not listen for XDMCP or Chooser requests
 ! Comment out this line if you want to manage X terminals with xdm
 DisplayManager.requestPort:     0

   Sauvegardez et relancez XDM. Pour restreindre l'acces `a distance,
   consultez les exemples dans /usr/local/etc/X11/xdm/Xaccess ainsi que la
   page de manuel xdm(1) pour plus d'informations

5.7. Environnements de bureau

   Contribution de Valentino Vaschetto.

   Cette section decrit comment installer sur un systeme FreeBSD un des trois
   environnements de bureau populaires. Un environnement de bureau peut aller
   du simple gestionnaire de fenetres jusqu'`a la suite complete
   d'applications de bureau. Plus d'une centaine d'environnements est
   disponible dans la categorie x11-wm du catalogue des logiciels portes.

  5.7.1. GNOME

   GNOME est un environnement de bureau convivial. Il comprend un panneau
   (<< panel >>) pour lancer des applications et afficher des etats, un
   bureau, un ensemble d'outils et d'applications, et un ensemble de
   conventions qui rendent aisee la cooperation et la coherence entre
   applications. Plus d'informations concernant GNOME sous FreeBSD peuvent
   etre trouvees sur https://www.FreeBSD.org/gnome. Le site contient de la
   documentation supplementaire sur l'installation, la configuration, et
   l'administration de GNOME sous FreeBSD.

   Cet environnement de bureau peut etre installe `a partir d'un paquet
   pre-compile:

 # pkg install gnome3

   Pour plutot compiler GNOME `a partir du catalogue des logiciels portes,
   utilisez la commande qui suit. GNOME est une application importante en
   taille et qui demandera un temps notable pour etre compilee, et cela, meme
   sur un ordinateur rapide.

 # cd /usr/ports/x11/gnome3
 # make install clean

   GNOME a besoin que /proc soit monte. Ajoutez la ligne suivante au fichier
   /etc/fstab pour monter ce systeme de fichiers automatiquement au
   demarrage:

 proc           /proc       procfs  rw  0   0

   GNOME utilise D-Bus et HAL comme bus des messages et couche d'abstraction
   materielle. Ces applications sont automatiquement installees comme
   dependances `a GNOME. Activez-les dans /etc/rc.conf pour qu'elles soient
   lancees au demarrage du systeme:

 dbus_enable="YES"
 hald_enable="YES"

   Apres l'installation, il faut configurer Xorg pour lancer GNOME. La
   maniere la plus simple de faire cela est d'activer le gestionnaire
   d'affichage de GNOME, GDM, qui est installe par defaut comme element du
   paquet pre-compile ou du logiciel porte GNOME. Il peut etre active en
   ajoutant la ligne suivante au fichier /etc/rc.conf:

 gdm_enable="YES"

   Il est souvent interessant de lancer egalement tous les services GNOME.
   Pour accomplir cela, ajoutez une seconde ligne `a /etc/rc.conf:

 gnome_enable="YES"

   GDM sera lance automatiquement au demarrage du systeme.

   Une deuxieme methode de lancement de GNOME est de taper startx `a partir
   de la ligne de commande apres avoir configure le fichier ~/.xinitrc. Si ce
   fichier existe dej`a, remplacez la ligne qui lance le gestionnaire de
   fenetres actuel par une qui execute /usr/local/bin/gnome-session. Si ce
   fichier n'existe pas, creez-le avec la commande:

 % echo "exec /usr/local/bin/gnome-session" > ~/.xinitrc

   Une troisieme methode est d'utiliser XDM comme gestionnaire d'affichage.
   Dans ce cas, creez un executable ~/.xsession:

 % echo "exec /usr/local/bin/gnome-session" > ~/.xsession

  5.7.2. KDE

   KDE est un autre environnement de bureau simple d'utilisation. Ce bureau
   propose une suite d'applications avec une apparence et une prise en main
   commune, des menus et des barres d'outils, des raccourcis clavier, des
   couleurs et une regionalisation standardises, ainsi qu'un systeme de
   configuration de l'environnement centralise. Plus d'informations sur KDE
   peuvent etre trouvees sur http://www.kde.org/. Pour des informations
   specifiques `a FreeBSD, consultez http://freebsd.kde.org.

   Pour installer la version pre-compilee de KDE, tapez:

 # pkg install x11/kde5

   Pour plutot compiler KDE `a partir du catalogue des logiciels portes,
   utilisez la commande qui suit. L'installation du logiciel porte proposera
   un menu pour selectionner quel composant `a installer. KDE est une
   application importante en taille et qui demandera un temps notable pour
   etre compilee, et cela, meme sur un ordinateur rapide.

 # cd /usr/ports/x11/kde5
 # make install clean

   KDE a besoin que /proc soit monte. Ajoutez la ligne suivante au fichier
   /etc/fstab pour monter ce systeme de fichiers automatiquement au
   demarrage:

 proc           /proc       procfs  rw  0   0

   KDE utilise D-Bus et HAL comme bus des messages et couche d'abstraction
   materielle. Ces applications sont automatiquement installees comme
   dependances `a KDE. Activez-les dans /etc/rc.conf pour qu'elles soient
   lancees au demarrage du systeme:

 dbus_enable="YES"
 hald_enable="YES"

   Depuis KDE Plasma 5, le gestionnaire d'affichage KDE, KDM, n'est plus
   developpe. Un remplacement possible est SDDM. Pour l'installer, tapez:

 # pkg install x11/sddm

   Ajoutez cette ligne `a /etc/rc.conf:

 sddm_enable="YES"

   Une deuxieme methode de lancement de KDE Plasma est de taper startx `a
   partir de la ligne de commande. Pour que cela fonctionne, la ligne
   suivante est requise dans ~/.xinitrc:

 exec ck-launch-session startplasma-x11

   Une troisieme methode de lancement de KDE Plasma utilise XDM. Dans ce cas,
   creez un executable ~/.xsession comme indique:

 % echo "exec ck-launch-session startplasma-x11" > ~/.xsession

   Une fois KDE Plasma lancee, consultez son systeme d'aide integree pour
   plus d'informations sur comment utiliser ses differents menus et
   applications.

  5.7.3. XFce

   XFce est un environnement de bureau base sur le "toolkit" GTK+ utilise par
   GNOME. Cependant, il est plus leger et offre un bureau simple, efficace et
   simple d'utilisation. Il est completement configurable, dispose d'une
   barre principale avec des menus, des petites applications et des lanceurs
   d'applications, il fournit un gestionnaire de fichiers et un gestionnaire
   du son, et il est personnalisable avec des themes. Puisqu'il est rapide,
   leger et efficace, il est ideal pour les machines anciennes ou lentes avec
   des limitations en memoire. Plus d'informations sur XFce peuvent etre
   trouvees sur le site http://www.xfce.org.

   Pour installer le paquet pre-compile de Xfce:

 # pkg install xfce

   Alternativement, pour compiler le logiciel porte:

 # cd /usr/ports/x11-wm/xfce4
 # make install clean

   Xfce utilise D-Bus comme bus des messages. Cette application est
   automatiquement installee comme dependance `a Xfce. Activez-la dans
   /etc/rc.conf pour qu'elle soit lancee au demarrage du systeme:

 dbus_enable="YES"

   Contrairement `a GNOME ou KDE, Xfce ne fournit pas son propre gestionnaire
   de session. Afin de lancer Xfce `a partir de la ligne de commande en
   tapant startx, creez d'abord le fichier ~/.xinitrc `a l'aide de la ligne:

 % echo ". /usr/local/etc/xdg/xfce4/xinitrc" > ~/.xinitrc

   Une methode alternative est d'utiliser XDM. Pour configurer cette methode,
   creez un executable ~/.xsession:

 % echo ". /usr/local/etc/xdg/xfce4/xinitrc" > ~/.xsession

5.8. Installation de Compiz Fusion

   Une methode pour rendre l'utilisation d'un ordinateur plus plaisante est
   l'ajout de jolis effets en 3D.

   L'installation du paquet binaire Compiz Fusion est simple, mais sa
   configuration demande quelques etapes qui ne sont pas decrites dans la
   documentation du logiciel porte.

  5.8.1. Configuration du pilote nVidia FreeBSD

   Les effets visuels dans l'environnement de bureau peuvent etre `a
   l'origine d'une charge non-negligeable pour la carte graphique. Pour les
   cartes graphiques nVidia, le pilote de peripherique proprietaire est
   necessaire pour obtenir de bonnes performances. Les utilisateurs d'autres
   cartes graphiques peuvent sauter cette section et poursuivre avec la
   partie sur la configuration d'xorg.conf.

   Pour determiner quel pilote nVidia est requis, consultez la FAQ `a ce
   sujet.

   Apres avoir determine le pilote correct `a utiliser pour votre carte,
   l'installation est aussi simple que d'installer n'importe quel autre
   paquet binaire.

   Par exemple, pour installer la derniere version du pilote:

 # pkg install x11/nvidia-driver

   Le pilote creera un module noyau, qui doit etre charge au demarrage du
   systeme. Ajoutez la ligne suivante au fichier /boot/loader.conf:

 nvidia_load="YES"

  Note:

   Pour charger immediatement le module noyau dans le noyau en cours
   d'utilisation, utilisez une commande du type kldload nvidia. Cependant, il
   a ete remarque que certaines versions d'Xorg ne fonctionnaient pas
   correctement si le pilote n'etait pas charge lors du demarrage du systeme.
   Apres l'edition du fichier /boot/loader.conf, un redemarrage est donc
   recommande.

   Avec le module noyau charge, seul la modification d'une ligne dans
   xorg.conf est necessaire pour activer le pilote proprietaire:

   Trouvez la ligne suivante dans /etc/X11/xorg.conf:

 Driver      "nv"

   et modifiez-la pour:

 Driver      "nvidia"

   Lancez l'interface graphique comme vous en avez l'habitude, et vous
   devriez etre accueilli par le logo nVidia. Tout devrait fonctionner comme
   `a l'accoutumee.

  5.8.2. Configuration d'xorg.conf pour les effets visuels

   Pour activer Compiz Fusion, /etc/X11/xorg.conf doit etre modifie:

   Ajoutez la section suivante pour activer les effets du compositeur:

 Section "Extensions"
     Option         "Composite" "Enable"
 EndSection

   Recherchez la section << Screen >> qui devrait etre semblable `a celle
   ci-dessous:

 Section "Screen"
     Identifier     "Screen0"
     Device         "Card0"
     Monitor        "Monitor0"
     ...

   et ajouter les deux lignes suivantes (apres la ligne << Monitor >>):

 DefaultDepth    24
 Option         "AddARGBGLXVisuals" "True"

   Recherchez la partie << Subsection >> faisant reference `a la definition
   de l'ecran que vous voulez utiliser. Par exemple, si vous voulez utiliser
   une definition de 1280x1024, recherchez la partie comme ci-dessous. Si la
   definition voulue n'apparait nulle part, vous devrez ajouter l'entree
   correspondante `a la main:

 SubSection     "Display"
     Viewport    0 0
     Modes      "1280x1024"
 EndSubSection

   Une profondeur de couleurs de 24 bits est requise pour un bureau utilisant
   la composition, modifiez la section precedente pour:

 SubSection     "Display"
     Viewport    0 0
     Depth       24
     Modes      "1280x1024"
 EndSubSection

   Et enfin, verifiez que les modules << glx >> et << extmod >> sont charges
   dans la section << Module >>:

 Section "Module"
     Load           "extmod"
     Load           "glx"
     ...

   Ce qui precede peut etre effectue automatiquement avec x11/nvidia-xconfig
   en executant (en tant que root):

 # nvidia-xconfig --add-argb-glx-visuals
 # nvidia-xconfig --composite
 # nvidia-xconfig --depth=24

  5.8.3. Installation et configuration de Compiz Fusion

   L'installation de Compiz Fusion est aussi simple que celle de n'importe
   quel paquet binaire:

 # pkg install x11-wm/compiz-fusion

   Quand l'installation est achevee, lancez votre environnement de bureau et,
   `a un terminal, entrez les commandes suivantes (sous l'utilisateur
   normal):

 % compiz --replace --sm-disable --ignore-desktop-hints ccp &
 % emerald --replace &

   Votre ecran devrait clignoter quelques secondes, etant donne que votre
   gestionnaire de fenetres (par exemple Metacity si vous utilisez GNOME) est
   remplace par Compiz Fusion. Emerald s'occupera de la decoration des
   fenetres (c'est `a dire, les boutons de fermeture, de reduction,
   d'agrandissement, les barres de titres etc.).

   Vous avez la possibilite de convertir tout cela en une procedure `a
   executer automatiquement au demarrage (par exemple en l'ajoutant `a
   << Sessions >> dans le cas d'un bureau GNOME):

 #! /bin/sh
 compiz --replace --sm-disable --ignore-desktop-hints ccp &
 emerald --replace &

   Sauvegardez ce fichier dans votre repertoire personnel sous le nom, par
   exemple, start-compiz et rendez-le executable:

 % chmod +x ~/start-compiz

   Utilisez ensuite l'interface graphique pour l'ajouter au menu Startup
   Programs (situe dans System, Preferences, Sessions dans le cas d'un
   environnement de bureau GNOME).

   Pour selectionner tous les effets visuels desires et leurs parametres,
   executez (toujours en tant qu'utilisateur normal) le programme
   Compiz Config Settings Manager:

 % ccsm

  Note:

   Sous GNOME, il peut etre trouve dans le menu System, puis Preferences.

   Si vous avez selectionne << gconf support >> lors de la compilation, vous
   pourrez egalement voir ces parametres en utilisant gconf-editor sous
   apps/compiz.

                          Partie II. Taches courantes

   Maintenant que les bases sont maitrisees, cette partie du Manuel va
   traiter de certaines fonctionnalites de FreeBSD frequemment utilisees. Ces
   chapitres:

     * Presentent des applications de bureautique populaires et utiles: des
       navigateurs, des outils de productivite, des lecteurs de documents,
       etc.

     * Presentent plusieurs outils multimedia disponibles pour FreeBSD.

     * Expliquent le processus de compilation d'un noyau FreeBSD
       personnalise, pour permettre l'ajout de fonctionnalites
       supplementaires.

     * Decrivent le systeme d'impression en detail, pour les configurations
       d'imprimante locale et en reseau.

     * Montrent comment executer des applications Linux sur le systeme
       FreeBSD.

   Certains de ces chapitres conseillent des lectures prealables, ceci est
   note dans le synopsis au debut de chaque chapitre.

   Table des matieres

   6. Bureautique

                6.1. Synopsis

                6.2. Navigateurs

                6.3. Productivite

                6.4. Lecteurs de document

                6.5. Finance

                6.6. Resume

   7. Multimedia

                7.1. Synopsis

                7.2. Configurer une carte son

                7.3. Fichiers MP3

                7.4. Lecture des Videos

                7.5. Configuration des cartes TV

                7.6. Scanners

   8. Configurer le noyau de FreeBSD

                8.1. Synopsis

                8.2. Pourquoi compiler un noyau sur mesure?

                8.3. Compiler et installer un noyau sur mesure

                8.4. Le fichier de configuration

                8.5. Si quelque chose se passe mal

   9. Imprimer

                9.1. Synopsis

                9.2. Introduction

                9.3. Configuration de base

                9.4. Configuration avancee de l'imprimante

                9.5. Using Printers ** Traduction en Cours **

                9.6. Alternatives to the Standard Spooler ** Traduction en
                Cours **

                9.7. Troubleshooting ** Traduction en Cours **

   10. Compatibilite binaire avec Linux(R)

                10.1. Synopsis

                10.2. Configurer la compatibilite binaire avec Linux(R)

                10.3. Sujets avances

Chapitre 6. Bureautique

   Contribution de Christophe Juniet.
   Table des matieres

   6.1. Synopsis

   6.2. Navigateurs

   6.3. Productivite

   6.4. Lecteurs de document

   6.5. Finance

   6.6. Resume

   Version franc,aise de Marc Fonvieille <blackend@FreeBSD.org>.

6.1. Synopsis

   FreeBSD peut faire fonctionner une large variete d'applications de
   bureautique, comme des navigateurs et des traitements de textes. La
   plupart de ces derniers sont disponibles sous forme pre-compilee ou
   peuvent etre compile automatiquement `a partir du catalogue des logiciels
   portes. De nombreux utilisateurs s'attendent `a trouver ces types
   d'applications dans leur environnement de travail. Ce chapitre vous
   montrera comment installer quelques unes des applications de bureautique
   les plus populaires sans trop d'effort, soit `a partir de versions
   pre-compilees soit `a partir du catalogue des logiciels portes.

   Notez que lorsque l'on installe des programmes `a partir du catalogue des
   logiciels portes, ils sont compiles `a partir des sources. Cela peut
   prendre un temps relativement long, en fonction de ce que vous compilez et
   de la puissance de votre machine. Si la compilation `a partir des sources
   requiert un temps prohibitif, vous pouvez installer la plupart des
   programmes de l'arbre des ports `a partir de version pre-compilees.

   Comme FreeBSD dispose d'un systeme de compatibilite avec les binaires
   Linux, de nombreuses applications developpees `a l'origine pour Linux sont
   disponibles pour votre environnement de travail. Il est vivement
   recommande que vous lisiez le Chapitre 10, Compatibilite binaire avec
   Linux(R) avant d'installer des applications Linux. De nombreux logiciels
   portes utilisant la compatibilite binaire Linux debutent avec le terme
   "linux-". Souvenez-vous de cela quand vous recherchez un logiciel porte
   bien particulier, par exemple `a l'aide de whereis(1). Dans le reste de ce
   chapitre on suppose que vous avez active la compatibilite Linux avant
   d'installer des applications Linux.

   Voici les categories d'applications couvertes par ce chapitre:

     * Navigateurs (comme Mozilla, Opera, Firefox, Konqueror)

     * Productivite (comme KOffice, AbiWord, The GIMP, OpenOffice.org)

     * Lecteurs de document (comme Acrobat Reader(R), gv, Xpdf, GQview)

     * Finance (comme GnuCash, Gnumeric, Abacus)

   Avant de lire ce chapitre, vous devrez:

     * Savoir comment installer des logiciels tiers (Chapitre 4, Installer
       des applications: les logiciels pre-compiles et les logiciels portes).

     * Savoir comment installer des logiciels pour Linux (Chapitre 10,
       Compatibilite binaire avec Linux(R)).

   Pour des informations sur comment mettre en place un environnement
   multimedia, lisez le Chapitre 7, Multimedia. Si vous desirez configurer et
   utiliser le courrier electronique, veuillez vous referer au Chapitre 29,
   Courrier electronique.

6.2. Navigateurs

   FreeBSD n'est pas livre avec un navigateur particulier installe. Au lieu
   de cela, le repertoire www du catalogue des logiciels portes contient de
   nombreux navigateurs prets `a etre installes. Si vous n'avez pas le temps
   de tout compiler (cela peut prendre un temps relativement long dans
   certains cas) nombres d'entre eux sont disponibles sous forme
   pre-compilee.

   KDE et GNOME fournissent dej`a un navigateur HTML. Veuillez vous referer
   au Section 5.7, << Environnements de bureau >> pour plus d'information sur
   comment configurer ces environnements de travail.

   Si vous etes `a la recherche de navigateurs legers, vous devriez consulter
   le catalogue des logiciels portes pour www/dillo, www/links, ou www/w3m.

   Cette section couvre les applications suivantes:

                             Installation `a                                  
      Nom de     Ressources     partir du         Dependances principales
   l'application necessaires  catalogue des   
                             logiciels portes 
   Mozilla       importantes lourde           Gtk+                            
                                              Version native FreeBSD et Linux 
                                              disponibles. La version Linux   
   Opera         faibles     legere           depend de la compatibilite      
                                              binaire Linux et de             
                                              linux-openmotif.                
   Firefox       moyennes    lourde           Gtk+                            
   Konqueror     moyennes    lourde           Bibliotheques KDE               

  6.2.1. Mozilla

   Mozilla est un navigateur moderne et stable, dont le portage FreeBSD est
   complet: il presente un moteur d'affichage HTML qui respecte vraiment les
   normes; il integre un lecteur de courrier electronique et de forums de
   discussion. Il possede meme un editeur HTML si vous projetez d'ecrire
   vous-meme quelques pages Web. Les utilisateurs de Netscape(R) trouveront
   des similitudes avec la suite Communicator, etant donne que les deux
   navigateurs partagent certains developpements passes.

   Sur les machines lentes, avec une vitesse de processeur de moins de 233MHz
   ou avec moins de 64MO de RAM, Mozilla peut etre trop consommateur en
   ressources pour etre vraiment utilisable. Vous pourrez vouloir essayer `a
   la place le navigateur Opera decrit plus tard dans ce chapitre.

   Si vous ne pouvez ou ne voulez compiler Mozilla, pour une quelconque
   raison, l'equipe GNOME de FreeBSD l'a dej`a fait pour vous. Installez
   juste la version pre-compilee `a partir du reseau avec:

 # pkg_add -r mozilla

   Si la version pre-compilee n'est pas disponible, et que vous avez
   suffisamment de temps et d'espace disque, vous pouvez obtenir les sources
   pour Mozilla, le compiler et l'installer sur votre systeme. Cela
   s'effectue en faisant:

 # cd /usr/ports/www/mozilla
 # make install clean

   Le logiciel porte Mozilla s'assure d'une initialisation correcte en
   executant la configuration de la base de registre chrome avec les
   privileges de root privileges. Cependant si vous desirez recuperer des
   modules additionnels comme "mouse gestures", vous devez executer Mozilla
   en tant que root pour obtenir une installation correcte de ces modules.

   Une fois que vous avez acheve l'installation de Mozilla, vous n'avez plus
   besoin d'etre sous root. Vous pouvez lancer Mozilla en tant que navigateur
   en tapant:

 % mozilla

   Vous pouvez lancer directement les lecteurs de courrier electronique et de
   forums comme montre ci-dessous:

 % mozilla -mail

  6.2.2. Firefox

   Firefox est la generation suivante de navigateurs bases sur le code de
   Mozilla. Mozilla est une suite complete d'applications, comme un
   navigateur, un client de messagerie, un client de discussion et bien plus.
   Firefox est juste un navigateur, ce qui le rend plus petit et plus rapide.

   Installez la version pre-compilee du logiciel en tapant:

 # pkg_add -r firefox

   Vous pouvez egalement utiliser le catalogue des logiciels portes si vous
   desirez effectuer la compilation `a partir des sources:

 # cd /usr/ports/www/firefox
 # make install clean

  6.2.3. Firefox, Mozilla et le greffon Java(TM)

  Note:

   Dans cette section et la suivante, nous supposerons que vous avez dej`a
   installe Firefox ou Mozilla.

   La fondation FreeBSD a acquis aupres de Sun Microsystems une licence de
   distribution des binaires FreeBSD pour le Java Runtime Environment
   (JRE(TM)) et le Java Development Kit (JDK(TM)). Les paquetages binaires
   pour FreeBSD sont disponibles sur le site de la fondation FreeBSD.

   Pour ajouter le support Java(TM) `a Firefox ou Mozilla, vous devez
   installer tout d'abord le logiciel porte java/javavmwrapper. Ensuite,
   telechargez le paquetage Diablo JRE(TM) `a l'adresse
   http://www.freebsdfoundation.org/downloads/java.shtml, et installez-le `a
   l'aide de pkg_add(1).

   Lancez votre navigateur et tapez about:plugins dans la barre d'adresse et
   appuyez sur Entree. Une page listant les greffons installes s'affichera;
   le greffon Java(TM) devrait desormais apparaitre dans la liste. Si ce
   n'est pas le cas, en tant que root, executez la commande suivante:

 # ln -s /usr/local/diablo-jre1.5.0/plugin/i386/ns7/libjavaplugin_oji.so \
   /usr/local/lib/browser_plugins/

   puis relancez votre navigateur.

  6.2.4. Firefox, Mozilla et le greffon Macromedia(R) Flash(R)

   Le greffon Macromedia(R) Flash(R) n'est pas disponible pour FreeBSD.
   Cependant il existe une couche logicielle (<< wrapper >>) pour utiliser la
   version Linux du greffon. Ce << wrapper >> supporte egalement les greffons
   Adobe(R) Acrobat(R), RealPlayer(R) et plus.

   Installez le logiciel porte www/nspluginwrapper. Ce logiciel necessite
   emulators/linux_base qui occupe un espace relativement important.

   L'etape suivante est l'installation du logiciel porte
   www/linux-flashplugin7. Une fois le logiciel installe, le greffon doit
   etre installe par chaque utilisateur `a l'aide de la commande
   nspluginwrapper:

 % nspluginwrapper -v -a -i

   Lancez ensuite votre navigateur, tapez about:plugins dans la barre
   d'adresse et appuyez sur Entree. Une liste des greffons actuellement
   disponibles devrait apparaitre.

  6.2.5. Opera

   Opera est un navigateur complet respectant les standards. Il integre un
   lecteur de courrier electronique et de forums de discussion, un client
   IRC, un lecteur de flux RSS/Atom et beaucoup plus. Malgre cela, Opera
   reste relativement leger et tres rapide. Il est disponible en deux
   versions: une version "native" pour FreeBSD et une version utilisant
   l'emulation Linux.

   Pour naviguer sur le Web avec la version FreeBSD d'Opera, installez la
   version pre-compilee:

 # pkg_add -r opera

   Certains sites FTP n'ont pas toutes les versions pre-compilees, mais Opera
   peut egalement etre obtenu avec le catalogue des logiciels portes en
   tapant:

 # cd /usr/port/www/opera
 # make install clean

   Pour installer la version Linux d'Opera, utilisez linux-opera `a la place
   d'opera dans les exemples precedents. La version Linux est utile dans les
   situations demandant l'utilisation de greffons qui sont uniquement
   disponibles pour Linux, comme Acrobat Reader(R). Dans tous les autres
   aspects, les versions FreeBSD et Linux devraient etre identiques.

  6.2.6. Konqueror

   Konqueror fait partie de KDE mais peut etre egalement utilise en dehors de
   KDE en installant x11/kdebase3. Konqueror est plus qu'un navigateur, c'est
   egalement un gestionnaire de fichiers et une visionneuse multimedia

   Il existe egalement un ensemble de greffons pour Konqueror disponible dans
   misc/konq-plugins.

   Konqueror supporte egalement Flash(R); un tutorial pour avoir le support
   de Flash(R) sous Konqueror est disponible `a l'adresse
   http://freebsd.kde.org/howto.php.

6.3. Productivite

   Quand on parle de productivite, les nouveaux utilisateurs recherchent
   souvent une bonne suite bureautique ou un traitement de texte convivial.
   Bien que certains environnements de travail comme KDE fournissent dej`a
   une suite de bureautique, il n'y a pas de logiciels de productivite par
   defaut. FreeBSD fournit tout ce qui est necessaire, independamment de
   votre environnement de travail.

   Cette section couvre les applications suivantes:

       Nom de     Ressources      Installation `a partir du      Dependances  
   l'application  necessaires  catalogue des logiciels portes    principales  
   KOffice        legeres     lourde                            KDE           
   AbiWord        legeres     lourde                            Gtk+ ou GNOME 
   The Gimp       legeres     lourde                            Gtk+          
   OpenOffice.org importantes tres lourde                       JDK(TM) 1.4,  
                                                                Mozilla       

  6.3.1. KOffice

   La communaute KDE propose son environnement de travail avec une suite de
   bureautique qui peut etre utilisee en dehors de KDE. Elle comprend quatre
   composants standard que l'on peut trouver dans d'autres suites. KWord est
   le traitement de texte, KSpread est le tableur, KPresenter est le
   programme pour gerer des presentations, et Kontour vous permet de creer
   des documents graphiques.

   Avant d'installer la derniere version de KOffice, soyez sur d'avoir une
   version `a jour de KDE.

   Pour installer KOffice `a partir de la version pre-compilee, utilisez la
   commande suivante:

 # pkg_add -r koffice

   Si la version pre-compilee n'est pas disponible, vous pouvez utiliser le
   catalogue des logiciels portes. Par exemple, pour installer KOffice pour
   KDE3, faites:

 # cd /usr/ports/editors/koffice-kde3
 # make install clean

  6.3.2. AbiWord

   AbiWord est un traitement de texte gratuit similaire au niveau de
   l'apparence et de la prise en main `a Microsoft(R) Word. Il convient pour
   taper des lettres, des rapports, des memos, et ainsi de suite. Il est tres
   rapide, dispose de nombreuses fonctions, et tres convivial.

   AbiWord peut importer et exporter dans de nombreux formats de fichiers,
   dont certains formats proprietaires comme le .doc de Microsoft(R).

   AbiWord est disponible sous forme pre-compilee. Vous pouvez l'installer
   avec:

 # pkg_add -r abiword

   Si la version pre-compilee n'est pas disponible, il peut etre compile `a
   partir du catalogue des logiciels portes. Le catalogue devra etre plus `a
   jour. Cela peut etre fait de cette fac,on:

 # cd /usr/ports/editors/abiword
 # make install clean

  6.3.3. The GIMP

   Pour la creation et la retouche d'image The GIMP est un programme de
   manipulation d'image tres sophistique. Il peut etre utilise comme un
   simple programme de dessin ou comme une suite de retouche d'image de
   qualite photo. Il supporte un grand nombre de modules additionnels et
   presente une interface de creation de procedures. The GIMP peut lire et
   ecrire dans un tres grand nombre de formats de fichiers. Il supporte
   l'interfac,age avec des scanners et des tablettes graphiques.

   Vous pouvez installer la version pre-compilee en utilisant cette commande:

 # pkg_add -r gimp

   Si votre site FTP ne dispose pas de la version pre-compilee, vous pouvez
   utiliser le catalogue des logiciels portes. Le repertoire graphics du
   catalogue contient egalement le Manuel de The Gimp. Voici comment les
   installer:

 # cd /usr/ports/graphics/gimp
 # make install clean
 # cd /usr/ports/graphics/gimp-manual-pdf
 # make install clean

  Note:

   Le repertoire graphics du catalogue des logiciels portes contient la
   version de developpement de The GIMP dans graphics/gimp-devel. Une version
   HTML du Manuel de The Gimp est disponible `a partir de
   graphics/gimp-manual-html.

  6.3.4. OpenOffice.org

   OpenOffice.org comprend toutes les applications indispensables d'une suite
   de bureautique complete: un traitement de texte, un tableur, un programme
   de gestion de presentation, et un logiciel de dessin. Son interface
   utilisateur est tres proche de celle d'autres suites de bureautique, et
   elle peut importer et exporter dans divers formats de fichiers populaires.
   Elle est disponible dans de nombreuses langues - l'interface, les
   correcteurs orthographiques, et les dictionnaires ont ete
   internationalises.

   Le traitement de texte d'OpenOffice.org utilise un format de fichier natif
   en XML pour augmenter la portabilite et la flexibilite. Le tableur dispose
   d'un langage de macro et il peut etre interface avec des bases de donnees
   exterieures. OpenOffice.org est dej`a stable et fonctionne en natif sous
   Windows(R), Solaris(TM), Linux, FreeBSD, et Mac OS(R) X. Plus
   d'information `a propos d'OpenOffice.org peut etre trouve sur le site Web
   d'OpenOffice.org. Pour une information specifique `a FreeBSD, et pour
   telecharger directement les versions precompilees, utilisez le site Web de
   l'Equipe FreeBSD de portage d'OpenOffice.org.

   Pour installer OpenOffice.org, faites:

 # pkg_add -r openoffice.org

  Note:

   Cette commande devrait fonctionner si vous utilisez une version -RELEASE
   de FreeBSD. Si ce n'est pas le cas, vous devriez consulter le site de
   l'equipe de portage d'OpenOffice.org pour telecharger puis installer le
   paquetage adequat en utilisant pkg_add(1). Les versions actuelles et de
   developpement sont disponibles.

   Une fois l'installation effective, vous avez juste `a taper la commande
   suivante pour executer OpenOffice.org:

 % openoffice.org

  Note:

   Lors de la premiere execution, quelques questions vous seront posees et un
   repertoire .openoffice.org2 sera cree dans votre repertoire utilisateur.

   Si les version pre-compilees d'OpenOffice.org ne sont pas disponibles,
   vous avez toujours la possibilite de compiler le logiciel porte.
   Cependant, vous devez garder `a l'esprit que cela demande beaucoup
   d'espace disque et un temps de compilation relativement long.

 # cd /usr/ports/editors/openoffice.org-2
 # make install clean

  Note:

   Si vous desirez compiler une version localisee, remplacez la derniere
   ligne de commande avec la suivante:

 # make LOCALIZED_LANG=votre_langage install clean

   Vous devez remplacer votre_langage avec le code ISO de langage approprie.
   Une liste des codes de langage supportes est disponible dans le fichier
   files/Makefile.localized situe dans le repertoire du logiciel porte.

   Une fois cela effectue, OpenOffice.org peut etre lance avec la commande:

 % openoffice.org

6.4. Lecteurs de document

   Certains nouveaux formats de documentation ont gagne en popularite depuis
   l'avenement d'UNIX(R); les lecteurs standard qu'ils necessitent peuvent ne
   pas etre disponibles dans le systeme de base. Nous verrons, dans cette
   section, comment installer ces lecteurs de document.

   Cette section couvre les applications suivantes:

                        Ressources   Installation `a partir du   Dependances  
   Nom de l'application necessaires   catalogue des logiciels    principales  
                                              portes            
   Acrobat Reader(R)    faibles     legere                      Compatibilite 
                                                                binaire Linux 
   gv                   faibles     legere                      Xaw3d         
   Xpdf                 faibles     legere                      FreeType      
   GQview               faibles     legere                      Gtk+ ou GNOME 

  6.4.1. Acrobat Reader(R)

   De nombreux documents sont desormais distribues sous forme de fichiers
   PDF, qui signifie "Format Portable de Document" - Portable Document
   Format. Un des lecteurs recommande est Acrobat Reader(R), sorti par Adobe
   pour Linux. Comme FreeBSD peut executer les binaires Linux, il est
   egalement disponible pour FreeBSD.

   Pour installer Acrobat Reader(R) 7, `a partir du catalogue de logiciels
   portes, faire:

 # cd /usr/ports/print/acroread7
 # make install clean

   Il n'existe pas de paquetage pour des raisons de licence.

  6.4.2. gv

   gv un lecteur de fichier PostScript(R) et PDF. Il est a l'origine base sur
   ghostview mais presente un plus bel aspect grace `a la bibliotheque Xaw3d.
   Il est rapide et son interface est simple. gv possede de nombreuses
   fonctionnalites comme l'orientation, le format du papier, l'echelle,
   l'anticrenelage. Presque toutes les operations peuvent etre effectuees
   soit `a partir du clavier soit `a la souris.

   Pour installer gv `a partir de la version pre-compilee, faites:

 # pkg_add -r gv

   Si vous ne pouvez obtenir la version pre-compilee, vous pouvez utiliser le
   catalogue des logiciels portes:

 # cd /usr/ports/print/gv
 # make install clean

  6.4.3. Xpdf

   Si vous desirez un petit lecteur de fichiers PDF, Xpdf est leger et
   efficace. Il demande tres peu de ressources et est tres stable. Il utilise
   les polices de caracteres standards de X et ne requiert pas Motif(R) ou
   tout autre ensemble d'elements graphiques pour X.

   Pour installer la version pre-compilee d'Xpdf utilisez la commande
   suivante:

 # pkg_add -r xpdf

   Si la version pre-compilee n'est pas disponible ou que vous preferiez
   utiliser le catalogue des logiciels portes, faites:

 # cd /usr/ports/graphics/xpdf
 # make install clean

   Une fois l'installation achevee, vous pouvez lancer Xpdf et utiliser le
   bouton droit de la souris pour activer le menu.

  6.4.4. GQview

   GQview est un gestionnaire d'image. Vous pouvez visualiser un fichier avec
   un simple clic, lancer un editeur externe, obtenir une pre-visualisation
   par vignettes, et bien plus. Il propose egalement un mode presentation et
   quelques possibilites d'operations sur fichiers de base. Vous pouvez gerer
   des collections d'images et trouver facilement les doublons. GQview
   supporte l'affichage plein ecran et l'internationalisation de l'interface.

   Si vous desirez installer la version pre-compilee de GQview, faites:

 # pkg_add -r gqview

   Si la version pre-compilee n'est pas disponible ou que vous preferez
   utiliser le catalogue des logiciels portes, faites:

 # cd /usr/ports/graphics/gqview
 # make install clean

6.5. Finance

   Si, pour diverses raisons, vous voudriez gerer vos finances personnelles
   sous FreeBSD, il existe quelques applications puissantes et simples
   d'emploi pretes `a etre installees. Certaines d'entre elles sont
   compatibles avec des formats de fichiers tres repandus comme ceux utilises
   par Quicken ou Excel pour stocker des documents.

   Cette section couvre les programmes suivants:

      Nom de     Ressources  Installation `a partir du catalogue  Dependances 
   l'application necessaires         des logiciels portes         principales 
   GnuCash       faibles     lourde                               GNOME       
   Gnumeric      faibles     lourde                               GNOME       
   Abacus        faibles     legere                               Tcl/Tk      
   KMyMoney      faibles     lourde                               KDE         

  6.5.1. GnuCash

   GnuCash fait partie de l'effort GNOME en vue de fournir des applications
   puissantes et conviviales pour l'utilisateur final. Avec GnuCash, vous
   pouvez suivre vos credits et debits, vos comptes bancaires, et vos
   actions. Il presente une interface intuitive tout en restant tres
   professionnel.

   GnuCash fournit un registre intelligent, un systeme hierarchique pour les
   comptes, de nombreux raccourcis clavier et des systemes
   d'autocomplementation de la frappe au clavier. Il peut diviser une simple
   transaction en plusieurs etapes plus detaillees. GnuCash peut importer et
   fusionner des fichiers QIF de Quicken. Il supporte egalement la plupart
   des formats internationaux de date et de monnaies.

   Pour installer GnuCash sur votre systeme, faites:

 # pkg_add -r gnucash

   Si la version pre-compilee n'est pas disponible, vous pouvez utiliser le
   catalogue des logiciels portes:

 # cd /usr/ports/finance/gnucash
 # make install clean

  6.5.2. Gnumeric

   Gnumeric est un tableur, faisant partie de l'environnement de travail
   GNOME. Il dispose d'un systeme automatique "devinant" le type d'entree de
   l'utilisateur en fonction du format de la cellule avec un systeme de
   remplissage automatique pour de nombreuses sequences d'utilisation. Il
   peut importer des fichiers de nombreux formats populaires comme ceux
   d'Excel, Lotus 1-2-3, ou Quattro Pro. Gnumeric supporte l'affichage de
   graphiques grace au programme de trace math/guppi. Il dispose d'un grand
   nombre de fonctions integrees et permet tous les formats de cellule
   habituels comme le format numerique, monetaire, date, temps, et bien plus.

   Pour installer Gnumeric sous forme pre-compilee, tapez:

 # pkg_add -r gnumeric

   Si la version pre-compilee n'est pas disponible, vous pouvez utiliser le
   catalogue des logiciels portes en faisant:

 # cd /usr/ports/math/gnumeric
 # make install clean

  6.5.3. Abacus

   Abacus est un tableur leger et facile d'emploi. Il incorpore de nombreuses
   fonctions utiles dans plusieurs domaines comme les statistiques, la
   finance, et les mathematiques. Il peut importer et exporter en format
   Excel. Abacus peut produire des sorties en PostScript(R).

   Pour installer Abacus `a partir de la version pre-compilee, faites:

 # pkg_add -r abacus

   Si la version pre-compilee n'est pas disponible, vous pouvez utiliser le
   catalogue des logiciels portes en faisant:

 # cd /usr/ports/deskutils/abacus
 # make install clean

  6.5.4. KMyMoney

   KMyMoney est un programme de comptabilite personnelle pour KDE. KMyMoney a
   pour objectif de fournir et d'incorporer toutes les fonctionnalites
   importantes que l'on retrouve dans les applications de comptabilite
   personnelle commerciales. Il met egalement l'accent sur la facilite
   d'utilisation et la mise en place d'une comptabilite en partie double.
   KMyMoney peut importer les fichiers au format Quicken (QIF), suivre des
   placements, gerer plusieurs monnaies et fournir une quantite de
   compte-rendus. La possibilite d'importer des fichiers au format OFX est
   egalement disponible `a l'aide d'un greffon separe.

   Pour installer KMyMoney sous forme d'un paquetage:

 # pkg_add -r kmymoney2

   Si le paquetage n'est pas disponible, vous pouvez utiliser le catalogue
   des logiciels portes:

 # cd /usr/ports/finance/kmymoney2
 # make install clean

6.6. Resume

   Alors que FreeBSD est populaire parmi les fournisseurs d'acces `a Internet
   pour ses performances et sa stabilite, il est quasiment pret pour une
   utilisation quotidienne en tant que station de travail. Avec plusieurs
   milliers d'applications disponibles sous forme pre-compilees ou dans le
   catalogue des logiciels portes, vous pouvez vous construire
   l'environnement de travail qui vous conviendra le mieux.

   Voici un bref rappel de toutes les applications abordees dans ce chapitre:

   Nom de l'application  Nom du logiciel pre-compile   Nom du logiciel porte  
   Mozilla               mozilla                      www/mozilla             
   Opera                 opera                        www/opera               
   Firefox               firefox                      www/firefox             
   KOffice               koffice-kde3                 editors/koffice-kde3    
   AbiWord               abiword                      editors/abiword         
   The GIMP              gimp                         graphics/gimp           
   OpenOffice.org        openoffice                   editors/openoffice-1.1  
   Acrobat Reader(R)     acroread                     print/acroread7         
   gv                    gv                           print/gv                
   Xpdf                  xpdf                         graphics/xpdf           
   GQview                gqview                       graphics/gqview         
   GnuCash               gnucash                      finance/gnucash         
   Gnumeric              gnumeric                     math/gnumeric           
   Abacus                abacus                       deskutils/abacus        

Chapitre 7. Multimedia

   Mise en forme par Ross Lippert.
   Table des matieres

   7.1. Synopsis

   7.2. Configurer une carte son

   7.3. Fichiers MP3

   7.4. Lecture des Videos

   7.5. Configuration des cartes TV

   7.6. Scanners

   Version franc,aise de Marc Fonvieille <blackend@FreeBSD.org>.

7.1. Synopsis

   FreeBSD supporte une grande variete de cartes son, vous permettant
   d'obtenir un son haute fidelite `a partir de votre ordinateur. Ceci inclut
   la possibilite d'enregistrer et de jouer les formats "MPEG Audio Layer 3"
   (MP3), WAV et Ogg Vorbis aussi bien que de nombreux autres formats. Le
   catalogue de logiciels portes de FreeBSD contient egalement des
   applications vous permettant d'editer vos enregistrements, rajouter des
   effets sonores, et controler des peripheriques MIDI.

   Avec un peu d'experimentation, FreeBSD pourra lire des fichiers video et
   des DVDs. Le nombre d'applications pour encoder, convertir, et lire divers
   supports video est plus limite que le nombre d'applications equivalentes
   dans le domaine du son. Par exemple au moment de l'ecriture de ces lignes,
   il n'existe pas de bonne application d'encodage dans le catalogue des
   logiciels portes de FreeBSD, qui pourra etre utilisee pour convertir d'un
   format `a un autre, comme peut le faire pour le son le programme
   audio/sox. Cependant, le paysage logiciel dans ce domaine evolue
   rapidement.

   Ce chapitre decrira les etapes necessaires pour configurer votre carte
   son. La configuration et l'installation d'X11 (Chapitre 5, Le systeme X
   Window) ont dej`a pris soin des problemes materiel de votre carte video,
   bien qu'il puisse y avoir quelques reglages `a ajuster pour obtenir une
   meilleure lecture des videos.

   Apres la lecture de ce chapitre, vous connaitrez:

     * Comment configurer votre systeme afin que votre carte son soit
       reconnue.

     * Les methodes pour tester le fonctionnement de votre carte.

     * Comment faire face aux problemes de configuration de votre carte son.

     * Comment jouer et encoder des MP3s.

     * Comment la video est supportee par X11.

     * Quelques logiciels portes qui donnent de bon resultats pour
       lire/encoder de la video.

     * Comment lire des DVDs, des fichiers .mpg et .avi.

     * Comment extraire l'information presente sur des CDs et des DVDs.

     * Comment configurer une carte TV.

     * Comment configurer un scanner.

   Avant de lire ce chapitre, vous devrez:

     * Savoir comment configurer et installer un nouveau noyau (Chapitre 8,
       Configurer le noyau de FreeBSD).

  Avertissement:

   Essayer de monter des CDs audio avec la commande mount(8) aura pour
   resultat une erreur, au moins, et une panique du noyau, au pire. Ces
   supports ont des codages specifiques qui different du systeme de fichiers
   ISO classique.

7.2. Configurer une carte son

   Contribution de Moses Moore.
   Augmentee pour FreeBSD 5.X par Marc Fonvieille.

  7.2.1. Configuration du systeme

   Avant que vous commenciez, vous devriez connaitre le modele de carte son
   que vous avez, la puce qu'elle utilise, et si c'est une carte PCI ou ISA.
   FreeBSD supporte une grande variete de cartes PCI et ISA. Consultez la
   liste des peripheriques audio supportes des notes de compatibilite
   materiel pour voir si votre carte est supportee. Ces notes indiqueront
   egalement quel pilote supporte votre carte.

   Pour utiliser votre carte son, vous devrez charger le pilote de
   peripherique approprie. Cela peut etre fait de deux fac,ons. La plus
   simple est de charger le module pour votre carte son avec kldload(8), ce
   qui peut etre soit fait `a partir de la ligne de commande:

 # kldload snd_emu10k1

   soit en ajoutant la ligne appropriee dans le fichier /boot/loader.conf
   comme cela:

 snd_emu10k1_load="YES"

   Ces exemples concernent la carte Creative SoundBlaster(R) Live!. Les
   autres modules son chargeables sont listes dans
   /boot/defaults/loader.conf. Si vous n'etes pas sur du pilote `a utiliser,
   vous pouvez tenter de charger le pilote snd_driver:

 # kldload snd_driver

   C'est un meta-pilote chargeant directement les pilotes les plus courants.
   Cela accelere la recherche du pilote adapte. Il est egalement possible de
   charger l'integralite des pilotes de cartes son en utilisant le systeme
   /boot/loader.conf.

   Si vous voulez connaitre le pilote selectionne lors du chargement du
   meta-pilote snd_driver, vous pouvez consulter le fichier /dev/sndstat `a
   cet effet, et cela `a l'aide de la commande cat /dev/sndstat.

   Une seconde methode est de compiler le support pour votre carte son en
   statique dans votre noyau. La section ci-dessous fournit les informations
   necessaires pour ajouter le support de votre materiel de cette maniere.
   Pour plus d'informations au sujet de la recompilation de votre noyau,
   veuillez consulter le Chapitre 8, Configurer le noyau de FreeBSD.

    7.2.1.1. Configurer un noyau sur mesure avec support du son

   La premiere chose `a effectuer est d'ajouter au noyau le pilote de
   peripherique audio generique sound(4); pour cela vous devrez ajouter la
   ligne suivante au fichier de configuration du noyau:

 device sound

   Ensuite, vous devez ajouter le support pour votre carte son. Par
   consequent, vous devez savoir quel pilote supporte la carte. Consultez la
   liste des peripheriques audio supportes des notes de compatibilite
   materiel pour determiner le pilote correct pour votre carte son. Par
   exemple, une carte son Creative SoundBlaster(R) Live! est supportee par le
   pilote snd_emu10k1(4). Pour ajouter le support pour cette carte, utilisez
   ce qui suit:

 device snd_emu10k1

   Assurez-vous de lire la page de manuel du pilote pour la syntaxe `a
   utiliser. La syntaxe de la configuration du noyau pour chaque pilote de
   carte son supportee peut etre egalement trouvee dans le fichier
   /usr/src/sys/conf/NOTES.

   Les cartes son ISA non-PnP pourront necessiter de fournir au noyau des
   informations sur le parametrage de la carte (IRQ, port d'E/S, etc.), comme
   c'est en general le cas pour toutes les cartes ISA non-PnP. Cela
   s'effectue par l'intermediaire du fichier /boot/device.hints. Au demarrage
   du systeme, le chargeur (loader(8)) lira ce fichier et passera les
   parametres au noyau. Par exemple, une vieille carte ISA non-PnP Creative
   SoundBlaster(R) 16 utilisera le pilote snd_sbc(4) de paire avec snd_sb16,
   on ajoutera alors la ligne suivante au fichier de configuration du noyau:

 device snd_sbc
 device snd_sb16

   avec egalement ceci dans le fichier /boot/device.hints:

 hint.sbc.0.at="isa"
 hint.sbc.0.port="0x220"
 hint.sbc.0.irq="5"
 hint.sbc.0.drq="1"
 hint.sbc.0.flags="0x15"

   Dans ce cas, la carte utilise le port d'E/S 0x220 et l'IRQ 5.

   La syntaxe utilisee dans le fichier /boot/device.hints est abordee dans la
   page de manuel du pilote sound(4) ainsi que celle du pilote specifique `a
   la carte son.

   Les parametres donnes ci-dessus sont ceux par defaut. Dans certains cas,
   vous pouvez avoir besoin de modifier l'IRQ ou tout autre parametre en
   fonction de votre carte son. Consultez la page de manuel snd_sbc(4) pour
   plus d'informations au sujet de cette carte.

  7.2.2. Tester la carte son

   Apres avoir redemarre avec le noyau modifie, ou apres avoir charge le
   module necessaire, la carte son devrait apparaitre dans le tampon des
   messages du systeme (dmesg(8)) d'un maniere proche de la suivante:

 pcm0: <Intel ICH3 (82801CA)> port 0xdc80-0xdcbf,0xd800-0xd8ff irq 5 at device 31.5 on pci0
 pcm0: [GIANT-LOCKED]
 pcm0: <Cirrus Logic CS4205 AC97 Codec>

   L'etat de la carte son peut etre controlee par l'intermediaire du fichier
   /dev/sndstat:

 # cat /dev/sndstat
 FreeBSD Audio Driver (newpcm)
 Installed devices:
 pcm0: <Intel ICH3 (82801CA)> at io 0xd800, 0xdc80 irq 5 bufsz 16384
 kld snd_ich (1p/2r/0v channels duplex default)

   Le resultat pourra etre different sur votre systeme. Si aucun peripherique
   pcm n'apparait, retournez en arriere et revoyez ce qui a ete fait
   precedemment. Controlez `a nouveau votre fichier de configuration du noyau
   et verifiez que vous avez choisi le peripherique correct. Les problemes
   courants sont listes dans la Section 7.2.2.1, << Problemes courants >>.

   Si tout va bien, vous devriez avoir maintenant une carte son qui
   fonctionne. Si la sortie audio de votre lecteur de CD-ROM ou de DVD-ROM
   est correctement reliee `a votre carte son, vous pouvez introduire un CD
   dans le lecteur et le jouer avec cdcontrol(1):

 % cdcontrol -f /dev/acd0 play 1

   Diverses applications, comme audio/workman offrent une meilleure
   interface. Vous pouvez vouloir installer une application comme
   audio/mpg123 pour ecouter des fichiers audio MP3.

   Une autre methode rapide pour tester la carte est d'envoyer des donnees au
   /dev/dsp, de la maniere suivante:

 % cat filename > /dev/dsp

   ou filename peut etre n'importe quel fichier. Cette ligne de commande
   devrait produire des sons, confirmant le bon fonctionnement de la carte
   son.

   Les niveaux du mixer de la carte son peuvent etre modifies par la commande
   mixer(8). Plus de details peuvent etre trouves dans la page de manuel
   mixer(8).

    7.2.2.1. Problemes courants

             Erreur                              Solution                     
   sb_dspwr(XX) timed out     Le port d'E/S n'est pas configure correctement. 
                              L'IRQ selectionnee est incorrecte. Verifiez que 
   bad irq XX                 l'IRQ choisie et l'IRQ de la carte son sont les 
                              memes.                                          
   xxx: gus pcm not attached, Il n'y a pas suffisamment de memoire disponible 
   out of memory              pour utiliser ce peripherique.                  
                              Verifiez avec la commande fstat | grep dsp si   
                              une autre application maintient le peripherique 
   xxx: can't open /dev/dsp!  ouvert. Souvent `a l'origine de ce type de      
                              probleme on trouve esound et le support son de  
                              KDE.                                            

  7.2.3. Utiliser des sources sonores multiples

   Contribution de Munish Chopra.

   Il est souvent interessant de pouvoir jouer simultanement du son `a partir
   de multiples sources, comme lorsque esound ou artsd ne supportent pas le
   partage du peripherique son avec certaines applications.

   FreeBSD vous permet de le faire par l'intermediaire de Canaux Sonores
   Virtuels, qui peuvent etre actives avec la fonction sysctl(8). Les canaux
   virtuels vous permettent de multiplexer la sortie de votre carte son en
   mixant le son au niveau du noyau.

   Pour configurer le nombre de canaux virtuels, il existe deux parametres de
   sysctl qui, si vous avez les privileges de l'utilisateur root, peuvent
   etre configures comme ceci:

 # sysctl hw.snd.pcm0.vchans=4
 # sysctl hw.snd.maxautovchans=4

   L'exemple ci-dessus alloue quatre canaux virtuels, ce qui est un nombre
   suffisant pour une utilisation classique. hw.snd.pcm0.vchans est le nombre
   de canaux virtuels que possede pcm0, et est configurable une fois que le
   peripherique a ete attache au systeme. hw.snd.maxautovchans est le nombre
   de canaux virtuels alloues `a un nouveau peripherique audio quand il est
   attache `a l'aide de kldload(8). Comme le module pcm peut etre charge
   independamment des pilotes de peripheriques, hw.snd.maxautovchans peut
   stocker combien de canaux virtuels seront alloues `a chaque peripherique
   attache par la suite.

  Note:

   Vous ne pouvez pas modifier le nombre de canaux virtuels pour un
   peripherique en cours d'utilisation. Quittez avant tout autre chose les
   programmes utilisant le peripherique en question, comme les lecteurs de
   fichiers sonores ou les << daemons >> audios.

   Si vous n'utilisez pas devfs(5), vous devrez faire pointer vos
   applications sur /dev/dsp0.x, ou x est 0 `a 3 si hw.snd.pcm.0.vchans est
   fixe `a 4. Sur un systeme utilisant devfs(5), ce qui precede sera
   automatiquement effectue de fac,on transparente pour le programme qui
   reclame le peripherique /dev/dsp0.

  7.2.4. Definir les valeurs par defaut du mixeur des differents canaux

   Contribution de Josef El-Rayes.

   Les valeurs par defaut du mixeur des differents canaux sont fixees en dur
   dans le code source du pilote pcm(4). Il existe plusieurs applications et
   "daemons" qui vous permettent de fixer les valeurs du mixeur qui seront
   memorisees entre chaque invocation, mais ce n'est pas une solution ideale.
   Il est possible regler les valeurs par defaut au niveau du pilote - ceci
   se fait en definissant les valeurs adequates dans le fichier
   /boot/device.hints. Par exemple:

 hint.pcm.0.vol="50"

   Cela fixera le volume du canal `a une valeur par defaut de 50; des que le
   module pcm(4) est charge.

7.3. Fichiers MP3

   Contribution de Chern Lee.

   Les fichiers MP3 (MPEG Layer 3 Audio) donnent un son proche de la qualite
   d'un CD audio, il n'y a aucune raison pour que votre station de travail
   FreeBSD ne puisse pas en profiter.

  7.3.1. Lecteurs de MP3s

   De loin, le plus populaire des lecteurs MP3 pour X11 est XMMS (X
   Multimedia System). Les themes (skins) de Winamp peuvent etre utilises
   avec XMMS des lors que l'interface est quasiment identique `a celle du
   Winamp de Nullsoft. XMMS dispose aussi d'un support natif pour modules
   externes (plug-in).

   XMMS peut etre installe `a partir du catalogue de logiciels portes
   multimedia/xmms ou de la version pre-compilee.

   L'interface d'XMMS est intuitive, avec une liste de lecture, un egaliseur
   graphique, et plus. Ceux qui sont familiers avec Winamp trouveront XMMS
   simple d'utilisation.

   Le logiciel porte audio/mpg123 est une alternative, un lecteur de MP3 en
   ligne de commande.

   mpg123 peut etre utilise en specifiant le peripherique sonore et le
   fichier MP3 sur la ligne de commande, comme montre ci-dessous:

 # mpg123 -a /dev/dsp1.0 Foobar-GreatestHits.mp3
 High Performance MPEG 1.0/2.0/2.5 Audio Player for Layer 1, 2 and 3.
 Version 0.59r (1999/Jun/15). Written and copyrights by Michael Hipp.
 Uses code from various people. See 'README' for more!
 THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN RISK!





 Playing MPEG stream from Foobar-GreastestHits.mp3 ...
 MPEG 1.0 layer III, 128 kbit/s, 44100 Hz joint-stereo

   /dev/dsp1.0 devrait etre remplace par le peripherique dsp correspondant
   sur votre systeme.

  7.3.2. Extraire les pistes de CDs Audio

   Avant d'encoder la totalite d'un CD ou une piste en MP3, les donnees audio
   doivent etre extraites et transferees sur le disque dur. Cela se fait en
   copiant les donnees brutes CDDA (CD Digital Audio) en fichiers WAV.

   L'utilitaire cdda2wav, qui fait partie de la suite sysutils/cdrtools, est
   utilise pour extraire les donnees audio de CDs et les informations
   rattachees.

   Avec le CD audio dans le lecteur, la commande suivante peut etre utilisee
   (en tant que root) pour convertir l'integralite d'un CD en fichiers WAV
   (un par piste):

 # cdda2wav -D 0,1,0 -B

   cdda2wav supportera egalement les lecteurs de CDROM ATAPI (IDE). Pour
   faire l'extraction `a partir d'un lecteur IDE, precisez le nom du
   peripherique `a la place de l'unite SCSI. Par exemple, pour extraite la
   piste 7 `a partir d'un lecteur IDE:

 # cdda2wav -D /dev/acd0 -t 7

   Le -D 0,1,0 specifie le peripherique SCSI 0,1,0, qui correspond `a ce qui
   est donne par la commande cdrecord -scanbus.

   Pour extraire des pistes individuelles, utilisez l'option -t comme ceci:

 # cdda2wav -D 0,1,0 -t 7

   Cet exemple extrait la septieme piste du CD audio. Pour extraire un
   ensemble de pistes, par exemple, de la piste 1 `a 7, precisez un
   intervalle:

 # cdda2wav -D 0,1,0 -t 1+7

   L'utilitaire dd(1) peut egalement etre utilise pour extraire des pistes
   audios `a partir de lecteurs ATAPI, consultez la Section 18.6.5,
   << Dupliquer des CDs Audio >> pour plus d'informations sur cette
   possibilite.

  7.3.3. Encoder des MP3s

   De nos jours, l'encodeur mp3 `a utiliser est lame. Lame peut etre trouve
   dans le catalogue de logiciels portes: audio/lame.

   En utilisant les fichiers WAV extraits, la commande suivante convertira le
   fichier audio01.wav en audio01.mp3:

 # lame -h -b 128 \
 --tt "La chanson XY" \
 --ta "Artiste XY" \
 --tl "Album XY" \
 --ty "2001" \
 --tc "Extrait et encode par XY" \
 --tg "Genre" \
 audio01.wav audio01.mp3

   128 kbits semble etre le taux standard actuel du debit audio utilise pour
   les MP3s. Nombreux sont ceux qui preferent des taux de haute qualite: 160
   ou 192. Plus le debit audio est eleve plus l'espace disque utilise par le
   fichier MP3 sera grand mais la qualite sera meilleure. L'option -h active
   le mode "haute qualite, mais un peu plus lent". Les options commenc,ant
   par --t indiquent des balises ID3, qui generalement contiennent les
   informations sur le morceau, devant etre integrees au fichier MP3.
   D'autres informations sur l'encodage peuvent etre trouvees en consultant
   la page de manuel de Lame.

  7.3.4. Decoder des MP3s

   Afin de pouvoir graver un CD audio `a partir de fichiers MP3, ces derniers
   doivent etre convertis dans le format WAV non compresse. XMMS et mpg123
   supportent tous les deux la sortie de fichiers MP3 en format de fichier
   non compresse.

   Ecriture sur le disque avec XMMS:

    1. Lancez XMMS.

    2. Clic-droit sur la fenetre pour faire apparaitre le menu d'XMMS.

    3. Selectionner Preference sous Options.

    4. Changez l'option "Output Plugin" pour "Disk Writer Plugin".

    5. Appuyez sur Configure.

    6. Entrez (ou choisissez browse) un repertoire ou va etre ecrit le
       fichier decompresse.

    7. Chargez le fichier MP3 dans XMMS comme `a l'accoutume, avec le volume
       `a 100% et l'egaliseur (EQ settings) desactive.

    8. Appuyez sur Play - XMMS devrait se comporter comme s'il jouait le MP3,
       mais aucun son ne sera audible. Il est en fait en train de "jouer" le
       MP3 dans un fichier.

    9. Verifiez que vous avez retabli l'option "Output Plugin" `a sa valeur
       de depart afin de pouvoir ecouter `a nouveau des MP3s.

   Ecriture sur le disque avec mpg123:

     * Lancez mpg123 -s audio01.mp3 > audio01.pcm

   XMMS cree un fichier au format WAV, tandis que mpg123 convertit le fichier
   MP3 en donnees audio PCM brutes. Ces deux formats peuvent etre utilises
   avec cdrecord pour creer des CDs audio. Vous devez utiliser des fichiers
   PCM bruts avec burncd(8). Si vous utilisez des fichiers WAV, vous noterez
   un petit parasite au debut de chaque piste, ce son est l'entete du fichier
   WAV. Vous pouvez simplement retirer l'entete d'un fichier WAV avec
   l'utilitaire SoX (il peut etre installe `a partir du logiciel porte
   audio/sox ou de la version pre-compilee):

 % sox -t wav -r 44100 -s -w -c 2 track.wav track.raw

   Lisez la Section 18.6, << Creation et utilisation de supports optiques
   (CDs) >> pour plus d'informations sur l'utilisation d'un graveur de CD
   sous FreeBSD.

7.4. Lecture des Videos

   Contribution de Ross Lippert.

   Les applications pour lire des videos sont assez recentes et se
   developpent tres rapidement. Soyez patient. Tout ne va pas fonctionner
   aussi bien que cela pu etre le cas avec le son.

   Avant que vous ne commenciez, vous devrez connaitre le modele de carte
   video dont vous disposez ainsi que le circuit integre qu'elle utilise.
   Alors qu'Xorg et XFree86(TM) supportent une large variete de cartes video,
   seul un petit nombre d'entre elles donne de bonnes performances en lecture
   de videos. Pour obtenir la liste des extensions supportees par le serveur
   X utilisant votre carte employez la commande xdpyinfo(1) durant le
   fonctionnement d'X11.

   C'est une bonne idee d'avoir un court fichier MPEG qui pourra etre utilise
   comme fichier test pour evaluer divers lecteurs et leurs options. Comme
   certains programmes de lecture de DVD chercheront un support DVD sur
   /dev/dvd par defaut, ou ont ce peripherique fixe definitivement dans leur
   code, vous pourrez trouver utile de creer des liens symboliques vers les
   peripheriques corrects:

 # ln -sf /dev/acd0 /dev/dvd
 # ln -sf /dev/acd0 /dev/rdvd

   Notez qu'en raison de la nature du systeme devfs(5), les liens crees `a la
   main comme les precedents ne seront pas conserves si vous redemarrez le
   systeme. Afin de creer automatiquement les liens symboliques des que vous
   redemarrez votre systeme, ajoutez les lignes suivantes au fichier
   /etc/devfs.conf:

 link acd0 dvd
 link acd0 rdvd

   De plus, le decodage de DVD, qui necessite de faire appel `a des fonctions
   speciales du lecteur de DVD, demande d'avoir la permission d'ecrire sur
   les peripheriques DVD.

   Pour augmenter la memoire partagee pour l'interface X11, il est recommande
   que les valeurs de certaines variables sysctl(8) soient augmentees:

 kern.ipc.shmmax=67108864
 kern.ipc.shmall=32768

  7.4.1. Determiner les capacites video

   Il y a plusieurs manieres possibles pour afficher de la video sous X11. Ce
   qui fonctionnera vraiment est enormement dependant du materiel. Chaque
   methode decrite ci-dessous donnera differents resultats en fonction du
   materiel. De plus, le rendu de la video sous X11 est un sujet recevant
   beaucoup d'attention dernierement, et avec chaque nouvelle version d'Xorg,
   ou d'XFree86(TM), il pourra y avoir des ameliorations significatives.

   Une liste des interfaces video communes:

    1. X11: sortie X11 classique utilisant de la memoire partagee.

    2. XVideo: une extension de l'interface X11 qui supporte la video sur
       n'importe quelle partie de l'ecran controle par X11.

    3. SDL: "Simple Directmedia Layer" - couche simple d'acces directe au
       media.

    4. DGA: "Direct Graphics Access" - acces direct au graphique.

    5. SVGAlib: couche graphique bas niveau pour la console.

    7.4.1.1. XVideo

   Xorg et XFree86(TM) 4.X disposent d'une extension appelee XVideo
   (egalement connue sous les termes Xvideo, Xv, ou xv) qui permet d'afficher
   directement de la video `a travers une acceleration specifique. Cette
   extension fournit une tres bonne qualite de rendu meme sur les machines
   bas de gamme.

   Pour verifier si l'extension fonctionne utilisez xvinfo:

 % xvinfo

   XVideo est supporte pour votre carte si le resultat de la commande
   ressemble `a:

 X-Video Extension version 2.2
 screen #0
   Adaptor #0: "Savage Streams Engine"
     number of ports: 1
     port base: 43
     operations supported: PutImage
     supported visuals:
       depth 16, visualID 0x22
       depth 16, visualID 0x23
     number of attributes: 5
       "XV_COLORKEY" (range 0 to 16777215)
               client settable attribute
               client gettable attribute (current value is 2110)
       "XV_BRIGHTNESS" (range -128 to 127)
               client settable attribute
               client gettable attribute (current value is 0)
       "XV_CONTRAST" (range 0 to 255)
               client settable attribute
               client gettable attribute (current value is 128)
       "XV_SATURATION" (range 0 to 255)
               client settable attribute
               client gettable attribute (current value is 128)
       "XV_HUE" (range -180 to 180)
               client settable attribute
               client gettable attribute (current value is 0)
     maximum XvImage size: 1024 x 1024
     Number of image formats: 7
       id: 0x32595559 (YUY2)
         guid: 59555932-0000-0010-8000-00aa00389b71
         bits per pixel: 16
         number of planes: 1
         type: YUV (packed)
       id: 0x32315659 (YV12)
         guid: 59563132-0000-0010-8000-00aa00389b71
         bits per pixel: 12
         number of planes: 3
         type: YUV (planar)
       id: 0x30323449 (I420)
         guid: 49343230-0000-0010-8000-00aa00389b71
         bits per pixel: 12
         number of planes: 3
         type: YUV (planar)
       id: 0x36315652 (RV16)
         guid: 52563135-0000-0000-0000-000000000000
         bits per pixel: 16
         number of planes: 1
         type: RGB (packed)
         depth: 0
         red, green, blue masks: 0x1f, 0x3e0, 0x7c00
       id: 0x35315652 (RV15)
         guid: 52563136-0000-0000-0000-000000000000
         bits per pixel: 16
         number of planes: 1
         type: RGB (packed)
         depth: 0
         red, green, blue masks: 0x1f, 0x7e0, 0xf800
       id: 0x31313259 (Y211)
         guid: 59323131-0000-0010-8000-00aa00389b71
         bits per pixel: 6
         number of planes: 3
         type: YUV (packed)
       id: 0x0
         guid: 00000000-0000-0000-0000-000000000000
         bits per pixel: 0
         number of planes: 0
         type: RGB (packed)
         depth: 1
         red, green, blue masks: 0x0, 0x0, 0x0

   Notez egalement que les formats listes (YUV2, YUV12, etc...) ne sont pas
   presents dans chaque implementation d'XVideo et leur absence pourra gener
   certains programmes.

   Si le resultat ressemble `a:

 X-Video Extension version 2.2
 screen #0
 no adaptors present

   Alors XVideo n'est probablement pas supporte pour votre carte.

   Si XVideo n'est pas supporte pour votre carte, cela signifie seulement
   qu'il sera plus difficile pour votre systeme d'affichage de repondre aux
   demandes du rendu video en termes de puissance de calcul. En fonction de
   votre carte video et de votre processeur, vous pourriez encore obtenir de
   bons resultats. Vous devriez probablement vous documenter sur les methodes
   pour ameliorer les performances en lisant la Section 7.4.3, << Lectures
   supplementaires >>.

    7.4.1.2. "Simple Directmedia Layer" - couche simple d'acces directe au media

   La couche simple d'acces directe au media, SDL, a ete prevue pour etre une
   couche de portage entre Microsoft(R) Windows(R), BeOS, et UNIX(R),
   permettant `a des applications "cross-platform" qui font un usage efficace
   du son et du graphique d'etre developpees. La couche SDL fournit une
   abstraction de bas niveau vers le materiel qui peut parfois etre plus
   efficace que l'interface X11.

   La bibliotheque SDL peut etre trouvee dans devel/sdl12.

    7.4.1.3. "Direct Graphics Access" - acces direct au graphique

   L'acces direct au graphique est une extension X11 qui permet `a un
   programme de bypasser le serveur X et d'acceder directement au materiel.
   Comme il repose sur une copie bas niveau de la memoire, les programmes
   l'utilisant doivent etre executes avec les privileges de l'utilisateur
   root.

   L'extension DGA et ses performances peuvent etre testees avec dga(1).
   Quand dga est execute, il changera les couleurs de l'affichage `a chaque
   appui sur une touche. Pour quitter, utilisez la touche q.

  7.4.2. Logiciels portes et pre-compiles relatifs `a la video

   Cette section traite des logiciels disponibles dans le catalogue des
   logiciels portes de FreeBSD qui peuvent etre utilises pour lire de la
   video. Les applications videos sont un domaine de developpement tres
   actif, et les capacites de diverses applications seront sujettes `a des
   divergences avec la description donnee ici.

   Premierement, il est important de savoir que plusieurs des applications
   videos fonctionnant sous FreeBSD ont ete developpees comme des
   applications pour Linux. Plusieurs de ces applications sont encore
   considerees comme etant de qualite beta. Parmi les problemes que l'on peut
   rencontrer avec les applications videos sous FreeBSD, nous trouvons:

    1. Une application ne peut pas lire un fichier produit par une autre
       application.

    2. Une application ne peut pas lire un fichier quelle a produit.

    3. La meme application sur deux machines differentes, recompilee sur
       chaque machine pour la machine elle-meme, jouera le fichier
       differemment.

    4. Un filtre apparemment insignifiant comme un changement d'echelle de
       l'image donne de tres mauvais resultats en raison d'une routine de
       changement d'echelle boguee.

    5. Une application qui plante regulierement.

    6. La documentation n'est pas installee avec le logiciel porte et peut
       etre trouvee sur Internet ou dans le repertoire work du logiciel
       porte.

   Parmin ces applications, nombreuses sont celles qui peuvent presenter des
   "Linuxismes". Aussi, il y peut y avoir des problemes resultants de la
   fac,on dont certaines bibliotheques standards sont implementees dans les
   distributions Linux, ou certaines caracteristiques du noyau Linux qui ont
   ete employees par les auteurs des applications. Ces problemes ne sont pas
   toujours remarques et contournes par les responsables du portage du
   logiciel ce qui peut mener vers quelques ennuis comme ceux-ci:

    1. L'utilisation de /proc/cpuinfo pour detecter les caracteristiques du
       processeur.

    2. Une mauvaise utilisation des "threads" qui provoque le blocage de
       programme au lieu de se terminer completement.

    3. Des logiciels habituellement utilises en conjonction avec
       l'application ne sont pas encore dans le catalogue des logiciels
       portes.

   Jusqu'ici, les developpeurs de ces applications ont ete cooperatifs avec
   les responsables des logiciels portes pour minimiser les modifications
   necessaires au portage.

    7.4.2.1. MPlayer

   MPlayer est une application pour lire des videos recemment et rapidement
   developpee. Les objectifs de l'equipe de MPlayer sont la rapidite et la
   flexibilite sur Linux et autre UNIX(R). Le projet fut demarre quand le
   fondateur de l'equipe en eu assez des mauvaises performances en lecture
   des autres lecteurs disponibles. Certains diront que l'interface graphique
   a ete sacrifiee pour une conception rationalisee. Cependant, une fois que
   vous avez les options en ligne de commande et les combinaisons de touches
   en main, cela fonctionne tres bien.

      7.4.2.1.1. Compiler MPlayer

   MPlayer reside dans multimedia/mplayer. MPlayer effectue un certain nombre
   de controle du materiel durant le processus de compilation, il en resulte
   un binaire qui ne sera pas portable d'un systeme `a l'autre. Ainsi il est
   important d'utiliser le logiciel porte et de ne pas utiliser un logiciel
   pre-compile. En plus, un certain nombre d'options peuvent etre specifiees
   dans la ligne de commande make, comme decrit dans le fichier Makefile et
   au depart de la compilation:

 # cd /usr/ports/multimedia/mplayer
 # make
 N - O - T - E

 Take a careful look into the Makefile in order
 to learn how to tune mplayer towards you personal preferences!
 For example,
 make WITH_GTK1
 builds MPlayer with GTK1-GUI support.
 If you want to use the GUI, you can either install
 /usr/ports/multimedia/mplayer-skins
 or download official skin collections from
 http://www.mplayerhq.hu/homepage/dload.html

   Les options par defaut du logiciel porte devraient etre suffisantes pour
   la plupart des utilisateurs. Cependant si vous avez besoin du codec XviD,
   vous devez specifier l'option WITH_XVID dans la ligne de commande. Le
   peripherique DVD par defaut peut egalement etre defini avec l'option
   WITH_DVD_DEVICE, par defaut /dev/acd0 sera utilise.

   Au moment de l'ecriture de ces lignes, le logiciel porte de MPlayer
   compilera sa documentation HTML et deux executables, mplayer et mencoder,
   qui est un outil pour re-encoder de la video.

   La documentation HTML de MPlayer est tres complete. Si le lecteur trouve
   l'information sur le materiel video et les interfaces manquante dans ce
   chapitre, la documentation de MPlayer est une alternative tres complete.
   Vous devriez certainement prendre le temps de lire la documentation de
   MPlayer, si vous etes `a la recherche d'informations sur le support video
   sous UNIX(R).

      7.4.2.1.2. Utiliser MPlayer

   Chaque utilisateur de MPlayer doit creer un sous-repertoire .mplayer dans
   son repertoire d'utilisateur. Pour creer ce sous-repertoire necessaire,
   vous pouvez taper ce qui suit:

 % cd /usr/ports/multimedia/mplayer
 % make install-user

   Les options de commande de mplayer sont donnees dans la page de manuel.
   Pour plus de details il y a la documentation HTML. Dans cette section,
   nous decrirons que quelques unes des utilisations les plus courantes.

   Pour lire `a un fichier, comme testfile.avi en utilisant une des diverses
   interfaces video utilisez l'option -vo:

 % mplayer -vo xv testfile.avi

 % mplayer -vo sdl testfile.avi

 % mplayer -vo x11 testfile.avi

 # mplayer -vo dga testfile.avi

 # mplayer -vo 'sdl:dga' testfile.avi

   Cela vaut la peine d'essayer toutes ces options, comme leur performance
   relative depend de nombreux facteurs et variera de fac,on significative
   avec le materiel.

   Pour lire un DVD, remplacez testfile.avi par dvd://N -dvd-device DEVICE ou
   N est le numero du titre `a jouer et DEVICE est le fichier special de
   peripherique correspondant au lecteur de DVD. Par exemple, pour jouer le
   titre 3 depuis /dev/dvd:

 # mplayer -vo xv dvd://3 -dvd-device /dev/dvd

  Note:

   Le peripherique DVD par defaut peut etre defini lors de la compilation du
   logiciel porte MPlayer par l'intermediaire de l'option WITH_DVD_DEVICE.
   Par defaut, ce peripherique est /dev/acd0. Plus de details peuvent etre
   trouves dans le Makefile du logiciel porte.

   Pour arreter, avancer, etc..., consultez les combinaisons de touches, qui
   sont donnees en executant mplayer -h ou lisez la page de manuel.

   D'autres options importantes pour la lecture sont: -fs -zoom qui active le
   mode plein ecran et -framedrop qui aide au niveau des performances.

   Pour que la ligne de commande `a taper ne devienne pas trop longue,
   l'utilisateur peut creer un fichier .mplayer/config et y fixer les options
   par defaut:

 vo=xv
 fs=yes
 zoom=yes

   Enfin, mplayer peut etre utilise pour extraire une piste du DVD dans un
   fichier .vob. Pour recuperer la seconde piste video d'un DVD, tapez ceci:

 # mplayer -dumpstream -dumpfile out.vob dvd://2 -dvd-device /dev/dvd

   Le fichier de sortie, out.vob, sera du MPEG et peut etre manipule par les
   autres logiciels decrits dans cette section.

      7.4.2.1.3. mencoder

   Avant d'utiliser mencoder c'est une bonne idee de vous familiariser avec
   les options donnees par la documentation HTML. Il existe une page de
   manuel, mais elle n'est pas tres utile sans la documentation en HTML. Il y
   a d'innombrables fac,ons d'ameliorer la qualite, diminuer le debit
   binaire, et modifier les formats, et certaines de ces options peuvent
   faire la difference entre de bonnes et mauvaises performances. Voici
   quelques exemples pour y arriver. Tout d'abord une simple copie:

 % mencoder input.avi -oac copy -ovc copy -o output.avi

   De mauvaises combinaisons d'options peuvent conduire `a des fichiers
   illisibles meme par mplayer. Aussi, si vous voulez juste extraire un
   fichier, restez sur l'option -dumpfile de mplayer.

   Pour convertir input.avi au format MPEG4 avec un codage audio MPEG3
   (audio/lame est necessaire):

 % mencoder input.avi -oac mp3lame -lameopts br=192 \
          -ovc lavc -lavcopts vcodec=mpeg4:vhq -o output.avi

   Ceci a produit un fichier lisible par mplayer et xine.

   input.avi peut etre remplace par dvd://1 -dvd-device /dev/dvd et execute
   en tant que root pour re-encoder directement un titre DVD. Puisque vous
   etes susceptible de ne pas etre satisfait du resultat la premiere fois, il
   est recommande d'extraire le titre vers un fichier et de travailler sur le
   fichier.

    7.4.2.2. Le lecteur xine

   Le lecteur xine est un projet de grande envergure visant non seulement `a
   etre une solution video tout-en-un, mais egalement de produire une
   bibliotheque de base reutilisable et un executable modulaire qui peut etre
   etendu grace `a des greffons. Il est fourni sous forme pre-compilee et de
   logiciel porte, multimedia/xine.

   Le lecteur xine est encore un peu brut, mais c'est clairement un bon
   debut. Dans la pratique, xine demande soit un processeur rapide avec une
   carte video rapide, soit l'extension XVideo. L'interface graphique est
   utilisable, mais peu pratique.

   Au moment de l'ecriture de ces lignes, il n'y a pas de module d'entree
   fourni avec xine qui lira les DVDs codes en CSS. Il existe des versions
   tiers qui ont des modules `a cet effet integres, mais aucune de ces
   dernieres ne se trouve dans le catalogue des logiciels portes de FreeBSD.

   Compare `a MPlayer, xine fait plus pour l'utilisateur, mais au meme
   moment, rend inaccessible `a l'utilisateur certains controles bien precis.
   Le lecteur xine se comporte le mieux sur les interfaces XVideo.

   Par defaut, le lecteur xine lancera une interface graphique. Les menus
   peuvent alors etre utilises pour ouvrir un fichier precis:

 % xine

   Alternativement, le lecteur peut etre invoque pour jouer directement un
   fichier sans l'interface graphique avec la commande:

 % xine -g -p mymovie.avi

    7.4.2.3. Les utilitaires transcode

   Le logiciel transcode n'est pas un lecteur, mais une suite d'outils pour
   re-encoder les fichiers audio et video. Avec transcode, on a la capacite
   de fusionner des fichiers videos, reparer les fichiers endommages, en
   utilisant les outils en ligne de commande avec des interfaces de flots
   stdin/stdout.

   Un grand nombre d'options peut etre precise lors de la compilation du
   logiciel porte multimedia/transcode, nous recommandons d'utiliser la ligne
   de commande suivante pour compiler transcode:

 # make WITH_OPTIMIZED_CFLAGS=yes WITH_LIBA52=yes WITH_LAME=yes WITH_OGG=yes \
 WITH_MJPEG=yes -DWITH_XVID=yes

   Le parametrage propose devrait convenir `a la plupart des utilisateurs.

   Pour illustrer les capacites de transcode, voici un exemple montrant
   comment convertir un fichier DivX en fichier MPEG-1 en standard PAL (VCD
   PAL):

 % transcode -i input.avi -V --export_prof vcd-pal -o output_vcd
 % mplex -f 1 -o output_vcd.mpg output_vcd.m1v output_vcd.mpa

   Le fichier MPEG resultant, output_vcd.mpg, peut etre directement lu avec
   MPlayer. Vous pourrez meme le graver sur un CD pour creer ainsi un Video
   CD; dans ce cas vous devrez installer et utiliser les programmes
   multimedia/vcdimager et sysutils/cdrdao.

   Il existe une page de manuel pour transcode, mais il est conseille de
   consulter egalement le wiki de transcode pour plus d'information et des
   exemples.

  7.4.3. Lectures supplementaires

   Les differents logiciels video pour FreeBSD se developpent rapidement. Il
   est fort possible que dans un futur proche plusieurs des problemes abordes
   ici seront resolus. Entre temps ceux qui veulent tirer partie des
   possibilites audio/video de FreeBSD devront se debrouiller avec des
   connaissances extraites de plusieurs FAQs et guides et utiliser
   differentes applications. Cette section existe pour fournir au lecteur des
   references sur ces documentations additionnelles.

   La documentation de MPlayer est techniquement tres instructive. Ces
   documents devraient probablement etre consultes par quiconque desirant
   obtenir un niveau eleve d'expertise sur la video et UNIX(R). La liste de
   diffusion de MPlayer est hostile `a toute personne qui n'a pas pris la
   peine de lire la documentation, aussi si vous projetez de leur envoyer des
   rapports de bogue, lisez la documentation!

   Le HOWTO de xine contient un chapitre sur l'amelioration des performances
   qui est general `a tous les lecteurs de video.

   Et enfin, il y a quelques autres applications prometteuses que le lecteur
   devrait essayer:

     * Avifile qui est egalement un logiciel porte multimedia/avifile.

     * Ogle qui est egalement un logiciel porte multimedia/ogle.

     * Xtheater

     * multimedia/dvdauthor, un logiciel libre pour la creation de DVDs.

7.5. Configuration des cartes TV

   Contibution originale de Josef El-Rayes.
   Augmentee et adaptee par Marc Fonvieille.

  7.5.1. Introduction

   Les cartes TV vous permettent de regarder sur votre ordinateur la
   television par voie hertzienne ou par cable. La plupart d'entre elles
   acceptent de la video composite par l'intermediaire de connecteurs RCA ou
   S-video et certaines de ces cartes disposent d'un tuner radio FM.

   FreeBSD founit le support pour les cartes TV PCI utilisant un circuit de
   capture video Brooktree Bt848/849/878/879 ou Conexant CN-878/Fusion 878a
   `a l'aide du pilote bktr(4). Vous devez egalement vous assurer que la
   carte dispose d'un tuner supporte, consultez la page de manuel bktr(4)
   pour une liste des tuners supportes.

  7.5.2. Ajout du pilote de peripherique

   Pour utiliser votre carte, vous devrez charger le pilote bktr(4), cela
   peut etre effectue en ajoutant la ligne suivante au fichier
   /boot/loader.conf:

 bktr_load="YES"

   Alternativement, vous pouvez compiler en statique dans le noyau le support
   pour la carte TV, dans ce cas ajouter les lignes suivantes dans votre
   fichier de configuration du noyau:

 device   bktr
 device  iicbus
 device  iicbb
 device  smbus

   Ces pilotes de peripheriques supplementaires sont necessaires etant donne
   que les composants de la carte sont interconnectes via un bus I2C.
   Compilez et installez, ensuite, un nouveau noyau.

   Une fois que le support a ete ajoute au systeme, vous devez redemarrer
   votre machine. Durant le processus de demarrage, votre carte TV devrait
   apparaitre de cette maniere:

 bktr0: <BrookTree 848A> mem 0xd7000000-0xd7000fff irq 10 at device 10.0 on pci0
 iicbb0: <I2C bit-banging driver> on bti2c0
 iicbus0: <Philips I2C bus> on iicbb0 master-only
 iicbus1: <Philips I2C bus> on iicbb0 master-only
 smbus0: <System Management Bus> on bti2c0
 bktr0: Pinnacle/Miro TV, Philips SECAM tuner.

   Bien evidemment ces messages peuvent varier en fonction de votre materiel.
   Cependant assurez-vous que le tuner est correctement detecte; il est
   possible de forcer certains des parametres detecte `a l'aide du systeme
   sysctl(8) et d'options de configuration du noyau. Par exemple, si vous
   desirez forcer le tuner pour un tuner Philips SECAM, vous devrez ajouter
   la ligne suivante au fichier de configuration du noyau:

 options OVERRIDE_TUNER=6

   ou vous pouvez directement utiliser sysctl(8):

 # sysctl hw.bt848.tuner=6

   Consultez la page de manuel bktr(4) et le fichier /usr/src/sys/conf/NOTES
   pour plus de details sur les options disponibles.

  7.5.3. Applications utiles

   Pour utiliser votre carte TV, vous devrez installer une des applications
   suivantes:

     * multimedia/fxtv qui permet de regarder la television et d'enregistrer
       des images, du son et de la video.

     * multimedia/xawtv est egalement une application pour regarder la
       television avec les memes fonctionnalites que fxtv.

     * misc/alevt decode et affiche les informations Videotexte/Teletexte.

     * audio/xmradio, un programme pour utiliser le tuner FM fourni avec
       certaines cartes TV.

     * audio/wmtune, une application integrable dans votre environnement de
       travail pour gerer les tuners radio.

   Plus d'applications sont disponibles dans le catalogue des logiciels
   portes de FreeBSD.

  7.5.4. En cas de probleme

   Si vous rencontrez un quelconque probleme avec votre carte TV, vous
   devriez controler tout d'abord que le circuit de capture video et le tuner
   sont vraiment supportes par le pilote bktr(4) et si vous avez utilise les
   bonnes options de configuration. Pour plus de support et pour les diverses
   questions que vous pouvez vous poser `a propos de votre carte TV, vous
   pouvez contacter et utiliser les archives de la liste de diffusion
   freebsd-multimedia.

7.6. Scanners

   Ecrit par Marc Fonvieille.

  7.6.1. Introduction

   Sous FreeBSD, l'acces aux scanners est possible grace `a l'API SANE
   (Scanner Access Now Easy) disponible dans le catalogue des logiciels
   portes. SANE utilisera egalement certains pilotes de peripheriques FreeBSD
   pour acceder `a la partie materielle du scanner.

   FreeBSD supporte les scanners SCSI et USB. Assurez-vous que votre scanner
   est supporte par SANE avant d'effectuer une quelconque configuration. SANE
   dispose d'une liste des peripheriques supportes qui peut vous informer sur
   le support et son statut pour un scanner particulier. La page de manuel
   uscanner(4) donne egalement une liste des scanners USB supportes.

  7.6.2. Configuration du noyau

   Comme mentionne plus haut les interfaces SCSI et USB sont supportees. En
   fonction de l'interface de votre scanner, differents pilotes de
   peripherique sont necessaires.

    7.6.2.1. Interface USB

   Le noyau GENERIC inclut par defaut les pilotes necessaires au support des
   scanners USB. Si vous decidez d'utiliser un noyau personnalise,
   assurez-vous que les lignes suivantes sont presentes dans votre fichier de
   configuration du noyau:

 device usb
 device uhci
 device ohci
 device uscanner

   En fonction du controleur USB present sur votre carte mere, vous n'avez
   besoin que d'une des deux lignes device uhci et device ohci, cependant
   avoir ces deux lignes simultanement dans la configuration du noyau est
   sans risque.

   Si vous ne desirez pas recompiler votre noyau et que votre noyau n'est pas
   le GENERIC, vous pouvez directement charger le module du pilote
   uscanner(4) `a l'aide de la commande kldload(8):

 # kldload uscanner

   Pour charger ce module `a chaque demarrage du systeme, ajoutez la ligne
   suivante au fichier /boot/loader.conf:

 uscanner_load="YES"

   Apres avoir redemarre avec le bon noyau, ou apres avoir charge le module
   necessaire, branchez votre scanner USB. Une ligne montrant la detection de
   votre scanner devrait apparaitre dans le tampon des messages du systeme
   (dmesg(8)):

 uscanner0: EPSON EPSON Scanner, rev 1.10/3.02, addr 2

   Ceci nous indique que notre scanner utilise le fichier special de
   peripherique /dev/uscanner0.

    7.6.2.2. Interface SCSI

   Si votre scanner dispose d'une interface SCSI, il est important de
   connaitre quelle carte controleur SCSI vous utiliserez. En fonction du
   controleur sur la carte, vous devrez adapter votre configuration du noyau.
   Le noyau GENERIC supporte les controleurs SCSI les plus courants.
   Assurez-vous d'avoir lu le fichier NOTES et ajoutez la ligne adequate dans
   votre fichier de configuration du noyau. En plus du pilote de votre carte
   SCSI, vous avez besoin des lignes suivantes dans votre fichier de
   configuration du noyau:

 device scbus
 device pass

   Une fois que votre noyau a ete correctement compile et installe, vous
   devriez etre en mesure de voir les peripheriques au demarrage:

 pass2 at aic0 bus 0 target 2 lun 0
 pass2: <AGFA SNAPSCAN 600 1.10> Fixed Scanner SCSI-2 device
 pass2: 3.300MB/s transfers

   Si votre scanner n'etait pas alimente au demarrage du systeme, il est
   encore possible de forcer sa detection, en en sondant le bus SCSI avec la
   commande camcontrol(8):

 # camcontrol rescan all
 Re-scan of bus 0 was successful
 Re-scan of bus 1 was successful
 Re-scan of bus 2 was successful
 Re-scan of bus 3 was successful

   Ensuite le scanner apparaitra dans la liste des peripheriques SCSI:

 # camcontrol devlist
 <IBM DDRS-34560 S97B>              at scbus0 target 5 lun 0 (pass0,da0)
 <IBM DDRS-34560 S97B>              at scbus0 target 6 lun 0 (pass1,da1)
 <AGFA SNAPSCAN 600 1.10>           at scbus1 target 2 lun 0 (pass3)
 <PHILIPS CDD3610 CD-R/RW 1.00>     at scbus2 target 0 lun 0 (pass2,cd0)

   Plus de details sur les peripheriques SCSI sont disponibles dans les pages
   de manuel scsi(4) et camcontrol(8).

  7.6.3. Configuration de SANE

   Le systeme SANE est divise en deux parties: les << backend >>s
   (graphics/sane-backends) et les << frontend >>s (graphics/sane-frontends).
   Les << backend >>s fournissent l'acces au scanner. La liste des
   peripheriques supportes par SANE indique quel << backend >> supportera
   votre scanner. Il est indispensable de determiner correctement le
   << backend >> relatif `a votre scanner si vous voulez etre en mesure
   d'utiliser votre peripherique. La partie << frontend >>s fournie
   l'interface graphique de numerisation (xscanimage).

   La premiere etape est d'installer le logiciel porte graphics/sane-backends
   ou sa version pre-compilee. Ensuite, utilisez la commande
   sane-find-scanner pour controler la detection du scanner par l'ensemble
   SANE:

 # sane-find-scanner -q
 found SCSI scanner "AGFA SNAPSCAN 600 1.10" at /dev/pass3

   Le resultat de la commande affichera le type d'interface utilisee par le
   scanner et le fichier special de peripherique utilise pour attacher le
   scanner au systeme. Le fabricant et le modele peuvent ne pas apparaitre,
   cela n'est pas important.

  Note:

   Certains scanners USB requierent le chargement prealable d'un
   << firmware >>, cela est explique dans la page de manuel du << backend >>
   utilise. Vous devriez egalement consulter les pages de manuel de
   sane-find-scanner(1) et sane(7).

   Nous devons maintenant verifier si le scanner sera identifie par un
   << frontend >> de numerisation. Par defaut, les << backend >>s SANE sont
   fournies avec un outil en ligne de commande appele scanimage(1). Cette
   commande vous permet de lister les peripheriques et d'effectuer une
   acquisition d'image `a partir de la ligne de commande. L'option -L est
   employee pour afficher les scanners presents sur le systeme:

 # scanimage -L
 device `snapscan:/dev/pass3' is a AGFA SNAPSCAN 600 flatbed scanner

   Aucun resultat, ou un message disant qu'aucun scanner n'a ete identifie
   indiquent que scanimage(1) est incapable d'identifier le scanner. Si cela
   se produit, vous devrez editer le fichier de configuration du
   << backend >> du scanner et definir le type de scanner utilise. Le
   repertoire /usr/local/etc/sane.d/ contient tous les fichiers de
   configurations des << backend >>s. Ce probleme d'identification apparait
   essentiellement avec certains scanners USB.

   Par exemple, avec le scanner USB utilise dans la Section 7.6.2.1,
   << Interface USB >>, sane-find-scanner nous donne l'information suivante:

 # sane-find-scanner -q
 found USB scanner (UNKNOWN vendor and product) at device /dev/uscanner0

   Le scanner est correctement detecte, il utilise l'interface USB et est
   attache au fichier special de peripherique /dev/uscanner0. Nous pouvons
   maintenant verifier si le scanner est correctement identifie:

 # scanimage -L

 No scanners were identified. If you were expecting something different,
 check that the scanner is plugged in, turned on and detected by the
 sane-find-scanner tool (if appropriate). Please read the documentation
 which came with this software (README, FAQ, manpages).

   Comme le scanner n'est pas identifie, nous devons editer le fichier
   /usr/local/etc/sane.d/epson.conf. Le scanner utilise etait un EPSON
   Perfection(R) 1650, nous en deduisons donc que ce scanner utilisera le
   << backend >> epson. Assurez-vous de bien lire les commentaires d'aide
   presents dans les fichiers de configuration des << backend >>s. Les
   modifications `a faire sont relativement simples: commentez toutes les
   lignes concernant une interface differente de celle utilisee par votre
   scanner (dans notre cas, nous commenterons toutes les lignes debutant par
   le mot scsi etant donne que notre scanner utilise une interface USB),
   ajoutez ensuite `a la fin du fichier une ligne indiquant l'interface et le
   fichier special de peripherique utilise. Dans ce cas, nous ajoutons la
   ligne suivante:

 usb /dev/uscanner0

   Veuillez vous assurer de bien lire les commentaires fournis dans les
   fichiers de configurations des << backend >>s ainsi que les pages de
   manuel correspondantes pour plus de details concernant la syntaxe correcte
   `a utiliser. Nous pouvons maintenant verifier si le scanner est identifie:

 # scanimage -L
 device `epson:/dev/uscanner0' is a Epson GT-8200 flatbed scanner

   Notre scanner a ete identifie. Ce n'est pas important si la marque et le
   modele ne correspondent pas au scanner. L'important est le champ
   `epson:/dev/uscanner0', qui nous donne le << backend >> et le fichier
   special de peripherique corrects.

   Une fois que la commande scanimage -L est en mesure d'identifier le
   scanner, la configuration est terminee. Le peripherique est pret `a
   effectuer sa premiere numerisation.

   Bien que scanimage(1) permette d'effectuer une numerisation `a partir de
   la ligne de commande, il est preferable d'utiliser une interface
   graphique. SANE offre une interface graphique simple mais efficace:
   xscanimage (graphics/sane-frontends).

   Xsane (graphics/xsane) est une autre interface graphique de numerisation
   assez populaire. Ce programme offre des fonctions avancees comme
   differents mode de numerisation (photocopie, fax, etc.), la correction des
   couleurs, la numerisation par lots, etc. Ces deux applications sont
   utilisables comme greffon pour GIMP.

  7.6.4. Donner l'acces au scanner aux autres utilisateurs

   Toutes les operations precedentes ont ete effectuees avec les privileges
   root. Vous pourrez, cependant, avoir besoin que d'autres utilisateurs
   puissent acceder au scanner. L'utilisateur devra avoir les permissions de
   lecture et d'ecriture sur le fichier special de peripherique
   /dev/uscanner0 dont le proprietaire est le groupe operator. L'ajout de
   l'utilisateur joe au groupe operator lui autorisera l'acces au scanner:

 # pw groupmod operator -m joe

   Pour plus de details, consultez la page de manuel de pw(8). Vous devez
   egalement fixer les permissions d'ecriture correctes (0660 or 0664) sur le
   fichier special de peripherique /dev/uscanner0, par defaut le groupe
   operator n'a qu'un acces en lecture. Cela se fait en ajoutant les lignes
   suivantes au fichier /etc/devfs.rules:

 [system=5]
 add path uscanner0 mode 660

   Ajoutez ensuite ce qui suit au fichier /etc/rc.conf et redemarrez la
   machine:

 devfs_system_ruleset="system"

   Plus d'information concernant ces lignes peut etre trouvee dans la page de
   manuel devfs(8).

  Note:

   Bien sur, pour des raisons de securite, vous devriez reflechir `a deux
   fois avant d'ajouter un utilisateur `a n'importe quel groupe, tout
   particulierement au groupe operator.

Chapitre 8. Configurer le noyau de FreeBSD

   Mis `a jour et restructure par Jim Mock.
   Contribution originale de Jake Hamby.
   Table des matieres

   8.1. Synopsis

   8.2. Pourquoi compiler un noyau sur mesure?

   8.3. Compiler et installer un noyau sur mesure

   8.4. Le fichier de configuration

   8.5. Si quelque chose se passe mal

   Version franc,aise de Marc Fonvieille <blackend@FreeBSD.org>.

8.1. Synopsis

   Le noyau est le coeur du systeme d'exploitation FreeBSD. Il est
   responsable de la gestion de la memoire, de la mise en application des
   controles de securite, du reseau, des acces disque, et bien plus. Bien que
   FreeBSD devienne de plus en plus configurable dynamiquement, il est
   toujours necessaire occasionnellement de reconfigurer et recompiler votre
   noyau.

   Apres la lecture de ce chapitre, vous saurez:

     * Pourquoi vous pourriez avoir besoin de compiler un noyau sur mesure.

     * Comment ecrire un fichier de configuration du noyau, ou modifier un
       fichier de configuration existant.

     * Comment utiliser le fichier de configuration du noyau pour creer et
       recompiler un nouveau noyau.

     * Comment installer un nouveau noyau.

     * Que faire si quelque chose se passe mal.

   Toutes les commandes listees dans les exemples de ce chapitre doivent etre
   executees en tant que root afin de fonctionner.

8.2. Pourquoi compiler un noyau sur mesure?

   Traditionnellement, FreeBSD a eu ce qui s'appelle un noyau "monolithique".
   Cela signifie que le noyau etait un gros programme, supportant une liste
   figee de peripheriques, et si vous vouliez modifier le comportement du
   noyau alors vous deviez compiler un nouveau noyau, et ensuite redemarrer
   votre ordinateur avec le nouveau noyau.

   Aujourd'hui, FreeBSD s'oriente rapidement vers un modele ou une grande
   partie des fonctions du noyau est contenue dans des modules qui peuvent
   etre dynamiquement charges et decharges si necessaire. Cela permet au
   noyau de s'adapter au nouveau materiel devenant soudainement disponible
   (comme les cartes PCMCIA dans un ordinateur portable), ou pour qu'une
   nouvelle fonctionnalite qui n'etait pas necessaire lors de la compilation
   du noyau y soit integree. On appelle cela un noyau modulaire.

   En depit de cela, il est encore necessaire d'effectuer certaines
   configurations de noyau en statique. Dans certains cas c'est parce que la
   fonctionnalite est si proche du noyau qu'elle ne peut etre rendue
   dynamiquement chargeable. Dans d'autres cas, cela peut tout simplement
   venir du fait que personne n'a encore pris le temps d'ecrire un module
   dynamiquement chargeable pour cette fonctionnalite.

   Compiler un noyau sur mesure est l'un des plus importants rites de passage
   que doit endurer tout utilisateur BSD. Cette operation, tout en prenant du
   temps, apportera de nombreuses ameliorations `a votre systeme FreeBSD. A
   la difference du noyau GENERIC, qui doit supporter une large gamme de
   materiels, un noyau sur mesure ne contient que le support pour votre
   configuration materielle. Cela a de nombreux avantages, comme:

     * Un temps de demarrage plus court. Comme le noyau ne recherchera que le
       materiel present sur votre systeme, le temps necessaire au demarrage
       de votre systeme peut diminuer de fac,on importante.

     * Une utilisation plus faible de la memoire. Un noyau sur mesure utilise
       souvent moins de memoire que le noyau GENERIC, ce qui est important
       car le noyau doit toujours resider en memoire. Pour cette raison, un
       noyau sur mesure est tout particulierement utile sur un systeme dont
       les ressources memoire sont limitees.

     * Le support de materiels supplementaires. Un noyau sur mesure vous
       permet d'integrer le support pour des peripheriques, qui ne sont pas
       presents dans le noyau GENERIC comme les cartes son.

8.3. Compiler et installer un noyau sur mesure

   Commenc,ons par passer rapidement en revue le repertoire de configuration
   du noyau. Tous les chemins d'acces mentionnes seront relatifs au
   repertoire principal /usr/src/sys, qui est egalement accessible via le
   lien symbolique /sys. Il comporte un certain nombre de sous-repertoires
   correspondants `a differentes parties du noyau, mais les plus importantes,
   en ce qui nous concerne, sont arch/conf, ou vous editerez votre fichier
   configuration personnalise, et compile, qui est l'espace de travail ou
   votre noyau sera compile. arch represente une des architectures suivante:
   i386, soit alpha, amd64, ia64, powerpc, sparc64, ou encore pc98 (une
   branche alternative de developpement de l'architecture PC, populaire au
   Japon). Tout ce qui se trouve dans un repertoire particulier `a une
   architecture est propre uniquement `a cette architecture; le reste du code
   est un code independant du type de machine et commun `a toutes les
   plates-formes sur lesquelles FreeBSD pourrait etre potentiellement porte.
   Remarquez l'organisation logique de l'arborescence des repertoires, ou
   chaque peripherique, systeme de fichiers, et option supportes a son propre
   sous-repertoire.

   Les exemples de ce chapitre supposent que vous utilisez l'architecture
   i386. Si ce n'est pas votre cas, effectuez les ajustements appropries au
   niveau des chemins d'acces pour votre architecture.

  Note:

   S'il n'y a pas de repertoire /usr/src/sys sur votre systeme, alors c'est
   que les sources du noyau n'ont pas ete installees. La maniere la plus
   facile de les installer est d'executer sysinstall en tant que root, et
   selectionner Configure, puis Distributions, src, puis base et sys. Si vous
   avez une aversion envers sysinstall et que vous disposez d'un CDROM
   "officiel" de FreeBSD, alors vous pouvez installer les sources depuis la
   ligne de commande:

 # mount /cdrom
 # mkdir -p /usr/src/sys
 # ln -s /usr/src/sys /sys
 # cat /cdrom/src/ssys.[a-d]* | tar -xzvf -
 # cat /cdrom/src/sbase.[a-d]* | tar -xzvf -

   Ensuite allez dans le repertoire arch/conf et copiez le fichier de
   configuration GENERIC dans un fichier qui portera le nom que vous voulez
   donner `a votre noyau. Par exemple:

 # cd /usr/src/sys/i386/conf
 # cp GENERIC MONNOYAU

   Par tradition, c'est un nom en majuscules, et si vous maintenez plusieurs
   machines FreeBSD avec des configurations materielles differentes, c'est
   une bonne idee de lui donner le meme nom que la machine. Nous
   l'appellerons MONNOYAU pour les besoins de cet exemple.

  Astuce:

   Conserver votre fichier de configuration du noyau directement sous
   /usr/src peut etre une mauvaise idee. Si vous avez des problemes il peut
   etre tentant de juste effacer /usr/src et recommencer `a nouveau. Apres
   avoir fait cela ne prends que quelques secondes pour vous rendre compte
   que vous venez d'effacer votre fichier de configuration du noyau
   personnalise. N'editez pas, non plus, directement le fichier GENERIC, il
   peut etre ecrase `a la prochaine mise `a jour de l'arborescence des
   sources, et vos modifications seraient perdues.

   Vous voudrez peut etre conserver votre fichier de configuration du noyau
   ailleurs et alors creer un lien symbolique vers le fichier dans le
   repertoire i386.

   Par exemple:

 # cd /usr/src/sys/i386/conf
 # mkdir /root/noyaux
 # cp GENERIC /root/noyaux/MONNOYAU
 # ln -s /root/noyaux/MONNOYAU

   Editez maintenant MONNOYAU avec votre editeur de texte prefere. Si vous
   venez tout juste de finir l'installation, le seul editeur disponible sera
   probablement vi, qui est trop complexe pour etre decrit ici, mais est bien
   explique dans de nombreux ouvrages de la bibliographie. Cependant, FreeBSD
   offre un editeur plus simple appele ee qui, si vous etes debutant, sera
   votre editeur de choix. N'hesitez pas `a modifier les commentaires
   d'entete pour y decrire votre configuration ou les modifications que vous
   avez apportes par rapport au noyau GENERIC.

   Si vous avez dej`a compile un noyau sur SunOS(TM) ou tout autre systeme
   d'exploitation BSD, l'essentiel de fichier vous sera familier. Si vous
   venez d'un systeme d'exploitation comme DOS, `a l'inverse, le fichier de
   configuration GENERIC vous paraitra inintelligible, lisez alors lentement
   et attentivement la section sur le fichier de configuration.

  Note:

   Si vous synchronisez votre arborescence des sources avec les toutes
   dernieres sources du projet FreeBSD, assurez-vous de toujours lire le
   fichier /usr/src/UPDATING avant d'effectuer une quelconque operation de
   mise `a jour. Ce fichier decrit les problemes importants ou les domaines
   demandant une attention particuliere dans le code mis `a jour.
   /usr/src/UPDATING correspond toujours `a votre version des sources de
   FreeBSD, et est donc plus `a jour que ce Manuel.

   Vous devez maintenant compiler le code source du noyau.

   Procedure 8.1. Compiler un noyau
    1. Passez dans le repertoire /usr/src.

 # cd /usr/src

    2. Compilez le noyau:

 # make buildkernel KERNCONF=MONNOYAU

    3. Installez le nouveau noyau:

 # make installkernel KERNCONF=MONNOYAU

  Note:

   Il est indispensable d'avoir l'integralite des sources du systeme FreeBSD
   pour compiler le noyau.

  Astuce:

   Par defaut, quand vous compilez un noyau personnalise, tous les modules
   seront egalement recompiles. Si vous desirez mettre `a jour un noyau plus
   rapidement ou compiler que certains modules, vous devez editer le fichier
   /etc/make.conf avant de compiler le noyau:

 MODULES_OVERRIDE = linux acpi sound/sound sound/driver/ds1 ntfs

   Cette variable definit une liste de modules `a compiler `a la place de
   l'integralite des modules.

 WITHOUT_MODULES = linux acpi sound/sound sound/driver/ds1 ntfs

   Cette variable definit une liste de modules `a exclure du processus de
   compilation. Pour d'autres variables qui peuvent etre interessantes pour
   le processus de compilation du noyau, consultez la page de manuel
   make.conf(5).

   Le nouveau noyau sera copie dans le repertoire /boot/kernel avec le nom
   /boot/kernel/kernel et l'ancien noyau sera renomme en
   /boot/kernel.old/kernel. Maintenant, arretez le systeme et redemarrez pour
   utiliser votre nouveau noyau. Si quelque chose se passe mal, il y a
   quelques instructions de depannage `a la fin de ce chapitre que vous
   pourrez trouver utiles. Assurez-vous de lire la section qui explique
   comment revenir en arriere dans le cas ou votre nouveau noyau ne demarre
   pas.

  Note:

   Les autres fichiers concernant le processus de demarrage, comme le
   chargeur (loader(8)) et la configuration du demarrage sont conserves dans
   le repertoire /boot. Les modules tiers et personnalises peuvent etre
   places dans /boot/kernel, bien que les utilisateurs doivent etre
   conscients que garder ses modules synchronises avec le noyau compile est
   tres important. Les modules qui ne sont pas destines `a fonctionner avec
   le noyau compile peuvent etre instables et ne pas donner les resultats
   escomptes.

8.4. Le fichier de configuration

   Mis `a jour pour FreeBSD 6.X par Joel Dahl.

   Le format general du fichier de configuration est assez simple. Chaque
   ligne est composee d'un mot-cle et d'un ou plusieurs arguments. Pour
   simplifier, la plupart des lignes ne contiennent qu'un seul argument. Tout
   ce qui suit le caractere # est considere comme un commentaire et ignore.
   Les sections suivantes decrivent chaque mot-cle, dans l'ordre ou ils
   apparaissent dans le fichier GENERIC. Pour une liste exhaustive des
   options et peripheriques dependants de l'architecture utilisee, consultez
   le fichier NOTES present dans le meme repertoire que le fichier GENERIC.
   Pour les options ne dependant pas de l'architecture, consultez le fichier
   /usr/src/sys/conf/NOTES.

  Note:

   Pour compiler un fichier contenant toutes les options possibles, en
   general pour effectuer des tests, executez la commande suivante en tant
   que root:

 # cd /usr/src/sys/i386/conf && make LINT

   Ce qui suit est un exemple de fichier de configuration du noyau GENERIC
   avec divers commentaires aux endroits necessaires pour un peu plus de
   clarte. Cet exemple devrait correspondre de fac,on tres proche `a votre
   copie du fichier /usr/src/sys/i386/conf/GENERIC.

 machine         i386

   C'est l'architecture de la machine. Elle doit etre alpha, amd64, i386,
   ia64, pc98, powerpc, ou encore sparc64.

 cpu          I486_CPU
 cpu          I586_CPU
 cpu          I686_CPU

   Ce qui precede definit le type de CPU present dans votre systeme. Il peut
   y avoir plusieurs occurrences de la ligne CPU (si, par exemple, vous
   n'etes pas sur de devoir utiliser I586_CPU ou I686_CPU), cependant, pour
   un noyau personnalise, il est mieux de specifier uniquement le CPU que
   vous avez. Si vous n'etes pas sur du type, vous pouvez lister le fichier
   /var/run/dmesg.boot pour visualiser les messages de demarrage.

 ident          GENERIC

   C'est l'identification du noyau. Vous devriez changer cela pour le nom,
   quel qu'il soit, que vous donnez `a votre noyau, par exemple MONNOYAU si
   vous avez suivi les instructions des exemples precedents. La valeur que
   vous donnez `a la chaine ident s'affichera au demarrage du noyau, il est
   donc utile de donner au nouveau noyau un nom different si vous voulez le
   differencier de votre noyau habituel (e.g., vous voulez compiler un noyau
   experimental).

 #To statically compile in device wiring instead of /boot/device.hints
 #hints          "GENERIC.hints"         #Default places to look for devices.

   Le fichier device.hints(5) est utilise pour configurer les parametres des
   pilotes de peripheriques. Le loader(8) recherchera le fichier
   /boot/device.hints au demarrage. En utilisant l'option hints vous pouvez
   compiler ces valeurs en statique dans votre noyau. Il n'est alors pas
   utile de creer de fichier device.hints dans /boot.

 makeoptions     DEBUG=-g          #Build kernel with gdb(1) debug symbols

   Le processus normal de compilation de FreeBSD inclut les informations de
   debogage lors de la compilation du noyau avec l'option -g, qui autorisera
   les informations de debogage quand le noyau sera passe `a gcc(1).

 options          SCHED_4BSD         # 4BSD scheduler

   L'ordonnanceur (<< scheduler >>) traditionnel et par defaut de FreeBSD.
   Conservez cette ligne.

 options          PREEMPTION         # Enable kernel thread preemption

   Permet aux processus legers presents dans le noyau d'etre devances par des
   processus de priorite plus elevee. Cela ameliore l'interactivite et permet
   aux processus d'interruption d'etre executes le plus tot possible au lieu
   d'attendre leur tour.

 options          INET          #InterNETworking

   Support reseau. Conservez-le, meme si vous n'envisagez pas de vous
   connecter `a un reseau. La plupart des programmes utilisent le reseau "en
   boucle" (i.e., etablissent des connexions reseau avec le PC lui-meme),
   cette option est donc quasiment obligatoire.

 options          INET6          #IPv6 communications protocols

   Ceci active les protocoles de communication IPv6.

 options          FFS          #Berkeley Fast Filesystem

   C'est le systeme de fichiers de base sur disque dur. Gardez ces options si
   vous demarrez depuis le disque dur.

 options          SOFTUPDATES  #Enable FFS Soft Updates support

   Cette option rajoutera le support des << Soft Updates >> dans le noyau, ce
   qui aidera l'acceleration des acces en ecriture sur les disques. Meme
   quand cette fonction est fournit par le noyau, elle doit etre activee sur
   chaque disque. Regardez le resultat de la commande mount(8) pour voir si
   les << Soft Updates >> sont activees sur les disques de votre systeme. Si
   vous ne voyez pas apparaitre l'option soft-updates alors vous devrez
   l'activer en utilisant les commandes tunefs(8) (pour les systemes de
   fichiers existant) ou newfs(8) (pour les nouveaux systemes de fichiers).

 options          UFS_ACL      #Support for access control lists

   Cette option active le support des listes de controle d'acces au systeme
   de fichiers (ACL). Elles reposent sur l'utilisation d'attributs etendus et
   d'UFS2, cette fonctionnalite est decrite dans la Section 14.12, << Listes
   de controle d'acces au systeme de fichiers >>. Les ACLs sont activees par
   defaut, et leur support ne devraient pas etre retire du noyau si elles ont
   ete precedemment utilisees sur un systeme de fichiers, etant donne que
   cela supprimera les listes de controle d'acces changeant alors la fac,on
   dont sont proteges les fichiers d'une maniere imprevisible.

 options          UFS_DIRHASH  #Improve performance on big directories

   Cette option inclut certaines fonctions pour accelerer les operations
   disque sur de gros repertoires, aux depens d'employer de la memoire
   supplementaire. Vous conserverez normalement cela pour un gros serveur, ou
   une station de travail tres active, et vous l'enleverez si vous utilisez
   FreeBSD sur un petit systeme ou la memoire prime et la vitesse d'acces
   disque est moins importante, comme pour un coupe-feu.

 options          MD_ROOT      #MD is a potential root device

   Cette option active le support pour des disques virtuels en memoire
   utilises comme peripherique racine.

 options          NFSCLIENT         # Network Filesystem Client
 options          NFSSERVER         # Network Filesystem Server
 options          NFS_ROOT          # NFS usable as /, requires NFSCLIENT

   Le systeme de fichiers reseau. A moins que vous n'envisagiez de monter des
   partitions d'un serveur de fichiers UNIX(R) par l'intermediaire d'un
   reseau TCP/IP, vous pouvez mettre en commentaire ces options.

 options          MSDOSFS      #MSDOS Filesystem

   Le systeme de fichiers MS-DOS(R). A moins que vous n'envisagiez de monter
   une partition DOS d'un disque dur au demarrage, vous pouvez sans risque
   commenter cette option. Le module sera automatiquement charge la premiere
   fois que vous monterez une partition DOS, comme decrit plus haut. Par
   ailleurs, l'excellent logiciel emulators/mtools vous permet d'acceder `a
   des disquettes DOS sans avoir besoin de les monter (et ne requiert pas non
   plus MSDOSFS).

 options          CD9660       #ISO 9660 Filesystem

   Le systeme de fichiers ISO 9660 pour les CDROMs. Commentez ces options si
   vous n'avez pas de lecteur de CDROM ou que vous ne montez
   qu'occasionnellement des CDROMs (il sera charge dynamiquement des que vous
   monterez un CDROM). Les CDROMs audios n'ont pas besoin de ce systeme de
   fichiers.

 options          PROCFS            # Process filesystem (requires PSEUDOFS)

   Le systeme de fichiers pour les processus. C'est un "pseudo-systeme" de
   fichiers monte sur /proc qui permet `a des programmes comme ps(1) de vous
   fournir plus d'informations sur les processus qui tournent sur le systeme.
   L'utilisation de PROCFS n'est pas necessaire la plupart du temps, comme la
   majeur partie des outils de debogage et de monitoring ont ete adaptes pour
   s'executer sans PROCFS: les nouvelles installations ne monteront pas par
   defaut ce systeme de fichiers.

 options          PSEUDOFS     #Pseudo-filesystem framework

   Les noyaux 6.X faisant usage du systeme PROCFS doivent egalement inclure
   le support pour PSEUDOFS.

 options          GEOM_GPT          # GUID Partition Tables.

   Cette option apporte la possibilite d'avoir un grand nombre de partitions
   sur un seul disque.

 options          COMPAT_43    #Compatible with BSD 4.3 [KEEP THIS!]

   Compatibilite avec 4.3BSD. Conservez cette option; certains programmes
   auront un comportement bizarre si vous la commentez.

 options          COMPAT_FREEBSD4     #Compatible with FreeBSD4

   Cette option est necessaires aux systemes i386(TM) et Alpha fonctionnant
   sous FreeBSD 5.X pour supporter les applications compilees sur d'anciennes
   version de FreeBSD qui utilisent d'anciennes interfaces d'appel systeme.
   Il est recommande d'utiliser cette option sur tous les systemes i386(TM)
   et Alpha susceptibles d'executer d'anciennes applications; les plateformes
   apparues sous FreeBSD 5.0, comme l'ia64 et SPARC64(R), n'ont pas besoin de
   cette option.

 options          COMPAT_FREEBSD5   # Compatible with FreeBSD5

   Cette option est necessaire sous FreeBSD 6.X et versions superieures pour
   supporter les applications compilees sous FreeBSD 5.X et qui utilisent les
   interfaces d'appel systeme FreeBSD 5.X.

 options          SCSI_DELAY=5000    #Delay (in ms) before probing SCSI

   Cette option oblige le noyau `a attendre 5 secondes avant de rechercher
   les peripheriques SCSI presents sur votre systeme. Si vous n'avez que des
   disques IDE, vous pouvez l'ignorer, sinon vous pouvez essayer de diminuer
   cette valeur, pour accelerer le demarrage du systeme. Bien sur, si vous le
   faites, et que FreeBSD a du mal `a reconnaitre vos peripheriques SCSI,
   vous devrez l'augmenter `a nouveau.

 options          KTRACE              #ktrace(1) support

   Ceci permet de tracer le processus du noyau, ce qui est utile pour le
   debogage.

 options          SYSVSHM             #SYSV-style shared memory

   Cette option implemente la memoire partagee System V. L'usage le plus
   courant qui en est fait est l'extension XSHM d'X, dont de nombreux
   logiciels gourmants en graphique tireront automatiquement parti pour
   fonctionner plus vite. Si vous utilisez X, vous utiliserez absolument
   cette option.

 options          SYSVMSG             #SYSV-style message queues

   Support des messages System V. Cette option n'augmente que de quelques
   centaines d'octets la taille du noyau.

 options          SYSVSEM             #SYSV-style semaphores

   Support des semaphores System V. D'un usage moins courant, mais n'augmente
   la taille du noyau que de quelques centaines d'octets.

  Note:

   L'option -p de la commande ipcs(1) donnera la liste des processus
   utilisant chacun de ces mecanismes System V.

 options              _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions

   Extensions temps-reel ajoutees dans la norme POSIX(R) 1993. Certaines
   applications du catalogue des logiciels portes les utilisent (comme
   StarOffice(TM)).

 options          KBD_INSTALL_CDEV  # install a CDEV entry in /dev

   Cette option concerne le clavier. Elle installe une entree CDEV dans le
   repertoire /dev.

 options          ADAPTIVE_GIANT    # Giant mutex is adaptive.

   << Giant >> est le nom d'un mecanisme d'exclusion mutuelle (un << mutex >>
   dormant) qui protege l'acces `a un ensemble important de ressources du
   noyau. Aujourd'hui c'est un goulot d'etranglement des performances
   inacceptable que l'on est en train de remplacer activement par des verrous
   qui protegent les ressources individuelles. L'option ADAPTIVE_GIANT permet
   `a Giant d'etre inclus dans l'ensemble des mutex lances de maniere
   adaptative. C'est `a dire, quand un thread desire verrouiller le mutex
   Giant, mais que ce dernier est dej`a verrouille par un thread sur un autre
   CPU, le premier thread continuera `a fonctionner et attendra la liberation
   du verrou. Normalement, le thread retournera `a l'etat dormant et attendra
   une nouvelle chance de pouvoir s'executer. Si vous n'etes pas sur, laissez
   la configuration en l'etat.

 device          apic               # I/O APIC

   Le peripherique apic active l'utilisation de l'E/S APIC pour
   l'acheminement des interruptions. Le peripherique apic peut etre utilise
   dans les noyaux UP (monoprocesseur) et SMP, mais est requis pour les
   noyaux SMP. Ajoutez options SMP pour inclure le support pour plusieurs
   processeurs.

  Note:

   Le peripherique apic n'existe que sur l'architecture i386, cette ligne de
   configuration ne doit pas etre utilisee sur d'autres architectures.

 device          eisa

   Rajoutez cela si vous avez une carte mere EISA. Cela permet
   l'auto-detection et la configuration de tous les peripheriques presents
   sur le bus EISA.

 device          pci

   Ajoutez cette option si vous avez une carte mere PCI. Cela permet
   l'auto-detection des cartes PCI et gere l'interface entre les bus PCI et
   ISA.

 # Floppy drives
 device          fdc

   C'est le controleur de lecteur de disquettes.

 # ATA and ATAPI devices
 device          ata

   Ce pilote supporte tous les peripheriques ATA et ATAPI. Vous n'avez besoin
   que d'une seule ligne device ata pour que le noyau detecte tous les
   peripheriques PCI ATA/ATAPI sur les machines modernes.

 device          atadisk                 # ATA disk drives

   Ceci est requis avec device ata pour les disques ATA.

 device          ataraid                 # ATA RAID drives

   Ceci est necessaire avec device ata pour les disques RAID ATA.

 device          atapicd                 # ATAPI CDROM drives

   Ceci est necessaire avec device ata pour le support des lecteurs de CDROM
   ATAPI.

 device          atapifd                 # ATAPI floppy drives

   Ceci est necessaire avec device ata pour le support des lecteurs de
   disquettes ATAPI.

 device          atapist                 # ATAPI tape drives

   Ceci est necessaire avec device ata pour le support des lecteurs de bande
   ATAPI.

 options         ATA_STATIC_ID           #Static device numbering

   Cela rend la numerotation des peripheriques statique, sans cela
   l'allocation des numeros de peripheriques sera dynamique.

 # SCSI Controllers
 device          ahb        # EISA AHA1742 family
 device          ahc        # AHA2940 and onboard AIC7xxx devices
 options         AHC_REG_PRETTY_PRINT    # Print register bitfields in debug
                                         # output.  Adds ~128k to driver.
 device          ahd        # AHA39320/29320 and onboard AIC79xx devices
 options         AHD_REG_PRETTY_PRINT    # Print register bitfields in debug
                                         # output.  Adds ~215k to driver.
 device          amd        # AMD 53C974 (Teckram DC-390(T))
 device          isp        # Qlogic family
 #device         ispfw      # Firmware for QLogic HBAs- normally a module
 device          mpt        # LSI-Logic MPT-Fusion
 #device         ncr        # NCR/Symbios Logic
 device          sym        # NCR/Symbios Logic (newer chipsets + those of `ncr')
 device          trm        # Tekram DC395U/UW/F DC315U adapters

 device          adv        # Advansys SCSI adapters
 device          adw        # Advansys wide SCSI adapters
 device          aha        # Adaptec 154x SCSI adapters
 device          aic        # Adaptec 15[012]x SCSI adapters, AIC-6[23]60.
 device          bt         # Buslogic/Mylex MultiMaster SCSI adapters

 device          ncv        # NCR 53C500
 device          nsp        # Workbit Ninja SCSI-3
 device          stg        # TMC 18C30/18C50

   Controleurs SCSI. Mettez en commentaires ceux que vous n'avez pas sur
   votre systeme. Si vous n'avez qu'un systeme IDE, vous pouvez supprimer
   toutes ces lignes. Les lignes *_REG_PRETTY_PRINT sont des options de
   debogage pour leur pilote respectif.

 # SCSI peripherals
 device          scbus      # SCSI bus (required for SCSI)
 device          ch         # SCSI media changers
 device          da         # Direct Access (disks)
 device          sa         # Sequential Access (tape etc)
 device          cd         # CD
 device          pass       # Passthrough device (direct SCSI access)
 device          ses        # SCSI Environmental Services (and SAF-TE)

   Peripheriques SCSI. A nouveau, mettez en commentaires tous ceux que vous
   n'avez pas, ou si vous n'avez que du materiel IDE, vous pouvez tous les
   supprimer.

  Note:

   Le pilote USB umass(4) et quelques autres pilotes utilisent le
   sous-systeme SCSI meme si ce ne sont pas de veritables peripheriques SCSI.
   Par consequent assurez-vous de ne pas retirer le support SCSI si un tel
   pilote fait partie de la configuration du noyau.

 # RAID controllers interfaced to the SCSI subsystem
 device          amr        # AMI MegaRAID
 device          arcmsr     # Areca SATA II RAID
 device          asr        # DPT SmartRAID V, VI and Adaptec SCSI RAID
 device          ciss       # Compaq Smart RAID 5*
 device          dpt        # DPT Smartcache III, IV - See NOTES for options
 device          hptmv      # Highpoint RocketRAID 182x
 device          rr232x     # Highpoint RocketRAID 232x
 device          iir        # Intel Integrated RAID
 device          ips        # IBM (Adaptec) ServeRAID
 device          mly        # Mylex AcceleRAID/eXtremeRAID
 device          twa        # 3ware 9000 series PATA/SATA RAID

 # RAID controllers
 device          aac        # Adaptec FSA RAID
 device          aacp       # SCSI passthrough for aac (requires CAM)
 device          ida        # Compaq Smart RAID
 device          mfi        # LSI MegaRAID SAS
 device          mlx        # Mylex DAC960 family
 device          pst        # Promise Supertrak SX6000
 device          twe        # 3ware ATA RAID

   Controleurs RAID supportes. Si vous n'avez aucun de ces derniers dans
   votre systeme, vous pouvez les mettre en commentaires ou les supprimer.

 # atkbdc0 controls both the keyboard and the PS/2 mouse
 device          atkbdc     # AT keyboard controller

   Le controleur du clavier (atkbdc) permet de gerer les E/S du clavier AT et
   des peripheriques de pointage PS/2. Ce controleur est necessaire au pilote
   de peripherique du clavier (atkbd) et celui des peripheriques de pointage
   PS/2 (psm).

 device          atkbd      # AT keyboard

   Le pilote de peripherique atkbd, associe au controleur atkbdc, fournit un
   acces au clavier AT 84 touches ou au clavier AT etendu qui est connecte au
   controleur de clavier de la machine.

 device          psm        # PS/2 mouse

   Utilisez ce peripherique si votre souris se branche sur le port PS/2.

 device          kbdmux        # keyboard multiplexer

   Support de base pour le multiplexage de claviers. Si vous n'avez pas
   l'intention d'utiliser sur le systeme plus d'un clavier, vous pouvez
   supprimer cette ligne sans risque.

 device          vga        # VGA video card driver

   Pilote de la carte graphique.

 device          splash     # Splash screen and screen saver support

   Ecran/banniere de demarrage. Les economiseurs d'ecran ont egalement besoin
   de ce pseudo-peripherique.

 # syscons is the default console driver, resembling an SCO console
 device          sc

   sc est le pilote par defaut pour la console, qui ressemble `a une console
   SCO. Comme la plupart des programmes en mode plein-ecran accedent `a la
   console par l'intermediaire d'une base de donnees de description des
   terminaux comme termcap, cela n'a guere d'importance que vous choisissiez
   ce pilote ou vt, le pilote compatible VT220. Quand vous ouvrez une
   session, positionnez votre variable d'environnement TERM `a scoansi si
   vous avez des problemes pour utiliser des programmes en mode plein-ecran
   avec cette console.

 # Enable this for the pcvt (VT220 compatible) console driver
 #device          vt
 #options         XSERVER          # support for X server on a vt console
 #options         FAT_CURSOR       # start with block cursor

   C'est le pilote de console compatible VT220, et, retrospectivement,
   compatible VT100/102. Il fonctionne bien sur certains ordinateurs
   portables qui sont materiellement incompatibles avec le pilote sc. Comme
   precedemment, positionnez la variable d'environnement TERM lorsque que
   vous ouvrez une session, mais cette fois-ci `a vt100 ou vt220. Ce pilote
   peut aussi s'averer utile quand vous vous connectez `a un grand nombre de
   machines differentes par le reseau sur lesquelles les entrees pour le
   peripherique sc ne sont souvent pas definies dans leurs fichiers termcap
   ou terminfo - alors que le terminal vt100 devrait etre disponible sur
   pratiquement toutes les plates-formes.

 device          agp

   Ajoutez cette option si vous avez une carte AGP dans votre systeme. Cela
   activera le support AGP, et l'AGP GART pour les cartes qui ont cette
   fonction.

 # Power management support (see NOTES for more options)
 device          apm

   "Advanced Power Management support" - gestion avancee de l'energie. Utile
   pour les ordinateurs portables, ceci est cependant desactive par defaut
   dans le noyau GENERIC sous FreeBSD 5.X et versions suivantes

 # Add suspend/resume support for the i8254.
 device           pmtimer

   Pilote du peripherique de gestion du temps pour les evenements de la
   gestion de l'energie, comme l'APM ou l'ACPI.

 # PCCARD (PCMCIA) support
 # PCMCIA and cardbus bridge support
 device          cbb               # cardbus (yenta) bridge
 device          pccard            # PC Card (16-bit) bus
 device          cardbus           # CardBus (32-bit) bus

   Support PCMCIA. Vous en avez besoin si vous utilisez un ordinateur
   portable.

 # Serial (COM) ports
 device          sio               # 8250, 16[45]50 based serial ports

   Cela represente les ports series, appeles ports COM dans le monde
   MS-DOS(R)/Windows(R).

  Note:

   Si vous avez un modem interne sur le port COM4 et un port serie COM2, vous
   devrez changer l'IRQ du modem en 2 (pour d'obscures raisons techniques,
   IRQ 2 = IRQ 9) pour y acceder avec FreeBSD. Si vous avez une carte serie
   multi-ports, consultez la page de manuel de sio(4) pour plus
   d'informations sur les bonnes valeurs `a ajouter `a votre fichier
   /boot/device.hints. Certaines cartes video (notamment celle `a base de
   circuits S3) utilisent des adresses d'E/S sous la forme 0x*2e8, et comme
   de nombreuses cartes series bon marche de decodent pas completement
   l'espace d'adresse d'E/S 16 bits, il y a aura des conflits avec ces
   cartes, rendant le port COM4 pratiquement inutilisable.

   Chaque port serie doit avoir une IRQ unique (`a moins que vous n'utilisiez
   une carte multi-ports qui autorise le partage d'interruption), donc les
   IRQs par defaut pour les ports COM3 et COM4 ne peuvent etre utilisees.

 # Parallel port
 device          ppc

   C'est l'interface parallele du bus ISA.

 device          ppbus      # Parallel port bus (required)

   Fournit le support pour le bus du port parallele.

 device          lpt        # Printer

   Support pour les imprimantes paralleles.

  Note:

   Les trois lignes precedentes sont necessaires pour permettre le support
   des imprimantes paralleles.

 device          plip       # TCP/IP over parallel

   C'est le pilote pour l'interface reseau sur port parallele.

 device          ppi        # Parallel port interface device

   Port d'E/S d'usage general ("geek port") + port d'E/S IEEE1284.

 #device         vpo        # Requires scbus and da

   Ceci est pour le lecteur Zip de Iomega. Les options scbus et da sont
   egalement requises. Les meilleures performances sont obtenues avec les
   ports configures dans le mode EPP 1.9.

 #device         puc

   Decommentez ce peripherique si vous disposez d'une carte PCI serie ou
   parallele << idiote >> qui est supportee par le pilote puc(4).

 # PCI Ethernet NICs.
 device          de         # DEC/Intel DC21x4x (<< Tulip >>)
 device          em         # Intel PRO/1000 adapter Gigabit Ethernet Card
 device          ixgb       # Intel PRO/10GbE Ethernet Card
 device          txp        # 3Com 3cR990 (<< Typhoon >>)
 device          vx         # 3Com 3c590, 3c595 (<< Vortex >>)

   Divers pilotes de cartes reseaux PCI. Mettez en commentaires ou supprimer
   les lignes de celles qui ne sont pas presentes sur votre systeme.

 # PCI Ethernet NICs that use the common MII bus controller code.
 # NOTE: Be sure to keep the 'device miibus' line in order to use these NICs!
 device          miibus     # MII bus support

   Le support du bus MII est necessaire pour certaines cartes Ethernet PCI
   10/100, `a savoir celles qui utilisent des interfaces compatibles MII ou
   implementent une gestion de l'interface operant comme le bus MII. Ajouter
   device miibus `a la configuration du noyau integre le support pour l'API
   miibus generique et tous les pilotes d'interfaces PHY, incluant un pilote
   generique pour les interfaces PHYs qui ne sont pas specifiquements gerees
   par un pilote individuel.

 device          bce        # Broadcom BCM5706/BCM5708 Gigabit Ethernet
 device          bfe        # Broadcom BCM440x 10/100 Ethernet
 device          bge        # Broadcom BCM570xx Gigabit Ethernet
 device          dc         # DEC/Intel 21143 and various workalikes
 device          fxp        # Intel EtherExpress PRO/100B (82557, 82558)
 device          lge        # Level 1 LXT1001 gigabit ethernet
 device          msk        # Marvell/SysKonnect Yukon II Gigabit Ethernet
 device          nge        # NatSemi DP83820 gigabit ethernet
 device          nve        # nVidia nForce MCP on-board Ethernet Networking
 device          pcn        # AMD Am79C97x PCI 10/100 (precedence over 'lnc')
 device          re         # RealTek 8139C+/8169/8169S/8110S
 device          rl         # RealTek 8129/8139
 device          sf         # Adaptec AIC-6915 (<< Starfire >>)
 device          sis        # Silicon Integrated Systems SiS 900/SiS 7016
 device          sk         # SysKonnect SK-984x & SK-982x gigabit Ethernet
 device          ste        # Sundance ST201 (D-Link DFE-550TX)
 device          stge       # Sundance/Tamarack TC9021 gigabit Ethernet
 device          ti         # Alteon Networks Tigon I/II gigabit Ethernet
 device          tl         # Texas Instruments ThunderLAN
 device          tx         # SMC EtherPower II (83c170 << EPIC >>)
 device          vge        # VIA VT612x gigabit ethernet
 device          vr         # VIA Rhine, Rhine II
 device          wb         # Winbond W89C840F
 device          xl         # 3Com 3c90x (<< Boomerang >>, << Cyclone >>)

   Pilotes qui utilisent le code du controleur du bus MII.

 # ISA Ethernet NICs.  pccard NICs included.
 device          cs         # Crystal Semiconductor CS89x0 NIC
 # 'device ed' requires 'device miibus'
 device          ed         # NE[12]000, SMC Ultra, 3c503, DS8390 cards
 device          ex         # Intel EtherExpress Pro/10 and Pro/10+
 device          ep         # Etherlink III based cards
 device          fe         # Fujitsu MB8696x based cards
 device          ie         # EtherExpress 8/16, 3C507, StarLAN 10 etc.
 device          lnc        # NE2100, NE32-VL Lance Ethernet cards
 device          sn         # SMC's 9000 series of Ethernet chips
 device          xe         # Xircom pccard Ethernet

 # ISA devices that use the old ISA shims
 #device         le

   Pilotes pour les cartes Ethernet ISA. Consultez le fichier
   /usr/src/sys/i386/conf/NOTES pour savoir quelles cartes sont supportees et
   par quel pilote.

 # Wireless NIC cards
 device          wlan            # 802.11 support

   Support 802.11 generique. Cette ligne est necessaire pour le reseau sans
   fil.

 device          wlan_wep        # 802.11 WEP support
 device          wlan_ccmp       # 802.11 CCMP support
 device          wlan_tkip       # 802.11 TKIP support

   Support pour le chiffrage pour les peripheriques 802.11. Ces lignes sont
   necessaires si vous avez l'intention d'utiliser le chiffrage et les
   protocoles de securite 802.11i.

 device          an         # Aironet 4500/4800 802.11 wireless NICs.
 device          ath             # Atheros pci/cardbus NIC's
 device          ath_hal         # Atheros HAL (Hardware Access Layer)
 device          ath_rate_sample # SampleRate tx rate control for ath
 device          awi        # BayStack 660 and others
 device          ral        # Ralink Technology RT2500 wireless NICs.
 device          wi         # WaveLAN/Intersil/Symbol 802.11 wireless NICs.
 #device         wl         # Older non 802.11 Wavelan wireless NIC.

   Support pour diverses cartes reseau sans fil.

 # Pseudo devices
 device   loop          # Network loopback

   C'est l'interface generique en boucle de TCP/IP. Si vous employez telnet
   ou FTP sur localhost (aussi connu en tant qu'adresse 127.0.0.1) la reponse
   vous parviendra via ce pseudo-peripherique. Ceci est obligatoire.

 device   random        # Entropy device

   Generateur de nombres aleatoire securise pour les applications de
   chiffrement.

 device   ether         # Ethernet support

   ether ne sert que si vous avez une carte Ethernet. Cela integre le code
   generique pour le protocole Ethernet.

 device   sl            # Kernel SLIP

   sl est le support pour le protocole SLIP. Il a ete presque entierement
   supplante par le protocole PPP, plus facile `a mettre en oeuvre, mieux
   adapte aux connexions par modem, et aussi plus puissant.

 device   ppp           # Kernel PPP

   C'est le support integre au noyau du protocole PPP pour les connexions par
   modem. Il y a aussi une version de PPP sous forme de programme utilisateur
   qui utilise tun et offre plus de souplesse et de possibilites comme la
   connexion `a la demande.

 device   tun           # Packet tunnel.

   Ceci est utilise par le programme PPP en mode utilisateur. Voyez la
   section PPP de ce manuel pour plus d'informations.

 device   pty           # Pseudo-ttys (telnet etc)

   C'est un "pseudo-terminal" ou un port simulant une session. Il est utilise
   par les sessions telnet et rlogin entrantes, par xterm, et d'autres
   applications comme Emacs.

 device   md            # Memory << disks >>

   Pseudo-peripherique de disque memoire.

 device   gif     # IPv6 and IPv4 tunneling

   Ceci implemente l'encapsulation du protocole IPv6 par dessus l'IPv4,
   l'IPv4 par dessus l'IPv6, l'encapsulation IPv4 par dessus l'IPv4, et IPv6
   par dessus IPv6. Le peripherique gif << s'auto-duplique >>, et creera les
   fichiers speciaux de peripherique en fonction des besoins.

 device   faith   # IPv6-to-IPv4 relaying (translation)

   Ce pseudo-peripherique capture les paquets qui lui sont envoyes et les
   detourne vers le "daemon" de translation IPv4/IPv6.

 # The `bpf' device enables the Berkeley Packet Filter.
 # Be aware of the administrative consequences of enabling this!
 # Note that 'bpf' is required for DHCP.
 device   bpf           # Berkeley packet filter

   C'est le filtre de paquets de Berkeley. Ce pseudo-peripherique permet de
   placer les interfaces en mode "promiscuous" (indiscret), pour capturer
   chaque paquet sur reseau de diffusion (e.g., un reseau Ethernet). Ces
   paquets peuvent etre enregistres sur le disque et/ou examines avec le
   programme tcpdump(1).

  Note:

   Le peripherique bpf(4) est egalement utilise par dhclient(8) pour obtenir
   une adresse IP du routeur par defaut (passerelle) et ainsi de suite. Si
   vous utilisez DHCP, conservez cette ligne non commentee.

 # USB support
 device          uhci          # UHCI PCI->USB interface
 device          ohci          # OHCI PCI->USB interface
 device          ehci          # EHCI PCI->USB interface (USB 2.0)
 device          usb           # USB Bus (required)
 #device         udbp          # USB Double Bulk Pipe devices
 device          ugen          # Generic
 device          uhid          # << Human Interface Devices >>
 device          ukbd          # Keyboard
 device          ulpt          # Printer
 device          umass         # Disks/Mass storage - Requires scbus and da
 device          ums           # Mouse
 device          ural          # Ralink Technology RT2500USB wireless NICs
 device          urio          # Diamond Rio 500 MP3 player
 device          uscanner      # Scanners
 # USB Ethernet, requires mii
 device          aue           # ADMtek USB Ethernet
 device          axe           # ASIX Electronics USB Ethernet
 device          cdce          # Generic USB over Ethernet
 device          cue           # CATC USB Ethernet
 device          kue           # Kawasaki LSI USB Ethernet
 device          rue           # RealTek RTL8150 USB Ethernet

   Support pour divers peripheriques USB.

 # FireWire support
 device          firewire      # FireWire bus code
 device          sbp           # SCSI over FireWire (Requires scbus and da)
 device          fwe           # Ethernet over FireWire (non-standard!)

   Support pour divers peripheriques Firewire.

   Pour plus d'informations et pour avoir la liste de peripheriques
   supplementaires supportes par FreeBSD, voyez le fichier
   /usr/src/sys/i386/conf/NOTES.

  8.4.1. Configurations memoire importantes (PAE)

   Les machines `a configuration memoire importante ont besoin de pouvoir
   acceder `a plus d'espace memoire utilisateur et noyau que la limite des 4
   gigaoctets de l'espace d'adresse noyau+utilisateur ("Kernel Virtual
   Address"-KVA). En raison de cette limite, Intel a ajoute le support
   d'adresses physiques sur 36 bits pour l'espace d'adresses dans les
   familles de microprocesseurs Pentium(R) Pro et suivantes.

   L'extension de l'adressage physique-,"Physical Address Extension" (PAE)
   est une caracteristique des microprocesseurs Intel(R) Pentium(R) Pro et
   suivants autorisant les configurations memoires jusqu'`a 64 gigaoctets.
   FreeBSD fournit un support pour cette carateristique via l'option de
   configuration du noyau PAE, disponible sous toutes les versions actuelles
   de FreeBSD. En raison des limitations de l'architecture memoire Intel(R),
   aucune distinction n'est faite entre la memoire au-dessus et en-dessous de
   4 gigaoctets. La memoire allouee au-dessus de 4 gigaoctets est simplement
   ajoutee `a l'ensemble de la memoire disponible.

   Pour activer le support PAE dans le noyau, ajoutez simplement la ligne
   suivante dans votre fichier de configuration du noyau:

 options         PAE

  Note:

   Le support PAE sous FreeBSD est uniquement disponible pour les processeurs
   IA-32 d'Intel(R). Il doit etre note que le support PAE sous FreeBSD n'a
   pas ete enormement teste, et devrait etre considere comme beta compare aux
   autres fonctionnalites stables de FreeBSD.

   Le support PAE sous FreeBSD a quelques limitations:

     * Un processus est incapable d'acceder `a plus de 4 gigaoctets d'espace
       memoire.

     * Les modules KLD ne peuvent etre charges dans un noyau avec PAE active,
       en raison des differences entre la structure d'un module et du noyau.

     * Les pilotes de peripheriques qui n'utilisent pas l'interface
       bus_dma(9) seront `a l'origine de corruption de donnees avec un noyau
       PAE et ne sont pas recommandes. Pour cette raison, le fichier de
       configuration du noyau avec support PAE qui est fourni avec FreeBSD
       exclut tous les pilotes connus pour ne pas fonctionner avec un noyau
       avec support PAE.

     * Certains parametres modifiables du systeme determinent l'utilisation
       des ressources memoire par la quantite de la memoire physique
       disponible. De tels parametres peuvent etre inutilement sur-alloues en
       raison de la grande quantite de memoire d'un systeme PAE. Un bon
       exemple est le "sysctl" kern.maxvnodes, qui controle le nombre maximal
       de "vnodes" alloues par le noyau. Il est recommande d'ajuster ce
       dernier et les autres parametres du meme genre `a des valeurs
       raisonnables.

     * Il pourra etre necessaire d'augmenter l'espace d'adressage virtuel du
       noyau ("kernel virtual address"-KVA) ou de reduire le montant de la
       ressource specifique du noyau qui est fortement utilisee (voir plus
       haut) afin d'eviter l'epuisement de l'espace KVA. L'option du noyau
       KVA_PAGES peut etre employee pour augmenter l'espace KVA.

   Pour des considerations de performance et de stabilite, il est recommande
   de consulter la page de manuel tuning(7). La page de manuel pae(4)
   contient des informations `a jour sur le support PAE sous FreeBSD.

8.5. Si quelque chose se passe mal

   Il y a cinq types de problemes qui peuvent survenir lors de la compilation
   d'un noyau sur mesure. Ce sont:

   La commande config echoue:

           Si la commande config(8) echoue quand vous lui passez en parametre
           la description de votre noyau, vous avez probablement fait une
           simple erreur quelque part. Heureusement config(8) affichera le
           numero de la ligne qui lui a pose probleme, vous pouvez donc
           localiser rapidement la ligne contenant l'erreur. Par exemple, si
           vous avez:

 config: line 17: syntax error

           Verifiez que la ligne est correctement ecrite, en le comparant
           avec le noyau GENERIC ou une autre reference.

   La commande make echoue:

           Si la commande make echoue, cela signale habituellement une erreur
           dans la description de votre noyau, mais qui n'est pas
           suffisamment serieuse pour que la commande config(8) la detecte. A
           nouveau, verifiez votre fichier de configuration, et si vous
           n'arrivez toujours pas `a resoudre le probleme, envoyez un
           courrier electronique `a la liste de diffusion pour les questions
           d'ordre general `a propos de FreeBSD en joignant votre fichier de
           configuration du noyau, le diagnostic devrait etre rapide.

   Le noyau ne demarre pas:

           Si votre nouveau noyau ne demarre pas, ou ne reconnait pas vos
           peripheriques, ne paniquez pas! Heureusement, FreeBSD dispose d'un
           excellent mecanisme pour recuperer si le noyau ne fonctionne pas.
           Selectionnez simplement le noyau, `a partir duquel vous desirez
           demarrer, `a l'invite du chargeur de FreeBSD. Vous pouvez y
           acceder quand le menu de demarrage apparait. Selectionner l'option
           6, << Escape to a loader prompt >>. A l'invite, tapez unload
           kernel et ensuite boot /boot/kernel.old/kernel, ou le nom de
           fichier d'un autre noyau qui pourra demarrer proprement. Quand on
           reconfigure un noyau, il est toujours bon de conserver `a portee
           de la main un noyau dont on sait qu'il fonctionne.

           Apres avoir demarre avec un noyau en etat de marche, vous pouvez
           reverifier votre fichier de configuration et essayer de recompiler
           `a nouveau votre noyau. Une ressource utile est le fichier
           /var/log/messages qui enregistre, entre autres, tous les messages
           du noyau `a chaque demarrage reussi. En outre, la commande
           dmesg(8) affichera les messages du noyau pour le dernier
           demarrage.

  Note:

           Si vous avez des difficultes `a compiler un noyau, veillez `a
           conserver un noyau GENERIC, ou un autre noyau dont vous savez
           qu'il fonctionne, sous la main, avec un nom different de sorte
           qu'il ne soit pas ecrase `a la prochaine compilation. Vous ne
           pouvez pas faire confiance au noyau kernel.old parce qu'en
           installant un nouveau noyau, kernel.old est remplace par le
           dernier noyau installe dont il n'est pas certain qu'il soit
           operationnel. Aussi, des que possible, deplacez le noyau
           operationnel vers le bon emplacement /boot/kernel ou des commandes
           comme ps(1) pourront ne pas fonctionner correctement. Pour cela,
           renommez le repertoire contenant le bon noyau:

 # mv /boot/kernel /boot/kernel.bad
 # mv /boot/kernel.good /boot/kernel

   Le noyau est operationnel, mais la commande ps ne fonctionne plus du tout:

           Si vous avez installe une version du noyau differente de celle
           avec laquelle ont ete compiles les utilitaires systeme, par
           exemple, un noyau -CURRENT sur un systeme -RELEASE, de nombreuses
           commandes d'affichage de l'etat du systeme comme ps(1) and
           vmstat(8) ne fonctionneront plus. Vous devrez recompiler et
           installer un systeme avec la meme version de l'arborescence des
           sources de celle utilisee pour votre noyau. C'est une des raisons
           pour lesquelles il n'est pas judicieux d'utiliser des versions
           differentes du noyau et du reste du systeme d'exploitation.

Chapitre 9. Imprimer

   Contribution de Sean Kelly.
   Restructure et mis `a jour par Jim Mock.
   Table des matieres

   9.1. Synopsis

   9.2. Introduction

   9.3. Configuration de base

   9.4. Configuration avancee de l'imprimante

   9.5. Using Printers ** Traduction en Cours **

   9.6. Alternatives to the Standard Spooler ** Traduction en Cours **

   9.7. Troubleshooting ** Traduction en Cours **

   Version franc,aise de Gregory Delfly <gregoryd.freebsd@free.fr>.

9.1. Synopsis

   FreeBSD peut etre utilise pour imprimer sur une grande variete
   d'imprimantes, depuis la plus ancienne des imprimantes matricielles
   jusqu'aux toutes dernieres imprimantes laser, en passant par tout ce qui
   peut exister entre les deux, et vous permet d'obtenir des impressions de
   haute qualite avec les programmes que vous executez.

   Il est egalement possible de configurer FreeBSD pour qu'il fasse office de
   serveur d'impression sur un reseau; de cette maniere FreeBSD peut recevoir
   des travaux d'impression (<< jobs >>) en provenance de differents
   ordinateurs, comprenant d'autres machines sous FreeBSD et des machines
   sous Windows(R) ou Mac OS(R). FreeBSD veillera `a ce qu'un seul travail
   d'impression ne soit imprime `a la fois, et pourra tenir des statistiques
   sur les utilisateurs et les machines lanc,ant le plus d'impressions,
   produire des pages d'<< en-tetes >> pour distinguer les impressions de
   chacun, et plus encore.

   Apres la lecture de ce chapitre, vous saurez:

     * Comment configurer le gestionnaire d'impression de FreeBSD

     * Comment installer des filtres d'impression, pour gerer des travaux
       d'impression particuliers de maniere differente, ce qui inclut la
       transformation de documents entrants en un format que vos imprimantes
       comprennent.

     * Comment inclure des en-tetes ou des pages banniere dans vos
       impressions.

     * Comment imprimer en utilisant des imprimantes connectees `a d'autres
       ordinateurs.

     * Comment imprimer en utilisant des imprimantes connectees directement
       au reseau.

     * Comment gerer des restrictions d'impression, notamment comment limiter
       la taille des travaux d'impression, et empecher certains utilisateurs
       d'imprimer.

     * Comment tenir des statistiques d'impression, et rendre compte de
       l'utilisation de l'imprimante.

     * Comment resoudre les problemes d'impression.

   Avant de lire ce chapitre, vous devriez:

     * Savoir comment configurer et installer un nouveau noyau (Chapitre 8,
       Configurer le noyau de FreeBSD).

9.2. Introduction

   Afin d'utiliser des imprimantes avec FreeBSD, vous avez la possibilite de
   les parametrer pour qu'elles utilisent le gestionnaire d'impression de
   Berkeley, egalement connu sous le nom de gestionnaire d'impression LPD, ou
   tout simplement LPD. C'est le systeme controle d'imprimante par defaut de
   FreeBSD. Ce chapitre presente LPD et vous assistera tout au long de sa
   configuration.

   Si vous connaissez dej`a LPD ou un autre systeme de gestion des
   impressions, vous pouvez directement vous rendre `a la section Parametrage
   de base.

   LPD controle tout ce qui releve des imprimantes. Il est responsable de
   plusieurs taches:

     * Il controle l'acces aux imprimantes directement connectees au systeme
       ainsi qu'`a celles connectees `a d'autres machines via le reseau.

     * Il permet aux utilisateurs de soumettre des fichiers `a imprimer; ces
       requetes sont connues sous le nom de travaux.

     * Il empeche l'acces simultane de plusieurs utilisateurs `a une meme
       imprimante, en gerant une queue pour chaque imprimante.

     * Il peut produire des pages d'en-tete (egalement connues sous le nom de
       pages bannieres ou encore cartouches) afin que les utilisateurs
       puissent facilement retrouver dans une pile d'impressions celles
       correspondant aux travaux qu'ils ont soumis.

     * Il s'occupe de parametrer les communications lorsque les imprimantes
       sont connectees via un port serie.

     * Il peut transmettre des travaux par reseau `a un gestionnaire
       d'impression LPD situe sur une autre machine.

     * Il peut appliquer des filtres speciaux afin d'assurer le formatage des
       travaux en fonction des differents langages et caracteristiques des
       imprimantes.

     * Il peut comptabiliser l'utilisation de l'imprimante.

   Vous pouvez, au travers d'un fichier de configuration (/etc/printcap) et
   en fournissant les programmes de filtres speciaux, faire executer par LPD
   tout ou partie des taches mentionnees ci-dessus sur une grande variete de
   modeles d'imprimantes.

  9.2.1. Pourquoi vous devriez utiliser le gestionnaire d'impression

   Si vous etes l'unique utilisateur de votre systeme, vous vous demandez
   sans doute pourquoi il vous faudrait vous preoccuper du gestionnaire
   d'impression, alors que vous n'avez pas besoin de controle d'acces, de
   pages d'en-tete ni de statistiques relatives `a l'utilisation de
   l'imprimante. Quand bien meme il est possible de mettre en oeuvre l'acces
   direct `a l'imprimante, vous devriez tout de meme utiliser le gestionnaire
   d'impression, parce que:

     * LPD imprime les travaux en tache de fond: vous n'etes pas oblige
       d'attendre que les donnees soient passees `a l'imprimante.

     * LPD peut commodement se charger d'appliquer des filtres `a un travail
       pour adjoindre une en-tete contenant la date et l'heure, ou convertir
       un fichier au format particulier (comme un fichier DVI TeX) en un
       format que l'imprimante comprenne. Ainsi, vous n'aurez pas `a vous
       charger de ces manipulations `a la main.

     * Beaucoup d'applications, tant libres que commerciales, fournissant une
       fonctionnalite d'impression s'attendent generalement `a traiter avec
       le gestionnaire d'impression. En le mettant en oeuvre, vous vous
       faciliterez le support des autres applications que vous pourriez
       ajouter plus tard, ou que vous avez dej`a installees.

9.3. Configuration de base

   Pour utiliser des imprimantes avec le gestionnaire d'impression, il vous
   faudra configurer `a la fois la partie materielle (c'est `a dire les
   imprimantes) et la partie logicielle (c'est `a dire LPD). Ce document
   presente deux niveaux de configuration:

     * La section Configuration simple de l'imprimante vous apprendra `a
       connecter une imprimante, `a renseigner LPD sur la fac,on dont il doit
       communiquer avec elle, et `a imprimer de simples fichiers textes.

     * La section Configuration avancee de l'imprimante vous apprendra `a
       imprimer differents formats de fichiers, des pages d'en-tete, par
       l'intermediaire d'un reseau, `a controler l'acces aux imprimantes, et
       comptabiliser leur utilisation.

  9.3.1. Configuration simple de l'imprimante

   Cette section vous apprendra `a configurer l'imprimante et LPD. Elle
   presente les bases:

     * La section Configuration materielle donne des indications sur la
       fac,on de connecter l'imprimante `a l'un des ports de votre
       ordinateur.

     * La section Configuration logicielle montre comment renseigner le
       fichier de configuration du gestionnaire d'impression LPD
       (/etc/printcap).

   Si vous mettez en oeuvre une imprimante receptionnant les donnees `a
   imprimer via un protocole reseau plutot que par les interfaces locales de
   l'ordinateur, lisez la section Imprimantes avec des interfaces utilisant
   des flux reseau.

   Bien que cette section soit intitulee << Configuration simple de
   l'imprimante >>, elle s'avere en realite plutot complexe. La partie la
   plus difficile consiste `a faire fonctionner l'imprimante avec votre
   ordinateur et LPD. Les options avancees telles les pages d'en-tete ou les
   statistiques sont relativement faciles `a mettre en oeuvre une fois que
   l'imprimante fonctionne.

    9.3.1.1. Configuration materielle

   Cette section detaille les differentes manieres de connecter une
   imprimante `a votre PC. Elle discute les types de ports et de cables, et
   de la configuration noyau dont vous pourriez avoir besoin afin que FreeBSD
   puisse communiquer avec l'imprimante.

   Si vous avez dej`a connecte votre imprimante et reussi `a imprimer sous un
   autre systeme d'exploitation, vous pouvez probablement passer `a la
   section Configuration logicielle.

      9.3.1.1.1. Les ports et les cables

   Les imprimantes pour PC vendues aujourd'hui sont en general pourvues d'une
   ou plusieurs des trois interfaces suivantes:

     * Les interfaces serie, egalement connues sous les noms RS-232 ou ports
       COM, utilisent un port serie sur votre ordinateur pour envoyer des
       donnees `a l'imprimante. Les interfaces serie sont courantes, dans
       l'industrie informatique, et les cables sont `a la fois disponibles et
       faciles `a realiser. Elles reclament parfois des cables speciaux et
       peuvent necessiter le parametrage d'options de communication assez
       complexes. La plupart des ports serie PC ont une vitesse de
       transmission maximale de 115200 bps, ce qui rend l'impression de
       travaux comportant beaucoup de graphismes malaisee.

     * Les interfaces paralleles utilisent un port parallele sur votre
       ordinateur pour envoyer des donnees `a l'imprimante. Les interfaces
       paralleles sont courantes dans l'industrie informatique et plus
       rapides que les interfaces serie RS-232. Les cables sont disponibles
       mais sont moins faciles `a fabriquer `a la main. En general, il n'y a
       aucune option de communication `a parametrer avec ces interfaces, ce
       qui rend leur configuration particulierement simple.

       Les interfaces paralleles sont parfois appelees << Centronics >>, nom
       tire du type de connecteur de l'imprimante

     * Les interfaces USB, tenant leur nom de << Universal Serial Bus >>, ou
       << Bus Serie Universel >>, s'averent plus veloces encore que les
       interfaces paralleles ou serie RS-232. Les cables sont simples et peu
       onereux. L'USB surpasse les interfaces serie RS-232 et paralleles pour
       l'impression, mais son support par les systemes UNIX(R) n'est pas
       aussi bon. Une fac,on d'eviter ce probleme est d'acheter une
       imprimante qui dispose `a la fois d'une interface USB et d'une
       interface parallele, comme beaucoup de modeles.

   En regle generale, les interfaces paralleles n'offrent qu'une
   communication unidirectionnelle (de l'ordinateur vers l'imprimante) alors
   que les interfaces serie et USB permettent un echange bidirectionnel. Les
   imprimantes et ports paralleles plus recents (EPP et ECP) peuvent
   communiquer dans les deux sens sous FreeBSD lorsque l'on a recourt `a un
   cable conforme `a la norme IEEE-1284.

   La communication bidirectionnelle avec l'imprimante en utilisant un port
   parallele se fait en general de l'une des deux manieres suivantes. La
   premiere utilise un pilote d'imprimante compile pour FreeBSD comprenant le
   langage proprietaire de l'imprimante. C'est couramment le cas des
   imprimantes jet d'encre et cela peut etre utilise pour retourner les
   niveaux d'encre et autres informations d'etat. La seconde methode est
   employee lorsque l'imprimante supporte PostScript(R).

   Les travaux PostScript(R) sont en fait des programmes envoyes `a
   l'imprimante. Ils ne generent pas necessairement de sortie papier et
   peuvent retourner leurs resultats directement `a l'ordinateur.
   PostScript(R) utilise aussi la communication bidirectionnelle pour avertir
   l'ordinateur de problemes, comme des erreurs dans le programme
   PostScript(R) ou des bourrages papier. Vos utilisateurs apprecieraient
   certainement de telles informations. De surcroit, la meilleure fac,on de
   tenir des statistiques serieusement avec une imprimante PostScript(R)
   necessite la communication bidirectionnelle: on demande `a l'imprimante
   quel est son compteur de pages (combien en a-t-elle imprimees depuis sa
   fabrication), puis on lui envoie le travail de l'utilisateur, enfin on lui
   redemande son compteur de pages. La difference entre les deux valeurs
   donne la consommation de papier que vous pouvez attribuer `a cet
   utilisateur.

      9.3.1.1.2. Les ports paralleles

   Pour raccorder une imprimante utilisant une interface parallele, branchez
   le cable Centronics sur l'imprimante et sur l'ordinateur. Les instructions
   accompagnant l'imprimante, l'ordinateur, ou les deux, devraient
   parfaitement vous renseigner.

   Souvenez-vous du port parallele que vous avez utilise sur l'ordinateur.
   Pour FreeBSD, le premier se nomme ppc0; le deuxieme, ppc1, et ainsi de
   suite. Le nom du fichier special de peripherique de l'imprimante suit les
   memes regles: /dev/lpt0 pour celle connectee sur le premier port
   parallele, etc.

      9.3.1.1.3. Les ports serie

   Pour raccorder une imprimante utilisant une interface serie, branchez le
   cable serie adequat sur l'imprimante et sur l'ordinateur. Les instructions
   accompagnant l'imprimante, l'ordinateur, ou les deux, devraient
   parfaitement vous renseigner.

   Si vous n'etes pas sur de savoir quel est le bon cable, voici ce que vous
   pouvez essayer:

     * Un cable modem relie chacune des broches du connecteur depuis l'une
       des extremites du cable directement `a la broche lui correspondant
       dans le connecteur de l'autre extremite. Ce type de cable est
       egalement connu sous le nom de cable << DTE-to-DCE >>.

     * Un cable null-modem relie certaines des broches directement, en
       intervertit d'autres (par exemple, << emission de donnees >> et
       << reception de donnees >>), et en court-circuite d'autres en interne
       sur chacun des sertissages des connecteurs. Ce type de cable est
       egalement connu sous le nom de cable << DTE-to-DTE >>.

     * Un cable serie pour imprimante, requis par certaines imprimantes peu
       conventionnelles, ressemble au cable null-modem, `a ceci pres qu'il
       envoie certains signaux `a l'autre extremite au lieu de les
       court-circuiter en interne.

   Vous devriez egalement definir les parametres de communication pour
   l'imprimante, d'ordinaire en utilisant les controles sur la face avant ou
   les commutateurs sur l'imprimante. Choisissez la valeur la plus elevee de
   bps (bits par seconde, encore appeles << vitesse de transmission >>)
   autorisee conjointement par votre ordinateur et votre imprimante.
   Choisissez 7 ou 8 bits de donnees; aucun controle de parite ou un bit de
   parite paire ou impaire; et 1 ou 2 bits d'arret. Choisissez egalement un
   protocole de controle de flux: soit aucun, soit XON/XOFF (egalement appele
   << in-band >>, ou encore << controle logiciel >>). Retenez ces parametres
   pour la configuration logicielle, dans la section qui suit.

    9.3.1.2. Configuration logicielle

   Cette section detaille la configuration logicielle necessaire pour
   imprimer sous FreeBSD avec le gestionnaire d'impression LPD.

   Voici un aperc,u des etapes `a suivre:

    1. Configurez le noyau, si necessaire, pour utiliser le port sur lequel
       vous raccorderez votre imprimante; la section Configurer le noyau de
       FreeBSD vous donnera la marche `a suivre.

    2. Parametrez le mode de communication du port parallele si vous utilisez
       une imprimante de ce type; la section Parametrer le mode de
       communication du port parallele vous donnera les details.

    3. Configurez LPD pour qu'il communique avec l'imprimante en renseignant
       le fichier /etc/printcap. Vous apprendrez comment faire un peu plus
       loin dans ce chapitre.

      9.3.1.2.1. Configuration du noyau

   Le noyau du systeme d'exploitation est compile avec le support d'un
   certain ensemble de peripheriques. Les interfaces serie ou parallele de
   votre imprimante en font partie. De ce fait, vous pourriez avoir `a
   ajouter le support d'un port serie ou parallele supplementaire si votre
   noyau n'a pas dej`a ete configure en ce sens.

   Pour savoir si le support d'une interface serie est active dans le noyau
   que vous etes en train d'utiliser, entrez:

 # grep sioN /var/run/dmesg.boot

   Ou N represente le numero du port serie, en commenc,ant `a zero. Si vous
   obtenez un affichage similaire `a:

 sio2 at port 0x3e8-0x3ef irq 5 on isa sio2: type 16550A

   alors le port est active dans le noyau.

   Pour savoir si le noyau supporte une interface parallele, entrez:

 # grep ppcN /var/run/dmesg.boot

   Ou N represente le numero du port parallele, en commenc,ant `a zero. Si
   vous obtenez un affichage similaire `a:

 ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0
 ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode
 ppc0: FIFO with 16/16/8 bytes threshold

   alors le port est active dans le noyau.

   Il se pourrait que vous ayez `a reconfigurer le noyau afin que le systeme
   detecte et puisse utiliser un port parallele ou serie auquel vous avez
   connecte votre imprimante.

   Pour ajouter le support d'un port serie, voyez la section sur la
   configuration du noyau. Pour ajouter le support du port parallele, voyez
   cette meme section et celle qui suit.

    9.3.1.3. Parametrer le mode de communication du port parallele

   Lorsque vous utilisez l'interface parallele, vous avez le choix entre deux
   modes de communication avec l'imprimante: par interruption, ou par polling
   (interrogation reguliere ou scrutation). Le pilote d'imprimante generique
   (lpt(4)) de FreeBSD utilise le systeme ppbus(4), qui controle le chipset
   du port via le pilote ppc(4).

     * Le mode par interruption est le mode par defaut avec un noyau GENERIC.
       De cette maniere, le systeme d'exploitation utilise une ligne
       d'interruption (IRQ) pour determiner si l'imprimante est prete `a
       recevoir des donnees.

     * Le mode par scrutation enjoint au systeme d'exploitation d'interroger
       `a intervalles reguliers l'imprimante pour savoir si elle est prete `a
       recevoir d'autres donnees. Lorsqu'elle repond par l'affirmative, le
       noyau lui en envoie plus.

   Le mode par interruption est en general nettement plus rapide, mais
   consomme une precieuse ligne d'interruption (IRQ). On rapporte que
   certaines imprimantes HP recentes ne fonctionneraient pas correctement en
   mode par interruption, apparemment `a cause d'un probleme (pas encore tres
   bien identifie) d'horloge. Ces imprimantes necessitent le recours au mode
   par scrutation. Utilisez celui des deux qui fonctionne. Certaines
   imprimantes fonctionnent dans les deux modes, mais s'averent
   desagreablement lentes en mode par interruption.

   Vous pouvez choisir le mode de communication de deux manieres differentes:
   en configurant le noyau ou en utilisant le programme lptcontrol(8).

   Pour parametrer le mode de communication en configurant le noyau:

    1. Editez le fichier de configuration de votre noyau. Cherchez une entree
       ppc0. Si vous voulez configurer le deuxieme port parallele, cherchez
       plutot ppc1. Ou ppc2 pour le troisieme, et ainsi de suite.

          * Si vous souhaitez activer le mode par interruption, editez la
            ligne suivante:

 hint.ppc.0.irq="N"

            dans le fichier /boot/device.hints et remplacez N par le numero
            d'IRQ approprie. Le fichier de configuration du noyau doit
            egalement comporter le pilote ppc(4):

 device ppc

          * Si vous souhaitez activer le mode par scrutation, otez la ligne
            suivante de votre fichier /boot/device.hints:

 hint.ppc.0.irq="N"

            Dans certains cas, positionner le port en mode scrutation sous
            FreeBSD n'est pas suffisant. La plupart du temps cela vient du
            pilote acpi(4), ce dernier etant capable de sonder et d'attacher
            des peripheriques, et donc de controler le mode d'acces au port
            de l'imprimante. Vous devrez donc verifier votre configuration
            acpi(4) pour resoudre ce probleme.

    2. Sauvegardez le fichier, puis configurez, compilez, et installez le
       noyau avant de redemarrer. Consultez la section configuration du noyau
       pour plus de details.

   Pour parametrer le mode de communication avec lptcontrol(8):

    1. Entrez:

 # lptcontrol -i -d /dev/lptN

       pour selectionner le mode par interruption pour lptN.

    2. Entrez:

 # lptcontrol -p -d /dev/lptN

       pour selectionner le mode par scrutation pour lptN.

   Vous pouvez placer ces commandes dans votre fichier /etc/rc.local pour
   selectionner le mode `a chaque demarrage du systeme. Consultez
   lptcontrol(8) pour obtenir plus d'informations.

    9.3.1.4. Verifier la communication avec l'imprimante

   Avant de passer `a la configuration du gestionnaire d'impression, vous
   devriez vous assurer que le systeme d'exploitation fait parvenir avec
   succes des donnees `a l'imprimante. Il est beaucoup plus facile de
   deboguer separement la communication avec l'imprimante et la configuration
   du gestionnaire d'impression.

   Pour tester l'imprimante, nous allons lui envoyer du texte. Pour les
   imprimantes qui peuvent immediatement imprimer les caracteres qui leur
   sont envoyes, le programme lptest(1) est parfait: il genere les 96
   caracteres ASCII imprimables sur 96 lignes.

   Pour une imprimante PostScript(R) (ou basee sur un autre langage), il va
   nous falloir un test plus sophistique. Un petit programme PostScript(R),
   tel que celui qui suit, devrait suffire:

 %!PS
 100 100 moveto 300 300 lineto stroke
 310 310 moveto /Helvetica findfont 12 scalefont setfont
 (Is this thing working?) show
 showpage

   Le code PostScript(R) ci-dessus peut etre place dans un fichier et utilise
   comme indique dans les exemples qui apparaissent dans les sections
   suivantes.

  Note:

   Lorsque ce document fait reference `a un langage d'imprimante, il suppose
   un langage comme PostScript(R), et pas le PCL de Hewlett-Packard. Quoique
   PCL dispose de fonctionnalites interessantes, il est possible de melanger
   du texte simple avec des sequences d'echappement. PostScript(R) ne permet
   pas d'imprimer du texte clair, c'est le type de langage d'imprimante pour
   lequel nous devons prendre des mesures particulieres.

      9.3.1.4.1. Tester une imprimante parallele

   Cette section vous apprendra `a verifier si FreeBSD peut communiquer avec
   une imprimante connectee sur un port parallele.

   Pour tester une imprimante connectee sur un port parallele:

    1. Passez en root avec su(1).

    2. Envoyez des donnees `a l'imprimante.

          * Si l'imprimante peut sortir du texte simple, alors utilisez
            lptest(1). Entrez:

 # lptest > /dev/lptN

            Ou N est le numero du port parallele, en commenc,ant `a zero.

          * Si l'imprimante comprend le PostScript(R) ou un autre langage
            d'imprimante, alors envoyez lui un petit programme. Entrez:

 # cat > /dev/lptN

            Tapez ensuite le programme, ligne `a ligne et attentivement, car
            vous ne pouvez plus editer une ligne une fois que vous avez
            appuye sur la touche Retour Chariot ou Entree. Une fois termine,
            faites CONTROL+D, ou la combinaison correspondant `a votre fin de
            fichier.

            Une autre maniere de proceder est de placer le programme dans un
            fichier et d'entrer:

 # cat fichier > /dev/lptN

            Ou fichier designe le nom du fichier que vous desirez envoyer `a
            l'imprimante.

   Vous devriez voir quelque chose s'imprimer. Ne vous inquietez pas si
   l'apparence du texte n'est pas satisfaisante; nous remedierons `a ce genre
   de soucis plus tard.

      9.3.1.4.2. Tester une imprimante serie

   Dans cette section vous apprendrez `a verifier si FreeBSD parvient `a
   communiquer avec une imprimante connectee `a un port serie.

   Pour tester une imprimante connectee sur un port serie:

    1. Passez en root avec su(1).

    2. Editez le fichier /etc/remote. Ajoutez l'entree suivante:

 printer:dv=/dev/port:br#bps-rate:pa=parity

       Ou port represente le fichier de peripherique du port serie (ttyd0,
       ttyd1, etc.), bps-rate represente la vitesse en bits-par-seconde `a
       laquelle l'imprimante communique, et parity represente la parite
       reclamee par l'imprimante (even pour paire, odd pour impaire, none
       pour aucune, ou zero pour zero).

       Voici un exemple d'entree pour une imprimante connectee `a 19200 bps,
       sans parite, sur le troisieme port serie:

 printer:dv=/dev/ttyd2:br#19200:pa=none

    3. Connectez-vous `a l'imprimante avec tip(1). Entrez:

 # tip printer

       Si cette etape ne fonctionne pas, editez le fichier /etc/remote `a
       nouveau et essayez d'utiliser /dev/cuaaN au lieu de /dev/ttydN.

    4. Envoyez des donnees `a l'imprimante.

          * Si l'imprimante peut sortir du texte simple, alors utilisez
            lptest(1). Entrez:

 % $lptest

          * Si l'imprimante comprend le PostScript(R) ou tout autre langage
            d'imprimante, envoyez-lui un petit programme. Entrez-le ligne `a
            ligne et tres attentivement, dans la mesure ou les touches
            d'edition, comme retour-arriere, peuvent revetir une
            signification particuliere pour l'imprimante. Vous pourriez
            egalement avoir besoin d'un caractere de fin de fichier
            (<< EOF >>) particulier pour que l'imprimante sache qu'elle a
            rec,u tout le programme. Pour les imprimantes PostScript(R),
            appuyez sur CONTROL+D.

            Une autre maniere de proceder est de placer le programme dans un
            fichier et d'entrer:

 % >fichier

            Ou fichier est le nom du fichier contenant le programme. Apres
            avoir envoye le fichier avec tip(1), appuyez sur la touche de fin
            de fichier appropriee.

   Vous devriez voir quelque chose s'imprimer. Ne vous inquietez pas si
   l'apparence du texte n'est pas satisfaisante; nous remedierons `a ce genre
   de soucis plus tard.

    9.3.1.5. Mettre en place le gestionnaire d'impression: le fichier
    /etc/printcap

   A ce stade, votre imprimante doit etre branchee, votre noyau configure
   pour communiquer avec elle (si cela est necessaire); et vous avez reussi
   `a faire parvenir des donnees simples `a l'imprimante. Nous sommes
   maintenant prets `a parametrer LPD pour qu'il controle l'acces `a
   l'imprimante.

   LPD se parametre en editant le fichier /etc/printcap. Le gestionnaire
   d'impression LPD le lit `a chaque fois que le gestionnaire est solicite,
   donc les mises `a jour du fichier sont immediatement prises en compte.

   Le format du fichier printcap(5) est explicite. Utilisez votre editeur
   favori pour modifier /etc/printcap. Le format est identique aux autres
   fichiers de configuration comme /usr/share/misc/termcap et /etc/remote.
   Pour obtenir des informations completes concernant ce format, consultez
   cgetent(3).

   Le parametrage simple du gestionnaire d'impression s'effectue selon les
   etapes suivantes:

    1. Choisissez un nom (et quelques alias appropries) pour l'imprimante, et
       placez-les dans /etc/printcap; lisez la section Nommer l'imprimante
       pour plus d'informations sur le nommage.

    2. Desactivez les pages d'en-tete (elles sont activees par defaut) en
       inserant le parametre sh; lisez la section Supprimer les pages
       d'en-tete pour plus d'informations.

    3. Creez un repertoire de file d'attente, et precisez son chemin d'acces
       avec le parametre sd; lisez la section Creer le repertoire de fil
       d'attente pour obtenir plus d'informations.

    4. Selectionnez l'entree dev `a utiliser pour l'imprimante, et notez la
       dans /etc/printcap avec le parametre lp; lisez la section Identifier
       le peripherique d'imprimante pour obtenir plus d'informations. De
       plus, si l'imprimante est reliee par un port serie, precisez les
       parametres de communication avec le parametre ms#, qui est detaille
       dans la section Configurer les parametres de communication du
       gestionnaire d'impression.

    5. Installez un filtre d'entree sous forme de fichier texte simple; lisez
       la section Installer le filtre texte pour obtenir plus de details.

    6. Testez la configuration en imprimant quelque chose avec la commande
       lpr(1). Vous trouverez plus de details dans les sections Tester
       l'impression et Resolution des problemes.

  Note:

   Les imprimantes basees sur un langage d'impression, telles les imprimantes
   PostScript(R), ne peuvent imprimer du texte simple directement. La
   configuration simple esquissee ci-dessus et detaillee dans les sections
   suivantes presuppose que si vous installez ce genre d'imprimante vous
   n'imprimerez que des fichiers qu'elle peut comprendre.

   Les utilisateurs s'attendent souvent `a pouvoir imprimer du texte simple
   sur n'importe laquelle des imprimante installees sur votre systeme. Les
   applications qui s'en remettent `a LPD pour imprimer s'y attendent en
   general elles aussi. Si vous installez ce genre d'imprimante et desirez
   pouvoir imprimer `a la fois des travaux dans le langage de l'imprimante et
   des travaux en texte simple, vous etes instamment prie d'ajouter une etape
   supplementaire `a la configuration simple esquissee ci-dessus: installez
   un programme de conversion automatique texte simple vers PostScript(R) (ou
   tout autre langage d'imprimante). La section Prendre en charge des travaux
   texte sur des imprimantes PostScript(R) vous apprendra `a le faire.

      9.3.1.5.1. Nommer l'imprimante

   La premiere etape (facile) est de choisir un nom pour l'imprimante. Que
   vous choisissiez un nom fonctionnel ou fantaisiste n'a aucune importance
   puisque vous pouvez egalement fournir une serie d'alias.

   Au moins l'une des imprimantes definies dans le fichier /etc/printcap
   devrait avoir pour alias lp. C'est le nom de l'imprimante par defaut. Si
   les utilisateurs n'ont pas positionne la variable d'environnement PRINTER
   et ne specifient pas le nom d'une imprimante lorsqu'ils utilisent une
   ligne de commande relative `a LPD, lp sera l'imprimante par defaut
   utilisee.

   Par ailleurs, l'usage commun veut que le dernier alias d'une imprimante en
   soit une description complete, en incluant le fabricant et le modele.

   Une fois le nom et des alias communs choisis, placez-les dans le fichier
   /etc/printcap. Le nom de l'imprimante devrait commencer dans la colonne la
   plus `a gauche. Separez chaque alias par une barre verticale et mettez le
   caractere deux-points apres le dernier alias.

   Dans l'exemple suivant, nous commenc,ons avec le squelette d'un
   /etc/printcap qui definit deux imprimantes (une Diablo 630 et une
   imprimante PostScript(R) laser Panasonic KX-P4455):

 #
 #  /etc/printcap for host rose
 #
 rattan|line|diablo|lp|Diablo 630 Line Printer:

 bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:

   Dans cet exemple, la premiere imprimante se nomme rattan et possede les
   alias suivants: line, diablo, lp et Diablo 630 Line Printer. Puisque
   l'alias lp lui est attribue, elle est egalement l'imprimante par defaut.
   La seconde s'appelle bamboo et possede les alias suivants: ps, PS, S,
   panasonic et Panasonic KX-P4455 PostScript v51.4.

      9.3.1.5.2. Supprimer les pages d'en-tete

   Par defaut, le gestionnaire d'impression LPD imprime une page d'en-tete
   pour chaque impression. Celle-ci mentionne le nom de l'utilisateur qui a
   demande l'impression, la machine qui l'a envoye, et le nom de
   l'impression, en grands et jolis caracteres. Malheureusement, tout ce
   texte supplementaire parasite le debogage d'une configuration simple de
   l'imprimante, aussi supprimerons-nous ces pages d'en-tetes.

   Pour cela, ajoutez le parametre sh `a l'entree de l'imprimante dans
   /etc/printcap. Voici un exemple de /etc/printcap ou sh a ete ajoute:

 #
 #  /etc/printcap for host rose - no header pages anywhere
 #
 rattan|line|diablo|lp|Diablo 630 Line Printer:\
         :sh:

 bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
         :sh:

   Observez la fac,on dont nous avons respecte le format correct: la premiere
   ligne commence dans la colonne la plus `a gauche, et les lignes suivantes
   sont indentees. Toutes les lignes d'une entree sauf la derniere se
   terminent par un antislash.

      9.3.1.5.3. Creer le repertoire de file d'attente

   La prochaine etape dans la configuration simple du gestionnaire
   d'impression consiste `a creer un repertoire de file d'attente, c'est `a
   dire un repertoire ou les travaux vont demeurer jusqu'`a ce qu'ils soient
   imprimes, et ou un certain nombre d'autres fichiers necessaires au
   gestionnaire d'impression prennent place.

   A cause de la nature variable des repertoires de file d'attente, il est
   d'usage de les placer dans /var/spool. Il n'est pas non plus necessaire de
   sauvegarder leur contenu. Les recreer est aussi simple que de faire un
   mkdir(1).

   Il est egalement d'usage de creer le repertoire avec un nom identique `a
   celui de l'imprimante, comme dans l'exemple ci-dessous:

 # mkdir /var/spool/nom-de-l-imprimante

   Toutefois, si votre reseau comporte beaucoup d'imprimantes, vous pouvez
   preferer placer les repertoires de file d'attente dans un unique
   repertoire que vous reserverez `a l'impression avec LPD. C'est ce que nous
   allons faire pour les deux imprimantes de notre exemple, rattan et bamboo:

 # mkdir /var/spool/lpd
 # mkdir /var/spool/lpd/rattan
 # mkdir /var/spool/lpd/bamboo

  Note:

   Si la confidentialite des travaux imprimes par les utilisateurs vous
   importe, vous souhaiterez certainement proteger le repertoire de file
   d'attente afin qu'il ne soit pas accessible par tout le monde. Les
   repertoires de file d'attente doivent appartenir, etre accessibles en
   lecture et ecriture et pouvoir etre parcourus par l'utilisateur daemon et
   le groupe daemon, et personne d'autre. C'est ce que nous allons faire pour
   les deux imprimantes de notre exemple:

 # chown daemon:daemon /var/spool/lpd/rattan
 # chown daemon:daemon /var/spool/lpd/bamboo
 # chmod 770 /var/spool/lpd/rattan
 # chmod 770 /var/spool/lpd/bamboo

   Pour finir, vous devez avertir LPD de l'existence de ces repertoires en
   utilisant le fichier /etc/printcap. Vous specifiez le chemin du repertoire
   file d'attente avec le parametre sd:

 #
 #  /etc/printcap for host rose - added spooling directories
 #
 rattan|line|diablo|lp|Diablo 630 Line Printer:\
         :sh:sd=/var/spool/lpd/rattan:

 bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
         :sh:sd=/var/spool/lpd/bamboo:

   Notez que le nom de l'imprimante commence dans la premiere colonne mais
   que toutes les autres entrees decrivant l'imprimante doivent etre
   indentees et que chaque fin de ligne doit etre protegee par un antislash.

   Si vous ne precisez pas de repertoire de file d'attente avec sd, le
   gestionnaire d'impression utilisera /var/spool/lpd par defaut.

      9.3.1.5.4. Identifier le peripherique d'imprimante

   Dans la section Entrees des peripheriques nous avons identifie l'entree du
   repertoire /dev que FreeBSD utiliserait pour communiquer avec
   l'imprimante. Maintenant, nous allons passer cette information `a LPD.
   Quand le gestionnaire d'impression aura une impression `a effectuer, il
   ouvrira le peripherique specifie au nom du programme de filtre (qui est
   responsable de la transmission des donnees `a l'imprimante).

   Positionnez l'entree pour le chemin d'acces /dev dans le fichier
   /etc/printcap en utilisant le parametre lp.

   Dans notre exemple, supposons que rattan est sur le premier port
   parallele, et que bamboo est sur un sixieme port serie; voici les ajouts
   `a apporter `a /etc/printcap:

 #
 #  /etc/printcap for host rose - identified what devices to use
 #
 rattan|line|diablo|lp|Diablo 630 Line Printer:\
         :sh:sd=/var/spool/lpd/rattan:\
         :lp=/dev/lpt0:

 bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
         :sh:sd=/var/spool/lpd/bamboo:\
         :lp=/dev/ttyd5:

   Si dans votre /etc/printcap vous ne precisez pas le parametre lp pour une
   imprimante, LPD utilisera /dev/lp par defaut. A l'heure actuelle, il
   n'existe pas d'entree /dev/lp sous FreeBSD.

   Si l'imprimante que vous etes en train d'installer est connectee `a un
   port parallele, vous pouvez directement vous rendre `a la section
   Installer le filtre texte. Sinon, assurez-vous de suivre les instructions
   de la section qui suit.

      9.3.1.5.5. Configurer les parametres de communication du gestionnaire
      d'impression

   Pour les imprimantes connectees au port serie, LPD peut configurer la
   vitesse en bps, la parite, et d'autres parametres de communication serie,
   pour le compte du programme de filtre qui envoie les donnees `a
   l'imprimante. C'est avantageux dans la mesure ou:

     * Cela vous laisse essayer divers parametres simplement en editant le
       fichier /etc/printcap; vous n'avez pas besoin de recompiler le
       programme de filtre.

     * Cela permet au gestionnaire d'impression d'utiliser le meme programme
       pour de multiples imprimantes qui peuvent avoir des parametres de
       communication serie differents.

   Les parametres /etc/printcap suivants controlent les options de
   communication serie pour le peripherique specifie dans le parametre lp:

   br#vitesse-bps

           Positionne la vitesse de transmission du peripherique `a
           vitesse-bps, ou vitesse-bps peut prendre l'une des valeurs
           suivantes: 50, 75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400,
           4800, 9600, 19200, 38400, 57600, ou 115200 bits par seconde.

   ms#stty-mode

           Positionne les options du peripherique de terminal apres l'avoir
           ouvert. stty(1) presente les options disponibles.

   Quand LPD ouvre le peripherique specifie par le parametre lp, il
   positionne les caracteristiques de ce peripherique aux valeurs precisees
   par le parametre ms#. Les modes suivants, detailles dans stty(1) sont
   particulierement interessants: parenb, parodd, cs5, cs6, cs7, cs8, cstopb,
   crtscts, et ixon.

   Peaufinons notre exemple pour l'imprimante qui est connectee au sixieme
   port serie. Nous allons parametrer sa vitesse `a 38400 bps. Quant au mode,
   nous allons specifier aucune parite avec -parenb, des caracteres 8 bits
   avec cs8, aucun controle modem avec clocal et un controle de flux materiel
   avec crtscts:

 bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
         :sh:sd=/var/spool/lpd/bamboo:\
         :lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts:

      9.3.1.5.6. Installer le filtre texte

   Nous sommes maintenant en mesure de dire `a LPD quel filtre texte utiliser
   pour envoyer les travaux `a l'imprimante. Un filtre texte, egalement connu
   sous le nom de filtre d'entree, est un programme que LPD lance lorsqu'il a
   une impression `a effectuer. Lorsque LPD execute le filtre texte pour une
   imprimante, il redirige l'entree standard du filtre sur le travail
   d'impression, et la sortie standard sur le fichier special de peripherique
   specifie par le parametre lp. On attend du filtre qu'il lise le travail
   d'impression sur son entree standard, effectue les transformations
   necessaires pour l'imprimante, et ecrive le resultat sur sa sortie
   standard, qui sera imprimee. Pour plus d'informations sur les filtres
   texte, lisez la section Filtres.

   Pour notre configuration simple de l'imprimante, le filtre texte peut etre
   une petite procedure d'interpreteur de commandes qui ne fera qu'executer
   /bin/cat pour envoyer le travail d'impression `a l'imprimante. Un autre
   filtre est livre avec FreeBSD, nomme lpf, qui se charge de faire des
   suppressions arriere et des soulignements pour les imprimantes qui ne
   sauraient pas gerer correctement ce genre de flux de caracteres. Et bien
   sur, vous pouvez utiliser un autre filtre, quel qu'il soit. Le filtre lpf
   est detaille dans la section lpf: un filtre texte.

   Tout d'abord, composons le filtre /usr/local/libexec/if-simple qui sera un
   simple filtre texte. Ecrivez ceci avec votre editeur de texte favori:

 #!/bin/sh
 #
 # if-simple - Simple text input filter for lpd
 # Installed in /usr/local/libexec/if-simple
 #
 # Simply copies stdin to stdout.  Ignores all filter arguments.

 /bin/cat && exit 0
 exit 2

   Rendez le fichier executable:

 # chmod 555 /usr/local/libexec/if-simple

   Et avertissez LPD qu'il doit l'utiliser, en renseignant le parametre if
   dans /etc/printcap. Nous l'ajouterons aux deux imprimantes utilisees
   jusqu'ici dans notre /etc/printcap d'exemple:

 #
 #  /etc/printcap for host rose - added text filter
 #
 rattan|line|diablo|lp|Diablo 630 Line Printer:\
         :sh:sd=/var/spool/lpd/rattan:\ :lp=/dev/lpt0:\
         :if=/usr/local/libexec/if-simple:

 bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
         :sh:sd=/var/spool/lpd/bamboo:\
         :lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts:\
         :if=/usr/local/libexec/if-simple:

  Note:

   Vous trouverez une copie du filtre if-simple dans le repertoire
   /usr/share/examples/printing.

      9.3.1.5.7. Lancer LPD

   lpd(8) se lance depuis /etc/rc, avec la variable de controle lpd_enable.
   Cette variable a NO pour valeur par defaut. Si vous ne l'avez pas dej`a
   fait, ajoutez la ligne:

 lpd_enable="YES"

   `a votre /etc/rc.conf, puis relancez votre machine, ou lancez simplement
   lpd(8).

 # lpd

      9.3.1.5.8. Tester la configuration

   Vous avez acheve la configuration simple de LPD. Malheureusement, les
   felicitations ne sont pas encore `a l'ordre du jour, puisque nous devons
   encore tester la configuration et resoudre tout probleme. Pour tester la
   configuration, essayez d'imprimer quelque chose. Pour imprimer avec le
   systeme LPD, vous devez utiliser la commande lpr(1), qui soumet un travail
   d'impression.

   Vous pouvez combiner lpr(1) au programme lptest(1), que nous avons
   presente `a la section Verifier la communication avec l'imprimante, pour
   produire du texte de test.

   Pour tester la configuration simple de LPD

   Entrez:

 # lptest 20 5 | lpr -Pnom-de-l-imprimante

   Ou nom-de-l-imprimante represente le nom (ou l'alias) d'une imprimante tel
   que specifie dans /etc/printcap. Pour tester l'imprimante par defaut,
   tapez lpr(1) sans aucun argument -P. Encore une fois, si vous faites ce
   test avec une imprimante qui s'attend `a recevoir du PostScript(R),
   envoyez un programme PostScript(R) au lieu d'employer lptest(1). Vous
   pouvez le faire en plac,ant le programme dans un fichier et en entrant lpr
   fichier.

   Pour une imprimante PostScript(R), vous devriez obtenir le resultat du
   programme. Si vous utilisez lptest(1), alors votre sortie devrait
   ressembler `a c,a:

 !"#$%&'()*+,-./01234
 "#$%&'()*+,-./012345
 #$%&'()*+,-./0123456
 $%&'()*+,-./01234567
 %&'()*+,-./012345678

   Pour tester l'imprimante plus encore, telechargez des programmes (pour les
   imprimantes basees sur un langage specifique) plus longs, ou lancez
   lptest(1) avec des arguments differents. Par exemple, lptest 80 60
   produira 60 lignes de 80 caracteres chacune.

   Si l'impression ne fonctionne pas, lisez la section Resolution des
   problemes.

9.4. Configuration avancee de l'imprimante

   Cette section decrit les filtres `a utiliser pour imprimer des fichiers au
   formatage particulier, des pages d'en-tete, pour imprimer en reseau, et
   pour restreindre et comptabiliser l'utilisation de l'imprimante.

  9.4.1. Les filtres

   Bien que LPD gere les protocoles reseaux, les files d'attente, le controle
   d'acces et d'autres aspects de l'impression, la plus grande partie du
   veritable travail intervient dans les filtres. Les filtres sont des
   programmes qui communiquent avec l'imprimante et gerent ses dependances
   materielles ainsi que ses besoins particuliers. Dans la configuration
   simple de l'imprimante, nous avons installe un filtre texte simple- un
   filtre particulierement basique qui devrait fonctionner avec la plupart
   des imprimantes (voir la section Installer le filtre texte).

   Toutefois, afin de profiter de la conversion de format, de la
   comptabilisation de l'utilisation de l'imprimante, de particularites
   materielles, et ainsi de suite, il vous faut comprendre le fonctionnement
   des filtres. En dernier ressort, il incombera au filtre de gerer ces
   aspects. Et la mauvaise nouvelle, c'est que la plupart du temps, c'est
   vous qui devrez produire ces filtres vous-meme. La bonne nouvelle, c'est
   que beaucoup existent dej`a et que, sinon, ils sont en general assez
   faciles `a ecrire.

   Par ailleurs, il en est un livre avec FreeBSD, /usr/libexec/lpr/lpf, qui
   fonctionne avec beaucoup d'imprimantes capables d'imprimer du texte brut.
   (Il gere les retours arriere et les tabulations dans le fichier, effectue
   une comptabilisation, mais c'est `a peu pres tout). Vous trouverez
   egalement d'autres filtres et composants de filtres dans le catalogue des
   logiciels portes de FreeBSD.

   Voici ce que vous trouverez dans cette section:

     * La section Fonctionnement des filtres tache de donner une vue generale
       du role des filtres dans le processus d'impression. Il vous faut lire
       cette section pour comprendre ce qui se passe << sous le capot >>
       lorsque LPD utilise des filtres. Cette connaissance vous permettra
       d'anticiper et de resoudre les problemes que vous pourriez rencontrer
       quand vous installerez de plus en plus de filtres pour chacune de vos
       imprimantes.

     * LPD s'attend `a ce que toutes les imprimantes sachent imprimer du
       texte brut par defaut. Cela pose un probleme pour les imprimantes
       PostScript(R) (ou les imprimantes basees sur un autre langage) qui ne
       peut pas imprimer du texte brut directement. La section Gerer les
       travaux d'impression de texte brut sur des imprimantes PostScript(R)
       vous indique la marche `a suivre pour resoudre ce probleme. Vous
       devrez lire cette section si vous avez une imprimante PostScript(R).

     * PostScript(R) est un format de sortie courant pour beaucoup
       d'applications. Certaines personnes ecrivent meme du code
       PostScript(R) directement. Malheureusement, les imprimantes
       PostScript(R) sont onereuses. La section Emuler du PostScript(R) sur
       les imprimantes non-PostScript(R) vous indiquera comment modifier un
       filtre texte pour qu'une imprimante non-PostScript(R) accepte et
       imprime du PostScript(R). Vous devrez lire cette section si vous ne
       disposez pas d'une imprimante PostScript(R).

     * La section Filtres de conversion vous apprendra `a automatiser la
       conversion de formats de fichiers specifiques, comme des graphiques ou
       des donnees de composition, en formats comprehensibles par
       l'imprimante. Apres avoir lu cette section, vous serez en mesure de
       configurer vos imprimantes de telle sorte que vos utilisateurs
       pourront entrer la commande lpr -t pour imprimer du troff, ou lpr -d
       pour imprimer le format DVI produit par TeX, ou lpr -v pour imprimer
       des images en mode point, etc. Nous recommandons la lecture de cette
       section.

     * La section Filtres de sortie revele tout d'une fonctionnalite peu
       utilisee de LPD: les filtres de sortie. A moins que vous n'imprimiez
       des pages d'en-tetes (voir la section Pages d'en-tete), vous pouvez
       probablement completement ignorer cette section.

     * La section lpf: un filtre texte detaille lpf, un filtre texte destine
       aux imprimantes en ligne (et aux imprimantes laser se comportant comme
       telles) plutot complet malgre sa simplicite, et livre avec FreeBSD. Si
       vous avez besoin de mettre rapidement en place la comptabilisation de
       l'utilisation de l'imprimante pour du texte brut, ou si vous avez une
       imprimante qui fume lorsqu'elle voit passer des caracteres de retour
       arriere, vous devez vraiment penser `a lpf.

  Note:

   Une copie des differents scripts presentes ci-dessous se trouve dans le
   repertoire /usr/share/examples/printing.

    9.4.1.1. Fonctionnement des filtres

   Comme explique precedemment, un filtre est un programme executable lance
   par LPD pour gerer la partie de la communication avec l'imprimante qui est
   dependante du peripherique.

   Lorsque LPD veut imprimer un fichier d'un travail d'impression, il lance
   un programme de filtre. Il redirige l'entree standard du filtre sur le
   fichier `a imprimer, sa sortie standard vers l'imprimante, et l'erreur
   standard vers le fichier journal des erreurs (specifie dans le parametre
   lf du fichier /etc/printcap, ou /dev/console par defaut).

   Le filtre lance par LPD ainsi que les parametres qui lui sont donnes
   dependent de ce qui est place dans le fichier /etc/printcap et des
   parametres que l'utilisateur a passe sur la ligne de commande lpr(1) pour
   ce travail d'impression. Par exemple, si l'utilisateur a entre lpr -t, LPD
   aurait lance le filtre troff, precise par la parametre tf pour
   l'imprimante de destination. Si l'utilisateur veut imprimer du texte brut,
   il lancerait le filtre if (c'est vrai la plupart du temps: lisez la
   section Filtres de sortie pour plus de details).

   Il existe trois types de filtres que vous pouvez specifier dans
   /etc/printcap:

     * Le filtre texte, confusement appele filtre d'entree dans la
       documentation LPD, gere l'impression de texte classique. Considerez-le
       comme le filtre par defaut. LPD s'attend `a ce que toutes les
       imprimantes sachent imprimer du texte brut par defaut, et c'est au
       filtre texte de s'assurer que les retours arriere, tabulations et
       autres caracteres speciaux ne trompent pas l'imprimante. Si vous etes
       dans un environnement ou il vous faut rendre compte de l'utilisation
       de l'imprimante, le filtre texte doit egalement comptabiliser les
       pages imprimees, generalement en comptant le nombre de lignes
       imprimees et en le comparant avec le nombre de lignes par page
       supporte par l'imprimante. Le filtre texte est execute avec la liste
       de parametres suivante:

       nom_du_filtre [-c] -w largeur -l hauteur -i indentation -n utilisateur
       -h machine fichier_comptabilite

       ou

            -c

                    apparait si le travail d'impression est lance par la
                    commande lpr -l

            largeur

                    est la valeur du parametre pw (<< page width >>, pour
                    << largeur de page >>) specifie dans /etc/printcap, et
                    possedant la valeur par defaut 132.

            hauteur

                    est la valeur du parametre pl (<< page length >>, pour
                    << hauteur de page >>), par defaut: 66.

            indentation

                    est le nombre d'indentations insere par lpr -i, par
                    defaut: 0.

            utilisateur

                    est le nom du compte de l'utilisateur imprimant le
                    fichier.

            machine

                    est le nom de la machine depuis laquelle le travail
                    d'impression a ete soumis.

            fichier_comptabilite

                    est le nom du fichier de comptabilisation specifie par le
                    parametre af.

     * Un filtre de conversion convertit un format de fichier specifique en
       un autre que l'imprimante saura imprimer sur papier. Par exemple, des
       donnees de composition ditroff ne peuvent etre imprimees directement,
       mais il vous est possible d'installer un filtre de conversion ditroff
       afin de convertir ces donnees ditroff en une forme que l'imprimante
       sait ingerer et imprimer. La section Filtres de conversion vous dira
       tout sur ce sujet. Les filtres de conversion doivent egalement tenir
       des statistiques, si vous avez besoin de comptabiliser les
       impressions. Les filtres de conversion sont lances avec les parametres
       suivants:

       nom-du-filtre -x largeur-en-pixels -y hauteur-en-pixels -n login -h
       hote fichier_comptabilite

       ou largeur-en-pixels est la valeur du parametre px (0 par defaut) et
       hauteur-en-pixels est la valeur du parametre py (0 par defaut).

     * Le filtre de sortie n'est utilise que s'il n'y a pas de filtre texte,
       ou si les pages d'en-tete ont ete activees. D'apres notre experience,
       les filtres de sortie sont rarement employes. La section Filtres de
       sortie les detaillera. Un filtre de sortie ne prend que deux
       parametres:

       nom-du-filtre -w largeur -l hauteur

       qui sont identiques aux parametres -w et -l des filtres textes.

   Les filtres doivent egalement retourner avec le code de retour suivant:

   exit 0

           Si le filtre a imprime avec succes le fichier.

   exit 1

           Si le filtre n'a pu imprimer le fichier, mais desire que LPD
           essaie de l'imprimer `a nouveau. LPD relancera un filtre s'il
           retourne avec ce code.

   exit 2

           Si le filtre n'a pu imprimer le fichier et ne veut pas que LPD
           retente l'impression. LPD rejettera le fichier.

   Le filtre texte livre avec FreeBSD, /usr/libexec/lpr/lpf, tire parti des
   parametres de largeur et hauteur de page pour savoir quand envoyer une
   instruction de saut de page et comment comptabiliser l'utilisation de
   l'imprimante. Il utilise les parametres nom d'utilisateur, nom de machine,
   et fichier de comptabilisation pour enregistrer les entrees concernant la
   consommation.

   Si vous recherchez des filtres, prenez garde `a ce qu'ils soient
   compatibles avec LPD. Si c'est le cas, ils doivent se conformer `a la
   liste de parametres decrite ci-dessus. Si vous songez `a ecrire des
   filtres `a usage general, alors faites en sorte qu'ils se conforment `a
   ces memes listes de parametres et de codes de retour.

    9.4.1.2. Gerer les travaux d'impression de texte brut sur des imprimantes
    PostScript(R)

   Si vous etes l'unique utilisateur de votre ordinateur et de votre
   imprimante PostScript(R) (ou basee sur un autre langage), et que vous
   promettez de ne jamais envoyer de texte brut `a votre imprimante et de ne
   jamais utiliser les fonctionnalites des divers programmes qui voudraient
   lui en envoyer, alors vous pouvez tout `a fait passer cette section
   l'esprit tranquille.

   Toutefois, si vous desirez envoyer du PostScript(R) et du texte brut `a
   l'imprimante, alors vous etes instamment pries de completer la
   configuration de votre imprimante. Pour ce faire, nous chargerons le
   filtre texte de detecter si le travail d'impression est du texte brut ou
   du PostScript(R). Tous les travaux d'impression PostScript(R) doivent
   debuter par %! (en ce qui concerne les autres langages, referez-vous `a la
   documentation de l'imprimante). Si ces deux caracteres sont les deux
   premiers du travail d'impression, il s'agit de PostScript(R) et le reste
   du travail d'impression peut etre passe directement `a l'imprimante. Dans
   le cas contraire, alors le filtre convertit le texte en PostScript(R) et
   imprime le resultat.

   Comment proceder?

   Si vous disposez d'une imprimante serie, une bonne fac,on de faire est
   d'installer lprps. Il s'agit d'un filtre d'impression PostScript(R) qui
   assure une communication en duplex avec l'imprimante. Il met `a jour le
   fichier d'etat de l'imprimante avec des informations detaillees que cette
   derniere lui fournit, de sorte que les utilisateurs et les administrateurs
   puissent connaitre precisement l'etat de l'imprimante (par exemple niveau
   de toner bas ou bourrage papier). Mais plus important encore, il inclut un
   programme nomme psif qui detecte si le travail d'impression qui vient
   d'arriver est du texte brut et lance textps (un autre programme fourni
   avec lprps) pour le convertir en PostScript(R). Il utilise alors lprps
   pour envoyer le travail d'impression `a l'imprimante.

   lprps fait partie du catalogue des logiciels portes FreeBSD (lisez la
   section Le catalogue des logiciels portes). Vous pouvez installer un des
   deux logiciels portes print/lprps-a4 et print/lprps-letter en fonction du
   format de papier utilise. Apres avoir installe lprps, precisez simplement
   le chemin vers le programme psif qui fait partie de lprps. Si vous avez
   installe lprps en recourant au catalogue des logiciels portes, placez les
   valeurs suivantes pour l'entree de l'imprimante serie PostScript(R) dans
   /etc/printcap:

 :if=/usr/local/libexec/psif:

   Vous devrez egalement renseigner le parametre rw qui indique `a LPD de
   requerir l'imprimante en mode lecture/ecriture.

   Si vous disposez d'une imprimante PostScript(R) parallele (et ne pouvez
   donc pas utiliser la communication en duplex avec l'imprimante dont a
   besoin lprps), vous pouvez recourir `a la procedure suivante en tant que
   filtre texte:

 #!/bin/sh
 #
 #  psif - Imprime du PostScript ou du texte brut sur une imprimante PostScript
 #  Version script; CECI N'EST PAS la version fournie avec lprps
 #  Fichier /usr/local/libexec/psif
 #

 IFS="" read -r first_line
 first_two_chars=`expr "$first_line" : '\(..\)'`

 if [ "$first_two_chars" = "%!" ]; then
     #
     #  Travail PostScript, l'imprimer.
     #
     echo "$first_line" && cat && printf "\004" && exit 0
     exit 2
 else
     #
     #  Texte brut, le convertir, puis l'imprimer.
     #
     ( echo "$first_line"; cat ) | /usr/local/bin/textps && printf "\004" && exit 0
     exit 2
 fi

   Dans la procedure ci-dessus, textps est un programme que nous avons
   installe separement pour convertir du texte en PostScript(R). Vous pouvez
   recourir `a n'importe quel programme texte-vers-PostScript(R), selon votre
   desir. Le catalogue des logiciels portes de FreeBSD (voir la section Le
   catalogue des logiciels portes) comprend un programme de conversion
   texte-vers-PostScript(R) complet nommee a2ps, qui pourrait vous
   interesser.

    9.4.1.3. Emuler du PostScript(R) sur les imprimantes non-PostScript(R)

   PostScript(R) est le standard de fait pour l'impression et la composition
   de haute qualite. Cependant, PostScript(R) est un standard onereux.
   Heureusement, Aladdin Enterprises propose un succedane gratuit de
   PostScript(R) nomme Ghostscript qui fonctionne sous FreeBSD. Ghostscript
   peut lire la majorite des fichiers PostScript(R) et peut produire leurs
   pages sur une diversite de peripheriques, incluant beaucoup de marques
   d'imprimantes non-PostScript(R). En installant Ghostscript et en recourant
   `a un filtre texte special, vous pouvez obtenir de votre imprimante
   non-PostScript(R) qu'elle se comporte comme une veritable imprimante
   PostScript(R).

   Ghostscript fait partie du catalogue des logiciels portes, de nombreuses
   versions sont disponibles, la version la plus couramment utilisee est
   print/ghostscript-gpl.

   Pour emuler du PostScript(R), il nous faut faire en sorte que le filtre
   texte detecte s'il imprime un fichier PostScript(R). Si ce n'est pas le
   cas, alors le filtre doit passer le fichier directement `a l'imprimante;
   sinon il recourra `a Ghostscript pour tout d'abord le convertir dans un
   format que l'imprimante saura interpreter.

   Voici un exemple: la procedure suivante est un filtre texte pour les
   imprimantes Hewlett Packard Deskjet 500. Pour d'autres modeles, changez le
   parametre -sDEVICE de la commande gs (Ghostscript). (Entrez gs -h pour
   obtenir une liste des peripheriques reconnus par l'installation actuelle
   de Ghostscript).

 #!/bin/sh
 #
 #  ifhp - Imprime du PostScript emule par Ghostscript sur une DeskJet 500
 #  Fichier /usr/local/libexec/ifhp

 #
 #  Traite LF comme CR+LF (pour eviter l'"effet d'escalier" sur les
 #  imprimantes HP/PCL):
 #
 printf "\033&k2G" || exit 2

 #
 #  Lit les deux premiers caracteres du fichier
 #
 IFS="" read -r first_line
 first_two_chars=`expr "$first_line" : '\(..\)'`

 if [ "$first_two_chars" = "%!" ]; then
     #
     #  Si c'est du PostScript; utiliser Ghostscript pour le convertir et l'imprimer
     #
     /usr/local/bin/gs -dSAFER -dNOPAUSE -q -sDEVICE=djet500 \
       -sOutputFile=- - && exit 0
 else
     #
     #  Texte brut ou HP/PCL, donc impression directe; effectuer un
     #  saut de page `a la fin pour ejecter la derniere page.
     #
     echo "$first_line" && cat && printf "\033&l0H" &&
 exit 0
 fi

 exit 2

   Pour finir, vous devez communiquer `a LPD le filtre utilise en
   positionnant le parametre if:

 :if=/usr/local/libexec/ifhp:

   Voil`a. Vous pouvez entrer lpr texte.simple et lpr peuimporte.ps, et
   chacune des deux commandes devrait imprimer avec succes.

    9.4.1.4. Filtres de conversion

   Apres avoir mene `a bien la configuration basique decrite `a la section
   Configuration simple de l'imprimante, la premiere chose que vous
   souhaiterez probablement faire sera d'installer des filtres de conversion
   pour vos formats de fichiers favoris (le simple texte ASCII mis `a part).

      9.4.1.4.1. Pourquoi installer des filtres de conversion?

   Les filtres de conversion facilitent l'impression de differentes sortes de
   fichiers. Par exemple, supposons que nous travaillions enormement avec le
   systeme de composition TeX, et que nous ayons une imprimante
   PostScript(R). Chaque fois que nous genererons un fichier DVI `a partir de
   TeX, nous ne pouvons l'imprimer directement avant d'avoir converti ce
   fichier DVI en PostScript(R). La sequence de commandes serait la suivante:

 % dvips seaweed-analysis.dvi
 % lpr seaweed-analysis.ps

   En installant un filtre de conversion pour fichiers DVI, nous pouvons `a
   chaque fois nous passer de l'etape de conversion manuelle en chargeant LPD
   de le faire `a notre place. Maintenant, `a chaque fois que nous avons un
   fichier DVI, nous ne sommes plus qu'`a un pas de l'impression:

 % lpr -d seaweed-analysis.dvi

   Nous faisons en sorte que LPD se charge de la conversion du fichier DVI `a
   notre place en positionnant l'option -d. La section Options de conversion
   et de formatage donne la liste des options de conversion.

   Pour chacune des options de conversion que vous voulez faire accepter par
   une imprimante, installez un filtre de conversion et indiquez son chemin
   d'acces dans /etc/printcap. Un filtre de conversion ressemble au filtre
   texte de notre configuration de base (voir la section Installer le filtre
   texte), `a ceci pres qu'au lieu d'imprimer du texte brut, le filtre
   convertit le fichier en un format comprehensible par l'imprimante.

      9.4.1.4.2. Quels filtres de conversion dois-je installer?

   Vous devez installer les filtres de conversion que vous vous attendez `a
   utiliser. Si vous imprimez beaucoup de donnees DVI, alors un filtre de
   conversion DVI est dans la logique des choses. Si vous devez imprimer
   beaucoup de troff, alors vous aurez surement besoin d'un filtre troff.

   Le tableau suivant recapitule les filtres avec lesquels LPD fonctionne,
   leurs parametres /etc/printcap, et comment les invoquer avec la lpr:

       Type de fichier        parametre /etc/printcap        option lpr       
   cifplot                  cf                          -c                    
   DVI                      df                          -d                    
   plot                     gf                          -g                    
   ditroff                  nf                          -n                    
   code FORTRAN             rf                          -f                    
   troff                    tf                          -f                    
   image en mode point      vf                          -v                    
   texte brut               if                          aucune, -p, or -l     

   Dans notre exemple, utiliser lpr -d veut dire que l'imprimante a besoin du
   parametre df dans l'entree /etc/printcap la concernant.

   Aussi fortement que certains puissent s'en emouvoir, des formats comme le
   code FORTRAN ou le plot sont probablement obsoletes. Sur votre site, vous
   pouvez attribuer de nouvelles significations `a ces options ou `a toute
   autre option de formatage en installant simplement des filtres
   personnalises. Par exemple, supposons que vous aimeriez imprimer des
   fichiers Printerleaf directement (fichiers issus du programme de
   publication assistee par ordinateur Interleaf), mais jamais de fichiers
   plot. Vous pourriez alors installer un filtre de conversion Printerleaf
   sous le parametre gf et ensuite informer vos utilisateurs que lpr -g veut
   dire << imprimer des fichiers Printerleaf >>.

      9.4.1.4.3. Installer des filtres de conversion

   Etant donne que les filtres de conversion sont des applications qui ne
   font pas partie du systeme FreeBSD de base, vous devriez les installer
   dans /usr/local. Le repertoire /usr/local/libexec est une destination de
   choix, car ce sont des programmes specialises que seul LPD lancera; les
   utilisateurs ordinaires ne devraient jamais avoir `a les lancer.

   Pour activer un filtre de conversion, precisez son chemin d'acces dans le
   parametre relatif `a l'imprimante de destination dans /etc/printcap.

   Dans notre exemple, nous allons ajouter le filtre de conversion DVI pour
   l'imprimante nommee bamboo. Revoici le fichier /etc/printcap d'exemple,
   avec le nouveau parametre df pour l'imprimante bamboo:

 #
 #  /etc/printcap pour la machine rose - ajout du filtre df pour bamboo
 #
 rattan|line|diablo|lp|Diablo 630 Line Printer:\
         :sh:sd=/var/spool/lpd/rattan:\
         :lp=/dev/lpt0:\
         :if=/usr/local/libexec/if-simple:

 bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
         :sh:sd=/var/spool/lpd/bamboo:\
         :lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts:rw:\
         :if=/usr/local/libexec/psif:\
         :df=/usr/local/libexec/psdf:

   Le filtre DVI est une procedure nommee /usr/local/libexec/psdf. En voici
   le contenu:

 #!/bin/sh
 #
 #  psdf - filtre DVI vers imprimante PostScript
 #  Fichier /usr/local/libexec/psdf
 #
 # Appele par lpd quand l'utilisateur lance lpr -d
 #
 exec /usr/local/bin/dvips -f | /usr/local/libexec/lprps "$@"

   Cette procedure lance dvips en mode filtre (cela correspond au parametre
   -f) sur l'entree standard, qui est le travail d'impression `a executer.
   Ensuite, elle lance le filtre pour imprimante PostScript(R) lprps (voir la
   section Gerer les travaux d'impression de texte brut sur des imprimantes
   PostScript(R)) avec les parametres que LPD lui a passes. Le programme
   lprps utilisera ces parametres pour comptabiliser les pages imprimees.

      9.4.1.4.4. Exemples de filtre de conversion supplementaires

   Il n'existe pas de procedure figee pour l'installation des filtres de
   conversion, des exemples fonctionnels sont presentes dans cette section.
   Inspirez-vous de ces exemples pour creer vos propres filtres. Utilisez les
   tels quels s'il s'averent adequats.

   Cet exemple presente un filtre de conversion d'image en mode point (en
   fait un fichier GIF) pour une imprimante Hewlett-Packard LaserJet III-Si:

 #!/bin/sh
 #
 #  hpvf - Convertit des fichiers GIF en HP/PCL, puis les imprime
 #  Fichier /usr/local/libexec/hpvf

 PATH=/usr/X11R6/bin:$PATH; export PATH
 giftopnm | ppmtopgm | pgmtopbm | pbmtolj -resolution 300 \
     && exit 0 \
     || exit 2

   Son fonctionnement est le suivant: il convertit le fichier GIF en un
   format portable universel, puis en format portable en niveau de gris, et
   ensuite en bitmap portable, qu'il convertit enfin en donnees compatibles
   LaserJet/PCL.

   Voici le /etc/printcap comportant une entree pour une imprimante recourant
   au filtre ci-dessus:

 #
 #  /etc/printcap pour la machine orchid
 #
 teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\
         :lp=/dev/lpt0:sh:sd=/var/spool/lpd/teak:mx#0:\
         :if=/usr/local/libexec/hpif:\
         :vf=/usr/local/libexec/hpvf:

   La procedure suivante est un filtre de conversion de donnees troff du
   systeme de composition groff pour l'imprimante PostScript(R) bamboo:

 #!/bin/sh
 #
 #  pstf - Convertit des donnees troff de groff en PS, puis imprime.
 #  Fichier /usr/local/libexec/pstf
 #
 exec grops | /usr/local/libexec/lprps "$@"

   La procedure ci-dessus emploie de nouveau lprps pour gerer la
   communication avec l'imprimante. S'il s'agissait d'une imprimante sur port
   parallele, nous utiliserions plutot la procedure suivante:

 #!/bin/sh
 #
 #  pstf - Convertit des donnees troff de groff en PS, puis imprime.
 #  Fichier /usr/local/libexec/pstf
 #
 exec grops

   C'est tout. Voici l'entree qu'il faut ajouter dans /etc/printcap pour
   activer le filtre:

 :tf=/usr/local/libexec/pstf:

   Voici un exemple qui pourrait faire rougir les vieux briscards de FORTRAN.
   C'est un filtre de code FORTRAN pour toute imprimante sachant imprimer du
   texte brut. Nous l'installerons pour l'imprimante teak:

 #!/bin/sh
 #
 # hprf - filtre texte FORTRAN pour LaserJet 3si:
 # Fichier /usr/local/libexec/hprf
 #

 printf "\033&k2G" && fpr && printf "\033&l0H" &&
  exit 0
 exit 2

   Et nous ajouterons cette ligne dans /etc/printcap pour l'imprimante teak
   afin d'activer le filtre:

 :rf=/usr/local/libexec/hprf:

   Voici un dernier exemple, quelque peu complexe. Nous allons ajouter un
   filtre DVI pour l'imprimante LaserJet teak presentee ci-dessus. Tout
   d'abord, la partie facile: mettre `a jour /etc/printcap avec l'emplacement
   du filtre DVI:

 :df=/usr/local/libexec/hpdf:

   Et maintenant, la partie difficile: ecrire le filtre. Pour cela, nous
   avons besoin d'un programme de conversion DVI-vers-LaserJet/PCL. Le
   catalogue des logiciels portes (voyez la section Le catalogue des
   logiciels portes) en possede un: print/dvi2xx. Installer ce logiciel porte
   nous fournira le programme dont nous avons besoin, dvilj2p, qui convertit
   le DVI en code compatible LaserJet IIp, LaserJet III et LaserJet 2000.

   L'utilitaire dvilj2p rend le filtre hpdf assez complexe, parce que dvilj2p
   ne sait pas lire l'entree standard. Il lui faut un nom de fichier. Pire
   encore, le nom du fichier doit se terminer par .dvi, ce qui rend
   l'utilisation de /dev/fd/0 pour l'entree standard problematique. Nous
   pouvons contourner cette difficulte en creant un lien symbolique
   temporaire (se terminant par .dvi) pointant vers /dev/fd/0, obligeant
   ainsi dvilj2p `a lire l'entree standard.

   Le seul petit accroc restant est que nous ne pouvons pas utiliser /tmp
   pour le lien temporaire. Les liens symboliques ont pour proprietaire
   l'utilisateur et le group bin. Le filtre est lance sous l'utilisateur
   daemon. Et le bit << sticky >> est positionne sur le repertoire /tmp. Le
   filtre peut creer le lien, mais il ne pourra pas nettoyer lorsqu'il aura
   fini et supprimer ce lien puisqu'il appartient `a un utilisateur
   different.

   Au lieu de c,a, le filtre creera le lien dans le repertoire courant, qui
   est le repertoire de la file d'attente des travaux d'impression (precise
   par le parametre sd dans /etc/printcap). C'est l'endroit ideal pour faire
   travailler les filtres, particulierement parce qu'il y a (parfois) plus
   d'espace disque libre dans ce repertoire que sous /tmp.

   Voici, enfin, le filtre:

 #!/bin/sh
 #
 #  hpdf - Imprime des donnees DVI sur une imprimante HP/PCL
 #  Fichier /usr/local/libexec/hpdf

 PATH=/usr/local/bin:$PATH; export PATH

 #
 #  Definit une fonction de nettoyage de nos fichiers temporaires.  Ils prennent place
 #  dans le repertoire courant, qui sera le repertoire
 #  de file d'attente
 #  de l'imprimante.
 #
 cleanup() {
    rm -f hpdf$$.dvi
 }

 #
 #  Definit une fonction de gestion des erreurs fatales: affiche le message
 #  d'erreur et retourne 2.  Ce code d'erreur de 2 indique `a LPD
 #  de ne pas essayer de reimprimer le travail d'impression
 #
 fatal() {
     echo "$@" 1>&2
     cleanup
     exit 2
 }

 #
 #  Si l'utilisateur enleve le travail d'impression, LPD envoie SIGINT, donc
 #  il faut capturer le signal SIGINT
 #  (et quelques autres signaux) pour nettoyer apres notre passage.
 #
 trap cleanup 1 2 15

 #
 #  Assurons-nous qu'il n'y ait pas conflit ce nom avec des fichiers existants.
 #
 cleanup

 #
 #  Lien du fichier DVI vers l'entree standard (fichier `a imprimer).
 #
 ln -s /dev/fd/0 hpdf$$.dvi || fatal "Cannot symlink /dev/fd/0"

 #
 #  Conversion LF = CR+LF
 #
 printf "\033&k2G" || fatal "Cannot initialize printer"

 #
 #  Conversion et impression.  Le code de retour de dvilj2p ne semble
 #  pas fiable: ignorons-le.
 #
 dvilj2p -M1 -q -e- dfhp$$.dvi

 #
 #  Nettoyage et sortie de la procedure
 #
 cleanup
 exit 0

      9.4.1.4.5. Conversion automatique: une alternative aux filtres de
      conversion

   Tous ces filtres de conversion apportent beaucoup `a votre environnement
   d'impression, mais necessitent que l'utilisateur precise (dans la ligne de
   commande lpr(1)) lequel utiliser. Si vos utilisateurs ne sont pas
   particulierement verses en informatique, preciser une option de filtre
   sera problematique. Mais ce qui s'avere pire encore est qu'une option de
   filtre mal choisie peut lancer un filtre sur un type de fichier errone et
   causer l'impression de centaines de pages.

   Plutot que d'installer quelque filtre de conversion que ce soit, vous
   prefererez sans doute laisser le filtre texte (puisque c'est le filtre par
   defaut) determiner le type de fichier qu'on lui a demande d'imprimer et
   lancer automatiquement le filtre de conversion approprie. Des outils comme
   file peuvent s'averer utiles dans ce cas. Bien entendu, il sera difficile
   d'etablir les differences entre certains types de fichiers-et vous pouvez
   toujours, bien sur, fournir des filtres de conversion uniquement pour eux.

   Le catalogue des logiciels portes FreeBSD contient un filtre texte, nomme
   apsfilter (print/apsfilter), qui sait effectuer la conversion automatique.
   Il peut reconnaitre le texte brut, le PostScript(R) les fichiers DVI et
   quasiment n'importe quelle sorte de fichier, effectuer les conversions
   appropriees et imprimer.

    9.4.1.5. Filtres de sortie

   Le gestionnaire d'impression LPD reconnait un autre type de filtre dont
   nous n'avons pas encore discute: le filtre de sortie. Un filtre de sortie
   est destine `a l'impression de texte brut seulement, comme le filtre
   texte, mais avec de nombreuses simplifications. Si vous utilisez un filtre
   de sortie mais pas de filtre texte, alors:

     * LPD lance un filtre de sortie une seule fois par travail d'impression,
       au lieu d'une fois pour chacun des fichiers du travail d'impression.

     * LPD ne fournit rien pour permettre au filtre de sortie de reperer le
       debut ou la fin des fichiers du travail d'impression.

     * LPD ne passe pas le nom de l'utilisateur ou le nom de la machine au
       filtre, qui n'est donc pas prevu pour effectuer la comptabilisation de
       l'impression. En fait, il ne rec,oit que deux parametres:

       nom-du-filtre -wlargeur -lhauteur

       Ou largeur provient du parametre pw et hauteur du parametre pl de
       l'entree /etc/printcap pour l'imprimante en question.

   Ne vous laissez pas seduire par la simplicite d'un filtre de sortie. Si
   vous desirez que chaque fichier d'un travail d'impression commence sur une
   page differente, un filtre de sortie ne conviendra pas. Utilisez un filtre
   texte (egalement appele filtre d'entree); voir la section Installer le
   filtre texte. De plus, le filtre de sortie se revele en fait plus complexe
   en ce sens qu'il doit examiner le flux d'octets qui lui est envoye pour y
   rechercher des caracteres speciaux et qu'il doit s'envoyer `a lui-meme des
   signaux comme s'ils provenaient de LPD.

   Toutefois, un filtre de sortie s'avere necessaire si vous desirez des
   pages d'en-tete et avez besoin d'envoyer des sequences d'echappement ou
   d'autres chaines d'initialisation afin de pouvoir imprimer la page
   d'en-tete. (Mais il est egalement futile si vous voulez imputer les pages
   d'en-tete au compte de l'utilisateur, puisque LPD ne livre pas
   d'information sur l'utilisateur ou la machine au filtre de sortie).

   Sur une seule imprimante, LPD permet `a la fois un filtre de sortie et des
   filtres texte ou autres. Dans de tels cas, LPD ne lancera le filtre de
   sortie que pour imprimer la page d'en-tete (consultez la section Pages
   d'en-tete). LPD attend alors que le filtre de sortie s'arrete par lui-meme
   en envoyant deux octets au filtre: ASCII 031 suivi d'ASCII 001. Lorsqu'un
   filtre de sortie lit ces deux octets (031,001), il devrait s'arreter en
   s'envoyant `a lui-meme un SIGSTOP. Lorsque LPD a fini d'executer les
   autres filtres, il relance le filtre de sortie en lui envoyant un SIGCONT.

   S'il y a un filtre de sortie mais aucun filtre texte et que LPD s'occupe
   d'un travail d'impression concernant du texte brut, alors LPD utilise le
   filtre de sortie pour realiser ce travail d'impression. Comme expose plus
   haut, le filtre de sortie imprimera chacun des travaux d'impression
   sequentiellement sans que des sauts de page ou autres formes d'avancement
   du papier ne surviennent, et ce n'est vraisemblablement pas ce que vous
   desirez. Dans presque tous les cas, il vous faut un filtre texte.

   Le programme lpf, que nous avons presente precedemment comme un filtre
   texte, peut egalement fonctionner en tant que filtre de sortie. Si vous
   avez besoin d'un filtre de sortie vite-fait-bien-fait mais ne voulez pas
   ecrire le code d'examen d'octets et d'envoi de signal, essayez lpf. Vous
   pouvez egalement inclure lpf dans une procedure pour prendre en charge
   tout code d'initialisation qui pourrait etre requis par l'imprimante.

    9.4.1.6. lpf: un filtre texte

   Le programme /usr/libexec/lpr/lpf qui est fourni avec la distribution
   binaire FreeBSD est un filtre texte (un filtre d'entree) qui sait indenter
   la sortie (un travail d'impression soumis avec lpr -i), laisse passer les
   caracteres litteraux (travail d'impression soumis avec lpr -l), ajuste la
   position d'impression des retours arriere et des tabulations dans le
   travail d'impression, et comptabilise les pages imprimees. Il peut
   egalement servir de filtre de sortie.

   Le filtre lpf convient `a de nombreux environnements d'impression. Et bien
   qu'il ne puisse pas envoyer de sequences d'initialisation `a une
   imprimante, il est aise d'ecrire une procedure pour effectuer
   l'initialisation necessaire et ensuite executer lpf.

   Afin que lpf mene `a bien la comptabilisation des pages, il faut que des
   valeurs correctes soient indiquees pour les parametres pw et pl dans le
   fichier /etc/printcap. Il utilise ces valeurs pour determiner combien de
   texte peut etre imprime sur une page et combien de pages ont ete imprimees
   dans le travail d'impression d'un utilisateur. Pour plus d'informations
   sur la comptabilisation de l'impression, lisez la section Comptabiliser
   l'utilisation de l'imprimante.

  9.4.2. Pages d'en-tete

   Si vous avez beaucoup d'utilisateurs, et que tous utilisent des
   imprimantes diverses, alors vous allez certainement envisager les pages
   d'en-tete comme un mal necessaire.

   Les pages d'en-tete, egalement appelees bannieres ou burst page,
   identifient `a qui appartiennent les travaux d'impression apres qu'ils
   aient ete imprimes. Elles sont en general imprimees en caracteres de
   grande taille et en gras, peuvent comporter des bordures decorees, de
   sorte qu'elles contrastent dans une pile d'impressions avec les veritables
   documents formant les travaux d'impression des utilisateurs. Elles leur
   permettent de retrouver facilement leurs travaux d'impression.
   L'inconvenient majeur d'une page d'en-tete est qu'elle represente une page
   supplementaire `a imprimer pour chacun des travaux d'impression, son
   utilite ephemere ne depasse pas quelques minutes, et elle termine au
   recyclage du papier ou dans une corbeille. (Notez que une page d'en-tete
   est liee `a chaque travail d'impression et non `a chaque fichier dans un
   travail d'impression: il se pourrait donc que le gachis de papier ne soit
   pas si grand.)

   Le systeme LPD peut fournir des pages d'en-tete automatiquement pour vos
   impressions si votre imprimante sait imprimer directement du texte brut.
   Si vous disposez d'une imprimante PostScript(R), il vous faudra un
   programme externe pour generer la page d'en-tete; lisez la section Les
   pages d'en-tete sur les imprimantes PostScript(R).

    9.4.2.1. Activer les pages d'en-tete

   Dans la section Configuration simple de l'imprimante, nous avons desactive
   les pages d'en-tete en positionnant le parametre sh (ce qui signifie
   << suppress header >>, soit << suppression des en-tetes >>) dans
   /etc/printcap. Pour activer les pages d'en-tete sur une imprimante, il
   suffit d'enlever ce parametre sh.

   Cela semble trop facile, n'est-ce pas?

   C'est vrai. Il se pourrait que vous ayez `a fournir un filtre de sortie
   pour envoyer des chaines d'initialisation `a l'imprimante. Voici un
   exemple de filtre sortie pour les imprimantes Hewlett-Packard
   compatibles-PCL:

 #!/bin/sh
 #
 #  hpof - filtre de sortie pour les imprimantes Hewlett Packard compatibles PCL
 #  Fichier /usr/local/libexec/hpof

 printf "\033&k2G" || exit 2
 exec /usr/libexec/lpr/lpf

   Specifiez le chemin d'acces au filtre de sortie avec le parametre of.
   Lisez la section Filtres de sortie pour plus de details.

   Voici un fichier /etc/printcap d'exemple pour l'imprimante teak que nous
   avons presentee plus haut; nous avons active les pages d'en-tete et ajoute
   le fichier de sortie ci-dessus:

 #
 #  /etc/printcap pour la machine orchid
 #
 teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\
         :lp=/dev/lpt0:sd=/var/spool/lpd/teak:mx#0:\
         :if=/usr/local/libexec/hpif:\
         :vf=/usr/local/libexec/hpvf:\
         :of=/usr/local/libexec/hpof:

   Desormais, lorsque les utilisateurs lancent des travaux d'impression avec
   teak, ils obtiennent une page d'en-tete avec chaque travail d'impression.
   Si vos utilisateurs desirent perdre du temps `a rechercher leurs
   impressions, ils peuvent omettre la page d'en-tete en soumettant le
   travail d'impression avec la commande lpr -h; lisez la section Options des
   pages d'en-tete pour connaitre plus d'options lpr(1).

  Note:

   LPD imprime un caractere de saut de page apres une page d'en-tete. Si
   votre imprimante utilise un autre caractere ou sequence de caracteres
   differente pour ejecter une page, precisez-le avec le parametre ff dans
   /etc/printcap.

    9.4.2.2. Controle des pages d'en-tete

   Une fois les pages d'en-tete activees, LPD produira un en-tete long, c'est
   `a dire une page entiere de grands caracteres identifiant l'utilisateur,
   le nom de la machine et le travail d'impression. Voici un exemple (kelly a
   lance le travail d'impression nomme << outline >> depuis la machine rose):

       k                   ll       ll
       k                    l        l
       k                    l        l
       k   k     eeee       l        l     y    y
       k  k     e    e      l        l     y    y
       k k      eeeeee      l        l     y    y
       kk k     e           l        l     y    y
       k   k    e    e      l        l     y   yy
       k    k    eeee      lll      lll     yyy y
                                                y
                                           y    y
                                            yyyy


                                    ll
                           t         l        i
                           t         l
        oooo    u    u   ttttt       l       ii     n nnn     eeee
       o    o   u    u     t         l        i     nn   n   e    e
       o    o   u    u     t         l        i     n    n   eeeeee
       o    o   u    u     t         l        i     n    n   e
       o    o   u   uu     t  t      l        i     n    n   e    e
        oooo     uuu u      tt      lll      iii    n    n    eeee









       r rrr     oooo     ssss     eeee
       rr   r   o    o   s    s   e    e
       r        o    o    ss      eeeeee
       r        o    o      ss    e
       r        o    o   s    s   e    e
       r         oooo     ssss     eeee







                                               Job:  outline
                                               Date: Sun Sep 17 11:04:58 1995

   LPD ajoute un saut de page `a ce texte de sorte que le travail
   d'impression commence sur une nouvelle page (`a moins que sf (supprimer
   les sauts de page) ne soit dans l'entree correspondant `a l'imprimante
   dans /etc/printcap).

   Si vous preferez, LPD peut generer des en-tete courts; ajoutez le
   parametre sb (en-tete court) dans le fichier /etc/printcap. La page
   d'en-tete ressemblera `a ceci:

 rose:kelly  Job: outline  Date: Sun Sep 17 11:07:51 1995

   Par defaut egalement, LPD imprime d'abord la page d'en-tete, puis le
   travail d'impression. Pour inverser ce comportement, placez le parametre
   hl (en-tete `a la fin) dans /etc/printcap.

    9.4.2.3. Comptabiliser les pages d'en-tete

   Utiliser les pages d'en-tete fournies par LPD provoque un comportement
   particulier lorsqu'il s'agit de comptabiliser l'utilisation de
   l'imprimante: les pages d'en-tete doivent etre gratuites.

   Pourquoi?

   Parce que le filtre de sortie est le seul programme externe pouvant tenir
   les comptes qui aura le controle lors de l'impression de la page
   d'en-tete, et qu'aucune information sur l'utilisateur ou le nom de la
   machine ne lui est donnee ni aucun fichier de comptabilisation, par
   consequent il ne sait pas `a qui attribuer le cout de l'utilisation de
   l'imprimante. Il ne suffit pas non plus de simplement << ajouter une
   page >> au filtre texte ou un quelconque filtre de conversion (qui, eux,
   possedent des informations sur l'utilisateur et la machine) puisque les
   utilisateurs peuvent supprimer les pages d'en-tete avec lpr -h. Ils
   pourraient toujours se voir imputer des pages d'en-tete qu'ils n'auraient
   pas imprimees. En somme, lpr -h demeurera l'option favorite des
   utilisateurs soucieux de l'environnement, mais vous ne pouvez aucunement
   les inciter `a l'utiliser.

   Il ne suffit pas non plus de laisser chacun des filtres generer ses
   propres pages d'en-tete (ce qui permettrait de savoir `a qui imputer les
   couts). Si les utilisateurs desiraient omettre les pages d'en-tete avec
   lpr -h, ils les obtiendraient quand meme et le cout leur serait attribue
   puisque LPD ne donne aucun renseignement sur l'emploi de l'option -h `a
   aucun des filtres.

   Alors, quelles sont les options `a votre disposition?

   Vous pouvez:

     * Accepter le comportement de LPD et la gratuite des pages d'en-tete.

     * Installer une alternative `a LPD, comme LPRng. La section Alternatives
       au gestionnaire d'impression standard en dit plus au sujet des autres
       gestionnaires d'impression qui peuvent etre substitues `a LPD.

     * Ecrire un filtre de sortie intelligent. Normalement, un filtre de
       sortie n'est pas cense faire plus que d'initialiser une imprimante ou
       executer une conversion simple de caracteres. Il convient aux pages
       d'en-tete et aux travaux d'impression de texte brut (lorsqu'il n'y a
       aucun filtre (d'entree) texte). Mais, s'il existe un filtre texte pour
       les travaux d'impression de texte, alors LPD ne lancera le filtre de
       sortie que pour les pages d'en-tete. Le filtre de sortie peut
       egalement analyser le texte de la page d'en-tete genere par LPD pour
       determiner quels sont l'utilisateur et la machine `a qui il faut
       attribuer le cout de cette page d'en-tete. Le seul autre probleme avec
       cette methode est que le filtre de sortie ne sait toujours pas quel
       fichier de comptabilisation utiliser (le nom du fichier specifie par
       le parametre af ne lui est pas fourni), mais si vous disposez d'un
       fichier de comptabilisation bien identifie, vous pouvez le coder en
       dur dans le filtre de sortie. Afin de faciliter l'etape d'analyse,
       utilisez le parametre sh (en-tete courte) dans /etc/printcap. D'un
       autre cote, tout cela pourrait bien representer beaucoup de
       derangement, et les utilisateurs apprecieront certainement davantage
       l'administrateur genereux qui propose la gratuite des pages d'en-tete.

    9.4.2.4. Les pages d'en-tete sur les imprimantes PostScript(R)

   Comme decrit precedemment, LPD est en mesure de generer des pages
   d'en-tete texte convenant pour de nombreuses d'imprimantes. Bien entendu,
   PostScript(R) ne peut pas imprimer du texte directement, donc la
   fonctionnalite de page d'en-tete offerte par LPD est inutilisable ou
   presque.

   Une solution manifeste est de faire generer la page d'en-tete par tous les
   filtres de conversion et le filtre texte. Les filtres devraient employer
   les parametres utilisateur et nom de machine pour generer une page
   d'en-tete convenable. L'inconvenient de cette methode est que les
   utilisateurs obtiendront toujours une page d'en-tete, meme s'ils
   soumettent leurs travaux d'impression avec lpr -h.

   Examinons cette methode. La procedure ci-dessous prend trois parametres
   (le nom de l'utilisateur, le nom de la machine et celui du travail
   d'impression) et realise une page d'en-tete simple en PostScript(R):

 #!/bin/sh
 #
 #  make-ps-header - genere une page d'en-tete PostScript sur la sortie standard
 #  Fichier /usr/local/libexec/make-ps-header
 #

 #
 #  Ce sont des unites PostScript (72 par pouce).  A modifier pour A4 ou
 #  tout autre format papier employe:
 #
 page_width=612
 page_height=792
 border=72

 #
 #  Verification des parametres
 #
 if [ $# -ne 3 ]; then
     echo "Usage: `basename $0` <user> <host> <job>" 1>&2
     exit 1
 fi

 #
 #  Memorisation des parametres, pour la lisibilite du PostScript, plus bas.
 #
 user=$1
 host=$2
 job=$3
 date=`date`

 #
 #  Envoi du code PostScript sur stdout.
 #
 exec cat <<EOF
 %!PS

 %
 %  Assurons-nous qu'il n'y a pas d'interference avec le travail
 %  utilisateur qui suivra
 %
 save

 %
 %  Applique une grosse bordure desagreable autour
 %  du bord de la page.
 %
 $border $border moveto
 $page_width $border 2 mul sub 0 rlineto
 0 $page_height $border 2 mul sub rlineto
 currentscreen 3 -1 roll pop 100 3 1 roll setscreen
 $border 2 mul $page_width sub 0 rlineto closepath
 0.8 setgray 10 setlinewidth stroke 0 setgray

 %
 %  Affiche le nom de l'utilisateur, de fac,on jolie, grande et proeminente
 %
 /Helvetica-Bold findfont 64 scalefont setfont
 $page_width ($user) stringwidth pop sub 2 div $page_height 200 sub moveto
 ($user) show

 %
 %  Maintenant, les details ennuyant:
 %
 /Helvetica findfont 14 scalefont setfont
 /y 200 def
 [ (Job:) (Host:) (Date:) ] {
 200 y moveto show /y y 18 sub def }
 forall

 /Helvetica-Bold findfont 14 scalefont setfont
 /y 200 def
 [ ($job) ($host) ($date) ] {
         270 y moveto show /y y 18 sub def
 } forall

 %
 % C'est tout
 %
 restore
 showpage
 EOF

   Desormais, chacun des filtres de conversion et le filtre texte peuvent
   appeler cette procedure pour d'abord generer la page d'en-tete, et ensuite
   imprimer le travail d'impression de l'utilisateur. Voici le filtre de
   conversion DVI dej`a mentionne plus haut dans ce document, modifie afin de
   generer une page d'en-tete:

 #!/bin/sh
 #
 #  psdf - filtre DVI vers imprimante PostScript
 #  Fichier /usr/local/libexec/psdf
 #
 #  Appele par lpd quand l'utilisateur lance lpr -d
 #

 orig_args="$@"

 fail() {
     echo "$@" 1>&2
     exit 2
 }

 while getopts "x:y:n:h:" option; do
     case $option in
         x|y)  ;; # Ignore
         n)    login=$OPTARG ;;
         h)    host=$OPTARG ;;
         *)    echo "LPD started `basename $0` wrong." 1>&2
               exit 2
               ;;
     esac
 done

 [ "$login" ] || fail "Pas de nom d'utilisateur"
 [ "$host" ] || fail "PAs de nom de machine"

 ( /usr/local/libexec/make-ps-header $login $host "DVI File"
   /usr/local/bin/dvips -f ) | eval /usr/local/libexec/lprps $orig_args

   Observez que le filtre doit analyser la liste des parametres pour
   determiner le nom de l'utilisateur et celui de la machine. L'analyse menee
   par les autres filtres de conversion est identique. Toutefois, le filtre
   texte reclame un ensemble de parametres legerement different (voyez la
   section Fonctionnement des filtres).

   Comme precedemment expose, cette solution, quoique relativement simple,
   invalide l'option de << suppression de page d'en-tete >> (l'option -h) de
   lpr. Si les utilisateurs desiraient epargner la vie d'un arbre (ou
   economiser quelques centimes, si vous faites payer les pages d'en-tete),
   ils ne seraient pas en mesure de le faire, puisque chaque filtre va
   imprimer une page d'en-tete avec chaque travail d'impression.

   Pour permettre aux utilisateurs de desactiver les pages d'en-tete en
   fonction du travail d'impression, il vous faudra recourir `a l'une des
   astuces de la section Comptabiliser les pages d'en-tete: ecrire un filtre
   de sortie qui analyse la page d'en-tete generee par LPD et produit une
   version PostScript(R). Si l'utilisateur soumet le travail d'impression
   avec lpr -h alors ni LPD ni votre filtre de sortie ne genereront de page
   d'en-tete. Sinon, votre filtre de sortie lira le texte en provenance de
   LPD et enverra la page d'en-tete PostScript(R) appropriee `a l'imprimante.

   Si vous disposez d'une imprimante PostScript(R) sur une interface serie,
   vous pouvez utiliser lprps, qui est livre avec un filtre de sortie, psof,
   qui realise ce que nous venons d'exposer ci-dessus. Notez que psof
   n'assume pas la tenue de comptes pour les pages d'en-tete.

  9.4.3. Imprimer via un reseau

   FreeBSD gere l'impression via un reseau: c'est `a dire en envoyant les
   travaux d'impression `a des imprimantes distantes. L'impression via un
   reseau designe deux choses differentes:

     * Acceder `a une imprimante connectee `a une machine distante. Vous
       installez une imprimante disposant d'une interface conventionnelle,
       serie ou parallele, sur une machine. Puis vous configurez LPD pour
       permettre l'acces `a l'imprimante depuis d'autres machines du reseau.
       La section Imprimantes installees sur des machines distantes en
       detaillera la mise en oeuvre.

     * Acceder `a une imprimante directement connectee au reseau.
       L'imprimante dispose d'une interface reseau en plus (ou `a la place)
       d'interfaces plus conventionnelles, serie ou parallele. Une imprimante
       de ce genre peut fonctionner ainsi:

          * Elle peut comprendre le protocole LPD et sait meme gerer une file
            d'attente de travaux d'impression provenant de machines
            distantes. En ce cas, elle se comporte comme une machine normale
            qui executerait LPD. Suivez la meme procedure que celle exposee
            `a la section Imprimantes installees sur des machines distantes
            afin de configurer une imprimante de ce genre.

          * Elle peut savoir gerer un flux de donnees au travers d'une
            connexion reseau. Dans ce cas, vous pouvez << attacher >>
            l'imprimante `a l'une des machines du reseau en la rendant
            responsable de la gestion de la file d'impression et de l'envoi
            des travaux d'impression `a l'imprimante. La section Imprimantes
            avec des interfaces utilisant des flux reseau donne quelque
            indications sur l'installation d'imprimantes de ce type.

    9.4.3.1. Imprimantes installees sur des machines distantes

   Le gestionnaire d'impression LPD dispose des fonctions pour gerer l'envoi
   des travaux d'impression `a d'autres machines executant egalement LPD (ou
   un systeme qui lui est compatible). Cette fonctionnalite vous permet
   d'installer une imprimante sur une machine, puis de la rendre accessible
   depuis les autres machines. Cela fonctionne egalement avec les imprimantes
   disposant d'interfaces reseau comprenant le protocole LPD.

   Pour activer ce type d'impression `a distance, installez d'abord une
   imprimante sur une machine, qui sera la machine d'impression, en suivant
   les instructions de configuration basique decrites `a la section
   Configuration simple de l'imprimante. Realisez toute etape de la
   configuration avancee de l'imprimante dont vous pourriez avoir besoin.
   Veillez `a tester l'imprimante et verifiez qu'elle fonctionne avec les
   parametres de LPD que vous avez actives. Assurez-vous egalement que la
   machine locale est autorisee `a utiliser le service LPD sur la machine
   distante (lisez la section Restreindre les impressions `a distance).

   Si vous utilisez une imprimante avec une interface reseau qui est
   compatible avec LPD, alors la machine d'impression dans le texte
   ci-dessous est l'imprimante elle-meme, et le nom de l'imprimante est le
   nom que vous avez parametre pour l'imprimante. Lisez la documentation
   livree avec votre imprimante ou l'interface reseau-imprimante.

  Astuce:

   Si vous utilisez une Hewlett Packard Laserjet, alors le nom d'imprimante
   text realisera la conversion LF en CRLF automatiquement, de sorte que vous
   n'aurez pas besoin de la procedure hpif.

   Ensuite, sur les autres machines pour lesquelles vous desirez autoriser
   l'acces `a l'imprimante, creez une ligne dans leur /etc/printcap avec les
   parametres suivants:

    1. Nommez cette entree comme vous le voulez. Par souci de simplicite,
       cependant, vous prefererez certainement employer les memes nom et
       alias que ceux utilises sur la machine de d'impression.

    2. Laissez le parametre lp non-renseigne, de maniere explicite (:lp=:).

    3. Creez un repertoire de file d'impression et indiquez son chemin
       d'acces dans le parametre sd. C'est l`a ou LPD entreposera les travaux
       d'impression avant leur envoi vers la machine d'impression.

    4. Indiquez le nom de la machine d'impression avec le parametre rm.

    5. Placez le nom de l'imprimante sur la machine d'impression dans le
       parametre rp.

   C'est tout. Il n'est pas necessaire de preciser la liste des filtres de
   conversion, les dimensions de la page, ou quoique ce soit d'autre dans le
   fichier /etc/printcap.

   Voici un exemple. La machine rose dispose de deux imprimantes, bamboo et
   rattan. Nous allons permettre aux utilisateurs de la machine orchid
   d'imprimer avec ces imprimantes. Voici le fichier /etc/printcap pour
   orchid (apparu dans la section Activer les pages d'en-tete). Il contenait
   dej`a une entree pour l'imprimante teak; nous avons ajoute celles pour les
   deux imprimantes sur la machine rose:

 #
 #  /etc/printcap pour la machine orchid - ajout d'imprimantes (distantes)
 #    sur rose
 #

 #
 #  teak est locale; connectee directement `a orchid:
 #
 teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\
         :lp=/dev/lpt0:sd=/var/spool/lpd/teak:mx#0:\
         :if=/usr/local/libexec/ifhp:\
         :vf=/usr/local/libexec/vfhp:\
         :of=/usr/local/libexec/ofhp:

 #
 #  rattan est connectee `a rose; envoie les travaux pour rattan
 #    `a rose:
 #
 rattan|line|diablo|lp|Diablo 630 Line Printer:\
         :lp=:rm=rose:rp=rattan:sd=/var/spool/lpd/rattan:

 #
 #  bamboo est egalement connectee `a rose:
 #
 bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
         :lp=:rm=rose:rp=bamboo:sd=/var/spool/lpd/bamboo:

   Ensuite, nous n'avons qu'`a creer les repertoires de file d'impression sur
   orchid:

 # mkdir -p /var/spool/lpd/rattan /var/spool/lpd/bamboo
 # chmod 770 /var/spool/lpd/rattan /var/spool/lpd/bamboo
 # chown daemon:daemon /var/spool/lpd/rattan /var/spool/lpd/bamboo

   Maintenant les utilisateurs d'orchid peuvent imprimer sur rattan et
   bamboo. Par exemple, si un utilisateur sur orchid entrait:

 % lpr -P bamboo -d sushi-review.dvi

   le systeme LPD sur orchid copierait le travail d'impression dans le
   repertoire de file d'impression /var/spool/lpd/bamboo et releverait qu'il
   s'agit d'un travail d'impression DVI. Des que la machine rose dispose
   d'assez de place dans son repertoire de file d'impression, les deux LPD
   transferent le fichier `a rose. Le fichier reste en attente dans la file
   de rose jusqu'`a son impression. Il sera converti de DVI en PostScript(R)
   (puisque bamboo est une imprimante PostScript(R)) sur rose.

    9.4.3.2. Imprimantes avec des interfaces utilisant des flux reseau

   Bien souvent, lorsque vous achetez une carte d'interface reseau pour une
   imprimante, vous avez le choix entre deux versions: l'une qui emule un
   gestionnaire d'impression (la version la plus onereuse), ou une autre qui
   ne vous permet que de lui envoyer des donnees comme s'il s'agissait d'un
   port serie ou parallele (c'est la version la moins chere). Cette section
   vous indique comment utiliser cette seconde version moins onereuse. Pour
   la plus chere, lisez la section precedente Imprimantes installees sur des
   machines distantes.

   Le format du fichier /etc/printcap vous permet de preciser quelle
   interface serie ou parallele vous souhaitez utiliser, et (si vous employez
   une interface serie) `a quelle vitesse de transmission, s'il faut employer
   le controle de flux, les temporisations pour les tabulations, la
   conversion des sauts de lignes, et plus encore. Mais il n'existe aucun
   moyen de preciser une connexion `a une imprimante qui ecoute sur un port
   TCP/IP ou un autre port reseau.

   Pour envoyer des donnees `a une imprimante mise en reseau, il vous faut
   developper un programme de communication qui puisse etre appele par les
   filtres textes et de conversion. Voici un exemple: la procedure netprint
   recupere toutes les donnees sur l'entree standard et les envoie `a une
   imprimante connectee au reseau. Nous precisons le nom de machine de
   l'imprimante dans le premier parametre et le numero de port auquel se
   connecter dans le deuxieme parametre de netprint. Notez qu'il ne gere que
   la communication unidirectionnelle (dans le sens FreeBSD vers imprimante);
   de nombreuses imprimantes reseau supporte la communication
   bidirectionnelle, et vous desirerez certainement en tirer parti (afin de
   connaitre le statut de l'imprimante, de comptabiliser l'utilisation,
   etc.).

 #!/usr/bin/perl
 #
 #  netprint - Filtre texte pour imprimante connectee au reseau
 #  Fichier /usr/local/libexec/netprint
 #
 $#ARGV eq 1 || die "Usage: $0 <printer-hostname> <port-number>";

 $printer_host = $ARGV[0];
 $printer_port = $ARGV[1];

 require 'sys/socket.ph';

 ($ignore, $ignore, $protocol) = getprotobyname('tcp');
 ($ignore, $ignore, $ignore, $ignore, $address)
     = gethostbyname($printer_host);

 $sockaddr = pack('S n a4 x8', &AF_INET, $printer_port, $address);

 socket(PRINTER, &PF_INET, &SOCK_STREAM, $protocol)
     || die "Can't create TCP/IP stream socket: $!";
 connect(PRINTER, $sockaddr) || die "Can't contact $printer_host: $!";
 while (<STDIN>) { print PRINTER; }
 exit 0;

   Nous pouvons maintenant utiliser cette procedure avec differents filtres.
   Supposons que nous ayons une imprimante Diablo 750-N connectee au reseau.
   Elle rec,oit les donnees `a imprimer sur le port 5100. Le nom de machine
   de l'imprimante est scrivener. Voici le filtre texte pour cette
   imprimante:

 #!/bin/sh
 #
 #  diablo-if-net - Filtre texte pour l'imprimante  Diablo `scrivener' ecoutant
 #  le port 5100.  Fichier /usr/local/libexec/diablo-if-net
 #
 exec /usr/libexec/lpr/lpf "$@" | /usr/local/libexec/netprint scrivener 5100

  9.4.4. Restreindre l'utilisation de l'imprimante

   Cette section fournit des informations sur la restriction de l'utilisation
   de l'imprimante. Le systeme LPD vous permet de controler quels
   utilisateurs peuvent acceder `a une imprimante, tant localement qu'`a
   distance, s'il leur est autorise d'imprimer en plusieurs exemplaires,
   quelles sont les tailles maximales de leurs travaux d'impression et des
   files d'impression.

    9.4.4.1. Restreindre l'impression en plusieurs exemplaires

   Le systeme LPD facilite l'impression de plusieurs copies d'un meme fichier
   par les utilisateurs. Ils peuvent imprimer leur travail avec lpr -#5 (par
   exemple) et obtenir cinq exemplaires de chaque fichier du travail
   d'impression. Le fait de savoir s'il s'agit l`a d'une bonne idee vous
   appartient.

   Si vous estimez que les copies multiples provoquent charge et usure
   inutiles pour vos imprimantes, vous pouvez desactiver l'option -# de
   lpr(1) en ajoutant le parametre sc au fichier /etc/printcap. Lorsque des
   utilisateurs soumettront un travail d'impression avec l'option -#, ils
   obtiendront cet affichage:

 lpr: multiple copies are not allowed

   Notez que si vous avez mis en oeuvre l'acces `a une imprimante distante
   (voir la section Imprimantes installees sur des machines distantes), il
   faut que le parametre sc soit positionne sur les /etc/printcap distants
   egalement, sinon vos utilisateurs auront toujours la possibilite
   d'imprimer des copies multiples en passant par une autre machine.

   Voici un exemple. C'est le /etc/printcap pour la machine rose.
   L'imprimante rattan est plutot robuste, et autorisera donc les copies
   multiples, par contre l'imprimante laser bamboo est quant `a elle plus
   delicate, nous interdiront donc les impressions multiples en ajoutant le
   parametre sc:

 #
 #  /etc/printcap pour la machine rose - restreint les impressions en plusieurs exemplaires sur bamboo
 #
 rattan|line|diablo|lp|Diablo 630 Line Printer:\
         :sh:sd=/var/spool/lpd/rattan:\
         :lp=/dev/lpt0:\
         :if=/usr/local/libexec/if-simple:

 bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
         :sh:sd=/var/spool/lpd/bamboo:sc:\
         :lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts:rw:\
         :if=/usr/local/libexec/psif:\
         :df=/usr/local/libexec/psdf:

   Maintenant, il nous faut egalement ajouter le parametre sc dans le fichier
   /etc/printcap de orchid (et tant que nous y sommes, desactivons les copies
   multiples pour l'imprimante teak):

 #
 #  /etc/printcap pour la machine orchid - pas d'impression en
 #  plusieurs exemplaires pour
 #  l'imprimante locale teak ou l'imprimante distante bamboo
 teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\
         :lp=/dev/lpt0:sd=/var/spool/lpd/teak:mx#0:sc:\
         :if=/usr/local/libexec/ifhp:\
         :vf=/usr/local/libexec/vfhp:\
         :of=/usr/local/libexec/ofhp:

 rattan|line|diablo|lp|Diablo 630 Line Printer:\
         :lp=:rm=rose:rp=rattan:sd=/var/spool/lpd/rattan:

 bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
         :lp=:rm=rose:rp=bamboo:sd=/var/spool/lpd/bamboo:sc:

   En recourant au parametre sc, nous empechons l'utilisation de lpr -#, mais
   cela n'empeche toujours pas les utilisateurs de lancer lpr(1) `a plusieurs
   reprises, ou de soumettre le meme fichier plusieurs fois en un seul
   travail, de cette fac,on:

 % lpr forsale.sign forsale.sign forsale.sign forsale.sign forsale.sign

   Il existe plusieurs moyens de prevenir ces abus (y compris les ignorer)
   que vous etes libres d'essayer.

    9.4.4.2. Restreindre l'acces aux imprimantes

   Vous pouvez controler qui a le droit d'imprimer sur quelles imprimantes en
   utilisant le mecanisme des groupes UNIX(R) et le parametre rg dans
   /etc/printcap. Placez simplement les utilisateurs `a qui vous voulez
   donner l'acces `a une imprimante dans un groupe, et precisez ce groupe
   avec le parametre rg.

   Les utilisateurs n'appartenant pas au groupe (root inclus) se verront
   gratifies d'un lpr: Not a member of the restricted group s'ils essaient
   d'imprimer avec l'imprimante controlee.

   De meme que pour le parametre sc (supprimer les exemplaires multiples), il
   vous faut activer rg sur les machines distantes qui eux aussi ont acces `a
   vos imprimantes, si vous estimez que c'est approprie (voir la section
   Imprimantes installees sur des machines distantes).

   Dans notre exemple, nous allons permettre l'acces `a rattan `a quiconque,
   mais seuls les membres du groupe artists pourront utiliser bamboo. Voici
   l'habituel /etc/printcap pour la machine rose:

 #
 #  /etc/printcap pour la machine rose - restreint au groupe pour bamboo
 #
 rattan|line|diablo|lp|Diablo 630 Line Printer:\
         :sh:sd=/var/spool/lpd/rattan:\
         :lp=/dev/lpt0:\
         :if=/usr/local/libexec/if-simple:

 bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
         :sh:sd=/var/spool/lpd/bamboo:sc:rg=artists:\
         :lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts:rw:\
         :if=/usr/local/libexec/psif:\
         :df=/usr/local/libexec/psdf:

   Ne nous preoccupons pas de l'autre fichier /etc/printcap (pour la machine
   orchid). Bien entendu, n'importe qui sur orchid peut imprimer avec bamboo.
   Selon le cas, nous pourrons autoriser que certains utilisateurs sur
   orchid, et leur donner acces `a l'imprimante. Ou non.

  Note:

   Il ne peut exister qu'un seul groupe de restriction par imprimante.

    9.4.4.3. Controler la taille des travaux d'impression

   Si beaucoup de vos utilisateurs accedent aux imprimantes, vous aurez sans
   doute besoin de fixer une limite superieure `a la taille des fichiers
   qu'ils peuvent soumettre `a l'impression. Apres tout, le systeme de
   fichiers hebergeant les repertoires de file d'impression ne peut offrir
   que l'espace libre dont il dispose, et vous devez egalement vous assurer
   que de la place existe pour les travaux d'impression des autres
   utilisateurs.

   LPD vous permet de fixer la taille maximale en octets qu'un fichier d'un
   travail d'impression peut atteindre avec le parametre mx. Les unites sont
   exprimees en blocs de BUFSIZ, valant 1024 octets. Si vous donnez la valeur
   0 `a ce parametre, la taille ne sera pas du tout limitee; en revanche, si
   aucun parametre mx n'est defini, alors une limite par defaut de 1000 blocs
   sera utilisee.

  Note:

   La limite s'applique aux fichiers dans un travail d'impression, et non pas
   `a la taille totale du travail d'impression.

   LPD ne refusera pas un fichier dont la taille excede la limite que vous
   fixez pour une imprimante. Au lieu de cela, il placera les octets du
   fichier dans la file jusqu'`a ce que la limite soit atteinte, puis
   imprimera. Les octets supplementaires seront ignores. S'il s'agit l`a d'un
   comportement approprie est un choix qui vous appartient.

   Ajoutons des limites pour nos imprimantes d'exemple, rattan et bamboo.
   Puisque les fichiers PostScript(R) des utilisateurs du groupe artists ont
   tendance `a etre volumineux, nous allons les limiter `a cinq megaoctets.
   Nous ne fixerons aucune limite pour l'imprimante texte:

 #
 #  /etc/printcap pour la machine rose
 #

 #
 #  Pas de limite sur la taille des travaux:
 #
 rattan|line|diablo|lp|Diablo 630 Line Printer:\
         :sh:mx#0:sd=/var/spool/lpd/rattan:\
         :lp=/dev/lpt0:\
         :if=/usr/local/libexec/if-simple:

 #
 #  Limite de cinq megaoctets:
 #
 bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
         :sh:sd=/var/spool/lpd/bamboo:sc:rg=artists:mx#5000:\
         :lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts:rw:\
         :if=/usr/local/libexec/psif:\
         :df=/usr/local/libexec/psdf:

   L`a encore, les limites ne s'appliquent qu'aux utilisateurs locaux. Si
   vous avez mis en place un acces distant `a vos imprimantes, les
   utilisateurs distants ne seront pas contraints par ces limites. Il vous
   faudra positionner le parametre mx dans les fichiers /etc/printcap
   distants egalement. Lisez la section Imprimantes installees sur des
   machines distantes pour obtenir plus d'informations sur l'impression `a
   distance.

   Il existe une autre maniere specifique pour limiter la taille des travaux
   d'impression sur les imprimantes `a distance; lisez la section Restreindre
   les impressions `a distance.

    9.4.4.4. Restreindre les impressions `a distance

   Le gestionnaire d'impression LPD propose plusieurs moyens de restreindre
   les travaux d'impression soumis depuis des machines distants:

   Restrictions en fonction des machines

           Vous pouvez controler de quelles machines distantes les requetes
           seront acceptees par un LPD local avec les fichiers
           /etc/hosts.equiv et /etc/hosts.lpd. LPD verifie qu'une requete
           entrante provient d'une machine listee dans l'un de ces deux
           fichiers. Si ce n'est pas le cas, LPD refuse la requete.

           Le format de ces fichiers est simple: un nom de machine par ligne.
           Notez que /etc/hosts.equiv est egalement utilise par le protocole
           ruserok(3), et qu'il a un impact sur des programmes comme rsh(1)
           et rcp(1), aussi soyez prudent.

           Par exemple, voici le fichier /etc/hosts.lpd present sur la
           machine rose:

 orchid
 violet
 madrigal.fishbaum.de

           Cela signifie que rose accepte les requetes provenant des machines
           orchid, violet et madrigal.fishbaum.de. Si une quelconque autre
           machine tente d'acceder au LPD de rose, le travail d'impression
           sera refuse.

   Restrictions sur la taille

           Vous pouvez controler combien d'espace doit demeurer libre sur le
           systeme de fichiers ou se trouve un repertoire de file
           d'impression. Creez un fichier nomme minfree dans le repertoire de
           file d'impression pour l'imprimante locale. Placez dans ce fichier
           un nombre representant combien de blocs disques (de 512 octets)
           d'espace libre il doit rester pour qu'un travail d'impression soit
           accepte.

           Cela vous permet de vous assurer que des utilisateurs distants ne
           rempliront pas votre systeme de fichiers. Vous pouvez egalement
           vous en servir pour accorder une certaine priorite aux
           utilisateurs locaux: ils pourront placer des travaux d'impression
           dans la file bien apres que l'espace libre soit tombe sous le
           seuil indique dans le fichier minfree.

           Par exemple, ajoutons un fichier minfree pour l'imprimante bamboo.
           Nous examinons /etc/printcap pour trouver le repertoire de file
           d'impression pour cette imprimante; voici l'entree concernant
           bamboo:

 bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
         :sh:sd=/var/spool/lpd/bamboo:sc:rg=artists:mx#5000:\
         :lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts:rw:mx#5000:\
         :if=/usr/local/libexec/psif:\
         :df=/usr/local/libexec/psdf:

           Le repertoire de file d'impression est precise par le parametre
           sd. Nous placerons `a trois mega-octets (soit 6144 blocs disque)
           la limite d'espace libre devant exister sur le systeme de fichiers
           pour que LPD accepte les travaux d'impression distants:

 # echo 6144 > /var/spool/lpd/bamboo/minfree
              

   Restrictions sur l'utilisateur

           Vous pouvez controler quels utilisateurs distants ont le droit
           d'imprimer sur les imprimantes locales en positionnant le
           parametre rs dans /etc/printcap. Lorsque rs est present dans
           l'entree d'une imprimante connectee localement, LPD acceptera les
           travaux d'impressions de machines distantes si l'utilisateur
           soumettant le travail possede egalement un compte sous le meme nom
           sur la machine locale. Sinon, LPD refusera le travail
           d'impression.

           Ce parametre se revele particulierement utile dans un
           environnement ou (par exemple) existent plusieurs services qui
           partagent un reseau, et que des utilisateurs debordent les
           frontieres de ces services. En leur donnant des comptes sur vos
           systemes, vous leur permettez d'utiliser vos imprimantes depuis
           les systemes de leur propre service. Si vous preferez les
           autoriser `a n'utiliser que vos imprimantes et pas les autres
           ressources de l'ordinateur, alors vous pouvez leur attribuer des
           comptes << bloques >>, sans repertoire de connexion et avec un
           interpreteur de commandes inutilisable comme /usr/bin/false.

  9.4.5. Comptabiliser l'utilisation de l'imprimante

   Donc vous voulez faire payer vos impressions. Et pourquoi pas? Le papier
   et l'encre coutent de l'argent. Et puis, il y a les couts de
   maintenance-les imprimantes sont constituees de pieces mobiles et ont
   tendance `a tomber en panne. Vous avez etudie vos imprimantes, vos modes
   d'utilisation et factures de maintenance, et avez abouti `a un cout par
   page (ou par pied, par metre, ou par ce que vous voulez). Maintenant,
   comment commencer `a comptabiliser les impressions, dans les faits?

   Eh bien, la mauvaise nouvelle est que le gestionnaire d'impression LPD ne
   vous aide pas beaucoup dans ce domaine. La comptabilisation depend
   fortement du type d'imprimante que vous employez, des formats que vous
   imprimez et de vos besoins pour ce qui est de faire payer l'utilisation de
   l'imprimante.

   Pour mettre en oeuvre la comptabilisation, il vous faut modifier le filtre
   texte de l'imprimante (pour faire payer les travaux d'impression de texte
   brut) et ses filtres de conversion (pour faire payer les autres formats de
   fichiers), pour compter les pages ou demander `a l'imprimante combien elle
   en a imprimees. Vous ne pouvez pas vous en tirer en utilisant le filtre de
   sortie simple, puisqu'il ne peut pas gerer la comptabilisation. Voir la
   section Les filtres.

   En general, il existe deux fac,ons de proceder `a la comptabilisation:

     * La comptabilisation periodique est la plus habituelle, probablement
       parce que la plus facile. Chaque fois que quelqu'un imprime un
       travail, le filtre enregistre l'utilisateur, la machine et le nombre
       de pages dans un fichier de comptabilisation. Tous les mois,
       semestres, annees ou toute autre echeance que vous desirez, vous
       recuperez les fichiers de comptabilisation des diverses imprimantes,
       etablissez les pages imprimees par les utilisateurs, et faites payer
       l'utilisation. Purgez ensuite tous les fichiers de comptabilisation,
       pour commencer `a zero la nouvelle periode.

     * La comptabilisation `a la volee est moins repandue, peut-etre parce
       qu'elle s'avere plus difficile. Cette methode laisse les filtres
       s'occuper de taxer les utilisateurs pour les impressions des qu'ils
       utilisent les imprimantes. Tout comme les quotas disques, la
       comptabilisation est immediate. Vous pouvez empecher les utilisateurs
       d'imprimer quand leur compte est dans le rouge, et pourriez leur
       fournir un moyen de verifier et ajuster leurs << quotas
       d'impression >>. Cependant, cette methode necessite la mise en oeuvre
       d'une base de donnees afin de tracer les utilisateurs et leurs quotas.

   Le gestionnaire d'impression LPD gere les deux methodes facilement:
   puisque vous devez fournir les filtres (enfin, la plupart du temps), vous
   devez egalement fournir le code de comptabilisation. Mais il y a un bon
   cote: vous disposez d'une enorme flexibilite dans vos methodes de
   comptabilisation. Par exemple, vous avez le choix entre les
   comptabilisations periodique et `a la volee. Vous avez le choix des
   informations `a tracer: noms d'utilisateurs, noms de machines, types des
   travaux d'impression, pages imprimees, surface de papier utilisee, duree
   d'impression du travail, etc. Et vous le faites en modifiant les filtres
   afin d'enregistrer ces informations.

    9.4.5.1. Comptabilisation rapide et simplifiee des impressions

   Deux programmes sont livres avec FreeBSD qui vous permettent de mettre en
   place une comptabilisation periodique simple immediatement. Il s'agit du
   filtre texte lpf, detaille dans la section lpf: un filtre texte, et de
   pac(8), un programme qui rassemble et fait le total des entrees contenues
   dans des fichiers de comptabilisation d'impressions.

   Comme indique dans la section sur les filtres (Fonctionnement des
   filtres), LPD lance les filtres texte et de conversion avec le nom du
   fichier de comptabilisation `a employer fourni en argument. Les filtres
   peuvent utiliser ce parametre pour savoir ou ecrire un enregistrement de
   comptabilisation. Le nom de ce fichier provient du parametre af dans
   /etc/printcap, et si le chemin donne n'est pas absolu, alors c'est un
   chemin d'acces relatif au repertoire de file d'impression.

   LPD lance lpf avec les parametres de largeur et hauteur de page (qui
   correspondent aux parametres pw et pl). Le filtre lpf les utilise pour
   determiner combien de papier sera consomme. Apres avoir envoye le fichier
   `a l'imprimante, il enregistre ensuite une entree dans le fichier de
   comptabilisation. Les entrees ressemblent `a ceci:

 2.00 rose:andy
 3.00 rose:kelly
 3.00 orchid:mary
 5.00 orchid:mary
 2.00 orchid:zhang

   Vous devriez utiliser un fichier de comptabilisation separe pour chaque
   imprimante, lpf ne disposant pas de mecanisme de verrouillage des
   fichiers, deux lpf pourraient corrompre leurs entrees respectives s'ils
   essayaient d'ecrire dans le meme fichier en meme temps. Une maniere aisee
   de s'assurer d'un fichier de comptabilisation separe pour chaque
   imprimante est de recourir au parametre af=acct dans /etc/printcap. Des
   lors, un fichier de comptabilisation, nomme acct, sera place dans le
   repertoire de file d'impression de chaque imprimante.

   Lorsque vous serez prets `a faire payer les utilisateurs pour leurs
   impressions, lancez le programme pac(8). Placez-vous simplement dans le
   repertoire de file d'impression de l'imprimante pour laquelle vous voulez
   collecter les informations, et tapez pac. Vous obtiendrez un recapitulatif
   en dollars ressemblant `a ceci:

   Login               pages/feet   runs    price
 orchid:kelly                5.00    1   $  0.10
 orchid:mary                31.00    3   $  0.62
 orchid:zhang                9.00    1   $  0.18
 rose:andy                   2.00    1   $  0.04
 rose:kelly                177.00  104   $  3.54
 rose:mary                  87.00   32   $  1.74
 rose:root                  26.00   12   $  0.52

 total                     337.00  154   $  6.74

   Voici les arguments attendus par pac(8):

   -Pimprimante

           Pour quelle imprimante effectuer un recapitulatif. Cette option ne
           fonctionne que si un chemin d'acces absolu est donne dans le
           parametre af de /etc/printcap.

   -c

           Trier selon le cout plutot qu'alphabetiquement par nom
           d'utilisateur.

   -m

           Ignorer le nom de la machine dans les fichiers de
           comptabilisation. Avec cette option, l'utilisateur smith sur la
           machine alpha est le meme que l'utilisateur smith sur la machine
           gamma. Sans elle, ils representent des utilisateurs distincts.

   -pprix

           Calculer le cout en comptant un prix en dollars par page ou par
           pied au lieu du prix indique par le parametre pc dans
           /etc/printcap, ou deux cents (la valeur par defaut). Vous pouvez
           preciser le prix en nombre `a virgule flottante.

   -r

           Inverser l'ordre du tri.

   -s

           Creer un fichier de rapport et tronquer le fichier de
           comptabilisation.

   nom ...

           N'imprimer des statistiques que pour les utilisateurs dont les
           noms sont donnes.

   Dans le recapitulatif produit par defaut par pac(8), vous pouvez lire le
   nombre de pages imprimees par chaque utilisateur depuis les differentes
   machines. Si, sur votre site, la machine n'a pas d'importance (parce que
   les utilisateurs peuvent utiliser n'importe quelle machine), lancez pac
   -m, afin de produire le recapitulatif ci-dessous:

   Login               pages/feet   runs    price
 andy                        2.00    1   $  0.04
 kelly                     182.00  105   $  3.64
 mary                      118.00   35   $  2.36
 root                       26.00   12   $  0.52
 zhang                       9.00    1   $  0.18

 total                     337.00  154   $  6.74

   Afin de calculer le montant du en dollars, pac(8) utilise le parametre pc
   de /etc/printcap (200 par defaut, c'est `a dire 2 cents par page).
   Precisez avec ce parametre le prix par page ou par pied, exprime en
   centiemes de cents, que vous voulez imputer aux impressions. Vous pouvez
   specifier cette valeur lorsque vous lancez pac(8) avec l'option -p.
   Cependant, avec cette option, les unites sont exprimees en dollars, et non
   en centiemes de cents. Par exemple,

 # pac -p1.50

   fait en sorte que chaque page coute un dollar et cinquante cents. Vous
   pouvez vraiment faire des benefices en utilisant cette option.

   Enfin, lancer pac -s enregistrera les informations du recapitulatif dans
   un fichier, dont le nom sera le meme que le fichier de comptabilisation de
   l'imprimante mais avec le suffixe _sum. Il procede alors `a la troncature
   du fichier de comptabilisation. Lorsque vous executez pac(8) `a nouveau,
   il relit le fichier recapitulatif pour etablir les totaux de depart, puis
   ajoute les informations du fichier de comptabilisation normal.

    9.4.5.2. Comment compter les pages imprimees?

   Afin de realiser une comptabilisation precise et cela meme `a distance,
   vous devez pouvoir determiner combien un travail d'impression consomme de
   papier. C'est le probleme principal de la comptabilisation des
   impressions.

   Pour du texte brut, ce probleme n'est pas complique `a resoudre: vous
   comptez combien un travail d'impression comporte de lignes et comparez
   avec le nombre de lignes par page que gere votre imprimante. N'oubliez pas
   de tenir compte des retours arriere dans le fichier, qui superposent les
   lignes, ou des longues lignes qui s'etendent sur une ou plusieurs lignes
   physiques supplementaires.

   Le filtre texte lpf (presente `a la section lpf: un filtre texte) prend
   ces elements en consideration lorsqu'il effectue la comptabilisation. Si
   vous ecrivez un filtre texte qui doit effectuer une comptabilisation, vous
   pouvez vous inspirer du code source de lpf.

   Mais comment gerer les autres formats?

   Eh bien, pour la conversion DVI-vers-LaserJet ou DVI-vers-PostScript(R),
   vous pouvez faire analyser les messages de sortie de dvilj ou dvips par
   votre filtre et regarder combien de pages ont ete converties. Vous devriez
   pouvoir proceder de maniere identique avec d'autres formats de fichiers et
   programmes de conversion.

   Mais ces methodes connaissent un defaut: il se peut que l'imprimante
   n'imprime pas toutes ces pages. Par exemple, un bourrage peut se produire,
   l'imprimante peut arriver `a cours d'encre, ou exploser - et l'utilisateur
   serait tout de meme debite.

   Alors, que pouvez-vous faire?

   Il n'existe qu'une seule methode sure pour proceder `a une
   comptabilisation precise. Prenez une imprimante qui sache dire combien de
   papier elle utilise, et reliez-la par un cable serie ou une connection
   reseau. Presque toutes les imprimantes PostScript(R) gerent cela. D'autres
   types et modeles egalement (les imprimantes laser reseau Imagen, par
   exemple). Modifiez les filtres pour ces imprimantes afin d'obtenir la
   consommation de pages apres chaque travail d'impression et faites en sorte
   qu'elles enregistrent des informations de comptabilisation basees sur
   cette seule valeur. Nul besoin de compter les lignes ou d'une analyse de
   fichier susceptible d'etre erronee.

   Bien entendu, vous pouvez toujours etre genereux et rendre toutes les
   impressions gratuites.

9.5. Using Printers ** Traduction en Cours **

  9.5.1. Printing Jobs

  9.5.2. Checking Jobs

  9.5.3. Removing Jobs

  9.5.4. Beyond Plain Text: Printing Options

    9.5.4.1. Formatting and Conversion Options

    9.5.4.2. Job Handling Options

    9.5.4.3. Header Page Options

  9.5.5. Administering Printers

9.6. Alternatives to the Standard Spooler ** Traduction en Cours **

9.7. Troubleshooting ** Traduction en Cours **

Chapitre 10. Compatibilite binaire avec Linux(R)

   Restructure et en partie mis `a jour par Jim Mock.
   Contribution originelle de Brian N. Handy et Rich Murphey.
   Table des matieres

   10.1. Synopsis

   10.2. Configurer la compatibilite binaire avec Linux(R)

   10.3. Sujets avances

   Version franc,aise de Marc Fonvieille <blackend@FreeBSD.org>.

10.1. Synopsis

   FreeBSD fournit une compatibilite binaire avec Linux(R), permettant aux
   utilisateurs d'installer et d'executer la plupart des applications
   Linux(R) sur un systeme FreeBSD sans avoir `a modifier ces applications.
   On rapporte egalement que dans certaines situations, les binaires Linux
   sont plus performants sous FreeBSD que sous Linux(R),.

   Il existe cependant certaines caracteristiques specifiques `a Linux(R),
   qui ne sont pas supportees sous FreeBSD. Par exemple, des binaires
   Linux(R) ne fonctionneront pas sous FreeBSD s'ils utilisent massivement
   des appels i386(TM) specifiques, comme activation du mode virtuel 8086.

  Note:

   Le support de la compatibilite Linux(R) pour les binaires 64bits a ete
   ajoute avec FreeBSD 10.3.

   Apres la lecture de ce chapitre, vous connaitrez:

     * Comment activer la compatibilite binaire avec Linux(R) sur un systeme
       FreeBSD.

     * Comment installer des bibliotheques partagees Linux(R)
       supplementaires.

     * Comment installer des application Linux(R) sur un systeme FreeBSD.

     * Les details de l'implementation de la compatibilite Linux(R) sous
       FreeBSD.

   Avant de lire ce chapitre, vous devrez:

     * Savoir comment installer des logiciels tiers.

10.2. Configurer la compatibilite binaire avec Linux(R)

   Par defaut, les bibliotheques Linux(R) ne sont pas installees et la
   compatibilite binaire avec Linux n'est pas activee. Les bibliotheques
   Linux(R) peuvent etre installees soit manuellement soit `a partir du
   catalogue des logiciels portes.

   Avant de tenter de compiler un logiciel, charger le module du noyau
   Linux(R), sinon la compilation risque d'echouer:

 # kldload linux

   Pour une compatibilite en 64bits:

 # kldload linux64

   Pour verifier que le module est bien charge:

 % kldstat
       Id Refs Address    Size     Name
       1    2 0xc0100000 16bdb8   kernel
       7    1 0xc24db000 d000     linux.ko

   Le logiciel precompile emulators/linux_base-c7 ou la version compilee `a
   partir du catalogue des logiciels portes est la methode la plus simple
   pour installer l'ensemble des bibliotheques et binaires de base Linux(R)
   sur un systeme FreeBSD. Pour installer le logiciel porte:

 # pkg install emulators/linux_base-c7

   Pour activer au demarrage la compatibilite Linux(R), ajouter ligne
   suivante au fichier /etc/rc.conf:

 linux_enable="YES"

   Sur les machines 64bits, /etc/rc.d/abi chargera automatiquement le module
   pour l'emulation 64bits.

   Depuis qu'`a ete ajoute le support pour l'execution des binaires Linux(R)
   32 et 64 bits `a la couche de compatibilite Linux(R) (sur les hotes 64
   bits de type x86), il n'est plus possible d'ajouter l'emulation en
   statique dans un noyau personnalise.

  10.2.1. Installer des bibliotheques supplementaires `a la main

   Si une application Linux(R) se plaint de l'absence d'une bibliotheque
   partagee apres avoir configure la compatibilite binaire Linux(R),
   determinez quelle est la bibliotheque partagee necessaire au binaire
   Linux(R) et installez-la `a la main.

   A partir d'un systeme Linux(R), la commande ldd peut etre utilisee pour
   determiner quelles sont les bibliotheques partagees dont l'application a
   besoin. Par exemple, pour controler quelles bibliotheques partagees sont
   necessaires `a linuxdoom, executer cette commande `a partir d'un systeme
   Linux(R) ou est installe Doom:

 % ldd linuxdoom
 libXt.so.3 (DLL Jump 3.1) => /usr/X11/lib/libXt.so.3.1.0
 libX11.so.3 (DLL Jump 3.1) => /usr/X11/lib/libX11.so.3.1.0
 libc.so.4 (DLL Jump 4.5pl26) => /lib/libc.so.4.6.29

   Ensuite, copier tous les fichiers mentionnes dans la derniere colonne, du
   systeme sous Linux(R) vers /compat/linux sur le systeme FreeBSD. Une fois
   copies, creer les liens symboliques vers les noms de fichiers donnes dans
   la premiere colonne. Cet exemple donnera lieu aux fichiers suivants sur le
   systeme FreeBSD:

 /compat/linux/usr/X11/lib/libXt.so.3.1.0
 /compat/linux/usr/X11/lib/libXt.so.3 -> libXt.so.3.1.0
 /compat/linux/usr/X11/lib/libX11.so.3.1.0
 /compat/linux/usr/X11/lib/libX11.so.3 -> libX11.so.3.1.0
 /compat/linux/lib/libc.so.4.6.29
 /compat/linux/lib/libc.so.4 -> libc.so.4.6.29

   Si une bibliotheque Linux(R) partagee existe avec le meme numero de
   version majeure que celle indiquee par la premiere colonne du resultat de
   la commande ldd, il est inutile de la copier vers le nom de fichier donne
   par la derniere colonne, la bibliotheque dej`a existante devrait
   fonctionner. Il est cependant recommande de copier malgre tout la
   bibliotheque partagee si c'est une version recente. L'ancienne version
   peut etre supprimee, du moment que le lien symbolique pointe sur la
   nouvelle.

   Par exemple, les bibliotheques suivantes existent dej`a sur le systeme
   FreeBSD:

 /compat/linux/lib/libc.so.4.6.27
 /compat/linux/lib/libc.so.4 -> libc.so.4.6.27

   et ldd indique qu'un binaire a besoin d'une version plus recente:

 libc.so.4 (DLL Jump 4.5pl26) -> libc.so.4.6.29

   Etant donne que la bibliotheque existante n'a qu'une ou deux versions de
   retard sur le dernier digit, le programme devrait fonctionner avec la
   version legerement plus ancienne. Il est, neanmoins, plus sur de remplacer
   la libc.so existante avec la version plus recente:

 /compat/linux/lib/libc.so.4.6.29
 /compat/linux/lib/libc.so.4 -> libc.so.4.6.29

   Generalement, vous ne devrez cherchez `a savoir de quelles bibliotheques
   partagees dependent les binaires Linux(R) que les premieres fois que vous
   installerez des programmes Linux(R) sur le systeme FreeBSD. Au bout d'un
   moment, il y aura un ensemble suffisant de bibliotheques partagees
   Linux(R) sur le systeme pour etre en mesure d'executer les binaires
   Linux(R) nouvellement importes sans effort supplementaire.

  10.2.2. Installer des binaires Linux(R) ELF

   Une etape supplementaire est parfois necessaire pour les binaires ELF.
   Quand un binaire ELF non marque est execute, une erreur sera generee:

 % ./mon-binaire-elf-linux
 ELF binary type not known
 Abort

   Pour que le noyau FreeBSD puisse distinguer un binaire ELF FreeBSD d'un
   binaire Linux(R), vous devez employer l'utilitaire brandelf(1):

 % brandelf -t Linux mon-binaire-elf-linux

   Les outils GNU incorporent desormais automatiquement les marques
   necessaires dans les binaires ELF, cette etape n'est generalement pas
   necessaire.

  10.2.3. Installer une application Linux(R) basee sur RPM

   Pour installer une application Linux(R) basee sur RPM, installer en
   premier le logiciel precompile ou porte archivers/rpm4. Une fois installe,
   root peut utiliser la commande suivante pour installer un .rpm:

 # cd /compat/linux
 # rpm2cpio < /path/to/linux.archive.rpm | cpio -id

   Si necessaire, utiliser brandelf sur les binaires ELF installes. Il faut
   noter que cela empechera une desinstallation propre.

  10.2.4. Configurer le resolveur de noms de domaines

   Si le DNS ne fonctionne pas, ou si cette erreur apparait::

 resolv+: "bind" is an invalid keyword resolv+:
 "hosts" is an invalid keyword

   Vous devrez configurer un fichier /compat/linux/etc/host.conf contenant:

 order hosts, bind
 multi on

   Cela indique qu'il faut tout d'abord regarder dans le fichier /etc/hosts
   puis interroger le DNS. Quand le fichier /compat/linux/etc/host.conf
   n'existe pas, les applications Linux(R) trouvent le fichier /etc/host.conf
   et se plaignent de sa syntaxe FreeBSD incompatible. Supprimez bind si un
   serveur de noms n'est pas configure avec le fichier /etc/resolv.conf.

10.3. Sujets avances

   Cette section decrit comment la compatibilite binaire avec Linux(R)
   fonctionne, et est basee sur un courrier electronique de Terry Lambert
   <tlambert@primenet.com> envoye `a la liste de diffusion pour la discussion
   de sujets non-techniques en rapport avec FreeBSD (Message ID:
   <199906020108.SAA07001@usr09.primenet.com>).

   FreeBSD possede une abstraction appelee "chargeur de classe d'execution".
   C'est une portion de l'appel systeme execve(2).

   Historiquement, le chargeur UNIX(R) examinait le nombre magique
   (generalement les 4 ou 8 premiers octets du fichier) pour voir si c'etait
   un binaire connu par le systeme, et si c'etait le cas, invoquait le
   chargeur binaire.

   Si ce n'etait pas le type de binaire du systeme, l'appel execve(2)
   retournait un echec, et l'interpreteur de commandes tentait de l'executer
   comme une commande d'interpreteur. Cette hypothese etait celle par defaut
   << quelque soit l'interpreteur de commandes actuel >>.

   Plus tard, une modification a ete faite sur sh(1) pour examiner les deux
   premiers caracteres, et s'ils etaient :\n, alors elle invoquait
   l'interpreteur de commandes csh(1) `a la place.

   FreeBSD possede desormais une liste de chargeurs, avec un chargeur par
   defaut, #!, pour executer les interpreteurs ou les procedures de
   commandes.

   Pour le support de l'ABI Linux(R), FreeBSD voit le nombre magique comme un
   binaire ELF. Le chargeur ELF recherche une marque specifique, qui se
   trouve dans une section de commentaires dans l'image ELF, et qui n'est pas
   presente dans les binaires SVR4/Solaris(TM) ELF.

   Pour que les binaires Linux(R) puissent fonctionner, ils doivent etre
   marques sous le type Linux avec brandelf(1):

 # brandelf -t Linux file

   Lorsque le chargeur ELF voit le marquage Linux, le chargeur remplace un
   pointeur dans la structure proc. Tous les appels systeme sont indexes par
   l'intermediaire de ce pointeur (dans un systeme UNIX(R) traditionnel, cela
   serait la structure sysent[], contenant les appels systeme). De plus, le
   processus est marque pour une gestion speciale du vecteur d'interruption
   ("trap") pour le signal de code "trampoline", et plusieurs autres
   corrections (mineures) qui sont gerees par le noyau Linux(R).

   Le vecteur d'appel systeme Linux(R) contient, entre autres, une liste des
   entrees sysent[] dont les adresses resident dans le noyau.

   Quand un appel systeme est effectue par le binaire Linux, le code "trap"
   dereference de la structure proc le pointeur de la fonction de l'appel
   systeme, et utilise les points d'entree Linux(R), et non pas FreeBSD, de
   d'appel systeme.

   Le mode Linux(R) redefinit dynamiquement l'origine des requetes. C'est, en
   effet, equivalent `a l'option union de montage des systemes de fichiers.
   Tout d'abord, une tentative est faite pour rechercher le fichier dans le
   repertoire /compat/linux/chemin-origine. Si cela echoue, la recherche est
   effectuee dans le repertoire /chemin-origine. Cela permet de s'assurer que
   les binaires necessitant d'autres binaires puissent s'executer. Par
   exemple, l'ensemble des outils Linux(R) peuvent tourner sous l'ABI
   Linux(R). Cela signifie egalement que les binaires Linux(R) peuvent
   charger et executer les binaires FreeBSD, s'il n'y a pas de binaires
   Linux(R) correspondant presents, et vous pourriez placer une commande
   uname(1) dans l'arborescence /compat/linux pour vous assurer que les
   binaires Linux(R) ne puissent pas dire qu'ils ne tournent pas sous
   Linux(R).

   En effet, il y a un noyau Linux(R) dans le noyau FreeBSD. Les diverses
   fonctions sous-jacentes qui implementent tous les services fournis par le
   noyau sont identiques entre les deux tables d'entrees des appels systemes
   FreeBSD et Linux(R): les operations sur les systemes de fichiers, les
   operations sur la memoire virtuelle, la gestion des signaux, iet l'IPC
   System V. La seule difference est que les binaires FreeBSD utilisent les
   fonctions glue de FreeBSD, et les binaires Linux(R) celles de Linux(R).
   Les fonctions glue de FreeBSD sont liees en statique dans le noyau, les
   fonctions glue Linux(R) peuvent etre liees statiquement, ou l'on peut y
   acceder via un module du noyau.

   Techniquement, ce n'est pas vraiment de l'emulation, c'est
   l'implementation d'une interface binaire pour les applications (ABI). Cela
   est parfois appele << emulation Linux(R) >> parce que l'implementation a
   ete faite `a une epoque ou il n'y avait pas vraiment d'autres mots pour
   decrire ce qui etait en developpement. Dire que FreeBSD executait les
   binaires Linux(R) n'etait pas vrai, jusqu'`a ce le code de support
   Linux(R) soit compile ou le module soit charge.

                       Partie III. Administration Systeme

   Les chapitres restant couvrent tous les aspects de l'administration
   systeme de FreeBSD. Chaque chapitre debute en decrivant ce qui sera appris
   `a la lecture du chapitre, et detaille egalement ce que le lecteur est
   sense connaitre avant de l'aborder.

   Ces chapitres sont conc,us pour etre consultes des qu'une information est
   necessaire. Il n'est pas necessaire de les lire suivant un ordre
   particulier, ni tous les lire avant de pouvoir utiliser FreeBSD.

   Table des matieres

   11. Configuration et optimisation

                11.1. Synopsis

                11.2. Configuration principale

                11.3. Configuration des applications

                11.4. Demarrer des services

                11.5. Configuration de l'utilitaire cron

                11.6. Utilisation du systeme rc(8) sous FreeBSD

                11.7. Configuration des cartes reseaux

                11.8. Hotes virtuels

                11.9. Fichiers de configuration

                11.10. Optimisation avec sysctl(8)

                11.11. Optimiser les disques

                11.12. Optimisation des limitations du noyau

                11.13. Ajouter de l'espace de pagination

                11.14. Gestion de l'energie et des ressources

                11.15. Utiliser et deboguer l'ACPI sous FreeBSD

   12. Processus de demarrage de FreeBSD

                12.1. Synopsis

                12.2. Le probleme du demarrage

                12.3. Le gestionnaire de demarrage et les etapes de demarrage

                12.4. Interaction avec le noyau au demarrage

                12.5. "Device Hints"-Parametrage des peripheriques

                12.6. Init: Initialisation de la gestion des processus

                12.7. Sequence d'arret du systeme

   13. Gestion des comptes et des utilisateurs

                13.1. Synopsis

                13.2. Introduction

                13.3. Le compte super-utilisateur

                13.4. Comptes systeme

                13.5. Comptes utilisateur

                13.6. Modifier des comptes

                13.7. Mettre en place des restrictions pour les utilisateurs

                13.8. Groupes

   14. Securite

                14.1. Synopsis

                14.2. Introduction

                14.3. Securing FreeBSD ** Traduction en Cours **

                14.4. DES, MD5, et chiffrement

                14.5. Mots de passe non reutilisables

                14.6. L'encapsuleur TCP (<< TCP Wrappers >>)

                14.7. Kerberos

                14.8. Kerberos5 ** Traduction en Cours **

                14.9. OpenSSL

                14.10. IPsec

                14.11. OpenSSH

                14.12. Listes de controle d'acces au systeme de fichiers

                14.13. Surveillance des problemes de securite relatifs aux
                programmes tierce-partie

                14.14. Avis de securite de FreeBSD

                14.15. Comptabilite des processus

   15. Environnements jail

                15.1. Synopsis

                15.2. Termes relatifs aux environnements jail

                15.3. Introduction

                15.4. Creation et controle de l'environnement jail

                15.5. Optimisation et administration

   16. Mandatory Access Control ** Traduction en Cours **

                16.1. Synopsis

                16.2. Key Terms in this Chapter

                16.3. Explanation of MAC

                16.4. Understanding MAC Labels

                16.5. Module Configuration

                16.6. The MAC bsdextended Module

                16.7. The MAC ifoff Module

                16.8. The MAC portacl Module

                16.9. MAC Policies with Labeling Features

                16.10. The MAC partition Module

                16.11. The MAC Multi-Level Security Module

                16.12. The MAC Biba Module

                16.13. The MAC LOMAC Module

                16.14. Implementing a Secure Environment with MAC

                16.15. Another Example: Using MAC to Constrain a Web Server

                16.16. Troubleshooting the MAC Framework

   17. Audit des evenements relatifs `a la securite du systeme

                17.1. Synopsis

                17.2. Mots-cles

                17.3. Configuration de l'audit

                17.4. Travailler avec les traces d'audit

   18. Stockage des donnees

                18.1. Synopsis

                18.2. Noms des peripheriques

                18.3. Ajouter des disques

                18.4. RAID

                18.5. Peripheriques de stockage USB

                18.6. Creation et utilisation de supports optiques (CDs)

                18.7. Creation et utilisation de supports optiques (DVDs)

                18.8. Creation et utilisation de disquettes

                18.9. Creer et utiliser les bandes magnetiques

                18.10. Sauvegardes sur disquettes

                18.11. Strategies de sauvegarde

                18.12. Sauvegardes

                18.13. Systemes de fichiers reseaux, en memoire et
                sauvegardes sur fichier

                18.14. Instantane ("Snapshot") d'un systeme de fichiers

                18.15. Quotas d'utilisation des disques

                18.16. Chiffrer les partitions d'un disque

                18.17. Chiffrage de l'espace de pagination

   19. GEOM: architecture modulaire de gestion des disques

                19.1. Synopsis

                19.2. Introduction `a GEOM

                19.3. RAID0 - << Striping >>

                19.4. RAID1 - << mirroring >>

                19.5. Peripheriques reseau << GEOM Gate >>

                19.6. Ajouter un label `a un disque

   20. The Z File System (ZFS) ** Traduction en Cours **

                20.1. What Makes ZFS Different

                20.2. Quick Start Guide

                20.3. zpool Administration

                20.4. zfs Administration

                20.5. Delegated Administration

                20.6. Additional Resources

                20.7. ZFS Features and Terminology

   21. Autres systemes de fichiers

                21.1. Synopsis

                21.2. Systemes de fichiers Linux(R)

   22. Le gestionnaire de volume Vinum

                22.1. Synopsis

                22.2. Les disques sont trop petits

                22.3. Les goulots d'etranglement d'acces aux donnees

                22.4. Integrite des donnees

                22.5. Objets Vinum

                22.6. Quelques exemples

                22.7. Appellation des objets

                22.8. Configuration de Vinum

   23. Virtualisation

                23.1. Synopsis

                23.2. FreeBSD comme systeme d'exploitation invite

                23.3. FreeBSD comme systeme d'exploitation hote

   24. Localisation - Utilisation et configuration de l'I18N/L10N

                24.1. Synopsis

                24.2. Les bases

                24.3. Utiliser la localisation

                24.4. Compiler des programmes I18N

                24.5. Localiser FreeBSD pour des langues specifiques

   25. Mise `a jour de FreeBSD

                25.1. Synopsis

                25.2. Mise `a jour de FreeBSD

                25.3. Portsnap: un outil de mise `a jour du catalogue des
                logiciels portes

                25.4. Updating the Documentation Set ** Traduction en Cours
                **

                25.5. Suivre une branche de developpement

                25.6. Synchroniser vos sources

                25.7. Recompiler le systeme

                25.8. Suivre les mises `a jour pour plusieurs machines

   26. DTrace

                26.1. Synopsis

                26.2. Des differences de mise en oeuvre

                26.3. Activer la prise en charge de DTrace

                26.4. Utiliser DTrace

                26.5. Le langage D

Chapitre 11. Configuration et optimisation

   Ecrit par Chern Lee.
   Base sur un guide redige par Mike Smith.
   Egalement base sur la page de manuel tuning(7) ecrite par Matt Dillon.
   Table des matieres

   11.1. Synopsis

   11.2. Configuration principale

   11.3. Configuration des applications

   11.4. Demarrer des services

   11.5. Configuration de l'utilitaire cron

   11.6. Utilisation du systeme rc(8) sous FreeBSD

   11.7. Configuration des cartes reseaux

   11.8. Hotes virtuels

   11.9. Fichiers de configuration

   11.10. Optimisation avec sysctl(8)

   11.11. Optimiser les disques

   11.12. Optimisation des limitations du noyau

   11.13. Ajouter de l'espace de pagination

   11.14. Gestion de l'energie et des ressources

   11.15. Utiliser et deboguer l'ACPI sous FreeBSD

   Version franc,aise de Marc Fonvieille <blackend@FreeBSD.org>.

11.1. Synopsis

   La configuration correcte d'un systeme peut sensiblement reduire la
   quantite de travail impliquee dans la maintenance et la mise `a jour. Ce
   chapitre decrit certains des aspects de la configuration des systemes
   FreeBSD.

   Ce chapitre decrira egalement certains parametres qui peuvent etre
   modifies pour configurer un systeme FreeBSD pour des performances
   optimales.

   Apres la lecture de ce chapitre, vous saurez:

     * Les bases de la configuration du fichier rc.conf et des fichiers de
       demarrage /usr/local/etc/rc.d.

     * Comment configurer et tester une carte reseau.

     * Comment configurer des hotes virtuels sur vos peripheriques reseau.

     * Comment utiliser les divers fichiers de configuration du repertoire
       /etc.

     * Comment optimiser FreeBSD en utilisant les variables sysctl.

     * Comment optimiser les performances des disques et modifier les
       limitations du noyau.

   Avant de lire ce chapitre, vous devrez:

     * Comprendre les fondements d'UNIX(R) et de FreeBSD (Chapitre 3,
       Quelques bases d'UNIX).

     * Etre familier avec la configuration et la compilation du noyau
       (Chapitre 8, Configurer le noyau de FreeBSD).

11.2. Configuration principale

   L'emplacement principal pour les donnees de configuration du systeme est
   le fichier /etc/rc.conf. Ce fichier contient une large gamme
   d'informations de configuration, principalement utilisees au demarrage du
   systeme pour configurer ce dernier. Son nom le sous-entend; c'est
   l'information de configuration pour les fichiers rc*.

   Un administrateur devrait ajouter des entrees dans le fichier rc.conf pour
   remplacer les valeurs par defaut du fichier /etc/defaults/rc.conf. Les
   fichiers de valeurs par defaut ne devraient pas etre copies directement
   tels quels dans /etc - ils contiennent des valeurs par defaut, et non pas
   des exemples. Tout changement specifique au systeme devrait etre fait dans
   le fichier rc.conf.

   Un certain nombre de strategies peuvent etre appliquees dans le cas
   d'applications en grappe pour separer la configuration d'un site de celle
   d'un systeme afin de reduire le travail d'administration. L'approche
   recommandee est de placer la configuration propre au site dans le fichier
   /etc/rc.conf.local. Par exemple:

     * /etc/rc.conf:

 sshd_enable="YES"
 keyrate="fast"
 defaultrouter="10.1.1.254"

     * /etc/rc.conf.local:

 hostname="node1.example.org"
 ifconfig_fxp0="inet 10.1.1.1/8"

   Le fichier rc.conf peut etre distribue `a l'ensemble des systemes en
   utilisant rsync ou un programme semblable, tandis que le fichier
   rc.conf.local reste unique.

   Mettre `a jour le systeme en employant sysinstall(8) ou make world
   n'ecrasera pas le fichier rc.conf, les informations de configuration du
   systeme ne seront donc pas perdues.

   Le fichier de configuration /etc/rc.conf est analyse par sh(1). Cela
   permet aux administrateurs systeme d'ajouter un certain niveau de logique
   `a ce fichier, ce qui peut aider `a creer des scenaris de configuration
   complexes. Veuillez consulter rc.conf(5) pour plus d'information sur ce
   sujet.

11.3. Configuration des applications

   Generalement, les applications installees ont leurs propres fichiers de
   configuration, avec leur propre syntaxe, etc... Il est important que ces
   fichiers soient separes du systeme de base, de sorte qu'ils soient
   facilement localisables et gerables par les outils de gestion des
   logiciels installes.

   Ces fichiers sont generalement installes dans le repertoire
   /usr/local/etc. Dans le cas ou une application possede un grand nombre de
   fichiers de configuration, un sous-repertoire sera cree pour les heberger.

   Normalement, quand un logiciel porte ou pre-compile est installe, des
   exemples de fichiers de configuration sont egalement installes. Ces
   derniers sont generalement identifies par un suffixe ".default". Si aucun
   fichier de configuration n'existe pour l'application, on les creera en
   copiant les fichiers .default.

   Par exemple, considerez le contenu du repertoire /usr/local/etc/apache:

 -rw-r--r--  1 root  wheel   2184 May 20  1998 access.conf
 -rw-r--r--  1 root  wheel   2184 May 20  1998 access.conf.default
 -rw-r--r--  1 root  wheel   9555 May 20  1998 httpd.conf
 -rw-r--r--  1 root  wheel   9555 May 20  1998 httpd.conf.default
 -rw-r--r--  1 root  wheel  12205 May 20  1998 magic
 -rw-r--r--  1 root  wheel  12205 May 20  1998 magic.default
 -rw-r--r--  1 root  wheel   2700 May 20  1998 mime.types
 -rw-r--r--  1 root  wheel   2700 May 20  1998 mime.types.default
 -rw-r--r--  1 root  wheel   7980 May 20  1998 srm.conf
 -rw-r--r--  1 root  wheel   7933 May 20  1998 srm.conf.default

   Les tailles des fichiers indiquent que seul le fichier srm.conf a ete
   modifie. Une mise `a jour, plus tard, du logiciel Apache ne devrait pas
   ecraser le fichier modifie.

11.4. Demarrer des services

   Contribution de Tom Rhodes.

   Nombreux sont les utilisateurs qui choisissent d'installer des logiciels
   tierce partie sous FreeBSD `a partir du catalogue des logiciels portes.
   Dans de nombreuses situations, il peut etre necessaire de configurer le
   logiciel de maniere `a ce qu'il soit lance au demarrage du systeme. Des
   services comme mail/postfix ou www/apache22 sont deux exemples de
   logiciels parmi tant d'autres qui peuvent etre lances `a l'initialisation
   du systeme. Cette section explique les procedures disponibles pour
   demarrer certains logiciels tierce partie.

   Sous FreeBSD, la plupart des services offerts, comme cron(8), sont lances
   par l'intermediaire des procedures de demarrage du systeme. Ces procedures
   peuvent varier en fonction de la version de FreeBSD, ou du fournisseur;
   cependant, l'aspect le plus important `a considerer est que leur
   configuration de demarrage peut etre geree `a l'aide de procedures de
   demarrage simples.

  11.4.1. Configuration etendue des applications

   Maintenant que FreeBSD dispose du systeme rc.d, la configuration du
   demarrage des applications est plus simple, et propose plus de
   possibilites. En utilisant les mots cles presentes dans la section sur le
   systeme rc.d, les applications peuvent desormais etre parametrees pour
   demarrer apres certains services, par exemple le DNS, des parametres
   supplementaires peuvent etre passes par l'intermediaire de rc.conf au lieu
   d'utiliser des parametres fixes dans les procedures de demarrage, etc. Une
   procedure de base pourra ressembler `a ce qui suit:

 #!/bin/sh
 #
 # PROVIDE: utility
 # REQUIRE: DAEMON
 # KEYWORD: shutdown

 . /etc/rc.subr

 name=utility
 rcvar=utility_enable

 command="/usr/local/sbin/utility"

 load_rc_config $name

 #
 # DO NOT CHANGE THESE DEFAULT VALUES HERE
 # SET THEM IN THE /etc/rc.conf FILE
 #
 utility_enable=${utility_enable-"NO"}
 pidfile=${utility_pidfile-"/var/run/utility.pid"}

 run_rc_command "$1"

   Cette procedure s'assurera que l'application utility sera lancee apres le
   le service DAEMON. Elle fournie egalement une methode de suivi du PID, ou
   encore ID (identifiant) de processus.

   Cette application pourra alors avoir la ligne suivante la concernant dans
   le fichier /etc/rc.conf:

 utility_enable="YES"

   Cette methode permet egalement une manipulation plus aisee des arguments
   en ligne de commande, l'inclusion des fonctions offertes par defaut dans
   /etc/rc.subr, offre une compatibilite avec l'utilitaire rcorder(8) et
   fournie une configuration plus aisee par l'intermediaire du fichier
   rc.conf.

  11.4.2. Utiliser des services pour demarrer d'autres services

   Certains services, comme les serveurs POP3, IMAP, etc., peuvent etre
   demarres en utilisant inetd(8). Cela implique d'installer le service `a
   partir du catalogue des logiciels portes et avec une ligne de
   configuration ajoutee au fichier /etc/inetd.conf, ou en decommentant une
   des lignes de configuration dej`a presentes. L'utilisation d'inetd et sa
   configuration sont decrits en profondeur dans la section concernant inetd.

   Dans certains cas, il peut etre plus approprie d'utiliser le << daemon >>
   cron(8) pour demarrer des services. Cette approche presente un certain
   nombre d'avantages parce que cron execute ces processus sous les
   privileges du proprietaire de la table crontab. Cela permet aux
   utilisateurs normaux de lancer et maintenir certaines applications.

   L'utilitaire cron offre une fonction unique, @reboot, qui peut etre
   utilisee en remplacement de la date d'execution. Cela provoquera
   l'execution de la tache quand cron(8) est lance, normalement lors de
   l'initialisation du systeme.

11.5. Configuration de l'utilitaire cron

   Contribution de Tom Rhodes.

   Un des utilitaires les plus importants de FreeBSD est cron(8).
   L'utilitaire cron tourne en arriere plan et controle constamment le
   fichier /etc/crontab. L'utilitaire cron consulte egalement le repertoire
   /var/cron/tabs, `a la recherche de nouveaux fichiers crontab. Ces fichiers
   crontab conservent les informations sur les taches que cron est cense
   executer `a des moments donnes.

   L'utilitaire cron utilise deux types differents de fichiers de
   configuration, le fichier crontab systeme et les crontabs des
   utilisateurs. Ces deux formats different `a partir du sixieme champ. Dans
   le fichier crontab systeme, cron executera la commande en tant que
   l'utilisateur indique dans le sixieme champ. Dans le fichier crontab d'un
   utilisateur, toutes les commandes sont executees sous l'utilisateur qui a
   cree ce fichier crontab, aussi le sixieme champ est le dernier champ;
   c'est un aspect securite important. Le dernier champ est toujours la
   commande `a executer.

  Note:

   Les fichiers crontab utilisateur permettent aux utilisateurs de planifier
   l'execution de taches sans avoir besoin des privileges du
   super-utilisateur root. Les commandes contenues dans le fichier crontab
   d'un utilisateur s'executent avec les privileges de l'utilisateur auquel
   appartient ce fichier.

   Le super-utilisateur root peut posseder un fichier crontab utilisateur
   comme tout autre utilisateur. Ce fichier est different de /etc/crontab (le
   crontab systeme). Etant donne que le fichier crontab systeme invoque les
   commandes specifiees en tant que root, il n'y a generalement pas besoin
   d'un fichier crontab utilisateur pour root.

   Examinons le fichier /etc/crontab (fichier crontab systeme):

 # /etc/crontab - root's crontab for FreeBSD
 #
 # $FreeBSD: src/etc/crontab,v 1.32 2002/11/22 16:13:39 tom Exp $
 # 1
 #
 SHELL=/bin/sh
 PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin 2
 HOME=/var/log
 #
 #
 #minute heure   date    mois    jour    utilisateur     commande 3
 #
 #
 */5     *       *       *       *       root    /usr/libexec/atrun 4

   1 Comme pour la plupart des fichiers de configuration de FreeBSD, le       
     caractere # indique un commentaire. Un commentaire peut etre ajoute dans 
     le fichier comme rappel de ce que fait une action bien precise et        
     pourquoi elle est effectuee. Les commentaires ne peuvent etre situes sur 
     la meme ligne qu'une commande ou sinon ils seront interpretes comme      
     faisant partie de la commande; ils doivent se trouver sur une nouvelle   
     ligne. Les lignes vides sont ignorees.                                   
   2 Tout d'abord, les variables d'environnement doivent etre definies. Le    
     caractere egal (=) est utilise pour definir tout parametre concernant    
     l'environnement, comme dans notre exemple ou il a ete utilise pour les   
     variables SHELL, PATH, et HOME. Si la ligne concernant l'interpreteur de 
     commande est omise, cron utilisera celui par defaut, qui est sh. Si la   
     variable PATH est omise, il n'y aura pas de valeur par defaut utilisee   
     et l'emplacement des fichiers devra etre absolu. Si HOME est omise, cron 
     utilisera le repertoire personnel de l'utilisateur qui l'invoque.        
   3 Cette ligne definie un total de sept champs. Sont listes ici les valeurs 
     minute, heure, date, mois, jour, utilisateur, et commande. Ces champs    
     sont relativement explicites. minute represente l'heure en minute `a     
     laquelle la commande sera executee. L'option heure est semblable `a      
     l'option minute, mais en heures. Le champ date precise le jour dans le   
     mois. mois est similaire `a heure et minute mais designe le mois.        
     L'option jour represente le jour de la semaine. Tous ces champs doivent  
     etre des valeurs numeriques, et respecter un format horaire de vingt     
     quatre heures. Le champ utilisateur est special, et n'existe que dans le 
     fichier /etc/crontab. Ce champ precise sous quel utilisateur sera        
     executee la commande. Le dernier champ designe la commande `a executer.  
   4 Cette derniere ligne definie les valeurs discutees ci-dessus. Nous avons 
     ici */5 suivi de plusieurs caracteres *. Ces caracteres * signifient     
     "premier-dernier", et peuvent etre interpretes comme voulant dire `a     
     chaque instance. Aussi, d'apres cette ligne, il apparait que la commande 
     atrun sera invoquee par l'utilisateur root toutes les cinq minutes       
     independamment du jour ou du mois. Pour plus d'informations sur la       
     commande atrun, consultez la page de manuel de atrun(8).                 
                                                                              
     N'importe quel nombre d'indicateur peut etre passe `a ces commandes;     
     cependant, les commandes qui s'etendent sur de multiples lignes doivent  
     etre "cassees" avec le caractere, contre-oblique \, de continuation de   
     lignes.                                                                  

   Ceci est la configuration de base pour chaque fichier crontab, bien qu'il
   y ait une difference dans celui presente ici. Le sixieme champ, ou est
   precise le nom d'utilisateur, n'existe que dans le fichier systeme
   /etc/crontab. Ce champ devrait etre omis pour les fichiers crontab
   d'utilisateur.

  11.5.1. Installer un fichier crontab

  Important:

   Ne pas utiliser la procedure decrite ci-dessous pour editer et installer
   le fichier crontab systeme. Utilisez directement votre editeur:
   l'utilitaire cron remarquera le changement au niveau de ce fichier et
   utilisera immediatement la nouvelle version. Consultez cette entree de la
   FAQ pour plus d'information.

   Pour installer un fichier crontab utilisateur fraichement redige, tout
   d'abord utilisez votre editeur favori pour creer un fichier dans le bon
   format, ensuite utilisez l'utilitaire crontab. L'usage le plus typique
   est:

 # crontab fichier-crontab

   Dans cet exemple, fichier-crontab est le nom d'un fichier crontab qui a
   ete precedemment cree.

   Il existe egalement une option pour afficher les fichiers crontab
   installes, passez simplement le parametre -l `a crontab et lisez ce qui
   est affiche.

   Pour les utilisateurs desirant creer leur fichier crontab `a partir de
   zero, sans utiliser de modele, l'option crontab -e est disponible. Cela
   invoquera l'editeur par defaut avec un fichier vide. Quand le fichier est
   sauvegarde, il sera automatiquement installe par la commande crontab.

   Afin d'effacer le fichier crontab utilisateur completement, utiliser la
   commande crontab avec l'option -r.

11.6. Utilisation du systeme rc(8) sous FreeBSD

   Contribution de Tom Rhodes.

   En 2002, le systeme rc.d de NetBSD pour l'initialisation du systeme a ete
   integre `a FreeBSD. Les utilisateurs noteront les fichiers presents dans
   le repertoire /etc/rc.d. Plusieurs de ces fichiers sont destines aux
   services de base qui peuvent etre controles avec les options start, stop,
   et restart. Par exemple, sshd(8) peut etre relance avec la commande
   suivante:

 # /etc/rc.d/sshd restart

   Cette procedure est similaire pour d'autres services. Bien sur, les
   services sont generalement lances automatiquement au demarrage des qu'ils
   sont specifies dans le fichier rc.conf(5). Par exemple, activer le
   "daemon" de translation d'adresses au demarrage est aussi simple que
   d'ajouter la ligne suivante au fichier /etc/rc.conf:

 natd_enable="YES"

   Si une ligne natd_enable="NO" est dej`a presente, modifiez alors le NO par
   YES. Les procedures rc chargeront automatiquement les autres services
   dependants lors du prochain redemarrage comme decrit ci-dessous.

   Comme le systeme rc.d est `a l'origine destine pour lancer/arreter les
   services au demarrage/`a l'arret du systeme, les options standards start,
   stop et restart ne seront effectives que si les variables appropriees sont
   positionnees dans le fichier /etc/rc.conf. Par exemple, la commande sshd
   restart ci-dessus ne fonctionnera que si sshd_enable est fixee `a YES dans
   /etc/rc.conf. Pour lancer, arreter ou redemarrer un service independemment
   des parametrages du fichier /etc/rc.conf, les commandes doivent etre
   precedees par << one >>. Par exemple pour redemarrer sshd independemment
   du parametrage du fichier /etc/rc.conf, executez la commande suivante:

 # /etc/rc.d/sshd onerestart

   Il est facile de controler si un service est active dans le fichier
   /etc/rc.conf en executant la procedure rc.d appropriee avec l'option
   rcvar. Ainsi, un administrateur peut controler que sshd est reellement
   active dans /etc/rc.conf en executant:

 # /etc/rc.d/sshd rcvar
 # sshd
 $sshd_enable=YES

  Note:

   La seconde ligne (# sshd) est la sortie de la commande sshd et non pas une
   console root.

   Pour determiner si un service est actif, une option appelee status est
   disponible. Par exemple pour verifier que sshd a reellement ete lance:

 # /etc/rc.d/sshd status
 sshd is running as pid 433.

   Dans certains cas, il est egalement possible de recharger un service avec
   l'option reload. Le systeme tentera d'envoyer un signal `a un service
   individuel, le forc,ant `a recharger ses fichiers de configuration. Dans
   la plupart des cas cela signifie envoyer un signal SIGHUP au service. Le
   support de cette fonctionnalite n'est pas disponible pour chaque service.

   Le systeme rc.d n'est pas uniquement utilisee pour les services reseaux,
   elle participe `a la majeure partie de l'initialisation du systeme. Prenez
   par exemple le fichier bgfsck. Quand cette procedure est executee, il
   affichera le message suivant:

 Starting background file system checks in 60 seconds.

   Donc ce fichier est utilise pour les verifications du systeme de fichiers
   en arriere plan, qui sont uniquement effectuees lors de l'initialisation
   du systeme.

   De nombreux services systeme dependent d'autres services pour fonctionner
   correctement. Par exemple, NIS et les autres services bases sur les RPCs
   peuvent echouer s'ils sont lances apres le lancement du service rpcbind
   (portmapper). Pour resoudre ce probleme, l'information concernant les
   dependances et autres meta-donnees est inclue dans les commentaires au
   debut de chaque procedure de demarrage. Le programme rcorder(8) est alors
   utilise pour analyser ces commentaires lors de l'initialisation du systeme
   en vue de determiner l'ordre dans lequel les services systeme seront
   invoques pour satisfaire les dependances.

   Les mots suivants doivent etre presents en tete de tous les fichiers de
   demarrage (ils sont necessaires pour que rc.subr(8) active les procedures
   de demarrages):

     * PROVIDE: indique les services que fournit ce fichier.

   Les mots cles suivants peuvent etre ajoutes au debut de chaque fichier de
   demarrage. Ils ne sont pas strictement necessaires, mais sont utiles comme
   aide pour rcorder(8):

     * REQUIRE: liste les fichiers dont depend ce service. Ce fichier sera
       execute apres les services indiques.

     * BEFORE: liste les services qui dependent du service present. Ce
       fichier sera execute avant les services indiques.

   En utilisant avec soin ces mots cles pour chaque fichier de demarrage, un
   administrateur dispose d'un niveau de controle tres fin de l'ordre
   d'execution des procedures de demarrage sans les inconvenients des
   << runlevels >> comme sur d'autres systemes d'exploitation UNIX(R).

   Des informations supplementaires concernant le systeme rc.d peuvent etre
   trouvees dans les pages de manuel rc(8) et rc.subr(8). Si vous etes
   interesse par l'ecriture de vos propres procedures rc.d ou pour
   l'amelioration des procedures existantes, vous trouverez cette article
   utile.

11.7. Configuration des cartes reseaux

   Contribution de Marc Fonvieille.

   De nos jours il est impossible de penser `a un ordinateur sans penser
   connexion `a un reseau. Installer et configurer une carte reseau est une
   tache classique pour tout administrateur FreeBSD.

  11.7.1. Determiner le bon pilote de peripherique

   Avant de commencer, vous devez connaitre le modele de la carte dont vous
   disposez, le circuit qu'elle utilise, et si c'est une carte PCI ou ISA.
   FreeBSD supporte une large variete de cartes PCI et ISA. Consultez la
   liste de compatibilite materielle pour votre version de FreeBSD afin de
   voir si votre carte est supportee.

   Une fois que vous etes surs que votre carte est supportee, vous devez
   determiner le bon pilote de peripherique pour la carte. Les fichiers
   /usr/src/sys/conf/NOTES et /usr/src/sys/arch/conf/NOTES vous donneront la
   liste des pilotes de peripheriques pour cartes reseaux avec des
   informations sur les cartes/circuits supportes. Si vous avez des doutes au
   sujet du bon pilote, lisez la page de manuel du pilote. La page de manuel
   vous donnera plus d'information sur le materiel supporte et meme les
   eventuels problemes qui pourront apparaitre.

   Si vous possedez une carte courante, la plupart du temps vous n'aurez pas
   `a chercher trop loin pour trouver un pilote. Les pilotes pour les cartes
   reseaux courantes sont presents dans le noyau GENERIC, aussi votre carte
   devrait apparaitre au demarrage, comme suit:

 dc0: <82c169 PNIC 10/100BaseTX> port 0xa000-0xa0ff mem 0xd3800000-0xd38
 000ff irq 15 at device 11.0 on pci0
 miibus0: <MII bus> on dc0
 bmtphy0: <BCM5201 10/100baseTX PHY> PHY 1 on miibus0
 bmtphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
 dc0: Ethernet address: 00:a0:cc:da:da:da
 dc0: [ITHREAD]
 dc1: <82c169 PNIC 10/100BaseTX> port 0x9800-0x98ff mem 0xd3000000-0xd30
 000ff irq 11 at device 12.0 on pci0
 miibus1: <MII bus> on dc1
 bmtphy1: <BCM5201 10/100baseTX PHY> PHY 1 on miibus1
 bmtphy1:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
 dc1: Ethernet address: 00:a0:cc:da:da:db
 dc1: [ITHREAD]

   Dans cet exemple, nous voyons que deux cartes utilisant le pilote de
   peripherique dc(4) sont presentes sur le systeme.

   Si le pilote de votre carte n'est pas present dans le noyau GENERIC, vous
   devrez charger le module approprie pour pouvoir utiliser votre carte. Cela
   peut etre effectue de deux manieres differentes:

     * La methode la plus simple est de charger le module pour votre carte
       reseau avec kldload(8), ou automatiquement au demarrage du systeme en
       ajoutant la ligne appropriee au fichier /boot/loader.conf. Tous les
       pilotes de cartes reseau ne sont pas disponibles sous forme de
       modules; les cartes ISA sont un bon exemple de peripheriques pour
       lesquels les modules n'existent pas.

     * Alternativement, vous pouvez compiler en statique le support pour
       votre carte dans votre noyau. Consultez /usr/src/sys/conf/NOTES,
       /usr/src/sys/arch/conf/NOTES et la page de manuel du pilote de
       peripherique pour savoir ce qu'il faut ajouter au fichier de
       configuration de votre noyau. Pour plus d'information sur la
       recompilation de votre noyau, veuillez lire le Chapitre 8, Configurer
       le noyau de FreeBSD. Si votre carte a ete detectee au demarrage par
       votre noyau (GENERIC) vous n'avez pas `a compiler un nouveau noyau.

    11.7.1.1. Utilisation des pilotes NDIS de Windows(R)

   Malheureusement il y a toujours de nombreux fabricants qui ne fournissent
   pas `a la communaute des logiciels libres les informations concernant les
   pilotes pour leurs cartes considerant de telles informations comme des
   secrets industriels. Par consequent, il ne reste aux developpeurs de
   FreeBSD et d'autres systemes d'exploitation libres que deux choix:
   developper les pilotes en passant par un long et penible processus de
   << reverse engineering >> ou utiliser les pilotes binaires existants
   disponibles pour la plateforme Microsoft(R) Windows(R). La plupart des
   developpeurs, y compris ceux impliques dans FreeBSD, ont choisi cette
   derniere approche.

   Grace aux contributions de Bill Paul (wpaul), il existe un support
   << natif >> pour la specification d'interface des pilotes de peripherique
   reseau (Network Driver Interface Specification-NDIS). Le NDISulator
   FreeBSD (connu egalement sous le nom de Project Evil) prend un pilote
   binaire reseau Windows(R) et lui fait penser qu'il est en train de tourner
   sous Windows(R). Etant donne que le pilote ndis(4) utilise un binaire
   Windows(R), il ne fonctionne que sur les systemes i386(TM) et amd64. Les
   peripheriques PCI, CardBus, PCMCIA (PC-Card), et USB sont supportes.

   Pour utiliser le NDISulator, trois choses sont necessaires:

    1. les sources du noyau;

    2. le pilote binaire Windows(R) XP (extension .SYS);

    3. le fichier de configuration du pilote Windows(R) XP (extension .INF).

   Recherchez les fichiers specifiques `a votre carte. Generalement, ils
   peuvent etre trouves sur les CDs livres avec la carte ou sur le site du
   fabricant. Dans les exemples qui suivent nous utiliseront les fichiers
   W32DRIVER.SYS et W32DRIVER.INF.

   Le type de pilote doit correspondre `a la version de FreeBSD. Pour
   FreeBSD/i386, utiliser un pilote Windows(R) 32bits. Pour FreeBSD/amd64, un
   pilote Windows(R) 64bits est necessaire.

   L'etape suivante est de compiler le pilote binaire dans un module
   chargeable du noyau. En tant que root, utilisez ndisgen(8):

 # ndisgen /path/to/W32DRIVER.INF /path/to/W32DRIVER.SYS

   L'utilitaire ndisgen(8) est interactif, il sollicitera l'utilisateur pour
   d'eventuelles informations complementaires si necessaire. Un nouveau
   module noyau est cree dans le repertoire courant. Utiliser kldload(8) pour
   charger le nouveau module:

 # kldload ./W32DRIVER_SYS.ko

   Avec le module genere, vous devez egalement charger les modules ndis.ko et
   if_ndis.ko. Cela devrait etre fait automatiquement quand vous chargez un
   module qui depend de ndis(4). Si vous desirez les charger manuellement,
   utilisez les commandes suivantes:

 # kldload ndis
 # kldload if_ndis

   La premiere commande charge le pilote d'interface NDIS, la seconde charge
   l'interface reseau.

   Controlez maintenant la sortie de dmesg(8) `a la recherche d'une
   quelconque erreur au chargement. Si tout s'est bien passe, vous devriez
   obtenir une sortie ressemblant `a ce qui suit:

 ndis0: <Wireless-G PCI Adapter> mem 0xf4100000-0xf4101fff irq 3 at device 8.0 on pci1
 ndis0: NDIS API version: 5.0
 ndis0: Ethernet address: 0a:b1:2c:d3:4e:f5
 ndis0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
 ndis0: 11g rates: 6Mbps 9Mbps 12Mbps 18Mbps 36Mbps 48Mbps 54Mbps

   A partir de l`a vous pouvez traiter le peripherique ndis0 comme n'importe
   quelle interface reseau (par exemple dc0).

   Vous pouvez configurer le systeme pour charger les modules NDIS au
   demarrage du systeme de la meme maniere que pour n'importe quel autre
   module. Tout d'abord, copiez le module genere, W32DRIVER_SYS.ko, dans le
   repertoire /boot/modules. Ajoutez ensuite la ligne suivante au fichier
   /boot/loader.conf:

 W32DRIVER_SYS_load="YES"

  11.7.2. Configuration de la carte reseau

   Une fois que le bon pilote de peripherique pour la carte reseau est
   charge, la carte doit etre configuree. Comme beaucoup d'autres choses, la
   carte aura pu etre configuree `a l'installation par sysinstall.

   Pour afficher la configuration des interfaces reseaux de votre systeme,
   entrer la commande suivante:

 % ifconfig
 dc0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
         options=80008<VLAN_MTU,LINKSTATE>
         ether 00:a0:cc:da:da:da
         inet 192.168.1.3 netmask 0xffffff00 broadcast 192.168.1.255
         media: Ethernet autoselect (100baseTX <full-duplex>)
         status: active
 dc1: flags=8802<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
         options=80008<VLAN_MTU,LINKSTATE>
         ether 00:a0:cc:da:da:db
         inet 10.0.0.1 netmask 0xffffff00 broadcast 10.0.0.255
         media: Ethernet 10baseT/UTP
         status: no carrier
 lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
         options=3<RXCSUM,TXCSUM>
         inet6 fe80::1%lo0 prefixlen 64 scopeid 0x4
         inet6 ::1 prefixlen 128
         inet 127.0.0.1 netmask 0xff000000
         nd6 options=3<PERFORMNUD,ACCEPT_RTADV>

   Dans cet exemple, les peripheriques suivants ont ete affiches:

     * dc0: La premiere interface Ethernet

     * dc1: La seconde interface Ethernet

     * lo0: L'interface "en boucle" ("loopback")

   FreeBSD utilise le nom du pilote de peripherique suivi par un chiffre
   representant l'ordre dans lequel la carte est detectee au demarrage du
   noyau pour nommer la carte. Par exemple sis2 serait la troisieme carte sur
   le systeme utilisant le pilote de peripherique sis(4).

   Dans cet exemple, le peripherique dc0 est actif et en fonctionnement. Les
   indicateurs importants sont:

    1. UP signifie que la carte est configuree et prete.

    2. La carte possede une adresse Internet (inet) (dans ce cas-ci
       192.168.1.3).

    3. Elle a un masque de sous-reseau valide (netmask; 0xffffff00 est
       equivalent `a 255.255.255.0).

    4. Elle a une adresse de diffusion valide (dans ce cas-ci 192.168.1.255).

    5. L'adresse MAC de la carte (ether) est 00:a0:cc:da:da:da

    6. La selection du media est sur le mode d'autoselection (media: Ethernet
       autoselect (100baseTX <full-duplex>)). Nous voyons que dc1 a ete
       configuree pour utiliser un materiel de type 10baseT/UTP. Pour plus
       d'information sur le type de materiel disponible pour un pilote de
       peripherique, referez-vous `a sa page de manuel.

    7. La liaison (status) est active, i.e. la porteuse est detectee. Pour
       dc1, nous lisons status: no carrier. Cela est normal lorsqu'aucun
       cable n'est branche `a la carte.

   Si le resultat de la commande ifconfig(8) est similaire `a:

 dc0: flags=8843<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
         options=80008<VLAN_MTU,LINKSTATE>
         ether 00:a0:cc:da:da:da
         media: Ethernet autoselect (100baseTX <full-duplex>)
         status: active

   cela indiquerait que la carte n'a pas ete configuree.

   Pour configurer votre carte, vous avez besoin des privileges de
   l'utilisateur root. La configuration de la carte reseau peut etre faite `a
   partir de la ligne de commande avec ifconfig(8) mais vous aurez `a repeter
   cette operation `a chaque redemarrage du systeme. Le fichier /etc/rc.conf
   est l'endroit ou ajouter la configuration de la carte reseau.

   Ouvrez le fichier /etc/rc.conf dans votre editeur favori. Vous devez
   ajouter une ligne pour chaque carte reseau presente sur le systeme, par
   exemple dans notre cas, nous avons ajoute ces lignes:

 ifconfig_dc0="inet 192.168.1.3 netmask 255.255.255.0"
 ifconfig_dc1="inet 10.0.0.1 netmask 255.255.255.0 media 10baseT/UTP"

   Vous devez remplacer dc0, dc1, et ainsi de suite, avec le peripherique
   correspondant pour vos cartes, et les adresses avec celles desirees. Vous
   devriez lire les pages de manuel du pilote de peripherique et
   d'ifconfig(8) pour plus de details sur les options autorisees et egalement
   la page de manuel de rc.conf(5) pour plus d'information sur la syntaxe de
   /etc/rc.conf.

   Si vous avez configure le reseau `a l'installation, des lignes concernant
   la/les carte(s) reseau pourront etre dej`a presentes. Controler `a deux
   fois le fichier /etc/rc.conf avant d'y ajouter des lignes.

   Vous devrez egalement editer le fichier /etc/hosts pour ajouter les noms
   et les adresses IP des diverses machines du reseau local, si elles ne sont
   pas dej`a presentes. Pour plus d'information referez-vous `a la page de
   manuel hosts(5) et au fichier /usr/share/examples/etc/hosts.

  Note:

   S'il n'y a pas de serveur DHCP et qu'un acces `a Internet est necessaire,
   configurez manuellement la passerelle par defaut et le serveur de noms:

 # echo 'defaultrouter="your_default_router"' >> /etc/rc.conf
 # echo 'nameserver your_DNS_server' >> /etc/resolv.conf

  11.7.3. Test et depannage

   Une fois les modifications necessaires du fichier /etc/rc.conf effectuees,
   vous devrez redemarrer votre systeme. Cela permettra la prise en compte de
   la ou les modifications au niveau des interfaces, et permettra de verifier
   que le systeme redemarre sans erreur de configuration. Sinon, une autre
   methode pour faire prendre en compte les modifications au niveau de la
   gestion du reseau consiste `a utiliser la commande:

 # service netif restart

  Note:

   Si une passerelle par defaut a ete configuree dans /etc/rc.conf, lancez
   egalement cette commande:

 # service routing restart

   Une fois que le systeme a ete redemarre, vous testez les interfaces
   reseau.

    11.7.3.1. Tester la carte Ethernet

   Pour verifier qu'une carte Ethernet est configuree correctement, vous
   devez essayer deux choses. Premierement, "pinguer" l'interface, puis une
   autre machine sur le reseau local.

   Tout d'abord testons l'interface:

 % ping -c5 192.168.1.3
 PING 192.168.1.3 (192.168.1.3): 56 data bytes
 64 bytes from 192.168.1.3: icmp_seq=0 ttl=64 time=0.082 ms
 64 bytes from 192.168.1.3: icmp_seq=1 ttl=64 time=0.074 ms
 64 bytes from 192.168.1.3: icmp_seq=2 ttl=64 time=0.076 ms
 64 bytes from 192.168.1.3: icmp_seq=3 ttl=64 time=0.108 ms
 64 bytes from 192.168.1.3: icmp_seq=4 ttl=64 time=0.076 ms

 --- 192.168.1.3 ping statistics ---
 5 packets transmitted, 5 packets received, 0% packet loss
 round-trip min/avg/max/stddev = 0.074/0.083/0.108/0.013 ms

   Nous devons maintenant "pinguer" une autre machine sur le reseau:

 % ping -c5 192.168.1.2
 PING 192.168.1.2 (192.168.1.2): 56 data bytes
 64 bytes from 192.168.1.2: icmp_seq=0 ttl=64 time=0.726 ms
 64 bytes from 192.168.1.2: icmp_seq=1 ttl=64 time=0.766 ms
 64 bytes from 192.168.1.2: icmp_seq=2 ttl=64 time=0.700 ms
 64 bytes from 192.168.1.2: icmp_seq=3 ttl=64 time=0.747 ms
 64 bytes from 192.168.1.2: icmp_seq=4 ttl=64 time=0.704 ms

 --- 192.168.1.2 ping statistics ---
 5 packets transmitted, 5 packets received, 0% packet loss
 round-trip min/avg/max/stddev = 0.700/0.729/0.766/0.025 ms

   Vous pourrez utiliser le noms de la machine `a la place de 192.168.1.2 si
   vous avez configure le fichier /etc/hosts.

    11.7.3.2. Depannage

   Le depannage de materiels ou de logiciels est toujours une tache
   relativement penible, mais qui peut etre rendue plus aisee en verifiant en
   premier lieu certaines choses elementaires. Votre cable reseau est-il
   branche? Avez-vous correctement configure les services reseau? Le
   coupe-feu est-il bien configure? Est-ce que la carte reseau est supportee
   par FreeBSD? Consultez toujours les notes concernant le materiel avant
   d'envoyer un rapport de bogue. Mettez `a jour votre version de FreeBSD
   vers la derniere version STABLE. Consultez les archives des listes de
   diffusion, et faites meme des recherches sur l'Internet.

   Si la carte fonctionne mais les performances sont mauvaises, une lecture
   de la page de manuel tuning(7) peut valoir la peine. Vous pouvez egalement
   verifier la configuration du reseau puisque des parametres reseau
   incorrects peuvent donner lieu `a des connexions lentes.

   Certains utilisateurs peuvent voir apparaitre un ou deux messages device
   timeout, ce qui est normal pour certaines cartes. Si ces messages se
   multiplient, assurez-vous que la carte n'est pas en conflit avec un autre
   peripherique. Controlez `a deux fois les cables de connexion. Peut-etre
   que vous avez juste besoin d'une autre carte.

   Parfois, des utilisateurs sont confrontes `a des messages d'erreur
   watchdog timeout. La premiere chose `a faire dans ce cas est de verifier
   votre cable reseau. De nombreuses cartes demandent un slot PCI supportant
   le << Bus Mastering >>. Sur certaines cartes mere anciennes, seul un slot
   PCI le permet (la plupart du temps le slot 0). Consultez la documentation
   de la carte reseau et de la carte mere pour determiner si cela peut etre
   `a l'origine du probleme.

   Les messages No route to host surviennent si le systeme est incapable de
   router un paquet vers la machine de destination. Cela peut arriver s'il
   n'y a pas de route par defaut de definie, ou si le cable reseau est
   debranche. Verifiez la sortie de la commande netstat -nr et assurez-vous
   qu'il y a une route valide en direction de la machine que vous essayez
   d'atteindre. Si ce n'est pas le cas, lisez la Chapitre 32, Administration
   reseau avancee.

   Les messages d'erreur ping: sendto: Permission denied sont souvent dus `a
   un coupe-feu mal configure. Si ipfw est active dans le noyau mais
   qu'aucune regle n'a ete definie, alors la politique par defaut est de
   refuser tout trafic, meme les requetes << ping >>! Lisez Chapitre 31,
   Firewalls ** Traduction en Cours ** pour plus d'informations.

   Parfois les performances de la carte ne sont pas bonnes, ou en dessous de
   la moyenne. Dans ce cas il est recommande de passer la selection du media
   du mode autoselect au mode adequat. Alors que cela fonctionne generalement
   pour la plupart du materiel, il se peut que cela ne resolve pas le
   probleme pour tout de monde. Encore une fois, controlez les parametrages
   reseau et consultez la page de manuel tuning(7).

11.8. Hotes virtuels

   Une utilisation tres courante de FreeBSD est l'hebergement de sites
   virtuels, ou un serveur apparait pour le reseau comme etant plusieurs
   serveurs differents. Ceci est possible en assignant plusieurs adresses
   reseau `a une interface.

   Une interface reseau donnee possede une adresse "reelle", et peut avoir
   n'importe quel nombre d'adresses "alias". Ces alias sont normalement
   ajoutes en plac,ant les entrees correspondantes dans le fichier
   /etc/rc.conf.

   Une entree d'alias pour l'interface fxp0 ressemble `a:

 ifconfig_fxp0_alias0="inet xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx"

   Notez que les entrees d'alias doivent commencer avec alias0 et continuer
   en ordre croissant, (par exemple, _alias1, _alias2, et ainsi de suite). Le
   processus de configuration s'arretera au premier nombre absent.

   Le calcul des masques de reseau est important, mais heureusement assez
   simple. Pour une interface donnee, il doit y avoir une adresse qui
   represente correctement le masque de reseau de votre reseau. Tout autre
   adresse appartenant `a ce reseau devra avoir un masque de reseau avec
   chaque bit `a 1 (exprime soit sous la forme 255.255.255.255 soit
   0xffffffff).

   Par exemple, considerez le cas ou l'interface fxp0 est connectee `a deux
   reseaux, le reseau 10.1.1.0 avec un masque de reseau de 255.255.255.0 et
   le reseau 202.0.75.16 avec un masque de 255.255.255.240. Nous voulons que
   le systeme apparaisse de 10.1.1.1 jusqu'`a 10.1.1.5 et `a 202.0.75.17
   jusqu'`a 202.0.75.20. Comme note plus haut, seule la premiere adresse dans
   un intervalle reseau donne (dans ce cas, 10.0.1.1 et 202.0.75.17) devrait
   avoir un masque de sous-reseau reel; toutes les autres adresses (10.1.1.2
   `a 10.1.1.5 et 202.0.75.18 jusqu'`a 202.0.75.20) doivent etre configurees
   avec un masque de sous-reseau de 255.255.255.255.

   Les entrees suivantes du fichier /etc/rc.conf configurent la carte
   correctement pour cet arrangement:

 ifconfig_fxp0="inet 10.1.1.1 netmask 255.255.255.0"
 ifconfig_fxp0_alias0="inet 10.1.1.2 netmask 255.255.255.255"
 ifconfig_fxp0_alias1="inet 10.1.1.3 netmask 255.255.255.255"
 ifconfig_fxp0_alias2="inet 10.1.1.4 netmask 255.255.255.255"
 ifconfig_fxp0_alias3="inet 10.1.1.5 netmask 255.255.255.255"
 ifconfig_fxp0_alias4="inet 202.0.75.17 netmask 255.255.255.240"
 ifconfig_fxp0_alias5="inet 202.0.75.18 netmask 255.255.255.255"
 ifconfig_fxp0_alias6="inet 202.0.75.19 netmask 255.255.255.255"
 ifconfig_fxp0_alias7="inet 202.0.75.20 netmask 255.255.255.255"

11.9. Fichiers de configuration

  11.9.1. Organisation du repertoire /etc

   Il existe un certain nombre de repertoires dans lesquels se trouvent les
   informations de configuration. Ceux-ci incluent:

   /etc                Information de configuration generique du systeme; les 
                       donnees ici sont specifiques au systeme.               
   /etc/defaults       Version par defaut des fichiers de configuration du    
                       systeme.                                               
                       Configuration de sendmail(8), et autres fichiers de    
   /etc/mail           configuration d'agent de transmission du courrier      
                       electronique.                                          
   /etc/ppp            Configuration pour les programmes PPP utilisateur et   
                       integre au noyau.                                      
                       Emplacement par defaut pour les donnees de named(8).   
   /etc/namedb         Normalement named.conf et les fichiers de zone sont    
                       stockes dans ce repertoire.                            
                       Fichiers de configuration pour les applications        
   /usr/local/etc      installees. Peut contenir des sous-repertoires pour    
                       chaque application.                                    
   /usr/local/etc/rc.d Procedures de lancement/d'arret pour les applications  
                       installees.                                            
                       Fichiers de bases de donnees automatiquement generes,  
   /var/db             specifiques au systeme, comme la base de donnees des   
                       logiciels installes, la base de donnees de             
                       localisation des fichiers, et ainsi de suite.          

  11.9.2. Nom d'hotes

    11.9.2.1. /etc/resolv.conf

   /etc/resolv.conf gere comment le resolveur de FreeBSD accede au systeme de
   nom de domaine d'Internet (DNS).

   Les entrees la plus classiques du fichier resolv.conf sont:

              L'adresse IP du serveur de noms auquel le resolveur devrait     
   nameserver envoyer ses requetes. Les serveurs sont sollicites dans l'ordre 
              liste avec un maximum de trois.                                 
   search     Liste de recherche pour la resolution de nom de machine. Ceci   
              est normalement determine par le domaine de l'hote local.       
   domain     Le nom du domaine local.                                        

   Un fichier resolv.conf typique:

 search example.com
 nameserver 147.11.1.11
 nameserver 147.11.100.30

  Note:

   Seule une des options search et domain devrait etre utilisee.

   Si vous utilisez DHCP, dhclient(8) reecrit habituellement resolv.conf avec
   l'information rec,ue du serveur DHCP.

    11.9.2.2. /etc/hosts

   /etc/hosts est une simple base de donnees texte, une reminiscence des
   debuts d'Internet. Il travaille en conjonction avec les serveurs DNS et
   NIS pour fournir les correspondances nom vers adresse IP. Les ordinateurs
   locaux relies par l'intermediaire d'un reseau local peuvent etre ajoutes
   dans ce fichier pour une resolution de noms simple plutot que de
   configurer un serveur named(8). De plus /etc/hosts peut etre utilise pour
   fournir un enregistrement local de correspondances de nom, reduisant ainsi
   le besoin de requetes vers l'exterieur pour les noms auxquels on accede
   couramment.

 # $FreeBSD$
 #
 #
 # Host Database
 #
 # This file should contain the addresses and aliases for local hosts that
 # share this file.  Replace 'my.domain' below with the domainname of your
 # machine.
 #
 # In the presence of the domain name service or NIS, this file may
 # not be consulted at all; see /etc/nsswitch.conf for the resolution order.
 #
 #
 ::1                     localhost localhost.my.domain
 127.0.0.1               localhost localhost.my.domain
 #
 # Imaginary network.
 #10.0.0.2               myname.my.domain myname
 #10.0.0.3               myfriend.my.domain myfriend
 #
 # According to RFC 1918, you can use the following IP networks for
 # private nets which will never be connected to the Internet:
 #
 #       10.0.0.0        -   10.255.255.255
 #       172.16.0.0      -   172.31.255.255
 #       192.168.0.0     -   192.168.255.255
 #
 # In case you want to be able to connect to the Internet, you need
 # real official assigned numbers.  Do not try to invent your own network
 # numbers but instead get one from your network provider (if any) or
 # from your regional registry (ARIN, APNIC, LACNIC, RIPE NCC, or AfriNIC.)
 #

   /etc/hosts suit le format simple suivant:

 [Internet address] [official hostname] [alias1] [alias2] ...

   Par exemple:

 10.0.0.1 myRealHostname.example.com myRealHostname foobar1 foobar2

   Consultez la page de manuel hosts(5) pour plus d'informations.

  11.9.3. Configuration des fichiers de trace

    11.9.3.1. syslog.conf

   syslog.conf est le fichier de configuration du programme syslogd(8). Il
   indique quel type de messages syslog sera enregistre dans des fichiers de
   traces particuliers.

 # $FreeBSD$
 #
 #       Spaces ARE valid field separators in this file. However,
 #       other *nix-like systems still insist on using tabs as field
 #       separators. If you are sharing this file between systems, you
 #       may want to use only tabs as field separators here.
 #       Consult the syslog.conf(5) manual page.
 *.err;kern.debug;auth.notice;mail.crit          /dev/console
 *.notice;kern.debug;lpr.info;mail.crit;news.err /var/log/messages
 security.*                                      /var/log/security
 mail.info                                       /var/log/maillog
 lpr.info                                        /var/log/lpd-errs
 cron.*                                          /var/log/cron
 *.err                                           root
 *.notice;news.err                               root
 *.alert                                         root
 *.emerg                                         *
 # uncomment this to log all writes to /dev/console to /var/log/console.log
 #console.info                                   /var/log/console.log
 # uncomment this to enable logging of all log messages to /var/log/all.log
 #*.*                                            /var/log/all.log
 # uncomment this to enable logging to a remote log host named loghost
 #*.*                                            @loghost
 # uncomment these if you're running inn
 # news.crit                                     /var/log/news/news.crit
 # news.err                                      /var/log/news/news.err
 # news.notice                                   /var/log/news/news.notice
 !startslip
 *.*                                             /var/log/slip.log
 !ppp
 *.*                                             /var/log/ppp.log

   Consultez la page de manuel syslog.conf(5) pour plus d'informations.

    11.9.3.2. newsyslog.conf

   newsyslog.conf est le fichier de configuration de newsyslog(8), un
   programme qui est normalement programme cron(8) pour s'executer
   periodiquement. newsyslog(8) determine quand les fichiers de traces
   doivent etre archives ou reorganises. logfile devient logfile.0, logfile.0
   devient `a son tour logfile.1, et ainsi de suite. D'autre part, les
   fichiers de traces peuvent etre archives dans le format gzip(1), ils se
   nommeront alors: logfile.0.gz, logfile.1.gz, et ainsi de suite.

   newsyslog.conf indique quels fichiers de traces doivent etre geres,
   combien doivent etre conserves, et quand ils doivent etre modifies. Les
   fichiers de traces peuvent etre reorganises et/ou archives quand ils ont
   soit atteint une certaine taille, soit `a une certaine periode/date.

 # configuration file for newsyslog
 # $FreeBSD$
 #
 # filename          [owner:group]    mode count size when [ZB] [/pid_file] [sig_num]
 /var/log/cron                           600  3     100  *     Z
 /var/log/amd.log                        644  7     100  *     Z
 /var/log/kerberos.log                   644  7     100  *     Z
 /var/log/lpd-errs                       644  7     100  *     Z
 /var/log/maillog                        644  7     *    @T00  Z
 /var/log/sendmail.st                    644  10    *    168   B
 /var/log/messages                       644  5     100  *     Z
 /var/log/all.log                        600  7     *    @T00  Z
 /var/log/slip.log                       600  3     100  *     Z
 /var/log/ppp.log                        600  3     100  *     Z
 /var/log/security                       600  10    100  *     Z
 /var/log/wtmp                           644  3     *    @01T05 B
 /var/log/daily.log                      640  7     *    @T00  Z
 /var/log/weekly.log                     640  5     1    $W6D0 Z
 /var/log/monthly.log                    640  12    *    $M1D0 Z
 /var/log/console.log                    640  5     100  *     Z

   Consultez la page de manuel newsyslog(8) pour plus d'informations.

  11.9.4. sysctl.conf

   sysctl.conf ressemble `a rc.conf. Les valeurs sont fixees sous la forme
   variable=value. Les valeurs specifiees sont positionnees apres que le
   systeme soit passe dans le mode multi-utilisateurs. Toutes les variables
   ne sont pas parametrables dans ce mode.

   Pour desactiver l'enregistrement des signaux fatals de fin de processus et
   empecher les utilisateurs de voir les processus lances par les autres, les
   variables suivantes peuvent etre parametrees dans sysctl.conf:

 # Do not log fatal signal exits (e.g., sig 11)
 kern.logsigexit=0

 # Prevent users from seeing information about processes that
 # are being run under another UID.
 security.bsd.see_other_uids=0

11.10. Optimisation avec sysctl(8)

   sysctl(8) est une interface qui vous permet d'effectuer des changements de
   parametrage sur un systeme FreeBSD en fonctionnement. Cela comprend de
   nombreuses options avancees de la pile TCP/IP et du systeme de memoire
   virtuelle qui peuvent ameliorer dramatiquement les performances pour un
   administrateur systeme experimente. Plus de cinq cent variables systeme
   peuvent etre lues et modifiees grace `a sysctl(8).

   sysctl(8) remplit deux fonctions: lire et modifier les parametrages du
   systeme.

   Pour afficher toutes les variables lisibles:

 % sysctl -a

   Pour lire une variable particuliere, par exemple, kern.maxproc:

 % sysctl kern.maxproc
 kern.maxproc: 1044

   Pour fixer une variable particuliere, utilisez la syntaxe intuitive
   variable=valeur :

 # sysctl kern.maxfiles=5000
 kern.maxfiles: 2088 -> 5000

   Les valeurs des variables sysctl sont generalement des chaines de
   caracteres, des nombres, ou des booleens (un variable booleenne etant 1
   pour oui ou un 0 pour non).

   Si vous voulez fixer automatiquement certaines variables `a chaque
   demarrage de la machine, ajoutez-les au fichier /etc/sysctl.conf. Pour
   plus d'information consultez la page de manuel sysctl.conf(5) et la
   Section 11.9.4, << sysctl.conf >>.

  11.10.1. Variables sysctl(8) en lecture seule

   Contribution de Tom Rhodes.

   Dans certains cas, il peut etre necessaire de modifier des variables
   sysctl(8) en lecture seule. Bien que cela soit parfois inevitable, cela ne
   peut etre fait qu'au (re)demarrage de la machine.

   Par exemple sur certains modeles d'ordinateurs portables le peripherique
   cardbus(4) ne sondera pas le systeme `a la recherche des zones memoires,
   et echouera avec des erreurs du type:

 cbb0: Could not map register memory
 device_probe_and_attach: cbb0 attach returned 12

   Des cas comme le precedent demandent generalement la modification de
   parametres sysctl(8) par defaut qui sont en lecture seule. Pour palier `a
   ces situations un utilisateur peut placer un parametrage ("OID"-Object
   IDentifier) sysctl(8) dans le fichier local /boot/loader.conf.local. Les
   parametrages par defaut se trouvent dans le fichier
   /boot/defaults/loader.conf.

   Pour corriger le probleme precedent, il faudrait que l'utilisateur ajoute
   la ligne hw.pci.allow_unsupported_io_range=1 dans le fichier precedemment
   indique. Desormais le peripherique cardbus(4) devrait fonctionner
   normalement.

11.11. Optimiser les disques

  11.11.1. Les variables sysctl

    11.11.1.1. vfs.vmiodirenable

   La variable sysctl vfs.vmiodirenable peut etre positionnee soit `a 0
   (desactivee) soit `a 1 (activee); elle est a 1 par defaut. Cette variable
   specifie comment les repertoires sont caches par le systeme. La plupart
   des repertoires sont petits, utilisant juste un simple fragment du systeme
   de fichiers (typiquement 1KO) et moins dans le cache en memoire
   (typiquement 512 octets). Avec cette variable desactivee (`a 0), le cache
   en memoire ne cachera qu'un nombre fixe de repertoires meme si vous
   disposez d'une grande quantite de memoire. Activee (`a 1), cette variable
   sysctl permet au cache en memoire d'utiliser le cache des pages de memoire
   virtuelle pour cacher les repertoires, rendant toute la memoire disponible
   pour cacher les repertoires. Cependant, la taille minimale de l'element
   memoire utilise pour cacher un repertoire est une page physique
   (typiquement 4KO) plutot que 512 octets. Nous recommandons de conserver de
   cette option activee si vous faites fonctionner des services qui
   manipulent un grand nombre de fichiers. De tels services peuvent etre des
   caches web, d'importants systemes de courrier electronique, et des
   systemes serveurs de groupe de discussion. Conserver cette option activee
   ne reduira generalement pas les performances meme avec la memoire
   gaspillee mais vous devriez faire des experiences pour le determiner.

    11.11.1.2. vfs.write_behind

   La variable sysctl vfs.write_behind est positionnee par defaut `a 1
   (activee). Elle demande au systeme de fichiers d'effectuer les ecritures
   lorsque des grappes completes de donnees ont ete collectees, ce qui se
   produit generalement lors de l'ecriture sequentielle de gros fichiers.
   L'idee est d'eviter de saturer le cache tampon avec des tampons sales
   quand cela n'ameliorera pas les performances d'E/S. Cependant, cela peut
   bloquer les processus et dans certaines conditions vous pouvez vouloir
   desactiver cette fonction.

    11.11.1.3. vfs.hirunningspace

   La variable sysctl vfs.hirunningspace determine combien d'operations
   d'ecriture peuvent etre mises en attente `a tout moment au niveau des
   controleurs disques du systeme. La valeur par defaut est normalement
   suffisante mais sur les machines avec de nombreux disques, vous pouvez
   vouloir l'augmenter jusqu'`a quatre ou cinq mega-octets. Notez que fixer
   une valeur trop elevee (depassant la limite d'ecriture du cache tampon)
   peut donner lieu `a de tres mauvaises performances. Ne fixez pas cette
   valeur `a une valeur elevee arbitraire! Des valeurs d'ecriture elevees
   peuvent ajouter des temps de latence aux operations d'ecriture survenant
   au meme moment.

   Il existent d'autres variables sysctl relatives aux caches tampons et aux
   pages VM. Nous ne recommandons pas de modifier ces valeurs, le systeme VM
   effectue un tres bon travail d'auto-optimisation.

    11.11.1.4. vm.swap_idle_enabled

   La variable vm.swap_idle_enabled est utile dans le cas de systemes
   multi-utilisateurs importants ou il y a beaucoup d'utilisateurs
   s'attachant et quittant le systeme et de nombreux processus inactifs. De
   tels systemes tendent `a generer une pression assez importante et continue
   sur les reserves de memoire libres. Activer cette fonction et regler
   l'hysteresis de liberation de l'espace de pagination (en secondes
   d'inactivite) par l'intermediaire des variables vm.swap_idle_threshold1 et
   vm.swap_idle_threshold2, vous permet de diminuer la priorite des pages
   memoire associees avec les processus inactifs plus rapidement qu'avec
   l'algorithme normal de liberation. Cela aide le << daemon >> de liberation
   des pages. N'activez cette option que si vous en besoin, parce que la
   concession que vous faites est d'utiliser l'espace de pagination pour les
   pages memoire plus tot qu'`a l'accoutume, consommant par consequent plus
   d'espace de pagination et de bande passante disque. Sur un petit systeme,
   cette option aura un effet limite mais dans le cas d'un systeme important
   qui fait appel `a l'espace de pagination de fac,on moderee, cette option
   permettra au systeme VM de transferer l'ensemble des processus de et vers
   la memoire aisement.

    11.11.1.5. hw.ata.wc

   FreeBSD 4.3 a flirte avec la desactivation du cache en ecriture des
   disques IDE. Cela reduisit la bande passante en ecriture des disques IDE
   mais fut considere comme necessaire en raison de serieux problemes de
   coherence de donnees introduits par les fabricants de disques durs. Le
   probleme est que les disques IDE mentent sur le moment ou une ecriture est
   reellement terminee. Avec le cache en ecriture IDE active, les disques
   durs IDE non seulement n'ecriront pas les donnees dans l'ordre, mais
   parfois retarderont l'ecriture de certains blocs indefiniment sous une
   charge disque importante. Un crash ou une coupure secteur pourra etre `a
   l'origine de serieuses corruptions du systeme de fichiers. Par precaution
   le parametrage par defaut de FreeBSD fut modifie. Malheureusement, le
   resultat fut une telle perte de performances que nous avons reactive le
   cache en ecriture apres cette version de FreeBSD. Vous devriez controler
   la valeur par defaut sur votre systeme en examinant la variable sysctl
   hw.ata.wc. Si le cache en ecriture des disques IDE est desactive, vous
   pouvez le reactiver en positionnant la variable `a 1. Cela doit etre fait
   `a partir du chargeur au demarrage. Tenter de le faire apres le demarrage
   du noyau n'aura aucun effet.

   Pour plus d'informations, veuillez consulter la page de manuel ata(4).

    11.11.1.6. SCSI_DELAY (kern.cam.scsi_delay)

   L'option de configuration du noyau SCSI_DELAY peut etre utilisee pour
   reduire le temps de demarrage du systeme. Le delai par defaut est
   important et peut etre responsable de plus de 15 secondes d'attente lors
   du processus de demarrage. Reduire ce delai `a 5 secondes est generalement
   suffisant (tout particulierement avec les disques modernes). L'option de
   demarrage kern.cam.scsi_delay devrait etre utilisee. Cette option de
   demarrage et celle de configuration du noyau acceptent des valeurs en
   millisecondes et non pas en secondes.

  11.11.2. Les "Soft Updates"

   Le programme tunefs(8) peut etre utilise pour regler finement un systeme
   de fichiers. Ce programme dispose de nombreuses options differentes, mais
   pour l'instant nous nous interesserons uniquement `a l'activation et la
   desactivation des "Soft Updates", ce qui fait avec:

 # tunefs -n enable /filesystem
 # tunefs -n disable /filesystem

   Un systeme de fichiers ne peut etre modifie avec tunefs(8) tant qu'il est
   monte. Un bon moment pour activer les "Soft Updates" est avant que les
   partitions ne soient montees en mode mono-utilisateur.

   Les "Soft Updates" ameliorent de fac,on drastique les performances sur les
   meta-donnees, principalement la creation et la suppression de fichier, par
   l'utilisation d'un cache memoire. Nous recommandons d'activer les "Soft
   Updates" sur tous vos systemes de fichiers. Il y a deux inconvenients aux
   "Soft Updates" que vous devez connaitre: tout d'abord, les "Soft Updates"
   garantissent la coherence du systeme de fichiers en cas de crash mais
   pourront facilement etre en retard de quelques secondes (voir meme une
   minute!) dans la mise `a jour du disque. Si votre systeme plante il se
   peut que vous perdiez plus de travail que dans d'autres cas. Deuxiemement,
   les "Soft Updates" retardent la liberation des blocs du systeme de
   fichiers. Si vous avez un systeme de fichiers (comme le systeme de
   fichiers racine) qui est presque plein, effectuer une mise `a jour
   majeure, comme un make installworld, peut mener `a un manque d'espace sur
   le systeme de fichiers et faire echouer la mise `a jour.

    11.11.2.1. Plus de details `a propos des "Soft Updates"

   Il y a deux approches traditionnelles pour ecrire les meta-donnees d'un
   systeme de fichiers sur le disque (mise `a jour des meta-donnees et mise
   `a jour des elements sans donnees comme les inodes ou les repertoires).

   Historiquement, le comportement par defaut etait d'ecrire les mises `a
   jour des meta-donnees de fac,on synchrone. Si un repertoire a ete modifie,
   le systeme attendait jusqu'`a ce que le changement soit effectivement
   ecrit sur le disque. Les tampons des donnees de fichier (contenu du
   fichier) passaient par le cache memoire et etaient copies sur le disque
   plus tard de fac,on asynchrone. L'avantage de cette implementation est
   qu'elle est effectuee sans risque. S'il y a un probleme durant une mise `a
   jour, les meta-donnees sont toujours dans un etat consistant. Un fichier
   est soit cree completement soit pas du tout. Si les blocs de donnees d'un
   fichier n'ont pas trouve leur chemin du cache memoire vers le disque au
   moment du crash, fsck(8) est capable de s'en apercevoir et de reparer le
   systeme de fichiers en fixant la taille du fichier `a 0. De plus,
   l'implementation est claire et simple. L'inconvenient est que la
   modification des meta-donnees est lente. Un rm -r, par exemple, touche `a
   tous les fichiers dans un repertoire sequentiellement, mais chaque
   modification du repertoire (effacement d'un fichier) sera ecrite de fac,on
   synchrone sur le disque. Cela comprend les mises `a jour du repertoire
   lui-meme, de la table des inodes, et eventuellement celles sur des blocs
   indirects alloues par le fichier. Des considerations semblables
   s'appliquent `a la creation d'importantes hierarchies ((tar -x).

   Le deuxieme cas est la mise `a jour asynchrone des meta-donnees. C'est le
   comportement par defaut de Linux/ext2fs et de l'usage de mount -o async
   pour l'UFS des systemes BSD. Toutes les mises `a jour des meta-donnees
   passent egalement par l'intermediaire d'un cache memoire, c'est `a dire,
   qu'elles seront melangees aux mises `a jour des donnees du contenu du
   fichier. L'avantage de cette implementation est qu'il n'y a pas besoin
   d'attendre jusqu'`a l'ecriture sur le disque de chaque mise `a jour de
   meta-donnees, donc toutes les operations qui sont `a l'origine d'une
   grande quantite de mise `a jour de meta-donnees fonctionnent bien plus
   rapidement que dans le cas synchrone. De plus, l'implementation est
   toujours claire et simple, il y a donc peu de risque qu'un bogue se cache
   dans le code. L'inconvenient est qu'il n'y a aucune garantie du tout sur
   la coherence du systeme de fichiers. S'il y a un probleme durant une
   operation qui met `a jour une grande quantite de meta-donnees (comme une
   coupure secteur, ou quelqu'un appuyant sur le bouton reset), le systeme de
   fichiers sera laisse dans un etat imprevisible. Il n'y a aucune
   opportunite d'examiner l'etat du systeme de fichiers quand le systeme est
   `a nouveau relance; les blocs de donnees d'un fichier pourraient dej`a
   avoir ete inscrits sur le disque alors que la mise `a jour de la table des
   inodes ou du repertoire associe n'a pas ete faite. Il est en fait
   impossible d'implementer un fsck qui est capable de nettoyer le chaos
   resultant (parce que l'information necessaire n'est pas disponible sur le
   disque). Si le systeme de fichiers a ete endommage irremediablement, le
   seul choix est de le recreer avec newfs(8) et de recuperer les donnees `a
   partir de sauvegardes.

   La solution commune pour ce probleme fut d'implementer une region de
   trace, dont on fait souvent reference sous le terme de journalisation,
   bien que ce terme ne soit pas toujours utilise de fac,on coherente et est
   occasionnellement utilise pour d'autres formes de transaction avec trace.
   Les mises `a jour des meta-donnees sont toujours ecrites de fac,on
   synchrone, mais seulement sur une petite region du disque. Elles seront
   plus tard deplacees vers leur emplacement correct. Parce que la region de
   trace est une petite region contigue sur le disque, il n'y a pas de
   grandes distances de deplacement pour les tetes des disques, meme durant
   les operations importantes, donc ces operations sont plus rapides que les
   mises `a jour synchrones. De plus la complexite de l'implementation est
   relativement limitee, donc le risque de presence de bogues est faible. Un
   inconvenient est que toutes les meta-donnees sont ecrites deux fois (une
   fois dans la region de trace et une fois sur l'emplacement correct) donc
   pour un fonctionnement normal, une baisse des performances pourra en
   resulter. D'autre part, dans le cas d'un crash, toutes les operations sur
   les meta-donnees en attente peuvent rapidement etre annulees ou completees
   `a partir de la zone de trace apres le redemarrage du systeme, ayant pour
   resultat un demarrage rapide du systeme de fichiers.

   Kirk McKusick, le developpeur du FFS de Berkeley, a resolu le probleme
   avec les "Soft Updates": toutes les mises `a jour des meta-donnees sont
   conservees en memoire et inscrites sur le disque selon une sequence
   ordonnee ("mise `a jour ordonnee des meta-donnees"). Ceci a pour effet,
   dans le cas d'un nombre d'operations sur les meta-donnees important, que
   les dernieres mises `a jour sur un element "attrapent" les premieres si
   ces dernieres sont encore en memoire et n'ont pas encore ete inscrites sur
   le disque. Donc toutes les operations sur, par exemple, un repertoire sont
   generalement effectuees en memoire avant que la mise `a jour ne soit
   ecrite sur le disque (les blocs de donnees sont ordonnes en fonction de
   leur position de sorte `a ce qu'ils ne soient pas sur le disque avant leur
   meta-donnees). Si le systeme crash, cela provoque un "retour dans les
   traces" implicite: toutes les operations qui n'ont pas trouve leur chemin
   vers le disque apparaissent comme si elles n'avaient jamais existe. Un
   etat coherent du systeme de fichiers est maintenu et apparait comme etant
   celui de 30 ou 60 secondes plus tot. L'algorithme utilise garantie que
   toutes les ressources utilisees soient marquees avec leur bons "bitmaps":
   blocs et inodes. Apres un crash, les seules erreurs d'allocation de
   ressources qui apparaissent sont les ressources qui ont ete marquees comme
   "utilisees" et qui sont en fait "libre". fsck(8) reconnait cette
   situation, et libere les ressources qui ne sont plus utilisees. On peut
   ignorer sans risque l'etat "sale" d'un systeme de fichiers apres un crash
   en forc,ant son montage avec mount -f. Afin de liberer les ressources qui
   peuvent etre inutilisees, fsck(8) doit etre execute plus tard. C'est
   l'idee qu'il y a derriere le "background fsck" (fsck en tache de fond): au
   demarrage du systeme, seule un "snapshot" (photographie) du systeme de
   fichiers est prise. La commande fsck peut etre executee plus tard sur ce
   systeme de fichiers. Tous les systemes de fichiers peuvent etre montes
   "sales", donc le systeme passe en mode multi-utilisateurs. Ensuite, les
   fsck en tache de fond seront programmes pour tous les systemes de fichiers
   pour lesquels c'est necessaire, pour liberer les ressources qui peuvent
   etre inutilisees (les systemes qui n'utilisent pas les `Soft Updates" ont
   toujours besoin du fsck en avant plan).

   L'avantage est que les operations sur les meta-donnees sont presque aussi
   rapides que les mises `a jour asynchrones (i.e. plus rapide qu'avec le
   "logging" - trac,age, qui doit ecrire les meta-donnees deux fois). Les
   inconvenients sont la complexite du code (impliquant un haut risque de
   bogues dans une zone qui est hautement sensible en raison de risque perte
   de donnees utilisateur), et une plus grande consommation en memoire. De
   plus il y a quelques particularites que l'on peut rencontrer lors de
   l'utilisation. Apres un crash, l'etat du systeme apparait etre en quelque
   sorte "plus vieux". Dans des situations ou l'approche synchrone classique
   aurait donne lieu `a des fichiers de taille nulle restant apres le fsck,
   ces fichiers n'existent pas du tout avec un systeme de fichiers utilisant
   les "Soft Updates" parce que ni les meta-donnees ni les contenus de
   fichiers n'ont jamais ete inscrits sur le disque. L'espace disque n'est
   pas rendu tant que les mises `a jour n'ont pas ete inscrites sur le
   disque, ce qui peut se produire quelques temps apres l'execution de rm.
   Cela peut etre `a l'origine de problemes quand on installe une grande
   quantite de donnees sur un systeme de fichiers qui ne dispose pas de
   suffisamment d'espace pour contenir tous les fichiers deux fois.

11.12. Optimisation des limitations du noyau

  11.12.1. Limitations sur les fichiers et les processus

    11.12.1.1. kern.maxfiles

   Le parametre kern.maxfiles peut etre augmente ou diminue en fonction des
   besoins du systeme. Cette variable indique le nombre maximal de
   descripteurs de fichier sur votre systeme. Quand la table de descripteurs
   de fichier est pleine, le message file: table is full s'affichera
   regulierement dans le tampon des messages systeme, qui peut etre visualise
   avec la commande dmesg.

   Chaque fichier ouvert, chaque "socket", ou chaque emplacement en pile
   utilise un descripteur de fichier. Un serveur important peut facilement
   demander plusieurs milliers de descripteurs de fichiers, en fonction du
   type et du nombre de services s'executant en meme temps.

   Sous les anciennes versions de FreeBSD, la valeur par defaut de
   kern.maxfile est fixee par l'option maxusers dans votre fichier de
   configuration du noyau. kern.maxfiles augmente proportionnellement avec la
   valeur de maxusers. Quand vous compilez un noyau sur mesure, il est bon de
   parametrer cette option en fonction de l'utilisation de votre systeme. Ce
   nombre fixe la plupart des limites pre-definies du noyau. Meme si une
   machine de production pourra ne pas avoir en realite 256 utilisateurs
   connectes simultanement, les ressources requises pourront etre semblables
   pour un serveur web important.

   La variable kern.maxusers est automatiquement ajustee au demarrage en
   fonction de la quantite de memoire disponible dans le systeme, sa valeur
   peut etre connue durant le fonctionnement du systeme en examinant la
   valeur de la variable sysctl en lecture seule: kern.maxusers. Certains
   systemes auront besoin de valeurs plus elevees ou plus faibles pour
   kern.maxusers et pourront donc la fixer au chargement du systeme; des
   valeurs de 64, 128, ou 256 ne sont pas inhabituelles. Nous recommandons de
   ne pas depasser 256 `a moins que vous ayez besoin d'un grand nombre de
   descripteurs de fichiers; plusieurs des variables dont la valeur par
   defaut depend de kern.maxusers peuvent etre fixees individuellement au
   demarrage ou en fonctionnement dans le fichier /boot/loader.conf (voir la
   page de manuel loader.conf(5) ou le fichier /boot/defaults/loader.conf
   pour des exemples) ou comme decrit en d'autres endroits dans ce document.

   Sous les anciennes versions, le systeme auto-ajuste ce parametre pour vous
   si vous le fixez explicitement `a 0[5]. En parametrant cette option, vous
   devrez fixer maxusers `a 4 au moins, en particulier si vous utilisez le
   systeme X Window ou compilez des logiciels. La raison de cela est que la
   valeur la plus importante que dimensionne maxusers est le nombre maximal
   de processus, qui est fixe `a 20 + 16 * maxusers, donc si vous positionnez
   maxusers `a 1, alors vous ne pouvez avoir que 36 processus en simultanes,
   comprenant les 18, environ, que le systeme lance au demarrage et les 15,
   `a peu pres, que vous creerez probablement au demarrage du systeme X
   Window. Meme une tache simple comme la lecture d'une page de manuel
   lancera jusqu'`a neuf processus pour la filtrer, la decompresser, et
   l'afficher. Fixer maxusers `a 64 autorisera jusqu'`a 1044 processus
   simultanes, ce qui devrait suffire dans la plupart des cas. Si, toutefois,
   vous obtenez le message d'erreur tant redoute proc table full quand vous
   tentez d'executer un nouveau programme, ou gerez un serveur avec un grand
   nombre d'utilisateurs en simultanes (comme ftp.FreeBSD.org), vous pouvez
   toujours augmenter cette valeur et recompiler le noyau.

  Note:

   maxusers ne limite pas le nombre d'utilisateurs qui pourront ouvrir une
   session sur votre machine. Cette valeur dimensionne simplement differentes
   tables `a des valeurs raisonnables en fonction du nombre maximal
   d'utilisateur que vous aurez vraisemblablement sur votre systeme et
   combien de processus chacun d'entre eux pourra utiliser.

    11.12.1.2. kern.ipc.somaxconn

   La variable sysctl kern.ipc.somaxconn limite la taille de la file
   d'attente acceptant les nouvelles connexions TCP. La valeur par defaut de
   128 est generalement trop faible pour une gestion robuste des nouvelles
   connexions dans un environnement de serveur web tres charge. Pour de tels
   environnements, il est recommande d'augmenter cette valeur `a 1024 ou
   plus. Le << daemon >> en service peut de lui-meme limiter la taille de la
   file d'attente (e.g. sendmail(8), ou Apache) mais disposera, la plupart du
   temps, d'une directive dans son fichier de configuration pour ajuster la
   taille de la file d'attente. Les files d'attentes de grandes tailles sont
   plus adaptees pour eviter les attaques par deni de service (DoS).

  11.12.2. Limitations reseau

   L'literal du noyau NMBCLUSTERS fixe la quantite de << Mbuf >>;s
   disponibles pour le systeme. Un serveur `a fort trafic avec un nombre
   faible de << Mbuf >>;s sous-emploiera les capacites de FreeBSD. Chaque
   "cluster" represente approximativement 2 Ko de memoire, donc une valeur de
   1024 represente 2 megaoctets de memoire noyau reservee pour les tampons
   reseau. Un simple calcul peut etre fait pour determiner combien sont
   necessaires. Si vous avez un serveur web qui culmine `a 1000 connexions
   simultanees, et que chaque connexion consomme un tampon de reception de
   16Ko et un tampon d'emission de 16 Ko, vous avez approximativement besoin
   de 32 Mo de tampon reseau pour couvrir les besoin du serveur web. Un bon
   principe est de multiplier ce nombre par 2, soit 2x32 Mo / 2 Ko = 64 Mo /
   2 Ko =32768. Nous recommandons des valeurs comprises entre 4096 et 32768
   pour les machines avec des quantites de memoire plus elevees. Vous ne
   devriez, dans aucun circonstance, specifier de valeur elevee arbitraire
   pour ce parametre etant donne que cela peut etre `a l'origine d'un
   plantage au demarrage. L'option -m de netstat(1) peut etre utilisee pour
   observer l'utilisation des << clusters >>.

   La variable kern.ipc.nmbclusters configurable au niveau du chargeur est
   utilisee pour ajuster cela au demarrage. Seules les anciennes versions de
   FreeBSD vous demanderont d'utiliser l'option de configuration du noyau
   NMBCLUSTERS.

   Pour les serveurs charges qui font une utilisation intensive de l'appel
   systeme sendfile(2), il peut etre necessaire d'augmenter le nombre de
   tampons sendfile(2) par l'intermediaire de l'option de configuration du
   noyau NSFBUFS ou en fixant sa valeur dans le fichier /boot/loader.conf
   (consultez la page de manuel loader(8) pour plus de details). Un
   indicateur de la necessite d'ajuster ce parametre est lorsque des
   processus sont dans l'etat sfbufa. La variable sysctl kern.ipc.nsfbufs est
   un aperc,u en lecture seule de la variable du noyau. Ce parametre s'ajuste
   de fac,on optimale avec kern.maxusers, il peut etre cependant necessaire
   de l'ajuster en fonction des besoins.

  Important:

   Meme si une << socket >> a ete marquee comme etant non-bloquante, un appel
   de sendfile(2) sur la << socket >> non-bloquante peut resulter en un
   blocage de l'appel sendfile(2) jusqu'`a ce que suffisamment de struct
   sf_buf soient liberees.

    11.12.2.1. net.inet.ip.portrange.*

   Les variables net.inet.ip.portrange.* controlent les intervalles de ports
   automatiquement alloues aux << socket >>s TCP et UDP. Il y a trois
   intervalles: un intervalle bas, un intervalle par defaut, et intervalle un
   haut. La plupart des programmes reseau utilisent l'intervalle par defaut
   qui est controle par net.inet.ip.portrange.first et
   net.inet.ip.portrange.last, qui ont pour valeur par defaut respectivement
   1024 et 5000. Ces intervalles de ports sont utilises pour les connexions
   sortantes, et il est possible de se trouver `a court de ports dans
   certaines conditions. Cela arrive le plus souvent quand votre systeme fait
   tourner un proxy web tres charge. L'intervalle de ports n'est pas un
   probleme quand vous executez des serveurs qui ne gerent principalement que
   des connexions entrantes, comme un server web classique, ou qui ont un
   nombre de connexions sortantes limitees comme un relai de messagerie. Pour
   les cas ou vous risquez d'etre `a court de ports, il est recommande
   d'augmenter legerement net.inet.ip.portrange.last. Une valeur de 10000,
   20000 ou 30000 doit etre suffisante. Vous devriez egalement penser au
   probleme du coupe-feu lors du changement de l'intervalle des ports.
   Certains coupes-feu peuvent bloquer de grands intervalles de ports (en
   general les ports inferieurs) et s'attendent `a ce que les systemes
   utilisent les intervalles superieurs pour les connexions sortantes - pour
   cette raison il n'est pas conseille de diminuer
   net.inet.ip.portrange.first.

    11.12.2.2. Le produit delai-bande passante TCP

   La limitation du produit delai-bande passante TCP est semblable au
   TCP/Vegas sous NetBSD. Elle peut etre activee en positionnant `a 1 la
   variable net.inet.tcp.inflight.enable. Le systeme tentera alors de
   calculer le produit delai-bande passante pour chaque connexion et limitera
   la quantite de donnees en attente `a la quantite juste necessaire au
   maintient d'un flux de sortie optimal.

   Cette fonctionnalite est utile si vous diffusez des donnees par
   l'intermediaire de modems, de connexions Ethernet Gigabit, ou meme de
   liaisons hauts debits WAN (ou toute autre liaison avec un produit
   delai-bande passante eleve), tout particulierement si vous utilisez
   egalement le dimensionnement des fenetres d'emission ou que vous avez
   configure une fenetre d'emission importante. Si vous activez cette option,
   vous devriez egalement vous assurer que net.inet.tcp.inflight.debug est
   positionnee `a 0 (desactive le debogage), et pour une utilisation en
   production, fixer net.inet.tcp.inflight.min `a au moins 6144 peut etre
   benefique. Notez, cependant, que fixer des minima eleves peut desactiver
   la limitation de bande passante selon la liaison. La fonction de
   limitation diminue la quantite de donnees accumulees dans les files
   d'attente intermediaire de routage et de commutation, et diminue egalement
   la quantite de donnees presentes dans les files d'attente de l'interface
   de la machine locale. Avec moins de paquets dans les files d'attente, les
   connexions interactives, tout particulierement sur des modems lents,
   seront en mesure de fonctionner avec des temps d'aller-retour plus faible.
   Mais cette fonctionnalite n'affecte que la transmission de donnees
   (transmission cote serveur). Ceci n'a aucun effet sur la reception de
   donnees (telechargement).

   Modifier net.inet.tcp.inflight.stab n'est pas recommande. Ce parametre est
   fixe par defaut `a la valeur 20, representant au maximum 2 paquets ajoutes
   `a la fenetre de calcul du produit delai-bande passante. La fenetre
   supplementaire est necessaire pour stabiliser l'algorithme et ameliorer la
   reponse aux changements de conditions, mais il peut en resulter des temps
   de << ping >> plus eleves sur les liaisons lentes (mais cependant
   inferieurs `a ce que vous obtiendriez sans l'algorithme de limitation).
   Dans de tels cas, vous pouvez essayer de reduire ce parametre `a 15, 10,
   ou 5, et vous pouvez avoir `a reduire le parametre
   net.inet.tcp.inflight.min (par exemple `a 3500) pour obtenir l'effet
   desire. Ces parametres ne doivent etre reduits qu'en dernier ressort.

  11.12.3. Memoire virtuelle

    11.12.3.1. kern.maxvnodes

   Un vnode est la representation interne d'un fichier ou d'un repertoire.
   Augmenter le nombre de vnodes disponibles pour le systeme d'exploitation
   diminue les acces disque. Cela est normalement gere par le systeme
   d'exploitation et n'a pas besoin d'etre modifie. Dans certains cas ou les
   acces aux disques sont un goulot d'etranglement pour le systeme et que ce
   dernier est `a cours de vnodes, ce nombre aura besoin d'etre augmente. La
   quantite de RAM libre et inactive sera prise en compte.

   Pour connaitre le nombre de vnodes actuellement utilises:

 # sysctl vfs.numvnodes
 vfs.numvnodes: 91349

   Pour connaitre le maximum de vnodes utilisables:

 # sysctl kern.maxvnodes
 kern.maxvnodes: 100000

   Si l'utilisation actuelle des vnodes est proche du maximum, augmenter de
   1000 kern.maxvnodes est probablement une bonne idee. Gardez un oeil sur le
   nombre vfs.numvnodes. S'il approche `a nouveau le maximum, kern.maxvnodes
   devra etre augmente de maniere plus consequente. Une modification dans
   votre utilisation de la memoire devrait etre visible dans top(1). Une plus
   grande quantite de memoire devrait etre annoncee comme active.

11.13. Ajouter de l'espace de pagination

   Peu importe comment vous l'avez pense, parfois un systeme ne fonctionne
   pas comme prevu. Si vous trouvez que vous avez besoin de plus d'espace de
   pagination, il est assez simple d'en rajouter. Vous avez trois manieres
   d'augmenter votre espace de pagination: ajouter un nouveau disque dur,
   activer la pagination sur NFS, et creer un fichier de pagination sur une
   partition existante.

   Pour des informations sur comment chiffrer l'espace de pagination, quelles
   options existent pour mener `a bien cette tache et pourquoi on devrait le
   faire, veuillez vous referer `a la Section 18.17, << Chiffrage de l'espace
   de pagination >> du Manuel.

  11.13.1. Espace de pagination sur un nouveau disque dur ou une partition
  existante

   Ajouter un nouveau disque pour l'espace de pagination donne de meilleures
   performances qu'utiliser une partition sur un disque existant. La
   configuration des partitions et des disques durs est expliquee dans la
   Section 18.3, << Ajouter des disques >> tandis que la Section 2.6.1,
   << Choix du partitionnement >> aborde l'organisation des partitions et les
   problemes relatifs `a la taille de la partition de l'espace de pagination.

   Utiliser la commande swapon pour ajouter une partition de pagination au
   systeme. Par exemple:

 # swapon /dev/ada1s1b

  Avertissement:

   Il est possible d'utiliser n'importe quelle partition actuellement
   non-montee, meme si cette derniere contient des donnees. Utiliser swapon
   sur une partition contenant des donnees ecrasera et effacera ces donnees.
   Assurez-vous que la partition `a utiliser comme espace de pagination est
   bien celle prevue `a cet effet avant d'executer swapon.

   Pour ajouter cette partition de pagination automatiquement au demarrage,
   ajouter une entree au fichier /etc/fstab:

 /dev/ada1s1b    none    swap    sw      0       0

   Consulter fstab(5) pour plus d'explications sur les entrees du fichier
   /etc/fstab. Plus d'informations sur swapon sont disponibles dans
   swapon(8).

  11.13.2. Espace de pagination sur NFS

   L'espace de pagination sur NFS n'est recommande que si vous n'avez pas de
   disque dur local sur lequel avoir l'espace de pagination; la pagination
   sur NFS sera limitee par la bande passante du reseau et sera un fardeau
   supplementaire pour le serveur NFS.

  11.13.3. Fichiers de pagination

   Vous pouvez creer un fichier d'une taille specifique pour l'utiliser comme
   fichier de pagination. Dans notre exemple nous utiliserons un fichier de
   64MO appele /usr/swap0. Vous pouvez, bien sur, utiliser le nom de votre
   choix.

   Exemple 11.1. Creer un fichier de pagination sous FreeBSD
    1. Le noyau GENERIC inclut dej`a le pilote de disque memoire (md(4))
       necessaire `a cette operation. Lors de la compilation d'un noyau sur
       mesures, assurez-vous d'inclure la ligne suivante dans le fichier de
       configuration:

 device   md

       Pour plus d'information sur la compilation du noyau, veuillez vous
       referer `a la Chapitre 8, Configurer le noyau de FreeBSD.

    2. Creez un fichier de pagination (/usr/swap0):

 # dd if=/dev/zero of=/usr/swap0 bs=1024k count=64

    3. Fixez les bonnes permissions sur /usr/swap0:

 # chmod 0600 /usr/swap0

    4. Activez le fichier de pagination dans /etc/rc.conf:

 swapfile="/usr/swap0"   # Set to name of swapfile if aux swapfile desired.

    5. Redemarrez la machine ou activez directement le fichier de pagination:

 # mdconfig -a -t vnode -f /usr/swap0 -u 0 && swapon /dev/md0

11.14. Gestion de l'energie et des ressources

   Ecrit par Hiten Pandya et Tom Rhodes.

   Il est important d'utiliser les ressources materielles d'une maniere
   efficace. Avant l'apparition de l'ACPI, il etait difficile pour les
   systemes d'exploitation de gerer l'utilisation de l'alimentation et la
   temperature d'un systeme. Le materiel etait gere par le BIOS et donc
   l'utilisateur avait moins de controle et de visibilite sur le parametrage
   de la gestion de l'energie. Une configuration limitee etait accessible via
   l'Advanced Power Management (APM). La gestion de l'energie et des
   ressources est un des elements cles d'un systeme d'exploitation moderne.
   Par exemple, vous pourrez vouloir qu'un systeme d'exploitation surveille
   certaines limites (et eventuellement vous alerte), au cas ou la
   temperature de votre systeme augmente de fac,on inattendue.

   Dans cette section, nous fournirons une information complete au sujet de
   l'ACPI. Il sera fait reference `a des documents supplementaires en fin de
   section pour plus de details.

  11.14.1. Qu'est-ce que l'ACPI?

   L'<< interface de configuration et d'alimentation avancee >> (ACPI,
   Advanced Configuration and Power Interface) est une norme creee par un
   ensemble de constructeurs pour fournir une interface standard `a la
   gestion des ressources et de l'energie. C'est un element cle dans le
   controle et la configuration par le systeme d'exploitation de de la
   gestion d'energie, i.e., il permet plus de controle et flexibilite au
   systeme d'exploitation. Les systemes modernes ont "repousse" les limites
   des interfaces "Plug and Play" anterieures `a l'apparition de l'ACPI.
   L'ACPI est le descendant direct de l'APM (Advanced Power Management -
   gestion avancee de l'energie).

  11.14.2. Les imperfections de la gestion avancee de l'energie (APM)

   Le systeme de gestion avancee de l'energie (APM) gere l'utilisation de
   l'energie par un systeme en fonction de son activite. Le BIOS APM est
   fourni par le fabricant (du systeme) et est specifique `a la plateforme
   materielle. Un pilote APM au niveau du systeme d'exploitation gere l'acces
   `a l'interface logicielle APM qui autorise la gestion des niveaux de
   consommation. L'APM devrait etre toujours utilise pour les systemes
   fabriques en ou avant 2000.

   L'APM presente quatre problemes majeurs. Tout d'abord la gestion de
   l'energie est effectuee par le BIOS (specifique au constructeur), et le
   systeme d'exploitation n'en a aucune connaissance. Un exemple de ce
   probleme, est lorsque l'utilisateur fixe des valeurs pour le temps
   d'inactivite d'un disque dur dans le BIOS APM, qui une fois depasse,
   provoque l'arret du disque (par le BIOS) sans le consentement du systeme
   d'exploitation. Deuxiemement, la logique de l'APM est interne au BIOS, et
   agit independamment du systeme d'exploitation. Cela signifie que les
   utilisateurs ne peuvent corriger les problemes de leur BIOS APM qu'en
   flashant un nouveau BIOS; c'est une operation dangereuse, qui si elle
   echoue peut laisser le systeme dans un etat irrecuperable. Troisiemement,
   l'APM est une technologie specifique au constructeur, ce qui veut dire
   qu'il y a beaucoup de redondances (duplication des efforts) et de bogues
   qui peuvent etre trouvees dans le BIOS d'un constructeur, et qui peuvent
   ne pas etre corrigees dans d'autres BIOS. Et pour terminer, le dernier
   probleme est le fait que le BIOS APM n'a pas suffisamment d'espace pour
   implementer une politique sophistiquee de gestion de l'energie, ou une
   politique qui peut s'adapter parfaitement aux besoins de la machine.

   Le BIOS Plug and Play (PNPBIOS) n'etait pas fiable dans de nombreuses
   situations. Le PNPBIOS est une technologie 16 bits, le systeme
   d'exploitation doit utiliser une emulation 16 bits afin de faire
   l'<< interface >> avec les methodes PNPBIOS.

   Le pilote APM FreeBSD est documente dans la page de manuel apm(4).

  11.14.3. Configurer l'ACPI

   Le pilote acpi.ko est par defaut charge par le loader(8) au demarrage et
   ne devrait pas etre compile dans le noyau. La raison derriere cela est que
   les modules sont plus facile `a manipuler, par exemple pour passer `a une
   autre version du module acpi.ko sans avoir `a recompiler le noyau. Cela
   presente l'avantage de rendre les tests aises. Une autre raison est que
   lancer l'ACPI apres qu'un systeme ait termine son lancement donne souvent
   lieu `a des dysfonctionnements. Si des problemes surviennent, vous pouvez
   desactiver l'ACPI. Ce pilote ne devrait et ne peut etre decharge car le
   bus systeme l'utilise pour differentes interaction avec le materiel.
   L'ACPI peut etre deactive en ajoutant hint.acpi.0.disabled="1" dans le
   fichier /boot/loader.conf ou directement `a l'invite du chargeur
   (loader(8)).

  Note:

   L'ACPI et l'APM ne peuvent coexister et devraient etre utilise separement.
   Le dernier charge s'arretera s'il detecte l'autre en fonctionnement.

   L'ACPI peut etre utilise pour mettre en veille un systeme avec
   acpiconf(8), les options -s et 1-5. La plupart des utilisateurs n'auront
   besoin que de 1 ou 3 (systeme suspendu en RAM). L'option 5 provoquera un
   arret de l'alimentation par logiciel, effet identique `a un:

 # halt -p

   D'autres options sont disponibles via sysctl(8). Consultez les pages de
   manuel acpi(4) et acpiconf(8) pour plus d'informations.

11.15. Utiliser et deboguer l'ACPI sous FreeBSD

   Ecrit par Nate Lawson.
   Avec la collaboration de Peter Schultz et Tom Rhodes.

   L'ACPI est une nouvelle methode de recherche des peripheriques, de gestion
   de l'energie, et fourni un acces standardise `a differents materiels geres
   auparavant par le BIOS. Des progres ont ete fait vers un fonctionnement de
   l'ACPI sur tous les systemes, mais des bogues dans le << bytecode >> du
   langage machine ACPI (ACPI Machine Language-AML), des imperfections dans
   les sous-systemes du noyau FreeBSD, et des bogues dans l'interpreteur
   ACPI-CA d'Intel(R) continuent d'apparaitre.

   Ce document est destine `a vous permettre d'aider les developpeurs du
   systeme ACPI sous FreeBSD `a identifier la cause originelle des problemes
   que vous observez et `a deboguer et developper une solution. Merci de lire
   ce document et nous esperons pouvoir resoudre les problemes de votre
   systeme.

  11.15.1. Soumettre des informations de debogage

  Note:

   Avant de soumettre un probleme, assurez-vous d'utiliser la derniere
   version de votre BIOS, et si elle est disponible, la derniere version du
   firmware du controleur utilise.

   Pour ceux desirant soumettre directement un probleme, veuillez faire
   parvenir les informations suivantes `a la liste freebsd-acpi@FreeBSD.org:

     * Description du comportement defectueux, en ajoutant le type et le
       modele du systeme et tout ce qui peut causer l'apparition du bogue.
       Notez egalement le plus precisement possible quand le bogue a commence
       `a se manifester s'il est nouveau.

     * La sortie de dmesg(8) apres un boot -v, y compris tout message genere
       lors de la manifestation du bogue.

     * La sortie de dmesg(8) apres un boot -v avec l'ACPI desactive, si cette
       desactivation corrige le probleme.

     * La sortie de sysctl hw.acpi. C'est egalement un bon moyen de
       determiner quelles fonctionnalites sont offertes par votre systeme.

     * Une URL ou peut etre trouve votre code source ACPI (ACPI Source
       Language-ASL). N'envoyez pas directement l'ASL sur la liste de
       diffusion, ce fichier peut etre tres gros. Vous pouvez generer une
       copie de votre ASL en executant la commande suivante:

 # acpidump -dt > name-system.asl

       (Remplacez name par votre nom d'utilisateur et system par celui du
       constructeur/modele. Par exemple: njl-FooCo6000.asl)

   La plupart des developpeurs lisent la liste liste de diffusion `a propos
   de la branche FreeBSD-CURRENT mais soumettez egalement les problemes
   rencontres `a la liste freebsd-acpi afin d'etre sur qu'ils seront vus.
   Soyez patient, nous avons tous un travail `a plein temps qui nous attend
   ailleurs. Si votre bogue n'est pas immediatement apparent, nous vous
   demanderons probablement de soumettre un PR par l'intermediaire de
   send-pr(1). Quand vous remplirez un PR, veillez `a inclure les memes
   informations que celles precisees precedemment. Cela nous aidera `a cerner
   et `a resoudre le probleme. N'envoyez pas de PR sans avoir contacte
   auparavant la liste freebsd-acpi etant donne que nous utilisons les PRs
   comme pense-betes de problemes existants, et non pas comme mecanisme de
   rapport. Il se peut que votre probleme puisse avoir dej`a ete signale par
   quelqu'un d'autre.

  11.15.2. Information de fond

   L'ACPI est present sur tous les ordinateurs modernes compatibles avec
   l'une des architectures ia32 (x86), ia64 (Itanium), et amd64 (AMD). La
   norme complete definit des fonctionnalites comme la gestion des
   performances du CPU, des controles des niveaux d'energie, des zones de
   temperatures, divers systemes d'utilisation des batteries, des controleurs
   integres, et l'enumeration du bus. La plupart des systemes n'implementent
   pas l'integralite des fonctionnalites de la norme. Par exemple, un
   ordinateur de bureau n'implementera generalement que la partie enumeration
   de bus alors qu'un ordinateur portable aura egalement le support de la
   gestion du refroidissement et de la batterie. Les ordinateurs portables
   disposent egalement des modes de mise en veille et de reveil, avec toute
   la complexite qui en decoule.

   Un systeme compatible ACPI dispose de divers composants. Les fabricants de
   BIOS et de circuits fournissent des tables de description (FADT) fixes en
   memoire qui definissent des choses comme la table APIC (utilisee par les
   systemes SMP), les registres de configuration, et des valeurs de
   configuration simples. De plus, est fournie une table de << bytecode >>
   (la table differenciee de description du systeme-Differentiated System
   Description Table DSDT) qui specifie sous forme d'une arborescence
   l'espace des noms des peripheriques et des methodes.

   Le pilote ACPI doit analyser les tables, implementer un interpreteur pour
   le << bytecode >>, et modifier les pilotes de peripheriques et le noyau
   pour qu'ils acceptent des informations en provenance du sous-systeme ACPI.
   Pour FreeBSD, Intel(R) fourni un interpreteur (ACPI-CA) qui est partage
   avec Linux et NetBSD. L'emplacement du code source de l'interpreteur
   ACPI-CA est src/sys/contrib/dev/acpica. Le code << glu >> permettant `a
   ACPI-CA de fonctionner sous FreeBSD se trouve dans src/sys/dev/acpica/Osd.
   Et enfin, les pilotes qui gerent les differents peripheriques ACPI se
   trouvent dans src/sys/dev/acpica.

  11.15.3. Problemes courants

   Pour un fonctionnement correct de l'ACPI, il faut que toutes les parties
   fonctionnent correctement. Voici quelques problemes courants, par ordre de
   frequence d'apparition, et quelques contournements ou corrections
   possibles.

    11.15.3.1. Problemes avec la souris

   Dans certains cas le reveil apres une mise en veille sera `a l'origine
   d'un dysfonctionnement de la souris. Une solution connue est d'ajouter la
   ligne hint.psm.0.flags="0x3000" au fichier /boot/loader.conf. Si cela ne
   fonctionne pas, pensez `a envoyer un rapport de bogue comme decrit plus
   haut.

    11.15.3.2. Mise en veille/reveil

   L'ACPI dispose de trois modes de mise en veille en RAM (STR-Suspend To
   RAM), S1 `a S3, et un mode de mise en veille vers le disque dur
   (STD-Suspend To Disk), appele S4. Le mode S5 est un arret << soft >> et
   est le mode dans lequel se trouve votre systeme quand il est branche mais
   pas allume. Le mode S4 peut etre implemente de deux manieres differentes.
   Le mode S4BIOS est une mise en veille vers le disque assistee par le BIOS.
   Le mode S4OS est implemente integralement par le systeme d'exploitation.

   Commencez par examiner la sortie de sysctl hw.acpi `a la recherche
   d'elements concernant les modes de mise en veille. Voici les resultats
   pour un Thinkpad:

 hw.acpi.supported_sleep_state: S3 S4 S5
 hw.acpi.s4bios: 0

   Cela signifie que nous pouvons utiliser acpiconf -s pour tester les modes
   S3, S4OS, et S5. Si s4bios etait egal `a 1, nous disposerions d'un support
   S4BIOS `a la place de S4OS.

   Quand vous testez la mise en veille et le reveil, commencez avec le mode
   S1, pour voir s'il est supporte. Ce mode doit fonctionner dans la plupart
   des cas puisqu'il necessite peu de support. Le mode S2 n'est pas
   implemente, mais si vous en disposez, il est similaire au mode S1. La
   chose suivante `a essayer est le mode S3. C'est le mode STR le plus avance
   et il necessite un support du pilote important pour reinitialiser
   correctement votre materiel. Si vous avez des problemes au reveil de la
   machine, n'hesitez pas `a contacter la liste freebsd-acpi mais ne vous
   attendez pas `a ce que le probleme soit resolu puisqu'il y a de nombreux
   pilotes/materiels qui necessitent plus de tests et de developpement.

   Un probleme courant avec la mise en veille/le reveil est que de nombreux
   pilotes de peripheriques ne sauvegardent pas, ne restaurent pas, ou ne
   reinitialisent pas leurs logiciel, registres ou memoire proprement. En
   premier lieu pour debogguer le probleme, essayez:

 # sysctl debug.bootverbose=1
 # sysctl debug.acpi.suspend_bounce=1
 # acpiconf -s 3

   Ce test emule le cycle de mise en veille/reveil de tous les pilotes de
   peripheriques sans reellement passer dans l'etat S3. Dans certains cas,
   les problemes comme la perte de l'etat du peripherique, le depassement du
   delai du chien de garde du peripherique, les tentatives repetees, peuvent
   etre captures avec cette methode. Notez que le systeme n'entrera pas
   vraiment dans l'etat S3, ce qui signifie que les peripheriques peuvent ne
   pas perdre leur alimentation, et nombreux fonctionneront correctement meme
   si les methodes de mise en veille/reveil sont totalement absentes,
   contrairement au cas d'un veritable etat S3.

   Les cas plus difficiles necessitent un materiel supplementaire, tel qu'un
   port serie et un cable pour debogguer `a l'aide d'une console serie, un
   port firewire et un cable pour l'utilisation de dcons(4), et des
   competences en debogguage du noyau.

   Pour isoler le probleme, retirez du noyau tous les pilotes de
   peripheriques possibles. Si cela fonctionne, vous pouvez alors identifier
   le pilote fautif en chargeant les pilotes un `a un jusqu'`a l'apparition
   du probleme. Generalement les pilotes binaires comme nvidia.ko, les
   pilotes d'affichage X11, ou les pilotes USB seront victimes de la plupart
   des problemes tandis que ceux concernant les interfaces Ethernet
   fonctionneront normalement. Si vous pouvez charger/decharger les pilotes
   de peripheriques correctement, vous pouvez automatiser cela en ajoutant
   les commandes appropriees dans les fichiers /etc/rc.suspend et
   /etc/rc.resume. Il y a un exemple en commentaire pour decharger ou charger
   un pilote. Essayez de fixer hw.acpi.reset_video `a zero (0) si votre
   affichage est corrompu apres un reveil de la machine. Essayez des valeurs
   plus grandes ou plus faibles pour hw.acpi.sleep_delay pour voir si cela
   aide.

   Une autre methode est d'essayer de charger une distribution Linux recente
   avec le support ACPI et tester la mise en veille et le reveil sur le meme
   materiel. Si cela fonctionne sous Linux, c'est probablement donc un
   probleme de pilotes FreeBSD et determiner quel pilote est responsable des
   dysfonctionnements nous aidera `a corriger le probleme. Notez que les
   personnes qui maintiennent l'ACPI sous FreeBSD ne s'occupe pas
   generalement des autres pilotes de peripheriques (comme le son, le systeme
   ATA, etc.), aussi tout rapport concernant un probleme de pilote devrait
   probablement en fin de compte etre poste sur la liste freebsd-current et
   communique au responsable du pilote. Si vous vous sentez une ame
   d'aventurier, commencez `a ajouter des printf(3)s de debogage dans un
   pilote problematique pour determiner `a quel moment dans sa fonction de
   reveil il se bloque.

   Enfin, essayez de desactiver l'ACPI et d'activer l'APM `a la place, pour
   voir si la mise en veille et le reveil fonctionnent avec l'APM, tout
   particulierement dans le cas de materiel ancien (anterieur `a 2000). Cela
   prend du temps aux constructeurs de mettre en place le support ACPI et le
   materiel ancien aura surement des problemes de BIOS avec l'ACPI.

    11.15.3.3. Blocages du systeme (temporaires ou permanents)

   La plupart des blocages systeme sont le resultat d'une perte
   d'interruptions ou d'une tempete d'interruptions. Les circuits ont
   beaucoup de problemes en fonction de la maniere dont le BIOS configure les
   interruptions avant le demarrage, l'exactitude de la table APIC (MADT), et
   le routage du System Control Interrupt (SCI).

   Les tempetes d'interruptions peuvent etre distinguees des pertes
   d'interruptions en controlant la sortie de la commande vmstat -i en
   examinant la ligne mentionnant acpi0. Si le compteur s'incremente
   plusieurs fois par seconde, vous etes victime d'une tempete
   d'interruptions. Si le systeme semble bloque, essayez de basculer sous DDB
   (CTRL+ALT+ESC sous la console) et tapez show interrupts.

   Votre plus grand espoir quand vous faites face `a des problemes
   d'interruptions est d'essayer de desactiver le support APIC avec la ligne
   hint.apic.0.disabled="1" dans le fichier loader.conf.

    11.15.3.4. Paniques

   Les paniques sont relativement rares dans le cas de l'ACPI et sont au
   sommet des priorites en matiere de problemes `a corriger. Le premier point
   est d'isoler les etapes necessaires `a la reproduction de la panique (si
   possible) et d'obtenir une trace de debogage. Suivez l'aide sur
   l'activation de options DDB et la configuration d'une console serie (lire
   la Section 27.6.1.1, << Entering the DDB Debugger from the Serial Line >>)
   ou la configuration d'une partition dump(8). Vous pouvez obtenir une trace
   de debogage sous DDB avec la commande tr. Si vous devez recopier `a la
   main la trace de debogage, assurez-vous de relever les cinq dernieres
   lignes et les cinq premieres ligne de la trace.

   Ensuite essayez d'isoler le probleme en demarrant avec l'ACPI desactive.
   Si cela fonctionne, vous pouvez isoler le sous-systeme ACPI en utilisant
   differentes valeurs pour l'option debug.acpi.disable. Consultez la page de
   manuel acpi(4) pour des exemples.

    11.15.3.5. Le systeme redemarre apres une mise en veille ou un arret

   Tout d'abord, essayez de fixer hw.acpi.disable_on_poweroff="0" dans
   loader.conf(5). Cela empeche l'ACPI de desactiver divers evenements lors
   du processus d'arret. Certains systemes ont besoin d'avoir cette valeur
   fixee `a 1 (valeur par defaut) pour la meme raison. Cela corrige
   generalement le probleme d'un systeme demarrant spontanement apres une
   mise en veille ou un arret.

    11.15.3.6. Autres problemes

   Si vous rencontrez d'autres problemes avec l'ACPI (impossible de
   travailler avec une station d'amarrage, peripheriques non detectes, etc.),
   veuillez envoyer un courrier descriptif `a la liste de diffusion;
   cependant, certains de ces problemes peuvent etre relatifs `a des partie
   incompletes du sous-systeme ACPI et qui pourront prendre du temps `a etre
   implementees. Soyez patient et pret `a tester les correctifs que nous
   pourront eventuellement vous envoyer.

  11.15.4. ASL, acpidump, et IASL

   Le probleme le plus courant est le fait que les constructeurs fournissent
   des << bytecodes >> errones (ou plus simplement bogues!). Cela se
   manifeste generalement sur la console par des messages du noyau du type:

 ACPI-1287: *** Error: Method execution failed [\\_SB_.PCI0.LPC0.FIGD._STA] \\
 (Node 0xc3f6d160), AE_NOT_FOUND

   La plupart du temps vous pouvez corriger ces problemes en mettant `a jour
   votre BIOS avec la derniere version disponible. La majorite des messages
   sur la console sont inoffensifs mais si vous avez d'autres problemes comme
   l'etat de la batterie qui ne fonctionne pas, ce sont de bonnes raisons
   pour commencer `a jeter un oeil `a ces problemes dans l'AML. Le
   << bytecode >>, connu sous le nom d'AML, est compile `a partir d'un
   langage source appele ASL. L'AML se trouve dans une table appelee DSDT.
   Pour obtenir une copie de votre ASL, utilisez acpidump(8). Vous devriez
   utiliser de paire les options -t (qui affiche le contenu des tables fixes)
   et -d (qui desassemble l'AML en ASL). Consultez la section Soumettre des
   informations de deboguage pour un exemple de syntaxe.

   Le tout premier test que vous pouvez effectuer est de recompiler votre ASL
   `a la recherche d'erreurs. Les avertissements peuvent etre generalement
   ignores mais les erreurs sont des bogues qui normalement empechent l'ACPI
   de fonctionner correctement. Pour recompiler votre ASL, utilisez la
   commande suivante:

 # iasl your.asl

  11.15.5. Correction de votre ASL

   A long terme, notre objectif est que tout le monde puisse avoir un systeme
   ACPI fonctionnant sans aucune intervention de l'utilisateur. Actuellement,
   nous sommes toujours en train de developper des solutions pour contourner
   les erreurs courantes faites par les fabricants de BIOS. L'interpreteur de
   Microsoft(R) (acpi.sys et acpiec.sys) ne controle pas de fac,on stricte la
   conformite avec la norme, et par consequent de nombreux fabricants de BIOS
   qui testent l'ACPI uniquement sous Windows(R) ne corrigent donc jamais
   leur ASL. Nous esperons poursuivre `a identifier et documenter avec
   exactitude les comportements non-standards autorises par l'interpreteur de
   Microsoft(R) et les reproduire de maniere `a permettre `a FreeBSD de
   fonctionner sans obliger les utilisateurs `a corriger leur ASL. Comme
   solution et pour nous aider `a identifier ces comportements, vous pouvez
   corriger manuellement votre ASL. Si cela fonctionne pour vous, veuillez
   nous envoyer un diff(1) de l'ancien et du nouveau ASL de fac,on `a ce que
   nous puissions corriger le comportement incorrect dans ACPI-CA et rendre
   donc inutile `a l'avenir votre correctif.

   Voici une liste des messages d'erreur courants, leur cause, et comment les
   corriger:

    11.15.5.1. Dependances _OS

   Certains AMLs supposent que le monde n'est fait de que differentes
   versions de Windows(R). Vous pouvez demander `a FreeBSD de s'annoncer
   comme etant n'importe quel systeme d'exploitation pour voir si cela
   corrige les problemes que vous pouvez rencontrer. Une maniere simple de
   faire cela est de fixer la variable hw.acpi.osname="Windows 2001" dans
   /boot/loader.conf ou avec une autre chaine de caracteres que vous trouvez
   dans l'ASL.

    11.15.5.2. Missing Return statements

   Certaines methodes ne renvoient pas explicitement une valeur comme la
   norme le demande. Bien qu'ACPI-CA ne gere pas cela, FreeBSD contourne ce
   probleme en renvoyant implicitement la valeur. Vous pouvez egalement
   ajouter des << Return statements >> explicites ou cela est necessaire si
   vous connaissez la valeur `a renvoyer. Pour forcer iasl `a compiler l'ASL,
   utilisez l'option -f.

    11.15.5.3. Remplacer l'AML par defaut

   Apres avoir personnalise votre.asl, vous voudrez le compiler, pour cela
   executez:

 # iasl your.asl

   Vous pouvez ajouter l'option -f pour forcer la creation de l'AML, meme
   s'il y a des erreurs lors de la compilation. Rappelez-vous que certaines
   erreurs (e.g., missing Return statements) sont automatiquement contournees
   par l'interpreteur.

   DSDT.aml est le fichier de sortie par defaut pour iasl. Vous pouvez le
   charger `a la place de la version boguee de votre BIOS (qui est toujours
   present dans la memoire flash) en editant le fichier /boot/loader.conf
   comme suit:

 acpi_dsdt_load="YES"
 acpi_dsdt_name="/boot/DSDT.aml"

   Assurez-vous de bien copier votre fichier DSDT.aml dans le repertoire
   /boot.

  11.15.6. Obtenir d'ACPI une sortie de debogage

   Le pilote ACPI dispose d'une fonction de debogage tres flexible. Elle vous
   permet de specifier un ensemble de sous-systemes ainsi que le niveau de
   verbosite. Les sous-systemes que vous desirez deboguer sont indiques sous
   la forme de << couches >> et sont divises en composants ACPI-CA
   (ACPI_ALL_COMPONENTS) et en supports materiel ACPI (ACPI_ALL_DRIVERS). La
   verbosite de la sortie de debogage est specifiee par un << niveau >> et
   des intervalles de ACPI_LV_ERROR (rapporte juste les erreurs) `a
   ACPI_LV_VERBOSE (tout). Le << niveau >> est un masque de bits separes par
   des espaces, aussi de nombreuses options peuvent etre fixees `a la fois.
   Dans la pratique, vous voudrez utiliser un console serie pour afficher la
   sortie si les informations de debogage sont si importantes qu'elles
   depassent le tampon des messages de la console. Une liste complete des
   couches individuelles et des niveaux peut etre trouvee dans la page de
   manuel acpi(4).

   L'affichage des informations de debogage n'est pas active par defaut. Pour
   l'activer, ajoutez la ligne options ACPI_DEBUG `a votre fichier de
   configuration du noyau si l'ACPI est compile dans le noyau. Vous pouvez
   ajouter la ligne ACPI_DEBUG=1 `a votre fichier /etc/make.conf pour
   l'activer de fac,on globale. Si l'ACPI est sous forme de module, vous
   pouvez recompiler votre module acpi.ko comme suit:

 # cd /sys/modules/acpi/acpi
 && make clean &&
 make ACPI_DEBUG=1

   Installez acpi.ko dans le repertoire /boot/kernel et indiquez le niveau et
   la couche desiree dans loader.conf. L'exemple suivant active les messages
   de debogage pour tous les composants ACPI-CA et tous les pilotes de
   materiel ACPI (CPU, LID, etc.). Il n'affichera que les messages d'erreur,
   c'est le niveau le moins verbeux.

 debug.acpi.layer="ACPI_ALL_COMPONENTS ACPI_ALL_DRIVERS"
 debug.acpi.level="ACPI_LV_ERROR"

   Si l'information que vous voulez est declenchee par un evenement
   particulier (disons par exemple une mise en veille suivi d'un reveil),
   vous pouvez abandonner les modifications dans loader.conf et utiliser `a
   la place sysctl pour indiquer la couche et le niveau apres le demarrage et
   preparer votre systeme pour cet evenement particulier. Les variables
   sysctl sont appelees de la meme maniere que dans le fichier loader.conf.

  11.15.7. References

   Plus d'information au sujet de l'ACPI peut etre trouve aux emplacements
   suivants:

     * La liste de diffusion liste de diffusion concernant ACPI sous FreeBSD

     * Les archives de la liste de diffusion ACPI
       http://lists.freebsd.org/pipermail/freebsd-acpi/

     * Les archives de l'ancienne liste de diffusion ACPI
       http://home.jp.FreeBSD.org/mail-list/acpi-jp/

     * La specification ACPI 2.0 http://acpi.info/spec.htm

     * Les pages de manuel: acpi(4), acpi_thermal(4), acpidump(8), iasl(8),
       acpidb(8)

     * Ressource sur le debogage de la DSDT. (Utilise un exemple base sur du
       materiel Compaq mais qui est en general interessant.)

     ----------------------------------------------------------------------

   [5] L'algorithme d'auto-ajustement fixe maxusers `a une valeur egale `a la
   quantite de memoire presente sur le systeme, avec un minimum de 32 et un
   maximum de 384..

Chapitre 12. Processus de demarrage de FreeBSD

   Table des matieres

   12.1. Synopsis

   12.2. Le probleme du demarrage

   12.3. Le gestionnaire de demarrage et les etapes de demarrage

   12.4. Interaction avec le noyau au demarrage

   12.5. "Device Hints"-Parametrage des peripheriques

   12.6. Init: Initialisation de la gestion des processus

   12.7. Sequence d'arret du systeme

   Version franc,aise de Marc Fonvieille <blackend@FreeBSD.org>.

12.1. Synopsis

   L'action de demarrer un ordinateur et de charger le systeme d'exploitation
   est designee sous le nom de "processus de bootstrap", ou simplement
   demarrage. Le processus de demarrage de FreeBSD fournit une grande
   flexibilite en adaptant ce qui se passe quand vous demarrez le systeme,
   vous permettant de choisir parmi les differents systemes d'exploitation
   installes sur l'ordinateur, ou meme parmi les differentes versions du meme
   systeme d'exploitation ou du noyau installees.

   Ce chapitre detaille les options de configuration que vous pouvez
   parametrer et comment personnaliser le processus de demarrage de FreeBSD.
   Cela inclut tout ce qui se produit jusqu'au demarrage du noyau FreeBSD, la
   detection des peripheriques, et le demarrage d'init(8). Si vous n'etes pas
   tout `a fait sur du moment auquel cela arrive, cela se produit `a
   l'instant ou la couleur du texte passe d'un blanc lumineux au gris.

   Apres la lecture de ce chapitre, vous connaitrez:

     * Quels sont les composants du systeme de demarrage de FreeBSD, et
       comment ils agissent les uns sur les autres.

     * Les options que vous pouvez passer aux composants du systeme de
       demarrage de FreeBSD pour controler le processus.

     * Les bases du systeme device.hints(5).

  x86 seulement:

   Ce chapitre ne decrit que le processus de demarrage de FreeBSD pour les
   systemes Intel x86.

12.2. Le probleme du demarrage

   Allumer un ordinateur et demarrer le systeme d'exploitation pose un
   interessant dilemme. Par definition, l'ordinateur ne sait rien faire
   jusqu'`a ce que le systeme d'exploitation soit lance. Ceci inclut
   l'execution des programmes `a partir du disque. Donc si l'ordinateur ne
   peut pas executer de programme `a partir du disque sans le systeme
   d'exploitation, et que les programmes du systeme d'exploitation sont sur
   le disque, comment le systeme d'exploitation est-il demarre?

   On peut faire le parallele avec un evenement du livre Les aventures du
   Baron Munchausen. Le personnage tombe dans une bouche d'egout avec une
   partie du corps hors de la bouche, et il s'en sort en attrapant les
   fixations de ses bottes ("bootstraps"), et en se soulevant ainsi. Dans les
   premiers jours de l'informatique le terme bootstrap fut applique au
   mecanisme utilise pour charger le systeme d'exploitation, terme qui a ete
   raccourci en "booting" (que l'on traduit par demarrage en Franc,ais).

   Sur l'architecture x86 c'est le BIOS ("Basic Input/Output System") qui est
   responsable du chargement du systeme d'exploitation. Pour effectuer cela,
   le BIOS recherche sur le disque dur le "Master Boot Record" - Secteur
   Principal de Demarrage (MBR), qui doit etre place `a un endroit bien
   precis sur le disque. Le BIOS dispose de suffisamment de connaissances
   pour charger et executer le MBR, et suppose que le MBR peut alors
   effectuer le reste des taches impliquees dans le chargement du systeme
   d'exploitation, probablement avec l'aide du BIOS.

   Pour parler du code contenu dans le MBR, on fait souvent reference aux
   termes de gestionnaire de demarrage gestionnaire d'amorce, tout
   particulierement quand il y a interaction avec l'utilisateur. Dans ce cas
   le code de ce gestionnaire occupe un espace plus important sur la premiere
   piste du disque ou du systeme de fichier du systeme d'exploitation (le
   gestionnaire de demarrage est parfois egalement appele gestionnaire de
   chargement ou chargeur, << boot loader >>, sous FreeBSD ce terme est
   utilise pour une etape ulterieur du demarrage). Parmi les gestionnaire de
   demarrage populaire, se trouvent boot0 (egalement connu sous le nom de
   Boot Easy, le gestionnaire de demarrage standard de FreeBSD), Grub, GAG,
   et LILO (seul boot0 peut tenir entierement dans l'espace du MBR.).

   Si vous n'avez qu'un seul systeme d'exploitation installe sur vos disques
   alors le MBR PC standard sera suffisant. Ce MBR recherche la premiere
   tranche ("slice") amorc,able (souvent appelee active) sur le disque, et
   puis execute le code sur cette tranche pour charger le reste du systeme
   d'exploitation. Le MBR installe par fdisk(8) par defaut se comporte de
   cette maniere. Il est base sur /boot/mbr.

   Si vous avez installe plusieurs systemes d'exploitation sur vos disques
   alors vous pouvez installer un gestionnaire d'amorce different, qui permet
   d'afficher une liste des differents systemes d'exploitation, et vous
   permet de selectionner celui `a partir duquel demarrer. Ceci est aborde
   dans la sous-section suivante.

   Le reste du systeme de demarrage de FreeBSD est divise en trois etapes. La
   premiere etape est executee par le MBR, qui en sait juste assez pour
   mettre l'ordinateur dans un etat specifique et lancer la deuxieme etape.
   La seconde etape peut en faire un peu plus, avant de lancer la troisieme
   etape. La troisieme etape termine la tache de chargement du systeme
   d'exploitation. La tache a ete separee en trois etapes parce que le
   standard PC impose des limites sur la taille des programmes qui peuvent
   etre executes aux etapes une et deux. L'enchainement des taches permet `a
   FreeBSD de fournir un chargeur plus flexible.

   Le noyau est ensuite demarre et commence `a sonder le systeme `a la
   recherche de peripheriques et les initialise. Une fois le processus de
   demarrage du noyau acheve, le noyau passe la main au processus init(8),
   qui alors verifie que les disques sont utilisables. init(8) commence
   ensuite la configuration des ressources au niveau utilisateur, monte les
   systemes de fichiers, initialise les cartes reseaux pour communiquer sur
   le reseau, et lance tous les processus qui sont habituellement executes au
   demarrage d'un systeme FreeBSD.

12.3. Le gestionnaire de demarrage et les etapes de demarrage

  12.3.1. Le gestionnaire de demarrage

   Le code contenu dans le MBR ou gestionnaire de demarrage ou d'amorce est
   parfois appele etape zero du processus de demarrage. Cette section discute
   de deux gestionnaires de demarrage precedemment mentionnes: boot0 et LILO.

   Le gestionnaire d'amorce boot0: Le MBR installe par l'installateur FreeBSD
   ou par boot0cfg(8) est base sur /boot/boot0. (boot0 est tres simple,
   puisque le programme dans le MBR ne peut pas occuper plus de 446 octets en
   raison de la table de partition principale et l'identifiant 0x55AA `a la
   fin du MBR). Si vous avez installe boot0 et plusieurs systemes
   d'exploitation sur vos disques durs alors vous verrez un affichage
   semblable `a celui-ci au demarrage:

   Exemple 12.1. Ecran de boot0

 F1 DOS
 F2 FreeBSD
 F3 Linux
 F4 ??
 F5 Drive 1

 Default: F2

   D'autres systemes d'exploitation, en particulier Windows(R), sont connus
   pour ecraser le MBR existant avec le leur. Si cela vous arrive, ou que
   vous desirez remplacer le MBR existant avec le MBR de FreeBSD alors
   utilisez la commande suivante:

 # fdisk -B -b /boot/boot0 device

   ou device est le peripherique `a partir duquel vous demarrez, comme ad0
   pour le premier disque IDE, ad2 pour le premier disque IDE sur le second
   controleur IDE, da0 pour le premier disque SCSI, et ainsi de suite. Ou, si
   vous voulez une configuration sur mesure du MBR, employez boot0cfg(8).

   Le gestionnaire de demarrage LILO: Pour installer ce gestionnaire de
   maniere `a ce qu'il amorce egalement FreeBSD, demarrez tout d'abord Linux
   et ajoutez ce qui suit au fichier de configuration /etc/lilo.conf:

 other=/dev/hdXY
 table=/dev/hdX
 loader=/boot/chain.b
 label=FreeBSD

   Dans ce qui precede, precisez la partition primaire et le disque FreeBSD
   en utilisant les parametres propres `a Linux, en remplac,ant X avec la
   lettre correspondant au disque Linux et Y avec le numero de la partition
   primaire Linux. Si vous utilisez un disque SCSI, vous changerez /dev/hd
   pour quelque chose de semblable `a /dev/sd. La ligne loader=/boot/chain.b
   peut etre omise si vous avez les deux systemes d'exploitation sur le meme
   disque. Lancez maintenant la commande /sbin/lilo -v pour enteriner vos
   modifications; des messages de controle devraient s'afficher, verifiant
   ces modifications.

  12.3.2. Etape une, /boot/boot1, et etape deux, /boot/boot2

   Conceptuellement la premiere et la seconde etapes font partie du meme
   programme, sur le meme emplacement du disque. Mais en raison de
   contraintes d'espace elles ont ete divisees en deux, mais vous les
   installerez toujours de paire. Elles sont copiees, `a partir du fichier
   combine /boot/boot, par l'installateur ou bsdlabel (voir plus bas).

   On les trouve en dehors des systemes de fichiers, sur la premiere piste de
   la tranche de demarrage, `a partir du premier secteur. C'est l'endroit ou
   boot0, ou tout autre gestionnaire de demarrage s'attend `a trouver le code
   `a executer pour continuer le processus de demarrage. Le nombre de
   secteurs utilises est facilement determine `a partir de la taille du
   fichier /boot/boot.

   boot1 est tres simple, puisqu'il est limite `a 512 octets, et en sait
   juste assez du bsdlabel de FreeBSD, qui contient l'information sur la
   tranche, pour trouver et lancer boot2.

   boot2 est legerement plus sophistique, et en connait assez sur le systeme
   de fichiers de FreeBSD pour y trouver des fichiers, et il peut egalement
   fournir une interface simple pour selectionner un noyau ou un chargeur `a
   executer.

   Comme le chargeur est beaucoup plus sophistique, et dispose d'une
   interface de configuration du demarrage facile d'emploi, boot2 l'execute
   habituellement, bien que precedemment, c'est lui qui lanc,ait directement
   le noyau.

   Exemple 12.2. Ecran de boot2

 >> FreeBSD/i386 BOOT
 Default: 0:ad(0,a)/boot/loader
 boot:

   Si vous avez un jour besoin de remplacer boot1 et boot2, utilisez
   bsdlabel(8):

 # bsdlabel -B diskslice

   ou diskslice est le disque et la tranche `a partir de laquelle vous
   demarrez, comme ad0s1 pour la premiere tranche sur le premier disque IDE.

  Mode dangereusement dedie:

   Si vous utilisez juste le nom du disque, comme ad0, dans la commande
   bsdlabel(8) vous creerez un disque dangereusement dedie, sans tranches. Ce
   n'est presque certainement pas ce que vous voulez faire, donc verifiez `a
   deux fois la commande bsdlabel(8) avant d'appuyer sur Entree.

  12.3.3. Etape trois, /boot/loader

   Le chargeur est la derniere etape du processus de demarrage en trois
   temps, et il reside sur le systeme de fichiers, c'est habituellement le
   fichier /boot/loader.

   Le chargeur a pour objet de fournir une methode de configuration
   conviviale, en utilisant un jeu de commandes faciles d'emploi, double d'un
   interpreteur plus puissant, avec un ensemble de commandes plus complexes.

    12.3.3.1. Deroulement des operations du chargeur

   A l'initialisation, le chargeur recherchera la console et les disques, et
   determinera `a partir de quel disque demarrer. Il positionnera les
   variables en consequence, et un interpreteur sera lance pour lequel
   l'utilisateur pourra passer des commandes par l'intermediaire d'une
   procedure ou de fac,on interactive.

   Le chargeur lira ensuite /boot/loader.rc, qui lui ira lire dans
   /boot/defaults/loader.conf les valeurs par defaut des variables `a
   positionner et dans /boot/loader.conf les variantes locales de ces
   dernieres. loader.rc se sert de ces variables pour charger les modules et
   le noyau selectionnes.

   Finalement, par defaut, le chargeur attend 10 secondes l'appui sur une ou
   plusieurs touches, et demarre le noyau s'il n'est pas interrompu. S'il est
   interrompu, une invite est alors affichee `a l'utilisateur, un jeu de
   commandes simples permet `a l'utilisateur de modifier des variables,
   charger ou decharger des modules, et enfin demarrer ou redemarrer.

    12.3.3.2. Commandes integrees au chargeur

   Voici les commandes du chargeur les plus utilisees. Pour une information
   complete sur toutes les commandes disponibles, veuillez consulter la page
   loader(8).

   autoboot secondes

           Demarre le noyau si elle n'est pas interrompue dans le laps de
           temps donne en secondes. Elle affiche un compte `a rebours, et le
           delai par defaut est de 10 secondes.

   boot [-options] [nom_du_noyau]

           Demarre immediatement le noyau dont le nom est indique, avec les
           options donnees, s'il y en a.

   boot-conf

           Passe par la meme configuration automatique des modules basee sur
           des variables comme ce qui se produit au demarrage. Cela n'a de
           sens que si vous utilisez unload en premier, et modifiez certaines
           variables, generalement kernel.

   help [sujet]

           Affiche les messages d'aide contenus dans /boot/loader.help. Si le
           sujet donne est index, alors c'est la liste de tous les sujets
           existants qui est donnee.

   include nom_du_fichier ...

           Traite le fichier dont le nom est donne. Le fichier est lu, et
           interprete ligne par ligne. Une erreur stoppe immediatement le
           traitement.

   load [-t type] nom_du_fichier

           Charge le noyau, le module, ou le fichier du type donne, dont le
           nom est passe en parametre. Les arguments qui suivent le nom du
           fichier sont passes au fichier.

   ls [-l] [chemin_d_acces]

           Affiche la liste des fichiers du repertoire donne, ou du
           repertoire racine, si le chemin d'acces n'est pas precise. Si
           l'option -l est utilisee, les tailles des fichiers seront
           egalement listees.

   lsdev [-v]

           Liste tous les peripheriques depuis lesquels il sera possible de
           charger des modules. Si l'option -v est utilisee, plus de details
           seront donnes.

   lsmod [-v]

           Affiche la liste des modules charges. Si l'option -v est utilisee,
           plus de details seront donnes.

   more nom_du_fichier

           Affiche les fichiers indiques, avec une pause toutes LINES lignes.

   reboot

           Redemarre immediatement le systeme.

   set variable, set variable=value

           Positionne les variables d'environnement du chargeur.

   unload

           Retire de la memoire tous les modules charges.

    12.3.3.3. Exemples d'utilisation du chargeur

   Voici quelques exemples pratiques d'utilisation du chargeur:

     * Pour simplement demarrer votre noyau habituel, mais en mode
       mono-utilisateur:

 boot -s

     * Pour decharger votre noyau et modules habituels, puis charger votre
       ancien (ou un autre) noyau:

 unload
 load kernel.old

       Vous pouvez utiliser kernel.GENERIC pour faire reference au noyau
       generique du disque d'installation, ou kernel.old pour designer votre
       noyau precedent (quand vous avez mis `a jour ou configure votre propre
       noyau, par exemple).

  Note:

       Utilisez ce qui suit pour charger vos modules habituels avec un autre
       noyau:

 unload
 set kernel="kernel.old"
 boot-conf

     * Pour charger une procedure de configuration du noyau (une procedure
       qui automatise ce que vous faites normalement avec l'outil de
       configuration du noyau au demarrage):

 load -t userconfig_script /boot/kernel.conf

12.4. Interaction avec le noyau au demarrage

   Une fois que le noyau est charge, soit par le chargeur (habituellement)
   soit par boot2 (en court-circuitant le chargeur), il examine les options
   de demarrage s'il y en a, et adapte son comportement en consequence.

  12.4.1. Options de demarrage du noyau

   Voici les options de demarrage les plus courantes:

   -a

           A l'initialisation du noyau, demande quel est le peripherique ou
           se trouve le systeme de fichiers racine.

   -C

           Demarre depuis le CDROM.

   -c

           Execute UserConfig, l'outil de configuration du noyau au
           demarrage.

   -s

           Demarre en mode mono-utilisateur.

   -v

           Donne plus de details lors du lancement du noyau.

  Note:

   Il existe d'autres options de demarrage, lisez la page de manuel boot(8)
   pour plus d'informations.

12.5. "Device Hints"-Parametrage des peripheriques

   Contribution de Tom Rhodes.

  Note:

   C'est une caracteristique de FreeBSD 5.0 et des versions suivantes qui
   n'existe pas dans les versions precedentes.

   Lors du demarrage du systeme, le chargeur (loader(8)) lira le fichier
   device.hints(5). Ce fichier stocke les informations de demarrage du noyau
   connues sous le nom de variables, et parfois appelees "device hints". Ces
   "device hints" sont utilises par les pilotes de peripherique pour la
   configuration des peripheriques.

   Les "device hints" peuvent etre specifies `a l'invite du chargeur. Des
   variables peuvent etre ajoutees en utilisant la commande set, retirees
   avec la commande unset, et affichees avec la commande show. Les variables
   positionnees dans le fichier /boot/device.hints peuvent etre ecrasees `a
   cet endroit. Les "device hints" entres au niveau du chargeur ne sont pas
   permanents et seront oublies au prochain redemarrage.

   Une fois le systeme demarre, la commande kenv(1) peut etre utilisee pour
   afficher toutes les variables.

   La syntaxe du fichier /boot/device.hints est d'une variable par ligne, en
   utilisant le caractere "#" comme signe de mise en commentaire. Les lignes
   sont presentees comme suit:

 hint.pilote.unite.motcle="valeur"

   La syntaxe `a utiliser avec le chargeur est:

 set hint.pilote.unite.motcle=valeur

   ou pilote est le pilote de peripherique, unite est le numero de l'unite et
   motcle est le mot-cle correspondant `a la variable. Le mot-cle pourra etre
   une des options suivantes:

     * at: specifie le bus auquel le peripherique est attache.

     * port: specifie l'adresse de depart de l'E/S `a utiliser.

     * irq: specifie le numero de la requete d'interruption `a utiliser.

     * drq: specifie le numero du canal DMA.

     * maddr: specifie l'adresse memoire physique occupee par le
       peripherique.

     * flags: fixe les bits des indicateurs pour le peripherique.

     * disabled: si positionnee `a 1 le peripherique est desactive.

   Les pilotes de peripherique pourront accepter (ou necessiter) plus de
   variables non listees ici, il est recommande de lire leur page de manuel.
   Pour plus d'information, consultez les pages de manuel device.hints(5),
   kenv(1), loader.conf(5), et loader(8).

12.6. Init: Initialisation de la gestion des processus

   Une fois que le noyau a demarre, il passe le controle au processus
   utilisateur init(8), qui se trouve dans /sbin/init, ou au programme defini
   dans la variable d'environnement init_path du chargeur.

  12.6.1. Sequence de redemarrage automatique

   La sequence de redemarrage automatique verifie que les systemes de
   fichiers sont coherents. S'ils ne le sont pas, et que fsck(8) ne peut pas
   corriger les incoherences, init(8) place le systeme dans le mode
   mono-utilisateur pour que l'administrateur systeme regle directement le
   probleme.

  12.6.2. Mode mono-utilisateur

   Ce mode peut etre atteint depuis la sequence de redemarrage automatique,
   ou quand l'utilisateur demarre avec l'option -s ou en positionnant la
   variable boot_single du chargeur.

   On peut egalement y parvenir en appelant la commande shutdown(8) sans les
   options de redemarrage (-r) ou d'arret (-h), `a partir du mode
   multi-utilisateur.

   Si la console systeme est positionnee dans le mode insecure dans le
   fichier /etc/ttys, alors le systeme demande le mot de passe de root avant
   de passer en mode mono-utilisateur.

   Exemple 12.3. Une console non securisee dans /etc/ttys

 # 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 insecure

  Note:

   Une console insecure (non securisee) signifie que vous considerez que la
   console n'est pas securisee, et vous desirez que seul quelqu'un
   connaissant le mot passe de root puisse utiliser le mode mono-utilisateur,
   et cela ne signifie pas que vous utilisez une console sans securite. Donc,
   si vous voulez de la securite, choisissez insecure, et non secure.

  12.6.3. Mode multi-utilisateur

   Si init(8) trouve vos systemes de fichiers en etat de marche, ou des que
   l'utilisateur quitte le mode mono-utilisateur, le systeme entre dans le
   mode multi-utilisateur, dans lequel il commence la configuration de ses
   ressources.

    12.6.3.1. Configuration des ressources (rc)

   Le systeme de configuration des ressources lit les valeurs par defaut dans
   /etc/defaults/rc.conf, et les valeurs propres `a la machine dans
   /etc/rc.conf, puis ensuite monte les systemes de fichiers mentionnes dans
   /etc/fstab, demarre les services reseau, divers autres "demons" systeme,
   et enfin execute les procedures de demarrage des logiciels installes
   localement.

   La page de manuel rc(8) est une bonne reference au sujet du systeme de
   configuration des ressources, de meme que la lecture des procedures de
   demarrage elles-memes.

12.7. Sequence d'arret du systeme

   Lors de l'arret manuel du systeme, via shutdown(8), init(8) tentera
   d'executer la procedure /etc/rc.shutdown, et ensuite enverra `a tous les
   processus le signal TERM, suivi du signal KILL `a tous ceux qui ne se
   terminent pas `a temps.

   Pour eteindre une machine FreeBSD et cela sur des architectures ou des
   systemes supportant la gestion par logiciel de l'energie, utilisez
   simplement la commande shutdown -p now pour arreter et couper
   l'alimentation de la machine. Pour juste redemarrer un systeme FreeBSD,
   utilisez shutdown -r now. Vous devez etre super-utilisateur (root) ou un
   membre du groupe operator pour pouvoir executer shutdown(8). Les commandes
   halt(8) et reboot(8) peuvent egalement etre utilisees, veuillez consulter
   leur page de manuel ainsi que celle de shutdown(8) pour plus
   d'informations.

  Note:

   La gestion de l'energie necessite d'avoir le support acpi(4) dans son
   noyau ou charge en tant que module.

Chapitre 13. Gestion des comptes et des utilisateurs

   Contribution de Neil Blakey-Milner.
   Table des matieres

   13.1. Synopsis

   13.2. Introduction

   13.3. Le compte super-utilisateur

   13.4. Comptes systeme

   13.5. Comptes utilisateur

   13.6. Modifier des comptes

   13.7. Mettre en place des restrictions pour les utilisateurs

   13.8. Groupes

   Version franc,aise de Marc Fonvieille <blackend@FreeBSD.org>.

13.1. Synopsis

   FreeBSD permet `a de nombreux utilisateurs d'utiliser l'ordinateur en meme
   temps. Evidemment, seul un de ces utilisateurs peut etre assis devant
   l'ecran et le clavier `a un instant donne [6], mais n'importe quel nombre
   d'utilisateurs peut ouvrir une session par l'intermediaire du reseau pour
   mener `a bien son travail. Pour utiliser le systeme chaque utilisateur
   doit posseder un compte.

   Apres la lecture de ce chapitre, vous connaitrez:

     * Les differences entre les divers comptes utilisateur sur un systeme
       FreeBSD.

     * Comment ajouter des comptes utilisateur.

     * Comment supprimer des comptes utilisateur.

     * Comment modifier les parametres d'un compte, comme le nom complet de
       l'utilisateur, ou l'interpreteur de commandes prefere.

     * Comment fixer des limites par compte, pour controler les ressources
       comme la memoire et le temps CPU auxquels les comptes et les groupes
       de comptes sont autorises `a acceder.

     * Comment utiliser les groupes pour rendre la gestion de comptes plus
       aisee.

   Avant de lire ce chapitre, vous devrez:

     * Comprendre les fondements d'UNIX(R) et de FreeBSD (Chapitre 3,
       Quelques bases d'UNIX).

13.2. Introduction

   Tout acces au systeme est effectue par l'intermediaire de comptes, et tous
   les processus sont executes par des utilisateurs, la gestion des comptes
   et des utilisateurs est capitale sur les systemes FreeBSD.

   Chaque compte sur un systeme FreeBSD est associe avec un certain nombre
   d'informations utilise pour identifier le compte.

   "User name" - nom d'utilisateur

           Le nom d'utilisateur comme il sera tape `a l'invite login:. Les
           noms d'utilisateur doivent etre uniques sur le systeme; vous ne
           pouvez pas avoir deux utilisateurs avec le meme nom d'utilisateur.
           Il y a un certain nombre de regles pour la creation de noms
           d'utilisateur valides, documentees dans passwd(5); vous utiliserez
           generalement des noms d'utilisateurs de huit lettres ou moins et
           en minuscules.

   "Password" - mot de passe

           Chaque compte est associe `a un mot de passe. Le mot de passe peut
           etre vide, dans ce cas aucun mot de passe ne sera requis pour
           acceder au systeme. Ceci est une tres mauvaise idee; chaque compte
           devrait avoir un mot de passe.

   "User ID (UID)" - identifiant utilisateur

           L'UID est un nombre compris entre 0 et 65535[7], utilise pour
           identifier de fac,on unique un utilisateur sur le systeme. Au
           niveau interne, FreeBSD utilise l'UID pour identifier les
           utilisateurs-toute commande qui vous permet de specifier un
           utilisateur convertira le nom d'utilisateur en son UID avant de le
           traiter. Cela signifie que vous pouvez avoir plusieurs comptes
           avec des noms d'utilisateurs differents mais le meme UID. En ce
           qui concerne FreeBSD ces comptes ne sont qu'un seul et unique
           utilisateur. Il est peu probable que vous ayez jamais `a faire
           cela.

   "Group ID (GID)" - identifiant de groupe

           Le GID est un nombre compris entre 0 et 65535[7], utilise pour
           identifier de fac,on unique le groupe principal auquel appartient
           l'utilisateur. Les groupes sont un mecanisme pour controler
           l'acces aux ressources qui est base sur le GID de l'utilisateur
           plutot que sur son UID. Un utilisateur peut egalement appartenir
           `a plus d'un groupe.

   "Login class" - classe de session

           Les classes de session sont une extension du mecanisme de groupe
           qui apporte une flexibilite supplementaire quand on adapte le
           systeme aux differents utilisateurs.

   "Password change time" - duree de vie d'un mot de passe

           Par defaut FreeBSD n'oblige pas les utilisateurs `a changer leur
           mot de passe regulierement. Vous pouvez forcer cela en fonction de
           l'utilisateur, en obligeant certains ou tous les utilisateurs `a
           changer leur mot de passe apres qu'une certaine periode de temps
           se soit ecoulee.

   "Account expiry time" - date d'expiration d'un compte

           Par defaut FreeBSD ne desactive pas de comptes apres une certaine
           periode. Si vous creez des comptes qui auront une duree de vie
           limitee, par exemple, dans une ecole ou il existe des comptes pour
           les etudiants, alors vous pouvez specifier la date d'expiration
           des comptes. Apres la duree d'expiration ecoulee le compte ne
           pourra plus etre utilise pour ouvrir de session sur le systeme,
           bien que les repertoires et les fichiers attaches au compte seront
           conserves.

   "User's full name" - nom complet d'utilisateur

           Le nom d'utilisateur identifie uniquement le compte sur FreeBSD,
           mais ne reflete pas necessairement le nom reel de l'utilisateur.
           Cette information peut etre associee avec le compte.

   "Home directory" - repertoire utilisateur

           Le repertoire utilisateur est le chemin complet vers un repertoire
           sur le systeme dans lequel se retrouve l'utilisateur quand il
           ouvre une session sur le systeme. Une convention commune est de
           mettre tous les repertoires d'utilisateurs sous /home/username ou
           /usr/home/username. L'utilisateur pourra stocker ses fichiers
           personnel dans son repertoire utilisateur et dans tout
           sous-repertoire qu'il pourra y creer.

   "User shell" - interpreteur de commandes de l'utilisateur

           L'interpreteur de commandes fournit aux utilisateurs
           l'environnement par defaut pour communiquer avec le systeme. Il
           existe plusieurs differents types d'interpreteurs de commandes, et
           les utilisateurs experimentes auront leur preference, qui peut se
           refleter dans le parametrage de leur compte.

   Il y a trois principales sortes de comptes: le super-utilisateur, les
   utilisateurs systeme, et les comptes utilisateur. Le compte
   super-utilisateur, normalement appele root, est utilise pour gerer le
   systeme sans aucune limitation de privileges. Les utilisateurs systeme
   executent des services. Et enfin, les comptes utilisateur sont utilises
   par de veritables utilisateurs, qui ouvrent des sessions, lisent leur
   courrier electronique, et ainsi de suite.

13.3. Le compte super-utilisateur

   Le compte super-utilisateur, habituellement appele root, est preconfigure
   pour simplifier l'administration systeme, et ne devrait pas etre utilise
   pour des taches quotidiennes comme l'envoi et la reception de courrier
   electronique, l'exploration du systeme, ou la programmation.

   Cela parce que le super-utilisateur, `a la difference des comptes
   utilisateurs ordinaires, peut agir sans aucune limite, et une mauvaise
   utilisation du compte super-utilisateur peut etre `a l'origine de
   resultats catastrophiques. On ne peut pas endommager par erreur le systeme
   avec un compte utilisateur, il est donc generalement preferable d'utiliser
   des comptes utilisateur ordinaires chaque fois que c'est possible, `a
   moins d'avoir particulierement besoin de droits supplementaires.

   Vous devriez toujours verifier et reverifier les commandes que vous tapez
   en tant que super-utilisateur, parce qu'un espace en trop ou un caractere
   manquant peuvent signifier la perte definitive de donnees.

   Donc, la premiere chose que vous devriez faire, apres la lecture de ce
   chapitre, est de vous creer un compte utilisateur sans privileges si vous
   n'en avez pas dej`a. Cela s'applique aussi bien `a une machine
   multi-utilisateurs qu'`a une machine mono-utilisateur. Plus loin dans ce
   chapitre, nous expliquerons comment creer de nouveaux comptes, et comment
   passer d'un compte utilisateur ordinaire au compte du super-utilisateur.

13.4. Comptes systeme

   Les utilisateurs systeme sont ceux utilises pour executer des services
   comme le DNS, le courrier electronique, les serveurs web, et ainsi de
   suite. La raison de cela est la securite; si tous les services
   s'executaient avec les droits du super-utilisateur, ils pourraient agir
   sans aucune restriction.

   Des exemples d'utilisateurs systeme sont daemon, operator, bind (pour le
   serveur de noms de domaine), news, et www.

   nobody est l'utilisateur sans privileges generique du systeme. Cependant,
   il est important de garder `a l'esprit que plus grand est le nombre de
   services utilisant nobody, plus grand sera le nombre de fichiers et de
   processus associes `a cet utilisateur, et par consequent plus grand sera
   le nombre de privileges de cet utilisateur.

13.5. Comptes utilisateur

   Les comptes utilisateur sont le principal moyen pour les veritables
   utilisateurs d'acceder au systeme, ces comptes isolent l'utilisateur du
   reste de l'environnement, empechant les utilisateurs d'endommager le
   systeme et ou les comptes d'autres utilisateurs, tout en leur permettant
   de personnaliser leur environnement sans incidence pour les autres
   utilisateurs.

   Chaque personne accedant `a votre systeme ne devrait posseder que son
   propre et unique compte. Cela vous permet de savoir qui fait quoi, empeche
   un utilisateur de desorganiser l'environnement d'un autre ou de lire du
   courrier electronique qui ne lui est pas destine, et ainsi de suite.

   Chaque utilisateur peut configurer son propre environnement en fonction de
   ses besoins, pour utiliser d'autres interpreteurs de commandes, editeurs,
   raccourcis de clavier, et langues.

13.6. Modifier des comptes

   Il existe une variete de differentes commandes disponibles dans
   l'environnement UNIX(R) pour manipuler les comptes utilisateur. Les
   commandes les plus communes sont recapitulees ci-dessous, suivis par des
   exemples detailles de leur utilisation.

    Commande                              Resume                              
   adduser(8) L'application en ligne de commande recommandee pour ajouter de  
              nouveaux utilisateurs.                                          
   rmuser(8)  L'application en ligne de commande recommandee pour supprimer   
              des utilisateurs.                                               
   chpass(1)  Un outil flexible pour modifier les informations de la base de  
              donnees utilisateur.                                            
   passwd(1)  L'outil simple en ligne de commande pour changer les mots de    
              passe utilisateur.                                              
   pw(8)      Un puissant et flexible outil pour modifier tous les aspects    
              des comptes utilisateurs.                                       

  13.6.1. adduser

   adduser(8) est un programme simple pour ajouter de nouveaux utilisateurs.
   Il cree les entrees dans les fichiers systeme passwd et group. Il cree
   egalement le repertoire utilisateur pour le nouvel utilisateur, y copie
   les fichiers de configuration par defaut ("dotfiles") `a partir de
   /usr/share/skel, et peut eventuellement envoyer `a l'utilisateur un
   courrier electronique de bienvenue.

   Exemple 13.1. Ajouter un utilisateur sous FreeBSD

 # adduser
 Username: jru
 Full name: J. Random User
 Uid (Leave empty for default):
 Login group [jru]:
 Login group is jru. Invite jru into other groups? []: wheel
 Login class [default]:
 Shell (sh csh tcsh zsh nologin) [sh]: zsh
 Home directory [/home/jru]:
 Use password-based authentication? [yes]:
 Use an empty password? (yes/no) [no]:
 Use a random password? (yes/no) [no]:
 Enter password:
 Enter password again:
 Lock out the account after creation? [no]:
 Username   : jru
 Password   : ****
 Full Name  : J. Random User
 Uid        : 1001
 Class      :
 Groups     : jru wheel
 Home       : /home/jru
 Shell      : /usr/local/bin/zsh
 Locked     : no
 OK? (yes/no): yes
 adduser: INFO: Successfully added (jru) to the user database.
 Add another user? (yes/no): no
 Goodbye!
 #

  Note:

   Le mot de passe que vous tapez n'apparait pas `a l'ecran, et il n'y a pas
   non plus d'asterisques affiches. Assurez-vous de ne pas vous tromper dans
   le mot de passe.

  13.6.2. rmuser

   Vous pouvez utiliser rmuser(8) pour supprimer completement un utilisateur
   du systeme. rmuser(8) effectue les operations suivantes:

    1. Supprime les entrees appartenant `a l'utilisateur de la crontab(1)
       (s'il y en a).

    2. Supprime les taches at(1) appartenant `a l'utilisateur.

    3. Tue tous les processus appartenant `a l'utilisateur.

    4. Supprime l'utilisateur du fichier de mots de passe local.

    5. Supprime le repertoire l'utilisateur (s'il lui appartient).

    6. Supprime les courriers electroniques en attente pour l'utilisateur
       dans /var/mail.

    7. Supprime tous les fichiers temporaires appartenant `a l'utilisateur
       des zones de stockages temporaires comme /tmp.

    8. Et enfin, supprime l'utilisateur de tous les groupes auxquels il
       appartient dans /etc/group.

  Note:

       Si un groupe est vide de ce fait et que le nom du groupe est le meme
       que celui de l'utilisateur, le groupe est supprime; c'est la
       reciproque de la creation par adduser(8) d'un groupe propre pour
       chaque utilisateur.

   rmuser(8) ne peut pas etre employe pour supprimer des comptes
   super-utilisateur, car cela entrainerait presque toujours des destructions
   massives.

   Par defaut, la commande travaille en mode interactif, pour garantir que
   vous soyez sur de ce que vous faites.

   Exemple 13.2. Suppression interactive de compte avec rmuser

 # rmuser jru
 Matching password entry:
 jru:*:1001:1001::0:0:J. Random User:/home/jru:/usr/local/bin/zsh
 Is this the entry you wish to remove? y
 Remove user's home directory (/home/jru)? y
 Updating password file, updating databases, done.
 Updating group file: trusted (removing group jru -- personal group is empty) done.
 Removing user's incoming mail file /var/mail/jru: done.
 Removing files belonging to jru from /tmp: done.
 Removing files belonging to jru from /var/tmp: done.
 Removing files belonging to jru from /var/tmp/vi.recover: done.
 #

  13.6.3. chpass

   chpass(1) modifie les informations de la base de donnees des utilisateurs
   comme les mots de passe, les interpreteurs de commandes, et les
   informations personnelles.

   Seuls les administrateurs systeme, comme le super-utilisateur, peuvent
   modifier les informations concernant les autres utilisateurs et les mots
   de passe `a l'aide de chpass(1).

   Utilise sans options, en dehors du nom facultatif de l'utilisateur,
   chpass(1) ouvre un editeur affichant les informations de l'utilisateur.
   Quand l'utilisateur quitte l'editeur, la base de donnees utilisateur est
   mise `a jour avec les nouvelles informations.

  Note:

   On vous demandera votre mot de passe en quittant l'editeur si vous n'etes
   pas le super-utilisateur.

   Exemple 13.3. chpass interactif par le super-utilisateur

 #Changing user database information for jru.
 Login: jru
 Password: *
 Uid [#]: 1001
 Gid [# or name]: 1001
 Change [month day year]:
 Expire [month day year]:
 Class:
 Home directory: /home/jru
 Shell: /usr/local/bin/zsh
 Full Name: J. Random User
 Office Location:
 Office Phone:
 Home Phone:
 Other information:

   Un utilisateur ordinaire ne peut modifier qu'une partie de ces
   informations, et seulement celles qui le concernent.

   Exemple 13.4. chpass interactif par un utilisateur ordinaire

 #Changing user database information for jru.
 Shell: /usr/local/bin/zsh
 Full Name: J. Random User
 Office Location:
 Office Phone:
 Home Phone:
 Other information:

  Note:

   chfn(1) et chsh(1) sont juste des liens vers chpass(1), comme le sont
   ypchpass(1), ypchfn(1), et ypchsh(1). NIS est supporte automatiquement,
   aussi specifier yp avant la commande n'est pas necessaire. Si cela vous
   semble confus, ne vous inquietez pas, NIS sera aborde dans le chapitre
   Chapitre 30, Serveurs reseau.

  13.6.4. passwd

   passwd(1) est la methode habituelle pour modifier son mot de passe, ou
   celui d'un autre utilisateur si vous etes le super-utilisateur.

  Note:

   Pour prevenir des modifications accidentelles ou non autorisees, le mot de
   passe original doit etre entre avant de pouvoir fixer un nouveau mot de
   passe.

   Exemple 13.5. Modifier votre mot de passe

 % passwd
 Changing local password for jru.
 Old password:
 New password:
 Retype new password:
 passwd: updating the database...
 passwd: done

   Exemple 13.6. Modifier le mot de passe d'un autre utilisateur en tant que
   super-utilisateur

 # passwd jru
 Changing local password for jru.
 New password:
 Retype new password:
 passwd: updating the database...
 passwd: done

  Note:

   Comme pour chpass(1), yppasswd(1) est juste un lien vers passwd(1), donc
   NIS fonctionnera avec l'une des deux commandes.

  13.6.5. pw

   pw(8) est un utilitaire en ligne de commande pour creer, supprimer,
   modifier, et lister utilisateurs et groupes. Il fonctionne comme une
   interface aux fichiers d'utilisateurs et de groupe. pw(8) possede un
   ensemble puissant d'options qui le rende adapte `a une utilisation dans
   des procedures, mais les nouveaux utilisateurs pourront le trouver plus
   complique que les autres commandes presentees ici.

13.7. Mettre en place des restrictions pour les utilisateurs

   Si vous avez plusieurs utilisateurs sur votre systeme, la possibilite de
   limiter leur utilisation du systeme peut venir `a l'esprit. FreeBSD
   fournit plusieurs methodes `a l'administrateur systeme pour limiter la
   quantite de ressources systeme qu'un utilisateur peut utiliser. Ces
   limites sont generalement divisees en deux parties: les quotas disque, et
   les autres limites de ressource.

   Les quotas limitent l'utilisation des disques par les utilisateurs, et ils
   fournissent un moyen de verifier rapidement cette utilisation sans avoir
   `a faire des calculs `a chaque fois. Les quotas sont abordes dans la
   Section 18.15, << Quotas d'utilisation des disques >>.

   Les autres limites de ressource comprennent les moyens de limiter
   l'utilisation du CPU, de la memoire, et les autres ressources qu'un
   utilisateur peut consommer. Elles sont definies en employant des classes
   de session et sont abordees ici.

   Les classes de session sont definies dans /etc/login.conf. La semantique
   precise sort du cadre de cette section, mais est decrite en detail dans la
   page de manuel login.conf(5). Il est suffisant de dire que chaque
   utilisateur est assigne `a une classe (default par defaut), et que chaque
   classe dispose d'un ensemble de capacites associees. La forme utilisee
   pour ces capacites est une paire nom=valeur ou nom est un identifiant
   connu et valeur est une chaine arbitraire dependante du nom. Parametrer
   des classes et des capacites est plutot direct et egalement decrit dans
   login.conf(5).

  Note:

   Le systeme ne lit normalement pas directement le fichier /etc/login.conf,
   mais plutot la base de donnees /etc/login.conf.db qui fournit plus
   rapidement les reponses au systeme. Pour generer /etc/login.conf.db `a
   partir du fichier /etc/login.conf, executez la commande suivante:

 # cap_mkdb /etc/login.conf

   Les limites de ressource sont differentes des capacites standards des
   classes en deux points. Premierement, pour chaque limite, il existe une
   limite douce (actuelle) et limite dure. Une limite douce peut etre ajustee
   par l'utilisateur ou une application, mais jamais depasser la limite dure.
   Cette derniere peut etre abaissee par l'utilisateur, mais jamais
   augmentee. Deuxiemement, la plupart des limites de ressource s'applique
   par processus `a un utilisateur specifique, et non pas `a l'utilisateur
   dans sa totalite. Notez, cependant, que ces differences sont exigees par
   la manipulation specifique des limites, et non pas par l'implementation du
   systeme des capacites des classes de session utilisateur (i.e., elles ne
   sont vraiment pas un cas particulier des capacites des classes de
   session).

   Sans plus attendre, ci-dessous sont presentees les limites de ressource
   les plus souvent utilisees (le reste, avec les autres capacites des
   classes de session, peut etre trouve dans login.conf(5)).

   coredumpsize

           La limite sur la taille du fichier core genere par un programme
           est, pour d'evidentes raisons, subordonnee aux autres limites sur
           l'utilisation du disque (e.g., filesize, ou les quotas de disque).
           Neanmoins, elle est souvent employee comme methode moins severe
           pour controler la consommation d'espace disque: puisque les
           utilisateurs ne generent pas de fichier core eux-memes, et souvent
           ne les suppriment pas, parametrer cela peut leur eviter de manquer
           d'espace disque si un programme important (e.g., emacs) plante.

   cputime

           C'est la quantite maximale de temps CPU qu'un processus d'un
           utilisateur peut consommer. Les processus la depassant seront tues
           par le noyau.

  Note:

           C'est une limite sur le temps CPU consomme, non sur le pourcentage
           comme affiche par certains champs de top(1) et ps(1). Une limite
           sur ce dernier est, au moment de l'ecriture de ces lignes,
           impossible, et serait plutot inutile: un compilateur-probablement
           une tache legitime-peut aisement utiliser presque 100% du CPU
           pendant un certain temps.

   filesize

           C'est la taille maximale du plus gros fichier qu'un utilisateur
           peut posseder. Contrairement aux quotas, cette limite ne
           s'applique qu'aux fichiers individuellement, et non pas sur
           l'ensemble lui-meme de tous les fichiers que possede un
           utilisateur.

   maxproc

           C'est le nombre maximal de processus que peut executer un
           utilisateur en meme temps. Ceci inclut les processus de premier
           plan et de tache de fond. Pour d'evidentes raisons, il ne doit pas
           etre plus grand que les limites du systeme specifiees par la
           variable sysctl(8) kern.maxproc. Notez en outre qu'une valeur trop
           basse peut gener la productivite de l'utilisateur: il est souvent
           utile d'ouvrir plusieurs sessions `a la fois ou d'executer des
           operations sous forme de "pipeline". Certaines taches, comme
           compiler un gros programme, engendrent egalement de multiples
           processus (e.g., make(1), cc(1), et autres preprocesseurs).

   memorylocked

           C'est la quantite maximale de memoire qu'un processus peut avoir
           demande de verrouiller en memoire principale (e.g., voir
           mlock(2)). Certains programmes systeme critiques, comme amd(8),
           sont verrouilles en memoire principale de sorte qu'en cas de
           depassement de la memoire de pagination, ils ne contribuent pas
           aux ennuis du systeme.

   memoryuse

           C'est la quantite maximale de memoire qu'un processus peut
           consommer `a un instant donne. Cela inclus la memoire principale
           et celle de pagination. Ce n'est pas le remede miracle pour
           restreindre la consommation de memoire, mais c'est un bon debut.

   openfiles

           C'est le nombre maximal de fichiers qu'un processus peut avoir
           ouvert. Sous FreeBSD, des fichiers sont egalement employes pour
           representer les sockets et les canaux IPC, par consequent faites
           attention `a ne fixer une valeur trop basse. La limite generale du
           systeme pour cela est definie par la variable sysctl(8)
           kern.maxfiles.

   sbsize

           C'est une limite sur la quantite de memoire reseau, et donc de
           "mbufs", qu'un utilisateur peut consommer. Ceci est `a l'origine
           une reponse `a une vielle attaque par refus de service en creant
           de nombreuses sockets, mais peut etre generalement employee pour
           limiter les communications reseau.

   stacksize

           C'est la taille maximale de la pile d'un processus. Seule, cela
           n'est pas suffisant pour limiter la quantite de memoire que peut
           utiliser un programme, par consequent, cette limite devra etre
           utilisee en meme temps que d'autres limitations.

   Il y a quelques elements `a se rappeler quand on fixe des limites de
   ressource. Quelques astuces generales, suggestions, et commentaires
   divers:

     * Les processus lances au demarrage du systeme par /etc/rc sont assignes
       `a la classe daemon.

     * Bien que le fichier /etc/login.conf qui est fourni avec le systeme est
       une bonne source de valeurs raisonnables pour la plupart des limites,
       seul vous, l'administrateur, peut savoir ce qui est approprie `a votre
       systeme. Fixer une limite trop haute peut laisser la porte ouverte aux
       abus, alors qu'une limite trop basse peut etre un frein `a la
       productivite.

     * Les utilisateurs du systeme X Window (X11) devraient se voir allouer
       plus de ressources que les autres utilisateurs. X11 par lui-meme
       utilise beaucoup de ressources, mais il encourage egalement les
       utilisateurs `a executer plus de programmes simultanement.

     * Souvenez-vous que de nombreuses limites ne s'appliquent qu'aux
       processus individuels, et non pas `a l'utilisateur globalement. Par
       exemple, parametrer openfiles `a 50 signifie que chaque processus que
       l'utilisateur execute pourra ouvrir jusqu'`a 50 fichiers. Ainsi, la
       quantite totale de fichiers qu'un utilisateur peut ouvrir est la
       valeur openfiles multipliee par la valeur maxproc. Ceci s'applique
       egalement `a la consommation de memoire.

   Pour de plus amples informations sur les limites et les classes de session
   et les capacites en general, veuillez consulter les pages de manuel
   appropriees: cap_mkdb(1), getrlimit(2), login.conf(5).

13.8. Groupes

   Un groupe est simplement une liste d'utilisateurs. Les groupes sont
   identifies par leur nom et leur GID (identificateur de groupe). Dans
   FreeBSD (et la plupart des systemes UNIX(R)), les deux elements que le
   noyau utilise pour decider si un processus est autorise `a faire quelque
   chose sont son ID utilisateur et la liste des groupes auxquels il
   appartient. Different d'un identificateur utilisateur, un processus est
   associe `a une liste de groupes. Vous pourrez entendre faire references au
   "group ID" d'un utilisateur ou d'un processus; la plupart du temps on veut
   parler du premier groupe dans la liste.

   La table d'equivalence nom de groupe et identificateur de groupe se trouve
   dans /etc/group. C'est un fichier texte avec quatre champs delimites par
   deux points. Le premier champ est le nom du groupe, le second est le mot
   de passe crypte, le troisieme est l'ID du groupe, et le quatrieme est une
   liste de membres separes par des virgules. Ce fichier peut sans risque
   etre edite `a la main (en supposant, bien sur, que vous ne faites pas
   d'erreur de syntaxe!). Pour une description complete de le syntaxe, voir
   la page de manuel group(5).

   Si vous ne voulez pas editer /etc/group `a la main, vous pouvez utiliser
   la commande pw(8) pour ajouter et editer des groupes. Par exemple, pour
   ajouter un groupe appele teamtwo et ensuite verifier qu'il existe bien
   vous pouvez utiliser:

   Exemple 13.7. Ajouter un groupe en utilisant pw(8)

 # pw groupadd teamtwo
 # pw groupshow teamtwo
 teamtwo:*:1100:

   Le nombre 1100 ci-dessus est l'identificateur de groupe pour le groupe
   teamtwo. A cet instant teamtwo n'a aucun membre, et est par consequent
   plutot inutile. Changeons cela en ajoutant jru au groupe teamtwo.

   Exemple 13.8. Ajouter quelqu'un dans un groupe en utilisant pw(8)

 # pw groupmod teamtwo -M jru
 # pw groupshow teamtwo
 teamtwo:*:1100:jru

   Le parametre ajoute `a l'option -M est une liste, delimitee par des
   virgules, d'utilisateurs qui sont membres du groupe. Des sections
   precedentes nous savons que le fichier des mots de passe contient
   egalement un groupe pour chaque utilisateur. Le dernier (utilisateur) est
   automatiquement ajoute `a la liste des groupes par le systeme;
   l'utilisateur n'apparaitra pas comme etant membre quand on utilise
   l'option groupshow avec pw(8), mais apparaitra quand l'information est
   demandee par l'intermediaire de id(1) ou un outil similaire. En d'autres
   termes, pw(8) manipule uniquement le fichier /etc/group, il n'essaiera
   jamais de lire des donnees supplementaires `a partir du fichier
   /etc/passwd.

   Exemple 13.9. Utilisation de id(1) pour determiner l'appartenance `a un
   groupe

 % id jru
 uid=1001(jru) gid=1001(jru) groups=1001(jru), 1100(teamtwo)

   Comme vous pouvez le voir, jru est membre des groupes jru et teamtwo.

   Pour plus d'information sur pw(8), voir sa page de manuel, et pour
   d'information sur le format de /etc/group, consultez la page de manuel
   group(5).

     ----------------------------------------------------------------------

   [6] Bon, `a moins que vous ne connectiez de multiples terminaux, mais nous
   laisserons cela pour le Chapitre 27, Serial Communications ** Traduction
   en Cours **.

   [7] Il est possible d'utiliser pour les UID/GIDs tout nombre inferieur `a
   4294967295, mais de telles valeurs peuvent etre `a l'origine de serieux
   problemes avec des logiciels qui font des suppositions sur la valeur des
   identifiants.

Chapitre 14. Securite

   Une grande partie de ce chapitre provient de la page de manuel security(7)
   ecrite par Matthew Dillon.
   Table des matieres

   14.1. Synopsis

   14.2. Introduction

   14.3. Securing FreeBSD ** Traduction en Cours **

   14.4. DES, MD5, et chiffrement

   14.5. Mots de passe non reutilisables

   14.6. L'encapsuleur TCP (<< TCP Wrappers >>)

   14.7. Kerberos

   14.8. Kerberos5 ** Traduction en Cours **

   14.9. OpenSSL

   14.10. IPsec

   14.11. OpenSSH

   14.12. Listes de controle d'acces au systeme de fichiers

   14.13. Surveillance des problemes de securite relatifs aux programmes
   tierce-partie

   14.14. Avis de securite de FreeBSD

   14.15. Comptabilite des processus

   Version franc,aise de Marc Fonvieille <blackend@FreeBSD.org>.

14.1. Synopsis

   Ce chapitre sera une introduction aux concepts de base de la securite
   systeme, `a certaines regles empiriques, et `a des sujets avances sous
   FreeBSD. De nombreux sujets abordes ici peuvent etre appliques `a la
   securite systeme et `a l'Internet en general. L'Internet n'est plus un
   endroit "amical" dans lequel chacun desire etre votre gentil voisin.
   Securiser votre systeme est imperatif pour proteger vos donnees, la
   propriete intellectuelle, votre temps, et bien plus des mains des
   "hackers" et equivalents.

   FreeBSD fournit un ensemble d'utilitaires et de mecanismes pour assurer
   l'integrite et la securite de votre systeme et votre reseau.

   Apres la lecture de ce chapitre, vous connaitrez:

     * Les concepts de base de la securite systeme en ce qui concerne
       FreeBSD.

     * Les differents mecanismes de chiffrement disponibles sous FreeBSD,
       comme DES et MD5.

     * Comment mettre en place une authentification par mot de passe non
       reutilisable.

     * Comment configurer l'encapsuleur TCP pour une utilisation avec inetd.

     * Comment configurer KerberosIV sous les versions de FreeBSD anterieures
       `a la 5.0.

     * Comment configurer Kerberos5 sous FreeBSD.

     * Comment configurer IPsec et mettre en place un VPN entre machines
       FreeBSD et Windows(R).

     * Comment configurer et utiliser OpenSSH, la version de SSH implementee
       sous FreeBSD.

     * Ce que sont les ACLs et comment les utiliser.

     * Comment employer l'utilitaire Portaudit pour l'audit des logiciels
       tierce-partie installes `a partir du catalogue des logiciels portes.

     * Comment utiliser les avis de securite de FreeBSD.

     * Ce qu'est la comptabilite des processus et comment l'activer sous
       FreeBSD.

   Avant de lire ce chapitre, vous devrez:

     * Comprendre les concepts de base de FreeBSD et d'Internet.

   D'autres sujets relatifs `a la securite sont abordes par ailleurs dans ce
   Manuel. Par exemple, le controle d'acces obligatoire est presente dans le
   Chapitre 16, Mandatory Access Control ** Traduction en Cours ** et les
   coupe-feux Internet sont developpes dans le Chapitre 31, Firewalls **
   Traduction en Cours **.

14.2. Introduction

   La securite est un domaine qui debute et se termine au niveau de
   l'administrateur systeme. Alors que tous les systemes multi-utilisateurs
   UNIX(R) BSD ont des securites inherentes, la mise en place et la
   maintenance des mecanismes supplementaires de securite pour conserver des
   utilisateurs << honnetes >> est probablement une des taches les plus
   vastes de l'administrateur systeme. La securite des machines est celle que
   vous voulez bien mettre en oeuvre, de plus les preoccupations en matiere
   de securite sont plus que jamais en concurrence avec les besoins de
   confort des utilisateurs. Les systemes UNIX(R) sont, en general, capables
   d'executer un nombre important de processus simultanement et plusieurs de
   ces processus fonctionnent en tant que serveur - cela signifiant que des
   entites exterieures peuvent se connecter et echanger avec ces processus.
   Comme les mini-ordinateurs et les gros ordinateurs d'hier deviennent
   aujourd'hui nos ordinateurs de bureau, et comme les ordinateurs sont
   desormais en reseau et relies `a Internet, la securite devient d'autant
   plus un probleme majeur.

   La securite systeme concerne egalement la lutte contre les diverses formes
   d'attaque, y compris les attaques destinees `a faire planter, ou `a rendre
   inutilisable le systeme, mais qui ne cherchent pas `a compromettre le
   compte root. Les problemes de securite peuvent etre divises en plusieurs
   categories:

    1. Attaques par deni de service.

    2. Compte utilisateur compromis.

    3. Le compte root compromis par l'intermediaire de serveurs accessibles.

    4. Le compte root compromis par l'intermediaire de comptes utilisateur.

    5. Creation d'une << Backdoor >> (porte derobee).

   Une attaque par deni de service (<< DoS >>) est une action qui prive la
   machine de ressources necessaires `a son bon fonctionnement. Generalement,
   les attaques par deni de service sont des mecanismes de force brute qui
   tentent de faire planter ou tout au moins de rendre inutilisable la
   machine en saturant ses serveurs ou sa pile reseau. Certaines attaques par
   deni de service peuvent se servir de bogues presents dans la pile reseau
   pour faire planter une machine avec un seul paquet. Ces problemes ne
   peuvent etre corriges que par l'application d'un correctif sur le noyau.
   On peut souvent remedier aux attaques sur les serveurs en fixant
   correctement des options pour limiter la charge que provoquent ces
   serveurs sur le systeme lors de conditions critiques. Les attaques reseau
   par force brute sont plus difficiles `a traiter. Une attaque par paquets
   usurpes (<< spoofed-packet >>), par exemple, est quasi-impossible `a
   arreter, `a moins de deconnecter de l'Internet votre systeme. Elle peut ne
   pas etre en mesure de stopper votre machine, mais elle peut saturer votre
   connexion Internet.

   La compromission d'un compte utilisateur est bien plus frequente qu'une
   attaque de type DoS. De nombreux administrateurs utilisent toujours sur
   leurs machines les versions standards des serveurs telnetd, rlogind, rshd,
   et ftpd. Par defaut, ces serveurs ne fonctionnent pas avec des connexions
   chiffrees. Cela aura pour resultat si vous disposez d'un nombre
   d'utilisateurs consequent qu'un ou plusieurs de ces utilisateurs ayant
   l'habitude de se connecter `a partir d'une machine distante (ce qui
   represente la maniere la plus courante et la plus pratique pour ouvrir une
   session sur un systeme) auront leur mot de passe << sniffe >>.
   L'administrateur systeme meticuleux analysera ses journaux de connexions
   effectuees `a partir de machines distantes `a la recherche d'adresses
   sources suspectes meme pour les ouvertures de sessions ayant reussies.

   Il faut toujours supposer qu'une fois l'attaquant a l'acces `a un compte
   utilisateur, il pourra s'attaquer et avoir acces au compte root.
   Cependant, la realite est que dans un systeme bien securise et surveille,
   l'acces `a un compte utilisateur ne donne pas necessairement `a
   l'attaquant l'acces au compte root. Cette distinction est importante car
   sans acces aux droits de root, l'attaquant ne peut generalement pas
   dissimuler ses traces et peut, dans le meilleur des cas, ne rien faire
   d'autre que mettre la pagaille dans les fichiers de l'utilisateur ou faire
   planter la machine. La compromission de comptes utilisateur est tres
   frequente parce que les utilisateurs n'ont pas l'habitude de prendre les
   precautions que prennent les administrateurs systeme.

   Les administrateurs doivent garder `a l'esprit qu'il existe
   potentiellement de nombreuses manieres d'avoir acces au compte root sur
   une machine. L'attaquant peut connaitre le mot de passe root, l'attaquant
   peut trouver un bogue dans un serveur tournant avec les droits de root et
   etre en mesure de devenir root par l'intermediaire d'une connexion reseau
   `a ce serveur, ou l'attaquant peut connaitre un bogue dans un programme
   suid-root qui permet de devenir root une fois qu'il a accede `a un compte
   utilisateur. Si un attaquant a trouve un moyen de devenir root sur une
   machine, il n'aura peut-etre pas besoin d'installer une << backdoor >>
   (porte derobee). De nombreux trous de securite root trouves et fermes `a
   temps demandent un travail considerable `a l'attaquant pour effacer ses
   traces, aussi la plupart des attaquants installe des portes derobees. Une
   porte derobee offre `a l'attaquant un moyen aise d'avoir `a nouveau acces
   aux droits de root sur le systeme, mais cela donne egalement `a
   l'administrateur systeme intelligent un bon moyen de detecter l'intrusion.
   Rendre impossible `a un attaquant l'installation d'une porte derobee peut
   en fait etre prejudiciable `a votre securite, parce que cela ne fermera
   pas le trou qu'a decouvert en premier lieu l'attaquant pour penetrer sur
   le systeme.

   Les solutions aux problemes de securite devraient toujours etre mises en
   place suivant l'approche multi-couches de << la pelure d'oignon >>, elles
   peuvent etre classees comme suit:

    1. Securiser les comptes root et d'administration.

    2. Securiser les serveurs executes avec les droits de root et les
       binaires suid/sgid.

    3. Securiser les comptes utilisateurs.

    4. Securiser le fichier des mots de passe.

    5. Securiser le noyau, les peripheriques et les systemes de fichiers.

    6. Installer un mecanisme de detection rapide des modifications
       inappropriees apportees au systeme.

    7. La paranoia.

   La section suivante de ce chapitre abordera de maniere plus approfondie
   les points enonces ci-dessus.

14.3. Securing FreeBSD ** Traduction en Cours **

14.4. DES, MD5, et chiffrement

   En partie reecrit et mis `a jour par Bill Swingle.

   Chaque utilisateur d'un systeme UNIX(R) possede un mot de passe associe `a
   son compte. Il semble evident que ces mots de passe ne doivent etre connus
   que de l'utilisateur et du systeme d'exploitation. Afin de conserver ces
   mots de passe secrets, ils sont chiffres avec ce que l'on appelle un
   "hachage irreversible", ce qui signifie que le mot de passe peut etre
   aisement chiffre mais pas dechiffre. En d'autres mots, ce que nous vous
   disions precedemment n'est meme pas vrai: le systeme d'exploitation
   lui-meme ne connait pas vraiment le mot de passe. Il ne connait que la
   forme chiffree du mot de passe. La seule maniere d'obtenir le mot de passe
   en clair est d'effectuer une recherche par force brute de tous les mots de
   passe possibles.

   Malheureusement, la seule methode securisee pour chiffrer les mots de
   passe quand UNIX(R) a vu le jour etait basee sur DES, le "Data Encryption
   Standard" (standard de chiffrement des donnees). C'etait un probleme
   mineur pour les utilisateurs residants aux Etats-Unis, mais puisque le
   code source de DES ne pouvait etre exporte en dehors des Etats-Unis,
   FreeBSD du trouver un moyen de respecter la legislation americaine et de
   rester compatible avec les autres systemes UNIX(R) qui utilisaient encore
   DES.

   La solution fut de separer les bibliotheques de chiffrement de fac,on `a
   ce que les utilisateurs americains puissent installer les bibliotheques
   DES et utiliser DES, mais que les utilisateurs internationaux disposent
   d'une methode de chiffrement non restreinte `a l'exportation. C'est
   comment FreeBSD est venu `a utiliser MD5 comme methode de chiffrement par
   defaut. MD5 est reconnu comme etant plus sure que DES, l'installation de
   DES est proposee principalement pour des raisons de compatibilite.

  14.4.1. Identifier votre mecanisme de chiffrement

   Avant FreeBSD 4.4 libcrypt.a etait un lien symbolique pointant sur la
   bibliotheque utilisee pour le chiffrement. FreeBSD 4.4 modifia libcrypt.a
   pour fournir une bibliotheque de hachage pour l'authentification des mots
   de passe configurable. Actuellement la bibliotheque supporte les fonctions
   de hachage DES, MD5 et Blowfish. Par defaut FreeBSD utilise MD5 pour
   chiffrer les mots de passe.

   Il est relativement facile d'identifier quelle methode de chiffrement
   FreeBSD utilise. Examiner les mots de passe chiffres dans le fichier
   /etc/master.passwd est une methode. Les mots de passe MD5 sont plus longs
   que les mots de passe DES, et commencent par les caracteres $1$. Les mots
   de passe debutant par $2$ sont chiffres suivant la methode Blowfish. Les
   mots de passe DES n'ont pas de caracteristique particuliere, mais sont
   plus courts que les mots de passe MD5 et utilisent un alphabet de 64
   caracteres qui ne contient pas le caractere $, aussi une chaine
   relativement courte qui ne commence pas par un dollar a donc de tres
   fortes chances d'etre un mot de passe DES.

   Le format utilise par les nouveaux mots de passe est controle par la
   capacite de classe de session passwd_format dans /etc/login.conf, qui
   prend comme valeur des, md5 ou blf. Voir la page de manuel login.conf(5)
   pour plus d'information sur les capacites de classe de session.

14.5. Mots de passe non reutilisables

   S/Key est un systeme de mots de passe non reutilisables base sur une
   fonction de hachage irreversible. FreeBSD utilise le hachage MD4 pour des
   raisons de compatibilite mais d'autres systeme utilisent MD5 et DES-MAC.
   S/Key fait partie du systeme de base de FreeBSD depuis la version 1.1.5 et
   est aussi utilise sur un nombre toujours plus important d'autres systemes
   d'exploitation. S/Key est une marque deposee de Bell Communications
   Research, Inc.

   Depuis la version 5.0 de FreeBSD, S/Key a ete remplace par la fonction
   equivalente OPIE ("One-time Passwords In Everything" - Mots de passe non
   reutilisables dans toutes les applications). OPIE utilise le hachage MD5
   par defaut.

   Il existe trois types de mots de passe dont nous parlerons dans ce qui
   suit. Le premier est votre mot de passe UNIX(R) habituel ou mot de passe
   Kerberos; nous appellerons "mot de passe UNIX(R)". Le deuxieme type est le
   mot de passe genere par les programmes S/Key key ou OPIE opiekey(1) et
   reconnu par les programmes keyinit ou opiepasswd(1) et l'invite de
   session; nous appellerons ceci un "mot de passe non reutilisable". Le
   dernier type de mot de passe est le mot de passe secret que vous donnez
   aux programmes key/opiekey (et parfois aux programmes keyinit/opiepasswd)
   qui l'utilisent pour generer des mots de passe non reutilisable; nous
   l'appellerons "mot de passe secret" ou tout simplement "mot de passe".

   Le mot de passe secret n'a rien `a voir avec votre mot de passe UNIX(R);
   ils peuvent etre identique, mais c'est deconseille. Les mots de passe
   secret S/Key et OPIE ne sont pas limites `a 8 caracteres comme les anciens
   mots de passe UNIX(R)[8], ils peuvent avoir la longueur que vous desirez.
   Des mots de passe de six ou sept mots de long sont relativement communs.
   La plupart du temps, le systeme S/Key ou OPIE fonctionne de fac,on
   completement independante du systeme de mot de passe UNIX(R).

   En plus du mot de passe, deux autres types de donnees sont importantes
   pour S/Key et OPIE. L'une d'elles est connue sous le nom de "germe"
   ("seed") ou "cle", forme de deux lettres et cinq chiffres. L'autre est ce
   que l'on appelle le "compteur d'iterations", un nombre compris entre 1 et
   100. S/Key genere un mot de passe non reutilisable en concatenant le germe
   et le mot de passe secret, puis en appliquant la fonction de hachage
   MD4/MD5 autant de fois qu'indique par le compteur d'iterations, et en
   convertissant le resultat en six courts mots anglais. Ces six mots anglais
   constituent votre mot de passe non reutilisable. Le systeme
   d'authentification (principalement PAM) conserve une trace du dernier mot
   de passe non reutilisable utilise, et l'utilisateur est authentifie si la
   valeur de hachage du mot de passe fourni par l'utilisateur est la meme que
   celle du mot de passe precedent. Comme le hachage utilise est
   irreversible, il est impossible de generer de mot de passe non
   reutilisable si on a surpris un de ceux qui a ete utilise avec succes; le
   compteur d'iterations est decremente apres chaque ouverture de session
   reussie, de sorte que l'utilisateur et le programme d'ouverture de session
   restent en phase. Quand le compteur d'iteration passe `a 1, S/Key et OPIE
   doivent etre reinitialises.

   Il y a trois programmes impliques dans chacun des systemes que nous
   aborderons plus bas. Les programmes key et opiekey ont pour parametres un
   compteur d'iterations, un germe, et un mot de passe secret, et genere un
   mot de passe non reutilisable ou une liste de mots de passe non
   reutilisable. Les programmes keyinit et opiepasswd sont utilises pour
   initialiser respectivement S/Key et OPIE, et pour modifier les mots de
   passe, les compteurs d'iterations, ou les germes; ils prennent pour
   parametres soit un mot de passe secret, soit un compteur d'iterations,
   soit un germe, et un mot de passe non reutilisable. Le programme keyinfo
   ou opieinfo consulte le fichier d'identification correspondant
   (/etc/skeykeys ou /etc/opiekeys) et imprime la valeur du compteur
   d'iterations et le germe de l'utilisateur qui l'a invoque.

   Nous decrirons quatre sortes d'operations. La premiere est l'utilisation
   du programme keyinit ou opiepasswd sur une connexion securisee pour
   initialiser les mots de passe non reutilisables pour la premiere fois, ou
   pour modifier votre mot de passe ou votre germe. La seconde operation est
   l'emploi des programmes keyinit ou opiepasswd sur une connexion non
   securisee, en conjonction avec key ou opiekey sur une connexion securisee,
   pour faire la meme chose. La troisieme est l'utilisation de key/opiekey
   pour ouvrir une session sur une connexion non securisee. La quatrieme est
   l'emploi de key ou opiekey pour generer un certain nombre de cles qui
   peuvent etre notees ou imprimees et emportees avec vous quand vous allez
   quelque part ou il n'y a aucune connexion securisee.

  14.5.1. Initialisation depuis une connexion securisee

   Pour initialiser S/Key pour la premiere fois, changer votre mot de passe,
   ou changer votre germe quand vous etes attache sous votre compte par
   l'intermediaire d'une connexion securisee (e.g., sur la console d'une
   machine ou via ssh), utilisez la commande keyinit sans parametres:

 % keyinit
 Adding unfurl:
 Reminder - Only use this method if you are directly connected.
 If you are using telnet or rlogin exit with no password and use keyinit -s.
 Enter secret password:
 Again secret password:

 ID unfurl s/key is 99 to17757
 DEFY CLUB PRO NASH LACE SOFT

   Pour OPIE, opiepasswd est utilise `a la place:

 % opiepasswd -c
 [grimreaper] ~ $ opiepasswd -f -c
 Adding unfurl:
 Only use this method from the console; NEVER from remote. If you are using
 telnet, xterm, or a dial-in, type ^C now or exit with no password.
 Then run opiepasswd without the -c parameter.
 Using MD5 to compute responses.
 Enter new secret pass phrase:
 Again new secret pass phrase:
 ID unfurl OTP key is 499 to4268
 MOS MALL GOAT ARM AVID COED

   A l'invite Enter new secret pass phrase: ou Enter secret password:, vous
   devez entrer un mot de passe ou une phrase. Rappelez-vous que ce n'est pas
   le mot de passe que vous utiliserez pour ouvrir une session, mais celui
   utilise pour generer vos cles non reutilisables. La ligne commenc,ant par
   "ID" liste les parametres de votre instance: votre nom d'utilisateur, la
   valeur de votre compteur d'iterations et votre germe. Quand vous ouvrirez
   une session, le systeme aura memorise ces parametres et vous les
   redonnera, vous n'avez donc pas besoin de les retenir. La derniere ligne
   donne le mot de passe non reutilisable correspondant `a ces parametres et
   `a votre mot de passe secret; si vous devez vous reconnectez
   immediatement, c'est ce mot de passe que vous utiliseriez.

  14.5.2. Initialisation depuis une connexion non securisee

   Pour initialiser ou changer votre mot de passe secret par l'intermediaire
   d'une connexion non securisee, il faudra avoir dej`a une connexion
   securisee sur une machine ou vous pouvez executer key ou opiekey; ce peut
   etre depuis une icone sur le bureau d'un Macintosh ou depuis la ligne de
   commande d'une machine sure. Il vous faudra egalement donner une valeur au
   compteur d'iteration (100 est probablement une bonne valeur), et indiquer
   un germe ou utiliser la valeur aleatoire generee par le programme. Sur la
   connexion non securisee (vers la machine que vous initialisez), employez
   la commande keyinit -s:

 % keyinit -s
 Updating unfurl:
 Old key: to17758
 Reminder you need the 6 English words from the key command.
 Enter sequence count from 1 to 9999: 100
 Enter new key [default to17759]:
 s/key 100 to 17759
 s/key access password:
 s/key access password:CURE MIKE BANE HIM RACY GORE

   Pour OPIE, vous devez utiliser opiepasswd:

 % opiepasswd

 Updating unfurl:
 You need the response from an OTP generator.
 Old secret pass phrase:
         otp-md5 498 to4268 ext
         Response: GAME GAG WELT OUT DOWN CHAT
 New secret pass phrase:
         otp-md5 499 to4269
         Response: LINE PAP MILK NELL BUOY TROY

 ID mark OTP key is 499 gr4269
 LINE PAP MILK NELL BUOY TROY

   Pour accepter le germe par defaut (que le programme keyinit appelle key,
   ce qui prete `a confusion), appuyez sur Entree. Ensuite avant d'entrer un
   mot de passe d'acces, passez sur votre connexion securisee et donnez lui
   les memes parametres:

 % key 100 to17759
 Reminder - Do not use this program while logged in via telnet or rlogin.
 Enter secret password: <secret password>
 CURE MIKE BANE HIM RACY GORE

   Ou pour OPIE:

 % opiekey 498 to4268
 Using the MD5 algorithm to compute response.
 Reminder: Don't use opiekey from telnet or dial-in sessions.
 Enter secret pass phrase:
 GAME GAG WELT OUT DOWN CHAT

   Retournez maintenant sur votre connexion non securisee, et copiez le mot
   de passe non reutilisable genere par le programme adapte.

  14.5.3. Generer un unique mot de passe non reutilisable

   Une fois que vous avez initialise S/Key ou OPIE, lorsque que vous ouvrez
   une session, une invite de ce type apparaitra:

 % telnet example.com
 Trying 10.0.0.1...
 Connected to example.com
 Escape character is '^]'.

 FreeBSD/i386 (example.com) (ttypa)

 login: <username>
 s/key 97 fw13894
 Password:

   Ou pour OPIE:

 % telnet example.com
 Trying 10.0.0.1...
 Connected to example.com
 Escape character is '^]'.

 FreeBSD/i386 (example.com) (ttypa)

 login: <username>
 otp-md5 498 gr4269 ext
 Password:

   Les invites S/Key et OPIE disposent d'une fonction utile (qui n'est pas
   illustree ici): si vous appuyez sur la touche Entree lorsque l'on vous
   demande votre mot de passe, le programme active l'echo au terminal, de
   sorte que vous voyez ce que vous etes en train de taper. Ceci est tres
   utile si vous essayez de taper un mot de passe `a la main, `a partir d'un
   resultat imprime par exemple.

   A ce moment vous devez generer votre mot de passe non reutilisable pour
   repondre `a cette invite de session. Cela doit etre effectue sur une
   machine de confiance sur laquelle vous pouvez executer key ou opiekey (il
   y a des versions de ces programmes pour DOS, Windows et MacOS). Ces
   programmes ont besoin du compteur d'iterations et du germe comme
   parametres. Vous pouvez les copier-coller de l'invite de session de la
   machine sur laquelle vous voulez ouvrir une session.

   Sur le systeme sur:

 % key 97 fw13894
 Reminder - Do not use this program while logged in via telnet or rlogin.
 Enter secret password:
 WELD LIP ACTS ENDS ME HAAG

   Pour OPIE:

 % opiekey 498 to4268
 Using the MD5 algorithm to compute response.
 Reminder: Don't use opiekey from telnet or dial-in sessions.
 Enter secret pass phrase:
 GAME GAG WELT OUT DOWN CHAT

   Maintenant que vous disposez de votre mot de passe non reutilisable vous
   pouvez continuer et vous connecter:

 login: <username>
 s/key 97 fw13894
 Password: <return to enable echo>
 s/key 97 fw13894
 Password [echo on]: WELD LIP ACTS ENDS ME HAAG
 Last login: Tue Mar 21 11:56:41 from 10.0.0.2 ...

  14.5.4. Generer de multiples mots de passe non reutilisables

   Il faut parfois se rendre en des endroits ou vous n'avez pas acces `a une
   machine de confiance ou `a une connexion securisee. Dans ce cas, vous
   pouvez utiliser la commande key ou opiekey pour generer plusieurs mots de
   passe non reutilisables que vous pouvez imprimer et transporter avec vous.
   Par exemple:

 % key -n 5 30 zz99999
 Reminder - Do not use this program while logged in via telnet or rlogin.
 Enter secret password: <secret password>
 26: SODA RUDE LEA LIND BUDD SILT
 27: JILT SPY DUTY GLOW COWL ROT
 28: THEM OW COLA RUNT BONG SCOT
 29: COT MASH BARR BRIM NAN FLAG
 30: CAN KNEE CAST NAME FOLK BILK

   Ou pour OPIE:

 % opiekey -n 5 30 zz99999
 Using the MD5 algorithm to compute response.
 Reminder: Don't use opiekey from telnet or dial-in sessions.
 Enter secret pass phrase: <secret password>
 26: JOAN BORE FOSS DES NAY QUIT
 27: LATE BIAS SLAY FOLK MUCH TRIG
 28: SALT TIN ANTI LOON NEAL USE
 29: RIO ODIN GO BYE FURY TIC
 30: GREW JIVE SAN GIRD BOIL PHI

   L'option -n 5 demande cinq cles en sequence, l'option 30 indique quel doit
   etre le rang de la derniere iteration. Notez que les cles sont imprimees
   dans l'ordre inverse de celui ou elles seront eventuellement utilisees. Si
   vous etes vraiment paranoiaque, vous pouvez les recopier `a la main, sinon
   vous pouvez les copier-coller vers la commande lpr. Remarquez que chaque
   ligne liste le compteur d'iteration et le mot de passe non reutilisable;
   vous trouverez peut-etre utile de rayer les mots de passe au fur et `a
   mesure de leur utilisation.

  14.5.5. Restreindre l'utilisation des mots de passe UNIX(R)

   S/Key peut placer des restrictions sur l'utilisation des mots de passe
   UNIX(R) en fonction des noms de machine, d'utilisateur, de la ligne
   utilisee par le terminal ou de l'adresse IP de la machine connectee `a
   distance. Ces restrictions peuvent etre trouvees dans le fichier de
   configuration /etc/skey.access. La page de manuel skey.access(5) donne de
   plus amples informations sur le format de ce fichier et elle detaille
   egalement certains avertissements relatifs `a la securite qu'il faut lire
   avant de se fier `a ce fichier pour sa securite.

   S'il n'y a pas de fichier /etc/skey.access (ce qui est le cas par defaut
   sur les systemes FreeBSD 4.X), tous les utilisateurs pourront se servir de
   mots de passe UNIX(R). Si le fichier existe, alors tous les utilisateurs
   devront passer par S/Key, `a moins qu'ils ne soient explicitement
   autorises `a ne pas le faire par des instructions du fichier
   /etc/skey.access. Dans tous les cas l'usage des mots de passe UNIX(R) est
   autorise sur la console.

   Voici un exemple de configuration du fichier skey.access qui illustre les
   trois types d'instructions les plus courantes:

 permit internet 192.168.0.0 255.255.0.0
 permit user fnord
 permit port ttyd0

   La premiere ligne (permit internet) autorise les utilisateurs dont
   l'adresse IP (ce qui rend vulnerable en cas d'usurpation) appartient au
   sous-reseau specifie `a employer les mots de passe UNIX(R). Cela ne doit
   pas etre considere comme une mesure de securite, mais plutot comme un
   moyen de rappeler aux utilisateurs autorises qu'ils sont sur un reseau non
   securise et doivent utiliser S/Key pour s'authentifier.

   La seconde ligne (permit user) autorise l'utilisateur designe, dans notre
   cas fnord, `a employer n'importe quand les mots de passe UNIX(R). En
   general, il faut se servir de cette possibilite si les personnes soit
   n'ont pas moyen d'utiliser le programme key, s'ils ont par exemple des
   terminaux passifs, soit s'ils sont definitivement refractaires au systeme.

   La troisieme ligne (permit port) autorise tous les utilisateurs d'un
   terminal sur une liaison particuliere `a utiliser les mots de passe
   UNIX(R); cela devrait etre employe pour les connexions telephoniques.

   OPIE peut restreindre l'usage des mots de passe UNIX(R) sur la base de
   l'adresse IP lors de l'ouverture d'une session comme peut le faire S/Key.
   Le fichier implique est /etc/opieaccess, qui est present par defaut sous
   FreeBSD 5.0 et versions suivantes. Veuillez consulter la page de manuel
   opieaccess(5) pour plus d'information sur ce fichier et certaines
   considerations sur la securite dont vous devez etre au courant en
   l'utilisant.

   Voici un exemple de fichier opieaccess:

 permit 192.168.0.0 255.255.0.0

   Cette ligne autorise les utilisateurs dont l'adresse IP (ce qui rend
   vulnerable en cas d'usurpation) appartient au sous-reseau specifie `a
   employer les mots de passe UNIX(R) `a tout moment.

   Si aucune regle du fichier opieaccess ne correspond, le comportement par
   defaut est de refuser toute ouverture de session non-OPIE.

14.6. L'encapsuleur TCP (<< TCP Wrappers >>)

   Ecrit par Tom Rhodes.

   Toute personne familiere avec inetd(8) a probablement entendu parle `a un
   moment ou `a un autre de l'encapsuleur TCP (<< TCP Wrappers >>). Mais peu
   sont ceux qui semblent saisir completement son interet dans un reseau. Il
   semble que tout le monde desire installer un coupe-feu pour controler les
   connexions reseaux. Alors qu'un coupe-feu peut avoir de nombreuses
   utilisations, il existe des choses qu'un coupe-feu ne peut gerer comme
   renvoyer un message `a l'initiateur d'une connexion. L'encapsuleur TCP en
   est capable ainsi que bien d'autres choses. Dans les sections suivantes
   plusieurs fonctionnalites de l'encapsuleur TCP seront abordees, et, des
   que ce sera possible, un exemple de configuration sera propose.

   L'encapsuleur TCP etend les capacites d'inetd au niveau du support pour
   chaque serveur sous son controle. En utilisant cette methode il est
   possible d'offrir le support des ouvertures de session, de retourner des
   messages lors des connexions, de permettre `a un << daemon >> de
   n'accepter que les connexions internes, etc. Bien que certaines de ces
   fonctionnalites peuvent etre obtenues par l'implementation d'un coupe-feu,
   ce systeme ajoutera non seulement une couche supplementaire de protection
   mais ira plus loin dans le controle que ce que peut fournir un coupe-feu.

   Les fonctionnalites apportees par l'encapsuleur TCP ne peuvent se
   substituer `a l'utilisation d'un bon coupe-feu. L'encapsuleur TCP peut
   etre utilise de paire avec un coupe-feu ou tout autre systeme de securite
   et il pourra alors servir comme une couche supplementaire de protection
   pour le systeme.

   Etant donne que ce programme est une extension `a la configuration du
   programme inetd, le lecteur est suppose avoir pris connaissance de la
   section de configuration d'inetd.

  Note:

   Bien que les programmes lances par inetd(8) ne soient pas tout `a fait des
   << daemons >>, ils sont traditionnellement appeles << daemons >>. C'est le
   terme que nous utiliserons egalement dans le reste de cette section.

  14.6.1. Configuration initiale

   Le seul pre-requis `a l'utilisation de l'encapsuleur TCP sous FreeBSD est
   de s'assurer que le serveur inetd est lance `a partir de rc.conf avec
   l'option -Ww; c'est la configuration par defaut. Bien evidemment une
   configuration correcte du fichier /etc/hosts.allow est egalement
   sous-entendue, mais dans le cas contraire syslogd(8) emettra des messages
   d'avertissement dans les journaux du systeme.

  Note:

   Contrairement `a d'autres implementations de l'encapsuleur TCP, l'emploi
   du fichier hosts.deny est obsolete. Toutes les options de configuration
   doivent etre placees dans le fichier /etc/hosts.allow.

   Dans la configuration la plus simple, la politique de connexion aux
   << daemons >> est soit de tout autoriser ou soit de tout bloquer en
   fonctions des options choisies dans /etc/hosts.allow. La configuration par
   defaut sous FreeBSD est d'autoriser les connexions `a chaque << daemon >>
   lance `a l'aide d'inetd. La modification de ce reglage par defaut sera
   discutee une fois que la configuration de base aura ete vue.

   Une configuration de base prend en general la forme daemon : adresse :
   action. Ou daemon est le nom du << daemon >> lance par inetd. L'adresse
   peut etre un nom de machine valide, une adresse IP ou une adresse IPv6
   entre crochets ([ ]). Le champ action pourra avoir comme valeur allow ou
   deny pour autoriser ou interdire l'acces. Gardez `a l'esprit que ce type
   de configuration fonctionne de maniere `a honorer la premiere regle
   semantique correspondante, cela signifie que le fichier de configuration
   est parcouru `a la recherche d'une regle correspondant `a la requete.
   Quand une correspondance est trouvee, la regle est appliquee et la
   recherche s'arrete.

   Plusieurs autres options existent mais elles seront exposees dans une
   section ulterieure. Une simple ligne de configuration peut etre construite
   avec peu d'information. Par exemple, pour autoriser les connexions POP3
   via le << daemon >> mail/qpopper, les lignes suivantes doivent etre
   ajoutees au fichier hosts.allow:

 # This line is required for POP3 connections:
 qpopper : ALL : allow

   Apres l'ajout de cette ligne, inetd devra etre redemarre. Cela sera fait
   en utilisant la commande kill(1), ou avec le passage du parametre restart
   `a la commande /etc/rc.d/inetd.

  14.6.2. Configuration avancee

   L'encapsuleur TCP dispose egalement d'options avancees; elles permettrons
   plus de controle sur la maniere dont sont gerees les connexions. Dans
   certains cas cela peut etre une bonne idee de renvoyer un commentaire `a
   certaines machines ou lors de connexions `a certains << daemon >>s. Dans
   d'autres cas, peut-etre qu'un fichier journal pourrait etre enregistre ou
   un courrier electronique pourrait etre envoye `a l'administrateur.
   D'autres situations peuvent necessiter l'utilisation d'un service
   uniquement pour les connexions locales. Tout cela est possible `a l'aide
   des options de configuration connues sous le nom de jokers, caracteres
   d'expansion et d'execution de commandes externes. Les deux sections
   suivantes abordent ces situations.

    14.6.2.1. Commandes externes

   Imaginez une situation dans laquelle une connexion doit etre refusee et
   que la raison de ce refus doit etre envoyee `a la personne qui a tente
   d'etablir cette connexion. Comment cela peut-il etre mis en place? Ce type
   d'action est rendu possible par l'emploi de l'option twist. Quand une
   tentative de connexion est faite, twist sera appelee pour executer une
   commande ou une procedure d'interpreteur de commande. Un exemple est dej`a
   present dans le fichier hosts.allow:

 # The rest of the daemons are protected.
 ALL : ALL \
         : severity auth.info \
         : twist /bin/echo "You are not welcome to use %d from %h."

   Cet exemple montre que le message << You are not allowed to use daemon
   from hostname. >> sera retourne pour tout << daemon >> qui n'a pas ete
   precedemment configure dans le fichier d'acces. Cette fonction est tres
   utile pour envoyer une reponse `a l'initiateur de la connexion juste apres
   le refus de la connexion. Notez que tout message `a retourner doit etre
   place entre des guillemets "; il n'y a pas d'exception possible `a cette
   regle.

  Avertissement:

   Il est possible de lancer une attaque par deni de service sur le serveur
   si un agresseur, ou un groupe d'agresseurs sont en mesure de submerger ces
   << daemon >>s avec des demandes de connexion.

   Une autre possibilite dans ce cas est d'employer l'option spawn. Tout
   comme l'option twist, spawn interdit implicitement les connexions et peut
   etre utilisee pour lancer une commande ou une procedure externe.
   Contrairement `a twist, spawn n'enverra pas de reponse `a la personne qui
   a etabli la connexion. Examinons par exemple la ligne de configuration
   suivante:

 # We do not allow connections from example.com:
 ALL : .example.com \
         : spawn (/bin/echo %a from %h attempted to access %d >> \
           /var/log/connections.log) \
         : deny

   Cela interdira toute tentative de connexion `a partir du domaine
   *.example.com, enregistrant simultanement dans le fichier
   /var/log/connections.log le nom de machine, l'adresse IP et le
   << daemon >> auquel on tente d'acceder.

   Il existe d'autres caracteres de substitution en dehors de ceux dej`a
   presentes, par exemple %a. Consultez la page de manuel hosts_access(5)
   pour une liste complete.

    14.6.2.2. Les options jokers

   Jusqu'ici l'option ALL a ete utilisee dans tous les exemples. Il existe
   d'autres options pour etendre un peu plus les fonctionnalites. Par
   exemple, l'option ALL peut etre utilisee pour prendre en compte chaque
   instance d'un << daemon >>, d'un domaine ou d'une adresse IP. Un autre
   joker disponible est l'option PARANOID qui peut etre employee pour prendre
   en compte toute machine qui fournirait une adresse IP susceptible d'etre
   falsifiee. En d'autres termes, l'option PARANOID peut etre utilisee pour
   definir l'action a effectuer des qu'une connexion se fait `a partir d'une
   adresse IP qui differe de celle attachee `a une machine. L'exemple suivant
   apporte un eclairage sur cette option:

 # Block possibly spoofed requests to sendmail:
 sendmail : PARANOID : deny

   Dans cet exemple, toutes les requetes de connexion `a sendmail `a partir
   d'adresses IP differentes de celle correspondant au nom de la machine
   seront refusees.

  Attention:

   Utiliser l'option PARANOID peut gravement paralyser les serveurs si le
   client ou le serveur a une configuration de DNS defectueuse. Les
   administrateurs sont maintenant prevenus.

   Pour en apprendre plus sur les jokers et leurs fonctionnalites associees,
   consultez la page de manuel hosts_access(5).

   Avant que n'importe quelle des lignes de configuration donnees ci-dessus
   ne fonctionne, la premiere ligne de configuration du fichier hosts.allow
   devra etre de-commentee. Cela a ete note en debut de section.

14.7. Kerberos

   Contribution de Mark Murray.
   Basee sur une contribution de Mark Dapoz.

   Kerberos est un protocole reseau supplementaire qui permet aux
   utilisateurs de s'authentifier par l'intermediaire d'un serveur securise.
   Des services comme l'ouverture de session et la copie `a distance, la
   copie securisee de fichiers entre systemes et autres fonctionnalites `a
   haut risque deviennent ainsi considerablement plus surs et controlables.

   Les instructions qui suivent peuvent etre utilisees comme guide
   d'installation de Kerberos dans la version distribuee pour FreeBSD. Vous
   devriez cependant vous referer aux pages de manuel correspondantes pour
   avoir une description complete.

  14.7.1. Installation de Kerberos

   Kerberos est un composant optionnel de FreeBSD. La maniere la plus simple
   d'installer ce logiciel est de selectionner la distribution krb4 ou krb5
   dans sysinstall lors de l'installation de FreeBSD. Cela installera les
   implementations "eBones" (KerberosIV) ou "Heimdal" (Kerberos5) de
   Kerberos. Ces implementations sont distribuees car elles sont developpees
   en dehors des USA ou du Canada et etaient par consequent disponibles aux
   utilisateurs hors de ces pays durant l'ere restrictive du controle des
   exportations de code de chiffrement `a partir des USA.

   Alternativement, l'implementation du MIT de Kerberos est disponible dans
   le catalogue des logiciels portes sous security/krb5.

  14.7.2. Creer la base de donnees initiale

   Cela se fait uniquement sur le serveur Kerberos. Verifiez tout d'abord
   qu'il ne traine pas d'anciennes bases Kerberos. Allez dans le repertoire
   /etc/kerberosIV et assurez-vous qu'il ne contient que les fichiers
   suivants:

 # cd /etc/kerberosIV
 # ls
 README          krb.conf        krb.realms

   S'il y a d'autres fichiers (comme principal.* ou master_key), utilisez
   alors la commande kdb_destroy pour supprimer l'ancienne base de donnees
   Kerberos, ou si Kerberos ne tourne pas, effacez simplement les fichiers
   supplementaires.

   Vous devez maintenant editer les fichiers krb.conf et krb.realms pour
   definir votre domaine Kerberos. Dans notre cas, le domaine sera
   EXAMPLE.COM et le serveur grunt.example.com. Nous editons ou creons le
   fichier krb.conf:

 # cat krb.conf
 EXAMPLE.COM
 EXAMPLE.COM grunt.example.com admin server
 CS.BERKELEY.EDU okeeffe.berkeley.edu
 ATHENA.MIT.EDU kerberos.mit.edu
 ATHENA.MIT.EDU kerberos-1.mit.edu
 ATHENA.MIT.EDU kerberos-2.mit.edu
 ATHENA.MIT.EDU kerberos-3.mit.edu
 LCS.MIT.EDU kerberos.lcs.mit.edu
 TELECOM.MIT.EDU bitsy.mit.edu
 ARC.NASA.GOV trident.arc.nasa.gov

   Dans notre cas les autres domaines n'ont pas besoin d'etre mentionnes. Ils
   ne sont l`a que pour montrer comment une machine peut avoir connaissance
   de plusieurs domaines. Pour plus de simplicite, vous pouvez ne pas les
   inclure.

   La premiere ligne indique pour quel domaine cette machine agit. Les autre
   lignes definissent les autres domaines/machines. Le premier element sur
   une ligne est le domaine, le second le nom de la machine qui est le
   "centre de distribution de cles" de ce domaine. Les mots admin server qui
   suivent un nom de machine signifient que la machine est aussi serveur
   d'administration de la base de donnees. Pour plus d'explication sur cette
   terminologie, consultez les pages de manuel de Kerberos.

   Nous devons maintenant ajouter grunt.example.com au domaine EXAMPLE.COM et
   ajouter une entree pour mettre toutes les machines du domaine DNS
   .example.com dans le domaine Kerberos EXAMPLE.COM. Le fichier krb.realms
   aura alors l'allure suivante:

 # cat krb.realms
 grunt.example.com EXAMPLE.COM
 .example.com EXAMPLE.COM
 .berkeley.edu CS.BERKELEY.EDU
 .MIT.EDU ATHENA.MIT.EDU
 .mit.edu ATHENA.MIT.EDU

   Encore une fois, les autres domaines n'ont pas besoin d'etre mentionnes.
   Ils ne sont l`a que pour montrer comment une machine peut avoir
   connaissance de plusieurs domaines. Pour plus de simplicite, vous pouvez
   ne pas les inclure.

   La premiere ligne assigne un systeme particulier au domaine designe. Les
   lignes restantes montrent comment affecter par defaut les systemes d'un
   sous-domaine DNS particulier `a un domaine Kerberos donne.

   Nous sommes maintenant pret pour la creation de la base de donnees. Il n'y
   a `a le faire que sur le serveur Kerberos (ou Centre de Distribution de
   Cles). Cela se fait avec la commande kdb_init:

 # kdb_init
 Realm name [default  ATHENA.MIT.EDU ]: EXAMPLE.COM
 You will be prompted for the database Master Password.
 It is important that you NOT FORGET this password.

 Enter Kerberos master key:

   Nous devons maintenant sauvegarder la cle pour que les serveurs sur la
   machine locale puissent la lire. Utilisons la commande kstash pour faire
   cela:

 # kstash

 Enter Kerberos master key:

 Current Kerberos master key version is 1.

 Master key entered. BEWARE!

   Le mot de passe maitre chiffre est sauvegarde dans
   /etc/kerberosIV/master_key.

  14.7.3. Installer les services

   Il faut ajouter deux entrees ("principals") `a la base de donnees pour
   chaque systeme qui sera securise par Kerberos. Ce sont kpasswd et rcmd.
   Ces deux entrees sont definies pour chaque systeme, chacune de leurs
   instances se voyant attribuer le nom du systeme.

   Ces "daemons", kpasswd et rcmd permettent aux autres systemes de changer
   les mots de passe Kerberos et d'executer des commandes comme rcp(1),
   rlogin(1), et rsh(1).

   Ajoutons donc maintenant ces entrees:

 # kdb_edit
 Opening database...

 Enter Kerberos master key:

 Current Kerberos master key version is 1.

 Master key entered.  BEWARE!
 Previous or default values are in [brackets] ,
 enter return to leave the same, or new value.

 Principal name: passwd
 Instance: grunt

 <Not found>, Create [y] ? y

 Principal: passwd, Instance: grunt, kdc_key_ver: 1
 New Password:                    <---- entrez RANDOM ici
 Verifying password

 New Password: <---- enter RANDOM here

 Random password [y] ? y

 Principal's new key version = 1
 Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ?
 Max ticket lifetime (*5 minutes) [ 255 ] ?
 Attributes [ 0 ] ?
 Edit O.K.
 Principal name: rcmd
 Instance: grunt

 <Not found>, Create [y] ?

 Principal: rcmd, Instance: grunt, kdc_key_ver: 1
 New Password:           <---- entrez RANDOM ici
 Verifying password

 New Password:           <---- entrez RANDOM ici

 Random password [y] ?

 Principal's new key version = 1
 Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ?
 Max ticket lifetime (*5 minutes) [ 255 ] ?
 Attributes [ 0 ] ?
 Edit O.K.
 Principal name:         <---- ne rien entrer ici permet de quitter le programme

  14.7.4. Creer le fichier des services

   Il faut maintenant extraire les instances qui definissent les services sur
   chaque machine. Pour cela on utilise la commande ext_srvtab. Cela creera
   un fichier qui doit etre copie ou deplace par un moyen sur dans le
   repertoire /etc/kerberosIV de chaque client Kerberos. Ce fichier doit etre
   present sur chaque serveur et client, et est crucial au bon fonctionnement
   de Kerberos.

 # ext_srvtab grunt
 Enter Kerberos master key:

 Current Kerberos master key version is 1.

 Master key entered. BEWARE!
 Generating 'grunt-new-srvtab'....

   Cette commande ne genere qu'un fichier temporaire qui doit etre renomme en
   srvtab pour que tous les serveurs puissent y acceder. Utilisez la commande
   mv(1) pour l'installer sur le systeme d'origine:

 # mv grunt-new-srvtab srvtab

   Si le fichier est destine `a un client, et que le reseau n'est pas
   considere comme sur, alors copiez le fichier client-new-srvtab sur un
   support amovible et transportez-le par un moyen physiquement sur.
   Assurez-vous de le renommer en srvtab dans le repertoire /etc/kerberosIV
   du client, et mettez-le bien en mode 600:

 # mv grumble-new-srvtab srvtab
 # chmod 600 srvtab

  14.7.5. Renseigner la base de donnees

   Nous devons maintenant creer des entrees utilisateurs dans la base de
   donnees. Tout d'abord creons une entree pour l'utilisateur jane. Utilisez
   la commande kdb_edit pour cela:

 # kdb_edit
 Opening database...

 Enter Kerberos master key:

 Current Kerberos master key version is 1.

 Master key entered.  BEWARE!
 Previous or default values are in [brackets] ,
 enter return to leave the same, or new value.

 Principal name: jane
 Instance:

 <Not found>, Create [y] ? y

 Principal: jane, Instance: , kdc_key_ver: 1
 New Password:                <---- entrez un mot de passe sur ici
 Verifying password

 New Password:                <---- reentrez le mot de passe sur l`a
 Principal's new key version = 1
 Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ?
 Max ticket lifetime (*5 minutes) [ 255 ] ?
 Attributes [ 0 ] ?
 Edit O.K.
 Principal name:            <---- ne rien entrer ici permet de quitter le programme

  14.7.6. Tester l'ensemble

   Il faut tout d'abord demarrer les "daemons" Kerberos. Notez que si vous
   avez correctement modifie votre fichier /etc/rc.conf, cela se fera
   automatiquement au redemarrage du systeme. Ceci n'est necessaire que sur
   le serveur Kerberos. Les clients Kerberos recupereront automatiquement les
   informations dont ils ont besoin via leur repertoire /etc/kerberosIV.

 # kerberos &
 Kerberos server starting
 Sleep forever on error
 Log file is /var/log/kerberos.log
 Current Kerberos master key version is 1.

 Master key entered. BEWARE!

 Current Kerberos master key version is 1
 Local realm: EXAMPLE.COM
 # kadmind -n &
 KADM Server KADM0.0A initializing
 Please do not use 'kill -9' to kill this job, use a
 regular kill instead

 Current Kerberos master key version is 1.

 Master key entered.  BEWARE!

   Nous pouvons maintenant utiliser la commande kinit pour obtenir un "ticket
   d'entree" pour l'utilisateur jane que nous avons cree plus haut:

 % kinit jane
 MIT Project Athena (grunt.example.com)
 Kerberos Initialization for "jane"
 Password:

   Essayons de lister les informations associees avec la commande klist pour
   voir si nous avons vraiment tout ce qu'il faut:

 % klist
 Ticket file:    /tmp/tkt245
 Principal:      jane@EXAMPLE.COM

   Issued           Expires          Principal
 Apr 30 11:23:22  Apr 30 19:23:22  krbtgt.EXAMPLE.COM@EXAMPLE.COM

   Essayons maintenant de modifier le mot de passe en utilisant la commande
   passwd(1) pour verifier si le "daemon" kpasswd est autorise `a acceder `a
   la base de donnees Kerberos:

 % passwd
 realm EXAMPLE.COM
 Old password for jane:
 New Password for jane:
 Verifying password
 New Password for jane:
 Password changed.

  14.7.7. Autoriser l'utilisation de la commande su

   Kerberos permet d'attribuer `a chaque utilisateur qui a besoin des droits
   du super-utilisateur son propre mot de passe su(1). Nous pouvons creer un
   identifiant qui est autorise `a utiliser su(1) pour devenir root. Cela se
   fait en associant une instance root un identificateur ("principal") de
   base. En utilisant la commande kdb_edit nous pouvons creer l'entree
   jane.root dans la base de donnees Kerberos:

 # kdb_edit
 Opening database...

 Enter Kerberos master key:

 Current Kerberos master key version is 1.

 Master key entered.  BEWARE!
 Previous or default values are in [brackets] ,
 enter return to leave the same, or new value.

 Principal name: jane
 Instance: root

 <Not found>, Create [y] ? y

 Principal: jane, Instance: root, kdc_key_ver: 1
 New Password:                    <---- entrez un mot de passe SUR ici
 Verifying password

 New Password:                    <---- reentrez le mot de passe ici

 Principal's new key version = 1
 Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ?
 Max ticket lifetime (*5 minutes) [ 255 ] ? 12 <--- Laissez une valeur faible!
 Attributes [ 0 ] ?
 Edit O.K.
 Principal name:                  <---- ne rien entrer ici permet de quitter le programme

   Verifions maintenant les caracteristiques associees pour voir si cela
   fonctionne:

 # kinit jane.root
 MIT Project Athena (grunt.example.com)
 Kerberos Initialization for "jane.root"
 Password:

   Nous devons maintenant ajouter l'utilisateur au fichier .klogin de root:

 # cat /root/.klogin
 jane.root@EXAMPLE.COM

   Essayons maintenant la commande su(1):

 % su
 Password:

   et voyons quelles sont nos caracteristiques:

 # klist
 Ticket file:    /tmp/tkt_root_245
 Principal:      jane.root@EXAMPLE.COM

   Issued           Expires          Principal
 May  2 20:43:12  May  3 04:43:12  krbtgt.EXAMPLE.COM@EXAMPLE.COM

  14.7.8. Utiliser d'autres commandes

   Dans l'exemple precedent, nous avons cree une entree principale nommee
   jane avec une instance root. Cette entree reposait sur un utilisateur
   ayant le meme nom que l'entree principale, c'est ce que fait par defaut
   Kerberos; une <entree_principale>.<instance> de la forme
   <nom_d_utilisateur>.root autorisera <nom_d_utilisateur>. `a utiliser su(1)
   pour devenir root si le fichier .klogin du repertoire personnel de
   l'utilisateur root est correctement renseigne:

 # cat /root/.klogin
 jane.root@EXAMPLE.COM

   De meme, si un utilisateur a dans son repertoire des lignes de la forme:

 % cat ~/.klogin
 jane@EXAMPLE.COM
 jack@EXAMPLE.COM

   Cela permet `a quiconque dans le domaine EXAMPLE.COM s'etant authentifie
   en tant que jane ou jack (via kinit, voir plus haut) d'acceder avec
   rlogin(1) au compte de jane ou `a ses fichiers sur le systeme (grunt) via
   rlogin(1), rsh(1) ou rcp(1).

   Par exemple, jane ouvre maintenant une session sur un autre systeme en
   utilisant Kerberos:

 % kinit
 MIT Project Athena (grunt.example.com)
 Password:
 % rlogin grunt
 Last login: Mon May  1 21:14:47 from grumble
 Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
         The Regents of the University of California.   All rights reserved.

 FreeBSD BUILT-19950429 (GR386) #0: Sat Apr 29 17:50:09 SAT 1995

   Ou bien jack ouvre une session sur le compte de jane sur la meme machine
   (jane ayant modifie son fichier .klogin comme decrit plus haut, et la
   personne an charge de Kerberos ayant defini une entree principale jack
   sans instance):

 % kinit
 % rlogin grunt -l jane
 MIT Project Athena (grunt.example.com)
 Password:
 Last login: Mon May  1 21:16:55 from grumble
 Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
         The Regents of the University of California.   All rights reserved.
 FreeBSD BUILT-19950429 (GR386) #0: Sat Apr 29 17:50:09 SAT 1995

14.8. Kerberos5 ** Traduction en Cours **

   Contribution de Tillman Hodgson.
   Based on a contribution by Mark Murray.

14.9. OpenSSL

   Ecrit par Tom Rhodes.

   Une des caracteristiques que de nombreux utilisateurs ignorent souvent est
   la presence des outils OpenSSL dans le systeme FreeBSD. OpenSSL fournit
   une couche de transport des donnees chiffree par-dessus la couche de
   communication, lui permettant ainsi d'etre liee `a de nombreux services et
   applications reseau.

   Les applications d'OpenSSL pourront etre l'authentification chiffree de
   clients de messagerie, les transactions via le Web comme les paiements par
   carte bancaire et bien plus encore. De nombreux logiciels portes tels que
   www/apache13-ssl, et mail/sylpheed-claws offriront un support pour OpenSSL
   lors de leur compilation.

  Note:

   Dans la plupart des cas le catalogue des logiciels portes tentera de
   compiler le logiciel porte security/openssl `a moins que la variable
   make(1) WITH_OPENSSL_BASE ne soit explicitement fixee `a la valeur
   << yes >>.

   La version d'OpenSSL fournie avec FreeBSD supporte les protocoles de
   securite reseau Secure Sockets Layer v2/v3 (SSLv2/SSLv3), et Transport
   Layer Security v1 (TLSv1) et peut etre utilisee comme bibliotheque de
   chiffrement d'usage general.

  Note:

   Bien que OpenSSL supporte l'algorithme IDEA, il est desactive par defaut
   en raison des problemes de brevets aux USA. Pour l'utiliser, le texte de
   la licence devrait etre consulte et si les termes de cette licence sont
   acceptables, la variable MAKE_IDEA doit etre activee dans le fichier
   make.conf.

   Une des utilisations les plus courantes d'OpenSSL est de fournir des
   certificats utilisables avec des applications logicielles. Ces certificats
   assurent que les references de la societe ou d'un individu sont valides et
   non frauduleuses. Si le certificat en question n'a pas ete verifie par une
   des nombreuses << autorite de certification >> (<< Certificate
   Authorities >>) ou CAs, une alerte est generalement produite. Une autorite
   de certification est une societe, comme VeriSign, qui signera les
   certificats afin de valider les references d'individus ou de societes. Ce
   processus a un cout et n'est pas obligatoire pour utiliser des
   certificats, cependant cela pourra mettre plus `a l'aise les utilisateurs
   les plus paranoiaques.

  14.9.1. Generer des certificats

   Pour generer un certificat, la commande suivante est disponible:

 # openssl req -new -nodes -out req.pem -keyout cert.pem
 Generating a 1024 bit RSA private key
 ................++++++
 .......................................++++++
 writing new private key to 'cert.pem'
 -----
 You are about to be asked to enter information that will be incorporated
 into your certificate request.
 What you are about to enter is what is called a Distinguished Name or a DN.
 There are quite a few fields but you can leave some blank
 For some fields there will be a default value,
 If you enter '.', the field will be left blank.
 -----
 Country Name (2 letter code) [AU]:US
 State or Province Name (full name) [Some-State]:PA
 Locality Name (eg, city) []:Pittsburgh
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:My Company
 Organizational Unit Name (eg, section) []:Systems Administrator
 Common Name (eg, YOUR name) []:localhost.example.org
 Email Address []:trhodes@FreeBSD.org

 Please enter the following 'extra' attributes
 to be sent with your certificate request
 A challenge password []:SOME PASSWORD
 An optional company name []:Another Name

   Notez la reponse `a la question << Common Name >> qui est un nom de
   domaine. Cette question demande l'entree d'un serveur de noms `a des fins
   de verification; entrer autre chose qu'un nom de domaine produira un
   certificat inutilisable. D'autres options sont disponibles comme par
   exemple: la date d'expiration, des algorithmes de chiffrement alternatifs,
   etc. Une liste complete peut etre obtenue en consultant la page de manuel
   openssl(1).

   Deux fichiers doivent maintenant etre presents dans le repertoire dans
   lequel la commande a ete executee. La demande de certificat, req.pem, peut
   etre envoyee `a une autorite de certification qui validera les references
   que vous avez saisies, signera la demande et vous retournera le
   certificat. Le deuxieme fichier s'appellera cert.pem et sera la cle privee
   du certificat et devra etre `a tout prix protegee; si ce fichier tombe
   dans d'autres mains, il pourra etre utilise pour imiter votre identite (ou
   votre serveur).

   Pour les cas ou une signature d'une CA n'est pas indispensable, un
   certificat auto-signe peut etre cree. Generez tout d'abord la cle RSA:

 # openssl dsaparam -rand -genkey -out myRSA.key 1024

   Generez ensuite la cle de la CA:

 # openssl gendsa -des3 -out myca.key myRSA.key

   Utilisez cette cle pour creer le certificat:

 # openssl req -new -x509 -days 365 -key myca.key -out new.crt

   Deux fichiers devraient etre presents maintenant dans le repertoire: un
   fichier de signature de l'autorite de certification, myca.key, et le
   certificat lui-meme, new.crt. Ces fichiers doivent etre places dans un
   repertoire, de preference sous /etc, qui est uniquement lisible que par
   root. Les permissions 0700 devraient convenir et peuvent etre fixees `a
   l'aide de l'utilitaire chmod.

  14.9.2. Utilisation des certificats, un exemple

   A quoi peuvent servir ces fichiers? Un bon exemple serait le chiffrage des
   connexions au MTA sendmail. Cela permettra de faire disparaitre
   l'utilisation d'une authentification en clair pour les utilisateurs qui
   envoient du courrier via le MTA local.

  Note:

   Ce n'est pas la meilleure utilisation au monde etant donne que certains
   clients de messagerie afficheront une erreur si le certificat n'a pas ete
   installe localement. Reportez-vous `a la documentation du logiciel pour
   plus d'information sur l'installation de certificats.

   Les lignes suivantes doivent etre ajoutees dans le fichier .mc local:

 dnl SSL Options
 define(`confCACERT_PATH',`/etc/certs')dnl
 define(`confCACERT',`/etc/certs/new.crt')dnl
 define(`confSERVER_CERT',`/etc/certs/new.crt')dnl
 define(`confSERVER_KEY',`/etc/certs/myca.key')dnl
 define(`confTLS_SRV_OPTIONS', `V')dnl

   Ou /etc/certs/ est le repertoire `a utiliser pour stocker localement les
   certificats et les cles. La derniere condition necessaire etant une
   reconstruction du fichier .cf. Cela se fait facilement en tapant make
   install `a l'interieur du repertoire /etc/mail. Suivi d'un make restart
   qui devrait relancer le << daemon >> sendmail.

   Si tout s'est bien passe il n'y aura pas de message d'erreur dans le
   fichier /var/log/maillog et sendmail apparaitra dans la liste des
   processus.

   Comme test simple, connectez vous au serveur de messagerie `a l'aide de
   l'utilitaire telnet(1):

 # telnet example.com 25
 Trying 192.0.34.166...
 Connected to example.com.
 Escape character is '^]'.
 220 example.com ESMTP Sendmail 8.12.10/8.12.10; Tue, 31 Aug 2004 03:41:22 -0400 (EDT)
 ehlo example.com
 250-example.com Hello example.com [192.0.34.166], pleased to meet you
 250-ENHANCEDSTATUSCODES
 250-PIPELINING
 250-8BITMIME
 250-SIZE
 250-DSN
 250-ETRN
 250-AUTH LOGIN PLAIN
 250-STARTTLS
 250-DELIVERBY
 250 HELP
 quit
 221 2.0.0 example.com closing connection
 Connection closed by foreign host.

   Si la ligne << STARTTLS >> apparait dans la sortie, cela signifie alors
   que tout fonctionne correctement.

14.10. IPsec

   Contribution de Yoshinobu Inoue.

  Caracteres de terminaison:

   Dans tous les exemples de cette section, et d'autres sections, vous
   remarquerez qu'il y aura un "^D" `a la fin de certains exemples. Cela
   signifie qu'il faut maintenir la touche Ctrl enfoncee et appuyer sur la
   touche D. Un autre caractere couramment utilise est "^C", qui signifie de
   maintenir enfonce la touche Ctrl et d'appuyer sur C.

  Astuce:

   Pour d'autres documents detaillant l'implementation d'IPsec, jetez un oeil
   `a http://www.daemonnews.org/200101/ipsec-howto.html et
   http://www.freebsddiary.org/ipsec.php.

   Le mecanisme IPsec fournit des communications securisees sur couche IP ou
   `a travers les sockets. Cette section explique comment l'utiliser. Pour
   des details concernant l'implementation d'IPsec, reportez-vous au Manuel
   du developpeur.

   L'implementation actuelle d'IPsec supporte le mode transport et le mode
   tunnel. Cependant, il y a des restrictions au mode tunnel.
   http://www.kame.net/newsletter/ fournit des exemples plus exhaustifs.

   Soyez informe que pour utiliser cette fonctionnalite, vous devez avoir les
   options suivantes presentes dans votre fichier de configuration du noyau:

 options          IPSEC              #IP security
 options          IPSEC_ESP          #IP security (crypto; define w/IPSEC)

  14.10.1. Exemple en mode transport avec IPv4

   Configurons une association de securite pour deployer un canal securise
   entre la Machine A (10.2.3.4) et la Machine B (10.6.7.8). Notre exemple
   est un peu complique. De A vers B, nous n'utilisons que l'ancien AH. De B
   vers A, le nouvel AH et le nouvel ESP sont combines.

   Nous devons maintenant choisir les algorithmes correspondant `a
   "AH"/"nouvel AH"/"ESP"/ "nouvel ESP". Reportez-vous `a la page de manuel
   setkey(8) pour connaitre les noms des algorithmes. Nous utiliserons MD5
   pour AH, new-HMAC-SHA1 pour le nouvel AH, et new-DES-expIV avec 8 octets
   IV pour le nouvel ESP.

   La longueur de la cle depend de chaque algorithme. Par exemple, elle doit
   etre egale `a 16 octets pour MD5, 20 pour new-HMAC-SHA1, et 8 pour
   new-DES-expIV. Nous choisissons maintenant "MYSECRETMYSECRET",
   "KAMEKAMEKAMEKAMEKAME", "PASSWORD", respectivement.

   Definissons maintenant le SPI (Security Parameter Index) pour chaque
   protocole. Remarquez qu'il nous faut 3 SPIs pour ce canal securise
   puisqu'il y aura trois entetes de securite (une de la Machine A vers la
   Machine B et deux de la Machine B vers la Machine A). Notez egalement que
   les SPIs doivent etre superieurs `a 256. Nous choisirions 1000, 2000 et
   3000 respectivement.

                   (1)
         Machine A ------> Machine B

         (1)PROTO=AH
                 ALG=MD5(RFC1826)
                 KEY=MYSECRETMYSECRET
                 SPI=1000

                    (2.1)
         Machine A <------ Machine B
                   <------
                    (2.2)

         (2.1)
         PROTO=AH
                 ALG=new-HMAC-SHA1(new AH)
                 KEY=KAMEKAMEKAMEKAMEKAME
                 SPI=2000

         (2.2)
         PROTO=ESP
                 ALG=new-DES-expIV(new ESP)
                         IV length = 8
                 KEY=PASSWORD
                 SPI=3000

   Maintenant, definissons l'association de securite. Executons setkey(8) sur
   la Machine A et la Machine B:

 # setkey -c
     add 10.2.3.4 10.6.7.8 ah-old  1000 -m transport -A keyed-md5 "MYSECRETMYSECRET" ;
     add 10.6.7.8 10.2.3.4 ah  2000 -m transport -A hmac-sha1 "KAMEKAMEKAMEKAMEKAME" ;
     add 10.6.7.8 10.2.3.4 esp 3000 -m transport -E des-cbc "PASSWORD" ;
     ^D

   En fait, la communication IPsec n'aura pas lieu avant que les entrees de
   politique de securite ne soient definies. Dans notre cas, il faut le faire
   sur les deux machines.

 Cote A:

 # setkey -c
     spdadd 10.2.3.4 10.6.7.8 any -P out ipsec
         ah/transport/10.2.3.4-10.6.7.8/require ;
     ^D

 Cote B:

 # setkey -c
     spdadd 10.6.7.8 10.2.3.4 any -P out ipsec
         esp/transport/10.6.7.8-10.2.3.4/require ;
     spdadd 10.6.7.8 10.2.3.4 any -P out ipsec
         ah/transport/10.6.7.8-10.2.3.4/require ;
     ^D


    Machine A --------------------------> Machine E
    10.2.3.4                               10.6.7.8
       |                                     |
       ========= ancien AH keyed-md5 ========>

       <======== nouveau AH hmac-sha1 ========
       <======== nouveau ESP des-cbc =========

  14.10.2. Exemple en mode transport avec IPv6

   Un autre exemple utilisant IPv6.

   Le mode de transport ESP est recommande pour le port TCP numero 110 entre
   la Machine-A et la Machine-B.

               ============ ESP ============
               |                           |
           Machine-A                   Machine-B
           fec0::10 -------------------- fec0::11

   L'algorithme de chiffrement est blowfish-cbc avec la cle "kamekame", et
   l'algorithme d'authentification est hmac-sha1 avec la cle "this is the
   test key". Configuration de la Machine-A:

 # setkey -c <<EOF
     spdadd fec0::10[any] fec0::11[110] tcp -P out ipsec
         esp/transport/fec0::10-fec0::11/use ;
     spdadd fec0::11[110] fec0::10[any] tcp -P in ipsec
         esp/transport/fec0::11-fec0::10/use ;
     add fec0::10 fec0::11 esp 0x10001
         -m transport
         -E blowfish-cbc "kamekame"
         -A hmac-sha1 "this is the test key" ;
     add fec0::11 fec0::10 esp 0x10002
         -m transport
         -E blowfish-cbc "kamekame"
         -A hmac-sha1 "this is the test key" ;
     EOF

   et de la Machine-B:

 # setkey -c <<EOF
     spdadd fec0::11[110] fec0::10[any] tcp -P out ipsec
         esp/transport/fec0::11-fec0::10/use ;
     spdadd fec0::10[any] fec0::11[110] tcp -P in ipsec
         esp/transport/fec0::10-fec0::11/use ;
     add fec0::10 fec0::11 esp 0x10001 -m transport
         -E blowfish-cbc "kamekame"
         -A hmac-sha1 "this is the test key" ;
     add fec0::11 fec0::10 esp 0x10002 -m transport
         -E blowfish-cbc "kamekame"
         -A hmac-sha1 "this is the test key" ;
     EOF

   Remarquez la direction de SP.

  14.10.3. Exemple en mode tunnel avec IPv4

   Mode tunnel entre deux passerelles de securite

   Le protocole de securite est l'ancien mode tunnel AH, i.e. specifie par la
   RFC1826, avec keyed-md5 comme algorithme d'authentification et "this is
   the test" comme cle.

                              ======= AH =======
                              |                |
          Reseau-A       Passerelle-A     Passerelle-B       Reseau-B
         10.0.1.0/24 ---- 172.16.0.1 ----- 172.16.0.2 ---- 10.0.2.0/24

   Configuration de la Passerelle-A:

 # setkey -c <<EOF
     spdadd 10.0.1.0/24 10.0.2.0/24 any -P out ipsec
         ah/tunnel/172.16.0.1-172.16.0.2/require ;
     spdadd 10.0.2.0/24 10.0.1.0/24 any -P in ipsec
         ah/tunnel/172.16.0.2-172.16.0.1/require ;
     add 172.16.0.1 172.16.0.2 ah-old 0x10003 -m any
         -A keyed-md5 "this is the test" ;
     add 172.16.0.2 172.16.0.1 ah-old 0x10004 -m any
         -A keyed-md5 "this is the test" ;

 EOF

   Si le numero de port n'est pas precise comme ci-dessus, alors [any] est
   utilise. -m definit le mode de SA `a utiliser. -m any signifie tout mode
   de protocole de securite. Vous pouvez utiliser cette SA `a la fois en mode
   transport et en mode tunnel.

   et de la Passerelle-B:

 # setkey -c <<EOF
     spdadd 10.0.2.0/24 10.0.1.0/24 any -P out ipsec
         ah/tunnel/172.16.0.2-172.16.0.1/require ;
     spdadd 10.0.1.0/24 10.0.2.0/24 any -P in ipsec
         ah/tunnel/172.16.0.1-172.16.0.2/require ;
     add 172.16.0.1 172.16.0.2 ah-old 0x10003 -m any
         -A keyed-md5 "this is the test" ;
     add 172.16.0.2 172.16.0.1 ah-old 0x10004 -m any
         -A keyed-md5 "this is the test" ;

 EOF

   Etablir une SA regroupee entre deux passerelles de securite

   On desire le mode de transport AH et le mode tunnel ESP entre Passerelle-A
   et Passerelle-B. Dans ce cas, on applique d'abord le mode tunnel ESP puis
   le mode de transport AH.

                             ========== AH =========
                             |  ======= ESP =====  |
                             |  |               |  |
        Reseau-A         Passerelle-A        Passerelle-B        Reseau-B
     fec0:0:0:1::/64 --- fec0:0:0:1::1 ---- fec0:0:0:2::1 --- fec0:0:0:2::/64

  14.10.4. Exemple en mode tunnel avec IPv6

   L'algorithme de chiffrement est 3des-cbc, et l'algorithme
   d'authentification est hmac-sha1. L'algorithme d'authentification pour AH
   est hmac-md5. Configuration de la Passerelle-A:

 # setkey -c <<EOF
     spdadd fec0:0:0:1::/64 fec0:0:0:2::/64 any -P out ipsec
         esp/tunnel/fec0:0:0:1::1-fec0:0:0:2::1/require
         ah/transport/fec0:0:0:1::1-fec0:0:0:2::1/require ;
     spdadd fec0:0:0:2::/64 fec0:0:0:1::/64 any -P in ipsec
         esp/tunnel/fec0:0:0:2::1-fec0:0:0:1::1/require
         ah/transport/fec0:0:0:2::1-fec0:0:0:1::1/require ;
     add fec0:0:0:1::1 fec0:0:0:2::1 esp 0x10001 -m tunnel
         -E 3des-cbc "kamekame12341234kame1234"
         -A hmac-sha1 "this is the test key" ;
     add fec0:0:0:1::1 fec0:0:0:2::1 ah 0x10001 -m transport
         -A hmac-md5 "this is the test" ;
     add fec0:0:0:2::1 fec0:0:0:1::1 esp 0x10001 -m tunnel
         -E 3des-cbc "kamekame12341234kame1234"
         -A hmac-sha1 "this is the test key" ;
     add fec0:0:0:2::1 fec0:0:0:1::1 ah 0x10001 -m transport
         -A hmac-md5 "this is the test" ;

     EOF

   Etablir des SAs avec les differentes extremites

   On desire un mode tunnel ESP entre Machine-A et Passerelle-A. L'algorithme
   de chiffrement est cast128-cbc, et l'algorithme d'authentification pour
   ESP est hmac-sha1. Le mode de transport ESP est recommande entre Machine-A
   et Machine-B. L'algorithme de chiffrement est rc5-cbc, et l'algorithme
   d'authentification pour ESP est hmac-md5.

               ================== ESP =================
               |  ======= ESP =======                 |
               |  |                 |                 |
             Machine-A        Passerelle-A         Machine-B
           fec0:0:0:1::1 ---- fec0:0:0:2::1 ---- fec0:0:0:2::2

   Configuration de la Machine-A:

 # setkey -c <<EOF
     spdadd fec0:0:0:1::1[any] fec0:0:0:2::2[80] tcp -P out ipsec
         esp/transport/fec0:0:0:1::1-fec0:0:0:2::2/use
         esp/tunnel/fec0:0:0:1::1-fec0:0:0:2::1/require ;
     spdadd fec0:0:0:2::1[80] fec0:0:0:1::1[any] tcp -P in ipsec
         esp/transport/fec0:0:0:2::2-fec0:0:0:l::1/use
         esp/tunnel/fec0:0:0:2::1-fec0:0:0:1::1/require ;
     add fec0:0:0:1::1 fec0:0:0:2::2 esp 0x10001
         -m transport
         -E cast128-cbc "12341234"
         -A hmac-sha1 "this is the test key" ;
     add fec0:0:0:1::1 fec0:0:0:2::1 esp 0x10002
         -E rc5-cbc "kamekame"
         -A hmac-md5 "this is the test" ;
     add fec0:0:0:2::2 fec0:0:0:1::1 esp 0x10003
         -m transport
         -E cast128-cbc "12341234"
         -A hmac-sha1 "this is the test key" ;
     add fec0:0:0:2::1 fec0:0:0:1::1 esp 0x10004
         -E rc5-cbc "kamekame"
         -A hmac-md5 "this is the test" ;

     EOF

14.11. OpenSSH

   Contribution de Chern Lee.

   OpenSSH est un ensemble d'outils de connexion reseau utilises pour acceder
   `a des machines distantes de fac,on securisee. Ils peuvent etre utilises
   comme remplac,ants directs de rlogin, rsh, rcp, et telnet. De plus,
   OpenSSH peut securiser n'importe quelle connexion TCP/IP via un tunnel.
   OpenSSH chiffre tout le trafic de fac,on `a dejouer les ecoutes reseau,
   les prises de controle de connexion, et aux attaques au niveau du reseau.

   OpenSSH est maintenu par le projet OpenBSD, et est base sur SSH v1.2.12
   avec tous les recentes corrections et mises `a jour. Il est compatible
   avec les protocoles SSH 1 et 2. OpenSSH est present dans le systeme de
   base depuis FreeBSD 4.0.

  14.11.1. Les avantages `a utiliser OpenSSH

   Normalement, quand on utilise telnet(1) ou rlogin(1), les donnees sont
   envoyees sur le reseau en clair, sous forme non chiffree. Des "renifleurs
   de paquets" places n'importe ou entre le client et le serveur peuvent
   prendre connaissance de votre nom d'utilisateur, de votre mot de passe et
   des donnees transmises lors de votre session. OpenSSH offre une variete de
   methodes d'authentification et de chiffrage pour eviter ce genre de
   probleme.

  14.11.2. Activer sshd

   Assurez-vous d'ajouter la ligne suivante `a votre fichier rc.conf:

 sshd_enable="YES"

   Cela chargera le "daemon" ssh `a l'initialisation suivante du systeme.
   Alternativement, vous pouvez tout simplement executer le "daemon" sshd
   directement en tapant sshd sur la ligne de commande.

  14.11.3. Client SSH

   L'utilitaire ssh(1) fonctionne de la meme maniere que rlogin(1):

 # ssh user@example.com
 Host key not found from the list of known hosts.
 Are you sure you want to continue connecting (yes/no)? yes
 Host 'example.com' added to the list of known hosts.
 user@example.com's password: *******

   L'ouverture de session se poursuit comme si elle avait lancee par
   rlogin(1) ou telnet(1). Le systeme SSH utilise un systeme d'empreinte de
   cle pour verifier l'authenticite du serveur quand le client se connecte.
   L'utilisateur est invite `a entrer yes uniquement `a la premiere
   connexion. Lors des futures connexions, l'empreinte de la cle sauvegarde
   est verifiee. Le client SSH vous avertira si l'empreinte sauvee differe de
   l'empreinte rec,ue lors de futures tentatives de connexion. Les empreintes
   sont sauvees dans le fichier ~/.ssh/known_hosts, ou ~/.ssh/known_hosts2
   pour les empreintes du protocole SSH 2.

   Par defaut, les serveurs OpenSSH sont configures pour accepter les
   connexions dans les deux protocoles SSH 1 et 2. Le client peut, cependant,
   choisir entre les deux. Le protocole 2 est connu pour etre plus robuste et
   plus securise que son predecesseur.

   ssh peut etre force `a utilise l'un des protocole en passant l'argument -1
   ou -2 pour le protocole 1 ou 2 respectivement.

  14.11.4. Copie securisee

   La commande scp(1) fonctionne de la meme maniere que rcp(1); elle copie un
   fichier vers ou `a partir d'une machine distante `a la difference qu'elle
   le fait d'une fac,on securise.

 #  scp user@example.com:/COPYRIGHT COPYRIGHT
 user@example.com's password: *******
 COPYRIGHT            100% |*****************************|  4735
 00:00
 #

   Puisque l'empreinte a dej`a ete sauvee pour cette machine dans l'exemple
   precedent, cela se verifie ici quand on utilise scp(1).

   Les arguments passes `a scp(1) sont similaires `a ceux de cp(1), avec le
   ou les fichiers en premier argument, et la destination en second. Puisque
   que le fichier est copie via le reseau, par l'intermediaire de SSH, un ou
   plusieurs des arguments prennent la forme
   utilisateur@machine_distante:<chemin_du_fichier>.

  14.11.5. Configuration

   Les fichiers de configuration general au systeme pour le "daemon" et le
   client OpenSSH resident dans le repertoire /etc/ssh.

   ssh_config permet de parametrer le client, tandis que sshd_config s'occupe
   de la configuration du "daemon".

   De plus, les options sshd_program (/usr/sbin/sshd par defaut), et
   sshd_flags du fichier rc.conf peut fournir un niveau supplementaire de
   configuration.

  14.11.6. ssh-keygen

   Au lieu d'utiliser des mots de passe, ssh-keygen(1) peut etre employe pour
   generer des cles RSA pour authentifier un utilisateur:

 % ssh-keygen -t rsa1
 Initializing random number generator...
 Generating p:  .++ (distance 66)
 Generating q:  ..............................++ (distance 498)
 Computing the keys...
 Key generation complete.
 Enter file in which to save the key (/home/user/.ssh/identity):
 Enter passphrase:
 Enter the same passphrase again:
 Your identification has been saved in /home/user/.ssh/identity.
 ...

   ssh-keygen(1) creera une paire de cles publique et privee `a utiliser pour
   l'authentification. La cle privee est stockee dans le fichier
   ~/.ssh/identity, alors que la cle publique l'est dans le fichier
   ~/.ssh/identity.pub. La cle publique doit etre placee dans le fichier
   ~/.ssh/authorized_keys sur la machine distante pour que cela fonctionne.

   Ceci autorisera les connexions sur la machine distante en utilisant
   l'authentification RSA `a la place des mots de passe.

  Note:

   L'option -t rsa1 creera des cles RSA pour le protocole SSH 1. Si vous
   desirez utiliser des cles RSA avec le protocole SSH 2, vous devez employer
   la commande ssh-keygen -t rsa.

   Si une phrase d'authentification est utilisee avec ssh-keygen(1),
   l'utilisateur se verra demande d'entrer un mot de passe `a chaque
   utilisation de la cle prive.

   Une cle DSA SSH protocole 2 peut etre creee pour le meme objectif en
   utilisant la commande ssh-keygen -t dsa. Cela creera une paire de cles DSA
   pour les sessions SSH utilisant le protocole 2. La cle publique est
   conservee dans ~/.ssh/id_dsa.pub, tandis que la cle privee se trouve dans
   ~/.ssh/id_dsa.

   Les cles publiques DSA sont placees dans le fichier ~/.ssh/authorized_keys
   sur la machine distante.

   ssh-agent(1) et ssh-add(1) sont des utilitaires employes pour la gestion
   de multiples cles privees protegees par mots de passe.

  Avertissement:

   Les divers fichiers et options peuvent etre differents selon la version
   d'OpenSSH dont vous disposez, pour eviter les problemes vous devez
   consultez la page de manuel ssh-keygen(1).

  14.11.7. Tunnels SSH

   OpenSSH a la capacite de creer un tunnel pour encapsuler un autre
   protocole dans une session chiffree.

   La commande suivante demande `a ssh(1) de creer un tunnel pour telnet:

 % ssh -2 -N -f -L 5023:localhost:23 user@foo.example.com
 %

   La commande ssh est utilisee avec les options suivantes:

   -2

           Force ssh `a utiliser la version du protocole (`a ne pas utiliser
           si vous travaillez avec de vieux serveurs SSH).

   -N

           N'execute aucune commande `a distance, ou mode se place en mode
           tunnel. Si cette option est omise ssh initiera une session
           normale.

   -f

           Force ssh `a s'executer en arriere-plan.

   -L

           Specifie un tunnel local de la maniere
           port_local:machine_distante:port_distant.

   user@foo.example.com

           Le serveur SSH distant.

   Un tunnel SSH fonctionne grace `a l'allocation d'une "socket" qui ecoute
   sur le port specifie de la machine localhost. Il transfere ensuite toute
   connexion rec,ue sur la/le machine/port local(e) via la connexion SSH vers
   la machine et le port distants specifies.

   Dans l'exemple, le port 5023 sur la machine locale transfere toute
   connexion sur ce port vers le port 23 de la machine distante (le localhost
   de la commande). Puisque le port 23 est celui de telnet, cela creerai une
   session telnet securisee par l'intermediaire d'un tunnel SSH.

   Cela peut etre utilise pour encapsuler n'importe quel nombre de protocoles
   TCP non securise comme SMTP, POP3, FTP, etc.

   Exemple 14.1. Utiliser SSH pour creer un tunnel securise pour SMTP

 % ssh -2 -N -f -L 5025:localhost:25 user@mailserver.example.com
 user@mailserver.example.com's password: *****
 % telnet localhost 5025
 Trying 127.0.0.1...
 Connected to localhost.
 Escape character is '^]'.
 220 mailserver.example.com ESMTP

   Ceci peut etre utilise en conjonction avec ssh-keygen(1) et des comptes
   utilisateurs supplementaires pour la creation et l'acces au tunnel SSH
   sans trop de probleme. Des cles peuvent etre utilisees `a la place de la
   saisie d'un mot de passe, et les tunnels peuvent etre executes sous un
   utilisateur separe.

    14.11.7.1. Exemples pratiques de tunnels SSH

      14.11.7.1.1. Acces securise `a un serveur POP3

   Au travail, il y a un serveur SSH qui accepte les connexions de
   l'exterieur. Sur le meme reseau d'entreprise reside un serveur de courrier
   electronique faisant fonctionner un serveur POP3. Le reseau ou le chemin
   entre chez vous et le bureau peut ou peut ne pas etre completement sur.
   Pour cette raison, vous devez recuperer votre courrier electronique d'une
   fac,on securisee. La solution est de creer une connexion SSH vers le
   serveur SSH de votre entreprise, et d'utiliser ce tunnel vers le serveur
   de courrier.

 % ssh -2 -N -f -L 2110:mail.example.com:110 user@ssh-server.example.com
 user@ssh-server.example.com's password: ******

   Quand le tunnel est configure et fonctionne, vous pouvez demander `a votre
   client de courrier electronique d'envoyer ses requetes POP3 sur le port
   2110 de la machine locale: localhost. Les connexions seront transferees de
   fac,on securise `a travers le tunnel jusqu'`a mail.example.com.

      14.11.7.1.2. Passer `a travers un coupe-feu restrictif

   Certains administrateurs reseau imposent des regles draconiennes au niveau
   du coupe-feu, filtrant non seulement les connexions entrantes, mais
   egalement les connexions sortantes. Il se peut que vous n'ayez acces
   qu'aux ports 22 et 80 de machines distantes pour SSH ou la navigation
   Internet.

   Vous pouvez vouloir acceder `a un autre (n'ayant peut-etre aucun rapport
   avec votre travail) service, comme un serveur Ogg Vorbis pour ecouter de
   la musique. Si le serveur Ogg Vorbis diffuse ("streaming") ses donnees `a
   partir d'un port different des ports 22 ou 80, vous ne serez alors pas en
   mesure d'y acceder.

   La solution est de creer une connexion SSH vers une machine `a l'exterieur
   du reseau protege par le coupe-feu, et l'utiliser pour creer un tunnel
   vers le serveur Ogg Vorbis.

 % ssh -2 -N -f -L 8888:music.example.com:8000 user@unfirewalled-system.example.org
 user@unfirewalled-system.example.org's password: *******

   Vous pouvez maintenant faire pointer votre client pour la recuperation du
   flux de donnees sur le port 8888 de la machine locale, qui sera transfere
   jusqu'au port 8000 de la machine music.example.com, passant ainsi outre
   les restrictions du coupe-feu.

  14.11.8. Lectures supplementaires

   OpenSSH

   ssh(1) scp(1) ssh-keygen(1) ssh-agent(1) ssh-add(1)

   sshd(8) sftp-server(8)

14.12. Listes de controle d'acces au systeme de fichiers

   Contribution de Tom Rhodes.

   Avec les ameliorations des systemes de fichiers comme les "snapshots",
   FreeBSD 5.0 et versions suivantes offrent une nouveaute en matiere de
   securite: les listes de controle d'acces au systeme de fichiers (ACLs -
   "Access Control Lists").

   Les listes de controle d'acces etendent le systeme de permission standard
   d'UNIX d'une maniere hautement compatible (POSIX.1e). Cette
   caracteristique permet `a un administrateur d'utiliser avantageusement un
   modele de securite plus sophistique.

   Pour activer le support ACL pour les systemes de fichiers UFS, ce qui
   suit:

 options UFS_ACL

   doit etre compile dans le noyau. Si cette option n'a pas ete ajoutee, un
   avertissement sera affiche lors d'une tentative de montage d'un systeme de
   fichiers supportant les ACLs. Cette option est presente dans le noyau
   GENERIC. Les ACLs reposent sur des attributs etendus rajoutes au systeme
   de fichiers. Les attributs etendus sont nativement supportes par la
   prochaine generation du systeme de fichiers UNIX, UFS2.

  Note:

   Un supplement de travail d'administration est requis pour configurer les
   attributs etendus sous UFS1 par rapport `a UFS2. Les performances des
   attributs etendus sous UFS2 sont sensiblement meilleures egalement. Il en
   resulte donc, que l'UFS2 est generalement recommande par rapport `a l'UFS1
   pour une utilisation des listes de controle d'acces.

   Les ACLs sont actives grace l'option utilisee lors du montage, acls, qui
   peut etre ajoute dans le fichier /etc/fstab. Cette option de montage peut
   etre egalement automatiquement fixee d'une maniere definitive en utilisant
   tunefs(8) pour modifier l'indicateur ACL du "superblock" dans l'entete du
   systeme de fichiers. Il est en general preferable d'utiliser cet
   indicateur pour plusieurs raisons:

     * L'option de montage pour les ACLs ne peut etre modifiee par un simple
       remontage (mount(8) -u), mais uniquement par un umount(8) complet et
       suivi d'un mount(8). Cela signifie que les ACLs ne peuvent etre
       activees sur le systeme de fichiers racine apres le demarrage. Cela
       signifie egalement que vous ne pouvez pas modifier la disposition d'un
       systeme de fichier une fois que c'est active.

     * Positionner l'indicateur du "superblock" fera que le systeme de
       fichiers sera toujours monte avec les ACLs activees meme s'il n'y a
       pas d'entree dans le fichier fstab, ou s'il y a une reorganisation des
       peripheriques. Cela previent le montage accidentel du systeme de
       fichiers sans les ACLs activees, ce qui peut provoquer une activation
       impropre des ACLs et par consequent des problemes de securite.

  Note:

   Nous pourrions modifier le comportement des ACLs pour permettre
   l'activation de l'indicateur sans le besoin d'un nouveau mount(8) complet,
   mais nous considerons qu'il est preferable d'eviter un montage accidentel
   sans les ACLs activees, parce que vous pouvez vous "tirer facilement dans
   les pieds" si vous activez les ACLs, puis les desactivez, et ensuite les
   reactivez `a nouveau sans reinitialiser les attributs etendus. En general,
   une fois que vous avez active les ACLs sur un systeme de fichiers, elles
   ne devraient pas etre desactivees etant donne que les protections de
   fichiers resultantes peuvent ne pas etre compatible avec celles prevues
   par les utilisateurs du systeme, et reactiver les ACLs peut reaffecter les
   precedentes ACLs aux fichiers qui ont depuis eut leur permissions
   modifiees, avec pour resultat un comportement imprevisible.

   Les systemes de fichiers avec les ACLs activees presenteront un signe + au
   niveau de leurs permissions quand elles seront affichees. Par exemple:

 drwx------  2 robert  robert  512 Dec 27 11:54 private
 drwxrwx---+ 2 robert  robert  512 Dec 23 10:57 directory1
 drwxrwx---+ 2 robert  robert  512 Dec 22 10:20 directory2
 drwxrwx---+ 2 robert  robert  512 Dec 27 11:57 directory3
 drwxr-xr-x  2 robert  robert  512 Nov 10 11:54 public_html

   Ici nous voyons que les repertoires directory1, directory2, et directory3
   utilisent les ACLs. Ce n'est pas le cas du repertoire public_html.

  14.12.1. Utilisation des ACLs

   Les ACLs peuvent etre affichees par l'utilitaire getfacl(1). Par exemple
   pour voir les ACLs sur le fichier test, on utilisera la commande:

 % getfacl test
         #file:test
         #owner:1001
         #group:1001
         user::rw-
         group::r--
         other::r--

   Pour modifier le parametrage des ACLs sur ce fichier, invoquez la commande
   setfacl(1). Interessons-nous `a la ligne:

 % setfacl -k test

   L'indicateur -k supprimera toutes les ACLs actuellement definies pour un
   fichier ou un systeme de fichiers. Une methode plus adaptee est d'utiliser
   l'option -b etant donne qu'elle conserve les champs de base necessaires au
   bon fonctionnement des ACLs.

 % setfacl -m u:trhodes:rwx,group:web:r--,o::--- test

   Dans la commande ci-dessus, l'option -m a ete utilisee pour modifier les
   entrees ACL par defaut. Comme il n'y avait pas d'entrees pre-definies,
   puisqu'elles ont ete supprimees par la commande precedente, cela
   restaurera les options par defaut et prendra en compte les options
   precisees. Prenez soin de noter que si vous ajoutez un utilisateur ou un
   groupe qui n'existe pas sur le systeme, une erreur Invalid argument sera
   affichee sur la sortie standard.

14.13. Surveillance des problemes de securite relatifs aux programmes
tierce-partie

   Contribution de Tom Rhodes.

   Ces dernieres annees, le monde de la securite a fait beaucoup de progres
   dans la maniere d'evaluer les vulnerabilites. Le risque d'une intrusion
   dans le systeme augmente avec l'installation et la configuration
   d'utilitaires tierce-partie et cela pour quasiment n'importe quel systeme
   d'exploitation disponible aujourd'hui.

   L'evaluation des vulnerabilites est un facteur cle de la politique de
   securite, alors que FreeBSD publie des avis pour le systeme de base, faire
   de meme pour les programmes tierce-partie depasse les capacites du projet
   FreeBSD. Il existe un moyen d'attenuer les vulnerabilites des logiciels
   tierce-partie et de prevenir les administrateurs des problemes de securite
   connus. Un outil FreeBSD connu sous le nom de Portaudit existe dans cet
   unique but.

   Le logiciel porte ports-mgmt/portaudit consulte une base de donnees, mise
   `a jour et maintenue par l'equipe de securite de FreeBSD et les
   developpeurs des logiciels portes, `a la recherche de problemes de
   securite connus.

   Pour utiliser Portaudit, ce dernier doit etre installe `a partir du
   catalogue des logiciels portes:

 # cd /usr/ports/ports-mgmt/portaudit && make install clean

   Lors du processus d'installation, les fichiers de configuration de
   periodic(8) seront mis `a jour, autorisant l'ajout des resultats de
   Portaudit dans l'execution quotidienne du rapport de securite.
   Assurez-vous que les rapports de securite quotidiens, qui sont envoyes au
   compte messagerie de root, sont bien lus. Pas plus de configuration ne
   sera necessaire.

   Apres l'installation, un administrateur peut mettre `a jour la base de
   donnees et afficher les vulnerabilites connues des logiciels installes en
   invoquant la commande suivante:

 # portaudit -Fda

  Note:

   La base de donnees sera automatiquement mise `a jour lors de l'execution
   de periodic(8), cela rendant par consequent facultative la commande
   precedente. Elle n'est requise que pour les exemples qui vont suivre.

   Pour controler `a n'importe quel moment les programmes tierce-partie
   installes `a partir du catalogue des logiciels portes, un administrateur
   n'aura qu'`a executer la commande suivante:

 # portaudit -a

   Portaudit produira pour les logiciels vulnerables quelque chose comme
   ceci:

 Affected package: cups-base-1.1.22.0_1
 Type of problem: cups-base -- HPGL buffer overflow vulnerability.
 Reference: <http://www.FreeBSD.org/ports/portaudit/40a3bca2-6809-11d9-a9e7-0001020eed82.html>

 1 problem(s) in your installed packages found.

 You are advised to update or deinstall the affected package(s) immediately.

   En faisant pointer un navigateur Web sur l'URL proposee, un administrateur
   pourra obtenir plus d'information au sujet de la vulnerabilite en
   question. Cela comprendra les versions affectees, listees par version du
   logiciel porte FreeBSD, ainsi que des liens vers d'autres sites Web
   pouvant contenir des avis de securite.

   En resume, Portaudit est un outil puissant et extremement utile quand il
   est employe conjointement avec le logiciel Portupgrade.

14.14. Avis de securite de FreeBSD

   Contribution de Tom Rhodes.

   Comme plusieurs systemes d'exploitation destines `a la production, FreeBSD
   publie des "Avis de securite". Ces avis sont generalement envoyes aux
   listes de diffusion traitant de la securite et ajoutes dans l'errata une
   fois seulement que les versions correspondantes ont ete corrigees. Cette
   section aura pour objectif d'expliquer ce qu'est un avis, comment le
   comprendre, et quelles mesures sont `a prendre pour appliquer des
   correctifs `a un systeme.

  14.14.1. A quoi ressemble un avis de securite?

   Les avis de securite de FreeBSD ressemblent `a celui presente ci-dessous
   qui provient de la liste de diffusion freebsd-security-notifications.

 =============================================================================
 FreeBSD-SA-XX:XX.UTIL                                     Security Advisory
                                                           The FreeBSD Project

 Topic:          denial of service due to some problem1

 Category:       core2
 Module:         sys3
 Announced:      2003-09-234
 Credits:        Person@EMAIL-ADDRESS5
 Affects:        All releases of FreeBSD6
                 FreeBSD 4-STABLE prior to the correction date
 Corrected:      2003-09-23 16:42:59 UTC (RELENG_4, 4.9-PRERELEASE)
                 2003-09-23 20:08:42 UTC (RELENG_5_1, 5.1-RELEASE-p6)
                 2003-09-23 20:07:06 UTC (RELENG_5_0, 5.0-RELEASE-p15)
                 2003-09-23 16:44:58 UTC (RELENG_4_8, 4.8-RELEASE-p8)
                 2003-09-23 16:47:34 UTC (RELENG_4_7, 4.7-RELEASE-p18)
                 2003-09-23 16:49:46 UTC (RELENG_4_6, 4.6-RELEASE-p21)
                 2003-09-23 16:51:24 UTC (RELENG_4_5, 4.5-RELEASE-p33)
                 2003-09-23 16:52:45 UTC (RELENG_4_4, 4.4-RELEASE-p43)
                 2003-09-23 16:54:39 UTC (RELENG_4_3, 4.3-RELEASE-p39)7
 FreeBSD only:   NO8

 For general information regarding FreeBSD Security Advisories,
 including descriptions of the fields above, security branches, and the
 following sections, please visit
 http://www.freebsd.org/security/.

 I.   Background9


 II.  Problem Description10


 III. Impact11


 IV.  Workaround12


 V.   Solution13


 VI.  Correction details14


 VII. References15

   1  Le champ Topic indique exactement quel est le probleme. C'est           
      basiquement une introduction `a l'avis de securite en tant que tel et   
      mentionne l'utilitaire contenant la vulnerabilite.                      
   2  Le champ Category fait reference `a la partie du systeme affectee qui   
      peut etre une parmi core, contrib, ou ports. La categorie core signifie 
      que la vulnerabilite affecte un composant systeme du systeme            
      d'exploitation FreeBSD. La categorie contrib precise que la             
      vulnerabilite affecte du logiciel contribue au projet FreeBSD, comme    
      sendmail. Et enfin la categorie ports indique que la vulnerabilite      
      affecte un logiciel du catalogue des logiciels portes.                  
   3  Le champ Module fait reference `a l'emplacement du composant, par       
      exemple sys. Dans notre exemple, nous voyons que le module sys est      
      affecte, par consequent, cette vulnerabilite concerne un composant      
      utilise dans le noyau.                                                  
   4  Le champ Announced reflete la date `a laquelle l'avis de securite a ete 
      publie, ou annonce au monde entier. Cela signifie que l'equipe de       
      securite a verifie que le probleme existait vraiment et qu'un correctif 
      a ete ajoute au referentiel des sources de FreeBSD.                     
   5  Le champ Credits donne le credit de la decouverte du probleme `a la     
      personne ou l'organisation qui a constate et rapporte le probleme.      
   6  Le champ Affects explique quelles versions de FreeBSD sont affectees    
      par cette vulnerabilite. Pour le noyau, un coup d'oeil rapide `a la     
      sortie de la commande ident sur les fichiers affectes aidera `a         
      determiner la revision. Pour les logiciels portes, le numero de version 
      est liste apres le nom du logiciel dans /var/db/pkg. Si le systeme ne   
      se synchronise pas avec le referentiel CVS FreeBSD et ne recompile pas  
      les sources quotidiennement, il y a des chances qu'il soit affecte par  
      le probleme.                                                            
   7  Le champ Corrected indique la date, l'heure, le fuseau horaire, et la   
      version de publication qui a ete corrigee.                              
   8  Le champ FreeBSD only precise si cette vulnerabilite affecte juste      
      FreeBSD, ou si elle concerne d'autres systemes d'exploitation           
      egalement.                                                              
   9  Le champ Background donne une information precise sur ce qu'est         
      l'utilitaire affecte. La plupart du temps, ce champ indique pourquoi    
      l'utilitaire existe sous FreeBSD, son role, et quelques informations    
      sur la naissance de l'utilitaire.                                       
   10 Le champ Problem Description explique en profondeur le probleme de      
      securite. Cela peut comprendre des informations sur le code defectueux, 
      ou meme comment l'utilitaire pourrait etre utilise pour ouvrir un       
      faille de securite.                                                     
   11 Le champ Impact decrit l'impact sur le systeme du probleme de securite. 
      Par exemple, cela peut aller de l'attaque par refus de service, au gain 
      de droits supplementaires par les utilisateurs, en passant par          
      l'obtention des droits de super-utilisateur par l'attaquant.            
   12 Le champ Workaround offre une solution de contournement possible pour   
      les administrateurs qui ne sont pas en mesure de mettre `a jour le      
      systeme. Cela pouvant etre due `a des contraintes de temps, `a une      
      disponibilite reseau, ou une tout autre raison. Cependant, la securite  
      ne devrait pas etre prise `a la legere, et un systeme affecte devrait   
      soit etre corrige soit implementer une solution de contournement du     
      probleme de securite.                                                   
   13 Le champ Solution donne les instructions sur l'application de           
      correctifs sur le systeme affecte. C'est une methode pas `a pas         
      verifiee et testee pour obtenir un systeme corrige et fonctionnant de   
      maniere securisee.                                                      
   14 Le champ Correction Details liste la branche CVS ou la version de       
      publication avec les points remplaces par des caracteres souligne. Il   
      donne egalement le numero de revision des fichiers affectes sur chaque  
      branche.                                                                
   15 Le champ References donne en general d'autres sources d'informations.   
      Cela peut etre des URLs web, des ouvrages, des listes de diffusions, et 
      des forums de discussion.                                               

14.15. Comptabilite des processus

   Contribution de Tom Rhodes.

   La comptabilite des processus est une mesure de securite avec laquelle un
   administrateur peut suivre l'utilisation des ressources du systeme, leur
   repartition entre les utilisateurs, surveiller le systeme et avoir un
   suivi minimal des commandes executees par un utilisateur.

   Ce systeme possede des avantages et des inconvenients. Un de ses avantages
   est qu'une intrusion pourra etre remontee jusqu'`a son point d'entree. Un
   des inconvenients est la quantite de journaux generee par cette
   comptabilite et l'espace disque que cela peut demander. Cette section
   guidera l'administrateur au travers des bases de la comptabilite des
   processus.

  14.15.1. Activer et utiliser la comptabilite des processus

   Avant de pouvoir utiliser la comptabilite des processus, il faut
   l'activer. Cela se fait en executant les commandes suivantes:

 # touch /var/account/acct

 # accton /var/account/acct

 # echo 'accounting_enable="YES"' >> /etc/rc.conf

   Une fois activee, les statistiques concernant le CPU, les commandes, etc.
   commenceront `a etre comptabilisee. Tous les journaux de comptabilisation
   des processus sont dans un format directement illisible pour
   l'utilisateur, ils pourront etre examines `a l'aide de l'utilitaire sa(8).
   Si elle est utilisee sans parametre, la commande sa affichera les
   informations relatives au nombre d'appels par utilisateur, le temps ecoule
   en minutes, la duree totale des temps CPU et utilisateur en minutes, le
   nombre moyen des operations d'E/S, etc.

   Pour afficher les informations sur les commandes utilisees, on emploiera
   l'utilitaire lastcomm(1). La commande lastcomm peut etre employee pour
   afficher les commandes tapees par les utilisateurs sur des terminaux
   (ttys(5)) specifiques; par exemple:

 # lastcomm ls
         trhodes ttyp1

   imprimera toute utilisation de la commande ls par l'utilisateur trhodes
   sur le terminal ttyp1.

   De nombreuses autres options utiles existent et sont detaillees dans les
   pages de manuel lastcomm(1), acct(5) et sa(8).

     ----------------------------------------------------------------------

   [8] Sous FreeBSD le mot de passe standard peut avoir une longueur de 128
   caracteres maximum.

Chapitre 15. Environnements jail

   Contribution de Matteo Riondato.
   Table des matieres

   15.1. Synopsis

   15.2. Termes relatifs aux environnements jail

   15.3. Introduction

   15.4. Creation et controle de l'environnement jail

   15.5. Optimisation et administration

   Version franc,aise de Marc Fonvieille <blackend@FreeBSD.org>.

15.1. Synopsis

   Ce chapitre expliquera ce que sont les environnements jail (prisons) et
   comment les utiliser. Les environnements jail, souvent presentes comme une
   amelioration et un remplacement des environnements chrootes sont des
   outils tres puissants pour les administrateurs systeme, mais certaines de
   leurs fonctionnalites de base peuvent etre egalement utiles aux
   utilisateurs avances.

   Apres avoir lu ce chapitre, vous connaitrez:

     * Ce qu'est un environnement jail, et quelle utilite il peut avoir sur
       une installation FreeBSD.

     * Comment construire, demarrer et arreter un environnement jail.

     * Les bases de l'administration d'un environnement jail, de l'interieur
       et de l'exterieur de l'environnement.

   D'autres sources d'information utiles concernant les environnements jail
   sont:

     * La page de manuel jail(8). C'est la reference pour l'emploi de
       l'utilitaire jail - l'outil d'administration qui peut etre utilise
       sous FreeBSD pour demarrer, arreter, et controler les environnements
       jail FreeBSD.

     * Les listes de diffusion et leurs archives. Les archives de la liste de
       diffusion pour les questions d'ordre general `a propos de FreeBSD et
       d'autres listes hebergees par le serveur des listes de diffusion
       FreeBSD contiennent dej`a quantite d'information sur les
       environnements jail. Il sera toujours conseille de chercher dans les
       archives ou de poster une nouvelle question sur la liste de diffusion
       freebsd-questions.

15.2. Termes relatifs aux environnements jail

   Pour faciliter la comprehension des parties du systeme FreeBSD relatives
   aux jails, leurs mecanismes internes et la maniere dont ils interagissent
   avec le reste de FreeBSD, les termes suivants seront utilises tout au long
   de ce chapitre:

   chroot(2) (commande)

           Un appel systeme FreeBSD, qui modifie le repertoire racine d'un
           processus et de tout ses descendants.

   chroot(2) (environnement)

           Environnement des processus pour lesquels l'emplacement de la
           racine du systeme de fichier a ete modifiee (<< chrootee >>). Cela
           comprend les ressources comme la partie du systeme de fichiers qui
           est visible, les identifiants utilisateur et groupe qui sont
           disponibles, les interfaces reseaux et autres mecanismes IPC, etc.

   jail(8) (commande)

           L'utilitaire systeme d'administration qui permet le lancement de
           processus `a l'interieur d'un environnement jail.

   hote (systeme, processus, utilisateur, etc.)

           Le systeme de controle d'un environnement jail. Le systeme hote a
           acces `a toutes les ressources materielles disponibles, et peut
           controler des processus `a l'exterieur et `a l'interieur d'un
           environnement jail. Une des differences importantes entre le
           systeme hote et l'environnement jail est que les limitations qui
           s'appliquent aux processus du super-utilisateur `a l'interieur de
           l'environnement jail ne s'appliquent pas aux processus du systeme
           hote.

   heberge (systeme, processus, utilisateur, etc.)

           Un processus, un utilisateur ou toute autre entite, dont l'acces
           aux ressources est limite par un environnement jail FreeBSD.

15.3. Introduction

   Comme l'administration systeme est une tache difficile et deroutante, de
   nombreux outils ont ete developpes pour rendre la vie de l'administrateur
   plus simple. Ces outils apportent pour la plupart des ameliorations dans
   la maniere dont sont installes, configures et maintenus les systemes. Une
   partie des taches devolues `a l'administrateur est la securisation du
   systeme, de fac,on `a ce que le systeme puisse se consacrer aux taches qui
   lui sont confiees sans toutefois mettre en peril sa propre securite.

   Un de ces outils pouvant etre employe pour augmenter la securisation d'un
   systeme FreeBSD sont les environnements jail. Les environnements jail ont
   ete introduits sous FreeBSD 4.X par Poul-Henning Kamp, mais ils ont ete
   fortement ameliores sous FreeBSD 5.X pour en faire des sous-systemes
   flexibles et puissants. Des developpements sont toujours en cours pour
   l'amelioration de leur utilite, performances, fiabilite et securite.

  15.3.1. Qu'est-ce qu'un environnement jail?

   Les systemes BSD disposent de l'environnement chroot(2) depuis l'epoque de
   4.2BSD. L'utilitaire chroot(8) peut etre employe pour changer le
   repertoire racine d'un ensemble de processus, creant ainsi un
   environnement securise et separe du reste du systeme. Les processus crees
   dans l'environnement chroote ne peuvent acceder aux fichiers et aux
   ressources exterieures `a cet environnement. Pour cette raison, si un
   attaquant compromet un service tournant dans un environnement chroote,
   cela ne devrait pas lui permettre de compromettre l'integralite du
   systeme. L'utilitaire chroot(8) est parfait pour des taches simples qui ne
   demandent pas trop de flexibilite ou de fonctionnalites avancees et
   complexes. Depuis l'apparition du concept d'environnement chroote, de
   nombreuses manieres de s'echapper de ces environnements ont ete
   decouvertes, et bien que cela ait ete corrige dans les versions recentes
   du noyau FreeBSD, il est clair que l'environnement chroot(2) n'est pas la
   solution ideale pour la securisation des services. Un nouveau sous-systeme
   devait etre implemente.

   Ceci est une des raisons principales `a l'origine du developpement de
   l'environnement jail.

   Les environnements jail ameliorent de plusieurs manieres le concept
   d'environnement chroot(2). Dans un environnement chroot(2) traditionnel,
   les processus ne sont limites que dans la partie du systeme de fichiers `a
   laquelle ils ont acces. Le reste des ressources systeme (comme l'ensemble
   des utilisateurs systeme, les processus en cours d'execution, ou le
   reseau) est partage par les processus de l'environnement chroote et les
   processus du systeme hote. L'environnement jail etend ce modele en
   virtualisant non seulement l'acces au systeme de fichiers mais egalement
   l'ensemble des utilisateurs, la partie reseau du noyau FreeBSD et quelques
   autres elements du systeme. Un ensemble plus complet de controles fins
   pour optimiser l'acces `a un environnement jail est decrit dans la
   Section 15.5, << Optimisation et administration >>.

   Un environnement jail est caracterise par quatre elements:

     * Une arborescence de repertoires - le point d'acces `a l'environnement
       jail. Une fois `a l'interieur de l'environnement jail, un processus ne
       peut s'echapper hors de cette arborescence. Les traditionnels
       problemes de securite qui grevent l'architecture chroot(2) d'origine
       n'affecteront pas les environnements jail FreeBSD.

     * Un nom de machine - le nom de machine qui sera utilise `a l'interieur
       de l'environnement jail. Les environnements jails sont principalement
       utilises pour l'hebergement de services reseaux, par consequent
       choisir un nom evocateur pour chaque environnement peut etre d'une
       grande aide pour l'administrateur systeme.

     * Une adresse IP - elle sera assignee `a l'environnement jail et ne
       peut, en aucun cas, etre modifiee pendant toute la duree de vie de
       l'environnement. L'adresse IP d'un environnement jail est en general
       un alias d'une interface reseau existante, mais cela n'est pas
       forcement necessaire.

     * Une commande - le chemin d'acces d'un executable `a executer `a
       l'interieur de l'environnement jail. Il est relatif au repertoire
       racine de l'environnement jail, et peut beaucoup varier, en fonction
       du type d'environnement jail mis en oeuvre.

   En dehors de cela les environnements jail peuvent avoir leur propre
   ensemble d'utilisateurs et leur propre utilisateur root. Naturellement les
   pouvoirs de l'utilisateur root sont limites `a l'environnement jail et, du
   point de vue du systeme hote, l'utilisateur root de l'environnement jail
   n'est pas un utilisateur omnipotent. De plus, l'utilisateur root d'un
   environnement jail n'est pas autorise `a effectuer des operations
   critiques au niveau du systeme en dehors de son environnement jail(8).
   Plus d'information au sujet des possibilites et des restrictions de
   l'utilisateur root sera donnee dans la Section 15.5, << Optimisation et
   administration >> ci-apres.

15.4. Creation et controle de l'environnement jail

   Certains administrateurs divisent les environnements jail en deux
   categories: les environnements jails << complets >>, qui ressemblent `a un
   veritable systeme FreeBSD, et les environnements jails de << service >>,
   qui sont dedies `a une application ou un seul service, et tournant
   eventuellement avec des privileges. Cette separation est juste
   conceptuelle et n'affecte pas la creation de l'environnement jail. La page
   de manuel jail(8) est tres claire quant `a la procedure de creation d'un
   environnement jail:

 # setenv D /here/is/the/jail
 # mkdir -p $D 1
 # cd /usr/src
 # make world DESTDIR=$D 2
 # cd etc/ [9]
 # make distribution DESTDIR=$D 3
 # mount_devfs devfs $D/dev 4

   1 Selectionner un emplacement pour l'environnement est le meilleur point   
     de depart. C'est l'endroit ou l'environnement jail se trouvera dans le   
     systeme de fichiers de la machine hote. Un bon choix peut etre           
     /usr/jail/jailname, ou jailname est le nom de machine identifiant        
     l'environnement jail. Le systeme de fichiers /usr/ dispose generalement  
     de suffisamment d'espace pour le systeme de fichiers de l'environnement  
     jail, qui est pour les environnements << complets >>, essentiellement,   
     une copie de chaque fichier present dans une installation par defaut du  
     systeme de base de FreeBSD.                                              
   2 Cette commande peuplera l'arborescence du repertoire choisi comme        
     emplacement pour l'environnement jail avec les binaires, les             
     bibliotheques, les pages de manuel, etc. necessaires. Tout sera fait     
     selon le style FreeBSD habituel - en premier lieu tout est compile, puis 
     ensuite installe `a l'emplacement voulu.                                 
   3 La cible distribution pour make installe tous les fichiers de            
     configuration necessaires. Ou pour faire simple, cette commande installe 
     tous les fichiers installables du repertoire /usr/src/etc/ vers le       
     repertoire /etc de l'environnement jail: $D/etc/.                        
   4 Le montage du systeme de fichiers devfs(8) `a l'interieur d'un           
     environnement jail n'est pas requis. Cependant, toutes, ou presque       
     toutes les applications necessitent l'acces `a au moins un peripherique, 
     en fonction du role de l'application. Il est vraiment important de       
     controler l'acces aux peripheriques depuis l'interieur d'un              
     environnement jail, comme un mauvais parametrage pourrait permettre `a   
     quelqu'un de malintentionne de faire de << mauvaises >> choses dans      
     l'environnement jail. Le controle sur devfs(8) est gere par              
     l'intermediaire d'un ensemble de regles qui est decrit dans les pages de 
     manuel devfs(8) et devfs.conf(5).                                        

   Une fois l'environnement jail installe, il peut etre lance en employant
   l'utilitaire jail(8). Cet outil requiert obligatoirement quatre arguments
   qui sont decrits dans la Section 15.3.1, << Qu'est-ce qu'un environnement
   jail? >>. D'autres arguments peuvent egalement etre utilises, pour par
   exemple executer le processus avec les droits d'un utilisateur
   particulier. L'argument command depend du type d'environnement; pour un
   systeme virtuel, /etc/rc est un bon choix puisque la sequence de demarrage
   d'un veritable systeme FreeBSD sera dupliquee. Pour un environnement jail
   de type service, cela dependra du service ou de l'application qui sera
   execute dans l'environnement jail.

   Les environnements jails sont souvent lances au demarrage de la machine et
   le systeme rc de FreeBSD propose une methode simple pour cela.

    1. Une liste des environnements jail autorises `a etre lances au
       demarrage du systeme devrait etre ajoutee au fichier rc.conf(5):

 jail_enable="YES"   # Utiliser NO pour desactiver le lancement des environnements jail
 jail_list="www"     # Liste des noms des environnements jail separes par une espace

    2. Pour chaque environnement liste dans jail_list, un ensemble de
       parametres rc.conf(5), qui decrivent l'environnement jail, devrait
       etre ajoute:

 jail_www_rootdir="/usr/jail/www"     # le repertoire racine de l'environnement jail
 jail_www_hostname="www.example.org"  # le nom de machine de l'environnement jail
 jail_www_ip="192.168.0.10"           # son adresse IP
 jail_www_devfs_enable="YES"          # monter devfs dans l'environnement jail
 jail_www_devfs_ruleset="www_ruleset" # les regles devfs `a appliquer `a l'environnement jail

       Le demarrage par defaut des environnements jails, configure dans
       rc.conf(5), executera la procedure /etc/rc de l'environnement jail, ce
       qui suppose que l'environnement est un systeme virtuel complet. Pour
       les environnements jail de service, la commande de demarrage par
       defaut de l'environnement devrait etre modifiee en configurant
       correctement l'option jail_jailname_exec_start.

  Note:

       Pour une liste complete des options disponibles, veuillez consulter la
       page de manuel rc.conf(5).

   La procedure /etc/rc.d/jail peut etre utilisee pour demarrer ou arreter un
   environnement jail `a la main si une entree pour l'environnement existe
   dans le fichier rc.conf:

 # /etc/rc.d/jail start www
 # /etc/rc.d/jail stop www

   Il n'existe pas pour le moment de methode propre pour arreter un
   environnement jail(8). C'est du au fait que les commandes normalement
   employees pour arreter proprement un systeme ne peuvent etre utilisees `a
   l'interieur d'un environnement jail. La meilleur fac,on d'arreter un
   environnement jail est de lancer la commande suivante `a l'interieur de
   l'environnement ou en utilisant le programme jexec(8) depuis l'exterieur
   de l'environnement:

 # sh /etc/rc.shutdown

   Plus d'information `a ce sujet peut etre trouve dans la page de manuel de
   jail(8).

15.5. Optimisation et administration

   Il existe plusieurs options qui peuvent etre configurees pour n'importe
   quel environnement jail, et de nombreuses manieres de combiner un systeme
   FreeBSD hote avec des environnements jail pour donner naissance `a des
   applications haut-niveau. Cette section presente:

     * Certaines des options disponibles pour l'optimisation du
       fonctionnement et des restrictions de securite implementees par une
       installation jail.

     * Des applications de haut niveau pour la gestion des environnements
       jail, qui sont disponibles dans le catalogue des logiciels portes, et
       peuvent etre utilisees pour implementer des environnements jail
       complets.

  15.5.1. Outils systemes pour l'optimisation d'un environnement jail sous
  FreeBSD

   L'optimisation de la configuration d'un environnement jail se fait
   principalement par le parametrage de variables sysctl(8). Une
   sous-categorie specifique de sysctl(8) existe pour toutes les options
   pertinentes: la hierarchie security.jail.* d'options du noyau FreeBSD.
   Ci-dessous est donnee une liste des principales variables relatives aux
   environnements jail avec leur valeur par defaut. Leurs noms sont
   explicites, mais pour plus d'information, veuillez vous referer aux pages
   de manuel jail(8) et sysctl(8).

     * security.jail.set_hostname_allowed: 1

     * security.jail.socket_unixiproute_only: 1

     * security.jail.sysvipc_allowed: 0

     * security.jail.enforce_statfs: 2

     * security.jail.allow_raw_sockets: 0

     * security.jail.chflags_allowed: 0

     * security.jail.jailed: 0

   Ces variables peuvent etre utilisees par l'administrateur du systeme hote
   pour ajouter ou retirer certaines limitations imposees par defaut `a
   l'utilisateur root. Notez que certaines limitations ne peuvent etre
   retirees. L'utilisateur root n'est pas autorise `a monter ou demonter des
   systemes de fichiers `a partir d'un environnement jail(8). L'utilisateur
   root d'un environnement jail ne peut charger ou modifier des regles
   devfs(8), parametrer des regles de pare-feu, ou effectuer des taches
   d'administration qui necessitent la modification de donnees du noyau,
   comme le parametrage du niveau de securite securelevel du noyau.

   Le systeme de base de FreeBSD contient un ensemble d'outils basiques pour
   afficher les informations au sujet des environnements jail actifs, pour
   s'attacher `a un environnement jail pour lancer des commandes
   d'administration. Les commandes jls(8) et jexec(8) font partie du systeme
   de base de FreeBSD et peuvent etre utilisees pour effectuer les taches
   simples suivantes:

     * Afficher une liste des environnements jail actifs et leur identifiant
       (JID), leur adresse IP, leur nom de machine et leur emplacement.

     * S'attacher `a un environnement jail actif, `a partir de son systeme
       hote, et executer une commande `a l'interieur de l'environnement ou
       effectuer des taches d'administration `a l'interieur de environnement
       lui-meme. C'est tout particulierement utile quand l'utilisateur root
       veut arreter proprement un environnement. L'utilitaire jexec(8) peut
       egalement etre employe pour lancer un interpreteur de commandes dans
       un environnement jail pour faire de l'administration; par exemple:

 # jexec 1 tcsh

  15.5.2. Outils d'administration haut niveau du catalogue des logiciels portes
  de FreeBSD

   Parmi les nombreux utilitaires tierce-partie pour l'administration des
   environnements jail, un des plus complet et utile est sysutils/jailutils.
   C'est un ensemble de petites applications qui aident `a la gestion des
   environnements jail(8). Veuillez consulter sa page Web pour plus
   d'information.

     ----------------------------------------------------------------------

   [9] Cette etape n'est pas requise sous FreeBSD 6.0 et versions
   ulterieures.

Chapitre 16. Mandatory Access Control ** Traduction en Cours **

   Table des matieres

   16.1. Synopsis

   16.2. Key Terms in this Chapter

   16.3. Explanation of MAC

   16.4. Understanding MAC Labels

   16.5. Module Configuration

   16.6. The MAC bsdextended Module

   16.7. The MAC ifoff Module

   16.8. The MAC portacl Module

   16.9. MAC Policies with Labeling Features

   16.10. The MAC partition Module

   16.11. The MAC Multi-Level Security Module

   16.12. The MAC Biba Module

   16.13. The MAC LOMAC Module

   16.14. Implementing a Secure Environment with MAC

   16.15. Another Example: Using MAC to Constrain a Web Server

   16.16. Troubleshooting the MAC Framework

16.1. Synopsis

16.2. Key Terms in this Chapter

16.3. Explanation of MAC

16.4. Understanding MAC Labels

16.5. Module Configuration

16.6. The MAC bsdextended Module

16.7. The MAC ifoff Module

16.8. The MAC portacl Module

16.9. MAC Policies with Labeling Features

16.10. The MAC partition Module

16.11. The MAC Multi-Level Security Module

16.12. The MAC Biba Module

16.13. The MAC LOMAC Module

16.14. Implementing a Secure Environment with MAC

16.15. Another Example: Using MAC to Constrain a Web Server

16.16. Troubleshooting the MAC Framework

Chapitre 17. Audit des evenements relatifs `a la securite du systeme

   Ecrit par Tom Rhodes et Robert Watson.
   Table des matieres

   17.1. Synopsis

   17.2. Mots-cles

   17.3. Configuration de l'audit

   17.4. Travailler avec les traces d'audit

   Version franc,aise de Marc Fonvieille <blackend@FreeBSD.org>.

17.1. Synopsis

   FreeBSD dispose d'un support pour l'audit d'evenements relatifs `a la
   securite du systeme. L'audit d'evenements permet un enregistrement fiable
   et configurable d'une grande variete d'evenements systeme en rapport avec
   la securite, parmi lesquels les ouvertures de session, les modifications
   de la configuration, et les acces aux fichiers et au reseau. Ces
   enregistrements ou journaux peuvent etre d'une tres grande aide pour la
   surveillance d'un systeme, pour la detection d'intrusion, et les analyses
   post-mortem. FreeBSD implemente l'API et le format de fichiers BSM (Basic
   Security Module) publies par Sun(TM) qui sont interoperables avec les
   implementations d'audits de Solaris(TM) de Sun(TM) et de Mac OS(R) X
   d'Apple(R).

   Ce chapitre se concentre sur l'installation et la configuration de l'audit
   des evenements. Il explique les strategies utilisees pour l'audit, et
   propose un exemple de configuration.

   Apres la lecture de ce chapitre, vous saurez:

     * Ce qu'est l'audit d'evenements et comment cela fonctionne.

     * Comment configurer l'audit d'evenements sous FreeBSD pour les
       utilisateurs et les processus.

     * Comment lire une trace d'audit en utilisant les outils de reduction et
       de lecture.

   Avant de lire ce chapitre, vous devrez:

     * Comprendre les fondements d'UNIX(R) et de FreeBSD (Chapitre 3,
       Quelques bases d'UNIX).

     * Etre familier avec la configuration et la compilation du noyau
       (Chapitre 8, Configurer le noyau de FreeBSD).

     * Avoir quelques notions de securite et savoir comment les appliquer `a
       FreeBSD (Chapitre 14, Securite).

  Avertissement:

   La fonctionnalite d'audit connait des limitations. Tous les evenements
   systemes en rapport avec la securite ne peuvent pas etre soumis `a un
   audit, et que certains mecanismes d'ouverture de session, comme les
   gestionnaires de procedures de connexions bases sur Xorg et des
   << demons >> tiers, ne permettent pas une configuration correcte de
   l'audit pour les ouvertures de session utilisateur.

   Le systeme d'audit des evenements permet la generation d'enregistrements
   detailles de l'activite du systeme. Sur un systeme occupe, un fichier
   journal d'audit peut etre tres important quand le systeme est configure
   pour un haut niveau de detail, depassant plusieurs gigaoctets par semaine
   sur certaines configurations. Les administrateurs systeme devraient
   prendre en compte les besoins en espace disque associes avec les
   configurations d'audit `a haut niveau de detail. Par exemple, il peut etre
   recommande de dedier un systeme de fichiers `a /var/audit de maniere `a ce
   que les autres systemes de fichiers ne soient pas affectes si le systeme
   de fichiers pour les audits est plein.

17.2. Mots-cles

   Les termes suivants sont relatifs `a l'audit des evenements:

     * evenement: un evenement pouvant etre audite est n'importe quel
       evenement pouvant faire l'objet d'un suivi par le systeme d'audit. La
       creation d'un fichier, la mise en place d'une connection reseau, ou
       une ouverture de session sont des exemples d'evenements relatifs `a la
       securite. Les evenements sont consideres soit comme
       << attribuables >>, quand on peut les relier `a un utilisateur
       authentifie, soit << non-attribuables >> quand on ne peut pas les
       relier `a un utilisateur authentifie. Des evenements comme ceux qui
       apparaissent avant l'authentification durant le processus d'ouverture
       de session, tels que les tentatives avec un mauvais mot de passe, sont
       des exemples d'evenements non-attribuables.

     * classe: designe `a l'aide d'un nom particulier des ensembles
       d'evenements en rapport les uns avec les autres et sont utilisees dans
       les expressions de selection des evenements. Les classes d'evenement
       generalement utilisees sont la << creation de fichiers >> (fc)
       l'<< execution >> (ex) et l'<< ouverture/fermeture de session >> (lo).

     * enregistrement: une entree du fichier de trace d'audit decrivant un
       evenement relatif `a la securite. Les enregistrements contiennent le
       type d'evenement, des informations sur l'auteur (l'utilisateur) de
       l'action, la date et l'heure, des informations sur tout objet ou
       argument en relation avec l'action, et une condition de succes ou
       d'echec.

     * trace d'audit: un fichier journal consistant en une serie
       d'enregistrements decrivant les evenements relatifs `a la securite.
       Les traces sont organisees de maniere chronologiques par rapport `a
       l'horaire de fin des evenements. Seuls les processus autorises peuvent
       ajouter des enregistrements aux fichiers journaux d'audit.

     * expression de selection: une chaine de caracteres contenant une liste
       de prefixes et de classes d'evenement d'audit utilises pour designer
       des evenements.

     * preselection: le processus par lequel le systeme identifie quels
       evenements interessent l'administrateur. La configuration de la
       preselection utilise une serie d'expressions de selection pour
       determiner quelles classes d'evenement sont `a auditer et pour quels
       utilisateurs, ainsi que le parametrage global qui s'applique aux
       processus authentifies et non-authentifies.

     * reduction: le processus par lequel les enregistrements de traces
       d'audit existantes sont selectionnes pour etre conserves, imprimes ou
       analyses. Ou encore le processus qui supprime de la trace d'audit les
       enregistrements non-desires. En utilisant le principe de reduction,
       les administrateurs peuvent mettre en place des strategies pour la
       conservation des donnees d'audit. Par exemple, les traces d'audit
       detaillees peuvent etre conservees pendant un mois, mais passe ce
       delai, les traces seront reduites afin de ne preserver pour archivage
       que les informations relatives aux ouvertures de sessions.

17.3. Configuration de l'audit

   Le support pour l'audit des evenements est installe avec le systeme de
   base de FreeBSD. Le support present dans le noyau GENERIC par defaut, et
   auditd(8) peut etre active en ajoutant la ligne suivante au fichier
   /etc/rc.conf:

 auditd_enable="YES"

   Puis, le daemon d'audit peut etre lance:

 # service auditd start

   Les utilisateurs preferant compiler un noyau sur mesure doivent ajouter la
   ligne suivante dans le fichier de configuration du noyau:

 options     AUDIT

  17.3.1. Expressions de selection des evenements

   Les expressions de selection sont utilisees `a plusieurs endroits dans la
   configuration du systeme d'audit pour determiner quels evenements doivent
   etre suivis. Les expressions contiennent une liste de classes d'evenements
   devant correspondre. Les expressions de selection sont evaluees de gauche
   `a droite, et deux expressions sont combinees en ajoutant l'une `a la
   suite de l'autre.

   Tableau 17.1, << Classes d'evenements par defaut >> resume les classes
   d'evenements presentes par defaut

   Tableau 17.1. Classes d'evenements par defaut

   Classe        Description                          Action                  
   all    tout                       correspond `a toutes les classes         
                                     d'evenements.                            
   aa     authentification et                                                 
          autorisation               
   ad     administration             Actions d'administration du systeme.     
   ap     application                Action definie par l'application.        
   cl     fermeture de fichiers      Enregistre les utilisations de l'appel   
                                     systeme close.                           
                                     Enregistre les executions de programmes. 
                                     L'audit des arguments en ligne de        
                                     commande et des variables                
   ex     execution                  d'environnement est controle par via     
                                     audit_control(5) en utilisant les        
                                     parametres argv et envv pour l'entree    
                                     policy.                                  
   fa     acces `a aux attributs des enregistre l'acces aux attributs des     
          fichiers                   objets comme stat(1), pathconf(2).       
   fc     creation de fichiers       Enregistre les evenements ayant pour     
                                     resultat la creation d'un fichier.       
   fd     suppression de fichiers    Enregistre les evenements pour lesquels  
                                     une suppression de fichier a lieu.       
                                     Enregistre les evenements lors desquels  
   fm     modification des attributs une modification des attributs d'un      
          d'un fichier               fichier intervient, comme l'utilisation  
                                     de chown(8), chflags(1), et flock(2).    
                                     Enregistre les evenements qui donnent    
   fr     lecture de fichiers        lieu `a la lecture de donnees,           
                                     l'ouverture de fichiers pour la lecture. 
                                     Enregistre les evenements qui donnent    
   fw     ecriture de fichiers       lieu `a l'ecriture de donnees ou `a      
                                     l'ecriture ou la modification de         
                                     fichiers.                                
   io     ioctl                      Enregistre l'utilisation de l'appel      
                                     systeme ioctl.                           
                                     Enregistre les differentes utilisations  
   ip     ipc                        de communication inter-processus, dont   
                                     les utilisations des tubes POSIX et les  
                                     operations IPC Systeme V.                
   lo     login_logout               Enregistre les ouvertures et fermeture   
                                     de session (login(1) et logout(1)).      
   na     non attributable           Enregistre les evenements                
                                     non-attribuables.                        
   no     classe invalide            Ne correspond `a aucun des evenements    
                                     surveilles.                              
                                     Enregistre les evenements relatifs au    
   nt     reseau                     reseau, comme l'utilisation des          
                                     fonctions connect(2) et accept(2).       
   ot     autre                      Enregistre les evenements divers.        
                                     Enregistre les operations sur les        
   pc     processus                  processus, comme l'utilisation des       
                                     fonctions exec(3) et exit(3).            

   Ces classes d'evenement peuvent etre personnalisees en modifiant les
   fichiers de configuration audit_class et audit_event.

   Chaque classe d'audit peut etre combinee avec un prefixe indiquant si les
   operations reussies/echouees sont selectionnees, et si l'entree ajoute ou
   supprime une selection pour la classe ou le type concerne. Tableau 17.2,
   << Prefixes pour les classes d'audit >> resume les prefixes disponibles.

   Tableau 17.2. Prefixes pour les classes d'audit

   Prefixe                               Action                               
   +       Enregistre les evenements reussis de cette classe.                 
   -       Enregistre les evenements de cette classe qui ont echoue.          
   ^       N'enregistre ni les evenements reussis ni les echecs de cette      
           classe.                                                            
   ^+      Ne pas enregistrer les evenements reussis de cette classe.         
   ^-      Ne pas enregistrer les evenements de cette classe qui ont echoue.  

   Si aucun prefixe n'est present, les succes et le echecs de l'evenement
   seront enregistres.

   L'exemple suivant d'expression de selection permet la selection des
   ouvertures et fermetures de session reussies ou echouees, et uniquement
   les executions ayant reussies:

 lo,+ex

  17.3.2. Fichiers de configuration

   Les fichiers de configuration suivants pour l'audit d'evenements en
   rapport avec la securite se trouvent dans le repertoire /etc/security.

     * audit_class: contient les definitions des classes d'audit.

     * audit_control: controle les caracteristiques du systeme d'audit comme
       les classes d'audit par defaut, l'espace disque minimal `a conserver
       sur le volume reserve aux journaux, la taille maximale des traces
       d'audit.

     * audit_event: les noms et la description des evenements systemes
       audites ainsi qu'une liste de classes auxquelles appartiennent chaque
       evenement.

     * audit_user: les classes d'evenement `a auditer pour des utilisateurs
       specifiques, qui s'ajoutent aux parametres generaux fixes par defaut
       `a l'ouverture de session.

     * audit_warn: une procedure modifiable utilisee par auditd(8) pour
       generer des messages d'alerte lors des situations exceptionnelles
       comme un espace disque faible pour les fichiers journaux d'audit ou
       quand il y a eu rotation de ces fichiers journaux.

  Avertissement:

   Les fichiers de configuration de l'audit devraient etre modifies et geres
   avec prudence etant donne que des erreurs dans la configuration pourraient
   donner lieu `a un enregistrement incorrect des evenements.

   Dans la plupart des cas, les administrateurs ne devront modifier que
   audit_control et audit_user. Le premier controle les proprietes et les
   strategies au niveau du systeme et le second peut etre utilise pour
   affiner l'audit pour chaque utilisateur.

    17.3.2.1. Le fichier audit_control

   Un certain nombre de parametres par defaut pour le systeme d'audit sont
   specifies dans le fichier audit_control:

 dir:/var/audit
 dist:off
 flags:lo,aa
 minfree:5
 naflags:lo,aa
 policy:cnt,argv
 filesz:2M
 expire-after:10M

   L'option dir est utilisee pour declarer un ou plusieurs repertoires dans
   lesquels seront stockes les fichiers journaux. Si l'on mentionne plus d'un
   repertoire, ces derniers seront utilises dans l'ordre `a mesure qu'ils se
   remplissent. Il est classique de configurer le systeme d'audit pour le
   stockage des fichiers journaux sur un systeme de fichiers dedie, afin
   d'eviter toute interference entre le systeme d'audit et d'autres systemes
   si le systeme de fichiers est plein.

   Si le champ dist est fixe `a on ou yes, des liens materiel seront crees
   pour tous les fichiers de trace d'audit de /var/audit/dist.

   Le champ flags fixe le masque general de preselection utilise par defaut
   pour les evenements attribuables. Dans l'exemple ci-dessus, les ouvertures
   et fermetures de sessions reussies ou echouees ainsi que les
   authentifications et autorisations sont enregistrees pour tous les
   utilisateurs.

   L'option minfree definit le pourcentage minimal d'espace libre du systeme
   de fichiers sur lequel les traces d'audit sont stockees.

   L'entree naflags indique les classes `a surveiller pour les evenements
   non-attribues, comme les processus d'ouverture et de fermeture de session
   et les authentifications et autorisations.

   L'entree policy donne une liste d'indicateurs de strategie controlant
   divers aspect du comportement de l'audit separes par une virgule.
   L'indicateur cnt indique que le systeme devrait continuer `a fonctionner
   en depit d'un echec dans l'audit (l'emploi de cet indicateur est hautement
   recommande). L'autre indicateur argv, provoque l'audit des arguments
   passes `a l'appel systeme execve(2) lors de l'audit de l'execution des
   commandes.

   L'entree filez indique la taille maximale en octets autorisee pour un
   fichier de trace avant qu'il soit interrompu et que le systeme provoque sa
   rotation. La valeur par defaut, 0, desactive la rotation automatique des
   journaux. Si la taille de fichier est inferieure `a 512K, elle sera
   ignoree et un message sera genere.

   Le champ expire-after indique quand un fichier de trace expirera et sera
   supprime.

    17.3.2.2. Le fichier audit_user

   L'administrateur peut specifier des exigences supplementaires qu niveau de
   l'audit pour des utilisateurs specifiques dans le fichier audit_user.
   Chaque ligne parametre l'audit pour un utilisateur par l'intermediaire de
   deux champs: le champ alwaysaudit, qui indique l'ensemble des evenements
   qui devraient toujours etre surveilles pour l'utilisateur, le champ,
   neveraudit, indique un ensemble d'evenements qui ne devrait jamais etre
   audite pour cet utilisateur.

   L'exemple suivant d'entrees permet le suivi des ouvertures et fermetures
   de sessions et l'execution de commandes avec succes de l'utilisateur root,
   et audite la creation de fichiers et l'execution de commandes avec succes
   pour l'utilisateur www. Si utilise avec le fichier audit_control par
   defaut, l'entree lo pour root est redondante, et les evenements relatifs
   aux ouvertures et aux fermetures de sessions seront egalement enregistres
   pour l'utilisateur www.

 root:lo,+ex:no
 www:fc,+ex:no

17.4. Travailler avec les traces d'audit

   Etant donne que les traces d'audit sont stockees sous le format binaire
   BSM (<< Basic Security Module >>), plusieurs outils sont disponibles pour
   modifier ou convertir en texte ces fichiers de trace. Pour convertir les
   fichiers de trace en en texte simple, utiliser la commande praudit. Pour
   reduire le fichier de trace en vue d'une analyse, d'un archivage, ou d'une
   impression, utiliser la commande auditreduce. Cet utilitaire supporte une
   variete de parametres de selection, parmi lesquels le type d'evenement, la
   classe de l'evenement, l'utilisateur, la date ou l'heure de l'evenement,
   et le chemin d'acces ou l'objet sur lequel on agit.

   Par exemple, pour afficher sous forme de texte brut l'integralite du
   contenu du fichier journal d'audit precise:

 # praudit /var/audit/AUDITFILE

   Ou AUDITFILE est le journal `a afficher.

   Les traces d'audit consistent en une serie d'enregistrements constitues de
   champs que la commande praudit affiche de maniere sequentielle, un par
   ligne. Chaque champ est specifique, comme header (l'entete de
   l'enregistrement), ou path (le chemin d'acces). Ce qui suit est un exemple
   d'evenement execve:

 header,133,10,execve(2),0,Mon Sep 25 15:58:03 2006, + 384 msec
 exec arg,finger,doug
 path,/usr/bin/finger
 attribute,555,root,wheel,90,24918,104944
 subject,robert,root,wheel,root,wheel,38439,38032,42086,128.232.9.100
 return,success,0
 trailer,133

   Cet audit represente un appel reussi `a execve, lors de l'execution de la
   commande finger doug. Le champ exec arg contient la ligne de commande
   presentee par l'interpreteur de commandes au noyau. Le champ path contient
   le chemin d'acces `a l'executable comme le voit le noyau. Le champ
   attribute decrit le binaire et precise les permissions sur le fichier. Le
   champ subject conserve l'identifiant (ID) de l'utilisateur audite, les
   identifiants groupe et utilisateur effectifs, les identifiants groupe et
   utilisateur reels, l'ID du processus, l'ID de la session, l'ID du port, et
   l'adresse correspondant `a la session. Notez que l'ID de l'utilisateur
   pour l'audit differe de l'ID reel de l'utilisateur etant donne que
   l'utilisateur robert est passe en root avant l'execution de la commande,
   mais l'audit se fait par rapport `a l'utilisateur authentifie original. Le
   champ return indique la reussite de l'execution et le champ trailer
   termine l'enregistrement.

   Le format de sortie XML est egalement supporte et peut etre selectionne en
   utilisant l'argument -x.

   Comme les journaux d'audit peuvent etre tres gros, un sous-ensemble
   d'enregistrements peut etre selectionne en utilisant auditreduce. Cet
   exemple selectionne tous les enregistrements produits pour l'utilisateur
   trhodes et stockes dans le fichier AUDITFILE:

 # auditreduce -u trhodes /var/audit/AUDITFILE | praudit

   Les membres du groupe audit sont autorises `a lire les traces d'audit
   presentes dans le repertoire /var/audit. Par defaut, ce groupe est vide,
   par consequent seul l'utilisateur root peut lire les traces d'audit. Des
   utilisateurs peuvent etre ajoutes au groupe audit afin de deleguer les
   droits de lecture des audits. Comme la possibilite de suivre le contenu
   des fichiers journaux de l'audit donne un aperc,u significatif du
   comportement des utilisateurs et des processus, il est donc recommande de
   deleguer avec prudence les droits de lecture des audits.

  17.4.1. Surveillance en direct `a l'aide de tubes d'audit

   Les tubes (<< pipes >>) d'audit sont des pseudo-peripheriques
   << clonables >> qui autorisent aux applications l'acces au flux
   d'enregistrement des audits en cours. C'est de tout premier interet pour
   les auteurs d'applications de detection des intrusions et de surveillance
   du systeme. Cependant, le tube d'audit est un moyen pratique pour
   l'administrateur pour autoriser la surveillance en direct sans avoir `a
   faire face aux problemes de permissions ou de rotation des fichiers
   journaux interrompant le flux des enregistrements des evenements. Pour
   suivre le flux des enregistrements de l'audit en cours:

 # praudit /dev/auditpipe

   Par defaut, les fichiers speciaux de peripheriques correspondant aux tubes
   d'audit ne sont accessibles qu'`a l'utilisateur root. Pour les rendre
   accessibles aux membres du groupe audit, ajoutez une regle devfs au
   fichier /etc/devfs.rules:

 add path 'auditpipe*' mode 0440 group audit

   Consultez la page de manuel devfs.rules(5) pour plus d'information sur la
   configuration du systeme de fichiers devfs.

  Avertissement:

   Il est relativement simple de produire un effet de boucle sans fin, dans
   lequel la consultation de chaque evenement enregistre par le systeme
   d'audit provoque la generation de nouveaux evenements d'audit. Par
   exemple, si toutes les entrees/sorties reseau sont surveillees, et que
   praudit est execute depuis une session SSH, alors un flux continu
   d'evenements sera genere suivant une frequence importante, chaque
   evenement affiche generant un autre evenement. Pour cette raison, il est
   recommande d'executer praudit sur un tube par l'intermediaire de sessions
   sans surveillance precise des entrees/sorties.

  17.4.2. Rotation et compression des fichiers de trace d'audit

   Les traces d'audit sont ecrites par le noyau, et sont gerees par le
   << demon >> d'audit, auditd(8). Les administrateurs ne devraient donc pas
   tenter d'utiliser newsyslog.conf(5) ou tout autre outil pour assurer la
   rotation directe des journaux d'audit. A la place, l'utilitaire audit
   devrait etre employe pour stopper l'audit, reconfigurer le systeme d'audit
   et effectuer la rotation des journaux. La commande suivante provoque la
   creation d'un nouveau fichier journal d'audit par le << demon >> et
   signale au noyau d'utiliser le nouveau fichier pour les enregistrements.
   L'ancien fichier journal sera ferme et renomme et pourra, `a partir de cet
   instant, etre manipule par l'administrateur:

 # audit -n

   Si auditd(8) ne tourne pas, cette commande echouera et un message d'erreur
   sera genere.

   Ajouter la ligne suivante au fichier /etc/crontab provoquera cette
   rotation toutes les douze heures:

 0     */12       *       *       *       root    /usr/sbin/audit -n

   La modification sera prise en compte une fois que aurez sauvegarde le
   fichier /etc/crontab.

   La rotation automatique du fichier d'une trace d'audit basee sur la taille
   du fichier est possible `a l'aide de l'option filesz de audit_control
   comme decrit dans Section 17.3.2.1, << Le fichier audit_control >>.

  17.4.3. Compresser les traces d'audit

   Les fichiers de trace d'audit peuvent devenir tres gros, il est souvent
   desirable de les compresser ou sinon de les archiver une fois qu'ils ont
   ete fermes par le << demon >> d'audit. La procedure audit_warn peut etre
   employee pour effectuer des operations personnalisees pour une variete
   d'evenements relatifs `a l'audit, y compris l'arret propre des traces
   d'audit lors de leur rotation. Par exemple, ce qui suit peut etre ajoute
   au fichier /etc/security/audit_warn pour compresser les traces d'audit `a
   leur fermeture:

 #
 # Compression des fichiers de trace d'audit `a leur fermeture.
 #
 if [ "$1" = closefile ]; then
         gzip -9 $2
 fi

   D'autres activites d'archivage pourront inclure la copie des fichiers de
   trace vers un serveur central, la suppression d'anciennes traces, ou la
   reduction des traces pour supprimer les enregistrements inutiles. Cette
   procedure ne sera executee que lorsque les fichiers de trace d'audit
   auront ete proprement arretes, et ne sera pas executee sur les traces
   interrompues en cours d'utilisation suite `a un arret incorrect du
   systeme.

Chapitre 18. Stockage des donnees

   Table des matieres

   18.1. Synopsis

   18.2. Noms des peripheriques

   18.3. Ajouter des disques

   18.4. RAID

   18.5. Peripheriques de stockage USB

   18.6. Creation et utilisation de supports optiques (CDs)

   18.7. Creation et utilisation de supports optiques (DVDs)

   18.8. Creation et utilisation de disquettes

   18.9. Creer et utiliser les bandes magnetiques

   18.10. Sauvegardes sur disquettes

   18.11. Strategies de sauvegarde

   18.12. Sauvegardes

   18.13. Systemes de fichiers reseaux, en memoire et sauvegardes sur fichier

   18.14. Instantane ("Snapshot") d'un systeme de fichiers

   18.15. Quotas d'utilisation des disques

   18.16. Chiffrer les partitions d'un disque

   18.17. Chiffrage de l'espace de pagination

   Version franc,aise de Marc Fonvieille <blackend@FreeBSD.org>.

18.1. Synopsis

   Ce chapitre couvre l'utilisation des disques sous FreeBSD. Cela comprend
   les disques memoire, les disques reseau, les peripheriques standards de
   stockage SCSI/IDE, et les peripheriques utilisant l'interface USB.

   Apres la lecture de ce chapitre, vous connaitrez:

     * La terminologie qu'utilise FreeBSD pour decrire l'organisation des
       donnees sur un disque physique (les partitions et les tranches).

     * Comment ajouter des disques durs supplementaires sur votre systeme.

     * Comment configurer FreeBSD pour l'utilisation de peripheriques de
       stockage USB.

     * Comment configurer des systemes de fichiers virtuels, comme les
       disques memoires.

     * Comment utiliser les quotas pour limiter l'usage de l'espace disque.

     * Comment chiffrer des disques pour les securiser contre les attaques.

     * Comment creer et graver des CDs et DVDs sous FreeBSD.

     * Les differents supports disponibles pour les sauvegardes.

     * Comment utiliser les programmes de sauvegarde disponibles sous
       FreeBSD.

     * Comment faire des sauvegardes sur disquettes.

     * Ce que sont les << snapshots >> (instantanes) de systemes de fichiers
       et comment les utiliser efficacement.

   Avant de lire ce chapitre, vous devrez:

     * Savoir comment configurer et installer un nouveau noyau FreeBSD
       (Chapitre 8, Configurer le noyau de FreeBSD).

18.2. Noms des peripheriques

   Ce qui suit est une liste des peripheriques de stockage physiques, et des
   noms de peripheriques associes.

   Tableau 18.1. Conventions de nom pour les disques physiques

          Type de disque                     Nom du peripherique              
   Disques durs IDE              ad                                           
   Lecteurs de CDROMs IDE        acd                                          
   Disques durs SCSI et          da                                           
   peripheriques de stockage USB 
   Lecteurs de CDROMs SCSI       cd                                           
   mcd pour les CD-ROMs Mitsumi,                                              
   scd pour les CD-ROMs Sony     
   Lecteurs de disquette         fd                                           
   Lecteurs de bande SCSI        sa                                           
   Lecteurs de bande IDE         ast                                          
   Disques flash                 fla pour les peripheriques Flash             
                                 DiskOnChip(R)                                
                                 aacd pour l'AdvancedRAID Adaptec(R), mlxd et 
   Disques RAID                  mlyd pour les Mylex(R), amrd le MegaRAID(R)  
                                 d'AMI, idad pour le Smart RAID de Compaq,    
                                 twed pour le 3ware(R) RAID.                  

18.3. Ajouter des disques

   Contribution originale de David O'Brien.

   Supposons que nous voulions ajouter un second disque SCSI `a une machine
   qui n'a pour l'instant qu'un seul disque. Commenc,ons par arreter
   l'ordinateur et installer le disque en suivant les instructions donnees
   par le constructeur de l'ordinateur, du controleur et du disque. Comme il
   y a de nombreuses fac,on de proceder, ces details depassent le cadre de ce
   document.

   Ouvrons maintenant une session sous le compte root. Apres avoir installe
   le disque, consultez le fichier /var/run/dmesg.boot pour verifier que le
   nouveau disque a ete reconnu. Dans notre exemple, le disque que nous
   venons d'ajouter sera le peripherique da1 et nous le monterons sur le
   repertoire /1 (si vous ajoutez un disque IDE, le nom de peripherique sera
   ad1).

   FreeBSD tourne sur des ordinateurs compatibles IBM-PC, il doit tenir
   compte des partitions PC BIOS. Ces dernieres sont differentes des
   partitions BSD traditionnelles. Un disque PC peut avoir jusqu'`a quatre
   partitions. Si le disque va etre reserve uniquement `a FreeBSD, vous
   pouvez utiliser le mode dedie. Sinon, FreeBSD devra utiliser une des
   partitions PC BIOS. FreeBSD appelle les partitions PC BIOS tranches
   ("slices") pour les distinguer des partitions BSD traditionnelles. Vous
   pouvez aussi des tranches sur un disque dedie `a FreeBSD, mais utilise sur
   une machine ou un autre systeme d'exploitation est egalement installe.
   C'est une bonne maniere pour eviter de perturber l'utilitaire fdisk des
   autres systeme d'exploitation differents de FreeBSD.

   Dans le cas d'une tranche, le disque ajoute deviendra le peripherique
   /dev/da1s1e. Ce qui se lit: disque SCSI, numero d'unite 1 (second disque
   SCSI), tranche 1 (partition PC BIOS 1), et partition BSD e. Dans le cas du
   mode dedie, le disque sera ajoute en tant que /dev/da1e.

   En raison de l'utilisation d'entiers codes sur 32 bits pour stocker le
   nombre de secteurs, bsdlabel(8) est limite `a 2^32-1 secteurs par disque
   ou 2TB dans la plupart des cas. Le format fdisk(8) n'autorise pas de
   secteur au del`a de 2^32-1 et une largeur de plus de 2^32-1, limitant donc
   les partitions `a 2TB et les disques `a 4TB en general. Le format
   sunlabel(8) est limite `a 2^32-1 secteur par partition et 8 partitions
   pour un total de 16TB d'espace. Pour des disques plus importants, les
   partitions gpt(8) peuvent etre utilisees.

  18.3.1. Utiliser sysinstall(8)

    1. Naviguer dans sysinstall

       Vous pouvez utiliser sysinstall et ses menus simples d'emploi pour
       partitionner et libeller le nouveau disque. Ouvrez une session sous le
       compte super-utilisateur root ou utilisez la commande su(1). Lancez
       sysinstall et selectionnez Configure. A l'interieur du menu FreeBSD
       Configuration Menu, descendez et selectionnez l'option Fdisk.

    2. L'editeur de partition fdisk

       Une fois dans l'utilitaire fdisk, nous pouvons taper A pour utiliser
       tout le disque pour FreeBSD. Lorsque l'on vous demande si vous voulez
       garder la possibilite de pouvoir cooperer avec d'autres systemes
       d'exploitation ("remain cooperative with any future possible operating
       systems"), repondez par l'affirmative (YES). Enregistrez les
       modifications sur le disque avec W. Quittez maintenant l'editeur fdisk
       en tapant q. La prochaine question concernera le secteur de demarrage
       ("Master Boot Record"). Comme vous ajoutez un disque `a un systeme
       dej`a operationnel, choisissez None.

    3. L'editeur de label du disque

       Ensuite, vous devez quitter puis relancer sysinstall. Suivez les
       instructions precedentes, en choisissant cette fois l'option Label.
       Vous entrerez dans l'editeur de label du disque (Disk Label Editor).
       C'est l`a que vous allez creer les partitions BSD traditionnelles. Un
       disque peut avoir jusqu'`a huit partitions, libellees de a `a h.
       Certains de ces labels ont des significations particulieres. La
       partition a est la partition racine (/). Seul votre disque systeme
       (e.g., celui `a partir duquel vous demarrez) doit avoir une partition
       a. La partition b est utilisee pour la pagination, vous pouvez avoir
       plusieurs disques avec des partitions de pagination. La partition c
       designe la totalite du disque en mode dedie, ou toute la tranche
       FreeBSD dans le cas contraire. Les autres partitions sont `a usage
       general.

       L'editeur de label de sysinstall definit par defaut la partition e
       comme premiere partition qui n'est ni racine, ni de pagination. Dans
       l'editeur de label, creez un seul systeme de fichiers avec l'option C.
       Quand on vous demande si ce sera un systeme de fichiers (FS) ou une
       partition de pagination, choisissez FS et indiquez un point de montage
       (e.g., /mnt). Lorsque vous ajoutez un disque sur un systeme dej`a
       installe, sysinstall ne creera pas d'entrees dans /etc/fstab, donc le
       nom que vous donnez au point de montage n'a pas d'importance.

       Vous pouvez maintenant ecrire le nouveau label sur le disque et y
       creer un systeme de fichiers. Faites-le en tapant W. Ignorez les
       erreurs de sysinstall disant que la nouvelle partition ne peut etre
       montee. Quittez maintenant l'editeur de label et sysinstall.

    4. Derniere etape

       La derniere etape consiste `a editer le fichier /etc/fstab pour y
       ajouter une entree pour votre nouveau disque.

  18.3.2. Utiliser les utilitaires en ligne de commande

    18.3.2.1. Utiliser les tranches - "slices"

   Cette configuration permettra de faire fonctionner correctement votre
   disque dure avec d'autres systemes d'exploitation qui pourraient etre
   installe sur votre machine, et ne perturbera pas les utilitaires fdisk de
   ces autres systemes d'exploitation. C'est la methode recommandee pour
   l'installation de nouveau disques. N'utilisez le mode dedie que si vous
   avez une bonne raison de le faire!

 # dd if=/dev/zero of=/dev/da1 bs=1k count=1
 # fdisk -BI da1 #Initialize your new disk
 # bsdlabel -B -w da1s1 auto #Label it.
 # bsdlabel -e da1s1 # Edit the disklabel just created and add any partitions.
 # mkdir -p /1
 # newfs /dev/da1s1e # Repeat this for every partition you created.
 # mount /dev/da1s1e /1 # Mount the partition(s)
 # vi /etc/fstab # Add the appropriate entry/entries to your /etc/fstab.

   Si vous avez un disque IDE, remplacez da par ad.

    18.3.2.2. Mode dedie

   Si le nouveau disque n'est pas destine a etre partage avec un autre
   systeme d'exploitation, vous pouvez utiliser le mode dedie. Rappelez-vous
   que ce mode peut perturber les systemes d'exploitation Microsoft;
   cependant, ils ne toucheront pas au disque. OS/2(R) d'IBM, au contraire,
   "s'approprie" toute partition qu'il trouve et ne reconnait pas.

 # dd if=/dev/zero of=/dev/da1 bs=1k count=1
 # bsdlabel -Bw da1 auto
 # bsdlabel -e da1                               # create the `e' partition
 # newfs -d0 /dev/da1e
 # mkdir -p /1
 # vi /etc/fstab                         # add an entry for /dev/da1e
 # mount /1

   Un autre methode est:

 # dd if=/dev/zero of=/dev/da1 count=2
 # bsdlabel /dev/da1 | bsdlabel -BR da1 /dev/stdin
 # newfs /dev/da1e
 # mkdir -p /1
 # vi /etc/fstab                                 # add an entry for /dev/da1e
 # mount /1

18.4. RAID

  18.4.1. RAID logiciel

    18.4.1.1. Configuration du pilote de disque concatene (CCD - "Concatenated
    Disk Driver")

   Travail original de Christopher Shumway.
   Revise par Jim Brown.

   Quand il est question du choix d'une solution de stockage de masse les
   criteres de choix les plus importants `a considerer sont la vitesse, la
   fiabilite, et le cout. Il est plutot rare de pouvoir reunir ces trois
   criteres; normalement un peripherique de stockage rapide et fiable est
   couteux, et pour diminuer les couts la vitesse ou la fiabilite doivent
   etre sacrifiees.

   A la conception du systeme decrit plus bas, le cout a ete choisi comme
   facteur le plus important, suivi de la vitesse, et enfin la fiabilite. La
   vitesse de transfert des donnees est limitee par le reseau. Et tandis que
   la fiabilite est tres importante, le disque CCD decrit ci-dessous est
   destine au stockage de donnees en ligne qui sont dej`a completement
   sauvegardees sur CD-Rs et qui peuvent etre facilement remplacees.

   Definir vos propres besoins est la premiere etape dans le choix d'une
   solution de stockage de masse. Si vos criteres de choix privilegient la
   vitesse ou la fiabilite par rapport au cout, votre solution diferera du
   systeme decrit dans cette section.

      18.4.1.1.1. Installation du materiel

   En plus du disque systeme IDE, trois disques Western Digital de 30Go, 5400
   trs/min IDE forment le coeur du disque CCD decrit ci-dessous donnant
   approximativement 90Go de stockage en ligne. La solution ideale serait
   d'avoir pour chaque disque IDE son propre cable et controleur IDE, mais
   pour minimiser les couts, des controleur IDE supplementaires n'ont pas ete
   utilises. Aussi, les disques ont ete configure de telle fac,on que chaque
   controleur IDE ait un disque maitre et un disque esclave.

   Au redemarrage, le BIOS a ete configure pour detecter automatiquement les
   disques attaches. FreeBSD les a d'ailleurs detectes au redemarrage:

 ad0: 19574MB <WDC WD205BA> [39770/16/63] at ata0-master UDMA33
 ad1: 29333MB <WDC WD307AA> [59598/16/63] at ata0-slave UDMA33
 ad2: 29333MB <WDC WD307AA> [59598/16/63] at ata1-master UDMA33
 ad3: 29333MB <WDC WD307AA> [59598/16/63] at ata1-slave UDMA33

  Note:

   Si FreeBSD ne detecte pas les disques, assurez-vous que vous avez
   correctement place les cavaliers. La plupart des disques IDE disposent
   egalement d'un cavalier "Cable Select". Ce n'est pas le cavalier de
   configuration maitre/esclave. Consultez la documentation du disque pour
   identifier le cavalier correct.

   Ensuite, reflechissez sur la maniere de les integrer au systeme de
   fichiers. Vous devriez faire des recherches sur vinum(8) (Chapitre 22, Le
   gestionnaire de volume Vinum) et ccd(4). Dans cette configuration
   particuliere, ccd(4) a ete choisi.

      18.4.1.1.2. Configuration du CCD

   Le pilote ccd(4) vous permet de prendre plusieurs disques identiques et
   les concatener en un seul systeme de fichiers logique. Afin d'utiliser
   ccd(4), vous avez besoin d'un noyau avec le support ccd(4). Ajoutez la
   ligne suivante `a votre fichier de configuration de noyau, recompilez, et
   installez le noyau:

 device   ccd

   Le support ccd(4) peut egalement charge sous la forme d'un module noyau.

   Pour configurer ccd(4), vous devez tout d'abord utiliser bsdlabel(8) pour
   labeliser les disques:

 bsdlabel -w ad1 auto
 bsdlabel -w ad2 auto
 bsdlabel -w ad3 auto

   Cela a cree un label de disque ad1c, ad2c et ad3c qui s'etend sur
   l'integralite du disque.

   L'etape suivante est de modifier le type de label de disque. Vous pouvez
   utiliser bsdlabel(8) pour editer les disques:

 bsdlabel -e ad1
 bsdlabel -e ad2
 bsdlabel -e ad3

   Cela ouvre le label de disque actuel de chaque disque dans l'editeur fixe
   par la variable d'environnement EDITOR, generalement, vi(1).

   Un label de disque non modifie ressemblera `a quelque chose comme ceci:

 8 partitions:
 #        size   offset    fstype   [fsize bsize bps/cpg]
   c: 60074784        0    unused        0     0     0   # (Cyl.    0 - 59597)

   Ajoutez une nouvelle partition e pour etre utilise par ccd(4). Cela peut
   etre une copie de la partition c mais le type de systeme de fichiers
   (fstype) doit etre 4.2BSD. Le label de disque devait ressembler `a:

 8 partitions:
 #        size   offset    fstype   [fsize bsize bps/cpg]
   c: 60074784        0    unused        0     0     0   # (Cyl.    0 - 59597)
   e: 60074784        0    4.2BSD        0     0     0   # (Cyl.    0 - 59597)

      18.4.1.1.3. Creation du systeme de fichiers

   Maintenant que tous les disques sont labelises, vous devez construire le
   ccd(4). Pour cela, utilisez ccdconfig(8), avec des options semblables `a
   ce qui suit:

 ccdconfig ccd01 322 03 /dev/ad1e4 /dev/ad2e /dev/ad3e

   L'utilisation et la signification de chaque option est donnees ci-dessous:

   1 Le premier argument est le peripherique `a configurer, dans ce cas,      
     /dev/ccd0c. La partie /dev/ est optionnelle.                             
   2 L'entrelacement ("interleave") du systeme de fichiers. L'entrelacement   
     definit la taille d'une bande de blocs disque, de 512 octets chacune     
     normalement. Donc un entrelacement de 32 serait d'une largeur de 16384   
     octets.                                                                  
   3 Parametres pour ccdconfig(8). Si vous desirez activer les miroirs        
     disque, vous pouvez specifier un indicateur `a cet endroit. Cette        
     configuration ne fournit pas de miroir pour ccd(4), aussi l'indicateur   
     est a 0 (zero).                                                          
   4 Les derniers arguments de ccdconfig(8) sont les peripheriques `a placer  
     dans le disque concatene. Utilisez le chemin complet pour chaque         
     peripherique.                                                            

   Apres avoir utilise ccdconfig(8) le ccd(4) est configure. Un systeme de
   fichiers peut etre cree. Consultez la page de manuel de newfs(8) pour les
   options disponibles, ou lancez simplement:

 newfs /dev/ccd0c

      18.4.1.1.4. Automatiser la procedure

   Generalement, vous voudrez monter le ccd(4) `a chaque redemarrage. Pour
   cela, vous devez le configurer avant toute chose. Ecrivez votre
   configuration actuelle dans /etc/ccd.conf en utilisant la commande
   suivante:

 ccdconfig -g > /etc/ccd.conf

   Lors du demarrage, la procedure /etc/rc execute ccdconfig -C si
   /etc/ccd.conf existe. Cela configure automatiquement le ccd(4) de fac,on
   `a pouvoir etre monte.

  Note:

   Si vous demarrez en mode mono-utilisateur, avant que vous ne puissiez
   monter le ccd(4), vous devez utiliser la commande suivante pour configurer
   l'unite:

 ccdconfig -C

   Pour monter automatiquement le ccd(4) placez une entrees pour le ccd(4)
   dans /etc/fstab, il sera ainsi monte au demarrage:

 /dev/ccd0c              /media       ufs     rw      2       2

    18.4.1.2. Le gestionnaire de volume Vinum

   Le gestionnaire de volume Vinum est un pilote de peripherique de gestion
   de disques virtuels. Il separe le disque materiel de l'interface de
   peripherique bloc et organise les donnees de telle fac,on qu'il en resulte
   une amelioration de la flexibilite, des performances et de la fiabilite,
   compare `a la vision traditionnelle sous forme partitionnee du stockage
   disque. vinum(8) implemente les modeles RAID-0, RAID-1 et RAID-5,
   individuellement ou combines.

   Voir le Chapitre 22, Le gestionnaire de volume Vinum pour plus
   d'information au sujet de vinum(8).

  18.4.2. RAID Materiel

   FreeBSD supporte egalement de nombreux controleurs RAID. Ces peripheriques
   peuvent controler un systeme RAID sans necessiter l'utilisation d'un
   logiciel specifique pour FreeBSD pour gerer l'unite.

   En utilisant son propre BIOS, la carte controle la plupart des operations
   disque. Ce qui suit est une description rapide d'une configuration
   utilisant un controleur Promise IDE RAID. Quand cette carte est installee
   et le systeme redemarre, une invite s'affichera posant quelques questions.
   Suivez les instructions `a l'ecran pour atteindre l'ecran de configuration
   de la carte. A partir de l`a, vous avez la possibilite de combiner tous
   les disques attaches. En faisant cela, les disques apparaitront sous la
   forme d'un unique disque sous FreeBSD. D'autres niveaux RAID peuvent etre
   configures en consequence.

  18.4.3. Reconstruire une unite ATA RAID1

   FreeBSD vous permet de remplacer `a chaud un disque defectueux dans une
   unite. Cela doit etre fait avant redemarrage.

   Vous verrez probablement dans /var/log/messages ou dans la sortie de
   dmesg(8) quelque chose comme:

 ad6 on monster1 suffered a hard error.
 ad6: READ command timeout tag=0 serv=0 - resetting
 ad6: trying fallback to PIO mode
 ata3: resetting devices .. done
 ad6: hard error reading fsbn 1116119 of 0-7 (ad6 bn 1116119; cn 1107 tn 4 sn 11)
 status=59 error=40
 ar0: WARNING - mirror lost

   En utilisant atacontrol(8), recherchez de plus amples informations:

 # atacontrol list
 ATA channel 0:
         Master:      no device present
         Slave:   acd0 <HL-DT-ST CD-ROM GCR-8520B/1.00> ATA/ATAPI rev 0

 ATA channel 1:
         Master:      no device present
         Slave:       no device present

 ATA channel 2:
         Master:  ad4 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5
         Slave:       no device present

 ATA channel 3:
         Master:  ad6 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5
         Slave:       no device present

 # atacontrol status ar0
 ar0: ATA RAID1 subdisks: ad4 ad6 status: DEGRADED

    1. Vous devrez detacher le canal ATA avec le disque defectueux de fac,on
       `a pouvoir le retirer sans risque:

 # atacontrol detach ata3

    2. Remplacer le disque.

    3. Rattacher le canal ATA:

 # atacontrol attach ata3
 Master:  ad6 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5
 Slave:   no device present

    4. Rajouter le disque de rechange `a l'unite:

 # atacontrol addspare ar0 ad6

    5. Recontruire l'unite:

 # atacontrol rebuild ar0

    6. Il est possible de controler l'avancee de la procedure en utilisant la
       commande suivante:

 # dmesg | tail -10
 [output removed]
 ad6: removed from configuration
 ad6: deleted from ar0 disk1
 ad6: inserted into ar0 disk1 as spare

 # atacontrol status ar0
 ar0: ATA RAID1 subdisks: ad4 ad6 status: REBUILDING 0% completed

    7. Attendre jusqu'`a la fin de cette operation.

18.5. Peripheriques de stockage USB

   Contribution de Marc Fonvieille.

   De nombreuses solutions de stockage externes utilisent, de nos jours, le
   bus serie universel ("Universal Serial Bus"-USB): disques durs, cles USB,
   graveurs de CDs, etc. FreeBSD fournit un support pour ces peripheriques.

  18.5.1. Configuration

   Le pilote de peripheriques USB de stockage de masse, umass(4), fournit le
   support pour les peripheriques de stockage USB. Si vous utilisez le noyau
   GENERIC, vous n'avez rien `a modifier `a votre configuration. Si vous
   utilisez un noyau personnalise, assurez-vous que les lignes suivantes sont
   presentent dans votre fichier de configuration du noyau:

 device scbus
 device da
 device pass
 device uhci
 device ohci
 device usb
 device umass

   Le pilote umass(4) utilise le sous-systeme SCSI pour acceder aux
   peripheriques de stockage USB, votre peripherique USB sera vu par le
   systeme comme etant un peripherique SCSI. En fonction du controleur USB
   present sur votre carte mere, vous n'avez besoin qu'une des lignes device
   uhci et device ohci, cependant avoir les deux lignes dans votre
   configuration du noyau est sans danger. N'oubliez pas de compiler et
   d'installer le nouveau noyau si vous y avez effectue des modifications.

  Note:

   Si votre peripherique USB est un graveur de CD ou de DVD, le pilote de
   peripherique SCSI CD-ROM, cd(4), doit etre ajoute au noyau via la ligne:

 device cd

   Puisque le graveur est vu comme un disque SCSI, le pilote atapicam(4) ne
   devrait pas etre employe dans la configuration du noyau.

   Le support pour les controleurs USB 2.0 est fourni avec FreeBSD vous devez
   cependant ajouter:

 device ehci

   `a votre fichier de configuration pour beneficier du support USB 2.0.
   Notez que les pilotes uhci(4) et ohci(4) sont toujours necessaires si vous
   desirez le support de l'USB 1.X.

  18.5.2. Test de la configuration

   La configuration est prete `a etre testee: branchez votre peripherique
   USB, et dans le tampon des messages du systeme (dmesg(8)), le disque
   devrait apparaitre de cette maniere:

 umass0: USB Solid state disk, rev 1.10/1.00, addr 2
 GEOM: create disk da0 dp=0xc2d74850
 da0 at umass-sim0 bus 0 target 0 lun 0
 da0: <Generic Traveling Disk 1.11> Removable Direct Access SCSI-2 device
 da0: 1.000MB/s transfers
 da0: 126MB (258048 512 byte sectors: 64H 32S/T 126C)

   Bien evidement, le modele, le fichier special de peripherique (da0) et
   d'autres details peuvent etre differents en fonction de votre
   configuration.

   Comme le peripherique USB est vu comme etant un peripherique SCSI, la
   commande camcontrol peut etre employee pour lister les peripheriques de
   stockage USB attaches au systeme:

 # camcontrol devlist
 <Generic Traveling Disk 1.11>      at scbus0 target 0 lun 0 (da0,pass0)

   Si le disque dispose d'un systeme de fichiers, vous devriez pouvoir le
   monter. La Section 18.3, << Ajouter des disques >> vous aidera `a formater
   et creer des partitions sur le disque USB si necessaire.

   Pour rendre ce peripherique montable par un utilisateur normal, un certain
   nombre de parametrages sont necessaires. Tout d'abord, les entrees de
   peripheriques qui sont creees lors de la connexion d'un peripherique USB
   doivent etre accessibles `a l'utilisateur. Une solution est de faire en
   sorte que tous les utilisateurs de ces peripheriques soient membres du
   groupe operator. Cela se fait `a l'aide de pw(8). Ensuite, quand ces
   entrees de peripheriques sont creees, le groupe operator doit pouvoir y
   acceder en lecture et en ecriture. Pour cela, les lignes suivantes sont
   ajoutees `a /etc/devfs.rules:

 [localrules=1]
 add path 'da*' mode 0660 group operator

  Note:

   S'il y a dej`a des disques SCSI dans le systeme, on doit proceder
   legerement differemment. Par exemple, si le systeme contient dej`a des
   disques da0 `a da2 attaches au systeme, changez la seconde ligne pour:

 add path 'da[3-9]*' mode 0660 group operator

   Les disques dej`a presents n'appartiendront pas au groupe operator.

   Vous devez egalement activer votre ensemble de regles devfs.rules(5) dans
   votre fichier /etc/rc.conf:

 devfs_system_ruleset="localrules"

   Le noyau doit etre ensuite configure pour autoriser les utilisateurs
   habituels `a monter des systemes de fichiers. La methode la plus simple
   est d'ajouter la ligne suivante au fichier /etc/sysctl.conf:

 vfs.usermount=1

   Notez que ce parametrage ne prendra effet qu'au prochain redemarrage. Il
   est egalement possible d'utiliser sysctl(8) pour fixer cette variable.

   La derniere etape est de creer un repertoire ou le systeme de fichiers
   sera monte. Ce repertoire doit appartenir `a l'utilisateur qui montera le
   systeme de fichiers. Une methode adaptee et la creation par root d'un
   sous-repertoire /mnt/$USER appartenant `a l'utilisateur en question
   (remplacez $USER par le nom d'utilisateur de cet utilisateur):

 # mkdir /mnt/$USER
 # chown $USER:$USER /mnt/$USER

   Supposez qu'une cle USB soit branchee et qu'un peripherique /dev/da0s1
   apparait. Comme ce type de peripheriques est en general livre preformate
   avec un systeme de fichiers de type FAT, on pourra le monter de cette
   maniere:

 % mount -t msdosfs -m 644 -M 755 /dev/da0s1 /mnt/$USER

   Si vous debranchez le peripherique (le disque doit etre demonte
   auparavant), vous devriez voir dans les messages du systeme quelque chose
   comme:

 umass0: at uhub0 port 1 (addr 2) disconnected
 (da0:umass-sim0:0:0:0): lost device
 (da0:umass-sim0:0:0:0): removing device entry
 GEOM: destroy disk da0 dp=0xc2d74850
 umass0: detached

  18.5.3. Lectures supplementaires

   En plus des sections Ajouter des disques et Monter et demonter des
   systemes de fichiers, la lecture de differentes pages de manuel peut etre
   egalement utile: umass(4), camcontrol(8), et usbdevs(8).

18.6. Creation et utilisation de supports optiques (CDs)

   Contribution de Mike Meyer.

  18.6.1. Introduction

   Les CDs se differencient des disques conventionnels par de nombreuses
   caracteristiques. Au depart, ils n'etaient pas inscriptible par
   l'utilisateur. Ils sont conc,u pour etre lut de fac,on continue sans delai
   pour deplacer la tete de lecture entre les pistes. Ils sont egalement plus
   facile `a deplacer entre systemes que les supports de meme taille `a cette
   epoque.

   Les CDs possedent des pistes, mais cela fait reference `a un ensemble de
   donnees qui peuvent etre lues de fac,on continue et non pas `a une
   particularite physique du disque. Pour produire un CD sous FreeBSD, il
   faut preparer les fichiers de donnees qui vont constituer les pistes sur
   le CD, puis ecrire les pistes sur le CD.

   Le systeme de fichiers ISO 9660 a ete conc,u pour gerer ces differences.
   Malheureusement il incorpore des limites du systeme de fichiers qui
   semblaient normale alors. Mais heureusement, il fournit un mecanisme
   d'extension qui permet au CDs proprement graves de passer outre ces
   limites tout en restant lisibles par les systemes qui ne supportent pas
   ces extensions.

   Le logiciel sysutils/cdrtools comprend mkisofs(8), un programme que vous
   pouvez utiliser pour produire un fichier de donnees contenant un systeme
   de fichiers ISO 9660. Il dispose d'options pour le support de diverses
   extensions, et est decrit ci-dessous.

   L'outil a utiliser pour graver un CD varie en fonction du type de graveur
   de CD: ATAPI ou autre. Les graveurs ATAPI utilisent le programme burncd
   qui fait partie du systeme de base. Les graveurs SCSI ou USB devraient
   utiliser l'utilitaire cdrecord du logiciel porte sysutils/cdrtools port.
   Il est egalement possible d'utiliser cdrecord et d'autres outils pour
   lecteurs SCSI sur du materiel ATAPI avec le module ATAPI/CAM.

   Si vous voulez un programme de gravure de CD avec une interface graphique,
   vous devriez jeter un oeil `a X-CD-Roast ou K3b. Ces outils sont
   disponibles sous une version pre-compilee ou `a partir des logiciels
   portes sysutils/xcdroast et sysutils/k3b. X-CD-Roast et K3b necessitent le
   module ATAPI/CAM avec des peripheriques ATAPI.

  18.6.2. mkisofs

   L'utilitaire mkisofs(8), qui fait partie du logiciel porte
   sysutils/cdrtools, produit un systeme de fichiers ISO 9660 qui est une
   image de l'arborescence des repertoires dans un systeme de fichiers
   UNIX(R). L'utilisation la plus simple est:

 # mkisofs -o fichierimage.iso /chemin/vers/arborescence

   Cette commande creera un fichierimage.iso contenant un systeme de fichiers
   ISO 9660 qui est une copie de l'arborescence /chemin/vers/arborescence.
   Durant le processus de creation, les noms de fichiers seront modifies de
   fac,on `a respecter les limitations de la norme ISO 9660, et rejettera les
   fichiers ayant des noms non acceptables pour un systeme de fichiers ISO.

   De nombreuses options sont disponibles pour passer outre ces restrictions.
   En particulier, -R qui autorise les extensions Rock Ridge communes aux
   systemes UNIX(R), -J qui active les extensions Joliet utilisees par les
   systemes Microsoft, et -hfs peut etre utilise pour creer des systemes de
   fichiers HFS utilises par Mac OS(R).

   Pour des CDs qui sont destines `a n'etre utilise que sur des systemes
   FreeBSD, l'option -U peut etre utilisee pour desactiver toutes les
   restrictions au niveau des noms de fichiers. Quand elle est utilisee avec
   l'option -R, cela produit une image de systeme de fichiers qui est
   identique `a l'arborescence FreeBSD d'origine, cependant ce systeme de
   fichiers pourra violer la norme ISO 9660 de nombreuses fac,on.

   La derniere option d'usage general est l'option -b. Elle est utilisee pour
   indiquer l'emplacement de l'image de demarrage `a utiliser dans la
   creation d'un CD demarrable << El Torito >>. Cette option prend en
   argument le chemin vers une image de demarrage `a partir de la racine de
   l'arborescence qui va etre copiee sur le CD. Par defaut, mkisofs(8) cree
   une image ISO dans un mode appele << emulation de disquette >>, et
   s'attend donc `a une image de demarrage de 1200, 1440 ou 2880 Ko en
   taille. Certains chargeurs, comme celui utilise par les disques
   d'installation de FreeBSD, n'utilisent pas ce mode d'emulation, dans ce
   cas l'option -no-emul-boot devrait etre utilisee. Aussi, si /tmp/monboot
   contient un systeme FreeBSD avec une image de demarrage dans
   /tmp/monboot/boot/cdboot, vous pourrez produire l'image d'un systeme de
   fichiers ISO 9660 dans /tmp/bootable.iso de cette fac,on:

 # mkisofs -R -no-emul-boot -b boot/cdboot -o /tmp/bootable.iso /tmp/monboot

   Cela etant fait, si vous avez le pilote md configure dans votre noyau,
   vous pouvez monter le systeme de fichiers avec:

 # mdconfig -a -t vnode -f /tmp/bootable.iso -u 0
 # mount -t cd9660 /dev/md0 /mnt

   A ce moment vous pouvez verifier que /mnt et /tmp/monboot sont identique.

   Il existe de nombreuses autres options que vous pouvez utiliser avec
   mkisofs(8) pour regler finement son comportement. En particulier: les
   modifications d'une organisation ISO 9660 et la creation de disques Joliet
   et HFS. Voir la page de manuel mkisofs(8) pour plus de details.

  18.6.3. burncd

   Si vous disposez d'un graveur de CD ATAPI, vous pouvez utiliser la
   commande burncd pour graver une image ISO sur un CD. burncd fait partie du
   systeme de base, installe sous /usr/sbin/burncd. Son utilisation est tres
   simple, car il dispose de peu d'options:

 # burncd -f cddevice data fichierimage.iso fixate

   Gravera une copie de fichierimage.iso sur cddevice. Le peripherique par
   defaut est /dev/acd0. Consultez burncd(8) pour les options pour fixer la
   vitesse d'ecriture, ejecter le CD apres gravure, et graver des donnees
   audios.

  18.6.4. cdrecord

   Si vous n'avez pas de graveur de CD ATAPI, vous devrez utiliser cdrecord
   pour graver vos CDs. cdrecord ne fait pas partie du systeme de base; vous
   devez l'installer soit `a partir du logiciel porte sysutils/cdrtools ou de
   la version pre-compilee appropriee. Des modifications du systeme de base
   peuvent provoquer le dysfonctionnement des versions binaires de ce
   programme, et donner lieu `a une production de "dessous de bouteille".
   Vous devrez par consequent soit mettre `a jour le logiciel porte quand
   vous mettez `a jour votre systeme, soit si vous suivez la branche -STABLE,
   mettre `a jour le logiciel porte lorsqu'une nouvelle version est
   disponible.

   Bien que cdrecord dispose de nombreuses options, l'usage de base est meme
   plus simple qu'avec burncd. La gravure d'une image ISO 9660 se fait avec:

 # cdrecord dev=device fichierimage.iso

   La partie delicate dans l'utilisation de cdrecord est la recherche de la
   valeur `a utiliser pour l'option dev. Pour determiner le bon parametre `a
   utiliser, utilisez l'indicateur -scanbus de cdrecord, qui produira des
   resultats du type:

 # cdrecord -scanbus
 Cdrecord-Clone 2.01 (i386-unknown-freebsd7.0) Copyright (C) 1995-2004 Jo:rg Schilling
 Using libscg version 'schily-0.1'
 scsibus0:
         0,0,0     0) 'SEAGATE ' 'ST39236LW       ' '0004' Disk
         0,1,0     1) 'SEAGATE ' 'ST39173W        ' '5958' Disk
         0,2,0     2) *
         0,3,0     3) 'iomega  ' 'jaz 1GB         ' 'J.86' Removable Disk
         0,4,0     4) 'NEC     ' 'CD-ROM DRIVE:466' '1.26' Removable CD-ROM
         0,5,0     5) *
         0,6,0     6) *
         0,7,0     7) *
 scsibus1:
         1,0,0   100) *
         1,1,0   101) *
         1,2,0   102) *
         1,3,0   103) *
         1,4,0   104) *
         1,5,0   105) 'YAMAHA  ' 'CRW4260         ' '1.0q' Removable CD-ROM
         1,6,0   106) 'ARTEC   ' 'AM12S           ' '1.06' Scanner
         1,7,0   107) *

   Cela donne la valeur dev appropriee pour les peripheriques listes.
   Recherchez votre graveur de CD dans la liste, et utilisez les trois
   chiffres separes par une virgule comme valeur pour dev. Dans notre cas le
   peripherique de gravure est 1,5,0, donc l'entree appropriee serait
   dev=1,5,0. Il existe des manieres plus simple de specifier cette valeur,
   consultez la page de manuel cdrecord(1) pour des details. C'est egalement
   la documentation `a consulter pour des informations sur la gravure de
   pistes audios, le controle de la vitesse, et d'autres choses.

  18.6.5. Dupliquer des CDs Audio

   Vous pouvez dupliquer un CD audio en effectuant l'extraction des donnees
   audio du CD vers un ensemble de fichiers, puis graver ces fichiers sur un
   CD vierge. Le processus est legerement different entre lecteurs ATAPI et
   SCSI.

   Procedure 18.1. Lecteurs SCSI
    1. Utiliser cdda2wav pour effectuer l'extraction audio.

 % cdda2wav -v255 -D2,0 -B -Owav

    2. Utiliser cdrecord pour graver les fichiers .wav.

 % cdrecord -v dev=2,0 -dao -useinfo  *.wav

       Assurez-vous que 2,0 est choisi correctement, comme decrit dans
       Section 18.6.4, << cdrecord >>.

   Procedure 18.2. Lecteurs ATAPI
    1. Le pilote CD ATAPI rend disponible chaque piste sous la forme
       /dev/acddtnn, ou d est le numero de lecteur, et nn est le numero de la
       piste ecrit sur deux digits decimaux. Donc la premiere piste sur le
       premier lecteur est /dev/acd0t01, la seconde est /dev/acd0t02, la
       troisieme /dev/acd0t03, et ainsi de suite.

       Assurez-vous que les fichiers appropries existent sous /dev. Si ces
       entrees sont absentes, forcez le systeme `a lire le disque `a nouveau:

 # dd if=/dev/acd0 of=/dev/null count=1

    2. Extraire chaque piste en utilisant dd(1). Vous devez egalement
       preciser une taille de bloc durant l'extraction des fichiers.

 # dd if=/dev/acd0t01 of=piste1.cdr bs=2352
 # dd if=/dev/acd0t02 of=piste2.cdr bs=2352
 ...

    3. Graver les fichiers recuperes en utilisant burncd. Vous devez
       specifier que ce sont des fichiers audio, et que burncd devra fermer
       le disque une fois termine.

 # burncd -f /dev/acd0 audio piste1.cdr piste2.cdr ... fixate

  18.6.6. Dupliquer des CDs de donnees

   vous pouvez copier un CD de donnees vers un fichier image equivalent au
   fichier cree avec mkisofs(8), et vous pouvez l'utiliser pour dupliquer
   n'importe quel CD de donnees. L'exemple presente ici suppose que votre
   lecteur de CDROM est les peripherique acd0. Remplacez-le avec le
   peripherique correct.

 # dd if=/dev/acd0 of=fichier.iso bs=2048

   Vous disposez maintenant d'une image, vous pouvez la graver comme decrit
   plus haut.

  18.6.7. Utiliser des CDs de donnees

   Maintenant que vous avez cree une CDROM de donnees standard, vous voulez
   probablement le monter et lire les donnees presentes. Par defaut, mount(8)
   suppose que le systeme de fichier `a monter est de type UFS. Si vous
   essayez quelque chose comme:

 # mount /dev/cd0 /mnt

   vous obtiendrez une erreur du type Incorrect super block, et pas de
   montage. Le CDROM n'est pas un systeme de fichiers de type UFS, aussi
   toute tentative de montage de ce type echouera. Vous devez juste preciser
   `a mount(8) que le systeme de fichiers est du type ISO9660, et tout
   fonctionnera. Cela se fait en specifiant l'option -t cd9660 option `a
   mount(8). Par exemple, si vous desirez monter un CDROM, contenu dans le
   lecteur /dev/cd0, sous /mnt, vous devrez executer:

 # mount -t cd9660 /dev/cd0 /mnt

   Notez que votre nom de lecteur (/dev/cd0 dans cet exemple) pourra etre
   different, en fonction de l'interface utilisee par votre lecteur de CDROM.
   De plus l'option -t cd9660 ne fait qu'executer la commande
   mount_cd9660(8). L'exemple precedent pourrait etre reduit `a:

 # mount_cd9660 /dev/cd0 /mnt

   Vous pouvez generalement utiliser des CDROMs de donnees de n'importe
   quelle provenance de cette fac,on. Les disques avec certaines extensions
   ISO 9660 pourront se comporter de fac,on etrange, cependant. Par exemple,
   les disques Joliet conservent tous les noms de fichiers en utilisant des
   caracteres Unicodes sur 2 octets. Le noyau FreeBSD ne comprend pas
   l'Unicode, mais le pilote CD9660 de FreeBSD est en mesure de convertir au
   vol les caracteres Unicode. Si des caracteres non-anglais apparaissent
   sous la forme de points d'interrogation, vous devrez preciser la table de
   caracteres locale que vous utilisez avec l'option -C. Pour plus
   d'information, consultez la page de manuel mount_cd9660(8).

  Note:

   Pour pouvoir effectuer cette conversion de caracteres `a l'aide de
   l'option -C, le module cd9660_iconv.ko devra etre charge. Cela peut etre
   fait soit en ajoutant au fichier loader.conf la ligne:

 cd9660_iconv_load="YES"

   puis en redemarrant la machine, soit en chargeant directement le module
   avec kldload(8).

   Occasionnellement, vous pourrez obtenir le message Device not configured
   (peripherique non configure) lors d'une tentative de montage d'un CDROM.
   Cela veut generalement dire que le lecteur de CDROM pense qu'il n'y a pas
   de disque dans le lecteur, ou que le lecteur n'est pas visible sur le bus.
   Cela peut demander plusieurs secondes `a un lecteur de CDROM de
   s'apercevoir qu'il a ete charge, soyez donc patient.

   Parfois, un lecteur de CDROM SCSI peut etre manquant parce qu'il n'a pas
   eu suffisamment de temps pour repondre `a la reinitialisation du bus. Si
   vous avez un lecteur de CDROM SCSI, veuillez ajouter l'option suivante `a
   la configuration de votre noyau et recompiler votre noyau.

 options SCSI_DELAY=15000

   Ceci demande `a votre bus SCSI une pause de 15 seconds au demarrage, pour
   donner `a votre lecteur de CDROM une chance de repondre la
   reinitialisation du bus.

  18.6.8. Graver des CDs de donnees brutes

   Il est possible de graver directement un fichier sur CD, sans creer de
   systeme de fichiers ISO 9660. Certaines personnes le font dans le cas de
   sauvegardes. Cela est beaucoup plus rapide que de graver un CD standard:

 # burncd -f /dev/acd1 -s 12 data archive.tar.gz fixate

   Afin de recuperer les donnees gravees sur un tel CD, vous devez lire les
   donnees `a partir du fichier special de peripheriques en mode caractere:

 # tar xzvf /dev/acd1

   Vous ne pouvez monter ce disque comme vous le feriez avec un CDROM
   classique. Un tel CDROM ne pourra etre lu sous un autre systeme
   d'exploitation en dehors de FreeBSD. Si vous voulez etre en mesure de
   monter le CD, ou d'en partager les donnees avec un autre systeme
   d'exploitation, vous devez utiliser mkisofs(8) comme decrit plus haut.

  18.6.9. Utilisation du pilote de peripherique ATAPI/CAM

   Contribution de Marc Fonvieille.

   Ce pilote permet d'acceder aux peripheriques ATAPI (lecteurs de CD-ROM,
   graveurs CD-RW, lecteur de DVD etc...) par l'intermediaire du sous-systeme
   SCSI, et autorise l'utilisation d'applications comme sysutils/cdrdao ou
   cdrecord(1).

   Pour utiliser ce pilote, vous devrez ajouter la ligne suivante au fichier
   /boot/loader.conf:

 atapicam_load="YES"

   puis redemarrez votre machine.

  Note:

   Si vous preferez compiler en statique dans le noyau le support
   atapicam(4), vous devrez ajouter au fichier de configuration du noyau la
   ligne:

 device atapicam

   Vous avez egalement besoin des lignes suivantes dans votre fichier de
   configuration:

 device ata
 device scbus
 device cd
 device pass

   qui devraient etre dej`a presentes. Puis recompilez, installez votre
   nouveau noyau, et enfin redemarrez votre machine.

   Lors du demarrage, votre graveur devrait apparaitre, comme suit:

 acd0: CD-RW <MATSHITA CD-RW/DVD-ROM UJDA740> at ata1-master PIO4
 cd0 at ata1 bus 0 target 0 lun 0
 cd0: <MATSHITA CDRW/DVD UJDA740 1.00> Removable CD-ROM SCSI-0 device
 cd0: 16.000MB/s transfers
 cd0: Attempt to query device size failed: NOT READY, Medium not present - tray closed

   Le lecteur doit etre accessible via le nom de peripherique /dev/cd0, par
   exemple pour monter un CD-ROM sous /mnt, tapez juste ce qui suit:

 # mount -t cd9660 /dev/cd0 /mnt

   En tant que root, vous pouvez executer la commande suivante pour obtenir
   l'adresse SCSI du graveur:

 # camcontrol devlist
 <MATSHITA CDRW/DVD UJDA740 1.00>   at scbus1 target 0 lun 0 (pass0,cd0)

   Donc 1,0,0 sera l'adresse SCSI `a utiliser avec cdrecord(1) et tout autre
   application SCSI.

   Pour plus d'information concernant ATAPI/CAM et le systeme SCSI, consultez
   les pages de manuel atapicam(4) et cam(4).

18.7. Creation et utilisation de supports optiques (DVDs)

   Contribution de Marc Fonvieille.
   Avec l'aide de Andy Polyakov.

  18.7.1. Introduction

   Compare au CD, le DVD est la generation technologique suivante de support
   optique de stockage de donnees. Un DVD peut contenir plus de donnees qu'un
   CD et est de nos jour le standard pour la publication de videos.

   Cinq formats physiques enregistrables peuvent etre definis pour ce que
   nous appellerons un DVD enregistrable:

     * DVD-R: Ce fut le premier format DVD enregistrable disponible. La norme
       DVD-R est definie par le Forum DVD. Ce format n'est pas
       reinscriptible.

     * DVD-RW: C'est la version reinscriptible du standard DVD-R. Un DVD-RW
       peut supporter environ 1000 reecritures.

     * DVD-RAM: C'est egalement un format reinscriptible supporte par le
       Forum DVD. Un DVD-RAM peut etre vu comme un disque dur extractible.
       Cependant, ce support n'est pas compatible avec la plupart des
       lecteurs DVD-ROM et DVD-Video; seuls quelques graveurs de DVDs
       supportent le DVD-RAM. Consultez la Section 18.7.9, << Utiliser un
       disque DVD-RAM >> pour plus d'information sur l'utilisation d'un
       DVD-RAM.

     * DVD+RW: C'est un format reinscriptible defini par l' Alliance DVD+RW.
       Un DVD+RW supporte environ 1000 reecritures.

     * DVD+R: Ce format est la version non-reinscriptible du format DVD+RW.

   Un DVD enregistrable simple couche peut contenir jusqu'`a
   4 700 000 000 octets ce qui equivaut en fait `a 4.38 Go ou 4485 Mo (1
   kilo-octet represente 1024 octets).

  Note:

   Une difference doit etre faite entre un support physique et son
   application. Par exemple un DVD-Video est une organisation de fichiers
   particuliere qui peut etre ecrite sur n'importe quel type de DVD
   enregistrable: DVD-R, DVD+R, DVD-RW etc. Avant de choisir le type de
   support, vous devez vous assurer que le graveur et le lecteur de DVD-Video
   (lecteur de salon ou un lecteur de DVD-ROM sur un micro-ordinateur) sont
   compatibles avec le support.

  18.7.2. Configuration

   Le programme growisofs(1) sera utilise pour effectuer la gravure des DVDs.
   Cette commande fait partie des utilitaires dvd+rw-tools
   (sysutils/dvd+rw-tools). Les outils dvd+rw-tools supportent l'ensemble des
   supports DVD.

   Ces utilitaires utilisent le sous-systeme SCSI pour acceder aux
   peripheriques, par consequent le support ATAPI/CAM doit etre ajoute `a
   votre noyau. Si votre graveur utilise l'interface USB, cet ajout est
   inutile et vous devriez lire la Section 18.5, << Peripheriques de stockage
   USB >> sur la configuration de peripheriques USB.

   Vous devez egalement activer l'acces aux peripheriques ATAPI par DMA, cela
   peut etre fait en ajoutant la ligne suivante au fichier /boot/loader.conf:

 hw.ata.atapi_dma="1"

   Avant de tenter d'utiliser les utilitaires dvd+rw-tools vous devriez
   consulter les notes de compatibilite materielle des dvd+rw-tools pour des
   informations concernant votre graveur de DVDs.

  Note:

   Si vous desirez une interface graphique, vous devriez jeter un oeil `a K3b
   (sysutils/k3b) qui offre une interface conviviale `a growisofs(1) et `a
   d'autres outils de gravure.

  18.7.3. Graver des DVDs de donnees

   La commande growisofs(1) est une interface `a mkisofs, elle invoquera
   mkisofs(8) pour la creation du systeme de fichiers et effectuera la
   gravure des donnees sur le DVD. Cela signifie que vous n'avez pas besoin
   de creer une image des donnees avant le processus de gravure.

   Pour ecrire les donnees du repertoire /path/to/data, utilisez la commande
   suivante:

 # growisofs -dvd-compat -Z /dev/cd0 -J -R /path/to/data

   Les options -J -R sont passees `a mkisofs(8) pour la creation du systeme
   de fichiers (dans le cas present: un systeme de fichiers ISO 9660 avec les
   extensions Joliet et Rock Ridge), consultez la page de manuel de
   mkisofs(8) pour plus de details.

   L'option -Z est utilisee pour la session d'ecriture initiale dans tous les
   cas: multi-sessions ou pas. Le peripherique correspondant au graveur,
   /dev/cd0, doit etre adapte en fonction de votre configuration. Le
   parametre -dvd-compat provoquera la fermeture du disque, rien ne pourra
   etre ecrit `a la suite de l'enregistrement. En retour cela devrait donner
   lieu `a une plus grande compatibilite avec les lecteurs de DVD-ROMs.

   Il est egalement possible de graver une image de systeme de fichiers, par
   exemple pour graver l'image imagefile.iso, nous lancerons:

 # growisofs -dvd-compat -Z /dev/cd0=imagefile.iso

   La vitesse d'ecriture devrait etre detectee et positionnee automatiquement
   en fonction du support et du graveur utilise. Si vous voulez forcer la
   vitesse de gravure, utilisez le parametre -speed=. Pour plus
   d'informations, lisez la page de manuel de growisofs(1).

  18.7.4. Graver un DVD-Video

   Un DVD-Video est un systeme de fichiers particulier base sur les
   specifications IS0 9660 et micro-UDF (M-UDF). Le DVD-Video presente
   egalement une arborescence de donnees specifique, c'est la raison pour
   laquelle vous devez utiliser un programme particulier tel que
   multimedia/dvdauthor pour creer le DVD.

   Si vous disposez dej`a d'une image du systeme de fichiers du DVD-Video,
   gravez-la de la meme fac,on que pour une autre image, reportez-vous aux
   sections precedentes pour un exemple. Si vous avez realise vous-meme
   l'arborescence du DVD et que le resultat est dans, par exemple, le
   repertoire /path/to/video, la commande suivante devrait etre utilisee pour
   graver le DVD-Video:

 # growisofs -Z /dev/cd0 -dvd-video /path/to/video

   L'option -dvd-video sera passee `a mkisofs(8) et lui demandera de creer un
   systeme de fichiers de DVD-Video. De plus, l'option -dvd-video implique
   l'option -dvd-compat de growisofs(1).

  18.7.5. Utiliser un DVD+RW

   Contrairement `a un CD-RW, un DVD+RW vierge doit etre formate avant la
   premiere utilisation. Le programme growisofs(1) s'en chargera
   automatiquement quand cela sera necessaire, ce qui est la methode
   recommandee. Cependant vous pouvez utiliser la commande dvd+rw-format pour
   formater le DVD+RW:

 # dvd+rw-format /dev/cd0

   Vous devez effectuer cette operation qu'une seule fois, gardez `a l'esprit
   que seuls des DVD+RW vierges doivent etre formates. Ensuite vous pouvez
   graver le DVD+RW de la maniere vue dans les sections precedentes.

   Si vous voulez graver de nouvelles donnees (graver un systeme de fichiers
   totalement nouveau et pas juste ajouter des donnees) sur un DVD+RW, vous
   n'avez pas besoin de l'effacer, vous avez juste `a recrire sur
   l'enregistrement precedent (en effectuant une nouvelle session initiale),
   comme ceci:

 # growisofs -Z /dev/cd0 -J -R /path/to/newdata

   Le format DVD+RW offre la possibilite d'ajouter facilement des donnees `a
   un enregistrement precedent. L'operation consiste `a fusionner une
   nouvelle session avec la session existante, ceci n'est pas une gravure
   multisession, growisofs(1) augmentera le systeme de fichiers ISO 9660
   present sur le disque.

   Par exemple, si nous voulons ajouter des donnees `a notre DVD+RW
   precedent, nous devons utiliser cela:

 # growisofs -M /dev/cd0 -J -R /path/to/nextdata

   Les memes options de mkisofs(8) utilisees lors de la gravure de la session
   initiale doivent etre `a nouveau utilisees lors des ecritures ulterieures.

  Note:

   Vous pouvez ajouter l'option -dvd-compat si vous desirez une meilleure
   compatibilite avec les lecteurs de DVD-ROM. Dans le cas d'un DVD+RW cela
   ne vous empechera pas de rajouter des donnees par la suite.

   Si pour une quelconque raison vous voulez vraiment effacer le disque,
   faites ce qui suit:

 # growisofs -Z /dev/cd0=/dev/zero

  18.7.6. Utiliser un DVD-RW

   Un DVD-RW accepte deux formats de disque: le format sequentiel incremental
   et le format "restricted overwrite". Par defaut les disques DVD-RW sont
   fournis sous le format sequentiel.

   Un DVD-RW vierge peut etre directement grave sans le besoin d'une
   operation de formatage prealable, cependant un DVD-RW non-vierge au format
   sequentiel doit etre efface avant de pouvoir y ecrire une nouvelle session
   initiale.

   Pour effacer un DVD-RW en mode sequentiel, executez:

 # dvd+rw-format -blank=full /dev/cd0

  Note:

   Une operation d'effacement complete (-blank=full) prendra environ une
   heure avec un support 1x. Un effacement rapide peut etre effectue en
   utilisant l'option -blank si le DVD-RW est destine `a etre enregistre
   suivant le mode d'ecriture Disk-At-Once (DAO). Pour ecrire le DVD-RW
   suivant le mode DAO, utilisez la commande:

 # growisofs -use-the-force-luke=dao -Z /dev/cd0=imagefile.iso

   L'option -use-the-force-luke=dao ne devrait pas etre necessaire puisque
   growisofs(1) tente de detecter les supports effaces rapidement et engage
   une ecriture DAO.

   En fait le mode "restricted overwrite" devrait etre utilise avec tout
   DVD-RW, ce format est plus flexible que le format sequentiel incremental
   par defaut.

   Pour ecrire des donnees sur un DVD-RW en mode sequentiel, utilisez les
   memes instructions que pour tout autre format de DVD:

 # growisofs -Z /dev/cd0 -J -R /path/to/data

   Si vous voulez ajouter des donnees `a votre enregistrement precedent, vous
   devrez utiliser la commande -M de growisofs(1). Cependant, si vous
   effectuez un ajout de donnees sur un DVD-RW en mode sequentiel, une
   nouvelle session sera creee sur le disque avec pour resultat de donner
   naissance `a un disque multi-sessions.

   Un DVD-RW dans le format "restricted overwrite" n'a pas besoin d'etre
   efface avant une nouvelle session initiale, vous avez juste `a recrire sur
   le disque avec l'option -Z, ceci est similaire `a un DVD+RW. Il est
   egalement possible d'augmenter un systeme de fichiers ISO 9660 existant
   ecrit sur le disque de la meme maniere que pour un DVD+RW en utilisant
   l'option -M. Le resultat sera un DVD avec une seule session.

   Pour faire passer un DVD-RW dans le format "restricted overwrite", la
   commande suivante doit etre utilisee:

 # dvd+rw-format /dev/cd0

   Pour revenir au format sequentiel, utilisez:

 # dvd+rw-format -blank=full /dev/cd0

  18.7.7. Multi-sessions

   Tres peu de lecteurs de DVD-ROMs supportent les DVDs multi-sessions, ils
   ne liront, dans le meilleur des cas, que la premiere session. Les DVD+R,
   DVD-R et DVD-RW en mode sequentiel peuvent accepter de multiples sessions,
   la notion de multiples sessions n'existe pas pour les formats DVD+RW et
   DVD-RW en mode "restricted overwrite".

   Utiliser la commande suivante apres une session initiale (non fermee) sur
   un DVD+R, DVD-R, ou DVD-RW en mode sequentiel, ajoutera une nouvelle
   session sur le disque:

 # growisofs -M /dev/cd0 -J -R /path/to/nextdata

   L'utilisation de cette ligne de commande avec un DVD+RW ou un DVD-RW en
   mode "restricted overwrite" aura pour effet d'ajouter les donnees en
   fusionnant la nouvelle session avec celle dej`a presente. Le resultat sera
   un disque mono-session. C'est la methode utilisee pour ajouter des donnees
   sur ces medias apres une ecriture initiale.

  Note:

   De l'espace sur le medium est utilise entre chaque session pour la fin et
   le debut des sessions. Par consequent, tout ajout de donnees devrait se
   faire suivant une quantite importante de donnees pour optimiser l'espace
   sur le disque. Le nombre de sessions est limite `a 154 pour un DVD+R,
   environ 2000 pour un DVD-R, et 127 pour un DVD+R double couche.

  18.7.8. Pour plus d'informations

   Pour obtenir plus d'informations sur un DVD, la commande dvd+rw-mediainfo
   /dev/cd0 peut etre executee avec le disque dans le lecteur.

   Plus d'informations sur les utilitaires dvd+rw-tools peuvent etre trouvees
   dans la page de manuel de growisofs(1), sur le site Web de dvd+rw-tools et
   dans les archives de la liste de diffusion cdwrite.

  Note:

   La sortie de la commande dvd+rw-mediainfo sur le resultat de la gravure ou
   le disque posant probleme est obligatoire avec tout rapport de probleme.
   Sans cette sortie, il sera quasiment impossible de vous aider.

  18.7.9. Utiliser un disque DVD-RAM

    18.7.9.1. Configuration

   Les graveurs de DVD-RAM sont fournis soit avec une interface SCSI soit une
   interface ATAPI. Dans le cas des peripheriques ATAPI, l'acces DMA doit
   etre active, cela peut etre fait en ajoutant la ligne suivante au fichier
   /boot/loader.conf:

 hw.ata.atapi_dma="1"

    18.7.9.2. Preparer le disque

   Comme precise dans l'introduction de cette section, un DVD-RAM peut etre
   vu comme un disque dur extractible. Comme tout autre disque dur le DVD-RAM
   doit etre << prepare >> avant la premiere utilisation. Dans l'exemple,
   l'integralite de l'espace sur le disque sera utilise par un systeme de
   fichiers UFS2 standard:

 # dd if=/dev/zero of=/dev/acd0 count=2
 # bsdlabel -Bw acd0
 # newfs /dev/acd0

   Le peripherique DVD acd0 doit etre modifie en fonction de la
   configuration.

    18.7.9.3. Utiliser le disque

   Une fois les operations precedentes effectuees sur le DVD-RAM, il peut
   etre monte comme un disque dur classique:

 # mount /dev/acd0 /mnt

   Apres cela, on pourra lire et ecrire sur le DVD-RAM.

18.8. Creation et utilisation de disquettes

   Travail original de Julio Merino.
   Reecrit par Martin Karlsson.

   Sauvegarder des donnees sur disquette est parfois utile, par exemple quand
   on a pas d'autre support de stockage amovible de disponible ou quand on
   doit transferer de petites quantites de donnees sur un autre ordinateur.

   Cette section expliquera comment utiliser des disquettes sous FreeBSD.
   Elle couvrira principalement le formatage et l'utilisation de disquettes
   DOS de 3.5pouces, mais les concepts exposes sont identiques pour d'autres
   formats de disquettes.

  18.8.1. Formater des disquettes

    18.8.1.1. Le peripherique

   On accede aux disquettes par l'intermediaire d'entrees dans /dev, comme
   pour tout autre peripherique. Pour acceder directement `a la disquette,
   utilisez simplement /dev/fdN.

    18.8.1.2. Le formatage

   Une disquette doit subir un formatage bas niveau avant d'etre utilisable.
   Il est generalement realise par le constructeur, mais le formatage est une
   bonne maniere de controler l'integrite du support. Bien qu'il soit
   possible de forcer une plus grande (ou plus petite) capacite, 1440Ko est
   celle pour laquelle sont conc,ues la plupart des disquettes.

   Pour effectuer un formatage bas niveau d'une disquette vous devez utiliser
   fdformat(1). L'utilitaire attend le nom du peripherique en argument.

   Notez tout message d'erreur, sachant que cela peut aider `a determiner si
   la disquette est bonne ou defectueuse.

      18.8.1.2.1. Formatage des disquettes

   Utilisez un des peripheriques /dev/fdN.size, pour formater la disquette.
   Inserez une disquette 3.5pouces dans votre lecteur et tapez:

 # /usr/sbin/fdformat -f 1440 /dev/fd0

  18.8.2. Le label de disque

   Apres le formatage bas niveau du disque, vous devrez y placer un label de
   disque. Ce label sera detruit plus tard, mais il est necessaire au systeme
   pour determiner par la suite la taille et la geometrie du disque.

   Le nouveau label de disque prendra l'integralite du disque, et contiendra
   l'information correcte sur la geometrie de la disquette. Les differentes
   geometries possibles pour le label sont listees dans /etc/disktab.

   Vous pouvez maintenant executer bsdlabel(8) de la fac,on suivante:

 # /sbin/bsdlabel -B -w /dev/fd0 fd1440

  18.8.3. Le systeme de fichiers

   La disquette est maintenant fin prete pour un formatage haut niveau. Cette
   operation placera un nouveau systeme de fichiers sur la disquette, qui
   permettra `a FreeBSD d'ecrire et de lire sur le disque. Apres la creation
   du nouveau systeme de fichiers, le label disque est detruit, aussi si vous
   desirez reformater le disque, vous devrez recreer le label de disque `a
   nouveau.

   Le systeme de fichiers de la disquette peut soit etre de l'UFS soit
   utiliser le systeme FAT. Le systeme FAT est generalement un meilleur choix
   pour les disquettes.

   Pour placer un nouveau systeme de fichier sur la disquette faites ceci:

 # /sbin/newfs_msdos /dev/fd0

   La disquette est maintenant prete `a etre utilisee.

  18.8.4. Utilisation de la disquette

   Pour utiliser la disquette, montez-la avec mount_msdosfs(8). On peut
   egalement utiliser emulators/mtools du catalogue des logiciels portes.

18.9. Creer et utiliser les bandes magnetiques

   Les principaux types de bandes sont les 4mm, 8mm, QIC, les mini-cartouches
   et les DLTs.

  18.9.1. Bandes 4mm (DDS: "Digital Data Storage")

   Les bandes 4mm sont en train de remplacer les bandes QIC comme le format
   usuel de sauvegarde pour les stations de travail. Cette tendance s'est
   acceleree quand Conner a rachete Archive, un des leaders de la fabrication
   des lecteurs QIC, et a arrete la production de ces derniers. Les lecteurs
   4mm sont petits et silencieux mais n'ont pas la reputation de fiabilite
   des lecteurs 8mm. Les cartouches sont moins couteuse et plus petites (3 x
   2 x 0.5 pouces, 76 x 51 x 12 mm) que les cartouches 8mm. Les cartouches
   4mm, tout comme les 8mm, ont une duree de vie faible car elles utilisent
   un procede de lecture/ecriture en helice.

   Le debit de ces lecteurs va de ~150 Ko/s `a ~500 Ko/s au maximum. Leur
   capacite de varie de 1.3 Go `a 2.0 Go. La compression materielle,
   disponible sur la plupart des lecteurs, double approximativement leur
   capacite. Les unites multi-lecteurs peuvent avoir jusqu'`a 6 lecteurs dans
   une seule tour avec changement automatique de bande. La capacite totale
   atteint 240 Go.

   Le standard DDS-3 supporte maintenant des capacites de bande jusqu'`a
   12 Go (ou 24 Go compresses).

   Les lecteurs 4mm, comme les lecteurs 8mm, utilisent un procede de
   lecture/ecriture en helice. Tous les avantages et les inconvenients de ce
   procede s'appliquent aux deux types de lecteurs.

   Les bandes doivent etre changees apres 2000 utilisations ou 100
   sauvegardes completes.

  18.9.2. Bandes 8mm (Exabyte)

   Les unites de bandes 8mm sont les lecteurs de bandes SCSI les plus
   courant; c'est le meilleur choix de bandes amovibles. Presque chaque site
   dispose d'une unite Exabyte 2 Go 8mm. Les lecteurs 8mm sont fiables,
   pratiques et silencieux. Les cartouches sont bon marche et d'encombrement
   faible (4.8 x 3.3 x 0.6 pouces; 122 x 84 x 15 mm). Un des inconvenients de
   la bande 8mm est la duree de vie relativement courte des bandes et des
   tetes de lectures en raison de la grande vitesse de defilement de la bande
   devant les tetes.

   Leur debit va de ~250 Ko/s `a ~500 Ko/s. Leur capacite commence `a 300 Mo
   jusqu'`a 7 Go. La compression materielle, disponible sur la plupart des
   lecteurs, double approximativement la capacite. Ces lecteurs sont
   disponibles sous forme d'unite simple ou multiple accueillant 6 lecteurs
   et 120 bandes. Les bandes sont changees automatiquement par l'unite. Ils
   peuvent gerer une capacite de stockage de plus de 840 Go.

   Le lecteur Exabyte "Mammoth" supporte 12 Go sur une seule bande (24 Go
   compresse) et coute approximativement le double d'un lecteur classique.

   L'enregistrement des donnees sur la bande utilise un procede en helice,
   les tetes sont positionnees en biais par rapport `a la bande (environ 6
   degres). La bande fait un angle de 270 degres avec le cylindre sur lequel
   se trouvent les tetes. Ce cylindre tourne en meme temps que la bande
   defile. Il en resulte donc une grande densite de donnees et des pistes
   tres serrees qui vont de biais d'un bord `a l'autre de la bande.

  18.9.3. QIC

   Les bandes et les lecteurs QIC-150 sont, peut-etre, le format le plus
   courant. Les lecteurs QIC sont les moins chers des supports de sauvegarde
   "serieux". Leur inconvenient par contre est le cout des bandes. Les bandes
   QIC sont cheres comparees aux bandes 8mm ou 4mm, jusqu'`a 5 fois le cout
   au Go. Mais, si une demi-douzaine de bandes vous suffit, le format QIC
   peut etre le bon choix. QIC est le format le plus repandu. Chaque site
   dispose d'un lecteur QIC d'une densite ou d'une autre. C'est l`a la
   difficulte, il existe de nombreuses densites pour des bandes physiquement
   semblables (parfois meme identiques). Les lecteurs QIC ne sont pas
   silencieux. Ces lecteurs se positionnent bruyamment avant d'enregistrer
   des donnees et ont les entend clairement lors de lecture, ecriture ou
   recherche. Les bandes QIC sont volumineuses: 6 x 4 x 0.7 pouces (152 x
   102 x 17 mm).

   Leur debit va de ~150 Ko/s `a ~500 Ko/s. Leur capacite varie de 40 Mo `a
   15 Go. La compression materielle est disponible sur de nombreux lecteurs
   recents. Les lecteurs QIC sont de moins en moins utilises, ils sont
   supplantes par les lecteurs DAT.

   Les donnees sont enregistrees sur des pistes sur la bande. Les pistes sont
   paralleles `a la bande et vont d'une extremite `a l'autre. Le nombre de
   piste, et par consequent la largeur des pistes, varie avec la capacite de
   la bande. La plupart des nouveaux lecteurs fournissent au moins une
   compatibilite descendante en lecture (mais aussi en ecriture). Le format
   QIC a une bonne reputation de securite des donnees (la mecanique est plus
   simple et plus robuste que les lecteurs `a systeme en helice).

   Les bandes devraient etre changee apres 5000 sauvegardes.

  18.9.4. DLT

   Les DLT ont le taux de transfert le plus eleve de tous les types de
   lecteurs decrits ici. La bande d'1/2" (12.5mm) est contenue dans une seule
   cartouche (4 x 4 x 1 pouces; 100 x 100 x 25 mm). La cartouche est munie
   d'une trappe basculante le long d'un cote de la cartouche. Le lecteur
   ouvre cette trappe pour saisir l'amorce de la bande. Cette amorce comporte
   une decoupe ovale que le lecteur utilise pour "crocheter" la bande. La
   bobine d'entrainement est situee dans le lecteur. Tous les autres types de
   cartouches decrits ici (les bandes 9 pistes sont la seule exception) ont
   les bobines de stockage et d'entrainement dans la cartouche elle-meme.

   Leur debit est d'environ 1.5 Mo/s, trois fois celui des lecteurs 4mm, 8mm,
   ou QIC. La capacite d'une bande varie de 10 Go `a 20 Go pour une unite
   simple. Les lecteurs sont disponibles en unites multi-bandes avec
   changeurs et multi-lecteurs contenant de 5 `a 900 bandes et 1 `a 20
   lecteurs, fournissant une capacite de stockage allant de 50 Go `a 9 TO.

   Avec la compression, le format DLT type IV supporte jusqu'`a une capacite
   de 70 Go.

   Les donnees sont enregistrees sur la bande sur des pistes paralleles `a la
   direction de defilement (comme pour les bandes QIC). Deux pistes sont
   ecrites `a la fois. La duree de vie des tetes de lecture/ecriture est
   relativement longue; une fois que la bande s'arrete, il n'y a pas de
   deplacement des tetes par rapport `a la bande.

  18.9.5. AIT

   AIT est le nouveau format de Sony, il peut supporter jusqu'`a 50 Go par
   bande (avec compression). Les bandes contiennent un circuit memoire qui
   contient un index du contenu de la bande. Cet index peut etre lu
   rapidement par le lecteur pour determiner l'emplacement de fichiers sur la
   bande, au lieu des nombreuses minutes necessaires aux autres types de
   bande. Des programmes comme SAMS:Alexandria peuvent controler quarante ou
   plus ensemble de bandes AIT, communiquant directement avec le circuit
   memoire de la bande pour en afficher le contenu `a l'ecran, determiner
   quels fichiers ont ete sauvegarde sur quelle bande, localiser la bonne
   bande, la charger, et en restaurer les donnees.

   Les ensembles de ce type reviennent aux alentour des 20000 dollars, les
   rendant inaccessibles `a l'amateur eclaire.

  18.9.6. Utiliser une bande neuve pour la premiere fois

   La premiere fois que vous essayez de lire ou d'ecrire sur une bande
   vierge, l'operation echoue. Les messages affiches par la console devraient
   etre du type:

 sa0(ncr1:4:0): NOT READY asc:4,1
 sa0(ncr1:4:0):  Logical unit is in process of becoming ready

   La bande ne contient pas de bloc d'identification (bloc numero 0). Tous
   les lecteurs QIC depuis l'adoption du standard QIC-525 ecrivent un bloc
   d'identification sur la bande. Il y a alors deux solutions:

     * mt fsf 1 fait ecrire au lecteur un bloc d'identification sur la bande.

     * Utiliser le bouton en face avant pour ejecter la bande.

       Re-inserer la bande et utiliser dump(8) pour ecrire dessus.

       dump(8) produira l'erreur DUMP: End of tape detected et la console
       affichera: HARDWARE FAILURE info:280 asc:80,96.

       Rembobiner la bande avec: mt rewind.

       Les manipulations ulterieures sur la bande fonctionneront.

18.10. Sauvegardes sur disquettes

  18.10.1. Puis-je utiliser des disquettes pour la sauvegarde des mes donnees?

   Les disquettes ne sont pas des supports adaptes `a la realisation de
   sauvegardes etant donne que:

     * Le support n'est pas fiable, specialement sur de longues periodes de
       temps.

     * Les operations de sauvegarde et de restauration sont tres lentes.

     * Elles ont une capacite tres limitee (le jour ou l'on pourra
       sauvegarder l'integralite d'un disque dur sur une douzaine de
       disquette n'est pas encore arrive).

   Cependant, si vous n'avez pas d'autres methodes pour sauvegarder vos
   donnees alors les disquettes sont mieux que pas de sauvegardes du tout.

   Si vous devez utiliser les disquettes, alors assurez-vous que vous en
   utiliser des disquettes de bonne qualite. Les disquettes qui trainent sur
   le bureau depuis quelques annees sont un mauvais choix. Idealement
   utilisez de des disquettes neuves en provenance d'un fabricant renomme.

  18.10.2. Alors, comment je sauvegarde mes donnees sur disquettes?

   La meilleur fac,on de sauvegarder sur disquette est d'utiliser la commande
   tar(1) avec l'option -M (volume multiple), qui autorise la repartition des
   sauvegardes sur plusieurs disquettes.

   Pour sauvegarder tous les fichiers du repertoire courant et des
   sous-repertoires (en tant que root):

 # tar Mcvf /dev/fd0 *

   Quand la premiere disquette est pleine tar(1) vous reclamera d'introduire
   le volume suivant (parce que tar(1) est independant du support il parle en
   terme de volume; dans notre contexte cela signifie disquette).

 Prepare volume #2 for /dev/fd0 and hit return:

   Cette operation est repetee (avec incrementation du numero de volume)
   jusqu'`a ce que les fichiers specifies soient sauvegardes.

  18.10.3. Puis-je sauvegarder mes sauvegardes?

   Malheureusement, tar(1) ne permettra pas l'utilisation de l'option -z pour
   les archives multi-volumes. Vous pourrez, bien sur, utiliser gzip(1) sur
   tous les fichiers, les archiver avec tar(1) sur disquettes, puis
   decompresser les fichiers avec gunzip(1)!

  18.10.4. Comment puis-je restaurer mes sauvegardes?

   Pour restaurer une archive complete utiliser:

 # tar Mxvf /dev/fd0

   Vous pouvez utiliser deux manieres pour restaurer uniquement certains
   fichiers. Tout d'abord, vous pouvez commencer avec la premiere disquette
   et utiliser:

 # tar Mxvf /dev/fd0 nomdufichier

   tar(1) vous demandera d'inserer les disquettes suivantes jusqu'`a trouver
   le fichier recherche.

   Alternativement, si vous savez sur quelle disquette le fichier se trouve
   alors vous pouvez simplement inserer cette disquette et utiliser la
   commande precedente. Notez que si le premier fichier sur la disquette est
   la suite d'un fichier de la precedente disquette alors tar(1) vous
   avertira qu'il ne peut le restaurer, meme si vous ne le voulez pas!

18.11. Strategies de sauvegarde

   Travail original de Lowell Gilbert.

   La premiere chose a faire lors de la mise en place d'un plan de sauvegarde
   est de s'assurer que l'ensemble des problemes suivants sera couvert:

     * Panne d'un disque

     * Suppression accidentelle de fichiers

     * Corruption aleatoire de fichiers

     * Destruction complete de la machine (par exemple suite `a un incendie),
       avec destruction des sauvegardes stockees sur le meme site.

   Il est parfaitement possible que certains systemes utilisent une technique
   differente pour chacun des problemes evoques ci-dessus. En dehors des
   systemes personnels avec des donnees peu importantes, il est peu probable
   qu'une seule technique puisse repondre `a l'ensemble de ces risques.

   Quelques-unes des techniques `a notre disposition sont:

     * Des archives de tout le systeme, sauvegardees sur un support fiable et
       `a l'exterieur du site. C'est une protection reelle contre tous les
       problemes precedemment cites, mais cette methode est lente et peu
       pratique lors des restaurations. Vous pouvez conserver des copies de
       ces sauvegardes sur site et/ou en ligne, mais il y aura toujours des
       difficultes lors de la restauration des fichiers, en particulier pour
       les utilisateurs sans droits.

     * Instantane de systemes de fichiers. Cet outil n'est vraiment utile que
       dans le cas d'une suppression accidentelle de fichiers, mais il l'est
       vraiment dans ce cas; de plus cette methode est rapide et simple `a
       employer.

     * Copies de l'integralite des systemes de fichiers et/ou des disques
       (par une utilisation reguliere de rsync(1) sur l'integralite de la
       machine par exemple). C'est le procede en general le plus utile dans
       le cas des reseaux avec des besoins specifiques. Dans le cas d'une
       protection contre les pannes disques, cette methode est normalement
       inferieure `a un systeme RAID. Pour la restauration de fichiers
       supprimes accidentellement, c'est comparable aux instantanes UFS,
       c'est plus une question de preference.

     * RAID. Reduit ou evite les periodes ou le systeme est inutilisable
       quand un disque tombe en panne. Avec l'inconvenient d'avoir `a faire
       face `a des pannes disques plus frequentes (parce que vous utilisez
       plus de disques), mais avec cependant une moindre urgence.

     * Le controle des empreintes de fichiers. L'utilitaire mtree(8) est tres
       utile dans ce cas. Bien que cela ne soit pas une technique de
       sauvegarde des donnees, ce controle aidera `a garantir que vous serez
       averti quand vous devrez ressortir vos sauvegardes. C'est tout
       particulierement important dans le cas de sauvegardes hors site, et
       ces empreintes devraient etre verifiees regulierement.

   Il est relativement simple de trouver d'autres solutions, nombreuses sont
   celles qui sont des variations des techniques presentees ci-dessus. Des
   besoins specifiques conduiront generalement `a des solutions specifiques
   (par exemple sauvegarder une base de donnees durant son utilisation
   demande une etape intermediaire specifique au logiciel de base de
   donnees). L'important est de connaitre les dangers contre lesquels vous
   desirez vous proteger, et comment vous ferez face `a chacun d'entre eux.

18.12. Sauvegardes

   Les trois principaux programmes de sauvegarde sont: dump(8), tar(1), et
   cpio(1).

  18.12.1. Dump et Restore

   dump(8) et restore(8) sont les programmes de sauvegarde traditionnels
   d'UNIX(R). Ils operent sur le disque comme sur une suite de blocs disque,
   en dessous du niveau d'abstraction que constituent les fichiers, liens et
   repertoires crees par les systemes de fichiers. Le programme dump(8)
   sauvegarde l'integralite d'un systeme de fichiers d'un peripherique. Il
   est incapable de sauvegarder seulement une partie d'un systeme de fichiers
   ou une arborescence de repertoires s'etalant sur plus d'un systeme de
   fichiers. Le programme dump(8) n'ecrit pas de fichiers ou des repertoires
   sur la bande, mais ecrit plutot les blocs de donnees brutes dont sont
   constitues les fichiers et les repertoires.

  Note:

   Si vous utilisez dump(8) sur votre repertoire racine, vous ne
   sauvegarderez pas /home, /usr ou beaucoup d'autres repertoires puisque que
   ces derniers sont generalement des points de montages pour d'autres
   systemes de fichiers ou des liens symboliques vers ces systemes de
   fichiers.

   L'utilitaire dump(8) a quelques particularites datant de ses debuts sous
   la version 6 d'AT&T UNIX (circa 1975). Les parametres par defaut
   conviennent aux bandes 9 pistes (6250 bpi), et non aux supports `a haute
   densite d'aujourd'hui (jusqu'`a 62182 ftpi). Il faut surcharger ces
   valeurs par defaut sur la ligne de commande pour utiliser la capacite des
   bandes actuelles.

   Il est egalement possible de sauvegarder les donnees par l'intermediaire
   d'un reseau sur un lecteur de bande se trouvant sur une autre ordinateur
   `a l'aide des commandes rdump et rrestore. Ces deux programmes utilisent
   rcmd(3) et ruserok(3) pour acceder `a l'unite de bandes distante.
   Cependant, l'utilisateur effectuant une sauvegarde doit etre present dans
   le fichier .rhosts sur la machine distante. Les arguments de rdump(8) et
   rrestore(8) doivent etre compatibles avec une utilisation sur la machine
   distante. Quand on sauvegarde une machine FreeBSD sur un lecteur Exabyte
   installe sur un ordinateur Sun appele komodo, utilisez:

 # /sbin/rdump 0dsbfu 54000 13000 126 komodo:/dev/nsa8 /dev/da0a 2>&1

   Attention: il y a des consequences pour la securite `a utiliser
   l'authentification .rhosts. Evaluez soigneusement votre situation.

   Il est egalement possible d'utiliser dump(8) et restore(8) d'une fac,on
   plus securisee sur ssh(1).

   Exemple 18.1. Utiliser dump(8) sur ssh

 # /sbin/dump -0uan -f - /usr | gzip -2 | ssh -c blowfish \
           targetuser@targetmachine.example.com dd of=/mybigfiles/dump-usr-l0.gz

   Ou en utilisant une fonction interne de dump, positionner la variable
   d'environnement RSH:

   Exemple 18.2. Utiliser dump sur ssh avec la variable RSH positionnee

 # RSH=/usr/bin/ssh /sbin/dump -0uan -f targetuser@targetmachine.example.com:/dev/sa0 /usr

  18.12.2. tar

   Le programme tar(1) date aussi de la Version 6 d'AT&T UNIX (circa 1975).
   tar(1) travaille en cooperation avec le systeme de fichiers; il permet
   d'ecrire des fichiers et des repertoires sur bandes. tar(1) ne supporte
   pas toutes les options permises par cpio(1), mais ne demande pas
   l'inhabituelle concatenation de commandes qu'utilise cpio(1)

   Sous FreeBSD 5.3 et versions suivantes, GNU tar et la version par defaut
   bsdtar sont disponibles. La version GNU peut etre invoquee avec la
   commande gtar. Elle supporte les sauvegardes sur des peripheriques
   distants et cela avec la meme syntaxe que rdump(8). Pour sauvegarder avec
   tar(1) sur une unite Exabyte connectee sur une machine Sun appelee komodo,
   utilisez:

 # /usr/bin/gtar cf komodo:/dev/nsa8 . 2>&1

   La meme operation peut etre effectuee avec bsdtar en utilisant un tuyau et
   rsh(1) pour envoyer les donnees sur un lecteur de bande distant:

 # tar cf - . | rsh hostname dd of=tape-device obs=20b

   Si vous etes inquiet au sujet de la securite de sauvegardes par reseau,
   vous devriez utiliser la commande ssh(1) `a la place de rsh(1).

  18.12.3. cpio

   cpio(1) est le programme UNIX(R) original pour l'echange de fichiers par
   bandes magnetiques. cpio(1) dispose d'options (parmi beaucoup d'autres)
   pour intervertir les octets, utiliser de nombreux differents formats, et
   envoyer les donnees `a d'autres programmes. Cette derniere caracteristique
   fait de cpio(1) un excellent choix pour les supports d'installation.
   cpio(1) ne sait pas parcourir une arborescence de repertoires et il faut
   lui passer la liste des fichiers via stdin.

   cpio(1) ne supporte pas les sauvegardes par le reseau. Vous pouvez
   utiliser un tuyau et rsh(1) pour envoyer les donnees sur un lecteur de
   bande distant:

 # for f in directory_list; do
 find $f >> backup.list
 done
 # cpio -v -o --format=newc < backup.list | ssh user@host "cat > backup_device"

   Ou directory_list est la liste des repertoires que vous desirez
   sauvegarder, user@host est l'ensemble utilisateur/nom de machine qui
   effectuera les sauvegardes, et backup_device represente l'unite ou seront
   ecrites les sauvegardes (e.g., /dev/nsa0).

  18.12.4. pax

   pax(1) est la reponse IEEE/POSIX(R) `a tar(1) et cpio(1). Au fil des ans
   les differentes versions de tar(1) et cpio(1) sont devenues legerement
   incompatibles. Aussi, plutot que de batailler pour les standardiser
   entierement, POSIX(R) a defini un nouvel utilitaire d'archivage. pax(1)
   tente de lire et d'ecrire nombre des divers formats tar(1) et cpio(1), en
   plus de ses propres nouveaux formats. Son ensemble de commandes ressemble
   plus `a celui de cpio(1) qu'`a celui de tar(1).

  18.12.5. Amanda

   Amanda (Advanced Maryland Network Disk Archiver-Systeme Avance d'Archivage
   de Disques en Reseau du Maryland) est un systeme d'archivage
   client/serveur plutot qu'un simple programme. Un serveur Amanda archivera
   sur une seule unite de bandes un nombre quelconque d'ordinateurs disposant
   de clients Amanda et un acces reseau au serveur Amanda. Un probleme
   classique sur les sites qui ont de nombreux disques volumineux est que le
   temps necessaire pour sauvegarder directement les donnees sur la bande
   depasse le temps alloue `a cette tache. Amanda resout ce probleme. Amanda
   peut utiliser un "disque intermediaire" pour sauvegarder plusieurs
   systemes de fichiers `a la fois. Amanda des "jeux d'archive": un ensemble
   de bandes utilise pour une periode donnee pour creer une sauvegarde
   complete de tous les systemes de fichiers liste dans le fichier de
   configuration d'Amanda. Le "jeu d'archive" contient egalement les
   sauvegardes nocturnes incrementales (ou differentielles) de tous les
   systemes de fichiers. Pour restaurer une systeme de fichiers endommage, il
   faut la sauvegarde complete la plus recente et les sauvegardes
   incrementales.

   Le fichier de configuration permet un controle en finesse des sauvegardes
   et du trafic reseau qu'Amanda genere. Amanda utilisera n'importe quel des
   programmes de sauvegarde decrits plus haut pour ecrire les donnees sur
   bande. Amanda est disponible sous forme de logiciel porte ou de logiciel
   pre-compile, il n'est pas installe par defaut.

  18.12.6. Ne rien faire

   "Ne rien faire" n'est pas un logiciel, mais c'est la strategie de
   sauvegarde la plus utilisee. Il n'y a aucun investissement initial. Il n'y
   a pas de de planification des sauvegardes `a suivre. Juste dire non. Si
   quelque chose arrive `a vos donnees, souriez et debrouillez-vous!

   Si votre temps et vos donnees ne valent pas grand chose, alors "Ne rien
   faire" est le programme de sauvegarde le mieux adapte `a votre ordinateur.
   Mais prenez garde, UNIX(R) est un outil utile, et vous pouvez vous rendre
   compte au bout de six mois que vous disposez d'une collection de fichiers
   qui vous sont utiles.

   "Ne rien faire" est la bonne methode de sauvegarde pour /usr/obj et les
   autres repertoires qui peuvent facilement etre recrees par votre
   ordinateur. Un exemple est les fichiers qui constituent la version HTML ou
   PostScript(R) de ce manuel. Ces fichiers ont ete generes `a partir de
   fichiers SGML. Faire des sauvegardes des fichiers HTML ou PostScript(R)
   n'est pas necessaire. Les fichiers source SGML sont sauvegardes
   regulierement.

  18.12.7. Quel est le meilleur programme de sauvegarde?

   dump(8) Point. Elizabeth D. Zwicky a soumis `a rude epreuve tous les
   programmes de sauvegarde dont nous avons parle. Le choix de dump(8)
   s'impose pour preserver toutes vos donnees et les particularites des
   systemes de fichiers UNIX(R). Elizabeth a cree des systemes de fichiers
   avec une grande variete de particularites inhabituelles (et quelques unes
   pas tellement inhabituelles) et a teste chacun des programmes en faisant
   une sauvegarde et une restauration de ces systemes de fichiers. Parmi les
   specificites testees: fichiers avec des trous, fichiers avec des trous et
   des blocs de caracteres "null", fichiers dont les noms comportent des
   caracteres inhabituels, les fichiers illisibles ou impossible `a modifier,
   les peripheriques, fichiers dont la taille change pendant la sauvegarde,
   fichiers crees ou detruits en cours de sauvegarde et bien plus. Elle a
   presente les resultats de ces tests au LISA V en Octobre 1991. Voir les
   tests d'endurance des programmes de sauvegarde et d'archivage.

  18.12.8. Procedure de restauration d'urgence

    18.12.8.1. Avant le desastre

   Il y a quatre etapes `a mettre en oeuvre en prevision d'un desastre
   eventuel.

   Tout d'abord, imprimez le label de chacun de vos disques (par exemple
   bsdlabel da0 | lpr), votre table des systemes de fichiers (/etc/fstab) et
   tous les messages de demarrage, en deux exemplaires.

   Deuxiemement, verifiez que vos disquettes de demarrage et de reprise
   d'urgence (boot.flp et fixit.flp) incluent tous vos peripheriques. La
   methode la plus simple pour verifier est de redemarrer avec la disquette
   de demarrage dans le lecteur et controler les messages de demarrage. Si
   tous vos peripheriques sont listes et operationnels, passez `a la
   troisieme etape.

   Sinon, vous devez creer deux disquettes de demarrage sur-mesure avec un
   noyau qui puisse monter tous vos disques et acceder `a votre unite de
   bandes. Ces disquettes doivent contenir: fdisk(8), bsdlabel(8), newfs(8),
   mount(8), et le programme de sauvegarde que vous utilisez. L'edition de
   liens de ces programmes doit etre statique. Si vous utilisez dump(8), la
   disquette doit contenir restore(8).

   Troisiemement, faites regulierement des sauvegardes sur bandes. Toutes les
   modifications effectuees apres votre derniere sauvegarde peuvent
   irremediablement perdues. Protegez vos bandes de sauvegarde en ecriture.

   Quatriemement, testez les disquettes (soit boot.flp et fixit.flp soit les
   deux disquettes sur-mesure que vous avez creees `a la seconde etape) et
   vos bandes de sauvegarde. Prenez note de la procedure. Conservez ces notes
   avec la disquette de demarrage, les impressions et les bandes de
   sauvegarde. Vous serez si preoccupe quand vous devrez restaurer que ces
   notes peuvent vous eviter de detruire vos bandes de sauvegarde (Comment?
   Au lieu de tar xvf /dev/sa0, vous pourriez taper accidentellement tar cvf
   /dev/sa0, ce qui ecraserait votre bande de sauvegarde).

   Par mesure de securite, creez une disquette de demarrage et deux bandes de
   sauvegarde `a chaque fois. Conservez-les dans un lieu eloigne. Un endroit
   eloigne n'est PAS le sous-sol du meme batiment. Un certain nombre de
   compagnies du World Trade Center l'ont appris `a leurs depends. Un endroit
   eloigne doit etre physiquement separe de vos ordinateurs et de vos disques
   par une distance significative.

   Exemple 18.3. Procedure de creation d'une disquette de demarrage

 #!/bin/sh
 #
 # create a restore floppy
 #
 # format the floppy
 #
 PATH=/bin:/sbin:/usr/sbin:/usr/bin

 fdformat -q fd0
 if [ $? -ne 0 ]
 then
          echo "Bad floppy, please use a new one"
          exit 1
 fi

 # place boot blocks on the floppy
 #
 bsdlabel -w -B /dev/fd0c fd1440

 #
 # newfs the one and only partition
 #
 newfs -t 2 -u 18 -l 1 -c 40 -i 5120 -m 5 -o space /dev/fd0a

 #
 # mount the new floppy
 #
 mount /dev/fd0a /mnt

 #
 # create required directories
 #
 mkdir /mnt/dev
 mkdir /mnt/bin
 mkdir /mnt/sbin
 mkdir /mnt/etc
 mkdir /mnt/root
 mkdir /mnt/mnt                  # for the root partition
 mkdir /mnt/tmp
 mkdir /mnt/var

 #
 # populate the directories
 #
 if [ ! -x /sys/compile/MINI/kernel ]
 then
          cat &lt;&lt; EOM
 The MINI kernel does not exist, please create one.
 Here is an example config file:
 #
 # MINI - A kernel to get FreeBSD onto a disk.
 #
 machine         "i386"
 cpu             "I486_CPU"
 ident           MINI
 maxusers        5

 options         INET                    # needed for _tcp _icmpstat _ipstat
                                         #            _udpstat _tcpstat _udb
 options         FFS                     #Berkeley Fast File System
 options         FAT_CURSOR              #block cursor in syscons or pccons
 options         SCSI_DELAY=15           #Be pessimistic about Joe SCSI device
 options         NCONS=2                 #1 virtual consoles
 options         USERCONFIG              #Allow user configuration with -c XXX

 config          kernel  root on da0 swap on da0 and da1 dumps on da0

 device          isa0
 device          pci0

 device          fdc0    at isa? port "IO_FD1" bio irq 6 drq 2 vector fdintr
 device          fd0     at fdc0 drive 0

 device          ncr0

 device          scbus0

 device          sc0     at isa? port "IO_KBD" tty irq 1 vector scintr
 device          npx0    at isa? port "IO_NPX" irq 13 vector npxintr

 device          da0
 device          da1
 device          da2

 device          sa0

 pseudo-device   loop            # required by INET
 pseudo-device   gzip            # Exec gzipped a.out's
 EOM
          exit 1
 fi

 cp -f /sys/compile/MINI/kernel /mnt

 gzip -c -best /sbin/init > /mnt/sbin/init
 gzip -c -best /sbin/fsck > /mnt/sbin/fsck
 gzip -c -best /sbin/mount > /mnt/sbin/mount
 gzip -c -best /sbin/halt > /mnt/sbin/halt
 gzip -c -best /sbin/restore > /mnt/sbin/restore

 gzip -c -best /bin/sh > /mnt/bin/sh
 gzip -c -best /bin/sync > /mnt/bin/sync

 cp /root/.profile /mnt/root

 cp -f /dev/MAKEDEV /mnt/dev
 chmod 755 /mnt/dev/MAKEDEV

 chmod 500 /mnt/sbin/init
 chmod 555 /mnt/sbin/fsck /mnt/sbin/mount /mnt/sbin/halt
 chmod 555 /mnt/bin/sh /mnt/bin/sync
 chmod 6555 /mnt/sbin/restore

 #
 # create the devices nodes
 #
 cd /mnt/dev
 ./MAKEDEV std
 ./MAKEDEV da0
 ./MAKEDEV da1
 ./MAKEDEV da2
 ./MAKEDEV sa0
 ./MAKEDEV pty0
 cd /

 #
 # create minimum file system table
 #
 cat &lt; /mnt/etc/fstab &lt;&lt;EOM
 /dev/fd0a    /    ufs    rw  1  1
 EOM

 #
 # create minimum passwd file
 #
 cat &lt; /mnt/etc/passwd &lt;&lt;EOM
 root:*:0:0:Charlie &amp;:/root:/bin/sh
 EOM

 cat &lt; /mnt/etc/master.passwd &lt;&lt;EOM
 root::0:0::0:0:Charlie &amp;:/root:/bin/sh
 EOM

 chmod 600 /mnt/etc/master.passwd
 chmod 644 /mnt/etc/passwd
 /usr/sbin/pwd_mkdb -d/mnt/etc /mnt/etc/master.passwd

 #
 # umount the floppy and inform the user
 #
 /sbin/umount /mnt
 echo "The floppy has been unmounted and is now ready."

    18.12.8.2. Apres le desastre

   La question cruciale est: votre materiel a-t-il survecu? Vous avez
   regulierement fait des sauvegardes, vous n'avez donc pas besoin de vous
   inquieter pour les fichiers et les programmes.

   Si le materiel a subi des degats, remplacez tout d'abord ce qui a ete
   endommage avant de tenter d'utiliser l'ordinateur.

   Si votre materiel est en etat, controlez vos disquettes. Si vous utilisez
   une disquette de demarrage personnalisee, demarrez en mode
   mono-utilisateur (tapez -s `a l'invite boot:). Sautez le paragraphe
   suivant.

   Si vous utilisez les disquettes boot.flp et fixit.flp, continuez `a lire.
   Mettre la disquette boot.flp dans le premier lecteur et demarrez
   l'ordinateur. Le menu d'installation d'origine s'affiche `a l'ecran.
   Choisissez l'option Fixit--Repair mode with CDROM or floppy.. Inserez la
   disquette fixit.flp quand on vous la demande. restore(8) et les autres
   programmes dont vous avez besoin sont situes dans le repertoire
   /mnt2/rescue (/mnt2/stand pour les versions de FreeBSD anterieures `a la
   5.2).

   Restaurez chaque systeme de fichiers separement.

   Essayez mount(8) (e.g. mount /dev/da0a /mnt) sur la partition racine de
   votre premier disque. Si le label du disque est endommage, utilisez
   bsdlabel(8) pour repartitionner et libeller le disque conformement au
   label que vous avez imprime et mis de cote. Utilisez newfs(8) pour recreer
   les systemes de fichiers. Remontez la partition racine de la disquette en
   lecture/ecriture (mount -u -o rw /mnt). Utilisez votre programme de
   restauration et vos bandes de sauvegardes pour restaurer les donnees de ce
   systeme de fichiers (e.g. restore vrf /dev/sa0). Demontez le systeme de
   fichiers (e.g. umount /mnt). Repetez l'operation pour chacun des systemes
   de fichiers endommages.

   Une fois que le systeme fonctionne `a nouveau, faites une sauvegarde sur
   de nouvelles bandes. Ce qui a cause la panne ou la perte de donnees peut
   se reproduire. Une heure de perdue maintenant peut vous epargner d'autres
   ennuis plus tard.

18.13. Systemes de fichiers reseaux, en memoire et sauvegardes sur fichier

   Reorganisee et augmentee par Marc Fonvieille.

   En plus des disques que vous introduisez physiquement dans votre
   ordinateur: disquettes, CD, disques durs, et ainsi de suite; d'autres
   formes de disques sont gerees par FreeBSD - les disques virtuels.

   Ceux-ci comprennent les systemes de fichiers reseaux comme le NFS et Coda,
   les systemes de fichiers en memoire et les systemes de fichiers sauvegarde
   dans un fichier.

   En fonction de la version de FreeBSD que vous utilisez, vous devrez
   utiliser des outils differents pour la creation et l'utilisation de
   systemes de fichiers en memoire ou sauvegarde dans un fichier.

  Note:

   Utilisez devfs(5) pour allouer de fac,on transparente pour l'utilisateur
   les fichiers speciaux de peripheriques.

  18.13.1. Systeme de fichiers sauvegarde dans un fichier

   L'utilitaire mdconfig(8) est utilise pour configurer et activer les
   disques memoires, md(4), sous FreeBSD. Pour utiliser mdconfig(8), vous
   devez charger le module md(4) ou en ajouter le support dans votre fichier
   de configuration du noyau:

 device md

   La commande mdconfig(8) supporte trois sortes de disques virtuels en
   memoire: les disques memoire alloues avec malloc(9), les disques memoires
   utilisant un fichier ou l'espace de pagination comme espace disque. Une
   des utilisations possibles est le montage d'images de disquettes ou de CDs
   conservees sous forme de fichier.

   Pour monter l'image d'un systeme de fichiers:

   Exemple 18.4. Utilisation de mdconfig pour monter une image d'un systeme
   de fichiers

 # mdconfig -a -t vnode -f diskimage -u 0
 # mount /dev/md0 /mnt

   Pour creer l'image d'un nouveau systeme de fichiers avec mdconfig(8):

   Exemple 18.5. Creation d'un nouveau disque sauvegarde sur fichier avec
   mdconfig

 # dd if=/dev/zero of=newimage bs=1k count=5k
 5120+0 records in
 5120+0 records out
 # mdconfig -a -t vnode -f newimage -u 0
 # bsdlabel -w md0 auto
 # newfs md0a
 /dev/md0a: 5.0MB (10224 sectors) block size 16384, fragment size 2048
         using 4 cylinder groups of 1.25MB, 80 blks, 192 inodes.
 super-block backups (for fsck -b #) at:
  160, 2720, 5280, 7840
 # mount /dev/md0a /mnt
 # df /mnt
 Filesystem 1K-blocks Used Avail Capacity  Mounted on
 /dev/md0a       4710    4  4330     0%    /mnt

   Si vous ne preciser pas de numero d'unite avec l'option -u, mdconfig(8)
   utilisera le mecanisme d'allocation automatique de md(4) pour selectionner
   un peripherique libre. Le nom de l'unite allouee s'affichera sur la sortie
   standard comme par exemple md4. Pour plus de details concernant
   mdconfig(8), referez-vous `a la page de manuel.

   L'outil mdconfig(8) est tres utile, cependant son utilisation demande de
   nombreuses lignes de commandes pour creer un systeme de fichiers
   sauvegarde sur fichier. FreeBSD vient avec un outil appele mdmfs(8), ce
   programme configure un disque md(4) en utilisant mdconfig(8), y ajoute
   dessus un systeme de fichiers UFS en utilisant newfs(8), et le monte avec
   mount(8). Par exemple, si vous desirez creer et monter la meme image de
   systeme de fichiers que precedemment, tapez simplement ce qui suit:

   Exemple 18.6. Creation et montage d'un disque sauvegarde sur fichier avec
   mdmfs

 # dd if=/dev/zero of=newimage bs=1k count=5k
 5120+0 records in
 5120+0 records out
 # mdmfs -F newimage -s 5m md0 /mnt
 # df /mnt
 Filesystem 1K-blocks Used Avail Capacity  Mounted on
 /dev/md0        4718    4  4338     0%    /mnt

   Si vous utilisez l'option md sans numero d'unite, mdmfs(8) utilisera la
   fonction automatique de selection d'unite de md(4) pour choisir un
   peripherique non utilise. Pour plus de details au sujet de mdmfs(8),
   referez-vous `a la page de manuel.

  18.13.2. Systeme de fichiers en memoire

   Pour un systeme de fichiers en memoire la << sauvegarde sur l'espace de
   pagination >> devrait etre normalement utilisee. Utiliser l'espace de
   pagination ne signifie pas que le disque en memoire sera par defaut sur
   l'espace de pagination, mais plutot que le disque memoire sera alloue sur
   une zone de memoire qui pourra etre sauvegardee sur l'espace de pagination
   si necessaire. Il est egalement possible de creer un disque en memoire
   dont la memoire est allouee `a l'aide de malloc(9), mais ce type de
   configuration, tout particulierement dans le cas de disques de grande
   taille, peut donner lieu `a une panique du systeme si le noyau se trouve
   `a cours de memoire.

   Exemple 18.7. Creation d'un disque memoire avec mdconfig

 # mdconfig -a -t swap -s 5m -u 1
 # newfs -U md1
 /dev/md1: 5.0MB (10240 sectors) block size 16384, fragment size 2048
         using 4 cylinder groups of 1.27MB, 81 blks, 192 inodes.
         with soft updates
 super-block backups (for fsck -b #) at:
  160, 2752, 5344, 7936
 # mount /dev/md1 /mnt
 # df /mnt
 Filesystem 1K-blocks Used Avail Capacity  Mounted on
 /dev/md1        4718    4  4338     0%    /mnt

   Exemple 18.8. Creation d'un disque memoire avec mdmfs

 # mdmfs -s 5m md2 /mnt
 # df /mnt
 Filesystem 1K-blocks Used Avail Capacity  Mounted on
 /dev/md2        4846    2  4458     0%    /mnt

  18.13.3. Detacher un disque memoire du systeme

   Quand un systeme de fichiers en memoire ou sauvegarde dans un fichier
   n'est pas utilise, vous devriez rendre au systeme toutes les ressources.
   La premiere chose `a faire est de demonter le systeme de fichiers, ensuite
   utiliser mdconfig(8) pour detacher le disque du systeme et rendre les
   ressources.

   Par exemple pour detacher et liberer toutes les ressources utilisees par
   /dev/md4:

 # mdconfig -d -u 4

   Il est possible d'afficher des informations sur les peripheriques md(4)
   configures en utilisant la commande mdconfig -l.

18.14. Instantane ("Snapshot") d'un systeme de fichiers

   Contribution de Tom Rhodes.

   FreeBSD en association avec les Soft Updates offre une nouvelle
   caracteristique: les instantanes de systemes de fichiers ("file system
   snapshots").

   Les instantanes permettent `a un utilisateur de creer des images d'un
   systeme de fichiers precis, et de les traiter comme un fichier. Les
   instantanes doivent etre crees dans le systeme de fichiers sur lequel on
   veut effectuer l'operation, et un utilisateur ne pourra pas creer plus de
   20 instantanes par systeme de fichiers. Les instantanes actifs sont
   enregistres dans le superbloc, ils sont donc conserves durant les
   operations de demontage et de remontage lors des redemarrages du systeme.
   Quand un instantane n'est plus requis, il peut etre supprime avec la
   commande standard rm(1). Les instantanes peuvent etre supprimes dans
   n'importe quel ordre, cependant tout l'espace utilise pourra ne pas etre
   `a nouveau disponible car un autre instantane reclamera eventuellement les
   blocs liberes.

   L'indicateur inalterable snapshot est positionne lors de la creation
   initiale de l'instantane. La commande unlink(1) fait une exception pour
   les fichiers d'instantanes puisqu'elle autorise leur suppression.

   Les instantanes sont crees avec la commande mount(8). Pour placer un
   instantane de /var dans le fichier /var/snapshot/snap utilisez la commande
   suivante:

 # mount -u -o snapshot /var/snapshot/snap /var

   Alternativement, vous pouvez utiliser mksnap_ffs(8) pour creer un
   instantane:

 # mksnap_ffs /var /var/snapshot/snap

   Les fichiers d'instantanes peuvent etre localises sur un systeme de
   fichiers (e.g. /var) en utilisant la commande find(1):

 # find /var -flags snapshot

   Une fois un instantane cree, ce dernier pourra avoir de nombreux usages:

     * Certains administrateurs utiliseront un instantane pour des besoins de
       sauvegarde, car l'instantane peut etre transfere sur CD ou bande.

     * Un controle d'integrite du systeme fichiers, fsck(8), pourra etre
       effectue sur l'instantane. En supposant que le systeme de fichiers
       etait propre quand il a ete monte, vous devriez toujours obtenir un
       resultat positif (et non different). C'est essentiellement que
       effectue le processus de fsck(8) en tache de fond ("background
       fsck(8)").

     * Lancer l'utilitaire dump(8) sur l'instantane. Une image coherente du
       systeme de fichiers avec les parametres temporels de l'instantane sera
       produite. dump(8) peut egalement `a partir d'un instantane, creer une
       image et puis supprimer l'instantane en une seule fois en utilisant
       l'indicateur -L dans la ligne de commande.

     * Monter l'instantane comme une image figee du systeme de fichiers. Pour
       monter l'instantane /var/snapshot/snap lancer:

 # mdconfig -a -t vnode -f /var/snapshot/snap -u 4
 # mount -r /dev/md4 /mnt

   Vous pouvez maintenant parcourir l'arborescence de votre systeme de
   fichiers /var fige monter sous /mnt. Tout sera au depart dans le meme etat
   que lors de la creation de l'instantane. La seule exception est que les
   instantanes anterieurs apparaitront sous la forme de fichiers vides. Quand
   l'utilisation d'un instantane est terminee, il peut etre demonte avec:

 # umount /mnt
 # mdconfig -d -u 4

   Pour plus d'informations sur les softupdates et les instantanes de
   systemes de fichiers, et egalement de la documentation technique, vous
   pouvez consulter le site Web de Marshall Kirk McKusick `a l'adresse
   http://www.mckusick.com/

18.15. Quotas d'utilisation des disques

   Les quotas sont une option du systeme d'exploitation qui vous permet de
   limiter la quantite d'espace disque et/ou le nombre de fichiers auxquels
   ont droit un utilisateur ou tous les utilisateurs d'un meme groupe, sur un
   systeme de fichiers donne. On les utilise la plupart du temps sur les
   systemes en temps partage ou il est souhaitable de limiter la quantite de
   ressources allouee `a un utilisateur ou `a un groupe. Cela evitera qu'un
   utilisateur ou un groupe d'utilisateur consomme tout l'espace disque.

  18.15.1. Configurer votre systeme pour pouvoir utiliser les quotas
  d'utilisation des disques

   Avant d'essayer de mettre en place des quotas disque, il est necessaire de
   s'assurer que le noyau est configure pour les quotas. Cela se fait en
   ajoutant la ligne suivante dans votre fichier de configuration du noyau:

 options QUOTA

   Cette option n'est pas activee par defaut dans le noyau GENERIC de base,
   vous devrez donc configurer, compiler et installer un noyau sur-mesure
   pour utiliser les quotas disque. Reportez-vous au chapitre Chapitre 8,
   Configurer le noyau de FreeBSD pour plus d'informations sur la
   configuration du noyau.

   Ensuite vous devrez activer les quotas disques dans le fichier
   /etc/rc.conf. Pour cela, ajoutez la ligne:

 enable_quotas="YES"

   Pour un controle plus fin des quotas au demarrage du systeme, il existe
   une variable supplementaire de configuration. Normalement au demarrage,
   l'integrite des quotas sur chaque systeme de fichiers est verifiee par le
   programme quotacheck(8). Ce programme s'assure que les donnees de la base
   de donnees des quotas correspondent bien aux donnees presentes sur le
   systeme de fichiers. C'est un processus consommateur en temps qui
   affectera considerablement la duree de demarrage du systeme. Si vous
   desirez passer cette etape, une variable dans /etc/rc.conf est prevue `a
   cet effet:

 check_quotas="NO"

   Vous devez enfin editer le fichier /etc/fstab pour activer les quotas
   systeme de fichiers par systeme de fichiers. C'est l`a que vous pouvez
   soit activer les quotas par utilisateur ou par groupe soit les pour les
   deux sur tous vos systemes de fichiers.

   Pour activer les quotas par utilisateur sur un systeme de fichiers,
   ajouter l'option userquota dans le champ d'options sur l'entree de
   /etc/fstab pour le systeme de fichiers sur lequel vous voulez activer les
   quotas. Par exemple:

 /dev/da1s2g   /home    ufs rw,userquota 1 2

   De meme, pour activer les quotas par groupe, utilisez l'option groupquota
   `a la place de userquota. Pour activer `a la fois les quotas par
   utilisateur et par groupe, modifiez l'entree de la fac,on suivante:

 /dev/da1s2g    /home    ufs rw,userquota,groupquota 1 2

   Par defaut, les fichiers ou sont definis les quotas dans le repertoire
   racine du systeme de fichiers sous les noms quota.user et quota.group,
   respectivement pour les quotas utilisateur et les quotas par groupe.
   Consultez la page de manuel fstab(5) pour plus d'information. Bien que la
   page de manuel fstab(5) indique que vous pouvez specifier un autre
   emplacement pour ces fichiers, cela n'est pas recommande parce que les
   divers utilitaires qui gerent les quotas ne semblent pas les prendre
   correctement en compte.

   A ce point vous devriez redemarrer votre systeme avec votre nouveau noyau.
   La procedure /etc/rc executera automatiquement les commandes necessaires
   pour creer les fichiers de quotas initiaux pour tous les quotas que vous
   avez definis dans /etc/fstab, vous n'avez donc pas besoin de creer `a la
   main de fichiers de quotas vides.

   Vous ne devriez pas avoir `a executer les commandes quotacheck(8),
   quotaon(8), ou quotaoff(8) manuellement. Cependant, vous pouvez lire leur
   page de manuel pour vous familiariser avec leur role.

  18.15.2. Definir les quotas

   Une fois que vous avez active les quotas sur votre systeme, assurez-vous
   que cela fonctionne correctement. Une maniere simple de le faire est
   d'executer:

 # quota -v

   Vous devriez obtenir une ligne resumant l'utilisation disque avec les
   quotas actuellement definis pour chaque systeme de fichiers sur lesquels
   il y a des quotas.

   Vous etes maintenant pret `a definir les quotas avec la commande
   edquota(8).

   Vous disposez de differentes options pour instaurer les quotas d'espace
   disque alloue `a un utilisateur ou `a un groupe, et le nombre de fichiers
   qu'ils peuvent creer. Vous pouvez baser les limitations sur l'espace
   disque alloue (quotas en nombre de blocs) ou sur le nombre de fichiers
   (quotas en inode) ou les deux. Ces options peuvent etre divisees en deux
   categories: les limites strictes ou souples.

   Une limite stricte ne peut etre depassee. Une fois qu'un utilisateur
   atteint sa limite stricte, il ne pourra plus rien allouer sur le systeme
   de fichiers en question. Par exemple, si l'utilisateur a droit `a une
   limite stricte de 500 Ko sur un systeme de fichiers et en utilise 490  Ko,
   il ne pourra allouer que 10 Ko supplementaires. Une tentative d'allouer
   11 Ko echouerait.

   Une limite souple peut etre depassee pour une periode de temps restreinte.
   C'est ce que l'on appelle le delai de grace, qui est d'une semaine par
   defaut. Si un utilisateur depasse cette limite au del`a du delai de grace,
   cette limite devient stricte, et plus aucune allocation ne sera possible.
   Quand l'utilisateur redescend en dessous de la limite souple, le delai de
   grace est `a nouveau reaccorde.

   Ce qui suit est un exemple de ce que vous pourrez voir en utilisant la
   commande edquota(8). Quand vous invoquez la commande edquota(8), vous vous
   retrouvez dans l'editeur defini par la variable d'environnement EDITOR, ou
   sous vi si la variable d'environnement EDITOR n'est pas positionnee, ce
   qui vous permet d'editer les quotas.

 # edquota -u test

 Quotas for user test:
 /usr: kbytes in use: 65, limits (soft = 50, hard = 75)
         inodes in use: 7, limits (soft = 50, hard = 60)
 /usr/var: kbytes in use: 0, limits (soft = 50, hard = 75)
         inodes in use: 0, limits (soft = 50, hard = 60)

   Vous verrez normalement deux lignes pour chaque systeme de fichiers sur
   lequel il y a des quotas. Une ligne pour les quotas de blocs, et une autre
   pour la limite d'inode. Modifiez simplement les valeurs que vous voulez
   mettre `a jour. Par exemple, pour augmenter la limite de blocs accordee `a
   cet utilisateur de 50 pour la limite souple et de 75 pour la limite
   stricte `a 500 pour la limite souple et 600 pour la limite stricte,
   modifiez:

 /usr: kbytes in use: 65, limits (soft = 50, hard = 75)

   en:

 /usr: kbytes in use: 65, limits (soft = 500, hard = 600)

   Les nouveaux quotas seront en service des que vous quitterez l'editeur.

   Il est parfois souhaitable de definir des quotas pour une plage d'UIDs
   (identifiants utilisateur). Cela peut etre realise avec l'option -p de la
   commande edquota(8). Definissez d'abord les quotas pour un seul
   utilisateur, et puis executez edquota -p protouser startuid-enduid. Par
   exemple, si l'utilisateur test dispose des quotas desires, la commande
   suivante peut etre utilisee pour appliquer ces quotas pour les UIDs de
   10000 `a 19999:

 # edquota -p test 10000-19999

   Pour plus d'informations consultez la page de manuel edquota(8).

  18.15.3. Consulter les quotas et l'utilisation des disques

   Vous pouvez soit utiliser la commande quota(1) soit la commande
   repquota(8) pour consulter les quotas et l'utilisation des disques. La
   commande quota(1) peut etre employee pour connaitre les quotas et
   l'utilisation des disques pour un utilisateur et un groupe. Un utilisateur
   ne peut consulter que ses propres quotas et ceux d'un groupe auquel il
   appartient. Seul le super-utilisateur peut consulter les quotas et l'usage
   disque de tous les utilisateurs et groupes. La commande repquota(8) permet
   d'obtenir un resume de tous les quotas et l'utilisation disque pour les
   systemes de fichiers sur lesquels il y a des quotas.

   Ce qui suit est un extrait de la sortie de la commande quota -v pour un
   utilisateur pour lequel on a defini des quotas sur deux systemes de
   fichiers.

 Disk quotas for user test (uid 1002):
      Filesystem  usage   quota   limit   grace   files   quota   limit   grace
            /usr      65*     50      75   5days       7      50      60
        /usr/var       0      50      75               0      50      60

   Sur le systeme de fichiers /usr dans l'exemple ci-dessus, l'utilisateur
   occupe 15 Ko de plus que la limite de 50 Ko qui lui est allouee et dispose
   d'un delai de grace de 5 jours. Notez l'asterisque * qui indique que
   l'utilisateur depasse actuellement son quota.

   Normalement les systemes de fichiers sur lesquels l'utilisateur n'occupe
   pas d'espace n'apparaissent pas dans la sortie de la commande quota(1),
   meme s'il a des quotas sur ces systemes de fichiers. L'option -v listera
   ces systemes de fichiers, comme /usr/var dans l'exemple ci-dessus.

  18.15.4. Quotas avec NFS

   Les quotas sont geres par le sous-systeme de gestion des quotas sur le
   serveur NFS. Le demon rpc.rquotad(8) fournit les informations sur les
   quotas `a la commande quota(1) des clients NFS, permettant aux
   utilisateurs sur ces machines de consulter l'utilisation des quotas qui
   leur sont alloues.

   Activez rpc.rquotad dans /etc/inetd.conf de la fac,on suivante:

 rquotad/1      dgram rpc/udp wait root /usr/libexec/rpc.rquotad rpc.rquotad

   Puis redemarrez inetd:

 # kill -HUP `cat /var/run/inetd.pid`

18.16. Chiffrer les partitions d'un disque

   Contribution de Lucky Green.

   FreeBSD offre d'excellentes protections contre un acces non autorise aux
   donnees par l'intermediaire du reseau. Les permissions sur les fichiers et
   le controle d'acces obligatoire - "Mandatory Access Control" (MAC) (voir
   Chapitre 16, Mandatory Access Control ** Traduction en Cours **) empechent
   l'acces aux donnees pour des tiers non autorises quand le systeme
   d'exploitation est actif et l'ordinateur en fonctionnement. Cependant, des
   permissions renforces sont inutiles si l'attaquant a un acces physique `a
   un ordinateur et peut simplement deplacer le disque dur sur un autre
   systeme pour copier et analyser les donnees sensibles.

   Independamment de la maniere dont une personne malveillante s'est trouve
   en possession d'un disque dur ou a arrete un ordinateur, le chiffrage de
   disque base sur GEOM (gbde) ("GEOM Based Disk Encryption") et le systeme
   de chiffrage geli de FreeBSD sont en mesure de proteger les donnees des
   systemes de fichiers contre des attaquants tres motives et aux ressources
   importantes. A la difference des methodes de chiffrage lourdes qui
   chiffrent uniquement les fichiers individuels, gbde et geli chiffrent de
   maniere transparente l'integralite du systeme de fichiers. Aucun texte en
   clair ne touche les plateaux du disque.

  18.16.1. Chiffrage des disques avec gbde

    1. Devenir root

       La configuration de gbde requiert les privileges du super-utilisateur.

 % su -
 Password:

    2. Ajouter le support gbde(4) au fichier de configuration du noyau

       Ajoutez la ligne suivante `a votre fichier de configuration du noyau:

       options GEOM_BDE

       Recompilez le noyau comme decrit dans Chapitre 8, Configurer le noyau
       de FreeBSD.

       Redemarrez avec le nouveau noyau.

    3. Au lieu de recompiler le noyau, on peut utiliser kldload pour charger
       le support gbde(4):

 # kldload geom_bde

    18.16.1.1. Preparation du disque dur chiffre

   L'exemple suivant suppose que vous ajoutez un nouveau disque dur `a votre
   systeme et qui contiendra une seule partition chiffree. Cette partition
   sera montee sous /private. gbde peut egalement etre utilise pour chiffrer
   les repertoires /home et /var/mail, mais cela demande une configuration
   plus complexe qui depasse le cadre de cette introduction.

    1. Ajouter le nouveau disque

       Installez le nouveau disque comme explique dans Section 18.3,
       << Ajouter des disques >>. Pour les besoins de cet exemple, une
       nouvelle partition disque a ete ajoutee en tant que /dev/ad4s1c. Les
       peripheriques du type /dev/ad0s1* representent les partitions FreeBSD
       standards sur le systeme exemple.

 # ls /dev/ad*
 /dev/ad0        /dev/ad0s1b     /dev/ad0s1e     /dev/ad4s1
 /dev/ad0s1      /dev/ad0s1c     /dev/ad0s1f     /dev/ad4s1c
 /dev/ad0s1a     /dev/ad0s1d     /dev/ad4

    2. Creer un repertoire pour heberger les fichiers de verrouillage de GBDE

 # mkdir /etc/gbde

       Le fichier de verrouillage de gbde contient l'information necessaire
       `a gbde pour acceder aux partitions chiffrees. Sans acces au fichier
       de verrouillage, gbde sera incapable de dechiffrer les donnees
       contenues sur la partition chiffree sans une aide manuelle
       significative ce qui n'est pas supporte par le logiciel. Chaque
       partition chiffree utilise un fichier de verrouillage propre.

    3. Initialiser la partition gbde

       Une partition gbde doit etre initialisee avant d'etre utilisable.
       Cette initialisation doit etre effectuee une seule fois:

 # gbde init /dev/ad4s1c -i -L /etc/gbde/ad4s1c

       gbde(8) lancera votre editeur, vous permettant de fixer diverses
       options de configuration dans un gabarit. Pour une utilisation de UFS1
       ou UFS2, fixez l'option sector_size `a 2048:

 $FreeBSD: src/sbin/gbde/template.txt,v 1.1 2002/10/20 11:16:13 phk Exp $
 #
 # La taille d'un secteur est la plus petite unite de donnee
 # qui peut etre lue ou ecrite.
 # Une valeur trop petite diminue les performances et l'espace
 # disponible.
 # Une valeur trop grande peut empecher des systemes de
 # fichiers de fonctionner correctement.  512 est la valeur minimale
 # et sans risque.  Pour l'UFS, utiliser la taille d'un fragment
 #
 sector_size     =       2048
 [...]

       gbde(8) vous demandera de taper deux fois la phrase d'authentification
       qui devra etre utilisee pour securiser les donnees. La phrase
       d'authentification doit etre la meme dans les deux cas. La capacite de
       gbde `a proteger vos donnees depend de la qualite de la phrase
       d'authentification que vous avez choisie. [10]

       La commande gbde init cree un fichier de verrouillage pour votre
       partition gbde qui dans cet exemple est stocke sous /etc/gbde/ad4s1c.

  Attention:

       Les fichiers de verrouillage de gbde doivent etre conserves de pair
       avec le contenu des partitions chiffrees. Alors que la suppression
       seule d'un fichier de verrouillage ne peut empecher une personne
       determinee de dechiffrer une partition gbde, sans le fichier de
       verrouillage, le proprietaire legitime sera incapable d'acceder aux
       donnees de la partition chiffree sans beaucoup de travail ce qui est
       totalement non supporte par gbde(8) et son concepteur.

    4. Attacher la partition chiffree au noyau

 # gbde attach /dev/ad4s1c -l /etc/gbde/ad4s1c

       On vous demandera de fournir la phrase d'authentification que vous
       avez choisie lors de l'initialisation de la partition chiffree. Le
       nouveau peripherique chiffre apparaitra dans /dev en tant que
       /dev/nom_peripherique.bde:

 # ls /dev/ad*
 /dev/ad0        /dev/ad0s1b     /dev/ad0s1e     /dev/ad4s1
 /dev/ad0s1      /dev/ad0s1c     /dev/ad0s1f     /dev/ad4s1c
 /dev/ad0s1a     /dev/ad0s1d     /dev/ad4        /dev/ad4s1c.bde

    5. Creer un systeme de fichiers sur le peripherique chiffre

       Une fois que le peripherique chiffre a ete attache au noyau, vous
       pouvez creer un systeme de fichiers sur le peripherique. Pour creer un
       systeme de fichiers sur le peripherique, utilisez newfs(8). Puisqu'il
       est plus rapide d'initialiser un nouveau systeme de fichiers UFS2
       qu'un nouveau systeme UFS1, l'utilisation de newfs(8) avec l'option
       -O2 est recommande.

 # newfs -U -O2 /dev/ad4s1c.bde

  Note:

       La commande newfs(8) peut etre effectuee sur une partition gbde
       attachee qui est identifiee par une extension *.bde au niveau du nom
       de peripherique.

    6. Monter la partition chiffree

       Creez un point de montage pour le systeme de fichiers chiffre.

 # mkdir /private

       Montez le systeme de fichiers chiffre.

 # mount /dev/ad4s1c.bde /private

    7. Verifiez que le systeme de fichiers chiffre est disponible

       Le systeme de fichiers chiffre devrait etre visible par df(1) et pret
       `a etre utilise:

 % df -H
 Filesystem        Size   Used  Avail Capacity  Mounted on
 /dev/ad0s1a      1037M    72M   883M     8%    /
 /devfs            1.0K   1.0K     0B   100%    /dev
 /dev/ad0s1f       8.1G    55K   7.5G     0%    /home
 /dev/ad0s1e      1037M   1.1M   953M     0%    /tmp
 /dev/ad0s1d       6.1G   1.9G   3.7G    35%    /usr
 /dev/ad4s1c.bde   150G   4.1K   138G     0%    /private

    18.16.1.2. Montage des systemes de fichiers chiffres

   Apres chaque demarrage, tout systeme de fichiers chiffre doit etre
   rattache au noyau, controle pour les erreurs, et monte, avant que les
   systemes de fichiers ne puissent etre utilises. Les commandes necessaires
   doivent etre executees en tant que root.

    1. Attacher la partition gdbe au noyau

 # gbde attach /dev/ad4s1c -l /etc/gbde/ad4s1c

       On vous demandera de fournir la phrase d'authentification que vous
       avez choisie lors de l'initialisation de la partition gbde chiffree.

    2. Controler les erreurs du systeme de fichiers

       Puisque les systemes de fichiers chiffres ne peuvent etre encore
       listes dans le fichier /etc/fstab pour un montage automatique, on doit
       donc controler les systemes de fichiers pour d'eventuelles erreurs en
       executant manuellement fsck(8) avant le montage.

 # fsck -p -t ffs /dev/ad4s1c.bde

    3. Monter le systeme de fichiers chiffre

 # mount /dev/ad4s1c.bde /private

       Le systeme de fichiers est maintenant disponible `a l'utilisation.

      18.16.1.2.1. Montage automatique de partitions chiffrees

   Il est possible de creer une procedure pour automatiquement attacher,
   controler, et monter une partition chiffree, mais pour des raisons de
   securite la procedure ne devrait pas contenir le mot de passe gbde(8). A
   la place, il est recommande que de telles procedures soient executees
   manuellement tout en fournissant le mot de passe via la console ou ssh(1).

   Comme autre possibilite, une procedure rc.d est fournie. Des arguments
   peuvent etre passes `a cette procedure par l'intermediaire de rc.conf(5),,
   par exemple:

 gbde_autoattach_all="YES"
 gbde_devices="ad4s1c"

   Cela impose la saisie de la phrase d'authentification gbde au demarrage.
   Apres avoir entre la phrase d'authentification correctement, la partition
   chiffree gbde sera montee automatiquement. Cela peut etre tres utile quand
   gbde est utilise sur des ordinateurs portables.

    18.16.1.3. Les protections cryptographiques utilisees par gbde

   gbde(8) chiffre la partie utile des secteurs en utilisant le chiffrage AES
   128 bits en mode CBC. Chaque secteur sur le disque est chiffre avec une
   cle AES differente. Pour plus d'informations sur l'architecture
   cryptographique de gbde, y compris comment les cles pour chaque secteur
   sont des derives de la phrase d'authentification donnee par l'utilisateur,
   voir la page de manuel gbde(4).

    18.16.1.4. Problemes de compatibilite

   sysinstall(8) est incompatible avec les peripheriques gbde-chiffres. Tous
   les peripheriques *.bde doivent etre detaches du noyau avant de lancer
   sysinstall(8) ou ce dernier plantera durant son processus initial de
   recherche des peripheriques. Pour detacher le peripherique chiffre utilise
   dans notre exemple, utilisez la commande suivante:

 # gbde detach /dev/ad4s1c

   Notez egalement qu'etant donne que vinum(4) n'utilise pas le sous-systeme
   geom(4), vous ne pouvez utiliser gbde avec des volumes vinum.

  18.16.2. Chiffrage des disques avec geli

   Contribution de Daniel Gerzo.

   Depuis FreeBSD 6.0, une nouvelle classe GEOM pour le chiffrage des donnees
   est disponible: geli. Cette classe est developpee par Pawel Jakub Dawidek.
   L'outil geli est different de gbde; il offre des fonctionnalites
   differentes et utilise une methode differente pour chiffrer les donnees.

   Les caracteristiques les plus importantes de geli(8) sont:

     * Utilisation du systeme crypto(9) - quand du materiel destine au
       chiffrement est disponible dans la machine, geli l'utilisera
       automatiquement.

     * Support de plusieurs algorithmes de chiffrement (actuellement AES,
       Blowfish, et 3DES).

     * Permettre le chiffrage de la partition racine. La phrase
       d'authentification utilisee pour acceder `a la partition racine
       chiffree sera demandee au demarrage du systeme.

     * Permettre l'emploi de deux cles independantes (par exemple une << cle
       utilisateur >> et une << cle entreprise >>).

     * geli est rapide-il effectue un simple chiffrement de secteur `a
       secteur.

     * Permettre la sauvegarde et la restauration des cles principales. Quand
       un utilisateur doit detruire ses cles, il sera possible d'acceder `a
       nouveau aux donnees en restaurant les cles `a partir de la sauvegarde.

     * Permettre d'attacher un disque avec une cle aleatoire `a usage unique
       - utile pour les partitions de pagination et les systemes de fichiers
       temporaires.

   Plus de caracteristiques concernant geli peuvent etre trouvees dans la
   page de manuel de geli(8).

   Les points suivants decriront comment activer le support pour geli dans le
   noyau FreeBSD et expliqueront comment creer et utiliser un provider (ou
   partition) chiffre geli.

   Afin de pouvoir employer geli, vous devez utiliser FreeBSD 6.0-RELEASE ou
   une version ulterieure. Les privileges du super-utilisateur seront
   egalement necessaire puisque il faudra effectuer des modifications au
   niveau du noyau.

    1. Ajouter le support geli au noyau

       Ajoutez les lignes suivantes au fichier de configuration du noyau:

 options GEOM_ELI
 device crypto

       Recompilez le noyau comme decrit dans la Chapitre 8, Configurer le
       noyau de FreeBSD.

       Sinon, le module geli peut etre charge au demarrage. Ajoutez la ligne
       suivante au fichier /boot/loader.conf:

 geom_eli_load="YES"

       Le systeme geli(8) devrait desormais etre supporte par le noyau.

    2. Generer la cle principale

       L'exemple suivant decrira la methode pour generer un fichier cle qui
       sera utilise comme partie de la cle principale pour le provider
       chiffre monte sous le repertoire /private. Le fichier cle fournira des
       donnees aleatoires qui seront employees pour chiffrer la cle
       principale. La cle principale sera egalement protegee par une phrase
       d'authentification. La taille des secteurs du provider sera de 4Ko. De
       plus, sera decrit comment attacher au systeme le provider geli, creer
       un systeme de fichiers dessus, utiliser ce systeme de fichiers et
       enfin comment le detacher.

       Il est recommande d'utiliser une taille de secteur plus grande (comme
       4Ko) pour de meilleures performances.

       La cle principale sera protegee avec une phrase d'authentification et
       la source de donnees pour le fichier cle sera /dev/random. La taille
       des secteurs de /dev/da2.eli, partition que nous appelons provider,
       sera de 4Ko.

 # dd if=/dev/random of=/root/da2.key bs=64 count=1
 # geli init -s 4096 -K /root/da2.key /dev/da2
 Enter new passphrase:
 Reenter new passphrase:

       Il n'est pas obligatoire d'utiliser la phrase d'authentification et le
       fichier cle; chacune de ces methodes de securisation de la cle
       principale peut etre utilisee separement.

       Si `a la place du fichier cle un << - >> est passe, l'entree standard
       sera utilisee. Cet exemple montre comment on peut utiliser plus d'un
       fichier cle:

 # cat keyfile1 keyfile2 keyfile3 | geli init -K - /dev/da2

    3. Attacher le provider avec la cle generee

 # geli attach -k /root/da2.key /dev/da2
 Enter passphrase:

       Le nouveau peripherique sera appele /dev/da2.eli.

 # ls /dev/da2*
 /dev/da2  /dev/da2.eli

    4. Creer le nouveau systeme de fichiers

 # dd if=/dev/random of=/dev/da2.eli bs=1m
 # newfs /dev/da2.eli
 # mount /dev/da2.eli /private

       Le systeme de fichiers chiffre devrait etre maintenant visible par
       df(1) et disponible `a l'utilisation:

 # df -H
 Filesystem     Size   Used  Avail Capacity  Mounted on
 /dev/ad0s1a    248M    89M   139M    38%    /
 /devfs         1.0K   1.0K     0B   100%    /dev
 /dev/ad0s1f    7.7G   2.3G   4.9G    32%    /usr
 /dev/ad0s1d    989M   1.5M   909M     0%    /tmp
 /dev/ad0s1e    3.9G   1.3G   2.3G    35%    /var
 /dev/da2.eli   150G   4.1K   138G     0%    /private

    5. Demonter et detacher le provider

       Une fois l'utilisation de la partition chiffree achevee et que la
       partition /private n'est plus necessaire, il est prudent de penser `a
       demonter et detacher la partition geli chiffree:

 # umount /private
 # geli detach da2.eli

   Plus d'information sur l'utilisation de geli(8) peut etre trouvee dans sa
   page de manuel.

    18.16.2.1. Utiliser la procedure rc.d de geli

   La commande geli est fournie avec une procedure rc.d qui peut etre
   employee pour simplifier l'utilisation de geli. Un exemple de
   configuration de geli `a l'aide de rc.conf(5) sera:

 geli_devices="da2"
 geli_da2_flags="-p -k /root/da2.key"

   Ces lignes configureront /dev/da2 comme provider geli avec une cle
   principale /root/da2.key, de plus geli n'utilisera pas de phrase
   d'authentification pour attacher le provider (notez que ceci n'est
   utilisable que si l'option -P a ete passee durant la phase geli init). Le
   systeme detachera du noyau le provider geli avant l'arret du systeme.

   Plus d'information sur la configuration du systeme rc.d est fournie dans
   la section rc.d de ce Manuel.

18.17. Chiffrage de l'espace de pagination

   Ecrit par Christian Bru:ffer.

   Sous FreeBSD, le chiffrement de l'espace de pagination est simple `a
   mettre en place et est possible depuis FreeBSD 5.3-RELEASE. En fonction de
   la version de FreeBSD utilisee, differentes options sont disponibles et la
   configuration peut legerement varier. Depuis FreeBSD 6.0-RELEASE, les
   systemes de chiffrage gbde(8) ou geli(8) peuvent etre utilise `a cet
   effet. Avec les versions anterieures, seul gbde(8) est disponible. Les
   deux systemes utilisent la procedure rc.d nommee encswap.

   La section precedente, Chiffrer les partitions d'un disque, contient une
   courte explication sur les differents systemes de chiffrage.

  18.17.1. Pourquoi l'espace de pagination devrait etre chiffre?

   Comme pour le chiffrage des partitions d'un disque, chiffrer l'espace de
   pagination a pour but la protection des informations sensibles. Imaginez
   une application qui, par exemple, traite des mots de passe. Tant que ces
   mots de passe resident en memoire tout va pour le mieux. Cependant, si le
   systeme d'exploitation commence `a transferer des pages memoires vers
   l'espace de pagination en vue de liberer de la memoire pour d'autres
   applications, les mots de passe peuvent etre ecrits en clair sur les
   plateaux du disque et seront faciles `a recuperer par une personne
   malveillante. Chiffrer l'espace de pagination peut etre une solution
   contre ce scenario.

  18.17.2. Preparation

  Note:

   Pour le reste de cette section, ad0s1b sera la partition reservee `a
   l'espace de pagination.

   Jusqu'ici l'espace de pagination n'a jamais ete chiffre. Il est fort
   possible qu'il y ait dej`a des mots de passe ou toute autre donnee
   sensible de presents en clair sur les plateaux du disque. Afin d'y
   remedier, les donnees de la partition de pagination doivent etre ecrasees
   avec des donnees aleatoires:

 # dd if=/dev/random of=/dev/ad0s1b bs=1m

  18.17.3. Chiffrer de l'espace de pagination avec gbde(8)

   Si FreeBSD 6.0-RELEASE ou une version plus recente est utilisee, le
   suffixe .bde doit etre ajoute au nom de peripherique sur la ligne du
   fichier /etc/fstab correspondant `a cet espace de pagination:

 # Device                Mountpoint      FStype  Options         Dump    Pass#
 /dev/ad0s1b.bde         none            swap    sw              0       0

   Pour les systemes anterieurs `a FreeBSD 6.0-RELEASE, la ligne suivante
   doit egalement etre ajoutee `a /etc/rc.conf:

 gbde_swap_enable="YES"

  18.17.4. Chiffrage de l'espace de pagination avec geli(8)

   La procedure pour le chiffrage de l'espace de pagination avec geli(8) est
   similaire `a celle pour l'utilisation de gbde(8). Le suffixe .eli doit
   etre ajoute au nom de peripherique sur la ligne du fichier /etc/fstab
   correspondant `a cet espace de pagination:

 # Device                Mountpoint      FStype  Options         Dump    Pass#
 /dev/ad0s1b.eli         none            swap    sw              0       0

   Par defaut, geli(8) utilise l'algorithme AES avec une longueur de cle de
   256bits.

   Les valeurs par defaut peuvent etre modifiees en utilisant l'option
   geli_swap_flags dans le fichier /etc/rc.conf. La ligne suivante demande `a
   la procedure rc.d encswap de creer des partitions de pagination en
   utilisant l'algorithme Blowfish avec une cle de 128 bits de longueur, une
   taille de secteur de 4 kilo-octets et avec l'option << detach on last
   close >> (detacher apres demontage de la partition) activee:

 geli_swap_flags="-a blowfish -l 128 -s 4096 -d"

   Veuillez vous referer `a la description de la commande onetime dans la
   page de manuel geli(8) pour une liste des options possibles.

  18.17.5. Verifier que cela fonctionne

   Une fois que le systeme a ete redemarre, le fonctionnement correct de
   l'espace de pagination peut etre verifie en utilisant la commande
   swapinfo.

   Si gbde(8) est utilise:

 % swapinfo
 Device          1K-blocks     Used    Avail Capacity
 /dev/ad0s1b.bde    542720        0   542720     0%

   Si geli(8) est utilise:

 % swapinfo
 Device          1K-blocks     Used    Avail Capacity
 /dev/ad0s1b.eli    542720        0   542720     0%

     ----------------------------------------------------------------------

   [10] Pour des conseils sur comment choisir une phrase d'authentification
   securisee et facile `a retenir, consultez le site Web Diceware Passphrase.

Chapitre 19. GEOM: architecture modulaire de gestion des disques

   Ecrit par Tom Rhodes.
   Table des matieres

   19.1. Synopsis

   19.2. Introduction `a GEOM

   19.3. RAID0 - << Striping >>

   19.4. RAID1 - << mirroring >>

   19.5. Peripheriques reseau << GEOM Gate >>

   19.6. Ajouter un label `a un disque

   Version franc,aise de Marc Fonvieille <blackend@FreeBSD.org>.

19.1. Synopsis

   Ce chapitre couvre l'utilisation des disques via le systeme GEOM sous
   FreeBSD. Cela comprend les utilitaires principaux de controle des niveaux
   RAID qui utilisent GEOM pour la configuration. Ce chapitre n'abordera pas
   en profondeur la maniere dont GEOM gere et controle les E/S, les systemes
   sous-jacents, ou le code utilise. Ces informations sont fournies par la
   page de manuel geom(4) et ses nombreuses references. Ce chapitre n'est pas
   non plus un guide de reference sur les configurations RAID. Seuls les
   niveaux de RAID supportes par GEOM seront abordes.

   Apres la lecture de ce chapitre, vous saurez:

     * Quel type de support RAID est disponible avec GEOM.

     * Comment utiliser les utilitaires de base pour configurer, gerer et
       manipuler les differents niveaux de RAID.

     * Comment dupliquer, entrelacer, et connecter `a distance des disques
       via le systeme GEOM.

     * Comment depanner les disques attaches au systeme GEOM.

   Avant de lire ce chapitre, vous devrez:

     * Comprendre comment FreeBSD gere les disques (Chapitre 18, Stockage des
       donnees).

     * Savoir comment configurer et installer un nouveau noyau FreeBSD
       (Chapitre 8, Configurer le noyau de FreeBSD).

19.2. Introduction `a GEOM

   GEOM autorise l'acces et le controle de classes - secteur principaux de
   demarrage (<< Master Boot Records >>), labels BSD, etc. - par
   l'intermediaire d'interfaces, ou de fichiers speciaux du repertoire /dev.
   En supportant plusieurs configurations RAID logicielles, GEOM offrira un
   acces transparent au systeme d'exploitation et `a ses utilitaires.

19.3. RAID0 - << Striping >>

   Ecrit par Tom Rhodes et Murray Stokely.

   Le << striping >> (ou entrelacement) est utilise pour combiner plusieurs
   disques en un seul volume de stockage. Dans de nombreux cas, cette
   configuration est realisee `a l'aide de controleurs materiels. Le
   sous-systeme GEOM offre le support pour le niveau RAID0, egalement connu
   sous le nom de << striping >>.

   Dans un systeme RAID0, les donnees sont divisees en blocs repartis sur
   l'ensemble des disques de la << grappe >>. Au lieu de devoir attendre
   l'ecriture de 256k sur un disque, un systeme RAID0 peut ecrire en
   simultane 64k sur quatre disques differents, offrant alors des
   performances d'acces superieures. Ces performances peuvent etre encore
   ameliorees en utilisant plusieurs controleurs de disques.

   Chaque disque d'une bande (<< stripe >>) RAID0 doit avoir la meme taille,
   puisque les requetes d'E/S sont entrelacees de maniere `a lire ou ecrire
   sur plusieurs disques en parallele.

                   Illustration de l'entrelacement de disques
   Procedure 19.1. Creation d'un systeme entrelace `a partir de disques ATA
   non formates
    1. Chargez le module geom_stripe:

 # kldload geom_stripe

    2. Assurez-vous de l'existence d'un point de montage. Si ce volume doit
       devenir une partition racine, utilisez alors un autre point de montage
       comme /mnt.

 # mkdir /mnt

    3. Determinez les noms de peripheriques pour les disques qui seront
       entrelace, et creez le nouveau peripherique entrelace. Par exemple,
       pour entrelacer deux disques ATA non utilises et non partitionnes, par
       exemple /dev/ad2 et /dev/ad3:

 # gstripe label -v st0 /dev/ad2 /dev/ad3

    4. Creez un label standard, egalement connu sous le nom de table des
       partitions, sur le nouveau volume et installez le code d'amorac,age
       par defaut:

 # bsdlabel -wB /dev/stripe/st0

    5. Cette operation doit avoir cree deux autres peripheriques dans le
       repertoire /dev/stripe en plus du peripherique st0: st0a et st0c. A ce
       stade, un systeme de fichiers peut etre cree sur st0a en utilisant la
       commande newfs:

 # newfs -U /dev/stripe/st0a

       Des nombres defileront `a l'ecran, l'operation sera s'achevera apres
       quelques secondes. Le volume a ete cree et est pret `a etre monte.

   Pour monter manuellement une grappe de disques entrelaces fraichement
   creee:

 # mount /dev/stripe/st0a /mnt

   Pour monter automatiquement au demarrage ce systeme de fichiers entrelace,
   ajoutez les informations concernant ce volume dans le fichier /etc/fstab:

 # echo "/dev/stripe/st0a /mnt ufs rw 2 2" \
     >> /etc/fstab

   Le module geom_stripe doit egalement etre automatiquement charge lors de
   l'initialisation du systeme en ajoutant une ligne au fichier
   /boot/loader.conf:

 # echo 'geom_stripe_load="YES"' >> /boot/loader.conf

19.4. RAID1 - << mirroring >>

   Le << mirroring >> est une technologie utilisee par de nombreuses
   entreprises et beaucoup de particuliers pour sauvegarder les donnees sans
   interruption des activites. Quand un miroir existe, cela signifie que le
   disque B est une copie du disque A. Ou, autre cas, que les disques C+D
   sont une copie des disques A+B. Independamment de la configuration des
   disques, l'aspect important est que les donnees d'un disque ou d'une
   partition sont dupliquees. Ulterieurement, ces donnees pourront etre plus
   facilement restaurees, sauvegardees sans interrompre le systeme ou les
   acces, et pourront meme etre stockees physiquement de maniere sure.

   Pour commencer, verifiez que le systeme dispose de deux disques de taille
   identique, cet exemple suppose que ce sont des disques SCSI (da(4)).

   Installez FreeBSD sur le premier disque avec uniquement deux partitions.
   Une partition sera la partition de pagination d'une taille double `a celle
   de la RAM et l'espace restant sera alloue au systeme de fichiers racine
   (/). Il est possible d'avoir des partitions separees pour les autres
   points de montage, cependant cela augmentera enormement le niveau de
   difficulte en raison des modifications manuelles necessaires des
   parametres de bsdlabel(8) et fdisk(8).

   Redemarrez et attendez l'initialisation complete du systeme. Ensuite,
   ouvrez une session sous l'utilisateur root.

   Creez le peripherique /dev/mirror/gm et liez-le avec /dev/da1:

 # gmirror label -vnb round-robin gm0 /dev/da1

   Le systeme devrait repondre par:

 Metadata value stored on /dev/da1.
 Done.

   Initialisez GEOM, cela devrait charger le module du noyau
   /boot/kernel/geom_mirror.ko:

 # gmirror load

  Note:

   Cette commande devrait creer le fichier special de peripherique gm0 sous
   le repertoire /dev/mirror.

   Installez un label fdisk et un code de d'amorce generiques sur le nouveau
   peripherique gm0:

 # fdisk -vBI /dev/mirror/gm0

   Installez maintenant un label generique bsdlabel:

 # bsdlabel -wB /dev/mirror/gm0s1

  Note:

   S'il existe plusieurs << slices >> et plusieurs partitions, il faudra
   modifier les parametres des deux commandes precedentes. Elles doivent
   correspondre aux tailles des partitions et << slices >> sur l'autre
   disque.

   Utilisez l'utilitaire newfs(8) pour creer un systeme de fichiers UFS sur
   le peripherique gm0s1a:

 # newfs -U /dev/mirror/gm0s1a

   Le systeme devrait alors afficher un certain nombre d'informations et de
   nombres. C'est bon signe. Controlez l'affichage `a la recherche de
   messages d'erreur et montez le peripherique sur le point de montage /mnt:

 # mount /dev/mirror/gm0s1a /mnt

   Transferez maintenant toutes les donnees du disque de demarrage vers ce
   nouveau systeme de fichiers. Dans notre exemple nous utilisons `a cet
   effet les commandes dump(8) et restore(8), cependant la commande dd(1)
   conviendrait egalement.

 # dump -L -0 -f- / |(cd /mnt && restore -r -v -f-)

   Cela doit etre effectue pour chaque systeme de fichiers. Placez simplement
   le systeme de fichiers approprie au bon endroit quand vous executez la
   commande precedente.

   Editez ensuite le fichier /mnt/etc/fstab et supprimez ou mettez en
   commentaires le fichier de pagination [11]. Modifiez les autres parametres
   du systeme de fichiers pour utiliser le nouveau disque comme presente
   l'exemple suivant:

 # Device                Mountpoint      FStype  Options         Dump    Pass#
 #/dev/da0s2b             none            swap    sw              0       0
 /dev/mirror/gm0s1a       /               ufs     rw              1       1

   Creez maintenant un fichier boot.config sur la partition racine actuelle
   et celle nouvellement creee. Ce fichier << aidera >> le BIOS `a determiner
   correctement sur quel disque demarrer:

 # echo "1:da(1,a)/boot/loader" > /boot.config

 # echo "1:da(1,a)/boot/loader" > /mnt/boot.config

  Note:

   Nous l'avons ajouter sur les deux partitions racines afin d'assurer un
   demarrage correct. Si pour une raison quelconque le systeme ne pourrait le
   lire `a partir de la nouvelle partition racine, une version de secours est
   disponible.

   Assurez-vous que le module geom_mirror.ko sera charge au demarrage du
   systeme en lanc,ant la commande suivante:

 # echo 'geom_mirror_load="YES"' >> /mnt/boot/loader.conf

   Redemarrez le systeme:

 # shutdown -r now

   Si tout s'est bien passe, le systeme a du demarrer `a partir du
   peripherique gm0s1a et une invite d'ouverture de session doit etre
   affichee. En cas de probleme, consultez la section suivante consacree au
   depannage. Ajoutez maintenant le disque da0 au peripherique gm0:

 # gmirror configure -a gm0
 # gmirror insert gm0 /dev/da0

   L'option -a demande `a gmirror(8) d'utiliser une synchronisation
   automatique, c'est `a dire dupliquer automatiquement toute ecriture
   disque. La page de manuel explique comment reconstruire et remplacer les
   disques, avec la difference qu'elle utilise data `a la place de gm0.

  19.4.1. Depannage

    19.4.1.1. Le systeme refuse de demarrer

   Si le demarrage du systeme s'interrompt `a une invite semblable `a:

 ffs_mountroot: can't find rootvp
 Root mount failed: 6
 mountroot>

   Redemarrez la machine `a l'aide du bouton de mise en marche ou de
   << reset >>. Au menu de demarrage, selectionnez la sixieme option (6). Le
   systeme basculera alors vers une invite du chargeur (loader(8)). Chargez
   manuellement le module du noyau:

 OK? load geom_mirror
 OK? boot

   Si cela fonctionne, cela signifie que pour une raison quelconque le module
   n'a pas ete correctement charge. Ajoutez la ligne:

 options GEOM_MIRROR

   dans le fichier de configuration du noyau, recompilez-le puis
   reinstallez-le. Cela devrait corriger le probleme.

19.5. Peripheriques reseau << GEOM Gate >>

   GEOM supporte l'utilisation de peripheriques distants, comme les disques
   durs, les CD-ROMs, les fichiers, etc. via l'utilisation des outils
   << gate >>. Ce mecanisme est semblable `a NFS.

   Pour commencer, un fichier d'export doit etre cree. Ce fichier precise qui
   est autorise `a acceder aux ressources partagees et quel niveau d'acces
   est offert. Par exemple, pour partager la quatrieme tranche du premier
   disque SCSI, le fichier /etc/gg.exports suivant est adapte:

 192.168.1.0/24 RW /dev/da0s4d

   Cette ligne autorisera l'acces au systeme de fichiers present sur la
   partition da0s4d `a toutes les machines du reseau local.

   Pour exporter ce peripherique, assurez-vous tout d'abord qu'il n'est pas
   dej`a monte et lancez le << demon >> ggated(8):

 # ggated

   Maintenant pour monter le peripherique sur la machine cliente, tapez les
   commandes suivantes:

 # ggatec create -o rw 192.168.1.1 /dev/da0s4d
 ggate0
 # mount /dev/ggate0 /mnt

   A partir d'ici, on peut acceder au peripherique par l'intermediaire du
   point de montage /mnt.

  Note:

   Il est `a noter que toutes ces operations echoueront si le disque est
   dej`a monte soit sur la machine serveur soit sur tout autre machine du
   reseau.

   Quand le peripherique n'est plus utilise, il peut etre demonte sans risque
   avec la commande umount(8) de la meme maniere que pour tout autre disque.

19.6. Ajouter un label `a un disque

   Lors de l'initialisation du systeme, le noyau FreeBSD cree les fichiers
   speciaux de peripheriques `a mesure que les peripheriques sont detectes.
   Cette methode de detection des peripheriques souleve quelques problemes,
   par exemple que se passe-t-il si un nouveau disque est ajoute par
   l'intermediaire de l'interface USB? Il est tres probable qu'un disque
   flash se verra proposer le nom de peripherique da0 et le peripherique
   original da0 deplace en da1. Cela sera `a l'origine de problemes de
   montage des systemes de fichiers s'ils sont listes dans /etc/fstab, en
   fait cela pourra tout simplement empecher le demarrage du systeme.

   Une solution `a ce probleme est d'<< enchainer >> les peripheriques SCSI
   afin que tout nouveau peripherique ajoute sur la carte SCSI se voit
   assigne un numero de peripherique non-utilise. Mais qu'en est-il des
   peripheriques USB qui peuvent remplacer le premier disque SCSI? Cela se
   produit parce que les peripheriques USB sont en general detectes avant la
   carte SCSI. Une solution est de brancher ces peripheriques qu'apres le
   demarrage du systeme. Une autre methode serait de n'utiliser qu'un seul
   disque ATA et de ne jamais lister de peripheriques SCSI dans le fichier
   /etc/fstab.

   Une meilleure solution existe. En employant l'utilitaire glabel, un
   administrateur ou un utilisateur peut attribuer un label `a chacun de ses
   disques et utiliser ces labels dans /etc/fstab. Comme glabel conserve le
   label sur le dernier secteur du support concerne, le label persistera
   apres redemarrage du systeme. En utilisant ce label comme un veritable
   peripherique, le systeme de fichiers pourra toujours etre monte
   independamment du fichier special de peripherique utilise pour y acceder.

  Note:

   Cela se fait sans preciser qu'un label sera permanent. L'utilitaire glabel
   peut etre utilise pour creer des labels persistants et des labels
   ephemeres. Seul le label persistant sera conserve apres redemarrage du
   systeme. Consultez la page de manuel de glabel(8) pour plus d'information
   sur les differences entre labels.

  19.6.1. Types et exemples de labels

   Il existe deux types de label, un label generique et un label de systeme
   de fichiers. La difference entre les labels est le systeme
   d'auto-detection associe avec les labels permanents, et le fait que ce
   type de label sera persistant apres redemarrage du systeme. A ces labels
   est attribue un sous-repertoire specifique de /dev dont le nom sera base
   sur le type de systeme de fichiers. Par exemple, les labels de systemes de
   fichiers UFS2 seront crees dans le repertoire /dev/ufs2.

   Un label generique disparaitra au redemarrage suivant. Ces labels seront
   crees dans le repertoire /dev/label et sont parfaits pour faire des
   experiences.

   Les labels permanents peuvent etre places sur le systeme de fichiers en
   utilisant les utilitaires tunefs ou newfs. Pour creer un label permanent
   pour un systeme de fichier UFS2 sans endommager de donnees, utilisez la
   commande suivante:

 # tunefs -L home /dev/da3

  Avertissement:

   Si le systeme de fichiers est plein, cette operation pourra entrainer une
   corruption des donnees; si le systeme de fichiers est plein, alors la
   premiere chose `a faire sera de supprimer les fichiers inutiles et non pas
   l'ajout de labels.

   Un nouveau label devrait desormais apparaitre dans /dev/ufs2 et pourra
   etre ajoute `a /etc/fstab:

 /dev/ufs2/home          /home            ufs     rw              2      2

  Note:

   Le systeme de fichiers ne doit pas etre monte lors de l'utilisation de
   tunefs.

   Le systeme de fichiers peut, maintenant, etre normalement monte:

 # mount /home

   La commande suivante peut etre employee pour supprimer le label:

 # glabel destroy home

   A partir de cet instant, aussi longtemps que le module du noyau
   geom_label.ko est charge au demarrage avec /boot/loader.conf ou que
   l'option GEOM_LABEL est presente dans le noyau, le fichier special de
   peripherique peut changer sans effet negatif pour le systeme.

   Les systemes de fichiers peuvent egalement etre crees avec un label par
   defaut en utilisant l'option -L avec newfs. Consultez la page de manuel de
   newfs(8) pour plus d'information.

     ----------------------------------------------------------------------

   [11] Il est `a noter que commenter l'entree de l'espace de pagination dans
   fstab vous demandera tres probablement de mettre en place une methode
   differente pour activer l'espace de pagination. Veuillez vous referer `a
   la Section 11.13, << Ajouter de l'espace de pagination >> pour plus
   d'informations.

Chapitre 20. The Z File System (ZFS) ** Traduction en Cours **

   Ecrit par Tom Rhodes, Allan Jude, Benedict Reuschling et Warren Block.
   Table des matieres

   20.1. What Makes ZFS Different

   20.2. Quick Start Guide

   20.3. zpool Administration

   20.4. zfs Administration

   20.5. Delegated Administration

   20.6. Additional Resources

   20.7. ZFS Features and Terminology

20.1. What Makes ZFS Different

20.2. Quick Start Guide

20.3. zpool Administration

20.4. zfs Administration

20.5. Delegated Administration

20.6. Additional Resources

20.7. ZFS Features and Terminology

Chapitre 21. Autres systemes de fichiers

   Ecrit par Tom Rhodes.
   Table des matieres

   21.1. Synopsis

   21.2. Systemes de fichiers Linux(R)

   Version franc,aise de Marc Fonvieille <blackend@FreeBSD.org>.

21.1. Synopsis

   Les systemes de fichiers sont partie integrante de n'importe quel systeme
   d'exploitation. Ils permettent aux utilisateurs de lire et stocker des
   fichiers, de donner acces aux donnees, et rendre utiles les disques durs.
   Les systemes d'exploitation different par leur systeme de fichiers natifs.
   Traditionnellement, le systeme de fichiers natif de FreeBSD etait l'Unix
   File System UFS qui a ete modernise sous le nom UFS2. Depuis la version
   FreeBSD 7.0, le systeme de fichiers Z ou Z File System (ZFS) est egalement
   disponible en tant que systeme de fichiers natif. Consultez Chapitre 20,
   The Z File System (ZFS) ** Traduction en Cours ** pour plus d'information.

   En plus de ses systemes de fichiers natifs, FreeBSD supporte une multitude
   d'autres systemes de fichiers donnant ainsi un acces local aux donnees
   d'autres systemes d'exploitation, comme les donnees presentes sur des
   peripheriques USB, les disques flash et des disques durs. Cela comprend
   egalement le support pour le systeme de fichiers etendu de Linux(R) ou
   Extended File System (EXT).

   Il y a differents niveaux de support de FreeBSD pour les differents
   systemes de fichiers. Certains necessitent le chargement d'un module du
   noyau et d'autres l'installation d'un ensemble d'outils. Le support de
   certains systemes de fichiers est complet en lecture et en ecriture alors
   que pour d'autres il est limite `a la lecture.

   Apres la lecture de ce chapitre, vous connaitrez:

     * La difference entre les systemes de fichiers natifs et supportes.

     * Quels systemes de fichiers sont supporte par FreeBSD.

     * Comment activer, configurer, acceder, et utiliser des systemes de
       fichiers non-natifs.

   Avant de lire ce chapitre, vous devez:

     * Comprendre UNIX(R) et les bases de FreeBSD.

     * Etre familier avec les bases de la configuration et compilation du
       noyau.

     * Etre `a l'aise avec l'installation de logiciels sous FreeBSD.

     * Avoir quelques connaissances sur les disques, les stockage de donnees,
       et les noms de peripheriques sous FreeBSD.

21.2. Systemes de fichiers Linux(R)

   FreeBSD offre un support integre pour plusieurs systemes de fichiers
   Linux(R). Cette section montre comment charger le support et comment
   monter les systemes de fichiers Linux(R) supportes.

  21.2.1. ext2

   Le support du noyau pour les systemes de fichiers ext2 est disponible
   depuis FreeBSD 2.2. Sous FreeBSD 8.X et versions anterieures, le code
   etait sous licence GPL. Depuis FreeBSD 9.0, le code a ete recrit et est
   desormais sous licence BSD.

   Le pilote ext2fs(5) permet au noyau FreeBSD de lire et ecrire sur les
   systemes de fichiers ext2.

  Note:

   Ce pilote peut egalement etre utilise pour acceder `a des systemes de
   fichiers ext3 et ext4. Le systeme de fichiers ext2fs(5) supporte
   completement l'ecriture et la lecture de systemes de fichiers ext4 `a
   partir de FreeBSD 12.0-RELEASE. De plus, les attributs etendus et les ACLs
   sont egalement supportes, mais ce n'est pas le cas de la journalisation et
   du chiffrement. A partir de FreeBSD 12.1-RELEASE, le support DTrace sera
   aussi disponible. Les versions de FreeBSD anterieures peuvent acceder `a
   de l'ext4 en lecture et en ecriture en utilisant sysutils/fusefs-ext2.

   Pour acceder `a un systeme de fichiers ext, tout d'abord chargez le module
   du noyau:

 # kldload ext2fs

   Puis, montez le volume ext en indiquant son nom de partition sous FreeBSD
   et un point de montage. Cette exemple monte /dev/ad1s1 sur /mnt:

 # mount -t ext2fs /dev/ad1s1 /mnt

Chapitre 22. Le gestionnaire de volume Vinum

   Table des matieres

   22.1. Synopsis

   22.2. Les disques sont trop petits

   22.3. Les goulots d'etranglement d'acces aux donnees

   22.4. Integrite des donnees

   22.5. Objets Vinum

   22.6. Quelques exemples

   22.7. Appellation des objets

   22.8. Configuration de Vinum

   Version franc,aise de Marc Fonvieille <blackend@FreeBSD.org>.

22.1. Synopsis

   Peu importe les disques dont vous disposez, ils seront toujours limites:

     * Ils pourront etre trop petits.

     * Ils pourront etre trop lents.

     * Ils pourront etre peu fiables.

22.2. Les disques sont trop petits

   Ecrit `a l'origine par Greg Lehey.

   Vinum est un gestionnaire de volume, un pilote de disque virtuel qui
   permet de resoudre ces trois problemes. Regardons-les plus en details. De
   nombreuses solutions `a ces problemes ont ete proposees et implementees:

   Les disques deviennent de plus en plus gros, mais tout comme les besoins
   en stockage. Vous vous apercevrez souvent que vous avez besoin d'un
   systeme de fichiers plus grand que les disques que vous avez `a votre
   disposition. Bien evidemment, ce probleme n'est plus aussi aigu qu'il
   l'etait il y a de cela dix ans, mais il existe toujours. Certains systemes
   l'ont resolu en creant un peripherique abstrait qui stocke ses donnees sur
   plusieurs disques.

22.3. Les goulots d'etranglement d'acces aux donnees

   Les systemes modernes ont frequemment besoin d'acceder aux donnees d'une
   maniere hautement concourante. Par exemple, d'importants serveurs FTP ou
   HTTP peuvent supporter des milliers de sessions concourantes et avoir de
   multiple connexions `a 100 Mbit/s vers le monde exterieur, et cela bien
   au-del`a du taux de transfert soutenu de la plupart des disques.

   Les disques actuels peuvent effectuer des transfert sequentiels de donnees
   jusqu'`a une vitesse de 70 MO/s, mais ce chiffre a peu d'importance dans
   un environnement ou plusieurs processus independants accedent `a un
   disque, ou l'on pourra n'atteindre qu'une fraction de cette valeur. Dans
   de tels cas il est plus interessant de voir le probleme du point de vue du
   sous-systeme des disques: le parametre important est la charge que
   provoque un transfert sur le sous-systeme, en d'autres termes le temps
   d'occupation du disque implique dans le transfert.

   Dans n'importe quel transfert, le disque doit tout d'abord positionner les
   tetes de lecture, attendre le passage du premier secteur sous la tete de
   lecture, puis effectuer le transfert. Ces actions peuvent etre considerees
   comme etant atomiques: cela n'a aucun sens de les interrompre.

   Considerons un transfert typique d'environ 10 KO: la generation actuelle
   de disques hautes performances peuvent positionner leurs tetes en environ
   3.5 ms. Les disques les plus veloces tournent `a 15000 tr/minute, donc le
   temps de latence moyen de rotation (un demi-tour) est de 2 ms. A 70 MO/s,
   le transfert en lui-meme prend environ 150 ms, presque rien compare au
   temps de positionnement. Dans un tel cas, le taux de transfert effectif
   tombe `a un peu plus de 1 MO/s et est clairement hautement dependant de la
   taille du transfert.

   La solution classique et evidente `a ce goulot d'etranglement est "plus de
   cylindres": plutot que d'utiliser un gros disque, on utilise plusieurs
   disques plus petits avec le meme espace de stockage. Chaque disque est en
   mesure d'effectuer un transfert independamment des autres, aussi le taux
   de sortie augmente d'un facteur proche du nombre de disques utilises.

   L'amelioration du taux reel de sortie est, naturellement, inferieure au
   nombre de disques impliques: bien que chaque disque soit capable de
   transferer en parallele, il n'y a aucun moyen de s'assurer que les
   requetes sont distribuees equitablement entre les disques. Inevitablement
   la charge d'un disque sera plus importante que celle d'un autre.

   La repartition de la charge sur les disques depend fortement de la maniere
   dont les donnees sont partagees entre les disques. Dans la discussion
   suivant, il sera pratique de penser au stockage disque en tant qu'un grand
   nombre de secteurs qui sont adressables par l'intermediaire d'un nombre,
   plutot que comme les pages d'un livre. La methode la plus evidente est de
   diviser le disque virtuel en groupes de secteurs consecutifs de taille
   egale aux disques physiques individuels et de les stocker de cette
   maniere, plutot que de les prendre comme un gros livre et de le dechirer
   en petites sections. Cette methode est appelee concatenation et a pour
   avantage que les disques n'ont pas besoin d'avoir de rapport specifique au
   niveau de leur taille respective. Cela fonctionne bien quand l'acces au
   disque virtuel est reparti de fac,on identique sur son espace d'adressage.
   Quand l'acces est limite `a une petite zone, l'amelioration est moins
   marquee. Figure 22.1, << Organisation par concatenation >> decrit la
   sequence dans laquelle les unites sont assignees dans une organisation par
   concatenation.

   Figure 22.1. Organisation par concatenation
   Organisation par concatenation

   Une organisation alternative est de diviser l'espace adressable en
   composants plus petits, de meme taille et de les stocker sequentiellement
   sur differents peripheriques. Par exemple, les 256 premiers secteurs
   peuvent etre stockes sur le premier disque, les 256 secteurs suivants sur
   le disque suivant et ainsi de suite. Apres avoir atteint le dernier
   disque, le processus se repete jusqu'`a ce que les disques soient pleins.
   Cette organisation est appelee striping (decoupage en bande ou
   segmentation) ou RAID-0 [12].

   La segmentation exige legerement plus d'effort pour localiser les donnees,
   et peut causer une charge additionnelle d'E/S quand un transfert est
   reparti sur de multiples disques, mais il peut egalement fournir une
   charge plus constante sur les disques. Figure 22.2, << Organisation
   segmentee >> illustre l'ordre dans lequel les unites de stockage sont
   assignees dans une organisation segmentee.

   Figure 22.2. Organisation segmentee
   Organisation segmentee

22.4. Integrite des donnees

   Le dernier probleme avec les disques actuels est qu'ils ne sont pas
   fiables. Bien que la fiabilite des disques s'est enormement amelioree
   depuis quelques annees, ils sont toujours le composant principal d'un
   serveur le plus susceptible de tomber en panne. Et quand cela arrive, les
   resultats peuvent etre catastrophiques: remplacer un disque en panne et
   restaurer les donnees peut prendre plusieurs jours.

   La methode originelle d'approche de ce probleme fut le mode miroir, en
   conservant deux copies des donnees sur un materiel different. Depuis
   l'avenement de la technologie RAID, cette technique est egalement nommee
   RAID niveau 1 ou RAID-1. Toute operation d'ecriture sur le volume ecrit
   sur les deux unites; une lecture peut etre acquittee par l'une ou l'autre,
   aussi si l'un des disque tombe en panne, les donnees sont toujours
   accessibles sur l'autre disque.

   Le mode miroir presente deux problemes:

     * Le prix. Il demande au moins deux fois autant d'espace disque qu'une
       solution non-redondante.

     * L'impact sur la performance. Les ecritures doivent etre effectuees sur
       les deux disques, elles prennent donc deux fois plus de bande passante
       que sur un volume sans miroir. Les lectures de souffrent pas de baisse
       de performance: elles semblent meme plus rapides.

   Une alternative est l'utilisation de la parite, implementee sous les
   niveaux RAID 2, 3, 4 et 5. De ces niveaux RAID-5 est le plus interessant.
   Comme implemente dans Vinum, c'est une variante de l'organisation
   segmentee qui dedie un bloc de chaque segment `a la parite des autres
   blocs. Comme implemente dans Vinum, un volume RAID-5 est identique `a un
   volume segmente, sauf qu'il implemente RAID-5 en incluant un bloc de
   parite dans chaque unite. Comme l'exige RAID-5, l'emplacement de ce bloc
   de parite varie d'une unite `a l'autre. Le nombre de blocs de donnees
   indique le nombre relatif de blocs.

   Figure 22.3. Organisation RAID-5
   Organisation RAID-5

   Compare au mode miroir, RAID-5 a pour avantage de demander un espace de
   stockage significativement plus faible. L'acces en lecture est semblable
   `a celui de l'organisation segmentee, mais l'acces en ecriture est bien
   plus lent, approximativement 25% des performances en lecture. Si un disque
   tombe en panne, l'ensemble peut continuer `a fonctionner dans un mode
   degrade: une lecture sur un disque restant accessible se poursuit
   normalement, mais une lecture du disque perdu est recalculee `a partir du
   bloc correspondant sur l'ensemble des disques restants.

22.5. Objets Vinum

   Afin de resoudre ces problemes, Vinum implemente une hierarchie d'objets
   `a quatre niveaux:

     * L'objet le plus visible est le disque virtuel, appele volume. Les
       volumes ont essentiellement les memes proprietes qu'un disque
       UNIX(TM), bien qu'il y ait quelques differences mineures. Ils n'ont
       aucune limitation de taille.

     * Les volumes sont composes de plexes, chacune d'entre elles represente
       l'ensemble de l'espace d'adressable d'un volume. Ce niveau dans la
       hierarchie permet ainsi la redondance. Pensez aux plexes comme
       differents disques dans un ensemble miroir, chacun contenant les memes
       donnees.

     * Comme Vinum existe dans le systeme de stockage disque d'UNIX(TM), il
       serait possible d'utiliser les partitions UNIX(TM) pour construire des
       blocs pour des plexes `a disques multiples, mais en fait cela ne
       serait pas suffisamment flexible: les disques UNIX(TM) ne peuvent
       avoir qu'un nombre limites de partitions. Au lieu de cela Vinum
       subdivise une simple partition UNIX(TM) (le disque) en zones contigues
       appelees sous-disques, qui sont utilises comme bloc pour construire
       les plexes.

     * Les sous-disques resident sur le disque Vinum, en fait les partitions
       UNIX(TM). Les disques Vinum peuvent contenir un nombre quelconque de
       sous-disque. A l'exception d'une petite zone au debut du disque, qui
       est utilisee pour stocker les informations de configuration et d'etat,
       l'integralite du disque est disponible pour le stockage des donnees.

   Les sections suivantes decrivent la fac,on dont ces objets fournissent les
   fonctionnalites requises pour Vinum.

  22.5.1. Considerations sur la taille des volumes

   Les plexes peuvent comprendre de multiple sous-disques repartis sur tous
   les disques dans la configuration Vinum. Par consequent, la taille d'un
   disque ne limite pas la taille d'une plex, et donc d'un volume.

  22.5.2. Stockage de donnees redondant

   Vinum implemente le mode miroir en attachant de multiples plexes `a un
   volume. Un volume peut contenir entre une et huit plexes.

   Bien qu'une plex represente les donnees completes d'un volume, il est
   possible que des parties de la representation soient physiquement
   manquantes, soit en raison de la mise en place (en definissant un
   sous-disque comme ne faisant pas partie de la plex) ou par accident (en
   raison de la panne d'un disque). Tant qu'au moins une plex peut fournir
   les donnees de l'integralite de la plage d'adresse d'un volume, le volume
   est totalement fonctionnel.

  22.5.3. Problemes de performance

   Vinum implemente la concatenation et la segmentation au niveau de la plex:

     * Une plex concatenee utilise alternativement l'espace d'adresse de
       chaque sous-disque.

     * Une plex segmentee segmente les donnees sur chaque sous-disque. Les
       sous-disques doivent avoir la meme taille, et il doit y avoir au moins
       deux sous-disques pour distinguer la plex d'une plex concatenee.

  22.5.4. Quelle organisation de plex?

   La version de Vinum fournie avec FreeBSD 12.0 implemente deux type de
   plexes:

     * Les plexes concatenees sont les plus flexibles: elles peuvent contenir
       un nombre quelconque de de sous-disques, et les sous-disques peuvent
       etre de taille differentes. La plex peut etre etendue en ajoutant des
       sous-disques supplementaires. Elles demandent moins de temps CPU que
       les plexes segmentees, bien que la difference en charge CPU ne soit
       pas mesurable. D'autre part, elles sont plus susceptibles
       d'echauffement, l`a ou un disque est tres actif et les autres sont au
       repos.

     * Le plus grand avantage des plexes segmentees (RAID-0) est qu'elles
       reduisent les problemes d'echauffement: en choisissant tailles de
       segments optimales (environ 256 KO), vous pouvez egalement reduire la
       charge des disques. Les inconvenients de cette approche sont un code
       (infimement) plus complexe et des restrictions sur les sous-disques:
       ils doivent etre de la meme taille, et agrandir une plex en ajoutant
       de nouveaux sous-disques est si complexe que Vinum ne l'implemente pas
       actuellement. Vinum impose une restriction triviale supplementaire:
       une plex segmentee doit avoir au moins deux sous-disques, puisque
       sinon elle ne serait distinguable d'une plex concatenee.

   Tableau 22.1, << Organisations de plex Vinum >> resume les avantages et
   inconvenients de chaque type d'organisation de plex.

   Tableau 22.1. Organisations de plex Vinum

   +------------------------------------------------------------------------+
   |            |    Nombre    | Possibilite  | Doivent |                   |
   |  Type de   |  minimal de  |  d'ajout de  | etre de |    Application    |
   |    plex    | sous-disques | sous-disques |  meme   |                   |
   |            |              |              | taille  |                   |
   |------------+--------------+--------------+---------+-------------------|
   |            |              |              |         | Stockage de       |
   |            |              |              |         | grandes quantites |
   |            |              |              |         | de donnees avec   |
   |            |              |              |         | le maximum de     |
   | concatenee | 1            | oui          | non     | flexibilite en    |
   |            |              |              |         | terme de          |
   |            |              |              |         | placement et des  |
   |            |              |              |         | performances      |
   |            |              |              |         | moderees          |
   |------------+--------------+--------------+---------+-------------------|
   |            |              |              |         | Haute performance |
   | segmentee  | 2            | non          | oui     | combinee avec un  |
   |            |              |              |         | acces hautement   |
   |            |              |              |         | concourant        |
   +------------------------------------------------------------------------+

22.6. Quelques exemples

   Vinum maintient une base de donnees de configuration qui decrit les objets
   connus pour un systeme individuel. Initialement, l'utilisateur cree la
   base de donnees de configuration `a partir d'un ou plusieurs fichiers de
   configuration avec l'aide de l'utilitaire vinum(8). Vinum conserve une
   copie de sa base de donnees de configuration sur chaque tranche (que Vinum
   nomme device) sous son controle. Cette base donnees est mise `a jour `a
   chaque changement d'etat, aussi un redemarrage reconstitue exactement
   l'etat de chaque objet Vinum.

  22.6.1. Le fichier de configuration

   Le fichier de configuration decrit les objets Vinum. La definition d'un
   simple volume pourrait etre:

     drive a device /dev/da3h
     volume myvol
       plex org concat
         sd length 512m drive a

   Ce fichier decrit quatre objets Vinum:

     * La ligne drive une partition disque (drive) et son emplacement relatif
       par rapport au materiel sous-jacent. On lui donne le nom symbolique a.
       Cette separation entre le nom symbolique et le nom du peripherique
       permet aux disques d'etre deplaces d'un emplacement `a un autre sans
       confusion possible.

     * La ligne volume decrit un volume. Le seul attribut necessaire est le
       nom, dans notre cas myvol.

     * La ligne plex definit une plex. Le seul parametre requit est
       l'organisation, dans ce cas concat. Aucun nom n'est necessaire: le
       systeme genere automatiquement un nom `a partir du nom de volume en
       ajoutant le suffixe .px, ou x est le nombre de plexes dans le volume.
       Donc cette plex sera appelee myvol.p0.

     * La ligne sd decrit un sous-disque. Les specifications minimales sont
       le nom du disque sur lequel le stocker et la taille du sous-disque.
       Comme pour les plexes, aucun nom n'est necessaire: le systeme
       assignera automatiquement des noms derives du nom de la plex en
       ajoutant le suffixe .sx, ou x est le nombre de sous-disques dans la
       plex. Donc Vinum donnera le nom myvol.p0.s0 `a ce sous-disque.

   Apres avoir traite ce fichier vinum(8) affiche ce qui suit:

       # vinum -> create config1
       Configuration summary
       Drives:         1 (4 configured)
       Volumes:        1 (4 configured)
       Plexes:         1 (8 configured)
       Subdisks:       1 (16 configured)

         D a                     State: up       Device /dev/da3h        Avail: 2061/2573 MB (80%)

         V myvol                 State: up       Plexes:       1 Size:        512 MB

         P myvol.p0            C State: up       Subdisks:     1 Size:        512 MB

         S myvol.p0.s0           State: up       PO:        0  B Size:        512 MB

   Cette sortie affiche une breve liste du format vinum(8). Elle est
   representee graphiquement dans Figure 22.4, << Un simple volume Vinum >>.

   Figure 22.4. Un simple volume Vinum
   Un simple volume Vinum

   Cette figure, et celles qui suivent, representent un volume qui contient
   les plexes, qui `a leur tour contiennent les sous-disques. Dans cet
   exemple trivial, le volume contient une plex, et la plex contient un
   sous-disque.

   Ce volume particulier ne presente aucun avantage specifique par rapport `a
   une partition de disque conventionnelle. Il contient une seule plex, donc
   il n'est pas redondant. La plex contient un seul sous-disque, il n'y a
   donc pas de difference dans l'organisation du stockage des donnees par
   rapport `a une partition de disque conventionnelle. Les sections suivantes
   presenteront diverses methodes de configuration plus interessantes.

  22.6.2. Robustesse accrue: le mode miroir

   La robustesse d'un volume peut etre augmentee par le mode miroir. Quand on
   implemente un volume en mode miroir, il est important de s'assurer que les
   sous-disques de chaque plex sont sur des disques differents, de sorte
   qu'une panne disque ne mette hors service les deux plexes. La
   configuration suivante place en mode miroir un volume:

         drive b device /dev/da4h
         volume mirror
       plex org concat
         sd length 512m drive a
           plex org concat
             sd length 512m drive b

   Dans cet exemple, il n'etait pas necessaire de specifier une definition de
   disque a `a nouveau, puisque Vinum garde trace de tous les objets dans sa
   base de donnees de configuration. Apres le traitement de cette definition,
   la configuration ressemble `a:

         Drives:         2 (4 configured)
         Volumes:        2 (4 configured)
         Plexes:         3 (8 configured)
         Subdisks:       3 (16 configured)

         D a                     State: up       Device /dev/da3h        Avail: 1549/2573 MB (60%)
         D b                     State: up       Device /dev/da4h        Avail: 2061/2573 MB (80%)

     V myvol                 State: up       Plexes:       1 Size:        512 MB
     V mirror                State: up       Plexes:       2 Size:        512 MB

     P myvol.p0            C State: up       Subdisks:     1 Size:        512 MB
     P mirror.p0           C State: up       Subdisks:     1 Size:        512 MB
     P mirror.p1           C State: initializing     Subdisks:     1 Size:        512 MB

     S myvol.p0.s0           State: up       PO:        0  B Size:        512 MB
         S mirror.p0.s0          State: up       PO:        0  B Size:        512 MB
         S mirror.p1.s0          State: empty    PO:        0  B Size:        512 MB

   Figure 22.5, << Un volume Vinum en mode miroir >> presente la structure
   sous forme graphique.

   Figure 22.5. Un volume Vinum en mode miroir
   Un volume Vinum en mode miroir

   Dans cet exemple, chaque plex contient un espace d'adressage de 512 MO.
   Comme dans l'exemple precedent, chaque plex contient seulement un seul
   sous-disque.

  22.6.3. Optimiser les performances

   Le volume en mode miroir de l'exemple precedent est plus resistant aux
   pannes qu'un volume sans miroir, mais ses performances sont moindres:
   chaque ecriture sur le volume demande d'ecrire sur les deux disques,
   utilisant alors une plus grande proportion de la bande passante disque
   totale. Des considerations sur les performances demandent une approche
   differente: `a la place d'un miroir, les donnees sont segmentees sur
   autant de disques que possible. La configuration suivante montre un volume
   avec une plex segmentee sur quatre disques:

         drive c device /dev/da5h
         drive d device /dev/da6h
         volume stripe
         plex org striped 512k
           sd length 128m drive a
           sd length 128m drive b
           sd length 128m drive c
           sd length 128m drive d

   Comme precedemment, il n'est pas necessaire de definir les disques qui
   sont dej`a connus de Vinum. Apres traitement de cette definition, la
   configuration ressemble `a:

         Drives:         4 (4 configured)
         Volumes:        3 (4 configured)
         Plexes:         4 (8 configured)
         Subdisks:       7 (16 configured)

     D a                     State: up       Device /dev/da3h        Avail: 1421/2573 MB (55%)
     D b                     State: up       Device /dev/da4h        Avail: 1933/2573 MB (75%)
     D c                     State: up       Device /dev/da5h        Avail: 2445/2573 MB (95%)
     D d                     State: up       Device /dev/da6h        Avail: 2445/2573 MB (95%)

     V myvol                 State: up       Plexes:       1 Size:        512 MB
     V mirror                State: up       Plexes:       2 Size:        512 MB
     V striped               State: up       Plexes:       1 Size:        512 MB

     P myvol.p0            C State: up       Subdisks:     1 Size:        512 MB
     P mirror.p0           C State: up       Subdisks:     1 Size:        512 MB
     P mirror.p1           C State: initializing     Subdisks:     1 Size:        512 MB
     P striped.p1            State: up       Subdisks:     1 Size:        512 MB

     S myvol.p0.s0           State: up       PO:        0  B Size:        512 MB
     S mirror.p0.s0          State: up       PO:        0  B Size:        512 MB
     S mirror.p1.s0          State: empty    PO:        0  B Size:        512 MB
     S striped.p0.s0         State: up       PO:        0  B Size:        128 MB
     S striped.p0.s1         State: up       PO:      512 kB Size:        128 MB
     S striped.p0.s2         State: up       PO:     1024 kB Size:        128 MB
     S striped.p0.s3         State: up       PO:     1536 kB Size:        128 MB

   Figure 22.6. Un volume Vinum segmente
   Un volume Vinum segmente

   Ce volume est represente sur Figure 22.6, << Un volume Vinum segmente >>.
   La couleur des segments indique leur position dans l'espace d'adresses de
   la plex: le segment le plus clair vient en premier, le plus sombre en
   dernier.

  22.6.4. Robustesse et performances

   Avec suffisamment de materiel, il est possible de creer des volumes qui
   presenteront une robustesse et des performances accrues compares aux
   partitions UNIX(TM) standards. Un fichier de configuration pourrait etre:

         volume raid10
       plex org striped 512k
         sd length 102480k drive a
         sd length 102480k drive b
         sd length 102480k drive c
         sd length 102480k drive d
         sd length 102480k drive e
       plex org striped 512k
         sd length 102480k drive c
         sd length 102480k drive d
         sd length 102480k drive e
         sd length 102480k drive a
         sd length 102480k drive b

   Les sous-disques de la seconde plex sont decales de deux disques par
   rapport `a ceux de la premiere plex: cela aide `a s'assurer que les
   ecritures ne vont pas sur les meme sous-disques meme si un transfert
   s'effectue sur les deux disques.

   Figure 22.7, << Un volume Vinum en mode miroir segmente >> represente la
   structure de ce volume.

   Figure 22.7. Un volume Vinum en mode miroir segmente
   Un volume Vinum en mode miroir segmente

22.7. Appellation des objets

   Comme decrit precedemment, Vinum assigne des noms par defaut aux plexes et
   aux sous-disques, bien qu'ils peuvent etre imposes. Ne pas conserver les
   noms par defaut n'est pas recommande: une experience avec le gestionnaire
   de volume VERITAS, qui autorise les noms arbitraires pour les objets, a
   montre que cette flexibilite n'apporte pas d'avantage significatif, et
   peut etre `a l'origine de confusion.

   Les noms pourront contenir tout caractere non vide, mais il est recommande
   de se cantonner aux lettres, chiffres ou le caractere souligne. Les noms
   de volumes, plexes et sous-disques peuvent contenir jusqu'`a 64
   caracteres, et le nom des disques 32 caracteres.

   On assigne `a chaque objet Vinum un fichier special de peripherique dans
   la hierarchie /dev/vinum. La configuration presentee plus haut aurait fait
   `a Vinum creer les fichiers speciaux de peripherique suivants:

     * Les peripheriques de controle /dev/vinum/control et
       /dev/vinum/controld, qui sont respectivement utilises par vinum(8)et
       le "daemon" Vinum.

     * Les entrees des peripheriques en mode bloc et caracteres par chaque
       volume. Ce sont les peripheriques principaux utilises par Vinum. Les
       noms de peripheriques en mode bloc sont le nom du volume, alors que
       les noms de peripheriques en mode caractere suivent la tradition BSD
       de faire preceder le nom de la lettre r. Donc la configuration
       precedent inclurait les peripheriques en mode bloc /dev/vinum/myvol,
       /dev/vinum/mirror, /dev/vinum/striped, /dev/vinum/raid5 et
       /dev/vinum/raid10, et les peripheriques en mode caracteres
       /dev/vinum/rmyvol, /dev/vinum/rmirror, /dev/vinum/rstriped,
       /dev/vinum/rraid5 et /dev/vinum/rraid10. Un probleme evident apparait
       ici: il est possible d'avoir deux volumes appeles r et rr, mais il y
       aurait un conflit lors de la creation du fichier special de
       peripherique /dev/vinum/rr: c'est le peripherique en mode caractere du
       volume r ou le peripherique en mode bloc du volume rr? Actuellement
       Vinum ne resout pas ce conflit: le premier volume defini obtiendra le
       nom.

     * Un repertoire /dev/vinum/drive avec des entrees pour chaque disque.
       Ces entrees sont en fait des liens symboliques vers les fichiers
       speciaux de peripherique de disque correspondants.

     * Un repertoire /dev/vinum/volume avec des entrees pour chaque volume.
       Il contient des sous-repertoires pour chaque plex, qui `a leur tour
       contiennent des sous-repertoires pour leurs sous-disques.

     * Les repertoires /dev/vinum/plex, /dev/vinum/sd, et /dev/vinum/rsd, qui
       contiennent les fichiers speciaux de peripherique en mode bloc pour
       chaque plex et les fichiers speciaux de peripherique en mode bloc et
       caractere pour chaque sous-disque.

   Par exemple, considerons le fichier de configuration suivant:

         drive drive1 device /dev/sd1h
         drive drive2 device /dev/sd2h
         drive drive3 device /dev/sd3h
         drive drive4 device /dev/sd4h
     volume s64 setupstate
       plex org striped 64k
         sd length 100m drive drive1
         sd length 100m drive drive2
         sd length 100m drive drive3
         sd length 100m drive drive4

   Apres traitement de ce fichier, vinum(8) cree la structure suivante dans
   /dev/vinum:

         brwx------  1 root  wheel   25, 0x40000001 Apr 13 16:46 Control
         brwx------  1 root  wheel   25, 0x40000002 Apr 13 16:46 control
         brwx------  1 root  wheel   25, 0x40000000 Apr 13 16:46 controld
         drwxr-xr-x  2 root  wheel       512 Apr 13 16:46 drive
         drwxr-xr-x  2 root  wheel       512 Apr 13 16:46 plex
         crwxr-xr--  1 root  wheel   91,   2 Apr 13 16:46 rs64
         drwxr-xr-x  2 root  wheel       512 Apr 13 16:46 rsd
         drwxr-xr-x  2 root  wheel       512 Apr 13 16:46 rvol
         brwxr-xr--  1 root  wheel   25,   2 Apr 13 16:46 s64
         drwxr-xr-x  2 root  wheel       512 Apr 13 16:46 sd
         drwxr-xr-x  3 root  wheel       512 Apr 13 16:46 vol

         /dev/vinum/drive:
     total 0
     lrwxr-xr-x  1 root  wheel  9 Apr 13 16:46 drive1 -> /dev/sd1h
     lrwxr-xr-x  1 root  wheel  9 Apr 13 16:46 drive2 -> /dev/sd2h
     lrwxr-xr-x  1 root  wheel  9 Apr 13 16:46 drive3 -> /dev/sd3h
     lrwxr-xr-x  1 root  wheel  9 Apr 13 16:46 drive4 -> /dev/sd4h

     /dev/vinum/plex:
     total 0
     brwxr-xr--  1 root  wheel   25, 0x10000002 Apr 13 16:46 s64.p0

     /dev/vinum/rsd:
     total 0
     crwxr-xr--  1 root  wheel   91, 0x20000002 Apr 13 16:46 s64.p0.s0
     crwxr-xr--  1 root  wheel   91, 0x20100002 Apr 13 16:46 s64.p0.s1
     crwxr-xr--  1 root  wheel   91, 0x20200002 Apr 13 16:46 s64.p0.s2
     crwxr-xr--  1 root  wheel   91, 0x20300002 Apr 13 16:46 s64.p0.s3

     /dev/vinum/rvol:
     total 0
     crwxr-xr--  1 root  wheel   91,   2 Apr 13 16:46 s64

     /dev/vinum/sd:
     total 0
     brwxr-xr--  1 root  wheel   25, 0x20000002 Apr 13 16:46 s64.p0.s0
     brwxr-xr--  1 root  wheel   25, 0x20100002 Apr 13 16:46 s64.p0.s1
     brwxr-xr--  1 root  wheel   25, 0x20200002 Apr 13 16:46 s64.p0.s2
     brwxr-xr--  1 root  wheel   25, 0x20300002 Apr 13 16:46 s64.p0.s3

     /dev/vinum/vol:
     total 1
     brwxr-xr--  1 root  wheel   25,   2 Apr 13 16:46 s64
     drwxr-xr-x  3 root  wheel       512 Apr 13 16:46 s64.plex

     /dev/vinum/vol/s64.plex:
     total 1
     brwxr-xr--  1 root  wheel   25, 0x10000002 Apr 13 16:46 s64.p0
     drwxr-xr-x  2 root  wheel       512 Apr 13 16:46 s64.p0.sd

     /dev/vinum/vol/s64.plex/s64.p0.sd:
     total 0
     brwxr-xr--  1 root  wheel   25, 0x20000002 Apr 13 16:46 s64.p0.s0
     brwxr-xr--  1 root  wheel   25, 0x20100002 Apr 13 16:46 s64.p0.s1
     brwxr-xr--  1 root  wheel   25, 0x20200002 Apr 13 16:46 s64.p0.s2
     brwxr-xr--  1 root  wheel   25, 0x20300002 Apr 13 16:46 s64.p0.s3

   Bien qu'il soit recommande de ne pas donner de nom specifique aux plexes
   et sous-disques, les disques Vinum doivent avoir un nom. Cela rend
   possible de deplacer un disque `a un emplacement different et qu'il soit
   toujours reconnu automatiquement. Les noms de disques peuvent avoir
   jusqu'`a 32 caracteres.

  22.7.1. Creation de systemes de fichiers

   Les volumes apparaissent pour le systeme comme des disques, avec une seule
   exception. Contrairement aux disques UNIX(TM), Vinum ne partitionne pas
   les volumes, qui ne contiennent donc pas de table de partitionnement. Cela
   a demande de modifier certains utilitaires disque, en particulier
   newfs(8), qui auparavant tentait d'interpreter la derniere lettre du nom
   de volume Vinum comme un identifiant de partition. Par exemple, un disque
   peut avoir un nom comme /dev/ad0a$ ou /dev/da2h. Ces noms representent
   respectivement la premiere partition (a) sur le premier (0) disque IDE
   (ad) la la huitieme partition (h) sur le troisieme (2) disque SCSI (da).
   En revanche, un volume Vinum pourra etre appele /dev/vinum/concat, un nom
   qui n'a pas de relation avec un nom de partition.

   Normalement, newfs(8) interprete le nom du disque et se plaint s'il ne
   peut le comprendre. Par exemple:

 # newfs /dev/vinum/concat
 newfs: /dev/vinum/concat: can't figure out file system partition

   Afin de creer un systeme de fichiers sur ce volume, utilisez l'option -v
   de newfs(8):

 # newfs -v /dev/vinum/concat

22.8. Configuration de Vinum

   Le noyau GENERIC ne contient pas le support Vinum. Il est possible de
   compiler un noyau special qui inclut vinum, mais cela n'est pas
   recommande. La methode standard de lancement de Vinum est d'utiliser un
   module du noyau (kld). Vous n'avez meme pas besoin d'utiliser kldload(8)
   pour Vinum: quand vous lancez vinum(8), il controle si le module a ete
   charge ou non, si ce n'est pas le cas, il le charge automatiquement.

  22.8.1. Demarrage

   Vinum stocke l'information de configuration sur les tranches des disques
   sous la meme forme que dans les fichiers de configuration. En lisant `a
   partir de la base de donnees de configuration, Vinum reconnait un certain
   nombre de mots cles qui ne sont pas autorises dans les fichiers de
   configuration. Par exemple, une configuration de disque pourrait contenir
   le texte suivant:

 volume myvol state up
 volume bigraid state down
 plex name myvol.p0 state up org concat vol myvol
 plex name myvol.p1 state up org concat vol myvol
 plex name myvol.p2 state init org striped 512b vol myvol
 plex name bigraid.p0 state initializing org raid5 512b vol bigraid
 sd name myvol.p0.s0 drive a plex myvol.p0 state up len 1048576b driveoffset 265b plexoffset 0b
 sd name myvol.p0.s1 drive b plex myvol.p0 state up len 1048576b driveoffset 265b plexoffset 1048576b
 sd name myvol.p1.s0 drive c plex myvol.p1 state up len 1048576b driveoffset 265b plexoffset 0b
 sd name myvol.p1.s1 drive d plex myvol.p1 state up len 1048576b driveoffset 265b plexoffset 1048576b
 sd name myvol.p2.s0 drive a plex myvol.p2 state init len 524288b driveoffset 1048841b plexoffset 0b
 sd name myvol.p2.s1 drive b plex myvol.p2 state init len 524288b driveoffset 1048841b plexoffset 524288b
 sd name myvol.p2.s2 drive c plex myvol.p2 state init len 524288b driveoffset 1048841b plexoffset 1048576b
 sd name myvol.p2.s3 drive d plex myvol.p2 state init len 524288b driveoffset 1048841b plexoffset 1572864b
 sd name bigraid.p0.s0 drive a plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 0b
 sd name bigraid.p0.s1 drive b plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 4194304b
 sd name bigraid.p0.s2 drive c plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 8388608b
 sd name bigraid.p0.s3 drive d plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 12582912b
 sd name bigraid.p0.s4 drive e plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 16777216b

   Ici les differences evidentes sont la presence d'une information explicite
   sur l'emplacement et le nom (les deux sont egalement autorises, mais leur
   utilisation est deconseillee `a l'utilisateur) et de l'information sur les
   etats (qui ne sont pas disponibles `a l'utilisateur). Vinum ne stocke pas
   d'informations au sujet des disques dans la configuration: il localise les
   disques en recherchant les disques configures pour les partitions dans le
   label Vinum. Cela permet `a Vinum d'identifier correctement les disques
   meme s'ils ont un identifiant de disque UNIX(TM) different.

    22.8.1.1. Demarrage automatique

   Afin de lancer automatiquement Vinum au demarrage du systeme, assurez-vous
   d'avoir la ligne suivante dans votre fichier /etc/rc.conf:

 start_vinum="YES"               # set to YES to start vinum

   Si vous n'avez pas de fichier /etc/rc.conf, creez en un avec cette ligne.
   Cela provoquera le chargement du module Vinum au demarrage du systeme, et
   le lancement de tout objet mentionne dans la configuration. Cela est fait
   avant de monter les systemes de fichiers, il est donc possible d'utiliser
   automatiquement fsck(8) sur des systemes de fichiers puis de les monter
   sur des volumes Vinum.

   quand vous demarrez avec la commande vinum start, Vinum lit la base de
   donnees de configuration `a partir d'un des disques Vinum. Dans des
   circonstances normales, chaque disque contient une copie identique de la
   base de donnees de configuration, il importe donc peu quel disque est lu.
   Apres un crash, Vinum doit determiner quel disque a ete mis `a jour le
   plus recemment et lire la configuration `a partir de ce disque. Il met
   ensuite `a jour la configuration si necessaire `a partir de disques
   progressivement de plus en plus anciens.

     ----------------------------------------------------------------------

   [12] RAID signifie Redundant Array of Inexpensive Disks (reseau redondant
   de disques bons marches) et offre diverses ameliorations de la tolerance
   aux pannes, bien que le dernier terme soit legerement trompeur: il ne
   fournit pas de redondance.

Chapitre 23. Virtualisation

   Contribution de Murray Stokely.
   Table des matieres

   23.1. Synopsis

   23.2. FreeBSD comme systeme d'exploitation invite

   23.3. FreeBSD comme systeme d'exploitation hote

   Version franc,aise de Marc Fonvieille <blackend@FreeBSD.org>.

23.1. Synopsis

   Un logiciel de virtualisation permet l'execution simultanee de plusieurs
   systemes d'exploitation sur la meme machine. De tels logiciels pour PCs
   impliquent l'utilisation d'un systeme d'exploitation hote qui execute le
   logiciel de virtualisation et qui supporte un certain nombre de systemes
   d'exploitation invites.

   Apres avoir lu ce chapitre, vous connaitrez:

     * La difference entre un systeme d'exploitation hote et un systeme
       d'exploitation invite.

     * Comment installer FreeBSD sur un ordinateur Apple(R) Macintosh(R) `a
       base Intel(R).

     * Comment installer FreeBSD sur Linux(R) avec Xen(TM).

     * Comment installer FreeBSD sur Microsoft(R) Windows(R) avec Virtual PC.

     * Comment optimiser un systeme FreeBSD pour obtenir les meilleures
       performances en virtualisation.

   Avant de lire ce chapitre, vous devrez

     * Comprendre les fondements d'UNIX(R) et de FreeBSD (Chapitre 3,
       Quelques bases d'UNIX).

     * Savoir comment installer FreeBSD (Chapitre 2, Installer FreeBSD).

     * Savoir comment configurer votre connexion au reseau (Chapitre 32,
       Administration reseau avancee).

     * Savoir comment installer des logiciels tierce-partie (Chapitre 4,
       Installer des applications: les logiciels pre-compiles et les
       logiciels portes).

23.2. FreeBSD comme systeme d'exploitation invite

  23.2.1. Parallels sur Mac OS(R)

   Parallels Desktop pour Mac(R) est un logiciel commercial pour les
   ordinateurs Apple(R) Mac(R) `a base Intel(R) tournant sous Mac OS(R)
   10.4.6 our versions superieures. FreeBSD est totalement supporte en tant
   que systeme d'exploitation invite. Une fois que Parallels a ete installe
   sur Mac OS(R) X, l'utilisateur doit configurer une machine virtuelle et
   installer le systeme d'exploitation invite qu'il desire.

    23.2.1.1. Installer FreeBSD sur Parallels/Mac OS(R) X

   La premiere etape pour installer FreeBSD sur Mac OS(R) X/Parallels est de
   creer une machine virtuelle pour l'installation de FreeBSD. Selectionnez
   FreeBSD comme Systeme d'exploitation invite quand on vous le demandera:

   Et choisissez une taille de disque dur et de memoire vive en fonction de
   l'utilisation que vous projetez pour votre FreeBSD virtuel. 4Go de disque
   et 512Mo de RAM conviennent pour la plupart des utilisations de FreeBSD
   sous Parallels:

   Selectionnez le type de reseau et une carte reseau:

   Sauvegardez et achevez la configuration:

   Une fois votre machine virtuelle creee, vous devrez y installer FreeBSD.
   Le meilleur moyen est d'utiliser un CDROM FreeBSD officiel ou une image
   ISO recuperee sur un site FTP officiel. Quand vous avez l'image ISO
   adequate sur votre systeme de fichiers Mac(R) ou un CDROM dans le lecteur
   de CD du Mac(R), cliquez sur l'icone disque situee dans le coin droit en
   bas de votre fenetre Parallels. Une fenetre s'ouvrira pour vous permettre
   d'associer le lecteur de CDROM de votre machine virtuelle avec un fichier
   ISO ou le veritable lecteur de CDROM de votre ordinateur.

   Des que vous avez effectue cette association, redemarrez votre machine
   virtuelle FreeBSD en cliquant sur l'icone de redemarrage. Parallels
   redemarrera avec un BIOS particulier qui verifiera si vous disposez d'un
   CDROM tout comme le ferait un BIOS classique.

   Dans notre cas il trouvera le disque d'installation de FreeBSD et lancera
   une installation normale avec sysinstall comme decrit dans le Chapitre 2,
   Installer FreeBSD. Vous pouvez installer X11 mais ne tentez pas de le
   configurer pour le moment.

   Quand l'installation est terminee, redemarrez votre machine virtuelle
   FreeBSD.

    23.2.1.2. Configurer FreeBSD sur Mac OS(R) X/Parallels

   Apres avoir installe avec succes FreeBSD sur Mac OS(R) X avec Parallels,
   il reste plusieurs points `a configurer pour optimiser le systeme virtuel.

    1. Parametrer les variables du chargeur

       L'etape la plus importante est la diminution du parametre kern.hz afin
       de reduire l'utilisation du CPU de FreeBSD sous l'environnement
       Parallels. Pour cela, il faut ajouter la ligne suivante au fichier
       /boot/loader.conf:

 kern.hz=100

       Sans ce parametrage, un systeme d'exploitation invite FreeBSD inactif
       sous Parallels utilisera environ 15% du CPU sur un iMac(R) `a
       mono-processeur. Apres ce changement l'utilisation du processeur sera
       plus proche d'un petit 5%.

    2. Creer un nouveau fichier de configuration du noyau

       Vous pouvez retirer tous les pilotes de peripheriques SCSI, FireWire
       et USB. Parallels fournit une carte reseau virtuelle utilisant le
       pilote ed(4), aussi tous les autres pilotes reseau exceptes ed(4) et
       miibus(4) peuvent etre retires du noyau.

    3. Configuration du reseau

       La configuration reseau la plus simple utilise DHCP pour connecter
       votre machine virtuelle sur le meme reseau local que votre machine
       Mac(R) hote. Cette configuration se fait en ajoutant la ligne
       ifconfig_ed0="DHCP" au fichier /etc/rc.conf. Des configurations reseau
       plus avancees sont decrites dans le Chapitre 32, Administration reseau
       avancee.

  23.2.2. FreeBSD avec Xen(TM) sur Linux

   Contribution de Fukang Chen (Loader).

   L'hyperviseur Xen(TM) est un logiciel libre de para-virtualisation qui est
   supporte par l'entreprise commerciale XenSource. Les systemes
   d'exploitation invites sont appeles domaines domU, et le systeme
   d'exploitation hote est appele dom0. La premiere etape pour faire tourner
   un FreeBSD virtuel sous Linux(R) est d'installer Xen(TM) pour le domaine
   dom0 Linux(R). Le systeme d'exploitation hote sera une distribution
   Linux(R) Slackware.

    23.2.2.1. Configuration de Xen(TM) 3 sur un dom0 Linux(R)

    1. Telecharger Xen(TM) 3.0 aupres de XenSource

       Recuperez l'archive xen-3.0.4_1-src.tgz aupres de
       http://www.xensource.com/.

    2. Extraire l'archive

 # cd xen-3.0.4_1-src
 # KERNELS="linux-2.6-xen0 linux-2.6-xenU" make world
 # make install

  Note:

       Pour recompiler le noyau pour le domaine dom0:

 # cd xen-3.0.4_1-src/linux-2.6.16.33-xen0
   # make menuconfig
   # make
   # make install

       D'anciennes versions de Xen(TM) peuvent necessiter l'utilisation de la
       commande make ARCH=xen menuconfig

    3. Ajouter une entree au menu de Grub (menu.lst)

       Editez /boot/grub/menu.lst et ajoutez les lignes suivantes:

 title Xen-3.0.4
 root (hd0,0)
 kernel /boot/xen-3.0.4-1.gz dom0_mem=262144
 module /boot/vmlinuz-2.6.16.33-xen0 root=/dev/hda1 ro

    4. Redemarrer votre ordinateur sous Xen(TM)

       Tout d'abord, editez /etc/xen/xend-config.sxp, et ajoutez la ligne
       suivante:

 (network-script 'network-bridge netdev=eth0')

       Nous pouvons maintenant lancer Xen(TM):

 # /etc/init.d/xend start
 # /etc/init.d/xendomains start

       Notre domaine dom0 fonctionne:

 # xm list
 Name                                      ID   Mem VCPUs      State   Time(s)
 Domain-0                                   0   256     1     r-----  54452.9

    23.2.2.2. Domaine domU FreeBSD 7-CURRENT

   Telechargez le noyau pour domU FreeBSD pour Xen(TM) 3.0 et l'image disque
   aupres de http://www.fsmware.com/

     * kernel-current

     * mdroot-7.0.bz2

     * xmexample1.bsd

   Placez le fichier de configuration xmexample1.bsd dans le repertoire
   /etc/xen/ et modifiez les entrees relatives `a l'emplacement du noyau et
   de l'image disque. Cela devrait donner quelque chose comme:

 kernel = "/opt/kernel-current"
 memory = 256
 name = "freebsd"
 vif = [ '' ]
 disk = [ 'file:/opt/mdroot-7.0,hda1,w' ]
 #on_crash    = 'preserve'
 extra = "boot_verbose"
 extra += ",boot_single"
 extra += ",kern.hz=100"
 extra += ",vfs.root.mountfrom=ufs:/dev/xbd769a"

   Le fichier mdroot-7.0.bz2 doit etre decompresse.

   Ensuite, la section __xen_guest du fichier kernel-current doit etre
   modifiee pour y ajouter le parametre VIRT_BASE dont a besoin Xen(TM)
   3.0.3:

 # objcopy kernel-current -R __xen_guest
 # perl -e 'print "LOADER=generic,GUEST_OS=freebsd,GUEST_VER=7.0,XEN_VER=xen-3.0,BSD_SYMTAB,VIRT_BASE=0xC0000000\x00"' > tmp
 # objcopy kernel-current --add-section __xen_guest=tmp

 # objdump -j __xen_guest -s kernel-current

 kernel-current:     file format elf32-i386

 Contents of section __xen_guest:
  0000 4c4f4144 45523d67 656e6572 69632c47  LOADER=generic,G
  0010 55455354 5f4f533d 66726565 6273642c  UEST_OS=freebsd,
  0020 47554553 545f5645 523d372e 302c5845  GUEST_VER=7.0,XE
  0030 4e5f5645 523d7865 6e2d332e 302c4253  N_VER=xen-3.0,BS
  0040 445f5359 4d544142 2c564952 545f4241  D_SYMTAB,VIRT_BA
  0050 53453d30 78433030 30303030 3000      SE=0xC0000000.

   Nous sommes maintenant pret `a creer et lancer notre domU:

 # xm create /etc/xen/xmexample1.bsd -c
 Using config file "/etc/xen/xmexample1.bsd".
 Started domain freebsd
 WARNING: loader(8) metadata is missing!
 Copyright (c) 1992-2006 The FreeBSD Project.
 Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
 The Regents of the University of California. All rights reserved.
 FreeBSD 7.0-CURRENT #113: Wed Jan  4 06:25:43 UTC 2006
     kmacy@freebsd7.gateway.2wire.net:/usr/home/kmacy/p4/freebsd7_xen3/src/sys/i386-xen/compile/XENCONF
 WARNING: DIAGNOSTIC option enabled, expect reduced performance.
 Xen reported: 1796.927 MHz processor.
 Timecounter "ixen" frequency 1796927000 Hz quality 0
 CPU: Intel(R) Pentium(R) 4 CPU 1.80GHz (1796.93-MHz 686-class CPU)
   Origin = "GenuineIntel"  Id = 0xf29  Stepping = 9
   Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,
   DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
   Features2=0x4400<CNTX-ID,<b14>>
 real memory  = 265244672 (252 MB)
 avail memory = 255963136 (244 MB)
 xc0: <Xen Console> on motherboard
 cpu0 on motherboard
 Timecounters tick every 10.000 msec
 [XEN] Initialising virtual ethernet driver.
 xn0: Ethernet address: 00:16:3e:6b:de:3a
 [XEN]
 Trying to mount root from ufs:/dev/xbd769a
 WARNING: / was not properly dismounted
 Loading configuration files.
 No suitable dump device was found.
 Entropy harvesting: interrupts ethernet point_to_point kickstart.
 Starting file system checks:
 /dev/xbd769a: 18859 files, 140370 used, 113473 free (10769 frags, 12838 blocks, 4.2% fragmentation)
 Setting hostname: demo.freebsd.org.
 lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
           inet6 ::1 prefixlen 128
           inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2
           inet 127.0.0.1 netmask 0xff000000
 Additional routing options:.
 Mounting NFS file systems:.
 Starting syslogd.
 /etc/rc: WARNING: Dump device does not exist.  Savecore not run.
 ELF ldconfig path: /lib /usr/lib /usr/lib/compat /usr/X11R6/lib /usr/local/lib
 a.out ldconfig path: /usr/lib/aout /usr/lib/compat/aout /usr/X11R6/lib/aout
 Starting usbd.
 usb: Kernel module not available: No such file or directory
 Starting local daemons:.
 Updating motd.
 Starting sshd.
 Initial i386 initialization:.
 Additional ABI support: linux.
 Starting cron.
 Local package initialization:.
 Additional TCP options:.
 Starting background file system checks in 60 seconds.

 Sun Apr  1 02:11:43 UTC 2007

 FreeBSD/i386 (demo.freebsd.org) (xc0)

 login:

   Le domaine domU devrait executer le noyau FreeBSD 7.0-CURRENT:

 # uname -a
 FreeBSD demo.freebsd.org 7.0-CURRENT FreeBSD 7.0-CURRENT #113: Wed Jan  4 06:25:43 UTC 2006
 kmacy@freebsd7.gateway.2wire.net:/usr/home/kmacy/p4/freebsd7_xen3/src/sys/i386-xen/compile/XENCONF  i386

   Le reseau peut maintenant etre configure sur le domaine domU. Le domaine
   domU FreeBSD utilisera une interface specifique appelee xn0:

 # ifconfig xn0 10.10.10.200 netmask 255.0.0.0
 # ifconfig
 xn0: flags=843<UP,BROADCAST,RUNNING,SIMPLEX> mtu 1500
     inet 10.10.10.200 netmask 0xff000000 broadcast 10.255.255.255
     ether 00:16:3e:6b:de:3a
 lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
       inet6 ::1 prefixlen 128
       inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2
       inet 127.0.0.1 netmask 0xff000000

   Sur le domaine dom0 Slackware, des interfaces reseaux relatives `a Xen(TM)
   devraient apparaitre:

 # ifconfig
 eth0      Link encap:Ethernet  HWaddr 00:07:E9:A0:02:C2
           inet addr:10.10.10.130  Bcast:0.0.0.0  Mask:255.0.0.0
           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
           RX packets:815 errors:0 dropped:0 overruns:0 frame:0
           TX packets:1400 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:0
           RX bytes:204857 (200.0 KiB)  TX bytes:129915 (126.8 KiB)

 lo        Link encap:Local Loopback
           inet addr:127.0.0.1  Mask:255.0.0.0
           UP LOOPBACK RUNNING  MTU:16436  Metric:1
           RX packets:99 errors:0 dropped:0 overruns:0 frame:0
           TX packets:99 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:0
           RX bytes:9744 (9.5 KiB)  TX bytes:9744 (9.5 KiB)

 peth0     Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF
           UP BROADCAST RUNNING NOARP  MTU:1500  Metric:1
           RX packets:1853349 errors:0 dropped:0 overruns:0 frame:0
           TX packets:952923 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:1000
           RX bytes:2432115831 (2.2 GiB)  TX bytes:86528526 (82.5 MiB)
           Base address:0xc000 Memory:ef020000-ef040000

 vif0.1    Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF
           UP BROADCAST RUNNING NOARP  MTU:1500  Metric:1
           RX packets:1400 errors:0 dropped:0 overruns:0 frame:0
           TX packets:815 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:0
           RX bytes:129915 (126.8 KiB)  TX bytes:204857 (200.0 KiB)

 vif1.0    Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF
           UP BROADCAST RUNNING NOARP  MTU:1500  Metric:1
           RX packets:3 errors:0 dropped:0 overruns:0 frame:0
           TX packets:2 errors:0 dropped:157 overruns:0 carrier:0
           collisions:0 txqueuelen:1
           RX bytes:140 (140.0 b)  TX bytes:158 (158.0 b)

 xenbr1    Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF
           UP BROADCAST RUNNING NOARP  MTU:1500  Metric:1
           RX packets:4 errors:0 dropped:0 overruns:0 frame:0
           TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:0
           RX bytes:112 (112.0 b)  TX bytes:0 (0.0 b)

 # brctl show
 bridge name     bridge id           STP enabled         interfaces
 xenbr1          8000.feffffffffff   no                  vif0.1
                                                         peth0
                                                         vif1.0

  23.2.3. Virtual PC sur Windows(R)

   Virtual PC pour Windows(R) est un logiciel Microsoft(R) librement
   telechargeable. Consultez la page concernant la configuration minimale
   requise. Une fois Virtual PC installe sous Microsoft(R) Windows(R),
   l'utilisateur doit configurer une machine virtuelle puis installer le
   systeme d'exploitation invite desire.

    23.2.3.1. Installer FreeBSD sous Virtual PC/Microsoft(R) Windows(R)

   La premiere etape de l'installation de FreeBSD sous
   Microsoft(R) Windows(R)/Virtual PC est la creation d'une nouvelle machine
   virtuelle pour permettre l'installation de FreeBSD. Selectionnez Create a
   virtual machine:

   Puis selectionnez Other pour Operating system:

   Choisissez ensuite une quantite raisonnable d'espace disque et de memoire
   en fonction de vos projets pour cette installation de FreeBSD. 4Go
   d'espace de disque et 512Mo de memoire vive conviennent pour la plupart
   des utilisateurs de FreeBSD sous Virtual PC:

   Sauvegardez et poursuivez la configuration:

   Selectionnez votre machine virtuelle FreeBSD, cliquez sur Settings, puis
   precisez le type de reseau et l'interface reseau:

   Une fois votre machine virtuelle FreeBSD creee, vous devrez y installer
   FreeBSD. La meilleure maniere etant d'utiliser un CDROM FreeBSD officiel
   ou une image ISO telechargee depuis un site FTP officiel. Quand vous avez
   l'image ISO appropriee sur votre systeme de fichiers Windows(R) ou sur un
   CDROM dans votre lecteur de CD, double-cliquez sur votre machine virtuelle
   FreeBSD pour demarrer. Puis cliquez sur CD et selectionnez Capture ISO
   Image... dans la fenetre Virtual PC. Une fenetre apparaitra et vous
   permettra d'associer le lecteur de CDROM de votre machine virtuelle avec
   une image ISO ou votre lecteur de CDROM reel.

   L'association avec votre CDROM source effectuee, redemarrez votre machine
   virtuelle FreeBSD en cliquant sur Action puis sur Reset. Virtual PC
   redemarrera, son BIOS verifiera tout d'abord que vous disposez d'un CDROM
   comme le ferait n'importe quel BIOS normal.

   Dans ce cas, le support d'installation FreeBSD sera trouve et une
   installation classique basee sur sysinstall debutera comme decrit dans le
   Chapitre 2, Installer FreeBSD. Vous pouvez installez X11 mais ne tentez
   pas pour le moment de le configurer.

   Quand vous avez acheve l'installation, pensez `a ejecter le CDROM ou
   l'image ISO. Enfin, redemarrez dans votre machine virtuelle FreeBSD
   fraichement installee.

    23.2.3.2. Configuration de FreeBSD sous Microsoft(R) Windows(R)/Virtual PC

   Apres avoir installe avec succes FreeBSD sur Microsoft(R) Windows(R) avec
   Virtual PC, il reste plusieurs points `a configurer pour optimiser le
   systeme virtuel.

    1. Parametrer les variables du chargeur

       L'etape la plus importante est la diminution du parametre kern.hz afin
       de reduire l'utilisation du CPU de FreeBSD sous l'environnement
       Virtual PC. Pour cela, il faut ajouter la ligne suivante au fichier
       /boot/loader.conf:

 kern.hz=100

       Sans ce parametrage, un systeme d'exploitation invite FreeBSD inactif
       sous Virtual PC utilisera environ 40% du CPU pour un micro-ordinateur
       monoprocesseur. Apres ce changement l'utilisation du processeur sera
       plus proche d'un petit 3%.

    2. Creer un nouveau fichier de configuration du noyau

       Vous pouvez retirer tous les pilotes de peripheriques SCSI, FireWire,
       et USB. Virtual PC fournit une interface reseau virtuelle utilisant le
       pilote de(4), aussi tous les autres pilotes reseau en dehors de de(4)
       et miibus(4) peuvent etre supprimes du noyau.

    3. Configuration du reseau

       La configuration reseau la plus simple utilise DHCP pour connecter
       votre machine virtuelle sur le meme reseau local que votre machine
       Mac(R) hote. Cette configuration se fait en ajoutant la ligne
       ifconfig_de0="DHCP" au fichier /etc/rc.conf. Des configurations reseau
       plus avancees sont presentees dans le Chapitre 32, Administration
       reseau avancee.

  23.2.4. VMware sur Windows(R)/Mac(R)/Linux(R)

   Cette section n'est pas encore ecrite.

23.3. FreeBSD comme systeme d'exploitation hote

   Actuellement, FreeBSD en tant que systeme d'exploitation hote n'est
   officiellement supporte par aucun logiciel de virtualisation, de
   nombreuses personnes utilisent d'anciennes versions de VMware pour cela.
   Des efforts sont actuellement deployes pour faire fonctionner Xen(TM) en
   tant qu'environnement hote sur FreeBSD.

Chapitre 24. Localisation - Utilisation et configuration de l'I18N/L10N

   Contribution de Andrey Chernov.
   Reecrit par Michael C. Wu.
   Table des matieres

   24.1. Synopsis

   24.2. Les bases

   24.3. Utiliser la localisation

   24.4. Compiler des programmes I18N

   24.5. Localiser FreeBSD pour des langues specifiques

   Version franc,aise de Marc Fonvieille <blackend@FreeBSD.org>.

24.1. Synopsis

   FreeBSD est un projet `a tres large audience avec des utilisateurs et des
   contributeurs provenant du monde entier. Ce chapitre discute des fonctions
   d'internationalisation et de localisation de FreeBSD qui permettent aux
   non-anglophones de travailler. Il y a de nombreux aspects de
   l'implementation i18n au niveau systeme et application, et quand ce sera
   possible nous renverrons le lecteur `a des sources de documentation plus
   specifiques.

   Apres la lecture de ce chapitre, vous connaitrez:

     * Comment les differentes langues et "locales" sont codees sur les
       systemes d'exploitation modernes.

     * Comment parametrer les "locales" pour votre interpreteur de commandes.

     * Comment configurer la console pour d'autres langues que l'anglais.

     * Comment employer le systeme X Window efficacement avec differentes
       langues.

     * Ou trouver plus d'informations sur l'ecriture d'applications conformes
       `a la norme i18n.

   Avant de lire ce chapitre, vous devrez:

     * Savoir comment installer des logiciels tiers (Chapitre 4, Installer
       des applications: les logiciels pre-compiles et les logiciels portes).

24.2. Les bases

  24.2.1. Qu'est-ce que I18N/L10N?

   Les developpeurs ont raccourci le terme internationalisation en I18N, en
   comptant le nombre de lettres entre la premiere et la derniere du mot
   internationalisation. L10N utilise le meme principe, et provient du mot
   "localisation". Combinees ensemble, les methodes I18N/L10N, les
   protocoles, et les applications conformes permettent aux utilisateurs
   d'utiliser la langue de leur choix.

   Les applications I18N sont programmees en utilisant des kits I18N par
   dessous les bibliotheques. Cela permet aux developpeurs d'ecrire un simple
   fichier et traduire les menus et textes affiches dans chaque langue. Nous
   encourageons fortement les programmeurs `a suivre cette convention.

  24.2.2. Pourquoi devrais-je employer l'I18N/L10N?

   I18N/L10N est utilise `a chaque fois que vous desirez afficher, entrer, ou
   traiter des donnees dans des langues autres que l'anglais.

  24.2.3. Quelles sont les langues supportees par l'I18N?

   I18N et L10N ne sont pas specifiques `a FreeBSD. Actuellement, on peut
   choisir parmi la plupart des langues principales du monde, y compris mais
   pas seulement: le chinois, l'allemand, le japonais, le coreen, le
   franc,ais, le russe, le vietnamien et d'autres.

24.3. Utiliser la localisation

   Dans toute sa splendeur, I18N n'est pas specifique `a FreeBSD et est une
   convention. Nous vous encourageons `a aider FreeBSD `a suivre cette
   convention.

   Le parametrage des "locales" est base sur trois termes principaux: le code
   de la langue, le code du pays, et le codage des caracteres. Les noms de
   "locales" sont construits `a partir de ces trois elements comme suit:

 CodeLangue_CodePays.CodageCaracteres

  24.3.1. Codage de la langue et du pays

   Afin de localiser un systeme FreeBSD pour une langue specifique (ou tout
   autre UNIX(R) supportant l'I18N), l'utilisateur doit determiner les codes
   specifiques pour le pays et la langue (les codes pays indiquent aux
   applications quelle variation d'une langue donnee utiliser). De plus, les
   navigateurs Web, les serveurs SMTP/POP, les serveurs Web... agissent en
   fonction de ces codes. Ce qui suit est un exemple de codes langue/pays:

         Code langue/pays                        Description                  
   en_US                         Anglais - Etats Unis                         
   ru_RU                         Russe pour la Russie                         
   zh_TW                         Chinois traditionnel pour Taiwan             

  24.3.2. Codage des caracteres

   Certaines langues utilisent les codages non-ASCII sur 8 bits ou codent des
   caracteres sur plusieurs octets, voir multibyte(3) pour plus de details.
   Les vieilles applications ne les reconnaissent pas ou les remplacent `a
   tord par des caracteres de controle. Les applications recentes
   reconnaissent normalement les caracteres 8 bits. En fonction de
   l'implementation, les utilisateurs devront peut etre compiler une
   application avec le support des caracteres sur 8 bits ou multi-octets, ou
   la configurer correctement. Afin d'accepter l'usage et le traitement de
   tels caracteres, le catalogue des logiciels portes de FreeBSD fournit pour
   certains programmes une version dans chaque langue. Referez-vous `a la
   documentation I18N de chaque logiciel porte respectif.

   Specifiquement, l'utilisateur doit consulter la documentation de
   l'application pour decider de comment la configurer correctement ou
   comment passer les valeurs correctes `a la procedure configure, au
   Makefile ou au compilateur.

   Quelques elements `a garder `a l'esprit sont:

     * Les jeux de caracteres au codage simple des caracteres de la
       bibliotheque C (voir multibyte(3)), par exemple ISO8859-1, ISO8859-15,
       KOI8-R, et CP437.

     * Les codages etendus ou multi-octets, e.g. EUC, Big5.

   Vous pouvez controler la liste des jeux de caracteres actuellement actifs
   dans le registre de l'IANA.

  Note:

   FreeBSD utilise `a la place un codage des "locales" compatible avec X11.

  24.3.3. Applications I18N

   Dans le systeme de logiciels portes et pre-compiles de FreeBSD, les
   applications I18N ont ete nommees avec I18N dans leur nom pour une
   identification aisee. Cependant, elles ne supportent pas toujours la
   langue desiree.

  24.3.4. Configurer les "locales"

   Generalement il est suffisant d'exporter le nom de la "locale" grace `a la
   variable LANG sous l'interpreteur de commandes utilise lors de la session.
   Cela pourra etre fait dans le fichier ~/.login_conf de l'utilisateur ou le
   fichier de configuration de l'interpreteur de commandes de l'utilisateur
   (~/.profile, ~/.bashrc, ~/.cshrc). Il n'est pas necessaire de configurer
   toutes les autres variables de localisation comme LC_CTYPE, LC_CTIME.
   Veuillez consulter la documentation de FreeBSD specifique `a votre langue
   pour plus d'informations.

   Vous devrez configurer les deux variables d'environnement suivantes dans
   vos fichiers de configuration:

     * LANG pour la famille de fonctions POSIX(R) setlocale(3)

     * MM_CHARSET pour le jeu de caracteres MIME des applications

   Cela comprend la configuration de l'interpreteur de commandes, la
   configuration specifique des applications, et celle de X11.

    24.3.4.1. Methodes de configuration des "locales"

   Il existe deux methodes pour configurer les "locales", elles sont decrites
   ci-dessous. La premiere (celle qui est recommandee) est d'assigner les
   variables d'environnement dans une classe de session, et la seconde est
   d'ajouter le parametrage des variables d'environnement dans les fichiers
   d'initialisation de l'interpreteur de commandes du systeme.

      24.3.4.1.1. Methode utilisant les classes de session utilisateur

   Cette methode permet d'assigner une fois pour toute les variables
   d'environnement necessaires pour le nom des "locales" et le jeu de
   caracteres MIME et cela pour toutes les sessions au lieu de le faire `a
   chaque nouvelle session par l'intermediaire de la configuration des
   fichiers d'initialisation de l'interpreteur de commandes. La configuration
   au niveau utilisateur peut etre faite par l'utilisateur lui-meme et la
   configuration au niveau administrateur demande les privileges de
   super-utilisateur.

        24.3.4.1.1.1. Configuration au niveau utilisateur

   Voici un exemple minimal d'un fichier .login_conf dans le repertoire
   personnel d'un utilisateur, fichier qui a les deux variables fixees pour
   le codage Latin-1:

 me:\
         :charset=ISO-8859-1:\
         :lang=de_DE.ISO8859-1:

   Voici un exemple de fichier .login_conf qui fixe les variables pour le
   chinois traditionnel dans le codage BIG-5. Notez les nombreuses variables
   supplementaires parametrees parce que certains logiciels ne respectent pas
   les variables des "locales" correctement pour le chinois, le japonais, et
   le coreen.

 #Users who do not wish to use monetary units or time formats
 #of Taiwan can manually change each variable
 me:\
         :lang=zh_TW.Big5:\
         :setenv=LC_ALL=zh_TW.Big:\
         :setenv=LC_COLLATE=zh_TW.Big5:\
         :setenv=LC_CTYPE=zh_TW.Big5:\
         :setenv=LC_MESSAGES=zh_TW.Big5:\
         :setenv=LC_MONETARY=zh_TW.Big5:\
         :setenv=LC_NUMERIC=zh_TW.Big5:\
         :setenv=LC_TIME=zh_TW.Big5:\
         :charset=big5:\
         :xmodifiers="@im=gcin": #Set gcin as the XIM Input Server

   Voir la configuration au niveau administrateur et la page de manuel
   login.conf(5) pour plus de details.

        24.3.4.1.1.2. Configuration au niveau administrateur

   Verifiez que que la classe de session d'utilisateur dans /etc/login.conf
   fixe la bonne langue. Soyez sur que ces parametres apparaissent dans
   /etc/login.conf:

 nom_langue:intitule_comptes:\
         :charset=jeu_caracteres_MIME:\
         :lang=nom_locale:\
         :tc=default:

   Donc si l'on reste sur notre exemple precedent utilisant le Latin-1, cela
   donnera quelque chose comme:

 german:German Users Accounts:\
         :charset=ISO-8859-1:\
         :lang=de_DE.ISO8859-1:\
         :tc=default:

   Avant de modifier les classes de session des utilisateurs, executez la
   commande suivante:

 # cap_mkdb /etc/login.conf

   pour rendre visible `a l'integralite du systeme la nouvelle configuration
   du fichier /etc/login.conf.

      Modifier les classes de session avec vipw(8)

   Utilisez vipw pour ajouter de nouveaux utilisateurs, et creer une entree
   ressemblant `a celle-ci:

 utilisateur:mot_de_passe:1111:11:langue:0:0:Nom d'utilisateur:/home/utilisateur:/bin/sh

      Modifier les classes de session avec adduser(8)

   Utilisez adduser pour ajouter de nouveaux utilisateurs, et faites ce qui
   suit:

     * Parametrez defaultclass = langue dans /etc/adduser.conf. Gardez `a
       l'esprit que vous devez dans ce cas entrer une classe par default
       (defaut) pour tous les utilisateurs d'autres langues.

     * Une variante est d'entrer la langue specifiee `a chaque fois que
       adduser(8) affiche

 Enter login class: default []:

       .

     * Une autre alternative est d'employer ce qui suit pour chaque
       utilisateur de langue differente que vous desirez ajouter:

 # adduser -class langue

      Modifier les classes de session avec pw(8)

   Si vous utilisez pw(8) pour ajouter de nouveaux utilisateurs, appelez la
   fonction de cette maniere:

 # pw useradd nom_utilisateur -L langue

      24.3.4.1.2. Methode utilisant les fichiers d'initialisation de
      l'interpreteur de commandes

  Note:

   Cette methode n'est pas recommandee parce qu'elle demande une
   configuration differente pour chaque interpreteur de commandes choisi.
   Utilisez la methode utilisant les classes de session utilisateur `a la
   place.

   Pour ajouter le nom de la "locale" et le jeu de caractere MIME,
   positionnez juste les deux variables d'environnement comme montre
   ci-dessous dans les fichiers d'initialisation de l'interpreteur de
   commandes /etc/profile et/ou /etc/csh.login. Nous utiliserons la langue
   allemande comme exemple ci-dessous:

   Dans /etc/profile:

 LANG=de_DE.ISO8859-1; export LANG
 MM_CHARSET=ISO-8859-1; export MM_CHARSET

   Ou dans /etc/csh.login:

 setenv LANG de_DE.ISO8859-1
 setenv MM_CHARSET ISO-8859-1

   Alternativement, vous pouvez ajouter les instructions precedentes `a
   /usr/share/skel/dot.profile (similaire `a ce qui fut utilise dans
   /etc/profile ci-dessus), ou /usr/share/skel/dot.login (similaire `a ce qui
   fut utilise dans /etc/csh.login ci-dessus).

   Pour X11:

   Dans $HOME/.xinitrc:

 LANG=de_DE.ISO8859-1; export LANG

   Ou:

 setenv LANG de_DE.ISO8859-1

   En fonction de votre interpreteur de commandes (vois ci-dessus).

  24.3.5. Configuration de la console

   Pour tous les ensembles de jeu de caracteres utilises par la bibliotheque
   C, positionnez les bonnes polices de caracteres pour la console dans
   /etc/rc.conf pour la langue en question avec:

 font8x16=nom_police
 font8x14=nom_police
 font8x8=nom_police

   Le nom_police provient ici du repertoire /usr/share/syscons/fonts, sans le
   suffixe .fnt.

   Verifiez egalement que vous avez parametre les bonnes tables de clavier et
   de correspondance d'affichage pour votre jeu de caracteres C par
   l'intermediaire de sysinstall (/stand/sysinstall sous les versions de
   FreeBSD anterieures `a la 5.2). Une fois dans sysinstall, selectionnez
   Configure, puis Console. Alternativement, vous pouvez ajouter ce qui suit
   au fichier /etc/rc.conf:

 scrnmap=table_correspondance_affichage
 keymap=nom_table_clavier
 keychange="numero_touche_fonction sequence"

   La table_correspondance_affichage ici provient du repertoire
   /usr/share/syscons/scrnmaps sans le suffixe .scm. Une table de
   correspondance d'affichage avec une police de correspondance est
   generalement necessaire pour passer de 8 `a 9 bits la matrice de caractere
   d'une carte VGA dans une zone pseudo-graphique, i.e., deplacer les lettres
   en dehors de cette zone si la police d'ecran utilise une colonne de 8
   bits.

   Si vous avez le "daemon" moused active par defaut grace `a la ligne
   suivante dans votre /etc/rc.conf:

 moused_enable="YES"

   alors lisez les informations sur le curseur de souris dans le paragraphe
   suivant.

   Par defaut le curseur du pilote syscons(4) de la console occupe la zone
   d'adresses 0xd0-0xd3 dans le jeu de caracteres. Si votre langue utilise
   cette zone, vous devez deplacer la zone du curseur en dehors. Pour
   effectuer cela sous FreeBSD, ajoutez la ligne suivante dans /etc/rc.conf:

 mousechar_start=3

   Le nom_table_clavier provient ici du repertoire /usr/share/syscons/keymaps
   sans le suffixe .kbd. Si vous n'etes pas sur de la table de clavier `a
   utiliser, vous pouvez employer kbdmap(1) pour tester la table sans avoir
   `a redemarrer.

   Le keychange est generalement utilise pour programmer les touches de
   fonction pour correspondre avec le type de terminal selectionne parce que
   les sequences de touches de fonction ne peuvent etre definies dans la
   table de clavier.

   Soyez egalement sur de configurer le type de console correct dans le
   fichier /etc/ttys pour toutes les entrees ttyv*. Les correspondances
   actuellement pre-definies sont:

                   Jeu de caracteres                     Type de terminal     
   ISO8859-1 ou ISO8859-15                           cons25l1                 
   ISO8859-2                                         cons25l2                 
   ISO8859-7                                         cons25l7                 
   KOI8-R                                            cons25r                  
   KOI8-U                                            cons25u                  
   CP437 (jeu de caracteres VGA par defaut)          cons25                   
   US-ASCII                                          cons25w                  

   Pour les langues au caracteres etendus ou multi-octets, utilisez le
   logiciel porte adequat de votre repertoire /usr/ports/langue. Certains
   logiciels apparaissent comme utilisant la console alors que le systeme lui
   voit un vtty serie, par consequent vous devez reserver suffisamment de
   vttys pour X11 et la console pseudo-serie. Voici une liste partielle des
   applications pour utiliser d'autres langues sous la console:

              Langue                             Emplacement                  
   Chinois traditionnel (BIG-5)  chinese/big5con                              
   Japonais                      japanese/kon2-16dot ou japanese/mule_freewnn 
   Coreen                        korean/han                                   

  24.3.6. Configuration d'X11

   Bien qu'X11 ne fasse pas partie du projet FreeBSD, nous avons inclus
   quelques elements d'informations ici pour les utilisateurs de FreeBSD.
   Pour plus de details, referez-vous au site Web d'Xorg ou `a celui du
   serveur X11 que vous utilisez.

   Dans le fichier ~/.Xresources, vous pouvez en plus adapter les parametres
   I18N specifiques des applications (e.g., polices de caracteres, menus,
   etc...).

    24.3.6.1. Affichage des polices de caracteres

   Installez le serveur Xorg (x11-servers/xorg-server) ou le serveur
   XFree86(TM) (x11-servers/XFree86-4-Server), puis installez les polices de
   caracteres TrueType(R) de la langue concernee. Un parametrage correct des
   "locales" devrait vous permettre de visualiser les menus dans la langue
   que vous avez choisie etc.

    24.3.6.2. Saisie de caracteres non-anglais

   Le protocole "X11 Input Method" - methode de saisie pour X11 (XIM) est un
   nouveau standard pour tous les clients X11. Toutes les applications X11
   devraient etre ecrites en tant que clients XIM qui rec,oivent les entrees
   de serveurs de saisie XIM. Il existe differents serveurs XIM disponibles
   pour differentes langues.

  24.3.7. Configuration de l'imprimante

   Certains jeux de caracteres de la bibliotheque C sont generalement codes
   en dur dans les imprimantes. Les jeux de caracteres etendus ou
   multi-octets demandent une configuration speciale et nous recommandons
   d'utiliser apsfilter. Vous pouvez egalement convertir le document en
   format PostScript(R) ou PDF en utilisant des convertisseurs specifiques `a
   la langue.

  24.3.8. Noyau et systemes de fichiers

   Le systeme de fichiers rapide de FreeBSD (FFS) est completement sur 8
   bits, et peut donc etre utilise avec n'importe quel jeu de caracteres de
   la bibliotheque C (voir multibyte(3)), mais il n'y a aucun jeu de
   caracteres de stocke dans le systeme de fichiers; i.e., c'est du 8 bits
   brut et le systeme ne sait rien sur l'ordre du codage. Officiellement, le
   FFS ne supporte encore aucun jeu de caracteres etendus ou multi-octets.
   Cependant, certains jeux de caracteres etendus ou multi-octets disposent
   de correctifs independants pour FFS activant un tel support. Ce sont
   seulement des solutions temporaires non portables ou des "bidouilles" et
   nous avons decide de ne pas les inclure dans l'arborescence des sources.
   Referez-vous aux sites Internet des langues respectives pour plus
   d'informations et pour les correctifs.

   Le support FreeBSD du systeme fichiers MS-DOS(R) a la capacite
   parametrable de faire la conversion entre jeux de caracteres MS-DOS(R),
   Unicode et les jeux de caracteres choisis pour le systeme de fichiers
   FreeBSD. Voir la page de manuel mount_msdosfs(8) pour plus de details.

24.4. Compiler des programmes I18N

   De nombreux logiciels ont ete portes pour FreeBSD avec le support I18N.
   Certains d'entre eux sont identifies avec -I18N dans le nom du logiciel
   porte. Ces derniers et beaucoup d'autres programmes integrent le support
   I18N et ne necessitent aucune consideration speciale.

   Cependant, certaines applications comme MySQL necessitent d'avoir un
   fichier Makefile configure avec le jeu de caracteres specifiques. Ceci est
   en general fait dans le Makefile ou effectue en passant une valeur `a
   configure dans les sources.

24.5. Localiser FreeBSD pour des langues specifiques

  24.5.1. Russe (codage KOI8-R)

   Contribution originelle de Andrey Chernov.

   Pour plus d'informations sur le codage KOI8-R, consultez les References
   KOI8-R (Jeu de caracteres russes pour Internet).

    24.5.1.1. Configuration des "locales"

   Ajoutez les lignes suivantes dans votre fichier ~/.login_conf:

 me:My Account:\
         :charset=KOI8-R:\
         :lang=ru_RU.KOI8-R:

   Voir plus haut dans ce chapitre pour des exemples de configuration des
   "locales".

    24.5.1.2. Configuration de la console

     * Ajoutez la ligne suivante `a votre fichier /etc/rc.conf:

 mousechar_start=3

     * Ajoutez egalement les parametres suivants dans /etc/rc.conf:

 keymap="ru.koi8-r"
 scrnmap="koi8-r2cp866"
 font8x16="cp866b-8x16"
 font8x14="cp866-8x14"
 font8x8="cp866-8x8"

     * Pour chaque entree ttyv* dans /etc/ttys, utilisez cons25r comme type
       de terminal.

   Voir plus haut dans ce chapitre pour des exemples de configuration de la
   console.

    24.5.1.3. Configuration de l'imprimante

   Comme la plupart des imprimantes avec un jeu de caracteres russes ont un
   "code page" materiel CP866, un filtre de sortie special pour la conversion
   du KOI8-R vers le CP866 est necessaire. Un tel filtre est installe par
   defaut sous /usr/libexec/lpr/ru/koi2alt. Une entree de /etc/printcap pour
   imprimante russe devra ressembler `a:

 lp|Russian local line printer:\
         :sh:of=/usr/libexec/lpr/ru/koi2alt:\
         :lp=/dev/lpt0:sd=/var/spool/output/lpd:lf=/var/log/lpd-errs:

   Consultez la page de manuel printcap(5) pour plus de details.

    24.5.1.4. Systeme de fichiers MS-DOS(R) et noms de fichiers russes

   L'exemple suivant d'entree du fichier fstab(5) active le support des noms
   de fichiers russes sur les systemes de fichiers MS-DOS(R) montes:

 /dev/ad0s2      /dos/c  msdos   rw,-Wkoi2dos,-Lru_RU.KOI8-R 0 0

   L'option -L la "locale" utilisee, et -W fixe la table de conversion de
   caracteres. Pour utiliser l'option -W assurez-vous de monter /usr avant la
   partition MS-DOS(R), car en effet les tables de conversion sont situees
   dans le repertoire /usr/libdata/msdosfs. Pour plus d'informations,
   consultez la page de manuel mount_msdosfs(8).

    24.5.1.5. Configuration de X11

    1. Effectuez tout d'abord la configuration des "locales" comme decrit
       plus haut dans ce chapitre.

    2. Si vous utilisez Xorg, installez le paquetage
       x11-fonts/xorg-fonts-cyrillic.

       Controlez la section "Files" de votre fichier /etc/X11/xorg.conf. Les
       lignes suivantes doivent etre ajoutees avant toute autre entree
       FontPath:

 FontPath   "/usr/X11R6/lib/X11/fonts/cyrillic/misc"
 FontPath   "/usr/X11R6/lib/X11/fonts/cyrillic/75dpi"
 FontPath   "/usr/X11R6/lib/X11/fonts/cyrillic/100dpi"

       Si vous utilisez un mode video haute resolution, intervertissez les
       lignes 75 dpi et 100 dpi.

  Note:

       Consultez le catalogue des logiciels portes pour plus de fontes
       cyrilliques.

    3. Pour mettre en service un clavier russe, ajoutez ce qui suit `a la
       section "Keyboard" de votre fichier xorg.conf:

 Option "XkbLayout"   "us,ru"
 Option "XkbOptions"  "grp:toggle"

       Verifiez egalement que XkbDisable est desactive (mis en commentaire).

       Pour l'option grp:caps_toggle le passage de russe `a latin se fera par
       l'intermediaire de Right Alt, pour grp:ctrl_shift_toggle, le passage
       se fera `a l'aide de la sequence Ctrl+Shift. L'ancienne
       fonctionnalitee de la touche CapsLock est toujours disponible via
       Shift+CapsLock (en mode latin uniquement). Pour l'option grp:toggle le
       passage du russe au latin se fera par l'intermediaire de la touche
       Right Alt. L'option grp:caps_toggle ne fonctionne pas sous Xorg pour
       une raison inconnue.

       Si vous disposez de touches "Windows(R)" sur votre clavier, et que
       vous constatez que certaines touches non-alphabetiques ne sont pas
       appariees correctement en mode russe, ajoutez la ligne suivante `a
       votre fichier xorg.conf:

 Option "XkbVariant" ",winkeys"

  Note:

       Le clavier russe XKB peut ne pas fonctionner avec des applications non
       localisees.

  Note:

   localisees. Pour etre un minimum localisee, une application devrait
   appeler la fonction XtSetLanguageProc (NULL, NULL, NULL); assez tot dans
   le programme.

   Consulter KOI8-R pour X Window pour plus d'instructions sur la
   localisation des applications pour X11.

  24.5.2. Localisation du chinois traditionnel pour Taiwan

   Le projet FreeBSD taiwanais dispose d'un guide sur FreeBSD en chinois `a
   l'adresse http://netlab.cse.yzu.edu.tw/~statue/freebsd/zh-tut/ utilisant
   de nombreuses applications du repertoire chinese du catalogue des
   logiciels portes. Le redacteur du guide sur FreeBSD en chinois est Shen
   Chuan-Hsing <statue@freebsd.sinica.edu.tw>.

   Chuan-Hsing Shen <statue@freebsd.sinica.edu.tw> a cree la collection
   FreeBSD chinoise (CFC) de logiciels en utilisant le document zh-L10N-tut
   taiwanais. Les logiciels pre-compiles et les fichiers de procedures sont
   disponibles `a l'adresse ftp://freebsd.csie.nctu.edu.tw/pub/taiwan/CFC/.

  24.5.3. Localisation pour la langue allemande (valable egalement pour tous les
  langues respectant le standard ISO 8859-1)

   Slaven Rezic <eserte@cs.tu-berlin.de> a redige un guide sur l'utilisation
   des "umlauts" sur une machine FreeBSD. Le guide est ecrit en allemand et
   est disponible sur
   http://user.cs.tu-berlin.de/~eserte/FreeBSD/doc/umlaute/umlaute.html.

  24.5.4. Localisation pour le japonais et le coreen

   Pour le japonais, referez-vous `a http://www.jp.FreeBSD.org/, et pour le
   coreen `a http://www.kr.FreeBSD.org/.

  24.5.5. Documentation FreeBSD dans d'autres langues que l'anglais

   Certains contributeurs `a FreeBSD ont traduit des parties de la
   documentation FreeBSD dans d'autres langues. Les traductions sont
   disponibles grace `a des liens sur le site principal ou dans
   /usr/share/doc.

Chapitre 25. Mise `a jour de FreeBSD

   Restructure, reorganise, et en partie mis `a jour par Jim Mock.
   Travail original de Jordan Hubbard, Poul-Henning Kamp, John Polstra et Nik
   Clayton.
   Table des matieres

   25.1. Synopsis

   25.2. Mise `a jour de FreeBSD

   25.3. Portsnap: un outil de mise `a jour du catalogue des logiciels portes

   25.4. Updating the Documentation Set ** Traduction en Cours **

   25.5. Suivre une branche de developpement

   25.6. Synchroniser vos sources

   25.7. Recompiler le systeme

   25.8. Suivre les mises `a jour pour plusieurs machines

   Version franc,aise de Marc Fonvieille <blackend@FreeBSD.org>.

25.1. Synopsis

   FreeBSD est en constant developpement entre deux versions. Certains
   utilisateurs preferent utiliser les versions publiees officiellement alors
   que d'autres voudront rester `a jour avec les tous derniers
   developpements. Memes les versions officielles sont souvent mises `a jour
   avec les correctifs de problemes critiques et de securite. Independamment
   de la version utilisee, FreeBSD fournit tous les outils necessaires `a la
   mise `a jour de votre systeme, et permet egalement des mises `a jour
   aisees entre versions. Ce chapitre vous aidera `a decider si vous voulez
   suivre les developpements, ou vous en tenir aux versions publiees. Les
   outils de base pour le maintien `a jour de votre systeme seront egalement
   presentes.

   Apres la lecture de ce chapitre, vous connaitrez:

     * Quels utilitaires peuvent etre employes pour mettre `a jour le systeme
       et le catalogue des logiciels portes.

     * Comment maintenir votre systeme `a jour avec freebsd-update, CVSup,
       CVS, ou CTM.

     * Comment comparer l'etat d'un systeme installe avec une copie de
       confiance.

     * La difference entre les deux branches de developpement: FreeBSD-STABLE
       et FreeBSD-CURRENT.

     * Comment recompiler et reinstaller l'integralite du systeme de base
       avec la commande make buildworld (etc.).

   Avant de lire ce chapitre, vous devrez:

     * Correctement configurer votre connexion reseau (Chapitre 32,
       Administration reseau avancee).

     * Savoir comment installer des logiciels tiers (Chapitre 4, Installer
       des applications: les logiciels pre-compiles et les logiciels portes).

  Note:

   Tout au long de ce chapitre, la commande cvsup sera utilisee pour
   recuperer et mettre `a jour les sources de FreeBSD. Pour l'utiliser, vous
   devrez installer un logiciel porte ou pre-compile tel que
   net/cvsup-without-gui. Si vous utilisez FreeBSD 6.2-RELEASE ou une version
   ulterieure, vous pouvez remplacer cette commande par csup(1), qui fait
   desormais partie du systeme de base.

25.2. Mise `a jour de FreeBSD

   Ecrit par Tom Rhodes.
   Base sur des notes de Colin Percival.

   Appliquer des correctifs de securite est une part importante de la
   maintenance de logiciels informatiques tout particulierement dans le cas
   du systeme d'exploitation. Pendant tres longtemps sous FreeBSD, ce
   processus n'etait pas aise. Les correctifs devaient etre appliques au code
   source, le code ensuite recompile sous forme de binaires, et enfin les
   binaires devaient etre re-installes.

   Ce processus n'est plus de mise comme FreeBSD dispose desormais d'un
   utilitaire appele simplement freebsd-update. Cet utilitaire fournit deux
   fonctions distinctes. Tout d'abord, il permet l'application de mises `a
   jour de correction et de securite sur le systeme de base de FreeBSD sans
   necessiter une compilation et une re-installation. En second lieu,
   l'utilitaire supporte les mises `a jour mineures et majeures des versions
   publiees.

  Note:

   Les mise `a jour binaires sont disponibles pour toutes les architectures
   actuellement supportees par l'equipe de securite. Avant de mettre `a jour
   vers une nouvelle version, les annonces concernant la version devront etre
   passees en revue sachant qu'elles peuvent contenir des informations
   importantes au sujet de cette version. Ces annonces peuvent etre
   consultees `a l'adresse suivante: http://www.FreeBSD.org/releases/.

   S'il existe une table crontab utilisant freebsd-update, elle doit etre
   desactivee avant de demarrer les operations qui vont suivre.

  25.2.1. Le fichier de configuration

   Certains utilisateurs peuvent souhaiter adapter le fichier de
   configuration par defaut /etc/freebsd-update.conf, permettant un meilleur
   controle du processus. Les options sont tres bien documentees, mais les
   suivantes demandent un peu plus d'explication:

 # Composants du systeme de base qui doivent etre maintenus `a jour.
 Components src world kernel

   Ce parametre controle quelles sont les parties de FreeBSD qui seront mises
   `a jour. Par defaut on met `a jour le code source, l'integralite du
   systeme de base et le noyau. Les composants sont les memes que ceux
   disponibles durant l'installation, par exemple, ajouter world/games ici
   permettrait d'appliquer les correctifs relatifs aux jeux. Utiliser src/bin
   permettrait la mise `a jour du code source du repertoire src/bin.

   La meilleure option est de laisser telle quelle la configuration par
   defaut car la modifier pour ajouter des elements particuliers demandera `a
   l'utilisateur de lister chaque element qu'il desire mettre `a jour. Cela
   pourrait avoir des consequences desastreuses puisque le code source et les
   binaires peuvent `a terme ne plus etre en phase.

 # Les chemins d'acces commenc,ant par quelque chose correspondant `a une
 # entree de type IgnorePaths seront ignores.
 IgnorePaths

   Ajoute les chemins d'acces comme /bin ou /sbin pour preserver intacts ces
   repertoires durant le processus de mise `a jour. Cette option peut etre
   utilisee pour empecher freebsd-update d'ecraser des modifications locales.

 # Les chemins d'acces qui commencent par quelque chose correspondant `a
 # une entree de type UpdateIfUnmodified seront mis `a jour que si le
 # contenu du fichier n'a pas ete modifie par l'utilisateur (`a moins
 # que les modifications ne soient fusionnees; voir plus bas).
 UpdateIfUnmodified /etc/ /var/ /root/ /.cshrc /.profile

   Met `a jour les fichiers de configuration dans les repertoires designes
   seulement s'ils n'ont pas ete modifies. Tout changement effectue par
   l'utilisateur invalidera automatiquement la mise `a jour de ces fichiers.
   Il existe une autre option KeepModifiedMetadata qui indiquera `a
   freebsd-update de sauvegarder les changements durant la fusion.

 # Quand on met `a jour vers une nouvelle version de FreeBSD, les fichiers
 # correspondant `a une entree de type MergeChanges verront leurs
 # differences locales fusionnees avec le fichier de la nouvelle
 # version de FreeBSD.
 MergeChanges /etc/ /var/named/etc/

   Liste des repertoires avec des fichiers de configuration que
   freebsd-update devrait tenter de fusionner. Le processus de fusion des
   fichiers est l'application d'une serie de correctifs diff(1) similaires `a
   ceux de mergemaster(8) avec cependant moins d'options, les fusions sont
   soit acceptees, ouvrant un editeur, soit abandonnees par freebsd-update.
   En cas de doute, sauvegardez /etc et acceptez les fusions. Consultez la
   section sur Section 25.7.11.1, << mergemaster >> pour plus d'information
   sur la commande mergemaster.

 # Repertoire dans lequel stocker les mise `a jour telechargees et les
 # fichiers temporaires utilises par la mise `a jour de FreeBSD.
 # WorkDir /var/db/freebsd-update

   Ce repertoire est l'endroit ou tous les correctifs et les fichiers
   temporaires seront places. Dans les cas ou l'utilisateur effectue une mise
   `a jour de version, cet emplacement doit disposer d'au moins un gigaoctet
   d'espace disponible.

 # Lors de mises `a jour entre versions de FreeBSD, doit-on lire la liste
 # de composants de maniere stricte (StrictComponents yes)
 # ou tout simplement comme une liste de composants qui *pourraient*
 # etre installes et pour lesquels la mise `a jour de FreeBSD devrait
 # determiner lesquels sont effectivement installes et les mettre `a
 # jour (StrictComponents no)?
 # StrictComponents no

   Cette option fixee `a yes, freebsd-update supposera que la liste de
   composants est complete et n'essaiera pas d'effectuer des modifications en
   dehors de cette liste. Concretement, freebsd-update tentera de mettre `a
   jour chaque fichier appartenant `a la liste de composants.

  25.2.2. Correctifs de securite

   Les correctifs de securite sont stockes sur une machine distante et
   peuvent etre telecharges et installes en utilisant la commande suivante:

 # freebsd-update fetch
 # freebsd-update install

   Si des correctifs ont ete appliques au noyau le systeme devra etre
   redemarre. Si tout s'est bien passe le systeme est corrige et
   freebsd-update pourra etre execute chaque nuit via un processus cron(8).
   Une entree dans le fichier /etc/crontab devrait etre suffisante pour
   accomplir cette tache:

 @daily                                  root    freebsd-update cron

   Cette entree indique qu'une fois par jour, l'utilitaire freebsd-update
   sera execute. De cette maniere, en employant l'option cron, freebsd-update
   verifiera seulement l'existence de mises `a jour. Si des correctifs
   existent, il seront automatiquement telecharges sur le disque local mais
   non-appliques. L'utilisateur root sera contacte par courrier electronique,
   il pourra ainsi les installer manuellement.

   Si quelque s'est mal passe, freebsd-update a la capacite d'annuler le
   dernier ensemble de changements avec la commande suivante:

 # freebsd-update rollback

   Une fois la commande achevee, le systeme devra etre redemarre si le noyau
   ou un de ses modules ont ete modifies. Cela permettra `a FreeBSD de
   charger en memoire les nouveaux binaires.

   L'utilitaire freebsd-update peut mettre `a jour uniquement et
   automatiquement le noyau GENERIC. Si un noyau personnalise est utilise, il
   devra etre recompile et reinstalle apres que la commande freebsd-update
   ait acheve l'installation du reste des mises `a jour. Cependant
   freebsd-update detectera et mettra `a jour le noyau GENERIC dans
   /boot/GENERIC (s'il existe), et cela meme si ce n'est pas le noyau actuel
   (qui tourne) du systeme.

  Note:

   C'est toujours une bonne idee de conserver une copie du noyau GENERIC dans
   /boot/GENERIC. Cela sera utile pour diagnostiquer une variete de
   problemes, et lors des mises `a jour utilisant freebsd-update comme decrit
   dans la Section 25.2.3, << Mises `a jour mineures et majeures >>.

   A moins que la configuration par defaut presente dans
   /etc/freebsd-update.conf n'ait ete modifiee, freebsd-update installera les
   sources du noyau mises `a jour avec le reste des mises `a jour. La
   recompilation et la reinstallation d'un noyau personnalise peuvent
   effectuees de la maniere classique.

  Note:

   Les mises `a jour distribuees via freebsd-update, n'impliquent pas
   toujours le noyau. Il ne sera pas necessaire de recompiler votre noyau
   personnalise si les sources du noyau n'ont pas ete modifiees par
   l'execution de freebsd-update install. Cependant freebsd-update met
   toujours `a jour le fichier /usr/src/sys/conf/newvers.sh. Le niveau ou la
   version de correctifs (comme indique par le nombre -p rapporte par uname
   -r) est obtenu `a partir de ce fichier. Recompiler votre noyau
   personnalise, meme si rien d'autre n'a change, permettra `a la commande
   uname(1) de rapporter precisement le niveau de correctifs du systeme.
   C'est particulierement utile quand on gere de multiples systemes, car cela
   permet une evaluation rapide des mises `a jour presentes sur chacun d'eux.

  25.2.3. Mises `a jour mineures et majeures

   Ce processus supprimera les anciens fichiers objets et bibliotheques qui
   rendent inutilisables la plupart des applications tierce-partie. Il est
   recommande que tous les logiciels portes soient supprimes et reinstalles
   ou mis `a jour ulterieurement en utilisant l'outil ports-mgmt/portupgrade.
   La plupart des utilisateurs voudront lancer une compilation test `a l'aide
   de la commande suivante:

 # portupgrade -af

   Cela garantira que tout sera reinstalle correctement. Notez que fixer la
   variable d'environnement BATCH `a yes repondra yes `a toute question lors
   de ce processus, supprimant ainsi la necessite d'une intervention humaine
   durant le processus de compilation.

   Si un noyau personnalise est utilise, le processus de mise `a jour est un
   peu plus complexe. Une copie du noyau GENERIC est necessaire et devrait
   etre placee dans le repertoire /boot/GENERIC. Si le noyau GENERIC n'est
   pas present sur le systeme, il peut etre obtenu en utilisant une des
   methodes suivantes:

     * Si un noyau personnalise a dej`a ete compile, le noyau present dans
       /boot/kernel.old est en fait le noyau GENERIC. Renommer ce repertoire
       en /boot/GENERIC.

     * En supposant qu'un acces physique `a la machine est possible, une
       copie du noyau GENERIC peut etre installe `a partir d'un CD-ROM.
       Inserer votre disque d'installation et utiliser les commandes
       suivantes:

 # mount /cdrom
 # cd /cdrom/X.Y-RELEASE/kernels
 # ./install.sh GENERIC

       Remplacer X.Y-RELEASE avec la version que vous utilisez. Le noyau
       GENERIC sera installe par defaut dans /boot/GENERIC.

     * En dehors de ce qui precede le noyau GENERIC peut etre recompile et
       installe `a partir des sources:

 # cd /usr/src
 # env DESTDIR=/boot/GENERIC make kernel
 # mv /boot/GENERIC/boot/kernel/* /boot/GENERIC
 # rm -rf /boot/GENERIC/boot

       Pour que ce noyau soit pris en compte comme GENERIC par
       freebsd-update, le fichier de configuration GENERIC devra ne pas avoir
       ete modifie. Il est egalement suggere qu'il soit compile sans aucune
       option particuliere (de preference avec un fichier /etc/make.conf
       vide).

   Redemarrer avec le noyau GENERIC n'est pas necessaire `a ce stade.

   Les mises `a jour de versions majeures et mineures peuvent etre effectuees
   en passant `a la commande freebsd-update la version vers laquelle on
   desire mettre `a jour, par exemple, la commande suivante effectuera la
   mise `a jour vers FreeBSD 8.1:

 # freebsd-update -r 8.1-RELEASE upgrade

   La commande freebsd-update analysera le fichier de configuration et le
   systeme afin de recuperer les informations necessaires `a la mise `a jour
   du systeme. A l'ecran s'affichera quels sont les composants detectes et
   quels sont ceux qui n'ont pas ete detectes. Par exemple:

 Looking up update.FreeBSD.org mirrors... 1 mirrors found.
 Fetching metadata signature for 8.0-RELEASE from update1.FreeBSD.org... done.
 Fetching metadata index... done.
 Inspecting system... done.

 The following components of FreeBSD seem to be installed:
 kernel/smp src/base src/bin src/contrib src/crypto src/etc src/games
 src/gnu src/include src/krb5 src/lib src/libexec src/release src/rescue
 src/sbin src/secure src/share src/sys src/tools src/ubin src/usbin
 world/base world/info world/lib32 world/manpages

 The following components of FreeBSD do not seem to be installed:
 kernel/generic world/catpages world/dict world/doc world/games
 world/proflibs

 Does this look reasonable (y/n)? y

   A ce niveau freebsd-update tentera de telecharger tous les fichiers
   necessaires `a la mise `a jour. Dans certains cas l'utilisateur sera
   interroge sur ce qu'il faut installer ou sur comment proceder `a certaines
   actions.

   Si un noyau personnalise est utilise, l'etape precedente produira un
   avertissement semblable au suivant:

 WARNING: This system is running a "MYKERNEL" kernel, which is not a
 kernel configuration distributed as part of FreeBSD 8.0-RELEASE.
 This kernel will not be updated: you MUST update the kernel manually
 before running "/usr/sbin/freebsd-update install"

   Cet avertissement peut sans risque etre ignore `a ce niveau. Le noyau
   GENERIC mis `a jour sera utilise comme une etape intermediaire dans le
   processus de mise `a jour.

   Une fois l'ensemble des correctifs telecharge sur le systeme local, ils
   seront appliques. Ce processus peut prendre plus ou moins de temps en
   fonction de la vitesse et de la charge de la machine. Les fichiers de
   configuration seront fusionnes - cette partie du processus demande
   l'intervention de l'utilisateur car un fichier peut etre automatiquement
   fusionne ou en cas de besoin un editeur peut apparaitre sur l'ecran pour
   une fusion manuelle. Les resultats des fusions reussies seront affiches au
   fur et `a mesure que se deroule l'operation. Un echec ou une fusion
   ignoree provoqueront l'arret du processus. Certains utilisateurs peuvent
   vouloir conserver une sauvegarde du repertoire /etc et fusionner plus tard
   `a la main les fichiers importants comme master.passwd ou group.

  Note:

   Le systeme n'a pas encore ete reellement modifie, les fusions et
   l'application des correctifs ont lieu dans un autre repertoire. Quand tous
   les correctifs ont ete appliques avec succes, que tous les fichiers de
   configuration ont ete fusionnes et que le processus s'est deroule sans
   probleme, les modifications devront etre appliquees definitivement au
   systeme par l'utilisateur.

   Une fois les operations precedentes achevees, la mise `a jour peut etre
   appliquee en utilisant la commande suivante:

 # freebsd-update install

   Le noyau et les modules seront corriges les premiers. A ce moment la
   machine doit etre obligatoirement redemarree. Si le systeme utilisait un
   noyau personnalise, utiliser la commande nextboot(8) pour indiquer le
   noyau /boot/GENERIC (qui a ete mis `a jour) pour le prochain demarrage:

 # nextboot -k GENERIC

  Avertissement:

   Avant de redemarrer sur le noyau GENERIC, assurez-vous qu'il contient tous
   les pilotes necessaires pour que votre systeme demarre correctement (et se
   connecte au reseau, si la mise `a jour de la machine se fait `a distance).
   En particulier, si le noyau precedemment utilise contient des fonctions
   generalement fournies par des modules, faites en sorte de charger
   temporairement ces modules avec le noyau GENERIC `a l'aide de
   /boot/loader.conf. Vous pouvez egalement avoir interet `a desactiver les
   services non-indispensables, les montages reseaux ou disques, etc. avant
   que le processus de mise `a jour ne soit acheve.

   La machine doit maintenant etre redemarree avec le noyau mis `a jour:

 # shutdown -r now

   Une fois la machine de nouveau active, freebsd-update devra etre lancee `a
   nouveau. L'etat du processus de mise `a jour a ete sauvegarde, et donc
   freebsd-update ne recommencera pas au debut, mais supprimera les anciens
   fichiers objet et bibliotheques partagees. Afin de poursuivre les
   operations, taper la commande suivante:

 # freebsd-update install

  Note:

   En fonction d'un changement ou non de numerotation d'une ou plusieurs
   bibliotheques, il pourra y avoir deux phases d'installation au lieu de
   trois.

   Tous les logiciels tierce-partie doivent etre maintenant recompiles et
   reinstalles. Cela est necessaire comme certains logiciels peuvent dependre
   de bibliotheques qui ont ete supprimees lors du processus de mise `a jour.
   La commande ports-mgmt/portupgrade peut etre employee pour automatiser la
   chose. Les commandes suivantes peuvent etre utilisees pour initier le
   processus:

 # portupgrade -f ruby
 # rm /var/db/pkg/pkgdb.db
 # portupgrade -f ruby18-bdb
 # rm /var/db/pkg/pkgdb.db /usr/ports/INDEX-*.db
 # portupgrade -af

   Une fois cela effectue, terminer le processus de mise `a jour avec un
   dernier appel `a freebsd-update. Taper la commande suivante pour regler
   les derniers details:

 # freebsd-update install

   Si le noyau GENERIC a ete utilise temporairement, il est temps de compiler
   et d'installer un nouveau noyau personnalise suivant la methode
   habituelle.

   Redemarrer la machine avec la nouvelle version de FreeBSD. Le processus de
   mise `a jour est termine.

  25.2.4. Comparaison de l'etat du systeme

   L'utilitaire freebsd-update peut etre utilise pour comparer l'etat du
   systeme FreeBSD installe avec une copie de confiance. Cette fonctionnalite
   inspecte la version actuelle des utilitaires systeme, des bibliotheques et
   des fichiers de configuration. Pour lancer la comparaison, utiliser la
   commande suivante:

 # freebsd-update IDS >> outfile.ids

  Avertissement:

   Bien que le nom de la commande soit IDS, elle ne devrait en aucun cas etre
   consideree comme un systeme de detection d'intrusion du type de
   security/snort. Etant donne que freebsd-update stocke des donnees sur le
   disque, le risque de modification des donnees est evident. Alors que cette
   possibilite peut etre minimisee en utilisant le parametrage
   kern.securelevel et en stockant les donnees freebsd-update sur un systeme
   de fichiers en lecture seule quand elles ne sont pas utilisees, une bien
   meilleure solution serait de comparer le systeme avec un disque securise
   comme un DVD ou un disque USB conserve `a l'exterieur.

   Le systeme sera analyse, et une liste de fichiers ainsi que la valeur de
   leur empreinte numerique sha256(1), celle de la version d'origine et celle
   de la version actuellement installee, seront affiches. C'est pour cela que
   cet affichage est copie dans le fichier outfile.ids. L'affichage defile
   trop rapidement une comparaison visuelle et remplira rapidement le tampon
   de la console.

   Ces lignes sont egalement tres longues mais le format de sortie peut etre
   facilement passe par une analyse syntaxique. Par exemple, pour obtenir une
   liste des fichiers qui different avec ceux de la version d'origine,
   utiliser la commande suivante:

 # cat outfile.ids | awk '{ print $1 }' | more
 /etc/master.passwd
 /etc/motd
 /etc/passwd
 /etc/pf.conf

   La sortie de cette commande a ete tronquee, bien plus de fichiers sont
   concernes. Certains de ces fichiers sont naturellement modifies, le
   fichier /etc/passwd a ete modifie en raison de l'ajout d'utilisateurs au
   systeme. Dans certains cas, d'autres fichiers apparaitrons, comme les
   modules du noyau, qui different puisque freebsd-update peut les avoir mis
   `a jour. Pour exclure des fichiers ou des repertoires specifiques,
   ajoutez-les au parametre IDSIgnorePaths dans le fichier
   /etc/freebsd-update.conf.

   Ce systeme peut prendre part `a une methode de mise `a jour elabore, en
   dehors de ce qui a ete presente precedemment.

25.3. Portsnap: un outil de mise `a jour du catalogue des logiciels portes

   Ecrit par Tom Rhodes.
   Base sur les notes de Colin Percival.

   Le systeme de base de FreeBSD dispose egalement d'un utilitaire pour la
   mise `a jour du catalogue des logiciels portes: portsnap(8). Lors de son
   execution, il se connectera sur un site distant, controlera la cle de
   securite et telechargera une nouvelle copie du catalogue des logiciels
   portes. La cle est utilisee pour verifier l'integrite de tous les fichiers
   telecharges, s'assurant qu'ils n'ont pas ete modifies au vol. Pour
   recuperer les tout derniers fichiers du catalogue des logiciels portes,
   utiliser la commande suivante:

 # portsnap fetch
 Looking up portsnap.FreeBSD.org mirrors... 3 mirrors found.
 Fetching snapshot tag from portsnap1.FreeBSD.org... done.
 Fetching snapshot metadata... done.
 Updating from Wed Aug  6 18:00:22 EDT 2008 to Sat Aug 30 20:24:11 EDT 2008.
 Fetching 3 metadata patches.. done.
 Applying metadata patches... done.
 Fetching 3 metadata files... done.
 Fetching 90 patches.....10....20....30....40....50....60....70....80....90. done.
 Applying patches... done.
 Fetching 133 new ports or files... done.

   Cet exemple nous montre que portsnap(8) a trouve et controle plusieurs
   mises `a jour pour les donnees actuelles du catalogue. Est egalement
   indique si l'utilitaire a ete precedemment execute, si cela avait ete une
   premiere execution, le catalogue aurait ete tout simplement telecharge.

   Lorsque portsnap(8) termine avec succes une operation de recuperation
   (fetch), le catalogue des logiciels portes et ses mises `a jour sont
   presents sur le systeme. A la premiere execution de portsnap vous devez
   utiliser la commande extract pour installer les fichiers telecharges:

 # portsnap extract
 /usr/ports/.cvsignore
 /usr/ports/CHANGES
 /usr/ports/COPYRIGHT
 /usr/ports/GIDs
 /usr/ports/KNOBS
 /usr/ports/LEGAL
 /usr/ports/MOVED
 /usr/ports/Makefile
 /usr/ports/Mk/bsd.apache.mk
 /usr/ports/Mk/bsd.autotools.mk
 /usr/ports/Mk/bsd.cmake.mk
 ...

   Pour mettre `a jour un catalogue des logiciels portes dej`a installe
   utilisez la commande portsnap update:

 # portsnap update

   Le processus est maintenant termine et les applications peuvent etre
   installees ou mises `a jour `a l'aide du catalogue `a jour.

   Les operations fetch et extract ou update peuvent etre executees `a la
   suite comme montre dans l'exemple suivant:

 # portsnap fetch update

   Cette commande telechargera la derniere version du catalogue des logiciels
   portes et mettra `a jour votre version locale situee dans /usr/ports.

25.4. Updating the Documentation Set ** Traduction en Cours **

  25.4.1. Updating Documentation from Source

  25.4.2. Updating Documentation from Ports

   Based on the work of Marc Fonvieille.

25.5. Suivre une branche de developpement

   Il existe deux branches de developpement de FreeBSD: FreeBSD-CURRENT et
   FreeBSD-STABLE. Cette section detaillera un peu chacune d'elles et decrira
   comment garder `a jour votre systeme avec chaque arborescence respective.
   FreeBSD-CURRENT sera tout d'abord traite, suivit de FreeBSD-STABLE.

  25.5.1. Se synchroniser avec la version -CURRENT de FreeBSD

   En lisant ces lignes, gardez `a l'esprit que FreeBSD-CURRENT represente
   "les tout derniers" developpement de FreeBSD. On attend des utilisateurs
   de FreeBSD-CURRENT un degre eleve de competences techniques, et devraient
   etre capables de resoudre des problemes systeme compliques par eux-memes.
   Si vous etes nouveau `a FreeBSD, pensez `a deux fois avant de l'installer.

    25.5.1.1. Qu'est-ce que FreeBSD-CURRENT?

   FreeBSD-CURRENT est la toute derniere version des sources de FreeBSD en
   cours de developpement. Cela inclut des evolutions en cours, des
   modifications experimentales, et des mecanismes de transition qui feront
   ou ne feront pas partie de la prochaine version officielle du logiciel.
   Bien que de nombreux developpeurs de FreeBSD compilent les sources de
   FreeBSD-CURRENT quotidiennement, il arrive que celles-ci ne soient pas
   compilables pendant une certaine periode de temps. Ces problemes sont
   resolus aussi rapidement que possible, mais que FreeBSD-CURRENT soit `a
   l'origine d'un desastre ou de l'apport d'une nouvelle fonctionnalite
   attendue peut parfois dependre que du moment auquel vous avez charge le
   code source.

    25.5.1.2. Qui a besoin de FreeBSD-CURRENT?

   FreeBSD-CURRENT est mis `a disposition pour 3 types de personnes:

    1. Les membres de la communaute FreeBSD qui travaillent activement sur
       une partie de l'arborescence des sources et pour qui rester
       constamment `a jour est une necessite absolue.

    2. Les membres de la communaute FreeBSD qui participent activement aux
       tests et sont disposes `a passer du temps `a resoudre les problemes
       pour garantir que FreeBSD-CURRENT reste aussi saine que possible. Il y
       a egalement ceux qui desirent faire des suggestions dans certains
       domaines sur les modifications `a faire et la direction generale que
       prend FreeBSD, et soumettent des correctifs pour les implementer.

    3. Ceux qui veulent simplement garder un oeil sur les evolutions, ou
       utiliser les dernieres sources comme reference (e.g. pour les lire, et
       non pour les utiliser). Ces personnes font parfois des remarques ou
       contribuent au code.

    25.5.1.3. Qu'est-ce que n'est pas FreeBSD-CURRENT?

    1. Un raccourci pour se procurer des pre-versions parce que vous avez
       entendu dire qu'il y a de nouvelles fonctionnalites geniales et que
       vous voulez etre le premier du coin `a les avoir. Etre le premier `a
       avoir la nouvelle fonctionnalite signifie etre le premier `a avoir les
       nouveaux bogues egalement.

    2. Une moyen rapide d'avoir des corrections de bogues. N'importe quelle
       version de FreeBSD-CURRENT apportera probablement de nouveaux bogues
       comme elle corrigera ceux dej`a presents.

    3. Nous ne le "supportons officiellement" en aucun cas. Nous faisons du
       mieux que nous pouvons pour aider les personnes qui font vraiment
       partie des trois groupes "legitimes" `a qui s'adresse FreeBSD-CURRENT,
       mais nous n'avons tout simplement "pas le temps" de fournir un support
       technique. Ce n'est pas parce que nous sommes des personnes
       detestables qui n'aiment pas aider les autres (nous ne ferions pas
       FreeBSD si tel etait le cas), nous ne pouvons simplement pas repondre
       `a des centaines de messages par jour et travailler sur FreeBSD! Entre
       ameliorer FreeBSD et repondre `a de nombreuses questions sur le code
       experimental, les developpeurs optent pour le premier choix.

    25.5.1.4. Utiliser FreeBSD-CURRENT

    1. Inscrivez-vous `a la freebsd-current et la svn-src-head. Ce n'est pas
       seulement une bonne idee, c'est indispensable. Si vous n'etes pas sur
       la liste freebsd-current, vous ne verrez pas les commentaires qui sont
       faits sur l'etat courant du systeme et vous vous retrouverez
       probablement confrontes `a de nombreux problemes que d'autres ont
       dej`a identifies et resolus. Encore plus grave, vous manqueriez des
       bulletins importants potentiellement critiques pour la bonne sante de
       votre systeme.

       La liste svn-src-head vous permettra de voir les courriers de trace
       des soumissions de toutes les modifications des qu'elles sont faites
       et des informations pertinentes sur les eventuels effets de bord.

       Pour vous inscrire `a ces listes, ou `a une autre, rendez vous `a
       http://lists.FreeBSD.org/mailman/listinfo et cliquez sur la liste `a
       laquelle vous desirez vous inscrire. Des instructions sur le reste de
       la procedure sont alors donnees. Si vous etes interesse par le suivi
       des modifications appliquees `a l'ensemble de l'arborescence des
       sources, nous vous recommandons de vous inscrire `a svn-src-all.

    2. Recuperez les sources sur un site miroir FreeBSD. Vous pouvez le faire
       de deux manieres:

         a. Utilisez le programme cvsup avec le fichier supfile nomme
            standard-supfile disponible dans le repertoire
            /usr/share/examples/cvsup. C'est la methode recommandee,
            puisqu'elle permet de recuperer la totalite des sources la
            premiere fois et par la suite uniquement ce qui a ete modifie. De
            nombreuses personnes executent cvsup depuis cron et maintiennent
            ainsi automatiquement `a jour leurs sources. Vous devez
            personnaliser l'exemple de supfile precedent, et configurer cvsup
            pour votre environnement.

  Note:

            Le fichier d'exemple standard-supfile est destine au suivi d'une
            branche de securite FreeBSD specifique et non pas `a celui de
            FreeBSD-CURRENT. Vous devrez editer ce fichier et remplacer la
            ligne suivante:

 *default release=cvs tag=RELENG_X_Y

            Par celle-ci:

 *default release=cvs tag=.

            Pour une explication detaillee des etiquettes utilisables,
            veuillez vous referer `a la section Etiquettes CVS de ce manuel.

         b. Utilisez CTM. Si vous disposez d'une mauvaise connexion
            (connexions cheres ou seulement un acces au courrier
            electronique) CTM est une bonne solution. Cependant, c'est une
            source de problemes et peut donner lieu `a des fichiers
            endommages. C'est pourquoi cette methode est rarement utilisee,
            ce qui augmente les chances que cela ne fonctionne pas pendant
            d'assez longue periodes. Nous recommandons d'utiliser CVSup `a
            tous ceux disposant d'un modem 9600 bps ou d'une connexion plus
            rapide.

    3. Si vous recuperez les sources pour compiler un systeme operationnel,
       et pas simplement pour les lire, alors recuperez tout FreeBSD-CURRENT,
       et pas uniquement certaines portions. La raison de cela est que
       diverses parties des sources dependent de modifications effectuees
       ailleurs, et si vous essayez de compiler juste une partie des source,
       il est quasiment certain que vous aurez des problemes.

    4. Avant de compiler FreeBSD-CURRENT, lisez attentivement le Makefile
       dans /usr/src. Vous devriez au moins la premiere fois installer un
       nouveau noyau et recompiler le systeme, comme etape necessaire `a
       votre processus de mise `a jour. La lecture de la liste de diffusion
       `a propos de la branche FreeBSD-CURRENT et du fichier
       /usr/src/UPDATING vous tiendra au courant des autres procedures de
       transition qui sont parfois necessaires lorsque nous preparons la
       prochaine version.

    5. Participez! Si vous utilisez FreeBSD-CURRENT, nous aimerions savoir ce
       que vous en pensez, tout particulierement si vous avez des
       ameliorations `a nous suggerer ou des corrections de bogues `a nous
       soumettre. Les suggestions accompagnees de code sont accueillies avec
       enthousiasme!

  25.5.2. Se synchroniser avec la version -STABLE de FreeBSD

    25.5.2.1. Qu'est-ce que FreeBSD-STABLE?

   FreeBSD-STABLE est notre branche de developpement `a partir de laquelle
   sont extraites les versions majeures. Les modifications sur cette branche
   se font `a une allure differente, et en supposant generalement qu'elles
   ont ete tout d'abord testees sur FreeBSD-CURRENT. Cela reste cependant
   toujours une branche de developpement, et cela signifie qu'`a certains
   moments, les sources de FreeBSD-STABLE pourront etre ou pas utilisables
   pour une quelconque raison. C'est tout simplement une autre branche de
   mise au point, et non pas une ressource pour l'utilisateur final.

    25.5.2.2. Qui a besoin de FreeBSD-STABLE?

   Si vous desirez suivre ou contribuer au processus de developpement de
   FreeBSD, tout particulierement si cela a rapport avec la prochaine version
   de FreeBSD, alors vous devriez penser `a suivre FreeBSD-STABLE.

   Bien qu'il soit vrai que les correctifs de securite vont egalement dans la
   branche FreeBSD-STABLE, vous n'avez pas besoin de suivre FreeBSD-STABLE
   pour cela. Chaque rapport de securite concernant FreeBSD explique comment
   corriger le probleme sur les versions affectees [13] , et suivre
   integralement une branche de developpement juste pour des raisons de
   securite apportera egalement de nombreux changements non desires.

   Bien que nous tentons de nous assurer que la branche FreeBSD-STABLE soit
   compilable et constamment stable, cela ne peut etre garanti. De plus,
   alors que le code est developpe sous FreeBSD-CURRENT avant de l'inclure
   dans FreeBSD-STABLE, le nombre de personnes utilisant FreeBSD-STABLE est
   plus nombreux que celui utilisant FreeBSD-CURRENT, aussi il est inevitable
   que des bogues et des problemes pourront parfois apparaitre sous
   FreeBSD-STABLE alors qu'ils n'existaient pas sous FreeBSD-CURRENT.

   Pour ces raisons, nous ne recommandons pas de suivre aveuglement
   FreeBSD-STABLE, et il est tout particulierement important que vous ne
   mettiez pas `a jour des serveurs de production sous FreeBSD-STABLE sans
   avoir tout d'abord teste le code dans votre environnement de travail.

   Si vous ne disposez pas des ressources pour faire cela alors nous
   recommandons que vous utilisiez la version de FreeBSD la plus recente, et
   que vous utilisiez le mecanisme de mise `a jour binaire pour passer d'une
   version `a une autre.

    25.5.2.3. Utiliser FreeBSD-STABLE

    1. Inscrivez-vous `a `a la liste freebsd-stable. Vous serez tenu au
       courant des dependances de compilation qui peuvent apparaitre dans la
       branche FreeBSD-STABLE ou de tout autre probleme demandant une
       attention particuliere. Les developpeurs publieront egalement des
       annonces sur cette liste lorsqu'ils envisagent une correction ou
       modification controversee, offrant la possibilite aux utilisateurs de
       repondre s'ils ont des questions `a soulever en rapport avec la
       modification proposee.

       Inscrivez-vous `a la liste SVN correspondant `a la branche que vous
       suivez. Par exemple, si vous suivez la branche 7-STABLE,
       inscrivez-vous `a la liste svn-src-stable-7. Cela vous permettra de
       lire les courriers de trace des soumissions de toutes les
       modifications des qu'elles sont faites et des informations pertinentes
       sur les eventuels effets de bord.

       Pour vous inscrire `a ces listes, ou `a une autre, rendez vous `a
       http://lists.FreeBSD.org/mailman/listinfo et cliquez sur la liste `a
       laquelle vous desirez vous inscrire. Des instructions sur le reste de
       la procedure sont alors donnees. Si vous etes interesse par le suivi
       des modifications appliquees `a l'ensemble de l'arborescence des
       sources, nous vous recommandons de vous inscrire `a svn-src-all.

    2. Si vous installez un nouveau systeme et vous voulez qu'il utilise le
       dernier instantane publie tous les mois `a partir de la branche
       FreeBSD-STABLE, consultez la page sur les instantanes pour plus
       d'information. D'autre part, vous pouvez installer la version
       FreeBSD-STABLE la plus recente `a partir des sites miroirs et suivre
       les instructions ci-dessous pour mettre `a jour votre systeme avec les
       sources FreeBSDstable; les plus recentes.

       Si vous faites tourner une version precedente de FreeBSD et que vous
       desirez mettre `a jour via les sources vous pouvez aisement le faire
       `a partir d'un site miroir FreeBSD. Cela peut etre fait de deux
       manieres:

         a. Utilisez le programme cvsup avec le fichier supfile nomme
            stable-supfile disponible dans le repertoire
            /usr/share/examples/cvsup. C'est la methode recommandee,
            puisqu'elle permet de recuperer la totalite des sources la
            premiere fois et par la suite uniquement ce qui a ete modifie. De
            nombreuses personnes executent cvsup depuis cron et maintiennent
            ainsi automatiquement `a jour leurs sources. Vous devez
            personnaliser l'exemple de supfile precedent, et configurer cvsup
            pour votre environnement.

         b. Utilisez CTM. Si vous ne disposez pas d'une connexion Internet
            rapide et peu couteuse, c'est la methode que vous devriez penser
            `a utiliser.

    3. Avant tout, si vous avez besoin d'un acces rapide `a la demande aux
       sources et que la bande passante n'est pas un probleme, utilisez cvsup
       ou ftp. Sinon, utilisez CTM.

    4. Avant de compiler FreeBSD-STABLE, lisez attentivement le Makefile dans
       /usr/src. Vous devriez au moins la premiere fois installer un nouveau
       noyau et recompiler le systeme, comme etape necessaire `a votre
       processus de mise `a jour. La lecture de la liste de diffusion `a
       propos de la branche FreeBSD-STABLE et du fichier /usr/src/UPDATING
       vous tiendra au courant des autres procedures de transition qui sont
       parfois necessaires lorsque nous preparons la prochaine version.

25.6. Synchroniser vos sources

   Il existe differentes fac,ons d'utiliser une connexion Internet (ou le
   courrier electronique) pour garder `a jour les sources de n'importe quelle
   partie, ou de l'ensemble, du projet FreeBSD, selon ce qui vous interesse.
   Les principaux services que nous fournissons sont le CVS anonyme, CVSup,
   et CTM.

  Avertissement:

   Alors qu'il est possible de mettre `a jour seulement certaines parties de
   l'arbre des sources, la seule procedure de mise `a jour supportee est
   celle consistant `a mettre `a jour l'integralite de l'arborescence et de
   recompiler les sources des applicatifs de base-"userland" (i.e., tous les
   programmes qui tournent dans l'espace utilisateur, comme ceux des
   repertoires /bin et /sbin) et du noyau. Ne mettre `a jour qu'une partie
   des sources, uniquement le noyau, ou seul le "userland" menera souvent `a
   des problemes. Ces problemes pourront aller d'erreurs de compilation `a
   des paniques du noyau ou meme des corruptions de donnees.

   CVS anonyme et CVSup utilisent une methode de mise `a jour pilotee par le
   client-pull. Dans le cas de CVSup, l'utilisateur (ou une procedure cron)
   appelle le programme cvsup, qui interagit avec un serveur cvsupd distant,
   pour mettre `a jour vos fichiers. Les mises `a jour que vous recevez sont
   les plus recentes, et vous ne les recevez seulement lorsque vous le
   desirez. Vous pouvez aisement restreindre vos mises `a jour aux fichiers
   ou repertoires particuliers qui vous interessent. Les mises `a jour sont
   generees `a la volee par le serveur, en fonction de ce que vous avez dej`a
   et de ce que vous voulez. CVS anonyme est plus simpliste que CVSup, car ce
   n'est qu'une extension de CVS qui permet de recuperer des modifications
   directement d'une archive CVS distante. Pour cela, CVSup est bien plus
   efficace mais CVS anonyme est plus facile `a utiliser.

   CTM, `a l'inverse, ne compare pas interactivement les sources dont vous
   disposez avec celles qui sont sur l'archive de reference. Au lieu de cela,
   une procedure qui identifie les modifications intervenues depuis qu'elle a
   ete executee pour la derniere fois, est lancee plusieurs fois par jour sur
   la machine CTM de reference (maitre), les modifications detectees sont
   compressees, affectees d'un numero de sequence et encodees pour pouvoir
   etre envoyees par courrier electronique (en ASCII imprimable uniquement).
   Une fois rec,us, ces "deltas CTM" peuvent etre passes `a l'utilitaire
   ctm_rmail(1) qui decodera, controlera et appliquera automatiquement les
   modifications `a l'exemplaire des sources de l'utilisateur. Cette methode
   est beaucoup plus efficace que CVSup et consomme beaucoup moins de
   ressources sur notre serveur, parce que c'est un modele pilote par le
   serveur-push plutot que par l'utilisateur-pull.

   Il y a, bien sur, quelques contreparties. Si vous effacez par inadvertance
   des parties de votre archive, CVSup s'en apercevra et vous reconstruira
   les parties endommagees. CTM ne le fera pas, et si vous effacez des
   parties de votre l'arborescence des sources (et que vous n'avez pas fait
   de sauvegarde) alors vous devrez repartir de zero (`a partir du plus
   recent "delta de base" CVS) et tout reconstituer avec CTM ou CVS anonyme,
   effacer les parties endommagees et resynchroniser.

25.7. Recompiler le systeme

   Une fois que vous avez synchronise votre arborescence des sources avec une
   version donnee de FreeBSD (FreeBSD-STABLE, FreeBSD-CURRENT, et ainsi de
   suite) vous pouvez alors utiliser cette arborescence des sources pour
   recompiler le systeme.

  Faites une sauvegarde:

   On n'insistera jamais assez sur l'importance de faire une sauvegarde de
   votre systeme avant tout autre chose. Bien qu'il soit facile de "refaire
   le monde" (recompiler FreeBSD), si vous suivez ces instructions, vous
   ferez inevitablement des erreurs `a un moment ou un autre, ou d'autres
   feront des erreurs au niveau de l'arborescence des sources qui
   empecheraient votre systeme de redemarrer.

   Assurez-vous que vous avez bien fait une sauvegarde. Ayez une disquette de
   maintenance, ou un CD demarrable `a portee de la main. Vous ne
   l'utiliserez probablement pas, mais prudence est mere de surete!

  S'abonner `a la bonne liste de diffusion:

   Les branches FreeBSD-STABLE et FreeBSD-CURRENT sont, par nature, en
   developpement. Les personnes qui participent `a FreeBSD sont des humains,
   et des erreurs se produisent occasionnellement.

   Ces erreurs sont parfois benignes, provocant simplement l'affichage d'un
   nouveau message d'avertissement par votre systeme. Elles peuvent aussi
   etre catastrophiques, et empecher votre systeme de redemarrer ou detruire
   vos systemes de fichiers (ou pire).

   Quand de tels problemes se produisent, un avertissement "heads up" est
   poste sur la liste de diffusion appropriee, decrivant la nature du
   probleme et quels systemes sont concernes. Un message "all clear" est
   poste quand le probleme est resolu.

   Si vous tentez de suivre FreeBSD-STABLE ou FreeBSD-CURRENT et que vous ne
   lisez pas la liste de diffusion `a propos de la branche FreeBSD-STABLE ou
   la liste de diffusion `a propos de la branche FreeBSD-CURRENT, vous allez
   au devant d'ennuis.

  N'utilisez pas la commande make world:

   De nombreuses anciennes documentations preconisent d'utiliser la commande
   make world. Cette commande n'effectue pas un certain nombre d'etapes
   importantes et ne devrait etre utilisee que si vous etes sur de ce que
   vous faites. Dans presque tout les cas make world n'est pas une bonne
   chose `a faire, et la procedure decrite dans la suite de ce document
   devrait etre utilisee `a la place.

  25.7.1. La methode generique de mise `a jour du systeme

   Pour mettre `a jour votre systeme, vous devriez consulter
   /usr/src/UPDATING pour toute operation preliminaire necessaire en fonction
   de la version de vos sources et ensuite utiliser la procedure suivante:

 # cd /usr/src
 # make buildworld
 # make buildkernel
 # make installkernel
 # shutdown -r now

  Note:

   Dans quelques rares cas, il est necessaire de lancer un mergemaster -p
   avant l'etape buildworld. Ces cas sont decrits dans le fichier UPDATING.
   Generalement, vous pouvez omettre cette operation si vous ne mettez pas `a
   jour d'une version majeure de FreeBSD `a une autre.

   Une fois l'operation installkernel terminee avec succes, vous devrez
   demarrer en mode mono-utilisateur (en utilisant par exemple la commande
   boot -s `a l'invite du chargeur). Executez ensuite:

 # mount -a -t ufs
 # mergemaster -p
 # cd /usr/src
 # make installworld
 # mergemaster
 # reboot

  Lisez les explications supplementaires:

   La sequence decrite ci-dessus n'est qu'un court resume pour vous aider `a
   demarrer. Vous devriez cependant lire les sections suivantes afin de
   comprendre clairement chaque etape, tout particulierement si vous desirez
   utiliser une configuration du noyau personnalisee.

  25.7.2. Lire /usr/src/UPDATING

   Avant tout autre chose, lisez /usr/src/UPDATING (ou le fichier equivalent
   en fonction de l'endroit ou se trouve vos sources). Ce fichier devrait
   contenir les informations importantes au sujet des problemes que vous
   pourriez rencontrer, ou indique l'ordre dans lequel vous devriez executer
   certaines commandes. Si le fichier UPDATING contredit quelque chose
   d'ecrit ici, UPDATING prime sur tout le reste.

  Important:

   La lecture du fichier UPDATING n'est pas un substitut `a l'abonnement `a
   la liste de diffusion correcte, comme decrit precedemment. Ces deux
   prerequis sont complementaires, et non pas exclusifs.

  25.7.3. Controler /etc/make.conf

   Controlez les fichiers /usr/share/examples/etc/make.conf et
   /etc/make.conf. Le premier contient des parametres par defaut - la plupart
   etant places en commentaires. Pour les utiliser quand vous recompilez
   votre systeme `a partir des sources, rajoutes-les au fichier
   /etc/make.conf. Gardez `a l'esprit que tout ce que vous ajoutez au fichier
   /etc/make.conf est utilise chaque fois que vous invoquez la commande make,
   il est donc bon de s'assurer que les valeurs par defaut sont appropriees
   `a votre systeme.

   Un utilisateur typique voudra probablement copier les lignes CFLAGS et
   NO_PROFILE se trouvant dans /usr/share/examples/etc/make.conf vers
   /etc/make.conf et les decommenter.

   Examinez les autres definitions (COPTFLAGS, NOPORTDOCS et ainsi de suite)
   et decidez si elles vous conviennent.

  25.7.4. Mettre `a jour les fichiers dans /etc

   Le repertoire /etc contient la plupart des informations de configuration
   de votre systeme, ainsi que les procedures de demarrage. Certaines de ces
   procedures changent d'une version `a l'autre de FreeBSD.

   Certains fichiers de configuration sont egalement utilises en permanence
   par le systeme. En particulier /etc/group.

   Il est arrive que la phase d'installation make installworld ait besoin que
   certains utilisateurs et groupes existent. Il y a de fortes chances qu'ils
   n'aient pas ete definis avant la mise `a jour. C'est une source de
   problemes. Dans certains cas make buildworld controlera si ces
   utilisateurs ou groupes existent.

   Un exemple de cela fut l'addition de l'utilisateur smmsp. Le processus
   d'installation echouait quand mtree tentait de creer
   /var/spool/clientmqueue.

   La solution est d'executer mergemaster(8) dans le mode pre-"buildworld" en
   ajoutant l'option -p. Cela effectuera la comparaison uniquement des
   fichiers essentiels pour le succes de la procedure buildworld ou
   installworld. Si votre vieille version de mergemaster ne supporte pas
   l'option -p, utilisez la nouvelle version presente dans l'arborescence des
   sources quand vous l'executez pour la premiere fois:

 # cd /usr/src/usr.sbin/mergemaster
 # ./mergemaster.sh -p

  Astuce:

   Si vous etes particulierement paranoiaque, vous pouvez controler votre
   systeme afin de voir quels fichiers appartiennent au groupe que vous
   renommez ou effacez:

 # find / -group GID -print

   affichera les fichiers appartenant au groupe GID (qui peut etre soit un
   nom de groupe ou un identifiant numerique de groupe).

  25.7.5. Passer en mode mono-utilisateur

   Il vaut mieux recompiler le systeme en mode mono-utilisateur. En dehors du
   fait que cela sera legerement plus rapide, la reinstallation va modifier
   un grand nombre de fichiers systemes importants, tous les binaires de base
   du systeme, les bibliotheques, les fichiers d'include et ainsi de suite.
   Les modifier sur un systeme en fonctionnement (en particulier s'il y a des
   utilisateurs connectes `a ce moment l`a), c'est aller au devant de
   problemes.

   Une autre methode consiste `a compiler le systeme en mode
   multi-utilisateurs, et passer dans le mode mono-utilisateur pour
   l'installation. Si vous desirez utiliser cette methode, conservez les
   etapes suivantes pour le moment ou la compilation sera terminee. Vous
   pouvez reporter le passage en mode mono-utilisateur jusqu'`a l'execution
   de installkernel ou installworld.

   En tant que super-utilisateur, vous pouvez executer la commande:

 # shutdown now

   sur un systeme en fonctionnement, pour passer en mode mono-utilisateur.

   Ou bien, redemarrer le systeme, et `a l'invite de demarrage, selectionnez
   l'option << single user >>. Le systeme demarrera alors en mode
   mono-utilisateur. A l'invite de l'interpreteur de commandes, executez
   alors:

 # fsck -p
 # mount -u /
 # mount -a -t ufs
 # swapon -a

   Cela effectue une verification des systemes de fichiers, remonte / en mode
   lecture/ecriture, et monte tous les autres systemes de fichiers UFS listes
   dans le fichier /etc/fstab, puis active la pagination.

  Note:

   Si votre horloge CMOS est reglee sur l'heure locale et non pas sur le
   fuseau GMT (cela est vrai si la sortie de la commande date ne donne pas
   l'heure et le fuseau correct), vous aurez egalement peut-etre besoin
   d'executer la commande suivante:

 # adjkerntz -i

   Cela permettra de s'assurer que vos parametres de fuseaux horaires sont
   correctement configures - sans cela, vous risquez de faire face, plus
   tard, `a des problemes.

  25.7.6. Effacer /usr/obj

   Au fur et `a mesure que les differentes parties du systeme sont
   recompilees, elles sont placees dans des repertoires qui (par defaut) sont
   sous /usr/obj. Les repertoires sont agences comme sous /usr/src.

   Vous pouvez accelerer le processus make buildworld, et egalement vous
   eviter d'eventuels problemes de dependances en effac,ant ce repertoire.

   Certains fichiers dans /usr/obj peuvent avoir l'indicateur immuable
   positionne (consultez la page de manuel chflags(1) pour plus
   d'informations) qui doit etre retire en premier.

 # cd /usr/obj
 # chflags -R noschg *
 # rm -rf *

  25.7.7. Recompiler le systeme de base

    25.7.7.1. Enregistrer la sortie

   C'est une bonne idee d'enregistrer la sortie de make(1) dans un fichier.
   Si quelque chose se passe mal, vous aurez une trace des messages d'erreur.
   Meme si cela ne vous aide pas `a diagnostiquer ce qui n'a pas fonctionne,
   cela peut aider les autres si vous postez votre probleme sur une des
   listes de diffusion de FreeBSD.

   La methode la plus aisee pour faire cela est d'utiliser la commande
   script(1), avec en parametre le nom du fichier ou enregistrer les
   resultats. Vous devez faire cela immediatement juste avant de recompiler
   le systeme, et taper exit une fois que c'est termine.

 # script /var/tmp/mw.out
 Script started, output file is /var/tmp/mw.out
 # make TARGET
 ... compile, compile, compile ...
 # exit
 Script done, ...

   Si vous le faites, n'enregistrez pas le resultat dans /tmp. Ce repertoire
   peut etre vide au prochain redemarrage du systeme. Un meilleur endroit de
   sauvegarde est /var/tmp (comme dans l'exemple precedent) ou dans le
   repertoire utilisateur de root.

    25.7.7.2. Compiler le nouveau systeme

   Vous devez etre dans le repertoire /usr/src:

 # cd /usr/src

   (`a moins, bien sur, que votre code source ne soit ailleurs, auquel cas
   vous devrez aller dans le repertoire correspondant).

   Pour recompiler le systeme, on utilise la commande make(1). Cette commande
   lit ses instructions dans le fichier Makefile, qui decrit comment
   devraient etre reconstruits les programmes qui constituent FreeBSD, dans
   quel ordre, et ainsi de suite.

   Le format general de la ligne de commande que vous taperez sera la
   suivante:

 # make -x -DVARIABLE cible

   Dans cet exemple, -x est une option que vous passez `a make(1).
   Reportez-vous `a la page de manuel pour un exemple d'options que vous
   pouvez passer.

   -DVARIABLE transmet un variable au fichier Makefile. Le comportement du
   Makefile est defini par ces variables. Ce sont les memes variables que
   l'on trouve dans /etc/make.conf, et c'est un autre moyen de les
   positionner.

 # make -DNO_PROFILE cible

   est une autre maniere de dire qu'il ne faut pas compiler les bibliotheques
   profilees et correspond `a la ligne:

 NO_PROFILE=    true     #    Avoid compiling profiled libraries

   dans /etc/make.conf.

   cible indique `a make(1) ce que vous voulez faire. Chaque Makefile definit
   un certain nombre de "cibles", et votre choix de cible determine ce qui se
   passe.

   Certaines cibles listees dans le fichier Makefile, ne doivent pas etre
   employees. Ce sont des etapes intermediaires utilisees par le processus de
   recompilation pour decomposer les etapes importantes de la recompilation
   du systeme en sous-etapes.

   La plupart du temps, vous n'aurez pas besoin de passer de parametres `a
   make(1), et votre commande ressemblera `a ceci:

 # make cible

   Ou cible sera une des nombreuses options de compilation. La premiere cible
   devrait toujours etre buildworld.

   Comme leurs noms l'indiquent, buildworld reconstruit la nouvelle
   arborescence dans /usr/obj, et installworld, une autre cible, l'installe
   sur la machine.

   Disposer d'options separees est tres utile pour deux raisons. Tout d'abord
   cela vous permet de recompiler en toute surete en sachant qu'aucun
   composant du systeme actuel ne sera affecte. La compilation est
   "autonome". En raison de cela vous pouvez executer buildworld sur une
   machine en mode multi-utilisateurs sans redouter d'effets facheux. Il est
   neanmoins recommande de toujours executer l'etape installworld en mode
   mono-utilisateur.

   En second lieu, cela vous permet d'utiliser des systemes montes par NFS
   pour mettre `a jour plusieurs machines de votre reseau. Si vous avez trois
   machines A, B et C que vous voulez mettre `a jour, executez make
   buildworld et make installworld sur A. B et C doivent ensuite monter par
   NFS /usr/src et /usr/obj depuis A, et vous pouvez alors executer make
   installworld pour installer le systeme recompile sur B et C.

   Bien que la cible world existe toujours, vous etes fortement encourage `a
   ne pas l'utiliser.

   Executez:

 # make buildworld

   Il est possible de passer l'option -j `a make(1) ce qui lui permettra
   d'executer plusieurs processus simultanement. C'est particulierement utile
   sur une machine avec plusieurs processeurs. Cependant, comme la
   compilation est plus gourmande en E/S plutot qu'en CPU, c'est egalement
   utile sur des machines mono-processeur.

   Typiquement sur une machine mono-processeur, vous executeriez:

 # make -j4 buildworld

   make(1) pourra executer jusqu'`a 4 processus simultanement. Des
   constatations empiriques postees sur les listes de diffusion montrent que
   c'est en general ce qui apporte le plus de gain en performances.

   Si vous avez une machine multi-processeurs et que vous avez configure un
   noyau SMP, essayez des valeurs entre 6 et 19 et voyez quel benefice vous
   en tirez.

    25.7.7.3. Duree

   De nombreux facteurs influencent la duree de compilation, mais les
   machines recentes devraient mettrent seulement de une `a deux heures pour
   compiler l'arborescence FreeBSD-STABLE, sans modification ni raccourcis
   durant le processus. Une arborescence FreeBSD-CURRENT necessitera un peu
   plus de temps.

  25.7.8. Compiler et installer un nouveau noyau

   Pour tirer pleinement parti de votre nouveau systeme, vous devrez
   recompiler le noyau. C'est pratiquement indispensable, parce que certaines
   structures memoires peuvent avoir changees, et des programmes comme ps(1)
   et top(1) ne fonctionneront pas tant que le systeme et le noyau
   n'utilisent pas les memes versions de code source.

   La maniere la plus simple et la plus sure est de compiler et installer un
   noyau base sur le noyau GENERIC. Alors que le noyau GENERIC peut ne pas
   comporter les pilotes de peripheriques necessaires pour votre systeme, il
   devrait contenir tout ce qui est necessaire pour faire demarrer votre
   systeme en mode mono-utilisateur. C'est une bonne fac,on de tester le
   fonctionnement de votre nouveau systeme. Apres avoir demarre `a partir du
   noyau GENERIC et verifie que votre systeme fonctionne vous pouvez alors
   compiler un nouveau noyau base sur votre fichier de configuration normal
   du noyau.

   Sur FreeBSD, il est important de recompiler le systeme avant de compiler
   un nouveau noyau.

  Note:

   Si vous desirez compiler un noyau personnalise, et que vous avez dej`a un
   fichier de configuration, utilisez juste KERNCONF=MONNOYAU comme suit:

 # cd /usr/src
 # make buildkernel KERNCONF=MONNOYAU
 # make installkernel KERNCONF=MONNOYAU

   Notez que si vous avez augmente la variable kern.securelevel `a une valeur
   superieure `a 1 et que vous avez positionne l'indicateur noschg ou
   similaire sur votre noyau, il sera interessant de passer en mode
   mono-utilisateur pour utiliser installkernel. Sinon vous devriez etre en
   mesure d'executer ces commandes `a partir du mode multi-utilisateur sans
   problemes. Voir la page de manuel de init(8) pour plus de details `a
   propos de kern.securelevel et la page chflags(1) pour des informations sur
   les differents indicateurs de fichiers.

  25.7.9. Redemarrer en mode mono-utilisateur

   Vous devriez redemarrer en mode mono-utilisateur pour tester le
   fonctionnement du nouveau noyau. Pour cela suivez les instructions de
   Section 25.7.5, << Passer en mode mono-utilisateur >>.

  25.7.10. Installer les nouveaux binaires systeme

   Si vous avez compile une version de FreeBSD assez recente pour avoir
   utilise make buildworld alors vous devriez utiliser maintenant
   installworld pour installer les nouveaux binaires systeme.

   Lancez:

 # cd /usr/src
 # make installworld

  Note:

   Si vous specifiez des variables sur la ligne de commande de make
   buildworld, vous devez utiliser les memes variables avec la commande make
   installworld. Cela ne reste pas forcement vrai pour d'autres options; par
   exemple, -j ne doit jamais etre utilisee avec installworld.

   Par exemple, si vous executez:

 # make -DNO_PROFILE buildworld

   vous devrez ensuite installer les resultats avec:

 # make -DNO_PROFILE installworld

   sinon il essayera d'installer les bibliotheques profilees qui n'ont pas
   ete recompilees `a l'etape make buildworld.

  25.7.11. Mettre `a jour les fichiers non modifies par make installworld

   La recompilation du systeme ne mettra pas `a jour certains repertoires (en
   particulier, /etc, /var et /usr) avec les fichiers nouveaux ou modifies.

   La maniere la plus simple de mettre `a jour ces fichiers est d'utiliser
   mergemaster(8), bien qu'il soit possible de le faire manuellement si vous
   le desirez. Independamment de la maniere que vous choisissez, assurez-vous
   de faire une sauvegarde du repertoire /etc au cas ou quelque chose se
   passerait mal.

    25.7.11.1. mergemaster

   Contribution de Tom Rhodes.

   L'utilitaire mergemaster(8) est une procedure Bourne qui vous aidera `a
   determiner les differences entre vos fichiers de configuration dans le
   repertoire /etc, et les fichiers de configuration dans l'arborescence des
   sources /usr/src/etc. C'est la solution recommandee pour maintenir `a jour
   les fichiers de configuration du systeme avec ceux situes dans
   l'arborescence des sources.

   Pour commencer, tapez simplement mergemaster `a l'invite, et observez-le
   travailler. mergemaster commencera `a constituer une arborescence
   temporaire, `a partir de /, et la remplira avec divers fichiers de
   configuration. Ces fichiers sont alors compares avec ceux actuellement
   installes sur votre systeme. A ce point, les fichiers qui different seront
   affiches dans le format diff(1), avec le signe + representant les lignes
   modifiees ou ajoutees, et le - representant les lignes qui seront soit
   completement supprimees, soit remplacees avec une nouvelle ligne. Voir la
   page de manuel diff(1) pour plus d'informations au sujet de la syntaxe
   diff(1) et comment sont affichees les differences.

   mergemaster(8) vous affichera ensuite chaque fichier presentant des
   differences, et vous aurez `a ce moment-l`a le choix de soit supprimer le
   nouveau fichier (le fichier temporaire), soit d'installer le fichier
   temporaire non modifie, soit de fusionner le fichier temporaire et le
   fichier actuellement installe, soit enfin de revoir les resultats de
   l'operation diff(1).

   Choisir de supprimer le fichier temporaire indiquera `a mergemaster(8) que
   nous desirons conserver notre fichier actuel intacte, et effacera la
   nouvelle version. Cette option n'est pas recommandee, `a moins que vous ne
   voyez aucune raison de modifier le fichier actuel. Vous pouvez obtenir de
   l'aide `a n'importe quel moment en tapant ? `a l'invite de mergemaster(8).
   Si l'utilisateur choisit de passer un fichier, il sera presente `a nouveau
   une fois que tous les autres fichiers auront ete traites.

   Choisir d'installer un fichier temporaire intact remplacera le fichier
   actuel avec le nouveau. Pour la plupart des fichiers non modifiees, c'est
   la meilleure option.

   Choisir de fusionner le fichier, vous affichera un editeur de texte, et le
   contenu des deux fichiers. Vous pouvez maintenant les fusionner en les
   visionnant cote `a cote sur l'ecran, et en selectionnant des parties des
   deux fichiers pour creer un fichier final. Quand les fichiers sont
   compares cote `a cote, la touche l selectionnera le contenu de gauche et
   la touche r selectionnera celui de droite. Le resultat final sera un
   fichier constitue des deux parties, qui peut alors etre installe. Cette
   option est habituellement utilisee pour les fichiers ou les des parametres
   ont ete modifies par l'utilisateur.

   Choisir de revoir les resultats de l'operation diff(1) vous affichera les
   differences entre fichiers tout comme la fait mergemaster(8) avant de vous
   demander un choix.

   Apres que mergemaster(8) en ait termine avec les fichiers systeme, il vous
   proposera de nouvelles operations. mergemaster(8) vous demandera si vous
   desirez reconstruire le fichier des mots de passe et terminera en vous
   proposant de supprimer les fichiers temporaires restants.

    25.7.11.2. Mise `a jour manuelle

   Si vous desirez faire la mise `a jour manuellement, vous ne pouvez
   cependant pas vous contenter de copier les fichiers de /usr/src/etc dans
   /etc pour que cela fonctionne. Certains de ces fichiers doivent d'abord
   etre "installes". En effet le repertoire /usr/src/etc "n'est pas" une
   copie de ce que devrait contenir votre repertoire /etc. De plus, il a des
   fichiers qui doivent etre dans /etc et qui ne sont pas dans /usr/src/etc.

   Si vous utilisez mergemaster(8) (comme recommande), vous pouvez passer
   cette section et aller directement `a la section suivante.

   La fac,on la plus simple de proceder est d'installer les fichiers dans un
   nouveau repertoire, puis de passer en revue les differences.

  Sauvegardez votre repertoire /etc actuel:

   Bien qu'en principe rien ne sera modifie automatiquement dans ce
   repertoire, prudence est mere de surete. Copiez donc votre repertoire /etc
   dans un endroit sur. Quelque chose du genre:

 # cp -Rp /etc /etc.old

   conviendra; l'option -R fait une copie recursive, -p preserve la date, les
   autorisations des fichiers et ainsi de suite.

   Vous devez creer un ensemble de repertoires provisoires pour y installer
   les fichiers du repertoire /etc et autres. /var/tmp/root est un bon choix,
   il y a un certain nombre de sous-repertoires `a creer egalement:

 # mkdir /var/tmp/root
 # cd /usr/src/etc
 # make DESTDIR=/var/tmp/root distrib-dirs distribution

   Cela va creer l'arborescence necessaire et y installera les fichiers. Un
   grand nombre des sous-repertoires crees dans /var/tmp/root sont vides et
   devront etre supprimes. La fac,on la plus simple de le faire est:

 # cd /var/tmp/root
 # find -d . -type d | xargs rmdir 2>/dev/null

   Ceci supprimera tous les repertoires vides (la sortie d'erreur standard
   est redirigee vers /dev/null pour empecher les avertissements `a propos
   des repertoires non vides).

   /var/tmp/root contient maintenant tous les fichiers `a installer `a
   l'endroit requis sous /. Vous devez maintenant examiner chacun de ces
   fichiers pour determiner en quoi ils different de vos propres fichiers.

   Notez que certains des fichiers qui seront installes dans /var/tmp/root
   commencent par un ".". Au moment ou sont ecrites ces lignes, les seuls
   fichiers concernes sont les fichiers d'initialisation des interpreteurs de
   commandes dans /var/tmp/root/ et /var/tmp/root/root/, mais il pourrait y
   en avoir d'autres (cela depend de quand vous lirez ces lignes).
   Assurez-vous d'utiliser la commande ls -a pour ne pas les oublier.

   La maniere la plus simple de proceder est d'utiliser la commande diff(1)
   pour comparer les deux fichiers:

 # diff /etc/shells /var/tmp/root/etc/shells

   Cela vous indiquera les differences entre votre fichier /etc/shells et le
   nouveau fichier /var/tmp/root//etc/shells. A partir de l`a, decidez si
   vous aller reporter les modifications que vous y avez apportee ou si vous
   allez simplement recopier le nouveau fichier.

  Donnez au nouveau repertoire racine (/var/tmp/root) un nom qui inclue une
  date, pour pouvoir facilement comparer les differentes versions:

   Si vous recompilez frequemment votre systeme, cela signifie que vous devez
   egalement souvent mettre `a jour le repertoire /etc, ce qui peut
   rapidement devenir une corvee.

   Vous pouvez accelerer le processus en conservant une copie du dernier
   ensemble de fichiers modifies que vous avez reportes dans /etc. La
   procedure suivante presente une fac,on de faire.

    1. Recompilez le systeme comme `a l'accoutume. Au moment de mettre `a
       jour /etc et les autre repertoires, donnez au repertoire cible un nom
       base sur la date du jour. Si vous faisiez cela le 14 fevrier 1998,
       vous pourriez proceder comme suit:

 # mkdir /var/tmp/root-19980214
 # cd /usr/src/etc
 # make DESTDIR=/var/tmp/root-19980214 \
     distrib-dirs distribution

    2. Reporter les modifications depuis ce repertoire comme decrit plus
       haut.

       Ne supprimez pas le repertoire /var/tmp/root-19980214 quand vous aurez
       termine.

    3. Quand vous recuperez la derniere version des sources et la
       recompilerez, suivez l'etape 1. Vous aurez alors un nouveau
       repertoire, qui pourrait s'appeler /var/tmp/root-19980221 (si vous
       faites une mise `a jour chaque semaine).

    4. Vous pouvez maintenant voir les modifications intervenues d'une
       semaine `a l'autre en utilisant diff(1) pour afficher les differences
       entre tous les fichiers deux repertoires:

 # cd /var/tmp
 # diff -r root-19980214 root-19980221

       Generalement, il y aura beaucoup moins de differences qu'entre
       /var/tmp/root-19980221/etc et /etc. Comme il y a beaucoup moins de
       differences, il est beaucoup plus facile de les reporter dans le
       repertoire /etc.

    5. Vous pouvez maintenant supprimer le plus ancien des deux repertoires
       /var/tmp/root-*:

 # rm -rf /var/tmp/root-19980214

    6. Repetez l'operation chaque fois que vous devez reporter des
       modifications dans /etc.

   Vous pouvez utiliser date(1) pour automatiser la generation des noms de
   repertoires:

 # mkdir /var/tmp/root-`date "+%Y%m%d"`

  25.7.12. Redemarrer

   Vous en avez termine. Apres avoir verifie que tout semble etre en place,
   vous pouvez alors redemarrez votre systeme. Un simple shutdown(8) devrait
   suffire:

 # shutdown -r now

  25.7.13. C'est fini

   Vous devriez maintenant avoir mis `a jour avec succes votre systeme
   FreeBSD. Felicitations.

   Si les choses se sont legerement mal passees, il est facile de recompiler
   un element particulier du systeme. Par exemple, si vous avez
   accidentellement efface /etc/magic lors de la mise `a jour de /etc, la
   commande file(1) ne fonctionnerait plus. Dans ce cas, la solution serait
   d'executer:

 # cd /usr/src/usr.bin/file
 # make all install

  25.7.14. Questions

   25.7.14.1. Dois-je refaire le monde `a chaque evolution?

   25.7.14.2. Ma compilation echoue avec de nombreuses erreurs "signal 11"
   (ou tout autre numero de signal). Que s'est-il passe?

   25.7.14.3. Puis-je effacer /usr/obj apres avoir fini?

   25.7.14.4. Une recompilation interrompue peut-elle etre reprise?

   25.7.14.5. Comment puis-je accelerer la compilation du systeme?

   25.7.14.6. Que faire si quelque chose se passe mal?

   25.7.14.1. Dois-je refaire le monde `a chaque evolution?                   
              Il n'y a pas de reponse toute faite `a cette question, tout     
              depend de la nature des evolutions. Par exemple, si vous venez  
              juste d'executer CVSup, et que les fichiers suivants on ete mis 
              `a jour:                                                        
                                                                              
              src/games/cribbage/instr.c                                      
              src/games/sail/pl_main.c                                        
              src/release/sysinstall/config.c                                 
              src/release/sysinstall/media.c                                  
              src/share/mk/bsd.port.mk                                        
                                                                              
              cela ne vaut probablement pas la peine de recompiler tout le    
              systeme. Vous pouvez tout simplement aller dans les             
              sous-repertoires appropries, executer make all install, et      
              c'est `a peu pres tout. Mais s'il y a des evolutions            
              importantes, par exemple sur src/lib/libc/stdlib alors vous     
              devrez soit refaire le monde, ou recompiler au moins toutes les 
              parties du systeme qui sont liees statiquement (de meme que     
              tout ce vous pourriez avoir ajoute qui y serait lie             
              statiquement).                                                  
                                                                              
              C'est `a vous de voir. Vous prefererez peut-etre recompiler     
              votre systeme tous les quinze jours, et laisser les             
              modifications s'empiler pendant quinze jours. Ou bien vous      
              prefererez ne recompiler que ce qui a change et vous faire      
              confiance pour tout ce qui en depend.                           
                                                                              
              Et, bien sur, cela depend de la frequence avec laquelle vous    
              voulez faire vos mises `a jour, et de si vous suivez la branche 
              FreeBSD-STABLE ou FreeBSD-CURRENT.                              
   25.7.14.2. Ma compilation echoue avec de nombreuses erreurs "signal 11"    
              (ou tout autre numero de signal). Que s'est-il passe?           
              Cela indique generalement un probleme materiel. (Re)compiler le 
              systeme est un bon moyen de mettre votre materiel sous          
              pression, et mettra souvent en evidence des defaillances de la  
              memoire vive. Elles se manifestent normalement d'elles-memes,   
              la compilation echouant lors de la reception de mysterieux      
              signaux.                                                        
                                                                              
              Un bon indicateur de cet etat de fait, est que vous pouvez      
              relancer la compilation et qu'elle echouera en un endroit       
              different.                                                      
                                                                              
              Dans ce cas, vous ne pouvez guere faire autre chose que         
              d'intervertir les differents composants de votre materiel pour  
              determiner lequel est en cause.                                 
   25.7.14.3. Puis-je effacer /usr/obj apres avoir fini?                      
              Une reponse courte est oui.                                     
                                                                              
              /usr/obj contient tous les fichiers objets generes `a la        
              compilation. Normalement, une des premieres etapes de make      
              buildworld est de supprimer ce repertoire et de repartir `a     
              zero. Dans ce cas, conserver le repertoire /usr/obj apres avoir 
              termine ne sert pas `a grand chose, alors que vous              
              economiseriez pas mal d'espace disque (actuellement environ     
              340 MO).                                                        
                                                                              
              Cependant, si vous savez ce que vous faites, vous pouvez faire  
              en sorte que make buildworld saute cette etape. Cela rendra les 
              compilations ulterieures plus rapides, puisque la plupart des   
              sources n'auront pas besoin d'etre recompilees. Le revers de la 
              medaille est que des problemes subtils de dependance peuvent se 
              manifester, provoquant l'echec de votre compilation de maniere  
              etrange. Cela genere frequemment du bruit sur les listes de     
              diffusion de FreeBSD, quand quelqu'un se plaint que sa mise `a  
              jour a echoue, sans realiser que c'est parce qu'il a tente de   
              bruler les etapes.                                              
   25.7.14.4. Une recompilation interrompue peut-elle etre reprise?           
              Tout depend de jusqu'ou vous etes aller avant de rencontrer un  
              probleme.                                                       
                                                                              
              En general (et ceci n'est pas une regle absolue) make           
              buildworld cree de nouveaux exemplaires des outils              
              indispensables (comme gcc(1) et make(1)) et des bibliotheques   
              systeme. Ces outils et bibliotheques sont ensuite installes.    
              Puis ils sont utilises pour se reconstruire eux-memes, et       
              installes de nouveau. L'integralite du systeme (y compris       
              maintenant les programmes utilisateurs classiques, comme ls(1)  
              ou grep(1)) est alors recompile avec les nouveaux fichiers      
              systeme.                                                        
                                                                              
              Si vous etes `a cette derniere etape, et que vous le savez      
              (parce que vous avez consulte les resultats que vous avez       
              enregistres) alors vous pouvez (sans trop de risque) faire:     
                                                                              
              ... fix the problem ...                                         
              # cd /usr/src                                                   
              # make -DNO_CLEAN all                                           
                                                                              
              Cela ne detruira pas les resultats du travail qu'`a dej`a       
              effectue make buildworld.                                       
                                                                              
              Si vous voyez le message:                                       
                                                                              
              --------------------------------------------------------------  
              Building everything..                                           
              --------------------------------------------------------------  
                                                                              
              dans les comptes-rendus de make buildworld alors cette fac,on   
              de proceder est probablement bonne.                             
                                                                              
              Si vous ne voyez pas ce message, ou que vous doutez de vous,    
              alors prudence est mere de surete, et il vaut mieux tout        
              reprendre depuis le debut.                                      
   25.7.14.5. Comment puis-je accelerer la compilation du systeme?            
                * Passez en mode mono-utilisateur.                            
                                                                              
                * Mettez les repertoires /usr/src et /usr/obj sur des         
                  systemes de fichiers et des disques differents. Si          
                  possible, installez ces disques sur des controleurs         
                  differents.                                                 
                                                                              
                * Encore mieux, mettez ces systemes de fichiers sur plusieurs 
                  disques utilisant le systeme ccd(4) (pilote de disques      
                  concatenes).                                                
                                                                              
                * Ne compilez pas les bibliotheques profilees (mettez         
                  "NO_PROFILE=true" dans le fichier /etc/make.conf). Vous     
                  n'en avez certainement pas besoin.                          
                                                                              
                * Egalement dans /etc/make.conf, positionnez CFLAGS `a        
                  quelque chose comme -O -pipe. L'optimisation -O2 est bien   
                  plus lente, et la difference d'optimisation entre -O et -O2 
                  est en general negligeable. -pipe demande au compilateur    
                  d'utiliser des tuyaux `a la place de fichiers temporaires,  
                  ce qui economise des acces disque (mais utilise plus de     
                  memoire).                                                   
                                                                              
                * Passez l'option -jn `a make(1) pour permettre l'execution   
                  de plusieurs processus en parallele. Cela ameliore          
                  generalement les choses, que vous ayez une machine mono- ou 
                  multi-processeurs.                                          
                                                                              
                * Le systeme de fichiers qui contient /usr/src peut etre      
                  monte (ou remonte) avec l'option noatime. Cela empeche      
                  l'enregistrement des dates d'acces aux fichiers par le      
                  systeme de fichiers. Vous n'avez de toute fac,on            
                  probablement pas besoin de cette information.               
                                                                              
               # mount -u -o noatime /usr/src                                 
                                                                              
                Avertissement:                                                
                                                                              
                  Cet exemple suppose que /usr/src constitue `a lui seul un   
                  systeme de fichiers. Si ce n'est pas le cas (s'il fait      
                  partie de /usr par exemple) vous devez alors indiquer le    
                  point de montage de ce systeme de fichiers, et non          
                  /usr/src.                                                   
                                                                              
                * Le systeme de fichiers ou se trouve /usr/obj peut etre      
                  monte (ou remonte) avec l'option async. Les ecritures sur   
                  le disque se feront alors de fac,on asynchrone. En d'autres 
                  termes, le programme reprend immediatement la main, et      
                  l'ecriture des donnees sur le disque se fait quelques       
                  secondes plus tard. Cela permet le groupement des ecritures 
                  sur le disque, et le gain en performance peut etre          
                  spectaculaire.                                              
                                                                              
                Avertissement:                                                
                                                                              
                  Gardez `a l'esprit que cette option rend votre systeme de   
                  fichiers plus fragile. Avec cette option, les risques ne    
                  sont accrus qu'en cas de coupure d'alimentation, le systeme 
                  de fichiers soit irrecuperable quand la machine             
                  redemarrera.                                                
                                                                              
                  S'il n'y a que /usr/obj sur ce systeme de fichiers, ce      
                  n'est alors pas un probleme. Si vous avez d'autres donnees  
                  importantes sur ce systeme de fichiers, assurez-vous que    
                  vos sauvegardes soient `a jour avant d'activer cette        
                  option.                                                     
                                                                              
               # mount -u -o async /usr/obj                                   
                                                                              
                Avertissement:                                                
                                                                              
                  Comme auparavant, si /usr/obj ne constitue pas un systeme   
                  de fichiers en soit, remplacez-le dans l'exemple par le nom 
                  du point de montage approprie.                              
   25.7.14.6. Que faire si quelque chose se passe mal?                        
              Soyez absolument sur que votre environnement ne contient pas    
              des restes de compilation precedentes. Cela est plutot simple:  
                                                                              
              # chflags -R noschg /usr/obj/usr                                
              # rm -rf /usr/obj/usr                                           
              # cd /usr/src                                                   
              # make cleandir                                                 
              # make cleandir                                                 
                                                                              
              En effet, make cleandir doit vraiment etre executee deux fois.  
                                                                              
              Ensuite relancez l'ensemble du processus, en commenc,ant avec   
              make buildworld.                                                
                                                                              
              Si vous avez toujours des problemes, envoyez l'erreur et le     
              resultat de la commande uname -a `a la liste de diffusion pour  
              les questions d'ordre general `a propos de FreeBSD. Tenez-vous  
              pret `a repondre `a d'autres concernant votre configuration!    

25.8. Suivre les mises `a jour pour plusieurs machines

   Contribution de Mike Meyer.

   Si vous avez plusieurs machines dont vous voulez maintenir `a jour
   l'arborescence des sources, alors faire telecharger et recompiler `a
   chacune d'entre elles les sources semble un gaspillage de ressources:
   espace disque, bande passante reseau, et cycles CPU. C'est en effet bien
   le cas, et la solution est d'avoir une machine qui fait la majeure partie
   du travail, pendant que le reste des machines montent ce travail par NFS.
   Cette section decrit une fac,on de le faire.

  25.8.1. Preliminaires

   Premierement, identifiez un ensemble de machines qui va utiliser le meme
   ensemble de binaires, que nous appellerons un ensemble de compilation.
   Chaque machine peut avoir un noyau personnalise, mais elles executeront
   les memes binaires utilisateur du systeme de base. Dans cet ensemble de
   machine, choisissez une machine qui sera la machine de compilation. Cela
   sera la machine sur laquelle le monde et le noyau seront compiles.
   Idealement, cela devrait etre une machine rapide avec un CPU suffisamment
   disponible pour executer la commande make buildworld et make buildkernel.
   Vous voudrez egalement utiliser une machine de test, qui testera les mises
   `a jour logicielles avant d'etre utilisees en production. Cela doit etre
   une machine que vous pouvez vous permettre d'avoir hors service pour une
   longue periode. Cela peut etre la machine de compilation, mais cela n'est
   pas obligatoire.

   Toutes les machines de cet ensemble de compilation doivent monter /usr/obj
   et /usr/src `a partir de la meme machine, et du meme point de montage.
   Idealement, ces derniers sont sur deux disques differents sur la machine
   de compilation, mais peuvent egalement etre montes par NFS sur cette
   machine. Si vous avez plusieurs ensembles de compilation, /usr/src devrait
   etre sur une machine de compilation, et monte par NFS sur les autres.

   Finalement assurez-vous que /etc/make.conf et /etc/src.conf sur toutes les
   machines de l'ensemble de compilation sont en accord avec la machine de
   compilation. Cela signifie que la machine de compilation doit compiler
   toutes les parties du systeme de base que toute machine de l'ensemble de
   compilation va installer. De plus, chaque machine de compilation devra
   avoir son nom de noyau defini avec KERNCONF dans /etc/make.conf, et la
   machine de compilation devrait tous les lister dans KERNCONF, en listant
   son noyau en premier. La machine de compilation doit avoir les fichiers de
   configuration des noyaux de chaque machine dans /usr/src/sys/arch/conf si
   elle va compiler leur noyau.

  25.8.2. Le systeme de base

   Maintenant que tout est configure, vous etes fin pret pour tout compiler.
   Compilez le noyau et le monde sur la machine de compilation comme decrit
   dans la Section 25.7.7.2, << Compiler le nouveau systeme >>, mais
   n'installez rien. La compilation une fois terminee, allez sur la machine
   de test, et installez le noyau que vous venez juste de compiler. Si la
   machine monte /usr/src et /usr/obj via NFS, quand vous redemarrez en mode
   mono-utilisateur vous devrez activer le reseau et monter ces repertoires.
   La methode la plus simple est de demarrer en mode multi-utilisateur, puis
   executez shutdown now pour passer en mode mono-utilisateur. Une fois `a ce
   niveau, vous pouvez installer le nouveau noyau et monde puis executer
   mergemaster comme vous le feriez habituellement. Une fois cela effectue,
   redemarrez pour retourner en mode multi-utilisateur pour cette machine.

   Apres que vous soyez certain que tout fonctionne correctement sur la
   machine de test, utilisez la meme procedure pour installer le nouvel
   ensemble logiciel sur chacune des autres machines de l'ensemble de
   compilation.

  25.8.3. Les logiciels portes

   La meme idee peut etre utilisee pour le catalogue des logiciels portes. La
   premiere etape critique est de monter /usr/ports depuis la meme machine
   vers toutes les machines de l'ensemble de compilation. Vous pouvez alors
   configurer correctement /etc/make.conf pour partager les archives. Vous
   devrez faire pointer DISTDIR sur un repertoire de partage commun dans
   lequel peut ecrire n'importe quel utilisateur utilise pour correspondance
   de l'utilisateur root par vos montages NFS. Chaque machine devrait faire
   pointer WRKDIRPREFIX sur une repertoire de compilation local. Et enfin, si
   vous projetez de compiler et distribuer des logiciels precompiles, vous
   devriez fixer PACKAGES sur un repertoire similaire `a DISTDIR.

     ----------------------------------------------------------------------

   [13] Ceci n'est pas tout `a fait vrai. Nous ne pouvons continuer `a
   supporter les anciennes versions de FreeBSD eternellement, bien que nous
   les supportions pendant de nombreuses annees. Pour une description
   complete de la politique de securite actuelle pour les anciennes versions
   de FreeBSD, veuillez consulter http://www.FreeBSD.org/security/.

Chapitre 26. DTrace

   Ecrit par Tom Rhodes.
   Table des matieres

   26.1. Synopsis

   26.2. Des differences de mise en oeuvre

   26.3. Activer la prise en charge de DTrace

   26.4. Utiliser DTrace

   26.5. Le langage D

   Version franc,aise de Isabell Long <isabell121@gmail.com>.

26.1. Synopsis

   DTrace, egalement designe sous le nom de systeme de trace dynamique, a ete
   developpe par Sun(TM) comme outil de localisation de problemes de
   performance sur des systemes de production et d'avant-production. Ce
   n'est, en aucune maniere, un outil de debogage, mais un outil pour
   l'analyse systeme en temps reel pour localiser les problemes de
   performance et autres.

   DTrace est un outil de profilage remarquable, avec une impressionnante
   multitude de fonctions pour diagnostiquer des problemes systeme. Il peut
   egalement etre utilise avec des scripts pre-ecrits pour pouvoir profiter
   de ses capacites. Les utilisateurs peuvent ecrire leurs propres
   utilitaires en employant le langage de DTrace, D, leur permettant ainsi de
   personnaliser leur profilage en fonction de leurs besoins.

   Apres la lecture de ce chapitre, vous connaitrez:

     * Ce qu'est DTrace et quelles fonctionnalites il offre.

     * Les differences entre la version DTrace de Solaris(TM) et celle
       fournie par FreeBSD.

     * Comment activer et utiliser DTrace sur FreeBSD.

   Avant de lire ce chapitre, vous devrez:

     * Comprendre les fondements d'UNIX(R) et de FreeBSD (Chapitre 3,
       Quelques bases d'UNIX).

     * Etre familier avec la configuration/compilation du noyau (Chapitre 8,
       Configurer le noyau de FreeBSD).

     * Avoir une certaine connaissance concernant la securite et ses liens
       avec FreeBSD (Chapitre 14, Securite).

     * Comprendre comment obtenir et recompiler les sources de FreeBSD
       (Chapitre 25, Mise `a jour de FreeBSD).

  Avertissement:

   Cette fonction est consideree comme experimentale. Quelques options
   peuvent etre absentes et d'autres ne fonctionneront peut-etre pas du tout.
   A terme, cette fonction sera prete pour une utilisation en production, et
   cette documentation sera modifiee pour en tenir compte.

26.2. Des differences de mise en oeuvre

   Bien que DTrace sous FreeBSD soit tres semblable `a DTrace sous
   Solaris(TM), des differences existent et devraient etre expliquees avant
   de continuer. La difference principale que les utilisateurs remarqueront
   est que sur FreeBSD, DTrace doit etre specialement active. Il y a des
   options de noyau et des modules qui doivent etre actives pour que DTrace
   fonctionne correctement. Ces options seront expliquees plus tard.

   Il existe une option de noyau, DDB_CTF, qui est employee pour activer la
   prise en charge du chargement des donnees CTF depuis les modules de noyau
   et du noyau lui-meme. CTF est le format Compact C de Solaris(TM), qui
   encapsule une forme reduite d'information de debogage, semblable `a DWARF
   et ses venerables tables de symboles. Ces donnees CTF sont ajoutees aux
   fichiers binaires par les outils de compilation ctfconvert et ctfmerge.
   L'utilitaire ctfconvert analyse les sections de debogage ELF DWARF crees
   par le compilateur et ctfmerge fusionne les sections ELF CTF qui sont sous
   forme objet vers soit des fichiers executables, soit des bibliotheques
   partagees. Plus d'informations sur comment activer cela pour le noyau et
   FreeBSD est `a venir.

   Quelques fournisseurs differents existent pour FreeBSD par rapport `a
   Solaris(TM). Le plus notable est le fournisseur dtmalloc, qui permet le
   trac,age de la fonction malloc() par type dans le noyau FreeBSD.

   Seul l'utilisateur root peut utiliser DTrace sur FreeBSD. Ceci est lie aux
   differences de securite, Solaris(TM) dispose de quelques controles de
   securite de bas niveau qui n'existent pas encore sur FreeBSD. Ainsi
   /dev/dtrace/dtrace est strictement limite uniquement `a l'utilisateur
   root.

   Pour terminer, le logiciel DTrace est sous la licence de Sun(TM), CDDL. La
   Common Development and Distribution License est disponibles sous FreeBSD,
   voir le fichier /usr/src/cddl/contrib/opensolaris/OPENSOLARIS.LICENSE ou
   vous pouvez le consulter sur Internet `a
   http://www.opensolaris.org/os/licensing.

   Cette licence signifie qu'un noyau avec les options DTrace est toujours
   sous licence BSD; cependant, la licence CDDL est appliquee lorsque les
   modules sont distribues sous format binaire, ou quand les fichiers
   binaires sont charges.

26.3. Activer la prise en charge de DTrace

   Pour activer DTrace, il faut ajouter les lignes suivantes au fichier de
   configuration du noyau:

 options         KDTRACE_HOOKS
 options         DDB_CTF

  Note:

   Les utilisateurs de l'architecture AMD64 devraient ajouter la ligne
   suivante `a leur fichier de configuration de noyau:

 options         KDTRACE_FRAME

   Cette option active la fonction FBT. DTrace fonctionnera sans cette
   option, mais il y aura des restrictions sur le trac,age des limites des
   fonctions.

   Les sources doivent etre recompilees et installees avec les options CTF.
   Pour faire cela, recompiler les sources de FreeBSD en utilisant:

 # cd /usr/src

 # make WITH_CTF=1 kernel

   Le systeme aura besoin d'etre redemarre.

   Apres avoir redemarre et avoir laisse charger en memoire le noyau, le
   support de l'interpreteur de commandes Korn devra etre ajoute. Ceci est
   necessaire car la boite `a outils DTrace possede quelques utilitaires
   ecrits en ksh. Il faut installer shells/ksh93. Il est egalement possible
   de faire fonctionner ces outils avec shells/pdksh ou shells/mksh.

   Finalement, recuperer la boite `a outils DTrace la plus recente. La
   version actuelle est disponible `a l'adresse
   http://www.opensolaris.org/os/community/dtrace/. Un systeme d'installation
   est inclu dans l'archive; cependant, cette installation n'est pas
   obligatoire pour utiliser les outils fournis.

26.4. Utiliser DTrace

   Avant d'utiliser DTrace, il faut que le peripherique DTrace existe. Pour
   charger le peripherique, executez la commande suivante:

 # kldload dtraceall

   Le systeme devrait maintenant supporter DTrace. Pour afficher toutes les
   sondes, l'administrateur peut maintenant executer la commande:

 # dtrace -l | more

   Toutes les donnees sortantes de cette commande sont passees `a
   l'utilitaire more, pour empecher qu'elles saturent l'ecran. A ce niveau,
   DTrace peut etre considere comme fonctionnel. On est maintenant pret `a
   passer en revue l'ensemble des outils disponibles.

   La boite `a outils est une collection de scripts prets `a fonctionner avec
   DTrace pour rassembler des informations systemes. Il y a des scripts pour
   verifier les fichiers ouvertes, la memoire, l'usage du CPU et beaucoup
   plus. Il faut extraire les scripts avec la commande suivante:

 # gunzip -c DTracetoolkit* | tar xvf -

   Aller dans ce repertoire en utilisant cd et changer les permissions de
   tous les fichiers, les fichiers avec les noms en miniscules, `a 755.

   Chacun de ces scripts devra avoir son contenu modifie. Ceux qui font
   reference `a /usr/bin/ksh devront pointer sur /usr/local/bin/ksh, les
   autres qui utilisent /usr/bin/sh devront etre modifies pour qu'ils
   utilisent /bin/sh, et finalement ceux qui utilisent /usr/bin/perl, devront
   pointer sur /usr/local/bin/perl.

  Important:

   A ce point il est prudent de rappeler au lecteur que le support de DTrace
   sous FreeBSD n'est pas complet et est encore experimental. Un bon nombre
   de ces scripts ne fonctionneront pas, soit parce qu'ils sont trop
   specifiques `a Solaris(TM), soit parce qu'ils utilisent des sondes qui ne
   sont pas encore supportees.

   Au moment de l'ecriture de ces lignes, seuls deux des scripts de la boite
   `a outils DTrace sont totalement supportes sous FreeBSD: les outils
   hotkernel et procsystime. Ce sont ces deux outils que nous detaillerons
   dans la suite de cette section.

   L'outil hotkernel est cense identifier quel fonction utilise le plus de
   temps noyau. Fonctionnant normalement, il affichera une liste comparable
   `a la suivante:

 # ./hotkernel
 Sampling... Hit Ctrl-C to end.

   L'administrateur systeme doit utiliser la combinaison de touches Ctrl+C
   pour arreter le processus. Le script affichera une liste de fonctions du
   noyau et des informations de temps, et les triera dans l'ordre croissant
   du temps consomme:

 kernel`_thread_lock_flags                                   2   0.0%
 0xc1097063                                                  2   0.0%
 kernel`sched_userret                                        2   0.0%
 kernel`kern_select                                          2   0.0%
 kernel`generic_copyin                                       3   0.0%
 kernel`_mtx_assert                                          3   0.0%
 kernel`vm_fault                                             3   0.0%
 kernel`sopoll_generic                                       3   0.0%
 kernel`fixup_filename                                       4   0.0%
 kernel`_isitmyx                                             4   0.0%
 kernel`find_instance                                        4   0.0%
 kernel`_mtx_unlock_flags                                    5   0.0%
 kernel`syscall                                              5   0.0%
 kernel`DELAY                                                5   0.0%
 0xc108a253                                                  6   0.0%
 kernel`witness_lock                                         7   0.0%
 kernel`read_aux_data_no_wait                                7   0.0%
 kernel`Xint0x80_syscall                                     7   0.0%
 kernel`witness_checkorder                                   7   0.0%
 kernel`sse2_pagezero                                        8   0.0%
 kernel`strncmp                                              9   0.0%
 kernel`spinlock_exit                                       10   0.0%
 kernel`_mtx_lock_flags                                     11   0.0%
 kernel`witness_unlock                                      15   0.0%
 kernel`sched_idletd                                       137   0.3%
 0xc10981a5                                              42139  99.3%

   Ce script fonctionnera aussi avec des modules de noyau. Pour utiliser ce
   fonction, executez le script avec l'option -m:

 # ./hotkernel -m
 Sampling... Hit Ctrl-C to end.
 ^C
 MODULE                                                  COUNT   PCNT
 0xc107882e                                                  1   0.0%
 0xc10e6aa4                                                  1   0.0%
 0xc1076983                                                  1   0.0%
 0xc109708a                                                  1   0.0%
 0xc1075a5d                                                  1   0.0%
 0xc1077325                                                  1   0.0%
 0xc108a245                                                  1   0.0%
 0xc107730d                                                  1   0.0%
 0xc1097063                                                  2   0.0%
 0xc108a253                                                 73   0.0%
 kernel                                                    874   0.4%
 0xc10981a5                                             213781  99.6%

   Le script procsystime capture et affiche le temps consomme en appels
   systeme pour un PID ou un processus donne. Dans l'exemple suivant, un
   nouvel exemplaire de /bin/csh a ete lance. L'outil procsystime a ete
   execute et laisse en attente pendant que quelques commandes ete tapees sur
   les autres incarnations de csh. Voici le resultat de ce test:

 # ./procsystime -n csh
 Tracing... Hit Ctrl-C to end...
 ^C

 Elapsed Times for processes csh,

          SYSCALL          TIME (ns)
           getpid               6131
        sigreturn               8121
            close              19127
            fcntl              19959
              dup              26955
          setpgid              28070
             stat              31899
        setitimer              40938
            wait4              62717
        sigaction              67372
      sigprocmask             119091
     gettimeofday             183710
            write             263242
           execve             492547
            ioctl             770073
            vfork            3258923
       sigsuspend            6985124
             read         3988049784

   Comme indique, l'appel systeme read() semble prendre le plus de temps en
   nanosecondes, alors que l'appel systeme getpid() prend tres peu de temps.

26.5. Le langage D

   La boite `a outils DTrace comprend plusieurs scripts ecrits dans le
   langage specifique de DTrace. Ce langage est appele le << langage D >>
   dans la documentation de Sun(TM), et est tres proche du C++. Une etude en
   profondeur de ce langage sort du cadre de ce document. Il est aborde de
   maniere tres detaillee `a l'adresse
   http://wikis.sun.com/display/DTrace/Documentation.

                               Partie IV. Reseau

   FreeBSD est un des systemes d'exploitation les plus utilise pour les
   serveurs reseau `a hautes performances. Les chapitres de cette partie
   abordent:

     * les communications serie

     * PPP et PPP sur Ethernet

     * le courrier electronique

     * l'execution de serveurs reseau

     * les coupe-feux

     * d'autres sujets reseau avances

   Ces chapitres sont destines `a etre lus quand une information est
   necessaire. Il n'est pas utile de les lire suivant un ordre particulier,
   ni de tous les lire avant de pouvoir utiliser FreeBSD dans un
   environnement reseau.

   Table des matieres

   27. Serial Communications ** Traduction en Cours **

                27.1. Synopsis

                27.2. Introduction

                27.3. Terminals

                27.4. Dial-in Service

                27.5. Dial-out Service

                27.6. Setting Up the Serial Console

   28. PPP et SLIP

                28.1. Synopsis

                28.2. Using User PPP ** Traduction en Cours **

                28.3. Utiliser PPP integre au noyau

                28.4. Utiliser PPP sur Ethernet (PPPoE)

                28.5. Utiliser PPP sur ATM (PPPoA)

                28.6. Utiliser SLIP

   29. Courrier electronique

                29.1. Synopsis

                29.2. Utilisation du courrier electronique

                29.3. Configuration de sendmail

                29.4. Changer votre agent de transfert de courrier

                29.5. Depannage

                29.6. Sujets avances

                29.7. SMTP avec UUCP

                29.8. Configuration pour l'envoi seul

                29.9. Utiliser le courrier electronique avec une connexion
                temporaire

                29.10. Authentification SMTP

                29.11. Clients de messagerie

                29.12. Utiliser fetchmail

                29.13. Utiliser procmail

   30. Serveurs reseau

                30.1. Synopsis

                30.2. Le "super-serveur" inetd

                30.3. Systeme de fichiers reseau (NFS)

                30.4. Services d'information reseau (NIS/YP)

                30.5. Configuration reseau automatique (DHCP)

                30.6. Serveurs de noms (DNS)

                30.7. Serveur HTTP Apache

                30.8. Protocole de transfert de fichiers (FTP)

                30.9. Serveur de fichiers et d'impression pour clients
                Microsoft(R) Windows(R) (Samba)

                30.10. Synchronisation de l'horloge avec NTP

   31. Firewalls ** Traduction en Cours **

                31.1. Introduction

                31.2. Firewall Concepts

                31.3. Firewall Packages

                31.4. The OpenBSD Packet Filter (PF) and ALTQ

                31.5. The IPFILTER (IPF) Firewall

                31.6. IPFW

   32. Administration reseau avancee

                32.1. Synopsis

                32.2. Passerelles et routes

                32.3. Reseau sans fil

                32.4. Bluetooth

                32.5. Bridging

                32.6. Systeme sans disque dur

                32.7. ISDN

                32.8. Translation d'adresses

                32.9. IP sur liaison parallele (PLIP)

                32.10. IPv6

                32.11. ATM (<< Asynchronous Transfer Mode >>)

Chapitre 27. Serial Communications ** Traduction en Cours **

   Table des matieres

   27.1. Synopsis

   27.2. Introduction

   27.3. Terminals

   27.4. Dial-in Service

   27.5. Dial-out Service

   27.6. Setting Up the Serial Console

27.1. Synopsis

27.2. Introduction

  27.2.1. Terminology

  27.2.2. Cables and Ports

    27.2.2.1. Cables

      27.2.2.1.1. Null-modem Cables

27.3. Terminals

  27.3.1. Uses and Types of Terminals

  27.3.2. Configuration

    27.3.2.1. Adding an Entry to /etc/ttys

    27.3.2.2. Force init to Reread /etc/ttys

  27.3.3. Troubleshooting Your Connection

27.4. Dial-in Service

27.5. Dial-out Service

27.6. Setting Up the Serial Console

  27.6.1. Tips for the Serial Console

    27.6.1.1. Entering the DDB Debugger from the Serial Line

Chapitre 28. PPP et SLIP

   Restructure, reorganise, et mis `a jour par Jim Mock.
   Table des matieres

   28.1. Synopsis

   28.2. Using User PPP ** Traduction en Cours **

   28.3. Utiliser PPP integre au noyau

   28.4. Utiliser PPP sur Ethernet (PPPoE)

   28.5. Utiliser PPP sur ATM (PPPoA)

   28.6. Utiliser SLIP

   Version franc,aise de Marc Fonvieille <blackend@FreeBSD.org>.

28.1. Synopsis

   FreeBSD dispose de nombreuses fac,ons pour relier un ordinateur `a un
   autre. Pour mettre en place un reseau ou etablir une connexion Internet
   par l'intermediaire d'un modem, ou pour autoriser d'autres `a le faire par
   votre intermediaire, il est necessaire d'utiliser PPP ou SLIP. Ce chapitre
   decrit la configuration en detail de ces services de communication par
   modem.

   Apres la lecture de ce chapitre, vous saurez:

     * Comment configurer PPP en mode utilisateur.

     * Comment configurer PPP integre au noyau.

     * Comment configurer PPPoE (PPP sur Ethernet).

     * Comment configurer PPPoA (PPP sur ATM).

     * Comment configurer et utiliser un client et un serveur SLIP.

   Avant de lire ce chapitre, vous devrez:

     * Etre familier avec la terminologie reseau de base.

     * Comprendre les bases, le but d'une connexion entrante par modem, et
       PPP et/ou SLIP.

   Vous pouvez vous demander quelle est la principale difference entre PPP en
   mode utilisateur et PPP integre au noyau. La reponse est simple: PPP en
   mode utilisateur traite les donnees entrantes et sortantes en dehors du
   noyau. C'est couteux en terme de copie de donnee entre le noyau et
   l'espace utilisateur mais permet l'implementation de plus de
   fonctionnalites PPP. PPP en mode utilisateur utilise le peripherique tun
   pour communiquer avec le monde exterieur alors que PPP integre au noyau
   utilise le peripherique ppp.

  Note:

   Dans ce chapitre, le programme utilisateur PPP sera simplement appele ppp,
   `a moins qu'il faille explicitement faire la distinction entre lui et
   d'autres logiciels PPP comme pppd. Sauf indications contraires, toutes les
   commandes mentionnees dans ce chapitre doivent etre executees par le
   super-utilisateur root.

28.2. Using User PPP ** Traduction en Cours **

28.3. Utiliser PPP integre au noyau

   Contribution originale de Gennady B. Sorokopud et Robert Huff.

  28.3.1. Configurer PPP integre au noyau

   Avant de configurer PPP sur votre machine, verifiez que pppd est bien dans
   le repertoire /usr/sbin et que le repertoire /etc/ppp existe.

   La commande pppd peut fonctionner selon deux modes:

    1. Comme "client" - si vous desirez connecter votre machine au monde
       exterieur via une liaison PPP serie ou un modem.

    2. Comme "serveur" - si votre machine est sur le reseau, et sert `a y
       connecter d'autres ordinateurs avec PPP.

   Dans les deux cas, vous devrez renseigner un fichier d'options
   (/etc/ppp/options ou ~/.ppprc si vous avez plus d'un utilisateur sur votre
   machine utilisant PPP).

   Vous aurez egalement besoin d'un logiciel "modem/serie" (de preference
   comms/kermit), pour appeler et etablir la connexion avec la machine
   distante.

  28.3.2. Utiliser pppd comme client

   Base sur des informations fournies par Trev Roydhouse.

   Le fichier /etc/ppp/options suivant pourrait etre utilise pour se
   connecter `a la liaison PPP d'un concentrateur Cisco:

 crtscts         # controle de flux materiel
 modem           # liaison par modem
 noipdefault     # adresse IP affectee par le serveur PPP distant
                 # si la machine distante ne vous donne pas d'adresse
                 # IP lors de la negociation IPCP, retirez cette option
 passive         # attendre les paquets LCP
 domain ppp.foo.com      # mettre ici votre nom de domaine

 :<remote_ip>    # mettre ici l'adresse IP de la machine PPP distante
                 # elle servira `a router des paquets via la liaison PPP
                 # si vous n'avez pas precise l'option noipdefault
                 # changez cette ligne en <ip_locale>:<ip_distante>

 defaultroute    # mettre cette ligne si vous voulez que le serveur PPP soit
                 # votre routeur par defaut

   Pour se connecter:

    1. Appelez la machine distante en utilisant kermit (ou un autre programme
       pour modem), puis entrez votre nom d'utilisateur et mot de passe (ou
       ce qu'il faut pour activer PPP sur la machine distante).

    2. Quittez kermit (sans raccrocher la ligne).

    3. Entrez la commande suivante:

 # /usr/src/usr.sbin/pppd.new/pppd /dev/tty01 19200

       Assurez-vous d'utiliser la vitesse et le nom de peripherique adequats.

   Votre ordinateur est maintenant connecte via PPP. Si la connexion echoue,
   vous pouvez ajouter l'option debug au fichier /etc/ppp/options, et
   consulter les messages sur la console pour tracer le probleme.

   La procedure /etc/ppp/pppup ci-dessous effectuera automatiquement ces
   trois etapes:

 #!/bin/sh
 ps ax |grep pppd |grep -v grep
 pid=`ps ax |grep pppd |grep -v grep|awk '{print $1;}'`
 if [ "X${pid}" != "X" ] ; then
         echo 'arret de pppd, PID=' ${pid}
         kill ${pid}
 fi
 ps ax |grep kermit |grep -v grep
 pid=`ps ax |grep kermit |grep -v grep|awk '{print $1;}'`
 if [ "X${pid}" != "X" ] ; then
         echo 'arret de kermit, PID=' ${pid}
         kill -9 ${pid}
 fi

 ifconfig ppp0 down
 ifconfig ppp0 delete

 kermit -y /etc/ppp/kermit.dial
 pppd /dev/tty01 19200

   /etc/ppp/kermit.dial est une procedure kermit qui appelle et fournit
   toutes les informations d'authentification necessaires `a la machine
   distante (un exemple d'une telle procedure est donne `a la fin de ce
   document).

   Utilisez la procedure /etc/ppp/pppdown suivante pour terminer la session
   PPP et vous deconnecter:

 #!/bin/sh
 pid=`ps ax |grep pppd |grep -v grep|awk '{print $1;}'`
 if [ X${pid} != "X" ] ; then
         echo 'arret de pppd, PID=' ${pid}
         kill -TERM ${pid}
 fi

 ps ax |grep kermit |grep -v grep
 pid=`ps ax |grep kermit |grep -v grep|awk '{print $1;}'`
 if [ "X${pid}" != "X" ] ; then
         echo 'arret de kermit, PID=' ${pid}
         kill -9 ${pid}
 fi

 /sbin/ifconfig ppp0 down
 /sbin/ifconfig ppp0 delete
 kermit -y /etc/ppp/kermit.hup
 /etc/ppp/ppptest

   Verifiez si pppd tourne toujours en lanc,ant la procedure
   /usr/etc/ppp/ppptest, qui devrait ressembler `a ceci:

 #!/bin/sh
 pid=`ps ax| grep pppd |grep -v grep|awk '{print $1;}'`
 if [ X${pid} != "X" ] ; then
         echo 'pppd actif: PID=' ${pid-NONE}
 else
         echo 'Pas de pppd en cours d'execution.'
 fi
 set -x
 netstat -n -I ppp0
 ifconfig ppp0

   Pour raccrocher la ligne, executez /etc/ppp/kermit.hup, qui devrait
   contenir:

 set line /dev/tty01     ; mettre ici le peripherique pour votre modem
 set speed 19200
 set file type binary
 set file names literal
 set win 8
 set rec pack 1024
 set send pack 1024
 set block 3
 set term bytesize 8
 set command bytesize 8
 set flow none

 pau 1
 out +++
 inp 5 OK
 out ATH0\13
 echo \13
 exit

   Voici une autre methode qui utilise chat au lieu de kermit.

   Les deux fichiers suivants suffisent `a etablir une connexion avec pppd.

   /etc/ppp/options:

 /dev/cuaa1 115200

 crtscts         # controle de flux materiel
 modem           # liaison par modem
 connect "/usr/bin/chat -f /etc/ppp/login.chat.script"
 noipdefault     # adresse IP affectee par le serveur PPP distant
                 # si la machine distante ne vous donne pas d'adresse
                 # IP lors de la negociation IPCP, retirer cette option
 passive         # attendre les paquets LCP
 domain <your.domain>    # mettre ici votre nom de domaine

 :               # mettre ici l'adresse IP de la machine PPP distante
                 # elle servira `a router des paquets via la liaison PPP
                 # si vous n'avez pas precise l'option noipdefault
                 # modifier cette ligne en <ip_locale>:<ip_distante>

 defaultroute    # mettre cette ligne si vous voulez que le serveur PPP soit
                 # votre routeur par defaut

   /etc/ppp/login.chat.script:

  Note:

   Ce qui suit doit etre tape sur une seule ligne.

 ABORT BUSY ABORT 'NO CARRIER' "" AT OK ATDT<numero_de_telephone>
   CONNECT "" TIMEOUT 10 ogin:-\\r-ogin: <nom_d_utilisateur>
   TIMEOUT 5 sword: <mot_de_passe>

   Une fois que ces fichiers sont installes et correctement modifies, tout ce
   dont vous avez besoin de faire est de lancer pppd, comme suit:

 # pppd

  28.3.3. Utiliser pppd comme serveur

   Le contenu du fichier /etc/ppp/options devrait etre semblable `a ce qui
   suit:

 crtscts                         # controle de flux materiel
 netmask 255.255.255.0           # masque de sous-reseau (facultatif)
 192.114.208.20:192.114.208.165  # adresses IP des machines locales et distantes
                                 # l'adresse locale ne doit pas etre la meme que
                                 # celle que vous avez assignee `a l'interface
                                 # Ethernet (ou autre) de la machine.
                                 # l'adresse IP de la machine distante est
                                 # l'adresse IP qui lui sera affectee
 domain ppp.foo.com              # votre nom de domaine
 passive                         # attendre LCP
 modem                           # liaison modem

   La procedure /etc/ppp/pppserv ci-dessous demandera `a pppd de se comporter
   comme un serveur:

 #!/bin/sh
 ps ax |grep pppd |grep -v grep
 pid=`ps ax |grep pppd |grep -v grep|awk '{print $1;}'`
 if [ "X${pid}" != "X" ] ; then
         echo 'arret de pppd, PID=' ${pid}
         kill ${pid}
 fi
 ps ax |grep kermit |grep -v grep
 pid=`ps ax |grep kermit |grep -v grep|awk '{print $1;}'`
 if [ "X${pid}" != "X" ] ; then
         echo 'arret de kermit, PID=' ${pid}
         kill -9 ${pid}
 fi

 # reinitialiser l'interface ppp
 ifconfig ppp0 down
 ifconfig ppp0 delete

 # activer le mode reponse automatique
 kermit -y /etc/ppp/kermit.ans

 # lancer ppp
 pppd /dev/tty01 19200

   Utilisez cette procedure /etc/ppp/pppservdown pour arreter le serveur:

 #!/bin/sh
 ps ax |grep pppd |grep -v grep
 pid=`ps ax |grep pppd |grep -v grep|awk '{print $1;}'`
 if [ "X${pid}" != "X" ] ; then
         echo 'arret de pppd, PID=' ${pid}
         kill ${pid}
 fi
 ps ax |grep kermit |grep -v grep
 pid=`ps ax |grep kermit |grep -v grep|awk '{print $1;}'`
 if [ "X${pid}" != "X" ] ; then
         echo 'arret de kermit, PID=' ${pid}
         kill -9 ${pid}
 fi
 ifconfig ppp0 down
 ifconfig ppp0 delete

 kermit -y /etc/ppp/kermit.noans

   La procedure kermit ci-dessous (/etc/ppp/kermit.ans) activera ou
   desactivera le mode reponse automatique de votre modem:

 set line /dev/tty01
 set speed 19200
 set file type binary
 set file names literal
 set win 8
 set rec pack 1024
 set send pack 1024
 set block 3
 set term bytesize 8
 set command bytesize 8
 set flow none

 pau 1
 out +++
 inp 5 OK
 out ATH0\13
 inp 5 OK
 echo \13
 out ATS0=1\13   ; remplacer cela par ATS0=0\13 si vous voulez desactiver
                 ; le mode reponse automatique
 inp 5 OK
 echo \13
 exit

   Une procedure nommee /etc/ppp/kermit.dial est utilisee pour appeler et
   s'authentifier sur la machine distante. Vous devrez l'adapter `a vos
   besoins. Mettez-y votre nom d'utilisateur et votre mot de passe; vous
   devrez egalement modifier les entrees en fonctions des reponses que vous
   envoient votre modem et la machine distante.

 ;
 ; mettre ici la liaison serie `a laquelle est raccorde le modem:
 ;
 set line /dev/tty01
 ;
 ; mettre ici la vitesse du modem:
 ;
 set speed 19200
 set file type binary            ; transfert 8 bits
 set file names literal
 set win 8
 set rec pack 1024
 set send pack 1024
 set block 3
 set term bytesize 8
 set command bytesize 8
 set flow none
 set modem hayes
 set dial hangup off
 set carrier auto                ; puis SET CARRIER si necessaire,
 set dial display on             ; puis SET DIAL si necessaire,
 set input echo on
 set input timeout proceed
 set input case ignore
 def \%x 0                       ; compteur d'ouverture de session
 goto slhup

 :slcmd                          ; mettre le modem en mode commande
 echo Put the modem in command mode.
 clear                           ; vider le tampon d'entree
 pause 1
 output +++                      ; sequence d'echappement Hayes
 input 1 OK\13\10                ; attendre OK
 if success goto slhup
 output \13
 pause 1
 output at\13
 input 1 OK\13\10
 if fail goto slcmd              ; si le modem ne repond pas OK, reessayer

 :slhup                          ; raccrocher la ligne
 clear                           ; vider le tampon d'entree
 pause 1
 echo Hanging up the phone.
 output ath0\13                  ; commande Hayes pour raccrocher
 input 2 OK\13\10
 if fail goto slcmd              ; si pas de reponse OK, passer le modem en mode commande

 :sldial                         ; composer le numero
 pause 1
 echo Dialing.
 output atdt9,550311\13\10       ; mettre ici le numero de telephone
 assign \%x 0                    ; mettre le compteur `a zero

 :look
 clear                           ; vider le tampon d'entree
 increment \%x                   ; compter les secondes
 input 1 {CONNECT }
 if success goto sllogin
 reinput 1 {NO CARRIER\13\10}
 if success goto sldial
 reinput 1 {NO DIALTONE\13\10}
 if success goto slnodial
 reinput 1 {\255}
 if success goto slhup
 reinput 1 {\127}
 if success goto slhup
 if < \%x 60 goto look
 else goto slhup

 :sllogin                        ; ouverture de session
 assign \%x 0                    ; mettre le compteur `a zero
 pause 1
 echo Looking for login prompt.

 :slloop
 increment \%x                   ; compter les secondes
 clear                           ; vider le tampon d'entree
 output \13
 ;
 ; put your expected login prompt here:
 ;
 input 1 {Username: }
 if success goto sluid
 reinput 1 {\255}
 if success goto slhup
 reinput 1 {\127}
 if success goto slhup
 if < \%x 10 goto slloop         ; essayer 10 fois d'obtenir une invite de session
 else goto slhup                 ; raccrocher et recommencer apres 10 echecs

 :sluid
 ;
 ; mettre ici votre nom d'utilisateur:
 ;
 output nom-d-utilisateur-ppp\13
 input 1 {Password: }
 ;
 ; mettre ici votre mot de passe:
 ;
 output mot-de-passe-ppp\13
 input 1 {Entering SLIP mode.}
 echo
 quit

 :slnodial
 echo \7Pas de tonalite.  Verifiez votre ligne telephonique!\7
 exit 1

 ; local variables:
 ; mode: csh
 ; comment-start: "; "
 ; comment-start-skip: "; "
 ; end:

28.4. Utiliser PPP sur Ethernet (PPPoE)

   Contribution de (d'apres
   http://node.to/freebsd/how-tos/how-to-freebsd-pppoe.html)Jim Mock.

   Cette section decrit comment configurer PPP sur Ethernet (PPPoE).

  28.4.1. Configuration du noyau

   Il n'est plus du tout necessaire de configurer le noyau pour utiliser
   PPPoE. Si le support netgraph necessaire n'est pas compile dans le noyau,
   il sera charge dynamiquement par ppp.

  28.4.2. Renseigner ppp.conf

   Voici un exemple de fichier ppp.conf operationnel:

 default:
   set log Phase tun command # vous pouvez detailler plus les traces si vous le desirez
   set ifaddr 10.0.0.1/0 10.0.0.2/0

 nom_du_fournisseur_d'acces:
   set device PPPoE:xl1 # remplacez xl1 par votre peripherique Ethernet
   set authname VOTRENOMDUTILISATEUR
   set authkey VOTREMOTDEPASSE
   set dial
   set login
   add default HISADDR

  28.4.3. Executer ppp

   En tant que root, vous pouvez lancer:

 # ppp -ddial nom_du_fournisseur_d'acces

  28.4.4. Lancer ppp au demarrage

   Ajoutez ce qui suit `a votre fichier /etc/rc.conf:

 ppp_enable="YES"
 ppp_mode="ddial"
 ppp_nat="YES"   # si vous voulez activer NAT pour votre reseau local, sinon NO
 ppp_profile="nom_du_fournisseur_d'acces"

  28.4.5. Utilisation d'une etiquette de service PPPoE

   Parfois il sera necessaire d'utiliser une etiquette de service pour
   etablir votre connexion. Les etiquettes de service sont employees pour
   faire la distinction entre differents serveurs PPPoE attaches `a un reseau
   donne.

   Vous devez avoir l'information concernant l'etiquette de service dans la
   documentation fournie par votre fournisseur d'acces. Si vous ne pouvez la
   trouver, contactez le support technique de votre fournisseur d'acces
   Internet.

   En dernier ressort, vous pourrez essayer la methode suggeree par le
   programme Roaring Penguin PPPoE qui peut-etre trouve dans le catalogue des
   logiciels portes. Gardez cependant `a l'esprit, que cela peut deprogrammer
   votre modem et le rendre inutilisable, aussi reflechissez `a deux fois
   avant de le faire. Installez simplement le logiciel fourni avec le modem
   par votre fournisseur d'acces. Ensuite accedez au menu Systeme du
   programme. Le nom de votre profil devrait y figurer. C'est habituellement
   le nom du FAI.

   Le nom du profil (etiquette de service) sera utilise dans l'entree de
   configuration PPPoE dans le fichier ppp.conf dans la partie fournisseur
   d'acces de la commande set device (voir la page de manuel ppp(8) pour plus
   de details). Cela devrait ressembler `a ceci:

 set device PPPoE:xl1:FAI

   N'oubliez pas de changer xl1 pour le peripherique correct correspondant `a
   votre carte Ethernet.

   N'oubliez pas de changer FAI par le profil que vous avez determine
   ci-dessus.

   Pour une information supplementaire, consultez:

     * Cheaper Broadband with FreeBSD on DSL par Renaud Waldura.

     * Nutzung von T-DSL und T-Online mit FreeBSD par Udo Erdelhoff (en
       allemand).

  28.4.6. PPPoE avec un modem ADSL 3Com(R) HomeConnect(R) Dual Link

   Ce modem ne respecte pas la RFC 2516 (A Method for transmitting PPP over
   Ethernet (PPPoE), redigee par L. Mamakos, K. Lidl, J. Evarts, D. Carrel,
   D. Simone, et R. Wheeler). Au lieu de cela des codes differents pour les
   types de paquets sont utilises pour les frames Ethernet. Veuillez vous
   plaindre aupres de 3Com si vous pensez que le modem devrait respecter la
   specification PPPoE.

   Afin de permettre `a FreeBSD de communiquer avec ce peripherique, un
   parametre sysctl doit etre configure. Cela peut etre effectue de maniere
   automatique au demarrage en renseignant le fichier /etc/sysctl.conf:

 net.graph.nonstandard_pppoe=1

   ou peut etre parametre pour prendre immediatement effet avec la commande:

 # sysctl net.graph.nonstandard_pppoe=1

   Malheureusement, parce que c'est un parametrage concernant l'integralite
   du systeme, il n'est pas possible de communiquer en meme temps avec un
   client ou un serveur PPPoE normal et un modem ADSL 3Com(R) HomeConnect(R).

28.5. Utiliser PPP sur ATM (PPPoA)

   Ce qui suit decrit comment configurer PPP sur ATM (PPPoA). PPPoA est tres
   populaire parmi les fournisseurs d'acces DSL europeens.

  28.5.1. Utiliser PPPoA avec le modem Alcatel SpeedTouch(TM) USB

   Le support PPPoA pour ce peripherique est fourni sous la forme d'un
   logiciel porte sous FreeBSD car le "firmware" est distribue sous l'accord
   de licence d'Alcatel et ne peut etre redistribue librement avec le systeme
   de base de FreeBSD.

   Pour installer le logiciel, utilisez simplement le catalogue des logiciels
   portes. Installez le logiciel porte net/pppoa et suivez les instructions
   fournies avec.

   Comme de nombreux peripheriques, le modem USB Alcatel SpeedTouch(TM) a
   besoin de charger un "firmware" `a partir de l'ordinateur hote pour operer
   correctement. Il est possible d'automatiser ce processus sous FreeBSD de
   maniere `a ce que ce transfert ait lieu des que le peripherique est
   branche dans un port USB. L'information suivante peut etre ajoutee au
   fichier /etc/usbd.conf pour autoriser ce transfert automatique de
   "firmware". Ce fichier doit etre edite en tant que super-utilisateur.

 device "Alcatel SpeedTouch USB"
     devname "ugen[0-9]+"
     vendor 0x06b9
     product 0x4061
     attach "/usr/local/sbin/modem_run -f /usr/local/libdata/mgmt.o"

   Pour activer le "daemon" USB, usbd, ajoutez la ligne suivante dans le
   fichier /etc/rc.conf:

 usbd_enable="YES"

   Il est egalement possible de parametrer ppp pour se connecter au
   demarrage. Pour cela ajoutez les lignes suivantes au fichier /etc/rc.conf.
   Encore une fois, vous devrez etre attache sous l'utilisateur root pour
   effectuer ces ajouts.

 ppp_enable="YES"
 ppp_mode="ddial"
 ppp_profile="adsl"

   Pour que cela fonctionne correctement, vous devrez utiliser le fichier
   d'exemple ppp.conf qui est fourni avec le logiciel porte net/pppoa.

  28.5.2. Utiliser mpd

   Vous pouvez utiliser mpd pour vous connecter `a differents services, en
   particulier aux services PPTP. Vous trouverez mpd dans le catalogue des
   logiciels portes, net/mpd. De nombreux modems ADSL demandent `a ce qu'un
   tunnel PPTP soit cree entre le modem et l'ordinateur, le SpeedTouch(TM)
   Home d'Alcatel en fait partie.

   Vous devez tout d'abord installer le logiciel porte, ensuite vous pouvez
   configurer mpd selon vos besoins et les parametres propres au fournisseur
   d'acces. Le logiciel porte place un ensemble de fichiers de configuration
   tres bien commentes dans le repertoire PREFIX/etc/mpd/. Notez qu'ici
   PREFIX represente le repertoire dans lequel les logiciels portes sont
   installes, par defaut le repertoire /usr/local/. Un guide complet pour la
   configuration de mpd est disponible dans le format HTML, une fois que le
   logiciel a ete installe. Il se trouve dans le repertoire
   PREFIX/share/doc/mpd/. Voici un exemple de configuration pour se connecter
   `a un service ADSL `a l'aide de mpd. La configuration est separee en deux
   fichiers, le premier est mpd.conf:

 default:
     load adsl

 adsl:
     new -i ng0 adsl adsl
     set bundle authname username 1
     set bundle password password 2
     set bundle disable multilink

     set link no pap acfcomp protocomp
     set link disable chap
     set link accept chap
     set link keep-alive 30 10

     set ipcp no vjcomp
     set ipcp ranges 0.0.0.0/0 0.0.0.0/0

     set iface route default
     set iface disable on-demand
     set iface enable proxy-arp
     set iface idle 0

     open

   1   Le nom d'utilisateur utilise pour vous identifier aupres de votre FAI. 
   2   Le mot de passe utilise pour vous identifier aupres de votre FAI.      

   Le fichier mpd.links contient les informations concernant la liaison, ou
   les liaisons, que vous souhaitez etablir. En exemple de fichier mpd.links
   accompagnant l'exemple precedent est donne ci-dessous:

 adsl:
     set link type pptp
     set pptp mode active
     set pptp enable originate outcall
     set pptp self 10.0.0.1 1
     set pptp peer 10.0.0.138 2

   1 L'adresse IP de la machine FreeBSD `a partir de laquelle vous utiliserez 
     mpd.                                                                     
   2 L'adresse IP de votre modem ADSL. Pour le SpeedTouch(TM) Home d'Alcatel  
     cette adresse est par defaut 10.0.0.138.                                 

   Il est possible d'initialiser aisement une connexion en tapant la commande
   suivante en tant que root:

 # mpd -b adsl

   Vous pouvez voir quel est l'etat de votre connexion `a l'aide de la
   commande suivante:

 % ifconfig ng0
 ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> mtu 1500
      inet 216.136.204.117 --> 204.152.186.171 netmask 0xffffffff

   L'utilisation de mpd est la methode recommandee de connexion `a un service
   ADSL sous FreeBSD.

  28.5.3. Utiliser pptpclient

   Il est egalement possible d'utiliser FreeBSD pour se connecter `a d'autres
   service PPPoA en utilisant net/pptpclient.

   Pour utiliser net/pptpclient pour vous connecter `a un service DSL,
   installez le logiciel porte ou le paquetage correspondant et editez votre
   fichier /etc/ppp/ppp.conf. Vous aurez besoin des droits de
   super-utilisateur pour effectuer ces deux operations. Un exemple de
   fichier ppp.conf est donne plus bas. Pour plus d'information sur les
   options du fichier ppp.conf, consultez la page de manuel de ppp, ppp(8).

 adsl:
  set log phase chat lcp ipcp ccp tun command
  set timeout 0
  enable dns
  set authname username 1
  set authkey password 2
  set ifaddr 0 0
  add default HISADDR

   1   Le nom d'utilisateur de votre compte chez le fournisseur d'acces DSL.  
   2   Le mot de passe de votre compte.                                       

  Avertissement:

   Etant donne que vous devez mettre le mot de passe de votre compte en clair
   dans le fichier ppp.conf, vous devez vous assurer que personne d'autre ne
   puisse lire le contenu de ce fichier. La serie de commandes suivante
   s'assurera que ce fichier n'est lisible que par root. Referez-vous aux
   pages de manuel de chmod(1) et chown(8) pour plus d'informations.

 # chown root:wheel /etc/ppp/ppp.conf
 # chmod 600 /etc/ppp/ppp.conf

   Cela creera un tunnel pour une session PPP vers votre routeur DSL. Les
   modems DSL Ethernet ont une adresse IP pour le reseau local pre-configuree
   `a laquelle vous vous connectez. Dans le cas du modem SpeedTouch(TM) Home
   d'Alcatel cette adresse est 10.0.0.138. La documentation de votre routeur
   devrait mentionner quelle adresse utilise votre peripherique. Pour creer
   le tunnel et demarrer une session PPP executez la commande suivante:

 # pptp address adsl

  Astuce:

   Vous pourrez ajouter un "et commercial" ("&") `a la fin de la commande
   precedente car sinon pptp ne vous rendra pas la main.

   Un peripherique virtuel de tunnel (tun) sera cree pour la communication
   entre les processus pptp et ppp. Une fois retourne `a l'invite, ou que le
   processus pptp a confirme la connexion, vous pouvez examiner le tunnel de
   cette maniere:

 % ifconfig tun0
 tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500
         inet 216.136.204.21 --> 204.152.186.171 netmask 0xffffff00
         Opened by PID 918

   Si vous n'etes pas en mesure de vous connecter, verifiez la configuration
   de votre routeur qui est generalement accessible par telnet ou avec un
   navigateur web. Si le probleme persiste, vous devrez examiner la sortie de
   la commande pptp et le contenu du fichier de trace de ppp,
   /var/log/ppp.log `a la recherche d'indices.

28.6. Utiliser SLIP

   Contribution originale de Satoshi Asami.
   Avec la participation de Guy Helmer et Piero Serini.

  28.6.1. Configurer un client SLIP

   Ce qui suit decrit une maniere de configurer une machine FreeBSD pour
   utiliser SLIP sur un reseau ou les noms de machine sont statiques. Si le
   nom de machine est affecte dynamiquement (votre adresse change `a chaque
   connexion), vous devrez probablement utiliser une methode plus
   sophistiquee.

   Tout d'abord, determinez sur quel port serie votre modem est connecte. De
   nombreuses personnes utilisent un lien symbolique, comme /dev/modem, pour
   pointer vers le nom reel du peripherique, /dev/cuaaN (ou /dev/cuadN sous
   FreeBSD 6.X). Ceci vous permet de faire abstraction du veritable nom du
   peripherique meme si vous deplacez le modem vers un autre port. Cela evite
   le cote penible de devoir modifier un certain nombre de fichiers dans le
   repertoire /etc et les fichiers .kermrc pour l'ensemble du systeme!

  Note:

   /dev/cuaa0 (ou /dev/cuad0 sous FreeBSD 6.X) represente COM1, cuaa1 (ou
   /dev/cuad1) COM2, etc.

   Assurez-vous d'avoir dans votre fichier de configuration du noyau ce qui
   suit:

 device   sl

   Sous FreeBSD 4.X, utilisez `a la place la ligne suivante:

 pseudo-device   sl      1

   Cette configuration fait partie du noyau GENERIC, aussi cela ne devrait
   pas etre un probleme `a moins que vous ne l'ayez effacee.

    28.6.1.1. Ce que vous n'aurez `a faire qu'une seule fois

    1. Ajoutez votre machine, la passerelle et les serveurs de noms de
       domaines `a votre fichier /etc/hosts. Le notre ressemble `a ceci:

 127.0.0.1               localhost loghost
 136.152.64.181          water.CS.Example.EDU water.CS water
 136.152.64.1            inr-3.CS.Example.EDU inr-3 slip-gateway
 128.32.136.9            ns1.Example.EDU ns1
 128.32.136.12           ns2.Example.EDU ns2

    2. Assurez-vous que hosts apparait avant bind dans votre fichier
       /etc/host.conf sous les versions de FreeBSD anterieures `a 5.0. Depuis
       FreeBSD 5.0, le systeme utilise `a la place le fichier
       /etc/nsswitch.conf, verifiez que files est avant dns dans la ligne
       hosts de ce fichier. Sans ces parametres, il peut se passer des choses
       bizarres.

    3. Editez le fichier /etc/rc.conf.

         1. Definissez votre nom de machine en editant la ligne:

 hostname="myname.my.domain"

            Le nom Internet complet de la machine doit etre utilise ici.

         2. Ajoutez sl0 `a la liste des interfaces reseau en modifiant la
            ligne:

 network_interfaces="lo0"

            en:

 network_interfaces="lo0 sl0"

         3. Definissez les parametres de configuration de sl0 en ajoutant une
            ligne:

 ifconfig_sl0="inet ${hostname} slip-gateway netmask 0xffffff00 up"

         4. Indiquez la passerelle par defaut en modifiant la ligne:

 defaultrouter="NO"

            en:

 defaultrouter="slip-gateway"

    4. Creez un fichier /etc/resolv.conf qui contient:

 domain CS.Example.EDU
 nameserver 128.32.136.9
 nameserver 128.32.136.12

       Comme vous pouvez le voir, ceci definit les serveurs de noms de
       domaines. Bien entendu, les noms de domaines et les adresses
       dependront de votre environnement.

    5. Donnez des mots de passe pour les utilisateurs root et toor (et `a
       tous les autres comptes qui n'auraient pas de mot de passe).

    6. Redemarrez votre machine et verifiez qu'elle a bien le nom voulu.

    28.6.1.2. Etablir une connexion SLIP

    1. Telephonez, tapez slip `a l'invite, puis entrez votre nom de machine
       et votre mot de passe. Ce que vous devez entrer depend de votre
       environnement. Si vous utilisez Kermit, vous pouvez essayer une
       procedure comme celle-ci:

 # configuration kermit
 set modem hayes
 set line /dev/modem
 set speed 115200
 set parity none
 set flow rts/cts
 set terminal bytesize 8
 set file type binary
 # The next macro will dial up and login
 define slip dial 643-9600, input 10 =>, if failure stop, -
 output slip\x0d, input 10 Username:, if failure stop, -
 output silvia\x0d, input 10 Password:, if failure stop, -
 output ***\x0d, echo \x0aCONNECTED\x0a

       Vous devez, bien evidemment, remplacer le nom d'utilisateur et le mot
       de passe par les votre. Apres cela vous pouvez alors entrer simplement
       slip `a l'invite de Kermit pour vous connecter.

  Note:

       Conserver votre mot de passe en clair dans un fichier quelconque est
       en general une mauvaise idee. Faites-le `a vos risques et perils.

    2. Laissez ensuite Kermit tel quel (vous pouvez le mettre en arriere-plan
       avec Ctrl+z) et en tant que root, tapez:

 # slattach -h -c -s 115200 /dev/modem

       Si vous etes en mesure d'envoyer un ping vers des machines situees de
       l'autre cote du routeur, c'est que vous etes connecte! Si cela ne
       fonctionne pas, vous pouvez essayer l'option -a au lieu de -c en
       argument de slattach.

    28.6.1.3. Comment couper la connexion

   Effectuez ceci:

 # kill -INT `cat /var/run/slattach.modem.pid`

   pour tuer slattach. Gardez `a l'esprit que vous devez avoir les droits du
   super-utilisateur pour faire cela. Revenez ensuite sous kermit (en tapant
   fg si l'avez mis en tache de fond) et quittez-le (q).

   La page de manuel de slattach(8) dit que vous devez employer la commande
   ifconfig sl0 down pour indiquer que l'interface n'est plus active, mais
   cela ne change apparemment rien (les diagnostics donnes par la commande
   ifconfig sl0 restent identiques).

   Il arrive que parfois que votre modem refuse de raccrocher. Dans ce cas,
   relancez kermit et quittez-le de nouveau. Cela fonctionne en general `a la
   seconde tentative.

    28.6.1.4. Depannage

   Si cela ne fonctionne pas, n'hesitez pas `a contacter la liste de
   diffusion freebsd-net. Voici les problemes que certains ont rencontre
   jusqu'ici:

     * Ne pas utiliser l'option -c ou -a avec slattach (Cela ne devrait pas
       poser de probleme, mais des utilisateurs ont signale que l'utilisation
       de cet indicateur a resolu leur probleme).

     * Utiliser s10 au lieu de sl0 (avec certaines polices de caracteres, il
       est parfois difficile de faire la difference).

     * Essayez ifconfig sl0 pour connaitre la configuration de votre
       interface. Vous obtiendrez, par exemple:

 # ifconfig sl0
 sl0: flags=10<POINTOPOINT>
         inet 136.152.64.181 --> 136.152.64.1 netmask ffffff00

     * Si vous obtenez le message d'erreur no route to host lors de
       l'utilisation de ping(8), il se peut qu'il y ait un probleme avec
       votre table de routage. Vous pouvez utiliser la commande netstat -r
       pour afficher les routes actives:

 # netstat -r
 Routing tables
 Destination      Gateway            Flags     Refs     Use  IfaceMTU    Rtt    Netmasks:

 (root node)
 (root node)

 Route Tree for Protocol Family inet:
 (root node) =>
 default          inr-3.Example.EDU  UG          8   224515  sl0 -      -
 localhost.Exampl localhost.Example. UH          5    42127  lo0 -       0.438
 inr-3.Example.ED water.CS.Example.E UH          1        0  sl0 -      -
 water.CS.Example localhost.Example. UGH        34 47641234  lo0 -       0.438
 (root node)

       Les exemples precedents proviennent d'un systeme relativement charge.
       La valeurs sur votre systeme varieront en fonction de l'activite
       reseau.

  28.6.2. Configurer un serveur SLIP

   Ce document donne des indications pour la mise en oeuvre d'un serveur SLIP
   sur un systeme FreeBSD, ce qui signifie generalement configurer votre
   systeme pour ouvrir automatiquement une connexion `a l'ouverture d'une
   session depuis un client SLIP distant.

    28.6.2.1. Prerequis

   Cette section est tres technique, il vous faut donc quelques connaissances
   de base. On supposera que vous connaissez le protocole reseau TCP/IP et,
   en particulier, l'adressage des reseaux et des noeuds, les masques de
   sous-reseau, les sous-reseaux, le routage et les protocoles de routage
   tels que RIP. Ce sont les concepts que vous devez maitriser pour
   configurer les services SLIP sur un serveur de connexions, et si ce n'est
   pas le cas, veuillez lire TCP/IP Network Administration de Craig Hunt chez
   O'Reilly & Associates, Inc. (ISBN 0-937175-82-X), ou les ouvrages de
   Douglas Comer sur le protocole TCP/IP.

   On suppose egalement que vous avez dej`a installe vos modems et configure
   les fichiers systemes appropries pour permettre l'ouverture de session via
   vos modems. Si vous ne l'avez pas encore fait reportez-vous `a la
   Section 27.4, << Dial-in Service >> pour des informations sur la
   configuration des connexions entrantes. Vous pouvez aussi consulter les
   pages de manuel de sio(4) pour plus d'information sur le pilote du port
   serie et ttys(5), gettytab(5), getty(8), & et init(8) en ce qui concerne
   la configuration du systeme pour qu'il autorise les connexions en
   provenance de modems, et peut-etre la page de manuel stty(1) pour des
   informations sur le parametrage des ports serie (comme clocal pour les
   interfaces serie directement connectees).

    28.6.2.2. Rapide vue d'ensemble

   Une configuration typique d'utilisation de FreeBSD comme serveur SLIP
   fonctionne de la maniere suivante: un utilisateur SLIP appelle votre
   serveur SLIP FreeBSD et ouvre une session sous un identifiant utilisateur
   SLIP particulier qui lance /usr/sbin/sliplogin comme interpreteur de
   commandes. Le programme sliplogin consulte le fichier
   /etc/sliphome/slip.hosts `a la recherche d'une ligne correspondant `a cet
   utilisateur particulier, et s'il la trouve, connecte la ligne serie `a une
   interface SLIP disponible et lance ensuite la procedure
   /etc/sliphome/slip.login pour configurer cette interface SLIP.

      28.6.2.2.1. Un exemple d'ouverture de session sur un serveur SLIP

   Par exemple, si Shelmerg etait un identifiant utilisateur SLIP, l'entree
   pour Shelmerg ressemblerait `a ceci:

 Shelmerg:password:1964:89::0:0:Guy Helmer - SLIP:/usr/users/Shelmerg:/usr/sbin/sliplogin

   Quand Shelmerg ouvre une session, sliplogin consulte
   /etc/sliphome/slip.hosts `a la recherche d'une ligne correspondant `a
   l'identifiant de l'utilisateur correspondant; par exemple, il peut y avoir
   dans le fichier /etc/sliphome/slip.hosts la ligne:

 Shelmerg        dc-slip sl-helmer       0xfffffc00                autocomp

   sliplogin trouvera alors cette ligne, affectera la ligne serie `a
   l'interface SLIP suivante,et ensuite executera /etc/sliphome/slip.login
   avec les arguments suivants:

 /etc/sliphome/slip.login 0 19200 Shelmerg dc-slip sl-helmer 0xfffffc00 autocomp

   Si tous se passe bien, /etc/sliphome/slip.login executera un ifconfig sur
   l'interface SLIP que s'est attribue sliplogin (l'interface SLIP 0, dans
   l'exemple ci-dessus, qui est le premier parametre passe `a slip.login)
   pour definir l'adresse IP locale (dc-slip), l'adresse IP de la machine
   distante (sl-helmer), le masque de sous-reseau de l'interface SLIP
   (0xfffffc00), et tout autre indicateur supplementaire (autocomp). Si
   quelque chose se passe mal, sliplogin fournit en general des messages
   d'information via la fonctionnalite de trace du << demon >> syslogd, qui
   les enregistre habituellement dans le fichier /var/log/messages
   (reportez-vous au pages de manuel de syslogd(8) et syslog.conf(5) et
   consultez peut-etre aussi le fichier /etc/syslog.conf pour voir ce que
   trace syslogd et ou il enregistre ces messages.).

    28.6.2.3. Configuration du noyau

   Le noyau par defaut de FreeBSD (GENERIC) fourni le support SLIP (sl(4));
   dans le cas d'un noyau personnalise, vous devez ajouter la ligne suivante
   `a votre fichier de configuration du noyau:

 device   sl

   Sous FreeBSD 4.X, utilisez la ligne suivante:

 pseudo-device   sl      2

  Note:

   Le chiffre en fin de ligne represente le nombre maximum de connexions SLIP
   qui peuvent cohexister. Depuis FreeBSD 5.0, le pilote sl(4) est capable
   d'<< auto-clonage >>.

   Par defaut, votre machine FreeBSD ne transmettra pas les paquets. Si vous
   desirez que votre serveur SLIP FreeBSD agisse en routeur, vous devez
   editer le fichier /etc/rc.conf et positionner la variable gateway_enable
   `a YES.

   Vous devrez ensuite redemarrer pour que les nouveaux parametres prennent
   effet.

   Veuillez vous referer `a la Chapitre 8, Configurer le noyau de FreeBSD sur
   la configuration du noyau pour de l'aide sur ce sujet.

    28.6.2.4. Configuration de sliplogin

   Comme indique plus haut, il y a trois fichiers dans le repertoire
   /etc/sliphome qui servent `a la configuration de /usr/sbin/sliplogin
   (voyez sliplogin(8) pour avoir la page de manuel de sliplogin):
   slip.hosts, definit les utilisateurs SLIP et les adresses IP qui leur sont
   associees, slip.login, qui ne fait en general que configurer l'interface
   SLIP, et (facultatif) slip.logout, qui effectue le travail inverse de
   slip.login quand la connexion serie est terminee.

      28.6.2.4.1. Configuration de slip.hosts

   /etc/sliphome/slip.hosts contient des lignes avec au moins quatre champs
   separes par des espaces:

     * L'identifiant (ID) d'utilisateur SLIP;

     * L'adresse locale (locale au serveur SLIP) de la liaison SLIP;

     * L'adresse de l'autre extremite de la liaison SLIP;

     * Le masque de sous-reseau.

   Les adresses locales et distantes peuvent etre des noms de machines (qui
   seront convertis en adresses IP via /etc/hosts ou par le service de noms
   de domaines, en fonction de ce que contient le fichier /etc/nsswitch.conf,
   ou /etc/host.conf si vous utilisez FreeBSD 4.X), et le masque de
   sous-reseau peut etre un nom qui sera converti en consultant le fichier
   /etc/networks. Par exemple, /etc/sliphome/slip.hosts contiendra:

 #
 # login local-addr      remote-addr     mask            opt1    opt2
 #                                               (normal,compress,noicmp)
 #
 Shelmerg  dc-slip       sl-helmerg      0xfffffc00      autocomp

   La ligne se termine par une ou plusieurs options:

     * normal - pas de compression des en-tetes;

     * compress - compression des en-tetes;

     * autocomp - compression des en-tetes si la machine distante l'autorise;

     * noicmp - interdit les paquets ICMP (de sorte que les paquets
       << ping >> seront ignores au lieu de consommer votre bande passante).

   Le choix des adresses pour les deux extremites des liaisons SLIP depend du
   fait que vous leur dediez un sous-reseau TCP/IP ou que vous comptiez
   utiliser un << proxy ARP >> sur votre serveur SLIP (ce n'est pas un
   << vrai >> proxy ARP, mais c'est la terminologie que nous utiliserons dans
   ce document pour le designer). Si vous n'etes pas sur de la methode `a
   choisir ou de la fac,on d'assigner les adresses IP, referez-vous aux
   ouvrages sur le TCP/IP mentionnes `a section sur les prerequis
   (Section 28.6.2.1, << Prerequis >>) et/ou consultez l'administrateur de
   votre reseau IP.

   Si vous comptez utiliser un sous-reseau IP separe pour vos clients SLIP,
   vous devrez definir l'adresse de sous-reseau `a partir de votre reseau IP
   et attribuer `a chacun de vos clients SLIP une adresse IP sur ce
   sous-reseau. Ensuite, vous devrez probablement configurer sur votre
   routeur IP le plus proche une route statique vers votre sous-reseau SLIP
   via votre serveur SLIP.

   Sinon, si vous avez l'intention d'utiliser la methode du << proxy ARP >>,
   vous devrez assigner `a vos clients SLIP des adresses IP en provenance du
   sous-reseau Ethernet de votre serveur SLIP, et vous devrez egalement
   adapter vos procedures /etc/sliphome/slip.login et
   /etc/sliphome/slip.logout pour qu'elles utilisent arp(8) pour gerer les
   entrees proxy ARP dans la table ARP de votre serveur SLIP.

      28.6.2.4.2. Configuration de slip.login

   Le fichier /etc/sliphome/slip.login ressemble generalement `a ceci:

 #!/bin/sh -
 #
 #       @(#)slip.login  5.1 (Berkeley) 7/1/90

 #
 # procedure generique d'ouverture de session pour
 # une liaison SLIP.  sliplogin l'appelle avec les parametres:
 #      1        2         3        4          5         6     7-n
 # interface vitesse nom adresse-locale adresse-distante masque arg-optionnels
 #
 /sbin/ifconfig sl$1 inet $4 $5 netmask $6

   Ce fichier slip.login ne fait qu'executer ifconfig sur l'interface SLIP
   appropriee avec comme parametres les adresses locales et distantes et le
   masque de sous-reseau de l'interface SLIP.

   Si vous avez choisi d'utiliser la methode du << proxy ARP >> (au lieu
   d'affecter un sous-reseau distinct `a vos clients SLIP), votre fichier
   /etc/sliphome/slip.login devra ressembler `a ceci:

 #!/bin/sh -
 #
 #       @(#)slip.login  5.1 (Berkeley) 7/1/90

 #
 # procedure generique d'ouverture de session pour
 # une liaison SLIP.  sliplogin l'appelle avec les parametres:
 #     1         2    3         4              5           6     7-n
 # interface vitesse nom adresse-locale adresse-distante masque arg-optionnels
 #
 /sbin/ifconfig sl$1 inet $4 $5 netmask $6
 # repondre aux requetes ARP concernant le client SLIP avec notre
 # adresse Ethernet
 /usr/sbin/arp -s $5 00:11:22:33:44:55 pub

   La ligne supplementaire dans ce fichier slip.login, arp -s $5
   00:11:22:33:44:55 pub, cree une entree ARP dans la table ARP du serveur
   SLIP. Cette entree ARP fait que le serveur SLIP repond avec sa propre
   adresse MAC lorsqu'un autre noeud IP du reseau Ethernet demande `a
   dialoguer avec le client SLIP qui possede cette adresse IP.

   Dans l'exemple donne ci-dessus, remplacez l'adresse MAC Ethernet
   (00:11:22:33:44:55) avec l'adresse MAC de la carte Ethernet de votre
   systeme, ou sinon votre << proxy ARP >> ne fonctionnera jamais! Vous
   pouvez determiner l'adresse MAC de votre serveur SLIP en examinant le
   resultat de la commande netstat -i; la seconde ligne doit ressembler `a ce
   qui suit:

 ed0   1500  <Link>0.2.c1.28.5f.4a         191923        0   129457     0   116

   Cela indique que l'adresse MAC Ethernet de ce systeme est
   00:02:c1:28:5f:4a - les points dans les adresses MAC que donne netstat -i
   doivent etre remplaces par des << : >> et il faut ajouter un zero devant
   chaque valeur hexadecimale donnee sur un seul digit pour obtenir des
   adresses dans le format requis par arp(8); consultez la page de manuel
   d'arp(8) pour avoir des informations completes sur ces conventions.

  Note:

   Quand vous creez les fichiers /etc/sliphome/slip.login et
   /etc/sliphome/slip.logout, le bit << executable >> (i.e., chmod 755
   /etc/sliphome/slip.login /etc/sliphome/slip.logout) doit etre positionne,
   ou sinon sliplogin sera incapable d'executer la procedure.

      28.6.2.4.3. Configuration de slip.logout

   /etc/sliphome/slip.logout n'est pas strictement indispensable (`a moins
   que vous n'implementiez un << proxy ARP >>), mais si vous decidez de la
   creer, voici un exemple de procedure slip.logout elementaire:

 #!/bin/sh -
 #
 #       slip.logout

 #
 # procedure generique de fermeture de session pour
 # une liaison SLIP.  sliplogin l'appelle avec les parametres:
 #     1         2    3         4              5           6     7-n
 # interface vitesse nom adresse-locale adresse-distante masque arg-optionnels
 #
 /sbin/ifconfig sl$1 down

   Si vous utilisez la methode << proxy ARP >>, vous voudrez que
   /etc/sliphome/slip.logout supprime l'entree ARP pour le client SLIP:

 #!/bin/sh -
 #
 #       @(#)slip.logout

 #
 # procedure generique de fermeture de session pour
 # une liaison SLIP.  sliplogin l'appelle avec les parametres:
 #     1         2    3         4              5           6     7-n
 # interface vitesse nom adresse-locale adresse-distante masque arg-optionnels
 #
 /sbin/ifconfig sl$1 down
 # Cesser de repondre aux requetes ARP concernant le client SLIP
 /usr/sbin/arp -d $5

   La commande arp -d $5 supprime l'entree ARP que la procedure slip.login
   pour le << proxy ARP >> a ajoute quand le client SLIP a ouvert la session.

   Il n'est pas inutile de repeter: assurez-vous que le bit << executable >>
   de la procedure /etc/sliphome/slip.logout a ete positionne apres que vous
   l'ayez creee (i.e., chmod 755 /etc/sliphome/slip.logout).

    28.6.2.5. A propos du routage

   Si vous n'utilisez pas << proxy ARP >> pour router les paquets entre vos
   clients SLIP et le reste de votre reseau (et peut-etre l'Internet), vous
   devrez probablement ajouter des routes statiques vers le(s) routeur(s) par
   defaut le(s) plus proche(s) pour router le sous-reseau de vos clients SLIP
   via votre serveur SLIP.

      28.6.2.5.1. Routes statiques

   Ajouter des routes statiques vers vos routeurs les plus proches peut etre
   problematique (voire impossible si vous n'avez pas les autorisations
   pour...). Si vous avez un reseau avec plusieurs routeurs, certains d'entre
   eux, tels que les Cisco et les Proteon, devront non seulement etre
   configures pour la route statique vers le sous-reseau SLIP, mais devront
   aussi savoir quelles routes statiques ils doivent annoncer aux autres
   routeurs, donc quelques competences, un peu de depannage ou de
   << bidouille >> pourront etre necessaire pour que vos routes statiques
   fonctionnent.

      28.6.2.5.2. Utiliser GateD(R)

  Note:

   GateD(R) est desormais un logiciel proprietaire et les sources ne seront
   donc plus disponibles (plus d'information sur le site Web de GateD(R)).
   Cette section existe uniquement pour des raisons de compatibilite pour
   ceux qui utilisent encore une ancienne version.

   Une alternative aux maux de tete que provoquent les routes statiques est
   d'installer GateD(R) sur votre serveur SLIP FreeBSD et de le configurer
   pour qu'il utilise les protocoles de routage appropries (RIP/OSPF/BGP/EGP)
   pour annoncer aux autres routeurs votre sous-reseau SLIP. Vous aurez
   besoin de creer un fichier /etc/gated.conf pour configurer GateD(R); voici
   un exemple, semblable `a celui que l'auteur a utilise sur un serveur SLIP
   FreeBSD:

 #
 # fichier de configuration de gated dc.dsu.edu; pour la version
 # 3.5alpha5
 # diffusion des informations RIP pour xxx.xxx.yy via l'interface
 # Ethernet "ed"
 #
 #
 # options de trace
 #
 traceoptions "/var/tmp/gated.output" replace size 100k files 2 general ;

 rip yes {
   interface sl noripout noripin ;
   interface ed ripin ripout version 1 ;
   traceoptions route ;
 } ;

 #
 # Activer un certain nombre d'informations de trace sur l'interface
 # au noyau:
 kernel {
   traceoptions remnants request routes info interface ;
 } ;

 #
 # Propager la route vers xxx.xxx.yy via l'Ethernet interface et RIP
 #

 export proto rip interface ed {
   proto direct {
       xxx.xxx.yy mask 255.255.252.0 metric 1; # SLIP connections
   } ;
 } ;

 #
 # Accepter les routes de RIP via les interfaces Ethernet "ed"

 import proto rip interface ed {
   all ;
 } ;

   L'exemple de fichier gated.conf ci-dessus diffuse l'information de routage
   concernant le sous-reseau SLIP xxx.xxx.yy via RIP sur l'interface
   Ethernet; si vous utilisez un pilote de peripherique Ethernet different du
   pilote ed, vous devrez modifier en consequence les references `a
   l'interface ed. Ce fichier d'exemple active egalement les journaux sur
   /var/tmp/gated.output pour pouvoir deboguer le fonctionnement de GateD(R);
   vous pouvez desactiver ces options de trace si GateD(R) fonctionne
   correctement pour vous. Vous devrez remplacer xxx.xxx.yy par l'adresse
   reseau de votre propre sous-reseau SLIP (assurez-vous de remplacer
   egalement le masque de sous-reseau dans la clause proto direct).

   Une fois que vous avez installe et configure GateD(R) sur votre systeme,
   vous devrez indiquer aux procedures de demarrage de FreeBSD de lancer
   GateD(R) `a la place de routed. La maniere la plus simple de faire cela
   est de positionner les variables router et router_flags dans le fichier
   /etc/rc.conf. Veuillez consulter la page de manuel de GateD(R) pour des
   informations sur les parametres en ligne de commande.

Chapitre 29. Courrier electronique

   Contribution originale de Bill Lloyd.
   Reecrit par Jim Mock.
   Table des matieres

   29.1. Synopsis

   29.2. Utilisation du courrier electronique

   29.3. Configuration de sendmail

   29.4. Changer votre agent de transfert de courrier

   29.5. Depannage

   29.6. Sujets avances

   29.7. SMTP avec UUCP

   29.8. Configuration pour l'envoi seul

   29.9. Utiliser le courrier electronique avec une connexion temporaire

   29.10. Authentification SMTP

   29.11. Clients de messagerie

   29.12. Utiliser fetchmail

   29.13. Utiliser procmail

   Version franc,aise de Marc Fonvieille <blackend@FreeBSD.org>.

29.1. Synopsis

   Le "courrier electronique", plus connu sous le nom d'email, est une des
   formes de communication les plus utilisees aujourd'hui. Ce chapitre
   fournit une introduction sur comment faire fonctionner un serveur de
   courrier electronique sous FreeBSD, et comment envoyer et recevoir du
   courrier electronique sous FreeBSD. Cependant, cela n'est pas un document
   de reference, en fait de nombreux elements importants ont ete omis. Pour
   une couverture plus complete du sujet, le lecteur doit se referer aux
   nombreux ouvrages excellents listes dans l'Annexe B, Bibliographie.

   Apres la lecture de ce chapitre, vous connaitrez:

     * Quels composants logiciel sont impliques dans l'envoi et la reception
       du courrier electronique.

     * Ou se trouvent sous FreeBSD les fichiers de configuration de base de
       sendmail.

     * La difference entre boites aux lettres distantes et boites aux lettres
       locale.

     * Comment empecher les personnes `a l'origine de courriers non
       sollicites (spam) d'utiliser votre serveur de courrier comme relais.

     * Comment installer et configurer un agent de transfert de courrier
       alternatif sur votre systeme, en remplacement de sendmail.

     * Comment depanner les problemes courants des serveurs de courrier
       electronique.

     * Comment utiliser le protocole SMTP avec UUCP.

     * Comment utiliser le courrier electronique avec une connexion
       temporaire.

     * Comment configurer l'authentification SMTP pour une securite accrue.

     * Comment installer et utiliser un client de messagerie, comme mutt pour
       envoyer et lire du courrier electronique.

     * Comme recuperer votre courrier electronique `a partir d'un serveur POP
       ou IMAP distant.

     * Comment appliquer automatiquement des regles de filtrage au courrier
       entrant.

   Avant de lire ce chapitre, vous devrez:

     * Configurer correctement votre connexion reseau (Chapitre 32,
       Administration reseau avancee).

     * Configurer correctement les informations DNS pour votre serveur de
       courrier (Chapitre 32, Administration reseau avancee).

     * Savoir comment installer des logiciels tiers (Chapitre 4, Installer
       des applications: les logiciels pre-compiles et les logiciels portes).

29.2. Utilisation du courrier electronique

   Il y a cinq elements majeurs impliques dans un echange de courrier. Ce
   sont: le programme utilisateur, le "daemon" serveur de courrier, le
   serveur DNS, une boite aux lettres distante ou locale, et bien sur le le
   serveur de courrier lui-meme .

  29.2.1. Le programme utilisateur

   Cela inclut des programmes en ligne de commande comme mutt, pine, elm, et
   mail, et des programmes graphiques comme balsa, xfmail pour juste en
   nommer quelques-uns, ou quelque chose de plus << sophisticated >> comme un
   navigateur WWW. Ces programmes transmettent simplement toutes les
   transactions concernant le courrier electronique au serveur de courrier
   local, soit en invoquant un des "daemons" serveurs (Agents de transfert de
   courrier) disponibles, soit via TCP.

  29.2.2. Le "daemon" serveur de courrier

   FreeBSD est fourni par defaut avec sendmail, mais supporte egalement de
   nombreux autres "daemons" serveurs de courrier, parmi lesquels:

     * exim;

     * postfix;

     * qmail.

   Le serveur a generalement deux fonctions-il est responsable de la
   reception du courrier comme celle de son envoi. Il n'est cependant pas
   responsable de la recuperation du courrier electronique en utilisant des
   protocoles comme POP ou IMAP pour lire votre courrier, il ne vous permet
   pas non plus la connexion `a des boites aux lettres locales de type mbox
   ou maildir. Vous avez besoin d'un "daemon" supplementaire pour cela.

  Avertissement:

   Les anciennes version de sendmail ont de serieux problemes de securite qui
   peuvent avoir pour consequence l'obtention d'un acces local et/ou `a
   distance `a votre machine pour une personne malveillante. Verifiez que
   vous utilisez une version `a jour pour eviter de tels problemes. Vous avez
   cependant toujours la possibilite d'installer un autre MTA `a partir du
   catalogue des logiciels portes de FreeBSD.

  29.2.3. Courrier electronique et DNS

   Le systeme de noms de domaines (DNS) et son "daemon" named jouent un role
   important dans la transmission du courrier electronique. Afin de delivrer
   du courrier de votre site `a un autre, le serveur recherchera le site
   distant dans la base de donnees DNS pour determiner la machine qui recevra
   le courrier electronique pour le destinataire. Ce processus intervient
   egalement quand un courrier electronique est envoye `a partir d'une
   machine distante vers votre serveur de courrier.

   Le DNS gere la correspondance entre nom de machine et adresse IP, et le
   stockage des informations specifiques `a la distribution du courrier
   electronique, connues sous le nom d'enregistrements MX. L'enregistrement
   MX ("Mail eXchanger") definit la machine, ou les machines, qui recevra le
   courrier pour un domaine particulier. Si vous n'avez pas d'enregistrement
   MX pour votre machine ou votre domaine, le courrier sera directement
   envoye `a votre machine `a condition que vous ayez un enregistrement A
   faisant correspondre `a votre nom de machine votre adresse IP.

   Vous pouvez obtenir les enregistrements MX pour n'importe quel domaine en
   utilisant la commande host(1) est presentee ci-dessous:

 % host -t mx FreeBSD.org
 FreeBSD.org mail is handled (pri=10) by mx1.FreeBSD.org

  29.2.4. Reception de courrier

   La reception du courrier pour votre domaine se fait par le serveur de
   courrier. Il collectera le courrier qui est envoye `a destination de votre
   domaine et le stockera soit sous le format mbox (la methode par defaut de
   stockage du courrier electronique) ou le format Maildir, en fonction de
   votre configuration. Une fois le courrier stocke, il peut etre lu
   localement en utilisant des applications comme mail(1) ou mutt, ou lu `a
   distance et recupere en utilisant des protocoles tels que POP ou IMAP.
   Cela signifie que si vous desirez uniquement lire votre courrier
   electroniquement en local, vous n'avez pas besoin d'installer un serveur
   POP ou IMAP.

    29.2.4.1. Acces aux boites aux lettres distantes en utilisant POP et IMAP

   Pour acceder `a des boites aux lettres distantes, vous devez avoir un
   acces `a un serveur POP ou IMAP. Ces protocoles permettent aux
   utilisateurs de se connecter aisement `a leurs boites aux lettres `a
   partir de machines distantes. Bien que POP et IMAP permettent, tous les
   deux, l'acces aux boites aux lettres pour les utilisateurs, IMAP offre de
   nombreux avantages, parmi lesquels:

     * IMAP peut stocker les messages sur un serveur distant et les
       recuperer.

     * IMAP supporte les mises `a jour concourantes.

     * IMAP peut etre extremement utile pour les connexions lentes car il
       permet aux utilisateurs de recuperer la structure des messages sans
       les telecharger. Il peut egalement effectuer des taches comme la
       recherche sur le serveur pour reduire les transferts de donnees entre
       clients et serveurs.

   Pour installer un serveur POP ou IMAP, les etapes suivantes doivent etre
   suivies:

    1. Choisissez un serveur IMAP ou POP correspondant `a vos besoins. Les
       serveurs POP et IMAP suivants sont connus et sont de bons exemples:

          * qpopper;

          * teapop;

          * imap-uw;

          * courier-imap;

    2. Installez le "daemon" POP ou IMAP de votre choix `a partir du
       catalogue des logiciels portes.

    3. Si cela est necessaire, modifiez le fichier /etc/inetd.conf pour
       charger le serveur POP ou IMAP.

  Avertissement:

   Il doit etre note que POP et IMAP transmettent les donnees, y compris les
   noms d'utilisateurs et mot de passe d'authentification en clair. Cela
   signifie que si vous desirez securiser la transmission des donnees avec
   ces protocoles, vous devriez considerer l'utilisation de de tunnels
   ssh(1). L'utilisation de tels tunnels est decrite dans la Section 14.11.7,
   << Tunnels SSH >>.

    29.2.4.2. Acces aux boites aux lettres locales

   Les boites aux lettres peuvent etre accessibles localement en utilisant un
   client de messagerie sur le serveur ou se trouve la boite. Cela peut etre
   fait en employant des applications telles que mutt ou mail(1).

  29.2.5. Le serveur de courrier

   Le serveur de courrier est le nom donne au serveur qui est responsable de
   la transmission et la reception du courrier pour votre machine, et
   probablement votre reseau.

29.3. Configuration de sendmail

   Contribution de Christopher Shumway.

   sendmail(8) est l'agent de transfert de courrier (Mail Transfert
   Agent-MTA) par defaut sous FreeBSD. Le role de sendmail est d'accepter le
   courrier en provenance des agents de courrier utilisateur (Mail User
   Agents-MUA) et de delivrer le courrier aux programmes de gestion du
   courrier definis dans son fichier de configuration. sendmail peut
   egalement accepter les connexions reseau et delivrer le courrier dans des
   boites aux lettres locales ou le transmettre `a un autre programme.

   sendmail utilise les fichiers de configuration suivants:

   +------------------------------------------------------------------------+
   |          Fichier           |                 Fonction                  |
   |----------------------------+-------------------------------------------|
   | /etc/mail/access           | Fichier de la base de donnees d'acces de  |
   |                            | sendmail                                  |
   |----------------------------+-------------------------------------------|
   | /etc/mail/aliases          | Alias de boite aux lettres                |
   |----------------------------+-------------------------------------------|
   | /etc/mail/local-host-names | Liste des machines pour lesquelles        |
   |                            | sendmail accepte du courrier              |
   |----------------------------+-------------------------------------------|
   | /etc/mail/mailer.conf      | Configuration du programme de gestion du  |
   |                            | courrier                                  |
   |----------------------------+-------------------------------------------|
   | /etc/mail/mailertable      | Table de livraison du courrier            |
   |----------------------------+-------------------------------------------|
   | /etc/mail/sendmail.cf      | Fichier de configuration principal de     |
   |                            | sendmail                                  |
   |----------------------------+-------------------------------------------|
   | /etc/mail/virtusertable    | Table des domaines et utilisateurs        |
   |                            | virtuels                                  |
   +------------------------------------------------------------------------+

  29.3.1. /etc/mail/access

   La base de donnees d'acces definit quelle(s) machine(s) ou adresses IP ont
   acces au serveur de courrier local et quel type d'acces ils ont. Les
   machines peuvent etre listees avec OK, REJECT, RELAY ou simplement
   transferees `a la routine de gestion des erreurs sendmail avec une erreur
   donnee. Les machines qui sont listees avec OK, qui est le comportement par
   defaut, sont autorisees `a envoyer du courrier `a cette machine des que la
   destination finale du courrier est la machine locale. Les machines listees
   avec REJECT se verront rejeter pour toute connexion au serveur. Les
   machines presentes avec l'option RELAY sont autorisees `a envoyer du
   courrier `a n'importe quelle destination par l'intermediaire de ce serveur
   de courrier.

   Exemple 29.1. Configuration de la base de donnees d'acces de sendmail

 cyberspammer.com                550 We don't accept mail from spammers
 FREE.STEALTH.MAILER@            550 We don't accept mail from spammers
 another.source.of.spam          REJECT
 okay.cyberspammer.com           OK
 128.32                          RELAY

   Dans cet exemple nous avons cinq entrees. Les emetteurs de courrier qui
   correspondent `a la partie gauche de la table sont affectes par l'action
   donnee sur la partie droite de la table. Les deux premiers exemples
   donnent un code d'erreur `a la routine de gestion d'erreur de sendmail. Le
   message est affiche sur la machine distante quand un courrier electronique
   correspond `a la partie gauche de la table. L'entree suivante rejette le
   courrier en provenance d'une machine precise de l'Internet,
   another.source.of.spam. L'entree suivante accepte les connexions `a partir
   de la machine okay.cyberspammer.com, qui est plus precis que le
   cyberspammer.com de la ligne precedente. Les correspondances plus
   specifiques priment sur les moins precises. La derniere entree autorise le
   relais du courrier electronique en provenance de machines avec une adresse
   IP qui commence par 128.32. Ces machines seront en mesure d'envoyer du
   courrier destine `a d'autres serveurs de courrier par l'intermediaire de
   ce serveur de courrier.

   Quand ce fichier est mis `a jour, vous devez executer la commande make
   dans /etc/mail/ pour mettre `a jour la base de donnees.

  29.3.2. /etc/mail/aliases

   La base de donnees d'alias contient une liste de boites aux lettres
   virtuelles dont le contenu sera transmis `a d'autres utilisateurs,
   fichiers, programmes ou d'autres alias. Voici quelques exemples qui
   peuvent etre utilises dans /etc/mail/aliases:

   Exemple 29.2. Exemple de base de donnees d'alias

 root: localuser
 ftp-bugs: joe,eric,paul
 bit.bucket:  /dev/null
 procmail: "|/usr/local/bin/procmail"

   Le format du fichier est simple; le nom de la boite aux lettres `a gauche
   et la cible sur la droite. Le premier exemple transfere la boite aux
   lettres root vers la boite aux lettres localuser, qui est ensuite
   recherchee dans la base de donnees d'alias. Si aucune correspondance n'est
   trouvee alors le message est delivre `a l'utilisateur locale localuser.
   L'exemple suivant montre une liste de correspondance. Un courrier envoye
   `a la boite aux lettres ftp-bugs sera delivre aux trois boites locales
   joe, eric, et paul. Notez qu'une boite aux lettres distante comme
   user@exemple.com/procmail pourra etre specifiee. L'exemple suivant montre
   comment transferer le courrier dans un fichier, dans notre cas /dev/null.
   Le dernier exemple montre l'envoi du courrier `a un programme, dans le cas
   present le message est ecrit sur l'entree standard de
   /usr/local/bin/procmail par l'intermediaire d'un tube UNIX(R).

   Quand ce fichier est mis `a jour, vous devez executer la commande make
   dans /etc/mail/ pour mettre `a jour la base de donnees.

  29.3.3. /etc/mail/local-host-names

   C'est la liste des machines pour lesquelles sendmail(8) accepte du
   courrier comme s'il etait destine `a la machine locale. Placez-y tous les
   domaines ou machines pour lesquels sendmail doit recevoir du courrier. Par
   exemple, si le serveur de courrier devait accepter du courrier pour le
   domaine exemple.com et la machine mail.exemple.com, sont local-host-names
   ressemblera `a quelque chose comme ceci:

 exemple.com
 mail.exemple.com

   Quand ce fichier est mis `a jour, sendmail(8) doit etre relance pour lire
   les changements.

  29.3.4. /etc/mail/sendmail.cf

   Fichier principal de configuration de sendmail, sendmail.cf controle le
   comportement general de sendmail, y compris tout depuis la reecriture des
   adresses de courrier jusqu'`a l'envoi de message de rejet aux serveurs de
   courrier distants. Naturellement, avec tant de differentes activites, ce
   fichier de configuration est relativement complexe et son etude detaillee
   n'est pas le but de cette section. Heureusement, ce fichier a rarement
   besoin d'etre modifie pour les serveurs de courrier standards.

   Le fichier de configuration principal de sendmail peut etre cree `a partir
   de macros m4(1) qui definissent les fonctions et le comportement de
   sendmail. Veuillez consulter /usr/src/contrib/sendmail/cf/README pour plus
   de details.

   Quand des modifications `a ce fichier sont apportees, sendmail doit etre
   redemarre pour que les changements prennent effet.

  29.3.5. /etc/mail/virtusertable

   La table virtusertable fait correspondre les adresses de courrier
   electronique pour des domaines virtuels et les boites aux lettres avec des
   boites aux lettres reelles. Ces boites aux lettres peuvent etre locales,
   distantes, des alias definis dans /etc/mail/aliases ou des fichiers.

   Exemple 29.3. Exemple de correspondance de domaine virtuel de courrier

 root@exemple.com                root
 postmaster@exemple.com          postmaster@noc.exemple.net
 @exemple.com                    joe

   Dans l'exemple ci-dessus, nous avons une correspondance pour un domaine
   exemple.com. Ce fichier est traite jusqu'`a trouver la premiere
   correspondance. Le premier element fait correspondre root@exemple.com `a
   la boite aux lettres root locale. L'entree suivante fait correspondre
   postmaster@exemple.com `a la boite aux lettres postmaster sur la machine
   noc.exemple.net. Et enfin, si un courrier en provenance de exemple.com n'a
   pas trouve de correspondance, il correspondra `a la derniere ligne, qui
   regira tous les autres messages adresses `a quelqu'un du domaine
   exemple.com. La correspondance sera la boite aux lettres locale joe.

29.4. Changer votre agent de transfert de courrier

   Ecrit par Andrew Boothman.
   Information provenant de courriers electroniques ecrit par Gregory Neil
   Shapiro.

   Comme mentionne precedemment, FreeBSD est fournit avec sendmail comme
   agent de transfert du courrier (MTA - Mail Transfert Agent). Il est donc
   par defaut en charge de votre courrier sortant et entrant.

   Cependant, pour une variete de raison, certains administrateurs systeme
   desirent changer le MTA de leur systeme. Ces raisons vont de la simple
   envie d'essayer un autre agent au besoin d'une fonction ou ensemble
   specifique qui depend d'un autre gestionnaire de courrier. Heureusement,
   quelle qu'en soit la raison, FreeBSD rend le changement aise.

  29.4.1. Installer un nouveau MTA

   Vous avez un vaste choix d'agent disponible. Un bon point de depart est le
   catalogue des logiciels portes de FreeBSD ou vous pourrez en trouver un
   grand nombre. Bien evidemment vous etes libres d'utiliser n'importe quel
   agent de n'importe quelle origine, des que vous pouvez le faire
   fonctionner sous FreeBSD.

   Commencez par installer votre nouvel agent. Une fois ce dernier installe,
   il vous donne une chance de decider s'il remplit vraiment vos besoins, et
   vous donne l'opportunite de configurer votre nouveau logiciel avant de
   remplacer sendmail. Quand vous faites cela, vous devez etre sur que
   l'installation du nouveau logiciel ne tentera pas de remplacer des
   binaires du systeme comme /usr/bin/sendmail. Sinon, votre nouveau logiciel
   sera mis en service avant d'avoir pu le configurer.

   Veuillez vous referer `a la documentation de l'agent choisi pour de
   l'information sur comment configurer le logiciel que vous avez choisi.

  29.4.2. Desactiver sendmail

   La procedure utilisee pour lancer sendmail a change de fac,on
   significative entre la 4.5-RELEASE et la 4.6-RELEASE. Par consequent, la
   procedure utilisee pour la desactiver est legerement differente.

    29.4.2.1. FreeBSD 4.5-STABLE d'avant le 2002/4/4 et plus ancienne (y compris
    4.5-RELEASE et precedentes)

   Ajoutez:

 sendmail_enable="NO"

   dans /etc/rc.conf. Cela desactivera le service de courrier entrant de
   sendmail mais si /etc/mail/mailer.conf (voir plus bas) n'est pas modifie,
   sendmail sera toujours utilise pour envoyer du courrier electronique.

    29.4.2.2. FreeBSD 4.5-STABLE d'apres le 2002/4/4 (y compris 4.6-RELEASE et
    suivantes)

   Afin de completement desactiver sendmail vous devez utiliser

 sendmail_enable="NONE"

   dans /etc/rc.conf.

  Avertissement:

   Si vous desactivez le service d'envoi de courrier de sendmail de cette
   maniere, il est important que vous le remplaciez par un systeme de
   courrier alternatif fonctionnant parfaitement. Si vous choisissez de ne
   pas le faire, des fonctions du systeme comme periodic(8) ne seront pas en
   mesure de delivrer leur resultat par courrier electronique comme elles
   s'attendent normalement `a le faire. De nombreux composants de votre
   systeme s'attendent `a avoir un systeme compatible `a sendmail en
   fonctionnement. Si des applications continuent `a utiliser les binaires de
   sendmail pour essayer d'envoyer du courrier electronique apres la
   desactivation, le courrier pourra aller dans une file d'attente inactive,
   et pourra n'etre jamais livre.

   Si vous voulez uniquement desactiver le service de reception de courrier
   de sendmail vous devriez fixer

 sendmail_enable="NO"

   dans /etc/rc.conf. Plus d'information sur les options de demarrage de
   sendmail est disponible `a partir de la page de manuel de rc.sendmail(8).

  29.4.3. Lancement de votre nouvel agent au demarrage

   Vous pourrez avoir le choix entre deux methodes pour lancer votre nouvel
   agent au demarrage, encore une fois en fonction de la version de FreeBSD
   dont vous disposez.

    29.4.3.1. FreeBSD 4.5-STABLE d'avant le 2002/4/11 (y compris 4.5-RELEASE et
    precedentes)

   Ajouter une procedure dans /usr/local/etc/rc.d/ qui se termine en .sh et
   qui est executable par root. La procedure devrait accepter les parametres
   start et stop. Au moment du demarrage les procedures systeme executeront
   la commande

 /usr/local/etc/rc.d/supermailer.sh start

   que vous pouvez egalement utiliser pour demarrer le serveur. Au moment de
   l'arret du systeme, les procedures systeme utiliseront l'option stop en
   executant la commande

 /usr/local/etc/rc.d/supermailer.sh stop

   que vous pouvez egalement utiliser manuellement pour arreter le serveur
   quand le systeme est en fonctionnement.

    29.4.3.2. FreeBSD 4.5-STABLE d'apres le 2002/4/11 (y compris 4.6-RELEASE et
    suivantes)

   Avec les versions suivantes de FreeBSD, vous pouvez utiliser la methode
   ci-dessus ou fixer

 mta_start_script="nomfichier"

   dans /etc/rc.conf, ou nomfichier est le nom d'une procedure que vous
   voulez executer au demarrage pour lancer votre agent.

  29.4.4. Remplacer sendmail comme gestionnaire du courrier du systeme par
  defaut

   Le programme sendmail est tellement omnipresent comme logiciel standard
   sur les systemes UNIX(R) que certains programmes supposent qu'il est tout
   simplement dej`a installe et configure. Pour cette raison, de nombreux
   agents alternatifs fournissent leur propre implementation compatible avec
   l'interface en ligne de commande de sendmail; cela facilite leur
   utilisation comme remplac,ant pour sendmail.

   Donc, si vous utilisez un programme alternatif, vous devrez verifier que
   le logiciel essayant d'executer les binaires standards de sendmail comme
   /usr/bin/sendmail execute reellement l'agent que vous avez choisi `a la
   place. Heureusement, FreeBSD fournit un systeme appele mailwrapper(8) qui
   remplit ce travail pour vous.

   Quand sendmail fonctionne tel qu'il a ete installe, vous trouverez quelque
   chose comme ce qui suit dans /etc/mail/mailer.conf:

 sendmail         /usr/libexec/sendmail/sendmail
 send-mail       /usr/libexec/sendmail/sendmail
 mailq           /usr/libexec/sendmail/sendmail
 newaliases      /usr/libexec/sendmail/sendmail
 hoststat        /usr/libexec/sendmail/sendmail
 purgestat       /usr/libexec/sendmail/sendmail

   Cela signifie que lorsque l'une des commandes courantes (comme sendmail
   lui-meme) est lancee, le systeme invoque en fait une copie de
   "mailwrapper" appelee sendmail, qui lit mailer.conf et execute
   /usr/libexec/sendmail/sendmail `a la place. Ce systeme rend aise le
   changement des binaires qui sont reellement executes quand les fonctions
   de sendmail par defaut sont invoquees.

   Donc si vous avez voulu que /usr/local/supermailer/bin/sendmail-compat
   soit lance en place de sendmail, vous pourrez modifier
   /etc/mail/mailer.conf de cette fac,on:

 sendmail         /usr/local/supermailer/bin/sendmail-compat
 send-mail       /usr/local/supermailer/bin/sendmail-compat
 mailq           /usr/local/supermailer/bin/mailq-compat
 newaliases      /usr/local/supermailer/bin/newaliases-compat
 hoststat        /usr/local/supermailer/bin/hoststat-compat
 purgestat       /usr/local/supermailer/bin/purgestat-compat

  29.4.5. Pour en terminer

   Une fois que vous avez tout configure de la fac,on dont vous le desirez,
   vous devriez soit tuer les processus de sendmail dont vous n'avez plus
   besoin et lancer les processus appartenant `a votre nouveau logiciel, ou
   tout simplement redemarrer. Le redemarrage vous donnera l'opportunite de
   vous assurer que vous avez correctement configure votre systeme pour le
   lancement automatique de votre nouvel agent au demarrage.

29.5. Depannage

   29.5.1. Pourquoi faut-il que j'utilise le FQDN ("Fully Qualified Domain
   Name" - nom complet de machine) pour les machines de mon site?

   29.5.2. sendmail affiche le message mail loops back to myself

   29.5.3. Comment puis-je faire tourner un serveur de courrier electronique
   avec une connexion telephonique PPP

   29.5.4. Pourquoi j'obtiens le message d'erreur Relaying Denied `a chaque
   fois que j'envoie du courrier `a partir d'autres machines?

29.5.1. Pourquoi faut-il que j'utilise le FQDN ("Fully Qualified Domain Name" - nom complet de machine) pour les machines de mon site?              
        Vous vous rendrez probablement compte que la machine est en fait dans un domaine different; par exemple, si vous etes dans le domaine       
        foo.bar.edu et que vous voulez atteindre la machine mumble du domaine bar.edu, vous devrez utiliser son nom de machine complet,             
        mumble.bar.edu, au lieu de juste mumble.                                                                                                    
                                                                                                                                                    
        C'etait traditionnellement autorise par les resolveurs BIND BSD. Neanmoins, la version de BIND qui est maintenant livree avec FreeBSD ne    
        sait pas completer les noms de machines abreges autrement qu'avec le nom de votre domaine. Donc le nom non qualifie mumble doit             
        correspondre `a mumble.foo.bar.edu, sans quoi il sera recherche dans le domaine racine.                                                     
                                                                                                                                                    
        Cela differe du comportement precedent, ou la recherche se prolongeait `a mumble.bar.edu, puis mumble.edu. Consultez la RFC 1535 pour       
        savoir pourquoi cela etait considere comme une mauvaise pratique, voire meme un trou de securite.                                           
                                                                                                                                                    
        Comme solution, vous pouvez mettre la ligne:                                                                                                
                                                                                                                                                    
        search foo.bar.edu bar.edu                                                                                                                  
                                                                                                                                                    
        `a la place de:                                                                                                                             
                                                                                                                                                    
        domain foo.bar.edu                                                                                                                          
                                                                                                                                                    
        dans votre fichier /etc/resolv.conf. Cependant, assurez-vous que la recherche ne franchit pas la "limite entre l'administration locale et   
        publique", selon l'expression de la RFC 1535.                                                                                               
29.5.2. sendmail affiche le message mail loops back to myself                                                                                       
        La reponse donnee dans la FAQ de sendmail est la suivante:                                                                                  
                                                                                                                                                    
        J'obtiens les messages d'erreur suivant:                                                                                                    
                                                                                                                                                    
        553 MX list for domain.net points back to relay.domain.net                                                                                  
        554 <user@domain.net>... Local configuration error                                                                                          
                                                                                                                                                    
        Comment puis-je resoudre ce probleme?                                                                                                       
                                                                                                                                                    
        Vous avez demande que le courrier pour un domaine (e.g., domain.net)                                                                        
        soit transmis `a une machine donnee (dans ce cas precis, relay.domain.net)                                                                  
        en utilisant un enregistrement MX, mais la machine relais ne se                                                                             
        connait pas elle-meme comme domain.net.  Ajoutez domain.net `a                                                                              
        /etc/mail/local-host-names [connu sous le nom /etc/sendmail.cw dans les versionsanterieure `a 8.10] (si vous utilisez FEATURE(use_cw_file)) 
        ou ajoutez "Cw domain.net" `a                                                                                                               
        /etc/mail/sendmail.cf.                                                                                                                      
                                                                                                                                                    
        La FAQ de sendmail peut etre trouvee `a l'adresse http://www.sendmail.org/faq/ et sa lecture est recommandee si vous voulez "bidouiller"    
        votre configuration du courrier electronique.                                                                                               
29.5.3. Comment puis-je faire tourner un serveur de courrier electronique avec une connexion telephonique PPP                                       
        Vous voulez connecter une machine FreeBSD du reseau local `a l'Internet. Cette machine servira de passerelle de courrier electronique pour  
        le reseau local. La connexion PPP n'est pas dediee.                                                                                         
                                                                                                                                                    
        Il y a au moins deux fac,ons de faire. L'une d'elle est d'utiliser UUCP.                                                                    
                                                                                                                                                    
        L'autre methode etant d'obtenir un serveur Internet constamment connecte pour qu'il vous fournisse les services MX pour votre domaine. Par  
        exemple, si le domaine de votre compagnie est exemple.com et votre fournisseur d'acces a configure exemple.net pour fournir un MX           
        secondaire pour votre domaine:                                                                                                              
                                                                                                                                                    
        exemple.com.            MX        10      exemple.com.                                                                                      
                              MX        20      exemple.net.                                                                                        
                                                                                                                                                    
        Une seule machine devrait etre specifiee comme destinataire final (ajoutez Cw exemple.com au fichier /etc/mail/sendmail.cf de exemple.com). 
                                                                                                                                                    
        Quand le sendmail expediteur tente de vous delivrer du courrier, il essaiera de se connecter `a votre serveur (exemple.com) via votre       
        liaison par modem. Ce qui echouera tres probablement par depassement de delai puisque vous n'etes pas en ligne. Le programme sendmail       
        enverra automatiquement le courrier au site MX secondaire, i.e. votre fournisseur d'acces (exemple.net). Le site MX secondaire essayera     
        periodiquement de se connecter `a votre machine pour expedier le courrier au site MX primaire (exemple.com).                                
                                                                                                                                                    
        Vous pourrez vouloir utiliser quelque chose comme ceci comme procedure de connexion:                                                        
                                                                                                                                                    
        #!/bin/sh                                                                                                                                   
        # Mettez-moi dans /usr/local/bin/pppmyisp                                                                                                   
        ( sleep 60 ; /usr/sbin/sendmail -q ) &                                                                                                      
        /usr/sbin/ppp -direct pppmyisp                                                                                                              
                                                                                                                                                    
        Si vous avez l'intention de definir une procedure de connexion particuliere pour un utilisateur, vous pourrez utiliser sendmail             
        -qRexemple.com `a la place de la procedure ci-dessus. Cela forcera le traitement immediat de tout le courrier dans votre file d'attente     
        pour exemple.com.                                                                                                                           
                                                                                                                                                    
        On peut encore affiner la configuration comme suit:                                                                                         
                                                                                                                                                    
        Message emprunte `a la liste de diffusion pour les fournisseurs d'acces Internet utilisant FreeBSD.                                         
                                                                                                                                                    
        > Nous fournissons un MX secondaire `a un                                                                                                   
        client.  Le client se connecte                                                                                                              
        > `a notre service automatiquement plusieurs fois par jour pour acheminer                                                                   
        > le courrier sur son MX primaire (nous n'appelons pas son site lorsque                                                                     
        > du courrier pour ses domaines arrive).  Notre sendmail envoie le courrier de la                                                           
        > file d'attente toutes les demi-heures.  Pour l'instant, il doit rester                                                                    
        > une demi-heure en ligne pour etre sur que tout le courrier soit                                                                           
        > arrive au MX primaire.                                                                                                                    
        >                                                                                                                                           
        > Y-a-t-il une commande qui permette de dire `a sendmail d'envoyer                                                                          
        > sur-le-champ tout le courrier? L'utilisateur n'a evidemment pas                                                                           
        > les droits super-utilisateur sur la machine.                                                                                              
                                                                                                                                                    
        Dans la section "privacy flags" (indicateurs de                                                                                             
        confidentialite) de sendmail.cf, il y a la definition Opgoaway,restrictqrun                                                                 
                                                                                                                                                    
        Supprimer restrictqrun permet `a d'autres utilisateurs que le                                                                               
        super-utilisateur de lancer le traitement de la file d'attente.  Vous                                                                       
        pouvez aussi redefinir les MXs.  Nous sommes le premier MX pour les                                                                         
        utilisateurs de ce type, et nous avons defini:                                                                                              
                                                                                                                                                    
        # Si nous sommes le meilleur MX pour une machine, essayer directement                                                                       
        # au lieu d'emettre des messages d'erreur de configuration locale.                                                                          
        OwTrue                                                                                                                                      
                                                                                                                                                    
        De cette fac,on, un site distant vous enverra directement le courrier,                                                                      
        sans essayer de se connecter chez votre client.  Vous le lui                                                                                
        transmettez ensuite.  Cela ne marche qu'avec les "machines",                                                                                
        votre client doit nommer son serveur de courrier                                                                                            
        "client.com" aussi bien que                                                                                                                 
        "machine.client.com" dans le DNS.  Mettez seulement un                                                                                      
        enregistrement A pour "client.com".                                                                                                         
29.5.4. Pourquoi j'obtiens le message d'erreur Relaying Denied `a chaque fois que j'envoie du courrier `a partir d'autres machines?                 
        Dans l'installation par defaut de FreeBSD, sendmail est configure pour envoyer du courrier uniquement `a partir de la machine sur laquelle  
        il tourne. Par exemple, si un serveur POP est disponible, alors les utilisateurs pourront retirer leur courrier depuis l'ecole, le travail, 
        ou toute autre machine distante mais ils ne seront toujours pas en mesure d'envoyer du courrier electronique `a partir de machines          
        exterieures. Generalement, quelques instants apres une tentative, un courrier electronique sera envoye par le MAILER-DAEMON avec un message 
        5.7 Relaying Denied.                                                                                                                        
                                                                                                                                                    
        Il y a plusieurs fac,ons d'y remedier. La solution la plus directe est de mettre l'adresse de votre fournisseur d'acces dans un fichier de  
        domaine `a relayer /etc/mail/relay-domains. Une fac,on rapide de le faire serait:                                                           
                                                                                                                                                    
        # echo "votre.fai.exemple.com" > /etc/mail/relay-domains                                                                                    
                                                                                                                                                    
        Apres avoir cree ou edite ce fichier vous devez redemarrer sendmail. Cela fonctionne parfaitement si vous etes l'administrateur d'un        
        serveur et vous ne desirez pas envoyer de courrier localement, ou que vous desiriez utiliser un systeme ou un client "clic-bouton" sur une  
        autre machine ou un autre FAI. C'est egalement tres utile si vous avez uniquement qu'un ou deux comptes de courrier electronique            
        configures. S'il y a un grand nombre d'adresses `a ajouter, vous pouvez tout simplement ouvrir ce fichier dans votre editeur de texte       
        favori et ensuite ajouter les domaines, un par ligne:                                                                                       
                                                                                                                                                    
        votre.fai.exemple.com                                                                                                                       
        autre.fai.exemple.net                                                                                                                       
        utilisateurs-fai.exemple.org                                                                                                                
        www.exemple.org                                                                                                                             
                                                                                                                                                    
        Desormais tout courrier envoye vers votre systeme, par n'importe quelle machine de cette liste (en supposant que l'utilisateur possede un   
        compte sur votre systeme), sera accepte. C'est un bon moyen d'autoriser aux utilisateurs d'envoyer du courrier electronique `a distance     
        depuis votre systeme sans autoriser l'utilisation de votre systeme pour l'envoi de courrier electronique non sollicite (SPAM).              

29.6. Sujets avances

   LA fonction suivante couvre des sujets plus avances comme la configuration
   du courrier electronique pour l'integralite de votre domaine.

  29.6.1. Basic Configuration

   Sans aucune configuration, vous devrez etre en mesure d'envoyer du
   courrier electronique `a des machines exterieures `a partir du moment ou
   vous avez configure /etc/resolv.conf ou que vous avez votre propre serveur
   de noms. Si vous desirez que le courrier pour votre machine soit delivre
   au serveur de courrier (e.g., sendmail) sur votre propre machine FreeBSD,
   il y a deux methodes:

     * Faites tourner votre propre serveur de noms et possedez votre propre
       domaine. Par exemple FreeBSD.org

     * Faire delivrer le courrier directement sur votre machine. Cela est
       possible en delivrant directement le courrier `a la machine sur lequel
       pointe le DNS pour le courrier qui vous est destine. Par exemple
       exemple.FreeBSD.org.

   Independamment de la methode que vous choisissez, afin d'avoir le courrier
   delivre directement `a votre machine, elle doit avoir une adresse IP
   statique permanente (et non pas une adresse dynamique, comme avec la
   plupart des connexions PPP par modem). Si vous etes derriere un coupe-feu,
   il doit autoriser le trafic SMTP en votre direction. Si vous voulez
   recevoir directement le courrier sur votre machine, vous devez etre surs
   de l'une de ces deux choses:

     * Assurez-vous que l'enregistrement MX (le nombre le plus bas) de votre
       DNS pointe sur l'adresse IP de votre machine.

     * Assurez-vous qu'il n'y a pas d'entree MX pour votre machine dans votre
       DNS.

   Une des deux conditions precedentes vous permettra de recevoir directement
   le courrier pour votre machine.

   Essayez:

 # hostname
 exemple.FreeBSD.org
 # host exemple.FreeBSD.org
 exemple.FreeBSD.org has address 204.216.27.XX

   Si c'est la reponse que vous obtenez, le courrier adresse `a
   <votreindentifiant@exemple.FreeBSD.org> arrivera sans probleme (en
   supposant que sendmail fonctionne correctement sur exemple.FreeBSD.org).

   Si au lieu de cela vous obtenez quelque chose de similaire `a ceci:

 # host exemple.FreeBSD.org
 exemple.FreeBSD.org has address 204.216.27.XX
 exemple.FreeBSD.org mail is handled (pri=10) by hub.FreeBSD.org

   Tout le courrier adresse `a votre machine (exemple.FreeBSD.org) arrivera
   sur hub adresse au meme utilisateur au lieu d'etre directement envoye `a
   votre machine.

   L'information precedente est geree par votre serveur DNS. L'enregistrement
   du DNS qui contient l'information de routage de courrier est l'entree MX
   (Mail eXchange). S'il n'y pas d'enregistrement MX, le courrier sera
   directement envoye `a la machine en utilisant son adresse IP.

   Voici ce que fut `a un moment donne l'entree MX pour freefall.FreeBSD.org:

 freefall                MX      30      mail.crl.net
 freefall                MX      40      agora.rdrop.com
 freefall                MX      10      freefall.FreeBSD.org
 freefall                MX      20      who.cdrom.com

   Comme vous pouvez le voir, freefall avait plusieurs entrees MX. L'entree
   MX dont le numero est le plus bas est la machine qui rec,oit directement
   le courrier si elle est disponible; si elle n'est pas accessible pour
   diverses raisons, les autres (parfois appelees "MX de secours") acceptent
   temporairement les messages, et les transmettent `a une machine de numero
   plus faible quand elle devient disponible, et par la suite `a la machine
   de numero le plus bas.

   Les sites MX alternatifs devraient avoir une connexion Internet separee de
   la votre afin d'etre les plus utiles. Votre fournisseur d'acces ou tout
   autre site amical ne devrait pas avoir de probleme pour vous fournir ce
   service.

  29.6.2. Courrier pour votre domaine

   Pour configurer un serveur de courrier vous devez faire en sorte que tout
   le courrier `a destination des diverses stations de travail lui soit
   envoye. Concretement, vous voulez "revendiquer" tout courrier pour
   n'importe quelle machine de votre domaine (dans ce cas *.FreeBSD.org) et
   le detourner vers votre serveur de courrier de sorte que vos utilisateurs
   puissent recevoir leur courrier sur le serveur de courrier principal.

   Pour rendre les choses plus aisees, un compte utilisateur avec le meme nom
   d'utilisateur devrait exister sur les deux machines. Utilisez adduser(8)
   pour ce faire.

   Le serveur de courrier que vous utiliserez sera defini comme "mail
   exchanger" pour chaque station de travail du reseau. Cela est fait dans
   votre configuration de DNS de cette maniere:

 exemple.FreeBSD.org     A       204.216.27.XX           ; Station de travail
                         MX      10 hub.FreeBSD.org      ; Serveur de courrier

   Cela redirigera le courrier pour votre station de travail au serveur de
   courrier quelque soit la machine sur laquelle pointe l'enregistrement A.
   Le courrier est envoye sur la machine MX.

   Vous ne pouvez le faire vous-meme que si vous gerez un serveur de noms. Si
   ce n'est pas le cas, ou que vous ne pouvez avoir votre propre serveur DNS,
   parlez-en `a votre fournisseur d'acces ou `a celui qui fournit votre DNS.

   Si vous faites de l'hebergement virtuel du courrier electronique,
   l'information suivante sera utile. Pour cet exemple, nous supposerons que
   vous avez un client qui possede son propre domaine, dans notre cas
   client1.org, et vous voulez que tout le courrier pour client1.org arrive
   sur votre serveur de courrier, mail.mamachine.com. L'entree dans votre DNS
   devrait ressembler `a ceci:

 client1.org             MX      10      mail.mamachine.com

   Vous n'avez pas besoin d'un enregistrement A pour client1.org si vous ne
   voulez gerer que le courrier pour ce domaine.

  Note:

   Soyez conscient que "pinger" client1.org ne fonctionnera pas `a moins
   qu'un enregistrement A existe pour cette machine.

   La derniere chose que vous devez faire est d'indiquer `a sendmail sur le
   serveur de courrier quels sont les domaines et/ou machines pour lesquels
   il devrait accepter du courrier. Il y a peu de fac,ons differentes de le
   faire. L'une des deux methodes suivantes devrait fonctionner:

     * Ajoutez les machines `a votre fichier /etc/mail/local-host-names si
       vous utilisez la fonction FEATURE(use_cw_file). Si vous utilisez une
       version de sendmail anterieure `a la version 8.10, le fichier sera
       /etc/sendmail.cw.

     * Ajoutez une ligne Cwyour.host.com `a votre fichier /etc/sendmail.cf ou
       /etc/mail/sendmail.cf si vous utilisez sendmail 8.10 ou superieur.

29.7. SMTP avec UUCP

   La configuration de sendmail fournie avec FreeBSD est conc,ue pour les
   sites directement connectes `a l'Internet. Les sites desirant echanger
   leur courrier electronique par l'intermediaire d'UUCP doivent installer un
   autre fichier de configuration pour sendmail.

   Modifier manuellement le fichier /etc/mail/sendmail.cf est un sujet
   reserve aux specialistes. Dans version 8 de sendmail la generation des
   fichiers de configuration se fait par l'intermediaire du processeur m4(1),
   ou la configuration se fait `a un haut niveau d'abstraction. Les fichiers
   de configuration m4(1) se trouvent dans le repertoire
   /usr/src/usr.sbin/sendmail/cf.

   Si vous n'avez pas installe toutes les sources du systeme, l'ensemble des
   fichiers de configuration de sendmail a ete regroupe dans une archive
   separee des autres sources. En supposant que vous avez monte votre CDROM
   FreeBSD contenant les sources, faites:

 # cd /cdrom/src
 # cat scontrib.?? | tar xzf - -C /usr/src/contrib/sendmail

   Cette extraction ne donne lieu qu'`a une centaine de kilo-octets. Le
   fichier README dans le repertoire cf pourra faire office d'une
   introduction `a la configuration m4(1).

   La meilleure fac,on d'ajouter le support UUCP est d'utiliser la
   fonctionnalite mailertable. Cela cree une base de donnees que sendmail
   utilise pour decider de la maniere dont il va router le courrier
   electronique.

   Tout d'abord, vous devez creer votre fichier .mc. Le repertoire
   /usr/src/usr.sbin/sendmail/cf/cf contient quelques exemples. En supposant
   que vous avez appele votre fichier foo.mc, tout ce dont vous avez besoin
   de faire pour le convertir en un fichier sendmail.cf valide est:

 # cd /usr/src/usr.sbin/sendmail/cf/cf
 # make foo.cf
 # cp foo.cf /etc/mail/sendmail.cf

   Un fichier .mc classique devrait ressembler `a ceci:

 VERSIONID(`Votre numero de version') OSTYPE(bsd4.4)

 FEATURE(accept_unresolvable_domains)
 FEATURE(nocanonify)
 FEATURE(mailertable, `hash -o /etc/mail/mailertable')

 define(`UUCP_RELAY', votre.relai.uucp)
 define(`UUCP_MAX_SIZE', 200000)
 define(`confDONT_PROBE_INTERFACES')

 MAILER(local)
 MAILER(smtp)
 MAILER(uucp)

 Cw    alias.de.votre.nom.de.machine
 Cw    votrenomdenoeuduucp.UUCP

   Les lignes contenant les directives accept_unresolvable_domains,
   nocanonify, et confDONT_PROBE_INTERFACES empecheront l'utilisation du DNS
   lors de l'envoi du courrier electronique. La directive UUCP_RELAY est
   necessaire pour le support de l'UUCP. Mettez juste un nom de machine
   Internet capable de gerer des adresses d'un pseudo-domaine .UUCP; la
   plupart du temps, vous mettrez le nom du serveur de messagerie de votre
   fournisseur d'acces.

   Apres avoir defini tout ceci, vous avez besoin d'un fichier
   /etc/mail/mailertable. Si vous n'avez qu'un seul lien avec l'exterieur qui
   est utilise pour votre courrier electronique, le fichier suivant devrait
   suffire:

 #
 # makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable
 .                             uucp-dom:your.uucp.relay

   Un exemple plus complexe ressemblerait `a ceci:

 #
 # makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable
 #
 horus.interface-business.de   uucp-dom:horus
 .interface-business.de        uucp-dom:if-bus
 interface-business.de         uucp-dom:if-bus
 .heep.sax.de                  smtp8:%1
 horus.UUCP                    uucp-dom:horus
 if-bus.UUCP                   uucp-dom:if-bus
 .                             uucp-dom:

   Les trois premieres lignes gerent les cas specifiques ou les courriers
   electroniques pour l'exterieur ne devraient pas etre envoyes au serveur
   par defaut, mais plutot `a des serveurs UUCP voisins afin de "raccourcir"
   le chemin `a parcourir. La ligne suivante gere le courrier electronique
   destine au domaine Ethernet local et qui peut etre distribue en utilisant
   le protocole SMTP. Et enfin, les voisins UUCP sont mentionnes dans la
   notation de pseudo-domaine UUCP, pour permettre `a un courrier du type
   voisin-uucp !destinataire de passer outre les regles par defaut. La
   derniere ligne doit toujours etre un point, ce qui correspond `a tout le
   reste, avec la distribution UUCP vers un voisin UUCP qui sert de
   passerelle universelle de courrier electronique vers le reste du monde.
   Tous les noms de noeuds places apres le mot cle uucp-dom: doivent etre des
   noms valides de voisins UUCP, que vous pouvez verifier en utilisant la
   commande uuname.

   Pour vous rappeler que ce fichier doit etre converti en un fichier de base
   de donnees DBM avant d'etre utilisable. La ligne de commande pour
   accomplir cette conversion est rappelee dans les commentaires au debut du
   fichier mailertable. Vous devez lancer cette commande `a chaque fois que
   vous modifiez votre fichier mailertable.

   Pour finir: si vous n'etes pas certain du bon fonctionnement de certaines
   configurations de routage du courrier electronique, rappelez-vous de
   l'option -bt de sendmail. Cela lance sendmail dans le mode test d'adresse;
   entrez simplement 3,0, suivi de l'adresse que vous desirez tester. La
   derniere ligne vous indiquera le type d'agent utilise pour l'envoi, la
   machine de destination `a laquelle l'agent doit envoyer le message, et
   l'adresse (peut-etre traduite) `a laquelle il l'enverra. Pour quitter ce
   mode tapez Ctrl+D.

 % sendmail -bt
 ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
 Enter <ruleset> <address>
 > 3,0 foo@example.com
 canonify           input: foo @ example . com
 ...
 parse            returns: $# uucp-dom $@ your.uucp.relay $: foo < @ example . com . >
 > ^D

29.8. Configuration pour l'envoi seul

   Contribution de Bill Moran.

   Il existe de nombreux cas ou vous desirez etre capable d'uniquement
   envoyer du courrier electronique par l'intermediaire d'un relais. Quelques
   exemples:

     * Votre ordinateur est une machine de bureau, mais vous voulez utilisez
       des programmes comme send-pr(1). Pour cela vous devez utiliser le
       relais de courrier electronique de votre FAI.

     * L'ordinateur est un serveur qui ne gere pas le courrier electronique
       localement, mais a besoin de soumettre tout le courrier `a un relais
       pour qu'il soit transmis.

   N'importe quel MTA est capable d'assurer cette fonction. Malheureusement,
   il peut etre tres complique de configurer correctement un MTA complet pour
   juste gerer le courrier sortant. Des logiciels comme sendmail et postfix
   sont largement surdimensionnes pour cette utilisation.

   De plus, si vous utilisez un acces Internet classique, votre contrat peut
   vous interdire de faire tourner un "serveur de courrier electronique".

   La maniere la plus simple pour repondre `a ce besoin est d'installer le
   logiciel porte mail/ssmtp. Executez les commandes suivantes en tant que
   root:

 # cd /usr/ports/mail/ssmtp
 # make install replace clean

   Une fois installe, mail/ssmtp peut etre configure avec un fichier de
   quatre lignes, /usr/local/etc/ssmtp/ssmtp.conf:

 root=yourrealemail@example.com
 mailhub=mail.example.com
 rewriteDomain=example.com
 hostname=_HOSTNAME_

   Assurez-vous d'employer votre adresse electronique reelle pour
   l'utilisateur root. Utilisez le relais de courrier electronique sortant de
   votre FAI `a la place de mail.example.com (certains FAIs appellent cela le
   "serveur de courrier sortant" ou le "serveur SMTP").

   Assurez-vous egalement d'avoir desactive sendmail en fixant
   sendmail_enable="NONE" dans le fichier /etc/rc.conf.

   mail/ssmtp dispose d'autres options. Consultez le fichier de configuration
   d'exemple dans le repertoire /usr/local/etc/ssmtp ou la page de manuel de
   ssmtp pour quelques exemples et plus d'informations.

   Configurer ssmtp de cette maniere permettra `a toute application tournant
   sur votre ordinateur et ayant besoin d'envoyer un courrier electronique de
   fonctionner correctement, tout en n'outrepassant pas la politique de votre
   FAI ou en ne permettant pas l'utilisation de votre ordinateur comme base
   arriere pour "spammers".

29.9. Utiliser le courrier electronique avec une connexion temporaire

   Si vous disposez d'une adresse IP statique, vous ne devez rien changer du
   parametrage par defaut. Definissez votre nom de machine pour qu'il
   corresponde `a celui qui vous a ete assigne pour l'Internet et sendmail
   s'occupera du reste.

   Si votre adresse IP vous est attribuee dynamiquement et que vous utilisez
   une connexion PPP par modem pour acceder `a l'Internet, vous disposez
   probablement d'une boite aux lettres chez votre fournisseur d'acces.
   Supposons que le domaine de votre fournisseur d'acces soit example.net,
   que votre nom d'utilisateur soit user, que vous avez appele votre machine
   bsd.home, et que votre fournisseur vous ait demande d'utiliser la machine
   relay.example.net comme serveur relai de messagerie electronique.

   Pour pouvoir rapatrier votre courrier depuis votre boite aux lettres, vous
   devez installer un agent de rapatriement. L'utilitaire fetchmail est un
   bon choix car il supporte la plupart des protocoles de messagerie. Ce
   programme est disponible sous forme de paquetage ou `a partir du catalogue
   des logiciels portes (mail/fetchmail). La plupart du temps, votre
   fournisseur d'acces fournit l'acces aux boites aux lettre `a l'aide du
   protocole POP. Si vous utilisez PPP en mode utilisateur, vous pouvez
   automatiquement recuperer votre courrier quand une connexion Internet est
   etablie avec l'entree suivante dans le fichier /etc/ppp/ppp.linkup:

 MYADDR:
 !bg su user -c fetchmail

   Si vous utilisez sendmail (comme montre ci-dessous) pour distribuer le
   courrier aux comptes non-locaux, vous voudrez probablement que sendmail
   s'occupe de transmettre les messages en attente des que votre connexion
   Internet est etablie. Pour cela, ajoutez la commande suivante apres la
   commande fetchmail dans le fichier /etc/ppp/ppp.linkup:

 !bg su user -c "sendmail -q"

   En supposant que vous avez un compte user sur bsd.home. Dans le repertoire
   de l'utilisateur user sur bsd.home, creez un fichier .fetchmailrc
   contenant:

 poll example.net protocol pop3 fetchall pass MySecret

   Ce fichier ne devrait etre lisible que par l'utilisateur user car il
   contient le mot de passe MySecret.

   Afin de pouvoir envoyer du courrier avec l'entete from: correcte, vous
   devez configurer sendmail pour utiliser l'adresse user@example.net plutot
   que user@bsd.home. Vous pouvez egalement dire `a sendmail d'envoyer le
   courrier via le serveur relay.example.net, permettant une transmission du
   courrier plus rapide.

   Le fichier .mc suivant devrait suffire:

 VERSIONID(`bsd.home.mc version 1.0')
 OSTYPE(bsd4.4)dnl
 FEATURE(nouucp)dnl
 MAILER(local)dnl
 MAILER(smtp)dnl
 Cwlocalhost
 Cwbsd.home
 MASQUERADE_AS(`example.net')dnl
 FEATURE(allmasquerade)dnl
 FEATURE(masquerade_envelope)dnl
 FEATURE(nocanonify)dnl
 FEATURE(nodns)dnl
 define(`SMART_HOST', `relay.example.net')
 Dmbsd.home
 define(`confDOMAIN_NAME',`bsd.home')dnl
 define(`confDELIVERY_MODE',`deferred')dnl

   Referez-vous `a la section precedente pour des details sur la conversion
   de ce fichier .mc en un fichier sendmail.cf. N'oubliez pas egalement de
   redemarrer sendmail apres la mise `a jour du fichier sendmail.cf.

29.10. Authentification SMTP

   Ecrit par James Gorham.

   Disposer de l'authentification SMTP sur votre serveur de courrier presente
   un certain nombre d'avantages. L'authentification SMTP peut ajouter une
   autre couche de securite `a sendmail, et a l'avantage de donner aux
   utilisateurs mobiles la possibilite d'utiliser le meme serveur de courrier
   sans avoir besoin de reconfigurer les parametres de leur client courrier
   `a chaque deplacement.

    1. Installez security/cyrus-sasl `a partir du catalogue des logiciels
       portes. Vous pouvez trouver ce logiciel porte dans
       security/cyrus-sasl. security/cyrus-sasl dispose de nombreuses options
       de compilation possibles, pour la methode que nous allons utiliser
       ici, assurez-vous de selectionner l'option pwcheck.

    2. Apres avoir installe security/cyrus-sasl, editez
       /usr/local/lib/sasl/Sendmail.conf (ou creez-le s'il n'existe pas) et
       ajoutez la ligne suivante:

 pwcheck_method: passwd

       Cette methode activera au niveau de sendmail l'authentification par
       l'intermediaire de votre base de donnees FreeBSD passwd. Cela nous
       epargne le probleme de la creation d'un nouvel ensemble de nom
       d'utilisateur et de mot de passe pour chaque utilisateur ayant besoin
       de recourir `a l'authentification SMTP, et conserve le meme nom
       d'utilisateur et mot de passe pour le courrier.

    3. Maintenant editez /etc/make.conf et ajoutez les lignes suivantes:

 SENDMAIL_CFLAGS=-I/usr/local/include/sasl1 -DSASL
 SENDMAIL_LDFLAGS=-L/usr/local/lib
 SENDMAIL_LDADD=-lsasl

       Ces lignes passeront `a sendmail les bonnes options de configuration
       au moment de la compilation pour lier cyrus-sasl. Assurez-vous que
       cyrus-sasl a ete installe avant de recompiler sendmail.

    4. Recompilez sendmail en lanc,ant les commandes suivantes:

 # cd /usr/src/usr.sbin/sendmail
 # make cleandir
 # make obj
 # make
 # make install

       La compilation de sendmail ne devrait pas presenter de problemes si le
       repertoire /usr/src n'a pas subi d'enormes changements et si les
       bibliotheques partages necessaires sont disponibles.

    5. Une fois que sendmail a ete compile et reinstalle, editez votre
       fichier /etc/mail/freebsd.mc (ou tout autre fichier que vous utilisez
       comme fichier .mc. De nombreux administrateurs utilisent la sortie de
       hostname(1) comme nom de fichier .mc par unicite). Ajoutez-y les
       lignes qui suivents:

 dnl set SASL options
 TRUST_AUTH_MECH(`GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl
 define(`confAUTH_MECHANISMS', `GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl
 define(`confDEF_AUTH_INFO', `/etc/mail/auth-info')dnl

       Ces options configurent les differentes methodes disponibles pour
       sendmail pour l'authentification des utilisateurs. Si vous desirez
       utiliser une methode autre que pwcheck, veuillez consulter la
       documentation fournie.

    6. Enfin, executez make(1) quand vous etes dans /etc/mail. Cela prendra
       votre nouveau fichier .mc et creera un fichier .cf appele freebsd.cf
       (ou selon tout autre nom que vous avez utilise pour votre fichier
       .mc). Ensuite utilisez la commande make install restart, qui copiera
       le fichier en sendmail.cf, et redemarrera proprement sendmail. Pour
       plus d'informations sur ce processus, vous devriez vous referrer au
       fichier /etc/mail/Makefile.

   Si tout s'est bien passe, vous devriez etre en mesure d'entrer votre
   identifiant dans votre programme de courrier et d'envoyer un message de
   test. Pour plus d'investigation, fixez le LogLevel de sendmail `a 13 et
   scrutez /var/log/maillog `a la recherche d'une erreur.

   Vous pourrez rajouter les lignes suivantes au fichier /etc/rc.conf afin de
   rendre ce service disponible apres chaque demarrage du systeme:

 sasl_pwcheck_enable="YES"
 sasl_pwcheck_program="/usr/local/sbin/pwcheck"

   Cela assurera l'initialisation de SMTP_AUTH, l'authentification SMTP, au
   demarrage du systeme.

   Pour plus d'informations, veuillez consulter la page de la documentation
   de sendmail concernant l'authentification SMTP.

29.11. Clients de messagerie

   Contribution de Marc Silver.

   Un client de messagerie ("Mail User Agent"-MUA) est une application qui
   est utilisee pour envoyer et recevoir du courrier electronique. En outre,
   au fur et `a mesure que le systeme du courrier electronique "evolue" et
   devient plus complexe, les MUA deviennent de plus en plus puissants,
   offrant aux utilisateurs plus de fonctionnalites et de flexibilite.
   FreeBSD offre le support pour de nombreux clients de messagerie, ils
   peuvent tous etre aisement installes `a partir du catalogue des logiciels
   portes de FreeBSD. Les utilisateurs pourront choisir entre des clients de
   messagerie graphiques comme evolution ou balsa, des clients en mode
   console tels que mutt, pine ou mail, ou encore les interfaces Web
   utilisees par certaines organisations importantes.

  29.11.1. mail

   mail(1) est le client de messagerie ("Mail User Agent"-MUA) par defaut de
   FreeBSD. C'est un MUA en mode console qui offre toutes les fonctionnalites
   de base necessaires pour envoyer et lire son courrier electronique en mode
   texte, cependant il est limite en ce qui concerne les possibilites de
   pieces jointes et ne supporte que les boites aux lettres locales.

   Bien que mail ne supporte pas l'interaction avec les serveurs POP ou IMAP,
   ces boites aux lettres peuvent etre telechargees vers un fichier mbox
   local en utilisant une application telle que fetchmail, qui sera abordee
   plus tard dans ce chapitre (Section 29.12, << Utiliser fetchmail >>).

   Afin d'envoyer et de recevoir du courrier electronique, invoquez
   simplement la commande mail comme le montre l'exemple suivant:

 % mail

   Le contenu de la boite aux lettres de l'utilisateur dans /var/mail est
   automatiquement lu par l'utilitaire mail. Si la boite est vide,
   l'utilitaire rend la main avec un message indiquant qu'aucun courrier
   electronique ne peut etre trouve. Une fois que la boite aux lettres a ete
   lue, l'interface de l'application est lancee, et une liste de messages
   sera affichee. Les messages sont automatiquement numerotes, comme on peut
   le voir dans l'exemple suivant:

 Mail version 8.1 6/6/93.  Type ? for help.
 "/var/mail/marcs": 3 messages 3 new
 >N  1 root@localhost        Mon Mar  8 14:05  14/510   "test"
  N  2 root@localhost        Mon Mar  8 14:05  14/509   "user account"
  N  3 root@localhost        Mon Mar  8 14:05  14/509   "sample"

   Les messages peuvent desormais etre lus en utilisant la commande t de
   mail, suivie du numero du message qui devra etre affiche. Dans cet
   exemple, nous lirons le premier courrier electronique:

 % t 1
 Message 1:
 From root@localhost  Mon Mar  8 14:05:52 2004
 X-Original-To: marcs@localhost
 Delivered-To: marcs@localhost
 To: marcs@localhost
 Subject: test
 Date: Mon,  8 Mar 2004 14:05:52 +0200 (SAST)
 From: root@localhost (Charlie Root)

 This is a test message, please reply if you receive it.

   Comme nous pouvons le constater dans l'exemple ci-dessus, l'appuie sur la
   touche t fera afficher le message avec les entetes completes. Pour
   afficher `a nouveau la liste des messages, la touche h doit etre utilisee.

   Si le message necessite une reponse, vous pouvez utiliser mail pour cela,
   en entrant soit la touche R, soit la touche r. La touche R demande `a mail
   de ne repondre qu'`a l'expediteur du message, alors que r repond `a
   l'expediteur mais egalement aux autres destinataires du message. Vous
   pouvez ajouter `a la suite de ces commandes le numero du courrier auquel
   vous desirez repondre. Une fois cela effectue, la reponse doit etre tapee,
   et la fin du message doit etre indiquee par un . sur une nouvelle ligne.
   Ci-dessous est presente un exemple:

 % R 1
 To: root@localhost
 Subject: Re: test

 Thank you, I did get your email.
 .
 EOT

   Afin d'envoyer un nouveau courrier electronique, la touche m doit etre
   utilisee, suivie de l'adresse electronique du destinataire. Plusieurs
   destinataires peuvent egalement etre specifies en separant chaque adresse
   par une ,. Le sujet du message peut alors etre entre, suivi du corps du
   message. La fin d'un message doit etre indiquee en mettant un . seul sur
   une nouvelle ligne.

 % mail root@localhost
 Subject: I mastered mail

 Now I can send and receive email using mail ... :)
 .
 EOT

   Bien qu'`a partir de l'utilitaire mail, la commande ? puisse etre utilisee
   `a tout instant pour afficher l'aide, la page de manuel mail(1) devrait
   etre consultee pour plus d'aide sur mail.

  Note:

   Comme indique precedemment, la commande mail(1) `a l'origine n'a pas ete
   conc,ue pour gerer les pieces jointes, et par consequent ne s'en sort pas
   tres bien `a ce niveau. Les MUAs plus recents comme mutt gerent les pieces
   jointes de maniere plus intelligente. Mais si vous souhaitez toujours
   utiliser mail, le logiciel porte converters/mpack vous sera d'une grande
   aide.

  29.11.2. mutt

   mutt est un client de messagerie leger mais tres puissant, avec de
   nombreuses fonctionnalites, parmi lesquelles:

     * la possibilite de gerer les fils ("threads") de discussions;

     * le support PGP pour la signature electronique et le chiffrage de
       courriers electroniques;

     * le support MIME;

     * le support du format maildir;

     * application hautement configurable et personnalisable.

   Toutes ces caracteristiques font de mutt un des clients de messagerie les
   plus avances. Consultez http://www.mutt.org pour plus d'informations sur
   mutt.

   La version stable de mutt peut etre installee en utilisant le logiciel
   porte mail/mutt, tandis que la version actuellement en developpement peut
   etre installee par l'intermediaire du logiciel porte mail/mutt-devel. Une
   fois installe, mutt peut etre lance en tapant la commande suivante:

 % mutt

   mutt lira automatiquement le contenu de la boite aux lettres de
   l'utilisateur dans /var/mail et en affiche le contenu le cas echeant. Si
   aucun message n'est trouve dans cette boite, alors mutt attendra une
   commande de l'utilisateur. L'exemple ci-dessous montre mutt affichant une
   liste de messages:

   Afin de lire un message, selectionnez-le en utilisant les touches
   flechees, et appuyez sur Entree. Un exemple montrant mutt affichant le
   contenu d'un message est donne ci-dessous:

   Comme avec la commande mail(1), mutt permet aux utilisateurs de repondre
   uniquement `a l'expediteur du message comme egalement `a l'ensemble de ses
   destinataires. Pour repondre uniquement `a l'expediteur du courrier
   electronique, utilisez le raccourci clavier r. Pour faire une reponse
   groupee, qui sera envoyee `a l'expediteur comme `a tous les destinataires
   du message, utilisez la touche g.

  Note:

   mutt emploie vi(1) comme editeur pour la creation et la reponse aux
   courriers electronique. Cela peut etre modifie par l'utilisateur en creant
   son propre fichier .muttrc dans leur repertoire personnel et en
   positionnant la variable editor.

   Pour rediger un nouveau message, appuyez sur la touche m. Apres avoir
   donne un sujet valide, mutt lancera vi(1) et l'integralite du message
   pourra etre ecrite. Une fois le courrier electronique redige, sauvegardez
   et quittez vi et mutt reapparaitra affichant un ecran resumant le courrier
   devant etre envoye. Pour envoyer le message, appuyez sur y. Un exemple de
   resume peut etre vu ci-dessous:

   mutt propose egalement une aide complete, qui peut etre consultee `a
   partir de la plupart des menus en appuyant sur la touche ?. La ligne
   situee en haut de l'ecran affiche egalement les raccourcis clavier
   appropries.

  29.11.3. pine

   pine est destine aux debutants, mais il dispose egalement de fonctions
   avancees.

  Avertissement:

   Plusieurs vulnerabilites exploitables `a distance ont ete decouvertes dans
   le logiciel pine par le passe, autorisant `a un agresseur distant
   d'executer un programme arbitraire en tant qu'utilisateur local du
   systeme, en envoyant un courrier electronique particulier. Tous les
   problemes connus ont ete corriges, mais le code source de pine est ecrit
   d'une maniere assez peu securisee et l'officier de securite de FreeBSD
   pense qu'il existe d'autres failles qui ne sont pas encore decouvertes.
   Vous installez donc pine `a vos propres risques.

   La version actuelle de pine peut etre installee en utilisant le logiciel
   porte mail/pine4. Une fois installe, pine peut etre lance en tapant la
   commande suivante:

 % pine

   Lors du premier lancement de pine, ce dernier affiche une page de
   presentation avec une breve introduction, ainsi qu'un message de la part
   de l'equipe de developpement de pine demandant l'envoi d'un courrier
   electronique anonyme pour leur permettre d'evaluer le nombre
   d'utilisateurs de leur client de messagerie. Pour envoyer ce courrier
   anonyme, appuyez sur Entree, ou sinon appuyez sur E pour quitter la
   presentation sans envoyer de message anonyme. Un exemple de page de
   presentation peut etre vu ci-dessous:

   Le menu principal est ensuite affiche, menu dans lequel il est aise de
   naviguer avec les touches flechees. Ce menu principal fournit les
   raccourcis pour la redaction de nouveaux messages, la navigation dans les
   repertoires de messages, et meme la gestion des entrees du carnet
   d'adresses. Sous le menu principal, les raccourcis clavier correspondants
   pour effectuer les differentes taches sont donnes.

   Le repertoire ouvert par defaut par pine est inbox. Pour afficher l'index
   des messages, appuyez sur I, ou selectionnez l'option MESSAGE INDEX comme
   montre ci-dessous:

   L'index des messages montre les messages dans le repertoire courant, on
   peut se deplacer dans l'index en utilisant les touches flechees. Les
   messages en surbrillance peuvent etre lus en appuyant sur la touche Enter.

   Dans la capture d'ecran ci-dessous, un message d'exemple est affiche par
   pine. Les raccourcis clavier sont affiches au bas de l'ecran. Un exemple
   de raccourci est la touche r, qui demande au programme de repondre au
   message actuellement `a l'ecran.

   La redaction d'une reponse `a un courrier electronique avec pine se fait
   en utilisant l'editeur pico, qui est installe par defaut avec pine.
   L'utilitaire pico rend aise les deplacements dans le message et est plus
   indulgent avec les novices que vi(1) ou mail(1). Une fois la reponse
   redigee, le message peut etre envoye en appuyant sur Ctrl+X. pine vous
   demandera de confirmer votre action.

   Le programme pine peut etre personnalise en utilisant l'option SETUP du
   menu principal. Consultez http://www.washington.edu/pine/ pour plus
   d'information.

29.12. Utiliser fetchmail

   Contribution de Marc Silver.

   fetchmail est un client IMAP et POP complet qui offre aux utilisateurs le
   telechargement automatiquement de leur courrier electronique `a partir de
   serveurs IMAP et POP distants et sa sauvegarde dans des boites aux lettres
   locales; ainsi, le courrier electronique pourra etre consulte plus
   facilement. fetchmail peut etre installe en utilisant le logiciel porte
   mail/fetchmail, et offre diverses fonctionnalites, dont:

     * le support des protocoles POP3, APOP, KPOP, IMAP, ETRN et ODMR;

     * la capacite de faire suivre le courrier electronique en utilisant
       SMTP, ce qui autorise le filtrage, le transfert, et la gestion des
       alias de fonctionner correctement;

     * la possibilite de fonctionner en mode "daemon" pour controler
       periodiquement si il y a de nouveaux messages;

     * la possibilite de recuperer le courrier de plusieurs boites aux
       lettres et de le transferer en fonction d'une configuration bien
       precise aux differents utilisateurs locaux.

   Bien qu'expliquer l'integralite des fonctions de fetchmail depasse le
   cadre de ce document, certaines fonctions de base seront abordees.
   L'utilitaire fetchmail necessite un fichier de configuration nomme
   .fetchmailrc, afin de fonctionner correctement. Ce fichier comprend les
   informations concernant les serveurs ainsi que les accreditations d'acces.
   En raison du caractere sensible du contenu de ce fichier, il est
   recommande de ne le rendre lisible que par l'utilisateur, avec la commande
   suivante:

 % chmod 600 .fetchmailrc

   Le fichier .fetchmailrc suivant sert d'exemple pour recuperer le courrier
   electronique pour un seul utilisateur `a partir d'une boite aux lettres
   utilisant le protocole POP. Il demande `a fetchmail de se connecter `a
   example.com en utilisant le nom d'utilisateur joesoap et le mot de passe
   XXX. Dans cet exemple on suppose que l'utilisateur joesoap est egalement
   un utilisateur sur le systeme local.

 poll example.com protocol pop3 username "joesoap" password "XXX"

   L'exemple suivant presente la connexion `a plusieurs serveurs POP et IMAP
   et la redirection vers differents utilisateurs locaux quand c'est
   necessaire:

 poll example.com proto pop3:
 user "joesoap", with password "XXX", is "jsoap" here;
 user "andrea", with password "XXXX";
 poll example2.net proto imap:
 user "john", with password "XXXXX", is "myth" here;

   L'utilitaire fetchmail peut etre execute en mode "daemon" en le lanc,ant
   avec le parametre -d, suivi par l'intervalle de temps (en secondes) que
   fetchmail doit respecter entre chaque consultation des serveurs listes
   dans le fichier .fetchmailrc. L'exemple suivant demandera `a fetchmail de
   recuperer le courrier toutes les 60 secondes:

 % fetchmail -d 60

   Plus d'informations concernant fetchmail peuvent etre trouvees sur
   http://www.catb.org/~esr/fetchmail/.

29.13. Utiliser procmail

   Contribution de Marc Silver.

   L'utilitaire procmail est une application extremement puissante utilisee
   pour filtrer le courrier electronique entrant. Il permet aux utilisateurs
   de definir des "regles" qui seront utilisees sur le courrier entrant pour
   effectuer des operations particulieres ou pour transferer le courrier vers
   d'autres boites aux lettres et/ou adresses electroniques. procmail peut
   etre installe en utilisant le logiciel porte mail/procmail. Une fois
   installe, il peut etre integre dans la plupart des MTAs, consultez la
   documentation de votre MTA pour plus d'information. Alternativement,
   procmail peut etre integre en ajoutant la ligne suivante `a un fichier
   .forward dans le repertoire personnel de l'utilisateur employant les
   fonctionnalites de procmail:

 "|exec /usr/local/bin/procmail || exit 75"

   La suite de cette section presentera quelques regles de base pour
   procmail, avec une breve description de ce qu'elles font. Ces regles,
   ainsi que d'autres, doivent etre ajoutees dans le fichier .procmailrc, qui
   doit resider dans le repertoire personnel de l'utilisateur.

   La majorite de ces regles peut egalement etre trouvee dans la page de
   manuel de procmailex(5).

   Transferer tout courrier en provenance de user@example.com vers l'adresse
   externe goodmail@example2.com:

 :0
 * ^From.*user@example.com
 ! goodmail@example2.com

   Transferer tous les courriers d'une taille inferieure `a 1000 octets vers
   l'adresse externe goodmail@example2.com:

 :0
 * < 1000
 ! goodmail@example2.com

   Mettre tout le courrier `a destination de alternate@example.com dans une
   boite aux lettres appelee alternate:

 :0
 * ^TOalternate@example.com
 alternate

   Envoyer tous les courriers avec pour sujet "Spam" vers /dev/null:

 :0
 ^Subject:.*Spam
 /dev/null

   Une recette utile pour trier les courriers en provenance des listes de
   diffusion FreeBSD.org et placer chaque liste dans sa propre boite aux
   lettres:

 :0
 * ^Sender:.owner-freebsd-\/[^@]+@FreeBSD.ORG
 {
         LISTNAME=${MATCH}
         :0
         * LISTNAME??^\/[^@]+
         FreeBSD-${MATCH}
 }

Chapitre 30. Serveurs reseau

   Reorganise par Murray Stokely.
   Table des matieres

   30.1. Synopsis

   30.2. Le "super-serveur" inetd

   30.3. Systeme de fichiers reseau (NFS)

   30.4. Services d'information reseau (NIS/YP)

   30.5. Configuration reseau automatique (DHCP)

   30.6. Serveurs de noms (DNS)

   30.7. Serveur HTTP Apache

   30.8. Protocole de transfert de fichiers (FTP)

   30.9. Serveur de fichiers et d'impression pour clients
   Microsoft(R) Windows(R) (Samba)

   30.10. Synchronisation de l'horloge avec NTP

   Version franc,aise de Marc Fonvieille <blackend@FreeBSD.org>.

30.1. Synopsis

   Ce chapitre abordera certains des services reseaux les plus frequemment
   utilises sur les systemes UNIX(R). Nous verrons comment installer,
   configurer, tester et maintenir plusieurs types differents de services
   reseaux. De plus, des exemples de fichier de configuration ont ete inclus
   tout au long de ce chapitre pour que vous puissiez en beneficier.

   Apres la lecture de ce chapitre, vous connaitrez:

     * Comment gerer le "daemon" inetd.

     * Comment configurer un systeme de fichiers reseau.

     * Comment mettre en place un serveur d'information sur le reseau pour
       partager les comptes utilisateurs.

     * Comment configurer le parametrage reseau automatique en utilisant
       DHCP.

     * Comment configurer un serveur de noms de domaine.

     * Comment configurer le serveur HTTP Apache.

     * Comment configurer un serveur de transfert de fichier (FTP).

     * Comment configurer un serveur de fichiers et d'impression pour des
       clients Windows(R) en utilisant Samba.

     * Comment synchroniser l'heure et la date, et mettre en place en serveur
       de temps, avec le protocole NTP.

   Avant de lire ce chapitre, vous devrez:

     * Comprendre les bases des procedures /etc/rc.

     * Etre familier avec la terminologie reseau de base.

     * Savoir comment installer des applications tierce-partie (Chapitre 4,
       Installer des applications: les logiciels pre-compiles et les
       logiciels portes).

30.2. Le "super-serveur" inetd

   Contribution de Chern Lee.
   Mise `a jour pour FreeBSD 6.1-RELEASE par le projet de documentation de
   FreeBSD.

  30.2.1. Generalites

   On fait parfois reference `a inetd(8) comme etant le "super-serveur
   Internet" parce qu'il gere les connexions pour plusieurs services. Quand
   une connexion est rec,ue par inetd, ce dernier determine `a quel programme
   la connexion est destinee, invoque le processus en question et lui delegue
   la "socket" (le programme est invoque avec la "socket" service comme
   entree standard, sortie et descripteurs d'erreur). Executer inetd pour les
   serveurs qui ne sont pas utilises intensement peut reduire la charge
   systeme globale quand on compare avec l'execution de chaque "daemon"
   individuellement en mode autonome.

   inetd est utilise pour invoquer d'autres "daemon"s, mais plusieurs
   protocoles triviaux sont geres directement, comme chargen, auth, et
   daytime.

   Cette section abordera la configuration de base d'inetd `a travers ses
   options en ligne de commande et son fichier de configuration
   /etc/inetd.conf.

  30.2.2. Configuration

   inetd est initialise par l'intermediaire du systeme rc(8). L'option
   inetd_enable est positionnee `a la valeur NO par defaut, mais peut etre
   activee par sysinstall lors de l'installation en fonction de la
   configuration choisie par l'utilisateur. Placer

 inetd_enable="YES"

   ou

 inetd_enable="NO"

   dans /etc/rc.conf activera ou desactivera le lancement d'inetd `a la mise
   en route du systeme. La commande:

 # /etc/rc.d/inetd rcvar

   peut etre lancee pour afficher le parametrage en vigueur.

   De plus, differentes options de ligne de commande peuvent etre passees `a
   inetd par l'intermediaire de l'option inetd_flags.

  30.2.3. Options en ligne de commande

   Comme la plupart des << daemons >>, inetd possede de nombreuses options
   que l'on peut passer `a son lancement afin de modifier son comportement.
   La liste complete des options se presente sous la forme:

   inetd [-d] [-l] [-w] [-W] [-c maximum] [-C taux] [-a adresse | nom de
   machine] [-p fichier] [-R taux] [fichier de configuration]

   Les options peuvent etre passees `a inetd en utilisant le parametre
   inetd_flags dans /etc/rc.conf. Par defaut, inetd_flags contient -wW -C 60,
   qui active le << TCP wrapping >> pour les services inetd, et empeche
   l'invocation d'un service plus de 60 fois par minute `a partir d'une
   unique adresse IP.

   Les novices seront heureux d'apprendre que ce parametrage n'a en general
   pas besoin d'etre modifie, cependant nous presentons ci-dessous les
   options de limitation du taux d'invocation etant donne que cela peut etre
   utile si vous recevez une quantite excessive de connexions. Une liste
   complete d'options peut etre trouvee dans la page de manuel de inetd(8).

   -c maximum

           Specifie le nombre maximal par defaut d'invocations simultanees
           pour chaque service; il n'y a pas de limite par defaut. Cette
           option peut etre surchargee pour chaque service `a l'aide du
           parametre nb-max-enfants.

   -C taux

           Precise le nombre maximal de fois qu'un service peut etre invoque
           `a partir d'une unique adresse IP et cela sur une minute. Ce
           parametre peut etre configure differemment pour chaque service
           avec le parametre nb-max-connexions-par-ip-par-minute.

   -R taux

           Precise le nombre maximal de fois qu'un service peut etre invoque
           par minute; la valeur par defaut est 256. Un taux de 0 autorise un
           nombre illimite d'invocations.

   -s maximum

           Precise le nombre maximal de fois qu'un service peut etre invoque
           simultanement `a partir d'une adresse IP unique; il n'y a pas de
           limite par defaut. Cette option peut-etre surchargee pour chaque
           service individuellement avec le parametre max-child-per-ip.

  30.2.4. inetd.conf

   La configuration d'inetd se fait par l'intermediaire du fichier
   /etc/inetd.conf.

   Quand le fichier /etc/inetd.conf est modifie, inetd peut etre force de
   relire son fichier de configuration en utilisant la commande:

   Exemple 30.1. Recharger le fichier de configuration d'inetd

 # /etc/rc.d/inetd reload

   Chaque ligne du fichier de configuration ne mentionne qu'un seul "daemon".
   Les commentaires dans le fichier sont precedes par un "#". Le format de
   chaque entree du fichier /etc/inetd.conf est le suivant:

 nom-du-service
 type-de-socket
 protocole
 {wait|nowait}[/nb-max-enfants[/nb-connexions-max-par-minute]]
 {wait|nowait}[/nb-max-enfants[/nb-connexions-max-par-minute[/nb-max-enfants-par-ip]]]
 utilisateur[:groupe][/classe-session]
 programme-serveur
 arguments-du-programme-serveur

   Un exemple d'entree pour le "daemon" ftpd(8) utilisant l'IPv4
   ressemblerait:

 ftp     stream  tcp     nowait  root    /usr/libexec/ftpd       ftpd -l

   nom-du-service

           C'est le nom de service du "daemon" en question. Il doit
           correspondre `a un des services listes dans le fichier
           /etc/services. Cela determine quel port inetd doit ecouter. Si un
           nouveau service est cree, il doit etre ajoute en premier lieu dans
           /etc/services.

   type-de-socket

           Soit stream, soit dgram, soit raw, ou seqpacket. stream doit etre
           utilise pour les "daemon"s TCP, alors que dgram est utilise pour
           les "daemon"s utilisant le protocole UDP.

   protocole

           Un des suivants:

                     Protocole                        Explication             
           tcp, tcp4                      TCP IPv4                            
           udp, udp4                      UDP IPv4                            
           tcp6                           TCP IPv6                            
           udp6                           UDP IPv6                            
           tcp46                          TCP IPv4 et v6                      
           udp46                          UDP IPv4 et v6                      

   {wait|nowait}[/nb-max-enfants[/nb-max-connexions-par-ip-par-minute[/nb-max-enfants-par-ip]]]

           wait|nowait indique si le "daemon" invoque par inetd est capable
           ou non de gerer sa propre "socket". Les "socket"s de type dgram
           doivent utiliser l'option wait, alors que les "daemons `a socket
           stream", qui sont generalement multi-threades, devraient utiliser
           nowait. L'option wait a generalement pour consequence de fournir
           plusieurs "socket"s `a un "daemon", tandis que l'option nowait
           invoquera un "daemon" enfant pour chaque nouvelle "socket".

           Le nombre maximal de "daemon"s qu'inetd peut invoquer peut etre
           fixe en utilisant l'option nb-max-enfants. Si une limite de dix
           instances pour un "daemon" est necessaire, /10 devra etre place
           apres nowait. Specifier /0 autorise un nombre illimite d'enfant.

           En plus de nb-max-enfants, deux autres options limitant le nombre
           maximal de connexions `a partir d'un emplacement vers un "daemon"
           particulier peuvent etre activeees. L'option
           nb-max-connexions-par-ip-par-minute limite le nombre de connexions
           par minutes `a partir d'une adresse IP donnee, par exemple, une
           valeur de dix limiterait `a dix le nombre de tentatives de
           connexions par minute pour une adresse IP particuliere. L'option
           max-child-per-ip limite le nombre d'enfants qui peuvent etre
           lances pour une adresse IP unique `a un instant donne. Ces options
           sont utiles pour empecher l'abus excessif intentionnel ou par
           inadvertance des ressources d'une machine et les attaques par deni
           de service (<< Denial of Service-DOS >>).

           Dans ce champ, wait ou nowait est obligatoire. nb-max-enfants,
           nb-max-connexions-par-ip-par-minute et max-child-per-ip sont
           optionnelles.

           Un "daemon" utilisant un flux de type multi-threade sans limites
           nb-max-enfants, nb-max-connexions-par-ip-par-minute ou
           max-child-per-ip sera tout simplement affecte de l'option nowait.

           Le meme "daemon" avec une limite maximale de dix "daemon" serait:
           nowait/10.

           La meme configuration avec une limite de vingt connexions par
           adresse IP par minute et une limite maximale de dix "daemon"s
           enfant serait: nowait/10/20.

           Ces options sont utilisees comme valeurs par defaut par le
           "daemon" fingerd(8), comme le montre ce qui suit:

 finger stream  tcp     nowait/3/10 nobody /usr/libexec/fingerd fingerd -s

           Et enfin, un exemple de champ avec un maximum de 100 enfants en
           tout, avec un maximum de 5 adresses IP distinctes serait:
           nowait/100/0/5.

   utilisateur

           C'est l'utilisateur sous lequel le "daemon" en question est
           execute. En general les "daemon"s tournent sous l'utilisateur
           root. Pour des questions de securite, il est courant de rencontrer
           des serveurs tournant sous l'utilisateur daemon, ou sous
           l'utilisateur avec le moins de privileges: nobody.

   programme-serveur

           Le chemin complet du "daemon" qui doit etre execute quand une
           requete est rec,ue. Si le "daemon" est un service fourni en
           interne par inetd, alors l'option internal devrait etre utilisee.

   arguments-programme-serveur

           Cette option va de pair avec programme-serveur en precisant les
           arguments, en commenc,ant avec argv[0], passes au "daemon" lors de
           son invocation. Si mydaemon -d est la ligne de commande, mydaemon
           -d sera la valeur de l'option arguments-programme-serveur. Ici
           egalement, si le "daemon" est un service interne, utilisez
           internal.

  30.2.5. Securite

   En fonction des choix effectues `a l'installation, plusieurs services
   peuvent etre actives par defaut. S'il n'y a pas de raison particuliere `a
   l'utilisation d'un "daemon", envisagez de le desactiver. Ajoutez un
   caractere "#" devant le "daemon" en question dans le fichier
   /etc/inetd.conf, et ensuite rechargez la configuration d'inetd. Certains
   << daemon >>s comme fingerd, devraient etre evites parce qu'ils peuvent
   fournir des informations utiles aux personnes malveillantes.

   Certains "daemon"s n'ont aucune conscience des problemes de securite, et
   ont un long delai limite, ou pas du tout, d'expiration pour les tentatives
   de connexions. Cela permet `a une personne malveillante d'envoyer
   regulierement et de maniere espacee des demandes de connexions `a un
   "daemon" particulier, avec pour consequence de saturer les ressources
   disponibles. Cela peut etre une bonne idee de placer des limitations
   nb-max-connexions-par-ip-par-minute, max-child ou nb-max-enfants sur
   certains << daemon >>s si vous trouvez que vous avez trop de connexions.

   Par defaut, le "TCP wrapping" est active. Consultez la page de manuel
   hosts_access(5) pour plus d'information sur le placement de restrictions
   TCP pour divers "daemon"s invoques par inetd.

  30.2.6. Divers

   daytime, time, echo, discard, chargen, et auth sont des services fournis
   en interne par inetd.

   Le service auth fournit les services reseau d'identification, et est
   configurable `a un certain degre, alors que les autres services ne peuvent
   etre que stoppes ou en fonctionnement.

   Consultez la page de manuel de inetd(8) pour plus d'informations.

30.3. Systeme de fichiers reseau (NFS)

   Reorganise et augmente par Tom Rhodes.
   Ecrit par Bill Swingle.

   Parmi les differents systemes de fichiers que FreeBSD supporte se trouve
   le systeme de fichiers reseau, connu sous le nom de NFS. NFS permet `a un
   systeme de partager des repertoires et des fichiers avec d'autres systemes
   par l'intermediaire d'un reseau. En utilisant NFS, les utilisateurs et les
   programmes peuvent acceder aux fichiers sur des systemes distants comme
   s'ils etaient des fichiers locaux.

   Certains des avantages les plus remarquables offerts par NFS sont:

     * Les stations de travail utilisent moins d'espace disque en local parce
       que les donnees utilisees en commun peuvent etre stockees sur une
       seule machine tout en restant accessibles aux autres machines sur le
       reseau.

     * Les utilisateurs n'ont pas besoin d'avoir un repertoire personnel sur
       chaque machine du reseau. Les repertoires personnels pourront se
       trouver sur le serveur NFS et seront disponibles par l'intermediaire
       du reseau.

     * Les peripheriques de stockage comme les lecteurs de disquettes, de
       CDROM, de disquettes Zip(R) peuvent etre utilises par d'autres
       machines sur le reseau. Cela pourra reduire le nombre de lecteurs de
       medias amovibles sur le reseau.

  30.3.1. Comment NFS fonctionne

   NFS consiste en deux elements principaux: un serveur et un ou plusieurs
   clients. Le client accede `a distance aux donnees stockees sur la machine
   serveur. Afin que tout cela fonctionne correctement quelques processus
   doivent etre configures et en fonctionnement.

   Sur le serveur, les "daemons" suivants doivent tourner:

   Daemon                             Description                             
   nfsd    Le "daemon" NFS qui repond aux requetes des clients NFS.           
   mountd  Le "daemon" de montage NFS qui traite les requetes que lui passe   
           nfsd(8).                                                           
   rpcbind Ce << daemon >> permet aux clients NFS de trouver le port que le   
           serveur NFS utilise.                                               

   Le client peut egalement faire tourner un "daemon" connu sous le nom de
   nfsiod. Le "daemon" nfsiod traite les requetes en provenance du serveur
   NFS. Ceci est optionnel, et ameliore les performances, mais n'est pas
   indispensable pour une utilisation normale et correcte. Consultez la page
   de manuel nfsiod(8) pour plus d'informations.

  30.3.2. Configurer NFS

   La configuration de NFS est une operation relativement directe. Les
   processus qui doivent tourner peuvent tous etre lances au demarrage en
   modifiant legerement votre fichier /etc/rc.conf.

   Sur le serveur NFS, assurez-vous que les options suivantes sont
   configurees dans le fichier /etc/rc.conf:

 rpcbind_enable="YES"
 nfs_server_enable="YES"
 mountd_flags="-r"

   mountd est automatiquement execute des que le serveur NFS est active.

   Sur le client, assurez-vous que cette option est presente dans le fichier
   /etc/rc.conf:

 nfs_client_enable="YES"

   Le fichier /etc/exports indique quels systemes de fichiers NFS devraient
   etre exportes (parfois on utilise le terme de "partages"). Chaque ligne
   dans /etc/exports precise un systeme de fichiers `a exporter et quelles
   machines auront acces `a ce systeme de fichiers. En plus des machines qui
   auront acces, des options d'acces peuvent egalement etre presentes. Ces
   options sont nombreuses mais seules quelques unes seront abordees ici.
   Vous pouvez aisement decouvrir d'autres options en lisant la page de
   manuel exports(5).

   Voici quelques exemples d'entrees du fichier /etc/exports:

   Les exemples suivants donnent une idee de comment exporter des systemes de
   fichiers bien que certains parametres peuvent etre differents en fonction
   de votre environnement et votre configuration reseau. Par exemple, pour
   exporter le repertoire /cdrom pour les trois machines d'exemple qui
   appartiennent au meme domaine que le serveur (d'ou l'absence du nom de
   domaine pour chacune d'entre elles) ou qui ont une entree dans votre
   fichier /etc/hosts. Le parametre -ro limite l'acces en lecture seule au
   systeme de fichiers exporte. Avec ce parametre, le systeme distant ne
   pourra pas ecrire sur le systeme de fichiers exporte.

 /cdrom -ro host1 host2 host3

   La ligne suivante exporte /home pour les trois machines en utilisant les
   adresses IP. C'est une configuration utile si vous disposez d'un reseau
   prive sans serveur DNS configure. Le fichier /etc/hosts pourrait
   eventuellement etre configure pour les noms de machines internes,
   consultez la page de manuel hosts(5) pour plus d'information. Le parametre
   -alldirs autorise l'utilisation des sous-repertoires en tant que point de
   montage. En d'autres termes, il ne montera pas les sous-repertoires mais
   autorisera le client `a ne monter que les repertoires qui sont necessaires
   ou desires.

 /home  -alldirs  10.0.0.2 10.0.0.3 10.0.0.4

   La ligne suivante exporte /a pour que deux clients d'un domaine different
   puissent y acceder. Le parametre -maproot=root autorise l'utilisateur root
   du systeme distant `a ecrire des donnees sur le systeme de fichiers
   exporte en tant que root. Si le parametre -maproot=root n'est pas precise,
   meme si un utilisateur dispose d'un acces root sur le systeme distant, il
   ne pourra pas modifier de fichiers sur le systeme de fichiers exporte.

 /a  -maproot=root  host.example.com box.example.org

   Afin de pouvoir acceder `a un systeme de fichiers exporte, le client doit
   avoir les permissions de le faire. Assurez-vous que le client est
   mentionne dans votre fichier /etc/exports.

   Dans /etc/exports, chaque ligne represente l'information d'exportation
   d'un systeme de fichiers vers une machine. Une machine distante ne peut
   etre specifiee qu'une fois par systeme de fichiers, et ne devrait avoir
   qu'une seule entree par defaut. Par exemple, supposons que /usr soit un
   seul systeme de fichiers. Le fichier /etc/exports suivant serait invalide:

 # Invalide quand /usr est un systeme de fichiers
 /usr/src   client
 /usr/ports client

   Un systeme de fichiers, /usr, a deux lignes precisant des exportations
   vers la meme machine, client. Le format correct pour une telle situation
   est:

 /usr/src /usr/ports  client

   Les proprietes d'un systeme de fichiers exporte vers une machine donnee
   devraient apparaitre sur une ligne. Les lignes sans client sont traitees
   comme destinee `a une seule machine. Cela limite la maniere dont vous
   pouvez exporter les systemes de fichiers, mais pour la plupart des gens
   cela n'est pas un probleme.

   Ce qui suit est un exemple de liste d'exportation valide, ou les
   repertoires /usr et /exports sont des systemes de fichiers locaux:

 # Exporte src et ports vers client01 et client02, mais seul
 # client01 dispose des privileges root dessus
 /usr/src /usr/ports -maproot=root    client01
 /usr/src /usr/ports               client02
 # Les machines clientes ont les privileges root et peuvent monter tout
 # de /exports.  N'importe qui peut monter en lecture seule
 # /exports/obj
 /exports -alldirs -maproot=root      client01 client02
 /exports/obj -ro

   Le << daemon >> mountd doit etre force de relire le fichier /etc/exports
   `a chacune de ses modifications, afin que les changements puissent prendre
   effet. Cela peut etre effectue soit en envoyant un signal HUP au
   << daemon >>:

 # kill -HUP `cat /var/run/mountd.pid`

   soit en invoquant la procedure rc(8) de mountd avec le parametre
   approprie:

 # /etc/rc.d/mountd onereload

   Veuillez consulter la Section 11.6, << Utilisation du systeme rc(8) sous
   FreeBSD >> pour plus d'information sur l'utilisation des procedures rc.

   De plus, un redemarrage permettra `a FreeBSD de tout configurer
   proprement. Un redemarrage n'est cependant pas necessaire. Executer les
   commandes suivantes en tant que root devrait mettre en place ce qui est
   necessaire.

   Sur le serveur NFS:

 # rpcbind
 # nfsd -u -t -n 4
 # mountd -r

   Sur le client NFS:

 # nfsiod -n 4

   Maintenant il devrait etre possible de monter un systeme de fichiers
   distant. Dans nos exemples le nom du serveur sera serveur et le nom du
   client client. Si vous voulez monter temporairement un systeme de fichiers
   distant ou vous voulez simplement tester la configuration, executez juste
   une commande comme celle-ci en tant que root sur le client:

 # mount serveur:/home /mnt

   Cela montera le repertoire /home situe sur le serveur au point /mnt sur le
   client. Si tout est correctement configure vous devriez etre en mesure
   d'entrer dans le repertoire /mnt sur le client et de voir tous les
   fichiers qui sont sur le serveur.

   Si vous desirez monter automatiquement un systeme de fichiers distant `a
   chaque demarrage de l'ordinateur, ajoutez le systeme de fichiers au
   fichier /etc/fstab. Voici un exemple:

 server:/home    /mnt    nfs     rw      0       0

   La page de manuel fstab(5) liste toutes les options disponibles.

  30.3.3. Verrouillage

   Certaines applications (par exemple mutt) ont besoin du verrouillage des
   fichiers pour fonctionner correctement. Dans le cas du NFS, rpc.lockd peut
   etre utilise pour assurer le verrouillage des fichiers. Pour l'activer,
   ajouter ce qui suit au fichier /etc/rc.conf sur les machines clientes et
   serveur (on suppose que les clients et le serveur NFS sont dej`a
   configures):

 rpc_lockd_enable="YES"
 rpc_statd_enable="YES"

   Lancez l'application en utilisant:

 # /etc/rc.d/nfslocking start

   Si un verrouillage reel n'est pas necessaire entre les clients et le
   serveur NFS, il est possible de laisser le client NFS effectuer le
   verrouillage localement en passant l'option -L `a mount_nfs(8). Veuillez
   vous referer `a la page de manuel mount_nfs(8) pour de plus amples
   details.

  30.3.4. Exemples pratiques d'utilisation

   Il existe de nombreuses applications pratiques de NFS. Les plus communes
   sont presentes ci-dessous:

     * Configurer plusieurs machines pour partager un CDROM ou un autre
       medium. C'est moins cher et souvent une methode plus pratique pour
       installer des logiciels sur de multiples machines.

     * Sur les reseaux importants, il peut etre plus pratique de configurer
       un serveur NFS central sur lequel tous les repertoires utilisateurs
       sont stockes. Ces repertoires utilisateurs peuvent alors etre exportes
       vers le reseau, les utilisateurs devraient alors toujours avoir le
       meme repertoire utilisateur independamment de la station de travail
       sur laquelle ils ouvrent une session.

     * Plusieurs machines pourront avoir un repertoire /usr/ports/distfiles
       commun. De cette maniere, quand vous avez besoin d'installer un
       logiciel porte sur plusieurs machines, vous pouvez acceder rapidement
       aux sources sans les telecharger sur chaque machine.

  30.3.5. Montages automatiques avec amd

   Contribution de Wylie Stilwell.
   Reecrit par Chern Lee.

   amd(8) ("automatic mounter daemon"-"daemon" de montage automatique) monte
   automatiquement un systeme de fichiers distant des que l'on accede `a un
   fichier ou un repertoire contenu par ce systeme de fichiers. Les systemes
   de fichiers qui sont inactifs pendant une certaine periode seront
   automatiquement demontes par amd. L'utilisation d'amd offre une
   alternative simple aux montages permanents qui sont generalement listes
   dans /etc/fstab.

   amd opere en s'attachant comme un serveur NFS aux repertoires /host et
   /net. Quand on accede `a un fichier `a l'interieur de ces repertoires, amd
   recherche le montage distant correspondant et le monte automatiquement.
   /net est utilise pour monter un systeme de fichiers exporte `a partir
   d'une adresse IP, alors que /host est utilise pour monter un systeme de
   fichiers exporte `a partir d'un nom de machine distant.

   Un acces `a un fichier dans /host/foobar/usr demandera `a amd de tenter de
   monter l'export /usr sur la machine foobar.

   Exemple 30.2. Monter un systemes de fichiers exporte avec amd

   Vous pouvez voir les systemes de fichiers exportes par une machine
   distante avec la commande showmount. Par exemple, pour voir les
   repertoires exportes par une machine appelee foobar, vous pouvez utiliser:

 % showmount -e foobar
 Exports list on foobar:
 /usr                               10.10.10.0
 /a                                 10.10.10.0
 % cd /host/foobar/usr

   Comme on le voit dans l'exemple, showmount liste /usr comme une
   exportation. Quand on change de repertoire pour /host/foobar/usr, amd
   tente de resoudre le nom de machine foobar et de monter automatiquement le
   systeme exporte desire.

   amd peut etre lance par les procedures de demarrage en ajoutant les lignes
   suivantes dans le fichier /etc/rc.conf:

 amd_enable="YES"

   De plus, des parametres peuvent etre passes `a amd `a l'aide de l'option
   amd_flags. Par defaut, l'option amd_flags est possitionnee `a:

 amd_flags="-a /.amd_mnt -l syslog /host /etc/amd.map /net /etc/amd.map"

   Le fichier /etc/amd.map definit les options par defaut avec lesquelles les
   systemes exportes sont montes. Le fichier /etc/amd.conf definit certaines
   des fonctionnalites les plus avancees de amd.

   Consultez les pages de manuel de amd(8) et amd.conf(5) pour plus
   d'informations.

  30.3.6. Problemes d'integration avec d'autres systemes

   Contribution de John Lind.

   Certaines cartes Ethernet ISA presentent des limitations qui peuvent poser
   de serieux problemes sur un reseau, en particulier avec NFS. Ce n'est pas
   une particularite de FreeBSD, mais FreeBSD en est egalement affecte.

   Ce probleme se produit pratiquement `a chaque fois que des systemes
   (FreeBSD) PC sont sur le meme reseau que des stations de travail tres
   performantes, comme celles de Silicon Graphics, Inc. et Sun Microsystems,
   Inc. Les montages NFS se feront sans difficulte, et certaines operations
   pourront reussir, puis soudain le serveur semblera ne plus repondre au
   client, bien que les requetes vers ou en provenance d'autres systemes
   continueront `a etre traitees normalement. Cela se manifeste sur la
   machine cliente, que ce soit le systeme FreeBSD ou la station de travail.
   Sur de nombreux systemes, il n'est pas possible d'arreter le client
   proprement une fois que ce probleme apparait. La seule solution est
   souvent de reinitialiser le client parce que le probleme NFS ne peut etre
   resolu.

   Bien que la solution "correcte" est d'installer une carte Ethernet plus
   performante et de plus grande capacite sur le systeme FreeBSD, il existe
   une solution simple qui donnera satisfaction. Si le systeme FreeBSD est le
   serveur, ajoutez l'option -w=1024 lors du montage sur le client. Si le
   systeme FreeBSD est le client, alors montez le systeme de fichiers NFS
   avec l'option -r=1024. Ces options peuvent etre specifiees dans le
   quatrieme champ de l'entree fstab sur le client pour les montages
   automatiques, ou en utilisant le parametre -o de la commande mount(8) pour
   les montages manuels.

   Il faut noter qu'il existe un probleme different, que l'on confond parfois
   avec le precedent, qui peut se produire lorsque les serveurs et les
   clients NFS sont sur des reseaux differents. Si c'est le cas, assurez-vous
   que vos routeurs transmettent bien les informations UDP necessaires, ou
   vous n'irez nulle part, quoi que vous fassiez par ailleurs.

   Dans les exemples suivants, fastws est le nom de la station de travail
   (interface) performante, et freebox celui d'une machine (interface)
   FreeBSD avec une carte Ethernet moins performante. /sharedfs est le
   systeme de fichiers NFS qui sera exporte (consulter la page de manuel
   exports(5)), et /project sera le point de montage sur le client pour le
   systeme de fichiers exporte. Dans tous les cas, des options
   supplementaires, telles que hard soft et bg seront peut-etre necessaires
   pour vos applications.

   Exemple d'extrait du fichier /etc/fstab sur freebox quand le systeme
   FreeBSD (freebox) est le client:

 fastws:/sharedfs /project nfs rw,-r=1024 0 0

   Commande de montage manuelle sur freebox:

 # mount -t nfs -o -r=1024 fastws:/sharedfs /project

   Exemple d'extrait du fichier /etc/fstab sur fastws quand le systeme
   FreeBSD est le serveur:

 freebox:/sharedfs /project nfs rw,-w=1024 0 0

   Commande de montage manuelle sur fastws:

 # mount -t nfs -o -w=1024 freebox:/sharedfs /project

   Presque n'importe quelle carte Ethernet 16 bits permettra d'operer sans
   l'utilisation des parametres restrictifs precedents sur les tailles des
   tampons de lecture et d'ecriture.

   Pour ceux que cela interesse, voici ce qui se passe quand le probleme
   survient, ce qui explique egalement pourquoi ce n'est pas recuperable. NFS
   travaille generalement avec une taille de "bloc" de 8 k (bien qu'il arrive
   qu'il les fragmente en de plus petits morceaux). Comme la taille maximale
   d'un paquet Ethernet est de 1500 octets, le "bloc" NFS est divise en
   plusieurs paquets Ethernet, bien qu'il soit toujours vu comme quelque
   chose d'unitaire par les couches superieures du code, et doit etre
   receptionne, assemble, et acquitte comme tel. Les stations de travail
   performantes peuvent traiter les paquets qui composent le bloc NFS les uns
   apres les autres, pratiquement aussi rapidement que le standard le permet.
   Sur les cartes les plus petites, de moindre capacite, les derniers paquets
   d'un meme bloc ecrasent les paquets precedents avant qu'ils aient pu etre
   transmis `a la machine et le bloc ne peut etre reassemble ou acquitte.
   Avec pour consequence, le depassement du delai d'attente sur la station de
   travail qui recommence alors la transmission, mais en renvoyant
   l'integralite des 8 K, et ce processus se repete `a l'infini.

   En definissant la taille de bloc inferieure `a la taille d'un paquet
   Ethernet, nous nous assurons que chaque paquet Ethernet complet sera
   acquitte individuellement, evitant ainsi la situation de blocage.

   Des ecrasements peuvent toujours survenir quand des stations de travail
   performantes surchargent un systeme PC de donnees, mais avec de meilleures
   cartes, de tels ecrasements ne sont pas systematiques pour les "blocs"
   NFS. Quand un ecrasement apparait, les blocs affectes sont retransmis, et
   ils y a de fortes chances pour qu'ils soient rec,us, assembles et
   acquittes.

30.4. Services d'information reseau (NIS/YP)

   Ecrit par Bill Swingle.
   Augmente par Eric Ogren et Udo Erdelhoff.

  30.4.1. Qu'est-ce que c'est?

   NIS, qui signifie "Network Information Services" (services d'information
   reseau), fut developpe par Sun Microsystems pour centraliser
   l'administration de systemes UNIX(R) (`a l'origine SunOS(TM)). C'est
   devenu aujourd'hui un standard industriel; tous les systemes importants de
   type UNIX(R) (Solaris(TM), HP-UX, AIX(R), Linux, NetBSD, OpenBSD, FreeBSD,
   etc.) supportent NIS.

   NIS etait appele au depart "Yellow Pages" (page jaunes), mais etant donne
   que c'etait marque deposee, Sun changea le nom. L'ancienne appelation (et
   yp) est toujours rencontree et utilisee.

   C'est un systeme client/serveur base sur les RPCs qui permet `a un groupe
   de machines d'un domaine NIS de partager un ensemble de fichiers de
   configuration communs. Cela permet `a un administrateur systeme de mettre
   en place des clients NIS avec un minimum de configuration et d'ajouter,
   modifier ou supprimer les informations de configuration `a partir d'un
   unique emplacement.

   C'est similaire au systeme de domaine Windows NT(R); bien que
   l'implementation interne des deux n'est pas du tout identique, les
   fonctionnalites de base sont comparables.

  30.4.2. Termes/processus `a connaitre

   Il existe plusieurs termes et processus utilisateurs que vous rencontrerez
   lors de la configuration de NIS sous FreeBSD, que vous vouliez mettre en
   place un serveur NIS ou un client NIS:

         Terme                              Description                       
                      Un serveur maitre NIS et tous ses clients (y compris    
   Nom de domaine NIS ses serveurs esclaves) ont un domaine NIS. Similaire au 
                      nom de domaine Windows NT(R), le nom de domaine NIS n'a 
                      rien `a voir avec le systeme DNS.                       
                      Doit tourner afin d'activer les RPC (Remote Procedure   
                      Call, appel de procedures distantes, un protocole       
   rpcbind            reseau utilise par NIS). Si rpcbind ne tourne pas, il   
                      sera impossible de faire fonctionner un serveur NIS, ou 
                      jouer le role d'un client NIS.                          
                      Fait pointer un client NIS vers son serveur NIS. Il     
                      recuperera le nom de domaine NIS aupres du systeme, et  
                      en utilisant les RPC, se connectera au serveur. ypbind  
   ypbind             est le coeur de la communication client-serveur dans un 
                      environnement NIS; si ypbind meurt sur une machine      
                      cliente, elle ne sera pas en mesure d'acceder au        
                      serveur NIS.                                            
                      Ne devrait tourner que sur les serveurs NIS, c'est le   
                      processus serveur en lui-meme. Si ypserv(8) meurt,      
                      alors le serveur ne pourra plus repondre aux requetes   
                      NIS (avec un peu de chance, un serveur esclave prendra  
                      la releve). Il existe des implementations de NIS (mais  
   ypserv             ce n'est pas le cas de celle de FreeBSD), qui           
                      n'essayent pas de se reconnecter `a un autre serveur si 
                      le serveur utilise precedemment meurt. Souvent, la      
                      seule solution dans ce cas est de relancer le processus 
                      serveur (ou meme redemarrer le serveur) ou le processus 
                      ypbind sur le client.                                   
                      Un autre processus qui ne devrait tourner que sur les   
                      serveurs maitre NIS; c'est un "daemon" qui permettra    
   rpc.yppasswdd      aux clients de modifier leur mot de passe NIS. Si ce    
                      "daemon" ne tourne pas, les utilisateurs devront ouvrir 
                      une session sur le serveur maitre NIS et y changer `a   
                      cet endroit leur mot de passe.                          

  30.4.3. Comment cela fonctionne-t-il?

   Dans un environnement NIS il y a trois types de machines: les serveurs
   maitres, les serveurs esclaves et les clients. Les serveurs centralisent
   les informations de configuration des machines. Les serveurs maitres
   detiennent l'exemplaire de reference de ces informations, tandis que les
   serveurs esclaves en ont un double pour assurer la redondance. Les clients
   attendent des serveurs qu'ils leur fournissent ces informations.

   Le contenu de nombreux fichiers peut etre partage de cette maniere. Les
   fichiers master.passwd, group, et hosts sont frequemment partages par
   l'intermediaire de NIS. A chaque fois qu'un processus d'une machine
   cliente a besoin d'une information qu'il trouverait normalement localement
   dans un de ces fichiers, il emet une requete au serveur NIS auquel il est
   rattache pour obtenir cette information.

    30.4.3.1. Type de machine

     * Un serveur NIS maitre. Ce serveur, analogue `a un controleur de
       domaine Windows NT(R) primaire, gere les fichiers utilises par tous
       les clients NIS. Les fichiers passwd, group, et les autres fichiers
       utilises par les clients NIS resident sur le serveur maitre.

  Note:

       Il est possible pour une machine d'etre un serveur NIS maitre pour
       plus qu'un domaine NIS. Cependant, ce cas ne sera pas aborde dans
       cette introduction, qui suppose un environnement NIS relativement
       petit.

     * Serveurs NIS esclaves. Similaire aux controleurs de domaine
       Windows NT(R) de secours, les serveurs NIS esclaves possedent une
       copie des fichiers du serveur NIS maitre. Les serveurs NIS esclaves
       fournissent la redondance necessaire dans les environnements
       importants. Ils aident egalement `a `a la repartition de la charge du
       serveur maitre: les clients NIS s'attachent toujours au serveur NIS
       dont ils rec,oivent la reponse en premier, y compris si c'est la
       reponse d'un serveur esclave.

     * Clients NIS. Les clients NIS, comme la plupart des stations de travail
       Windows NT(R), s'identifient aupres du serveur NIS (ou le controleur
       de domaine Windows NT(R) dans le cas de stations de travail
       Windows NT(R)) pour l'ouverture de sessions.

  30.4.4. Utiliser NIS/YP

   Cette section traitera de la configuration d'un exemple d'environnement
   NIS.

    30.4.4.1. Planification

   Supposons que vous etes l'administrateur d'un petit laboratoire
   universitaire. Ce laboratoire dispose de 15 machines FreeBSD, et ne
   possede pas actuellement de point central d'administration; chaque machine
   a ses propres fichiers /etc/passwd et /etc/master.passwd. Ces fichiers
   sont maintenus `a jour entre eux grace `a des interventions manuelles;
   actuellement quand vous ajoutez un utilisateur pour le laboratoire, vous
   devez executer adduser sur les 15 machines. Cela doit changer, vous avez
   donc decide de convertir le laboratoire `a l'utilisation de NIS en
   utilisant deux machines comme serveurs.

   La configuration du laboratoire ressemble `a quelque chose comme:

      Nom de machine          Adresse IP            Role de la machine        
   ellington             10.0.0.2             Maitre NIS                      
   coltrane              10.0.0.3             Esclave NIS                     
   basie                 10.0.0.4             Station de travail              
   bird                  10.0.0.5             Machine cliente                 
   cli[1-11]             10.0.0.[6-17]        Autres machines clientes        

   Si vous mettez en place un systeme NIS pour la premiere fois, c'est une
   bonne idee de penser `a ce que vous voulez en faire. Peu importe la taille
   de votre reseau, il y a quelques decisions `a prendre.

      30.4.4.1.1. Choisir un nom de domaine NIS

   Ce n'est pas le "nom de domaine" dont vous avez l'habitude. Il est plus
   exactement appele "nom de domaine NIS". Quand un client diffuse des
   requetes pour obtenir des informations, il y inclut le nom de domaine NIS
   auquel il appartient. C'est ainsi que plusieurs serveurs d'un meme reseau
   peuvent savoir lequel d'entre eux doit repondre aux differentes requetes.
   Pensez au nom de domaine NIS comme le nom d'un groupe de machines qui sont
   reliees entre elles.

   Certains choisissent d'utiliser leur nom de domaine Internet pour nom de
   domaine NIS. Ce n'est pas conseille parce que c'est une source de
   confusion quand il faut resoudre un probleme reseau. Le nom de domaine NIS
   devrait etre unique sur votre reseau et est utile s'il decrit le groupe de
   machines qu'il represente. Par exemple, le departement artistique de Acme
   Inc. pourrait avoir "acme-art" comme nom de domaine NIS. Pour notre
   exemple, nous supposerons que vous avez choisi le nom test-domain.

   Cependant, certains systemes d'exploitation (notamment SunOS(TM))
   utilisent leur nom de domaine NIS pour nom de domaine Internet. Si une ou
   plusieurs machines sur votre reseau presentent cette restriction, vous
   devez utiliser votre nom de domaine Internet pour nom de domaine NIS.

      30.4.4.1.2. Contraintes au niveau du serveur

   Il y a plusieurs choses `a garder `a l'esprit quand on choisit une machine
   destinee `a etre un serveur NIS. Un des problemes du NIS est le degre de
   dependance des clients vis `a vis du serveur. Si un client ne peut
   contacter le serveur de son domaine NIS, la plupart du temps la machine
   n'est plus utilisable. L'absence d'information sur les utilisateurs et les
   groupes bloque la plupart des systemes. Vous devez donc vous assurer de
   choisir une machine qui ne sera pas redemarre frequemment, ni utilisee
   pour du developpement. Idealement, le serveur NIS devrait etre une machine
   dont l'unique utilisation serait d'etre un serveur NIS. Si vous avez un
   reseau qui n'est pas tres charge, il peut etre envisage de mettre le
   serveur NIS sur une machine fournissant d'autres services, gardez juste `a
   l'esprit que si le serveur NIS n'est pas disponible `a un instant donne,
   cela affectera tous vos clients NIS.

    30.4.4.2. Serveurs NIS

   La copie de reference de toutes les informations NIS est stockee sur une
   seule machine appelee serveur NIS maitre. Les bases de donnees utilisees
   pour le stockage de ces informations sont appelees tables NIS ("NIS
   maps"). Sous FreeBSD ces tables se trouvent dans /var/yp/[domainname] ou
   [domainname] est le nom du domaine NIS concerne. Un seul serveur NIS peut
   gerer plusieurs domaines `a la fois, il peut donc y avoir plusieurs de ces
   repertoires, un pour chaque domaine. Chaque domaine aura son propre jeu de
   tables.

   Les serveurs NIS maitres et esclaves traitent toutes les requetes NIS `a
   l'aide du "daemon" ypserv. ypserv rec,oit les requetes des clients NIS,
   traduit le nom de domaine et le nom de table demandes en chemin d'acces `a
   la base de donnees correspondante et transmet l'information de la base de
   donnees au client.

      30.4.4.2.1. Configurer un serveur NIS maitre

   Selon vos besoins, la configuration d'un serveur NIS maitre peut etre
   relativement simple. FreeBSD offre par defaut un support direct du NIS.
   Tout ce dont vous avez besoin est d'ajouter les lignes qui suivent au
   fichier /etc/rc.conf, et FreeBSD s'occupera du reste pour vous.

    1. nisdomainname="test-domain"

       Cette ligne definie le nom de domaine NIS, test-domain, `a la
       configuration du reseau (e.g. au demarrage).

    2. nis_server_enable="YES"

       Demandera `a FreeBSD de lancer les processus du serveur NIS des que le
       reseau est en fonctionnement.

    3. nis_yppasswdd_enable="YES"

       Ceci activera le "daemon" rpc.yppasswdd, qui, comme mentionne
       precedement, permettra aux utilisateurs de modifier leur mot de passe
       `a partir d'une machine cliente.

  Note:

   Selon votre configuration NIS, vous aurez peut-etre `a ajouter des entrees
   supplementaires. Consultez la section sur les serveurs NIS qui sont
   egalement des clients NIS, plus bas, pour plus de details.

   Maintenant, tout ce que vous devez faire est d'executer la commande
   /etc/netstart en tant que super-utilisateur. Elle configurera tout en
   utilisant les valeurs que vous avez definies dans /etc/rc.conf.

      30.4.4.2.2. Initialisation des tables NIS

   Les tables NIS sont des fichiers de base de donnees, qui sont conserves
   dans le repertoire /var/yp. Elles sont generees `a partir des fichiers de
   configuration du repertoire /etc du serveur NIS maitre, avec une
   exception: le fichier /etc/master.passwd. Et cela pour une bonne raison,
   vous ne voulez pas divulguer les mots de passe pour l'utilisateur root et
   autres comptes d'administration aux autres serveurs du domaine NIS. Par
   consequent, avant d'initialiser les tables NIS, vous devrez faire:

 # cp /etc/master.passwd /var/yp/master.passwd
   # cd /var/yp
   # vi master.passwd

   Vous devrez effacer toutes les entrees concernant les comptes systeme
   (bin, tty, kmem, games, etc.), tout comme les comptes que vous ne desirez
   pas propager aux clients NIS (par exemple root et tout autre compte avec
   un UID 0 (super-utilisateur)).

  Note:

   Assurez-vous que le fichier /var/yp/master.passwd n'est pas lisible par
   son groupe ou le reste du monde (mode 600)! Utilisez la commande chmod si
   necessaire.

   Cela acheve, il est temps d'initialiser les tables NIS! FreeBSD dispose
   d'une procedure appelee ypinit pour le faire `a votre place (consultez sa
   page de manuel pour plus d'informations). Notez que cette procedure est
   disponible sur la plupart des systemes d'exploitation du type UNIX(R),
   mais pas tous. Sur Digital UNIX/Compaq Tru64 UNIX, elle est appelee
   ypsetup. Comme nous voulons generer les tables pour un maitre NIS, nous
   passons l'option -m `a ypinit. Pour generer les tables NIS, en supposant
   que vous avez effectue les etapes precedentes, lancez:

 ellington# ypinit -m test-domain
 Server Type: MASTER Domain: test-domain
 Creating an YP server will require that you answer a few questions.
 Questions will all be asked at the beginning of the procedure.
 Do you want this procedure to quit on non-fatal errors? [y/n: n] n
 Ok, please remember to go back and redo manually whatever fails.
 If you don't, something might not work.
 At this point, we have to construct a list of this domains YP servers.
 rod.darktech.org is already known as master server.
 Please continue to add any slave servers, one per line. When you are
 done with the list, type a <control D>.
 master server   :  ellington
 next host to add:  coltrane
 next host to add:  ^D
 The current list of NIS servers looks like this:
 ellington
 coltrane
 Is this correct?  [y/n: y] y

 [..output from map generation..]

 NIS Map update completed.
 ellington has been setup as an YP master server without any errors.

   ypinit devrait avoir cree /var/yp/Makefile `a partir de
   /var/yp/Makefile.dist. Une fois cree, ce fichier suppose que vous etre
   dans un environnement compose uniquement de machines FreeBSD et avec un
   seul serveur. Comme test-domain dispose egalement d'un serveur esclave,
   vous devez editer /var/yp/Makefile:

 ellington# vi /var/yp/Makefile

   Vous devez commenter la ligne

 NOPUSH = "True"

   (si elle n'est pas dej`a commentee).

      30.4.4.2.3. Configurer un serveur NIS esclave

   Configurer un serveur NIS esclave est encore plus simple que de configurer
   un serveur maitre. Ouvrez une session sur le serveur esclave et editez le
   fichier /etc/rc.conf comme precedemment. La seule difference est que nous
   devons maintenant utiliser l'option -s avec ypinit. L'option -s a besoin
   du nom du serveur NIS maitre, donc notre ligne de commande ressemblera `a:

 coltrane# ypinit -s ellington test-domain

 Server Type: SLAVE Domain: test-domain Master: ellington

 Creating an YP server will require that you answer a few questions.
 Questions will all be asked at the beginning of the procedure.

 Do you want this procedure to quit on non-fatal errors? [y/n: n]  n

 Ok, please remember to go back and redo manually whatever fails.
 If you don't, something might not work.
 There will be no further questions. The remainder of the procedure
 should take a few minutes, to copy the databases from ellington.
 Transferring netgroup...
 ypxfr: Exiting: Map successfully transferred
 Transferring netgroup.byuser...
 ypxfr: Exiting: Map successfully transferred
 Transferring netgroup.byhost...
 ypxfr: Exiting: Map successfully transferred
 Transferring master.passwd.byuid...
 ypxfr: Exiting: Map successfully transferred
 Transferring passwd.byuid...
 ypxfr: Exiting: Map successfully transferred
 Transferring passwd.byname...
 ypxfr: Exiting: Map successfully transferred
 Transferring group.bygid...
 ypxfr: Exiting: Map successfully transferred
 Transferring group.byname...
 ypxfr: Exiting: Map successfully transferred
 Transferring services.byname...
 ypxfr: Exiting: Map successfully transferred
 Transferring rpc.bynumber...
 ypxfr: Exiting: Map successfully transferred
 Transferring rpc.byname...
 ypxfr: Exiting: Map successfully transferred
 Transferring protocols.byname...
 ypxfr: Exiting: Map successfully transferred
 Transferring master.passwd.byname...
 ypxfr: Exiting: Map successfully transferred
 Transferring networks.byname...
 ypxfr: Exiting: Map successfully transferred
 Transferring networks.byaddr...
 ypxfr: Exiting: Map successfully transferred
 Transferring netid.byname...
 ypxfr: Exiting: Map successfully transferred
 Transferring hosts.byaddr...
 ypxfr: Exiting: Map successfully transferred
 Transferring protocols.bynumber...
 ypxfr: Exiting: Map successfully transferred
 Transferring ypservers...
 ypxfr: Exiting: Map successfully transferred
 Transferring hosts.byname...
 ypxfr: Exiting: Map successfully transferred

 coltrane has been setup as an YP slave server without any errors.
 Don't forget to update map ypservers on ellington.

   Vous devriez avoir un repertoire appele /var/yp/test-domain. Des copies
   des tables du serveur NIS maitre devraient se trouver dans ce repertoire.
   Vous devrez vous assurer que ces tables restent `a jour. Les entrees
   suivantes dans /etc/crontab sur vos serveurs esclaves s'en chargeront:

 20      *       *       *       *       root   /usr/libexec/ypxfr passwd.byname
 21      *       *       *       *       root   /usr/libexec/ypxfr passwd.byuid

   Ces deux lignes obligent le serveur esclave `a synchroniser ses tables
   avec celles du serveur maitre. Bien que ces entrees ne soient pas
   indispensables puisque le serveur maitre essaye de s'assurer que toute
   modification de ses tables NIS soit repercutee `a ses serveurs esclaves et
   comme l'information sur les mots de passe est vitale pour les systemes qui
   dependent du serveur, il est bon de forcer les mises `a jour. C'est
   d'autant plus important sur les reseaux charges ou il n'est pas certain
   que les mises `a jour soient integrales.

   Maintenant, executez la commande /etc/netstart sur le serveur esclave, ce
   qui lancera le serveur NIS.

    30.4.4.3. Clients NIS

   Un client NIS etablit une connexion avec un serveur NIS donne par
   l'intermediaire du "daemon" ypbind. ypbind consulte le nom de domaine par
   defaut du systeme (defini par la commande domainname), et commence `a
   diffuser des requetes RPC sur le reseau local. Ces requetes precisent le
   nom de domaine auquel ypbind essaye de se rattacher. Si un serveur
   configure pour ce domaine rec,oit une des requetes diffusees, il repond `a
   ypbind, qui enregistrera l'adresse du serveur. S'il y a plusieurs serveurs
   disponibles (un maitre et plusieurs esclaves par example), ypbind
   utilisera l'adresse du premier `a repondre. Des lors, le systeme client
   dirigera toutes ses requetes NIS vers ce serveur. ypbind enverra de temps
   en temps des requetes "ping" au serveur pour s'assurer qu'il fonctionne
   toujours. S'il ne rec,oit pas de reponse dans un laps de temps
   raisonnable, ypbind considerera ne plus etre attache au domaine et
   recommencera `a diffuser des requetes dans l'espoir de trouver un autre
   serveur.

      30.4.4.3.1. Configurer un client NIS

   Configurer une machine FreeBSD en client NIS est assez simple.

    1. Editez le fichier /etc/rc.conf et ajoutez les lignes suivantes afin de
       definir le nom de domaine NIS et lancez ypbind au demarrage du reseau:

 nisdomainname="test-domain"
 nis_client_enable="YES"

    2. Pour importer tous les mots de passe disponibles du serveur NIS,
       effacez tous les comptes utilisateur de votre fichier
       /etc/master.passwd et utilisez vipw pour ajouter la ligne suivante `a
       la fin du fichier:

 +:::::::::

  Note:

       Cette ligne permet `a chaque utilisateur ayant un compte valide dans
       les tables de mots de passe du serveur d'avoir un compte sur le
       client. Il y a plusieurs fac,ons de configurer votre client NIS en
       modifiant cette ligne. Consultez la section groupes reseau plus bas
       pour plus d'informations. Pour en savoir plus, reportez-vous `a
       l'ouvrage Managing NFS and NIS de chez O'Reilly.

  Note:

       Vous devriez conservez au moins un compte local (i.e. non-importe via
       NIS) dans votre fichier /etc/master.passwd et ce compte devrait
       egalement etre membre du groupe wheel. Si quelque chose se passe mal
       avec NIS, ce compte peut etre utilise pour ouvrir une session `a
       distance, devenir root, et effectuer les corrections necessaires.

    3. Pour importer tous les groupes disponibles du serveur NIS, ajoutez
       cette ligne `a votre fichier /etc/group:

 +:*::

   Une fois que c'est fait, vous devriez etre en mesure d'executer ypcat
   passwd et voir la table des mots de passe du serveur NIS.

  30.4.5. Securite du NIS

   De fac,on generale, n'importe quel utilisateur distant peut emettre une
   requete RPC `a destination de ypserv(8) et recuperer le contenu de vos
   tables NIS, en supposant que l'utilisateur distant connaisse votre nom de
   domaine. Pour eviter ces transactions non autorisees, ypserv(8) dispose
   d'une fonctionnalite appelee "securenets" qui peut etre utilisee pour
   restreindre l'acces `a un ensemble donne de machines. Au demarrage,
   ypserv(8) tentera de charger les informations sur les "securenets" `a
   partir d'un fichier nomme /var/yp/securenets.

  Note:

   Ce chemin d'acces peut varier en fonction du chemin d'acces defini par
   l'option -p. Ce fichier contient des entrees sous la forme de definitions
   de reseau et d'un masque de sous-reseau separe par une espace. Les lignes
   commenc,ant par un "#" sont considerees comme des commentaires. Un exemple
   de fichier securenets peut ressembler `a ceci:

 # autorise les connexions depuis la machine locale -- obligatoire
 127.0.0.1     255.255.255.255
 # autorise les connexions de n'importe quelle machine
 # du reseau 192.168.128.0
 192.168.128.0 255.255.255.0
 # autorise les connexions de n'importe quelle machine
 # entre 10.0.0.0 et 10.0.15.255
 # y compris les machines du laboratoire de test
 10.0.0.0      255.255.240.0

   Si ypserv(8) rec,oit une requete d'une adresse qui satisfait `a ces
   regles, il la traite normalement. Si une adresse ne correspond pas aux
   regles, la requete sera ignoree et un message d'avertissement sera
   enregistre. Si le fichier /var/yp/securenets n'existe pas, ypserv
   autorisera les connexions `a partir de n'importe quelle machine.

   Le programme ypserv supporte egalement l'outil TCP Wrapper de Wietse
   Venema. Cela permet `a l'administrateur d'utiliser les fichiers de
   configuration de TCP Wrapper pour controler les acces `a la place de
   /var/yp/securenets.

  Note:

   Bien que ces deux mecanismes de controle d'acces offrent une certaine
   securite, il sont, de meme que le test du port privilegie, vulnerables aux
   attaques par "usurpation" d'adresses. Tout le trafic relatif `a NIS
   devrait etre bloque par votre coupe-feu.

   Les serveurs utilisant /var/yp/securenets pourront echouer `a traiter les
   requetes de clients NIS legitimes avec des implementation TCP/IP
   archaiques. Certaines de ces implementations positionnent `a zero les bits
   de la partie machine de l'adresse IP lors de diffusions et/ou sont
   incapables respecter le masque de sous-reseau lors du calcul de l'adresse
   de diffusion. Alors que certains de ces problemes peuvent etre corriges en
   modifiant la configuration du client, d'autres problemes peuvent forcer le
   retrait des systemes clients fautifs ou l'abandon de /var/yp/securenets.

   Utiliser /var/yp/securenets sur un serveur avec une implementation TCP/IP
   archaique est une mauvaise idee et sera `a l'origine de pertes de la
   fonctionnalite NIS pour une grande partie de votre reseau.

   L'utilisation du systeme TCP Wrapper augmente les temps de latence de
   votre serveur NIS. Le delai supplementaire peut etre suffisamment long
   pour depasser le delai d'attente des programmes clients, tout
   particulierement sur des reseaux charges ou avec des serveurs NIS lents.
   Si un ou plusieurs de vos systemes clients souffrent de ces symptomes,
   vous devrez convertir les systemes clients en question en serveurs
   esclaves NIS et les forcer `a se rattacher `a eux-memes.

  30.4.6. Interdire l'acces `a certains utilisateurs

   Dans notre laboratoire, il y a une machine basie qui est supposee etre une
   station de travail de la faculte. Nous ne voulons pas retirer cette
   machine du domaine NIS, le fichier passwd sur le serveur maitre NIS
   contient les comptes pour la faculte et les etudiants. Que pouvons-nous
   faire?

   Il existe une methode pour interdire `a certains utilisateurs d'ouvrir une
   session sur une machine, meme s'ils sont presents dans la base de donnees
   NIS. Pour cela, tout ce dont vous avez besoin de faire est d'ajouter
   -nom_utilisateur `a la fin du fichier /etc/master.passwd sur la machine
   cliente, ou nom_utilisateur est le nom de l'utilisateur auquel vous
   desirez refuser l'acces. Ceci doit etre fait de preference avec vipw,
   puisque vipw controlera vos changements au fichier /etc/master.passwd, et
   regenerera automatiquement la base de donnees `a la fin de l'edition. Par
   exemple, si nous voulions interdire l'ouverture de session `a
   l'utilisateur bill sur la machine basie nous ferions:

 basie# vipw
 [add -bill to the end, exit]
 vipw: rebuilding the database...
 vipw: done

 basie# cat /etc/master.passwd

 root:[password]:0:0::0:0:The super-user:/root:/bin/csh
 toor:[password]:0:0::0:0:The other super-user:/root:/bin/sh
 daemon:*:1:1::0:0:Owner of many system processes:/root:/sbin/nologin
 operator:*:2:5::0:0:System &:/:/sbin/nologin
 bin:*:3:7::0:0:Binaries Commands and Source,,,:/:/sbin/nologin
 tty:*:4:65533::0:0:Tty Sandbox:/:/sbin/nologin
 kmem:*:5:65533::0:0:KMem Sandbox:/:/sbin/nologin
 games:*:7:13::0:0:Games pseudo-user:/usr/games:/sbin/nologin
 news:*:8:8::0:0:News Subsystem:/:/sbin/nologin
 man:*:9:9::0:0:Mister Man Pages:/usr/share/man:/sbin/nologin
 bind:*:53:53::0:0:Bind Sandbox:/:/sbin/nologin
 uucp:*:66:66::0:0:UUCP pseudo-user:/var/spool/uucppublic:/usr/libexec/uucp/uucico
 xten:*:67:67::0:0:X-10 daemon:/usr/local/xten:/sbin/nologin
 pop:*:68:6::0:0:Post Office Owner:/nonexistent:/sbin/nologin
 nobody:*:65534:65534::0:0:Unprivileged user:/nonexistent:/sbin/nologin
 +:::::::::
 -bill

 basie#

  30.4.7. Utiliser les groupes reseau ("netgroups")

   Contribution de Udo Erdelhoff.

   La methode presentee dans la section precedente fonctionne relativement
   bien si vous avez besoin de regles specifiques pour un petit nombre
   d'utilisateurs et/ou de machines. Sur les reseaux plus important, vous
   oublierez d'interdire l'acces aux machines sensibles `a certains
   utilisateurs, ou vous devrez meme modifier chaque machine separement,
   perdant par l`a meme les avantages du NIS: l'administration centralisee.

   La solution des developpeurs du NIS pour ce probleme est appele groupes
   reseau ("netgroups"). Leur objet et definition peuvent etre compares aux
   groupes utilises par les systemes UNIX(R). La principale difference etant
   l'absence d'identifiants (ID) numeriques et la capacite de definir un
   groupe reseau `a l'aide de comptes utilisateur et d'autres groupes reseau.

   Les groupes reseau furent developpes pour gerer des reseaux importants et
   complexes avec des centaines de machines et d'utilisateurs. C'est une
   bonne option si vous etes forces de faire avec une telle situation.
   Cependant leur complexite rend impossible une explication avec des
   exemples simples. L'exemple utilise dans le reste de cette section met en
   evidence ce probleme.

   Supposons que l'introduction avec succes de NIS dans votre laboratoire a
   retenu l'attention de vos superieurs. Votre mission suivante est d'etendre
   la couverture de votre domaine NIS `a d'autres machines sur le campus. Les
   deux tables contiennent les noms des nouveaux utilisateurs et des
   nouvelles machines ainsi qu'une courte description de chacun.

     Nom(s) d'utilisateurs                     Description                    
   alpha, beta               Les employes du departement IT ("Information     
                             Technology")                                     
   charlie, delta            Les nouveaux apprentis du departement IT         
   echo, foxtrott, golf, ... Les employes ordinaires                          
   able, baker, ...          Les internes actuels                             

       Nom(s) de machines                       Description                   
   war, death, famine,        Vos serveurs les plus importants. Seuls les     
   pollution                  employes du departement IT sont autorises `a    
                              ouvrir des sessions sur ces machines.           
   pride, greed, envy, wrath, Serveurs moins importants. Tous les membres du  
   lust, sloth                laboratoire IT sont autorises `a ouvrir des     
                              sessions sur ces machines.                      
                              Stations de travail ordinaires. Seuls les       
   one, two, three, four, ... employes reels sont autorises `a utiliser ces   
                              machines.                                       
                              Une tres vielle machine sans donnees sensibles. 
   trashcan                   Meme les internes peuvent utiliser cette        
                              machine.                                        

   Si vous avez essaye d'implementer ces restrictions en bloquant separement
   chaque utilisateur, vous avez du ajouter une ligne -utilisateur `a chaque
   fichier passwd de chaque systeme pour chaque utilisateur non-autorise `a
   ouvrir une session sur le systeme. Si vous omettez ne serait-ce qu'une
   entree, vous aurez des problemes. Il doit etre possible de faire cela lors
   de la configuration initiale, cependant vous finirez par oublier d'ajouter
   les lignes pour de nouveaux utilisateurs lors d'operations quotidiennes.
   Apres tout, Murphy etait quelqu'un d'optimiste.

   Traiter cette situation avec les groupes reseau presente plusieurs
   avantages. Chaque utilisateur n'a pas besoin d'etre traite separement;
   vous assignez un utilisateur `a un ou plusieurs groupes reseau et
   autorisez ou refusez l'ouverture de session `a tous les membres du groupe
   reseau. Si vous ajoutez une nouvelle machine, vous n'aurez `a definir les
   restrictions d'ouverture de session que pour les groupes reseau. Ces
   modifications sont independantes les unes des autres, plus de "pour chaque
   combinaison d'utilisateur et de machine faire..." Si votre configuration
   NIS est reflechie, vous n'aurez `a modifier qu'une configuration centrale
   pour autoriser ou refuser l'acces aux machines.

   La premiere etape est l'initialisation de la table NIS du groupe reseau.
   La version FreeBSD d'ypinit(8) ne cree pas de table par defaut, mais son
   implementation NIS la supportera une fois creee. Pour creer une table
   vide, tapez simplement

 ellington# vi /var/yp/netgroup

   et commencez `a ajouter du contenu. Pour notre exemple, nous avons besoin
   de quatre groupes reseau: les employees du departement IT, les apprentis
   du departement IT, les employes normaux et les internes.

 IT_EMP  (,alpha,test-domain)    (,beta,test-domain)
 IT_APP  (,charlie,test-domain)  (,delta,test-domain)
 USERS   (,echo,test-domain)     (,foxtrott,test-domain) \
         (,golf,test-domain)
 INTERNS (,able,test-domain)     (,baker,test-domain)

   IT_EMP, IT_APP etc. sont les noms des groupes reseau. Chaque groupement
   entre parentheses ajoute un ou plusieurs comptes utilisateurs aux groupes.
   Les trois champs dans un groupement sont:

    1. Le nom de la/les machine(s) ou les elements suivants sont valides. Si
       vous ne precisez pas un nom de machine, l'entree est valide sur toutes
       les machines. Si vous precisez un nom de machine, vous penetrerez dans
       un royaume obscure, d'horreur et de confusion totale.

    2. Le nom du compte qui appartient au groupe reseau.

    3. Le domaine NIS pour le compte. Vous pouvez importer les comptes
       d'autres domaines NIS dans votre groupe reseau si vous etes une de ces
       personnes malchanceuses avec plus d'un domaine NIS.

   Chacun de ces champs peut contenir des jokers. Consultez la page de manuel
   netgroup(5) pour plus de details.

  Note:

   Les noms de groupes reseau plus long que 8 caracteres ne devraient pas
   etre utilises, tout particulierement si vous avez des machines utilisant
   d'autres systemes d'exploitation dans votre domaine NIS. Les noms sont
   sensibles `a la casse des caracteres; utiliser des majuscules pour vos
   noms de groupes reseau est une methode simple pour distinguer les
   utilisateurs, les machines et les noms de groupes reseau.

   Certains clients NIS (autres que FreeBSD) ne peuvent gerer les groupes
   reseau avec un grand nombre d'entrees. Par exemple, certaines anciennes
   versions de SunOS(TM) commencent `a causer des problemes si un groupe
   reseau contient plus de 15 entrees. Vous pouvez contourner cette limite en
   creant plusieurs sous-groupes reseau avec 15 utilisateurs ou moins et un
   veritable groupe reseau constitue des sous-groupes reseau:

 BIGGRP1  (,joe1,domain)  (,joe2,domain)  (,joe3,domain) [...]
 BIGGRP2  (,joe16,domain)  (,joe17,domain) [...]
 BIGGRP3  (,joe31,domain)  (,joe32,domain)
 BIGGROUP  BIGGRP1 BIGGRP2 BIGGRP3

   Vous pouvez repeter ce processus si vous avez besoin de plus de 255
   utilisateurs dans un seul groupe reseau.

   Activer et propager votre nouvelle table NIS est simple:

 ellington# cd /var/yp
 ellington# make

   Ceci generera les trois tables NIS netgroup, netgroup.byhost et
   netgroup.byuser. Utilisez ypcat(1) pour controler si vos nouvelles tables
   NIs sont disponibles:

 ellington% ypcat -k netgroup
 ellington% ypcat -k netgroup.byhost
 ellington% ypcat -k netgroup.byuser

   La sortie devrait etre semblable au contenu de /var/yp/netgroup. La
   deuxieme commande ne produira pas de sortie si vous n'avez pas precise les
   groupes reseau specifiques `a une machine. La troisieme commande peut etre
   utilisee pour obtenir les listes des groupes reseau pour un utilisateur.

   La configuration du client est plutot simple. Pour configurer le serveur
   war, vous devez lancer vipw(8) et remplacer la ligne

 +:::::::::

   par

 +@IT_EMP:::::::::

   Maintenant, seules les donnees pour les utilisateurs definis dans le
   groupe reseau IT_EMP sont importees dans la base de donnees de mots de
   passe de war et seuls ces utilisateurs sont autorises `a ouvrir une
   session.

   Malheureusement, cette limitation s'applique egalement `a la fonction ~ de
   l'interpreteur de commandes et toutes les routines de conversion entre nom
   d'utilisateur et identifiant numerique d'utilisateur. En d'autres termes,
   cd ~utilisateur ne fonctionnera pas, et ls -l affichera l'ID numerique `a
   la place du nom d'utilisateur et find . -user joe -print echouera avec le
   message d'erreur No such user. Pour corriger cela, vous devrez importer
   toutes les entrees d'utilisateurs sans leur autoriser l'ouverture de
   session sur vos serveurs.

   Cela peut etre fait en ajoutant une autre ligne au fichier
   /etc/master.passwd. Cette ligne devrait contenir:

   +:::::::::/sbin/nologin, signifiant "Importer toutes les entrees mais
   remplacer l'interpreteur de commandes avec /sbin/nologin dans les entrees
   importees". Vous pouvez remplacer n'importe quel champ dans l'entree
   passwd en plac,ant une valeur par defaut dans votre fichier
   /etc/master.passwd.

  Avertissement:

   Assurez-vous que +:::::::::/sbin/nologin est placee apres
   +@IT_EMP:::::::::. Sinon, tous les comptes utilisateur importes du NIS
   auront /sbin/nologin comme interpreteur de commandes.

   Apres cette modification, vous ne devrez uniquement que modifier une des
   tables NIS si un nouvel employe rejoint le departement IT. Vous pourrez
   utiliser une approche similaire pour les serveurs moins importants en
   remplac,ant l'ancienne ligne +::::::::: dans leur version locale de
   /etc/master.passwd avec quelque chose de semblable `a ceci:

 +@IT_EMP:::::::::
 +@IT_APP:::::::::
 +:::::::::/sbin/nologin

   Les lignes correspondantes pour les stations de travail normales seraient:

 +@IT_EMP:::::::::
 +@USERS:::::::::
 +:::::::::/sbin/nologin

   Tout etait parfait jusqu'au changement de politique quelques semaines plus
   tard: le departement IT commenc,a `a engager des internes. Les internes du
   departement IT sont autorises `a utiliser les stations de travail normales
   et les serveurs les moins importants; les apprentis du departement IT sont
   autorises `a ouvrir des sessions sur les serveurs principaux. Vous ajoutez
   alors un nouveau groupe reseau IT_INTERN, ajoutez les nouveaux internes IT
   `a ce groupe reseau et commencez `a modifier la configuration sur chaque
   machine... Comme disait l'ancien: "Erreurs dans la planification
   centralisee menent `a un desordre general".

   La capacite de NIS `a creer des groupes reseau `a partir d'autres groupes
   reseau peut etre utilisee pour eviter de telles situations. Une
   possibilite est la creation de groupes reseau bases sur le role du groupe.
   Par exemple vous pourriez creer un groupe reseau appele BIGSRV pour
   definir les restrictions d'ouverture de session pour les serveurs
   importants, un autre groupe reseau appele SMALLSRV pour les serveurs moins
   importants et un troisieme groupe reseau nomme USERBOX pour les stations
   de travail normales. Chacun de ces groupes reseau contient les groupes
   reseau autorises `a ouvrir des sessions sur ces machines. Les nouvelles
   entrees pour la table NIS de groupes reseau devrait ressembler `a ceci:

 BIGSRV    IT_EMP  IT_APP
 SMALLSRV  IT_EMP  IT_APP  ITINTERN
 USERBOX   IT_EMP  ITINTERN USERS

   Cette methode qui consiste `a definir des restrictions d'ouverture de
   session fonctionne relativement bien si vous pouvez definir des groupes de
   machines avec des restrictions identiques. Malheureusement, ceci est une
   exception et pas une generalite. La plupart du temps, vous aurez besoin de
   definir des restrictions d'ouverture de session par machine.

   La definition de groupes reseau specifiques aux machines est une autre
   possibilite pour traiter la modification de politique soulignee
   precedemment. Dans ce scenario, le fichier /etc/master.passwd de chaque
   machine contient deux lignes debutant par "+". La premiere ajoute un
   groupe reseau avec les comptes autorises `a ouvrir une session sur cette
   machine, la seconde ajoute tous les comptes avec l'interpreteur de
   commandes /sbin/nologin. C'est une bonne idee d'utiliser des majuscules
   pour le nom de la machine ainsi que celui du groupe reseau. Dans d'autres
   termes, les lignes en question devraient etre semblables `a:

 +@NOMMACHINE:::::::::
 +:::::::::/sbin/nologin

   Une fois cette tache achevee pour toutes vos machines, vous n'aurez plus
   jamais `a modifier les versions locales du fichier /etc/master.passwd.
   Tous les changements futurs peuvent etre geres en modifiant la table NIS.
   Voici un exemple d'une table de groupes reseau possible pour ce scenario
   avec quelques petits plus:

 # Definir tout d'abord les groupes d'utilisateurs
 IT_EMP    (,alpha,test-domain)    (,beta,test-domain)
 IT_APP    (,charlie,test-domain)  (,delta,test-domain)
 DEPT1     (,echo,test-domain)     (,foxtrott,test-domain)
 DEPT2     (,golf,test-domain)     (,hotel,test-domain)
 DEPT3     (,india,test-domain)    (,juliet,test-domain)
 ITINTERN  (,kilo,test-domain)     (,lima,test-domain)
 D_INTERNS (,able,test-domain)     (,baker,test-domain)
 #
 # Definir, maintenant, des groupes bases sur les roles
 USERS     DEPT1   DEPT2     DEPT3
 BIGSRV    IT_EMP  IT_APP
 SMALLSRV  IT_EMP  IT_APP    ITINTERN
 USERBOX   IT_EMP  ITINTERN  USERS
 #
 # Et un groupe pour les taches speciales
 # Permettre `a echo et golf d'acceder `a notre machine anti-virus
 SECURITY  IT_EMP  (,echo,test-domain)  (,golf,test-domain)
 #
 # les groupes reseau bases sur un ensemble de machines
 # Nos principaux serveurs
 WAR       BIGSRV
 FAMINE    BIGSRV
 # L'utilisateur india a besoin d'un acces `a ce serveur
 POLLUTION  BIGSRV  (,india,test-domain)
 #
 # Celle-ci est tres importante et necessite plus de restrictions d'acces
 DEATH     IT_EMP
 #
 # La machine anti-virus mentionnee precedemment
 ONE       SECURITY
 #
 # Restreindre l'acces `a une machine `a un seul utilisateur
 TWO       (,hotel,test-domain)
 # [...d'autres groupes suivent]

   Si vous utilisez une sorte de base de donnees pour gerer vos comptes
   utilisateur, vous devriez pouvoir creer la premiere partie de la table
   avec les outils de votre base de donnees. De cette fac,on, les nouveaux
   utilisateurs auront automatiquement acces aux machines.

   Dernier avertissement: il n'est pas toujours conseille d'utiliser des
   groupes reseau bases sur les machines. Si vous deployez quelques douzaines
   ou meme centaines de machines identiques pour des laboratoires pour
   etudiants, vous devriez utiliser des groupes bases sur les types
   d'utilisateurs plutot que sur les machines pour conserver la taille de la
   table NIS dans des limites raisonnables.

  30.4.8. Les choses importantes `a ne pas oublier

   Il y a un certain nombre de choses que vous devrez effectuer differemment
   maintenant que vous etes dans un environnement NIS.

     * A chaque fois que vous desirez ajouter un utilisateur au laboratoire,
       vous devez l'ajouter uniquement sur le serveur NIS et vous devez ne
       pas oublier de reconstruire les tables NIS. Si vous oubliez de le
       faire, le nouvel utilisateur ne pourra pas ouvrir de session en dehors
       du serveur maitre NIS. Par exemple, si nous devons ajouter au
       laboratoire un nouvel utilisateur jsmith, nous ferions:

 # pw useradd jsmith
 # cd /var/yp
 # make test-domain

       Vous pouvez lancer adduser jsmith `a la place de pw useradd jsmith.

     * Conservez les comptes d'administration en dehors des tables NIS. Vous
       ne voulez pas propager les comptes et mots de passe d'administration
       sur les machines qui auront des utilisateurs qui ne devraient pas
       avoir acces `a ces comptes.

     * Securisez les serveurs maitre et esclave NIS, et reduisez leur temps
       d'arret. Si quelqu'un tente soit d'attaquer soit de simplement arreter
       ces machines, de nombreuses personnes ne pourront plus ouvrir de
       session dans le laboratoire.

       C'est la principale faiblesse d'un systeme d'administration
       centralisee. Si vous ne protegez pas vos serveurs NIS, vous aurez `a
       faire face `a de nombreux utilisateurs mecontents!

  30.4.9. Compatibilite NIS version 1

   ypserv sous FreeBSD offre un support des clients NIS version 1.
   L'implementation NIS de FreeBSD utilise uniquement le protocole NIS
   version 2, cependant d'autres implementations disposent du support pour le
   protocole version 1 pour des raisons de compatibilite avec d'anciens
   systemes. Les "daemons" ypbind fournis avec ces systemes tenteront de
   s'attacher `a un serveur NIS version 1 meme s'ils n'en ont pas besoin (et
   ils pourront continuer `a diffuser des requetes pour en trouver un meme
   apres avoir rec,u une reponse d'un serveur NIS version 2). Notez que bien
   que les requetes des clients normaux soient supportees, cette version
   d'ypserv ne supporte pas les requetes de transfert de tables version 1;
   par consequent il n'est pas possible de l'utiliser comme serveur maitre ou
   esclave avec des serveurs NIS plus anciens qui ne supportent que la
   version 1 du protocole. Heureusement, il n'y a, aujourd'hui, presque plus
   de serveurs de ce type actifs.

  30.4.10. Serveurs NIS qui sont aussi des clients NIS

   Il faut faire attention quand on utilise ypserv dans un domaine avec
   plusieurs serveurs NIS qui sont egalement des clients NIS. Il est en
   general preferable de forcer les serveurs de se rattacher `a eux-memes
   plutot que de les laisser diffuser des requetes de rattachement et
   eventuellement se rattacher reciproquement les uns aux autres. Il peut en
   resulter de curieux problemes si l'un des serveurs tombe et que d'autres
   en dependent. Tous les clients finiront par depasser leur delai d'attente
   et se tenteront de se rattacher `a d'autres serveurs, mais ce delai peut
   etre considerable et le probleme persistera puisque les serveurs peuvent
   `a nouveau se rattacher les uns aux autres.

   Vous pouvez obliger une machine `a se rattacher `a un serveur particulier
   en executant ypbind avec l'option -S. Si vous ne desirez pas faire cela `a
   la main `a chaque fois que vous redemarrez votre serveur NIS, vous pouvez
   ajouter les lignes suivantes `a votre fichier /etc/rc.conf:

 nis_client_enable="YES" # run client stuff as well
 nis_client_flags="-S NIS domain,server"

   Voir la page de manuel de ypbind(8) pour plus d'informations.

  30.4.11. Formats des mots de passe

   Un des problemes les plus courants que l'on rencontre en mettant en oeuvre
   NIS est celui de la compatibilite des formats de mots de passe. Si votre
   serveur NIS utilise des mots de passe chiffres avec l'algorithme DES, il
   ne supportera que les clients utilisant egalement DES. Par exemple, si
   vous avez des client NIS Solaris(TM) sur votre reseau, alors vous aurez
   presque certainement besoin d'utiliser des mots de passe chiffres avec le
   systeme DES.

   Pour determiner quel format vos serveurs et clients utilisent, consultez
   le fichier /etc/login.conf. Si la machine est configuree pour utiliser des
   mots de passe chiffres avec DES, alors la classe default contiendra une
   entree comme celle-ci:

 default:\
         :passwd_format=des:\
         :copyright=/etc/COPYRIGHT:\
         [Entrees suivantes omises]

   D'autres valeurs possibles pour la capacite passwd_format sont blf et md5
   (respectivement pour les chiffrages de mots de passe Blowfish et MD5).

   Si vous avez modifie le fichier /etc/login.conf, vous devrez egalement
   regenerer la base de donnees des capacites de classes de session, ce qui
   est accompli en executant la commande suivante en tant que root:

 # cap_mkdb /etc/login.conf

  Note:

   Le format des mots de passe utilises dans /etc/master.passwd ne sera pas
   mis `a jour avant qu'un utilisateur ne change son mot de passe pour la
   premiere fois apres la regeneration de la base de donnees des capacites de
   classes de session.

   Ensuite, afin de s'assurer que les mots de passe sont chiffres avec le
   format que vous avez choisi, vous devez verifier que l'entree
   crypt_default dans le fichier /etc/auth.conf donne la priorite au format
   de mots de passe choisi. Par exemple, quand les mots de passe DES sont
   utilises, l'entree serait:

 crypt_default   =       des blf md5

   En suivant les points precedents sur chaque serveur et client NIS sous
   FreeBSD, vous pouvez etre sur qu'ils seront tous d'accord sur le format de
   mot de passe utilise dans le reseau. Si vous avez des problemes
   d'authentification sur un client NIS, c'est probablement la premiere chose
   `a verifier. Rappelez-vous: si vous desirez mettre en place un serveur NIS
   pour un reseau heterogene, vous devrez probablement utiliser DES sur tous
   les systemes car c'est le standard le plus courant.

30.5. Configuration reseau automatique (DHCP)

   Ecrit par Greg Sutter.

  30.5.1. Qu'est-ce que DHCP?

   DHCP, le protocole d'attribution dynamique des adresses ("Dynamic Host
   Configuration Protocol"), decrit les moyens par lesquels un systeme peut
   se connecter `a un reseau et obtenir les informations necessaires pour
   dialoguer sur ce reseau. Les versions de FreeBSD anterieures `a la version
   6.0 utilisent l'implementation du client DHCP (dhclient(8)) de l'ISC
   (Internet Software Consortium). Les versions suivantes utilisent le
   programme dhclient d'OpenBSD issu d'OpenBSD 3.7. Toutes les informations
   donnees ici au sujet de dhclient sont valables aussi bien pour le client
   DHCP d'ISC que pour celui d'OpenBSD. Le serveur DHCP est celui distribue
   par le consortium ISC.

  30.5.2. Ce que traite cette section

   Cette section decrit les composants cote client des clients DHCP d'ISC et
   d' OpenBSD et cote serveur du systeme DHCP ISC. Le programme client,
   dhclient, est integre `a FreeBSD, la partie serveur est disponible `a
   partir du logiciel porte net/isc-dhcp3-server. Les pages de manuel
   dhclient(8), dhcp-options(5), et dhclient.conf(5), en plus des references
   donnees plus bas, sont des ressources utiles.

  30.5.3. Comment cela fonctionne-t-il?

   Quand dhclient, le client DHCP, est execute sur la machine cliente, il
   commence `a diffuser des requetes de demandes d'information de
   configuration. Par defaut, ces requetes sont effectuees sur le port UDP
   68. Le serveur repond sur le port UDP 67, fournissant au client une
   adresse IP et d'autres informations reseau importantes comme le masque de
   sous-reseau, les routeurs, et les serveurs DNS. Toutes ces informations
   viennent sous la forme d'un "bail" DHCP qui est uniquement valide pendant
   un certain temps (configure par l'administrateur du serveur DHCP). De
   cette fac,on, les adresses IP expirees pour les clients qui ne sont plus
   connectes peuvent etre automatiquement recuperees.

   Les clients DHCP peuvent obtenir une grande quantite d'informations `a
   partir du serveur. Une liste exhaustive est donnee dans la page de manuel
   dhcp-options(5).

  30.5.4. Integration dans FreeBSD

   Le client DHCP ISC ou OpenBSD (en fonction de la version de FreeBSD que
   vous utilisez), dhclient, est completement integre `a FreeBSD. Le support
   du client DHCP est fourni avec l'installeur et le systeme de base, rendant
   evident le besoin d'une connaissance detaillee des configurations reseaux
   pour n'importe quel reseau utilisant un serveur DHCP. dhclient fait partie
   de toutes les versions de FreeBSD depuis la version 3.2.

   DHCP est supporte par sysinstall. Quand on configure une interface reseau
   sous sysinstall, la deuxieme question posee est: "Voulez-vous tenter la
   configuration DHCP de l'interface?". Repondre par l'affirmative `a cette
   question lancera dhclient, et en cas de succes, completera automatiquement
   les informations de configuration reseau.

   Vous devez faire deux choses pour que votre systeme utilise DHCP au
   demarrage:

     * Assurez-vous que le peripherique bpf est compile dans votre noyau.
       Pour cela, vous devez ajouter la ligne device bpf `a votre fichier de
       configuration du noyau, et recompiler le noyau. Pour plus
       d'informations sur la compilation de noyaux, consultez le Chapitre 8,
       Configurer le noyau de FreeBSD.

       Le peripherique bpf est dej`a present dans le noyau GENERIC qui est
       fourni avec FreeBSD, vous ne devez donc pas creer de noyau specifique
       pour faire fonctionner DHCP.

  Note:

       Ceux qui sont particulierement conscients de l'aspect securite
       devraient noter que bpf est egalement le peripherique qui permet le
       fonctionnement de "renifleurs" de paquets (de tels programmes doivent
       etre lances sous l'utilisateur root). bpf est necessaire pour utiliser
       DHCP, mais si vous etes tres sensible `a la securite, vous ne devriez
       probablement pas ajouter bpf `a votre noyau parce que vous projetez
       d'utiliser DHCP dans le futur.

     * Editez votre fichier /etc/rc.conf pour y ajouter ce qui suit:

 ifconfig_fxp0="DHCP"

  Note:

       Assurez-vous de bien remplacer fxp0 par l'interface que vous voulez
       configurer de fac,on dynamique comme decrit dans la Section 11.7,
       << Configuration des cartes reseaux >>.

       Si vous utilisez un emplacement different pour dhclient, ou si vous
       desirez passer des arguments supplementaires `a dhclient, ajoutez ce
       qui suit (en effectuant des modifications si necessaire):

 dhcp_program="/sbin/dhclient"
 dhcp_flags=""

   Le serveur DHCP, dhcpd, fait partie du logiciel porte net/isc-dhcp3-server
   disponible dans le catalogue des logiciels portes. Ce logiciel porte
   contient le serveur DHCP ISC et sa documentation.

  30.5.5. Fichiers

     * /etc/dhclient.conf

       dhclient necessite un fichier de configuration, /etc/dhclient.conf.
       Generalement le fichier ne contient que des commentaires, les valeurs
       par defaut etant suffisantes. Ce fichier de configuration est decrit
       par la page de manuel dhclient.conf(5).

     * /sbin/dhclient

       dhclient est lie statiquement et reside dans le repertoire /sbin. La
       page de manuel dhclient(8) donne beaucoup plus d'informations au sujet
       de dhclient.

     * /sbin/dhclient-script

       dhclient-script est la procedure de configuration du client DHCP
       specifique `a FreeBSD. Elle est decrite dans la page de manuel
       dhclient-script(8), mais ne devrait pas demander de modification de la
       part de l'utilisateur pour fonctionner correctement.

     * /var/db/dhclient.leases

       Le client DHCP conserve une base de donnees des baux valides, qui est
       ecrite comme un fichier journal. La page de manuel dhclient.leases(5)
       en donne une description legerement plus longue.

  30.5.6. Lecture supplementaire

   Le protocole DHCP est integralement decrit dans la RFC 2131. Des
   informations sont egalement disponibles `a l'adresse http://www.dhcp.org/.

  30.5.7. Installer et configurer un serveur DHCP

    30.5.7.1. Ce que traite cette section

   Cette section fournit les informations necessaires `a la configuration
   d'un systeme FreeBSD comme serveur DHCP en utilisant l'implementation ISC
   (Internet Software Consortium) du serveur DHCP.

   Le serveur n'est pas fourni dans le systeme de base de FreeBSD, et vous
   devrez installer le logiciel porte net/isc-dhcp3-server pour beneficier de
   ce service. Lisez le Chapitre 4, Installer des applications: les logiciels
   pre-compiles et les logiciels portes pour plus d'information sur
   l'utilisation du catalogue des logiciels portes.

    30.5.7.2. Installation d'un serveur DHCP

   Afin de configurer votre systeme FreeBSD en serveur DHCP, vous devrez vous
   assurer que le support du peripherique bpf(4) est compile dans votre
   noyau. Pour cela ajouter la ligne device bpf dans votre fichier de
   configuration du noyau. Pour plus d'information sur la compilation de
   noyaux, consultez le Chapitre 8, Configurer le noyau de FreeBSD.

   Le peripherique bpf est dej`a present dans le noyau GENERIC qui est fourni
   avec FreeBSD, vous ne devez donc pas creer de noyau specifique pour faire
   fonctionner DHCP.

  Note:

   Ceux qui sont particulierement conscients de l'aspect securite devraient
   noter que bpf est egalement le peripherique qui permet le fonctionnement
   de "renifleurs" de paquets (de tels programmes necessitent egalement un
   acces avec privileges). bpf est necessaire pour utiliser DHCP, mais si
   vous etes tres sensible `a la securite, vous ne devriez probablement pas
   ajouter bpf `a votre noyau parce que vous projetez d'utiliser DHCP dans le
   futur.

   Il vous reste ensuite `a editer le fichier dhcpd.conf d'exemple qui a ete
   installe par le logiciel porte net/isc-dhcp3-server. Par defaut, cela sera
   /usr/local/etc/dhcpd.conf.sample, et vous devriez le copier vers
   /usr/local/etc/dhcpd.conf avant de commencer vos modifications.

    30.5.7.3. Configuration du serveur DHCP

   dhcpd.conf est compose de declarations concernant les masques de
   sous-reseaux et les machines, il est peut-etre plus facile `a expliquer `a
   l'aide d'un exemple:

 option domain-name "example.com";1
 option domain-name-servers 192.168.4.100;2
 option subnet-mask 255.255.255.0;3

 default-lease-time 3600;4
 max-lease-time 86400;5
 ddns-update-style none;6

 subnet 192.168.4.0 netmask 255.255.255.0 {
   range 192.168.4.129 192.168.4.254;7
   option routers 192.168.4.1;8
 }

 host mailhost {
   hardware ethernet 02:03:04:05:06:07;9
   fixed-address mailhost.example.com;10
 }

   1  Cette option specifie le domaine qui sera donne aux clients comme       
      domaine par defaut. Consultez la page de manuel de resolv.conf(5) pour  
      plus d'information sur sa signification.                                
   2  Cette option donne une liste, separee par des virgules, de serveurs DNS 
      que le client devrait utiliser.                                         
   3  Le masque de sous-reseau qui sera fourni aux clients.                   
   4  Un client peut demander un bail d'une duree bien precise. Sinon par     
      defaut le serveur alloue un bail avec cette duree avant expiration (en  
      secondes).                                                              
   5  C'est la duree maximale d'allocation autorisee par le serveur. Si un    
      client demande un bail plus long, le bail sera accorde mais il ne sera  
      valide que durant max-lease-time secondes.                              
   6  Cette option indique si le serveur DHCP doit tenter de mettre `a jour   
      le DNS quand un bail est accepte ou revoque. Dans l'implementation ISC, 
      cette option est obligatoire.                                           
   7  Ceci indique quelles adresses IP devraient etre utilisees dans          
      l'ensemble des adresses reservees aux clients. Les adresses comprises   
      dans l'intervalle specifiee sont allouees aux clients.                  
   8  Definit la passerelle par defaut fournie aux clients.                   
   9  L'adresse materielle MAC d'une machine (de maniere `a ce que le serveur 
      DHCP puisse reconnaitre une machine quand elle envoie une requete).     
   10 Indique que la machine devrait se voir attribuer toujours la meme       
      adresse IP. Notez que l'utilisation d'un nom de machine ici est         
      correct, puisque le serveur DHCP effectuera une resolution de nom sur   
      le nom de la machine avant de renvoyer l'information sur le bail.       

   Une fois l'ecriture de votre fichier dhcpd.conf terminee, vous devez
   activer le serveur DHCP dans le fichier /etc/rc.conf, en ajoutant:

 dhcpd_enable="YES"
 dhcpd_ifaces="dc0"

   Remplacez le nom de l'interface dc0 avec celui de l'interface (ou des
   interfaces, separees par un espace) sur laquelle votre serveur DHCP
   attendra les requetes des clients DHCP.

   Ensuite, vous pouvez lancer le serveur en tapant la commande suivante:

 # /usr/local/etc/rc.d/isc-dhcpd.sh start

   Si vous devez, dans le futur, effectuer des changements dans la
   configuration de votre serveur, il est important de savoir que l'envoi
   d'un signal SIGHUP `a dhcpd ne provoque pas le rechargement de la
   configuration, contrairement `a la plupart des "daemons". Vous devrez
   envoyer un signal SIGTERM pour arreter le processus, puis le relancer en
   utilisant la commande ci-dessus.

    30.5.7.4. Fichiers

     * /usr/local/sbin/dhcpd

       dhcpd est lie statiquement et reside dans le repertoire
       /usr/local/sbin. La page de manuel dhcpd(8) installee avec le logiciel
       porte donne beaucoup plus d'informations au sujet de dhcpd.

     * /usr/local/etc/dhcpd.conf

       dhcpd necessite un fichier de configuration, /usr/local/etc/dhcpd.conf
       avant de pouvoir commencer `a offrir ses services aux client. Ce
       fichier doit contenir toutes les informations `a fournir aux clients
       qui seront traites, en plus des informations concernant le
       fonctionnement du serveur. Ce fichier de configuration est decrit par
       la page de manuel dhcpd.conf(5) installee par le logiciel porte.

     * /var/db/dhcpd.leases

       Le serveur DHCP conserve une base de donnees des baux qu'il a delivre,
       qui est ecrite comme un fichier journal. La page de manuel
       dhcpd.leases(5) installee par le logiciel porte en donne une
       description legerement plus longue.

     * /usr/local/sbin/dhcrelay

       dhcrelay est utilise dans les environnements avances ou un serveur
       DHCP fait suivre la requete d'un client vers un autre serveur DHCP sur
       un reseau separe. Si vous avez besoin de cette fonctionnalite,
       installez alors le logiciel porte net/isc-dhcp3-server. La page de
       manuel dhcrelay(8) fournie avec le logiciel porte contient plus de
       details.

30.6. Serveurs de noms (DNS)

   Contribution de Chern Lee, Tom Rhodes et Daniel Gerzo.

  30.6.1. Generalites

   FreeBSD utilise, par defaut, BIND (Berkeley Internet Name Domain), qui est
   l'implementation la plus courante du protocole DNS. Le DNS est le
   protocole qui effectue la correspondance entre noms et adresses IP, et
   inversement. Par exemple une requete pour www.FreeBSD.org aura pour
   reponse l'adresse IP du serveur Web du projet FreeBSD, et une requete pour
   ftp.FreeBSD.org renverra l'adresse IP de la machine FTP correspondante. De
   meme, l'oppose est possible. Une requete pour une adresse IP retourne son
   nom de machine. Il n'est pas necessaire de faire tourner un serveur DNS
   pour effectuer des requetes DNS sur un systeme.

   FreeBSD est actuellement fourni par defaut avec le serveur DNS BIND9.
   Notre installation est dotee de fonctionnalites etendues au niveau de la
   securite, d'une nouvelle organisation du systeme de fichiers et d'une
   configuration en environnement chroot(8) automatisee.

   Le DNS est coordonne sur l'Internet `a travers un systeme complexe de
   serveurs de noms racines faisant autorite, de domaines de premier niveau
   (<< Top Level Domain >>, TLD), et d'autres serveurs de noms de plus
   petites tailles qui hebergent, directement ou font office de "cache",
   l'information pour des domaines individuels.

   Actuellement, BIND est maintenu par l'Internet Software Consortium
   http://www.isc.org/.

  30.6.2. Terminologie

   Pour comprendre ce document, certains termes relatifs au DNS doivent etre
   maitrises.

            Terme                              Definition                     
   "Forward" DNS           Correspondance noms de machine vers adresses IP.   
   Origine                 Fait reference au domaine couvert par un fichier   
                           de zone particulier.                               
   named, BIND, serveur de Noms courants pour le serveur de noms BIND de      
   noms                    FreeBSD                                            
                           Un processus systeme par l'intermediaire duquel    
   Resolveur               une machine contacte un serveur de noms pour       
                           obtenir des informations sur une zone.             
                           C'est l'inverse du DNS "classique" ("Forward"      
   DNS inverse             DNS). C'est la correspondance adresses IP vers     
                           noms de machine.                                   
                           Debut de la hierarchie de la zone Internet. Toutes 
   Zone racine             les zones sont rattachees `a la zone racine, de la 
                           meme maniere qu'un systeme de fichier est rattache 
                           au repertoire racine.                              
                           Un domaine individuel, un sous-domaine, ou une     
   Zone                    partie des noms administres par un meme serveur    
                           faisant autorite.                                  

   Exemples de zones:

     * . est la zone racine

     * org. est un domaine de premier niveau (TLD) sous la zone racine

     * example.org. est une zone sous le TLD org.

     * 1.168.192.in-addr.arpa est une zone faisant reference `a toutes les
       adresses IP qui appartiennent l'espace d'adresse 192.168.1.*.

   Comme on peut le remarquer, la partie la plus significative d'un nom de
   machine est `a sa gauche. Par exemple, example.org. est plus specifique
   que org., comme org. est `a son tour plus specifique que la zone racine.
   La constitution de chaque partie d'un nom de machine est proche de celle
   d'un systeme de fichiers: le repertoire /dev se trouve sous la racine, et
   ainsi de suite.

  30.6.3. Les raisons de faire tourner un serveur de noms

   Les serveurs de noms se presentent generalement sous deux formes: un
   serveur de noms faisant autorite, et un serveur de noms cache.

   Un serveur de noms faisant autorite est necessaire quand:

     * on desire fournir des informations DNS au reste du monde, etre le
       serveur faisant autorite lors des reponses aux requetes.

     * un domaine, comme par exemple example.org, est enregistre et des
       adresses IP doivent etre assignees `a des noms de machine appartenant
       `a ce domaine.

     * un bloc d'adresses IP necessite des entrees DNS inverses (IP vers nom
       de machine).

     * un second serveur de noms ou de secours, appele esclave, qui repondra
       aux requetes.

   Un serveur de noms cache est necessaire quand:

     * un serveur de noms local peut faire office de cache et repondre plus
       rapidement que l'interrogation d'un serveur de noms exterieur.

   Quand on emet des requetes pour www.FreeBSD.org, le resolveur interroge
   generalement le serveur de noms du fournisseur d'acces, et recupere la
   reponse. Avec un serveur DNS cache local, la requete doit etre effectuee
   qu'une seule fois vers le monde exterieur par le serveur DNS cache. Chaque
   interrogation suivante n'aura pas `a etre transmise en dehors du reseau
   local, puisque l'information est desormais disponible localement dans le
   cache.

  30.6.4. Comment cela fonctionne-t-il?

   Sous FreeBSD le "daemon" BIND est appele named pour des raisons evidentes.

          Fichier                             Description                     
   named(8)               le "daemon" BIND                                    
   rndc(8)                le programme de controle du serveur de noms         
   /etc/namedb            repertoire ou se trouvent les informations sur les  
                          zones de BIND                                       
   /etc/namedb/named.conf le fichier de configuration du "daemon"             

   En fonction de la maniere dont est configuree sur le serveur une zone
   donnee, les fichiers relatifs `a cette zone pourront etre trouves dans les
   sous-repertoires master, slave, ou dynamic du repertoire /etc/namedb. Ces
   fichiers contiennent les informations DNS qui seront donnees par le
   serveur de noms en reponse aux requetes.

  30.6.5. Lancer BIND

   Puisque BIND est installe par defaut, sa configuration est relativement
   simple.

   La configuration par defaut de named est un serveur de noms resolveur
   basique, tournant dans un environnement chroot(8). Pour lancer le serveur
   avec cette configuration, utilisez la commande suivante:

 # /etc/rc.d/named forcestart

   Pour s'assurer que le "daemon" named est lance `a chaque demarrage,
   ajoutez la ligne suivante dans /etc/rc.conf:

 named_enable="YES"

   Il existe, bien evidemment, de nombreuses options de configuration pour
   /etc/namedb/named.conf qui depassent le cadre de ce document. Si vous etes
   interesse par les options de demarrage de named sous FreeBSD, jetez un
   oeil aux parametres named_* dans /etc/defaults/rc.conf et consultez la
   page de manuel rc.conf(5). La section Section 11.6, << Utilisation du
   systeme rc(8) sous FreeBSD >> constitue egalement une bonne lecture.

  30.6.6. Fichiers de configuration

   Les fichiers de configuration pour named se trouvent dans le repertoire
   /etc/namedb et devront etre adaptes avant toute utilisation, `a moins que
   l'on ait besoin que d'un simple resolveur. C'est dans ce repertoire ou la
   majeure partie de la configuration se fera.

    30.6.6.1. Utilisation de make-localhost

   Pour configurer une zone maitre, il faut se rendre dans le repertoire
   /etc/namedb/ et executer la commande suivante:

 # sh make-localhost

   Si tout s'est bien passe, un nouveau fichier devrait apparaitre dans le
   sous-repertoire master. Les noms de fichiers devraient etre localhost.rev
   pour le nom de domaine local et localhost-v6.rev pour les configurations
   IPv6. Tout comme le fichier de configuration par defaut, les informations
   necessaires seront presentes dans le fichier named.conf.

    30.6.6.2. /etc/namedb/named.conf

 // $FreeBSD$
 //
 // Reportez-vous aux pages de manuel named.conf(5) et named(8), et `a
 // la documentation se trouvant dans /usr/share/doc/bind9 pour plus de
 // details.
 //
 // Si vous devez configurer un serveur primaire, assurez-vous d'avoir
 // compris les details epineux du fonctionnement du DNS.  Meme avec de
 // simples erreurs, vous pouvez rompre la connexion entre les parties
 // affectees, ou causer un important et inutile trafic Internet.

 options {
         directory "/etc/namedb";
         pid-file        "/var/run/named/pid";
         dump-file       "/var/dump/named_dump.db";
         statistics-file "/var/stats/named.stats";

 // Si named est utilise uniquement en tant que resolveur local, ceci
 // est un bon reglage par defaut.  Pour un named qui doit etre
 // accessible `a l'ensemble du reseau, commentez cette option, precisez
 // l'adresse IP correcte, ou supprimez cette option.
         listen-on       { 127.0.0.1; };

 // Si l'IPv6 est active sur le systeme, decommentez cette option pour
 // une utilisation en resolveur local.  Pour donner l'acces au reseau,
 // precisez une adresse IPv6, ou le mot-cle "any".
 //      listen-on-v6    { ::1; };

 // En plus de la clause "forwarders", vous pouvez forcer votre serveur
 // de noms `a ne jamais etre `a l'origine de
 // requetes, mais plutot faire suivre les demandes en
 // activant la ligne suivante:
 //
 //      forward only;

 // Si vous avez acces `a un serveur de noms au niveau de
 // votre fournisseur d'acces, ajoutez ici son adresse IP, et
 // activez la ligne ci-dessous.  Cela vous permettra de
 // beneficier de son cache, reduisant ainsi le
 // trafic Internet.
 /*
         forwarders {
                 127.0.0.1;
         };
 */

   Comme les commentaires le precisent, pour beneficier d'un cache en amont
   de votre connexion, le parametre forwarders peut etre active. Dans des
   circonstances normales, un serveur de noms interrogera de fac,on recursive
   certains serveurs de noms jusqu'`a obtenir la reponse `a sa requete. Avec
   ce parametre active, votre serveur interrogera le serveur de noms en amont
   (ou le serveur de noms fourni) en premier, en beneficiant alors de son
   cache. Si le serveur en question gere beaucoup de trafic, et est un
   serveur rapide, activer cette option peut en valoir la peine.

  Avertissement:

   127.0.0.1 ne fonctionnera pas ici. Remplacez cette adresse IP par un
   serveur de noms en amont de votre connexion.

         /*
          * S'il y a un coupe-feu entre vous et les serveurs de noms
          * avec lesquels vous voulez communiquer, vous aurez
          * peut-etre besoin de decommenter la directive
          * query-source ci-dessous.  Les versions
          * precedentes de BIND lanc,aient des
          * requetes `a partir du port 53, mais depuis la
          * version 8, BIND utilise
          * par defaut un port pseudo-aleatoire quelconque non
          * reserve.
          */
         // query-source address * port 53;
 };

 // Si vous activez un serveur de noms local, n'oubliez pas d'entrer
 // 127.0.0.1 dans votre fichier /etc/resolv.conf de sorte que ce
 // serveur soit interroge le premier.  Assurez-vous
 // egalement de l'activer dans /etc/rc.conf.

 zone "." {
         type hint;
         file "named.root";
 };

 zone "0.0.127.IN-ADDR.ARPA" {
         type master;
         file "master/localhost.rev";
 };

 // RFC 3152
 zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA" {
         type master;
         file "master/localhost-v6.rev";
 };

 // NB: N'utilisez pas les adresses IP ci-dessous, elles sont factices,
 // et ne servent que pour des besoins de
 // demonstration/documentation!
 //
 // Exemple d'entrees de configuration de zone esclave.
 // Il peut etre pratique de devenir serveur esclave pour la
 // zone `a laquelle appartient votre domaine.  Demandez `a
 // votre administrateur reseau l'adresse IP du serveur primaire
 // responsable de la zone.
 //
 // N'oubliez jamais d'inclure la resolution de la zone inverse
 // (IN-ADDR.ARPA)!
 // (Ce sont les premiers octets de l'adresse IP, en ordre inverse,
 // auxquels ont a ajoute ".IN-ADDR.ARPA".)
 //
 // Avant de commencer `a configurer une zone primaire, il faut
 // etre sur que vous avez parfaitement compris comment le
 // DNS et BIND fonctionnent.  Il apparait parfois des pieges
 // peu evidents `a saisir.  En comparaison, configurer une
 // zone esclave est plus simple.
 //
 // NB: N'activez pas aveuglement les exemples ci-dessous. :-)
 // Utilisez des noms et des adresses reelles.

 /* Un exemple de zone maitre
 zone "example.net" {
         type master;
         file "master/example.net";
 };
 */

 /* Un exemple de zone dynamique
 key "exampleorgkey" {
         algorithm hmac-md5;
         secret "sf87HJqjkqh8ac87a02lla==";
 };
 zone "example.org" {
         type master;
         allow-update {
                 key "exampleorgkey";
         };
         file "dynamic/example.org";
 };
 */

 /* Exemple de zones esclaves directes et inverses
 zone "example.com" {
         type slave;
         file "slave/example.com";
         masters {
                 192.168.1.1;
         };
 };
 zone "1.168.192.in-addr.arpa" {
         type slave;
         file "slave/1.168.192.in-addr.arpa";
         masters {
                 192.168.1.1;
         };
 };
 */

   Dans named.conf, ce sont des exemples d'entrees d'un serveur esclave.

   Pour chaque nouvelle zone geree, une nouvelle entree de zone doit etre
   ajoutee au fichier named.conf.

   Par exemple, l'entree de zone la plus simple possible pour example.org
   serait:

 zone "example.org" {
         type master;
         file "master/example.org";
 };

   Ce sera un serveur maitre pour la zone, comme indique par l'option type,
   concervant ses informations de zone dans le fichier
   /etc/namedb/master/example.org comme precise par l'option file.

 zone "example.org" {
         type slave;
         file "slave/example.org";
 };

   Dans le cas d'un esclave, les informations concernant la zone seront
   transferees `a partir du serveur maitre pour la zone en question, et
   sauvegardees dans le fichier indique. Si ou lorsque le serveur maitre
   tombe ou est inaccessible, le serveur esclave disposera des informations
   de la zone transferee et sera capable de les diffuser.

    30.6.6.3. Fichiers de zone

   Un exemple de fichier de zone maitre pour example.org (defini dans
   /etc/namedb/master/example.org) suit:

 $TTL 3600        ; 1 hour
 example.org.    IN      SOA      ns1.example.org. admin.example.org. (
                                 2006051501      ; Serial
                                 10800           ; Refresh
                                 3600            ; Retry
                                 604800          ; Expire
                                 86400           ; Minimum TTL
                         )

 ; Serveurs DNS
                 IN      NS      ns1.example.org.
                 IN      NS      ns2.example.org.

 ; Enregistrements MX
                 IN      MX 10   mx.example.org.
                 IN      MX 20   mail.example.org.

                 IN      A       192.168.1.1

 ; Noms de machine
 localhost       IN      A       127.0.0.1
 ns1             IN      A       192.168.1.2
 ns2             IN      A       192.168.1.3
 mx              IN      A       192.168.1.4
 mail            IN      A       192.168.1.5

 ; Alias
 www             IN      CNAME   @

   Notez que chaque nom de machine se terminant par un "." est un nom de
   machine complet, alors que tout ce qui se termine pas par un "." est
   reference par rapport `a une origine. Par exemple, www sera traduit en
   www.origine. Dans notre fichier de zone fictif, notre origine est
   example.org., donc www sera traduit en www.example.org.

   Le format d'un fichier de zone est le suivant:

 nom-enregistrement      IN type-enregistrement   valeur

   Les enregistrements DNS les plus couramment utilises:

   SOA

           debut des donnees de zone

   NS

           serveur de noms faisant autorite

   A

           adresse d'une machine

   CNAME

           alias d'un nom de machine

   MX

           serveur de messagerie recevant le courrier pour le domaine

   PTR

           un pointeur sur un nom de domaine (utilise dans le DNS inverse)

 example.org. IN SOA ns1.example.org. admin.example.org. (
                         2006051501      ; Serial
                         10800           ; Refresh after 3 hours
                         3600            ; Retry after 1 hour
                         604800          ; Expire after 1 week
                         86400 )         ; Minimum TTL of 1 day

   example.org.

           le nom de domaine, egalement l'origine pour ce fichier de zone.

   ns1.example.org.

           le serveur de noms primaire/faisant autorite pour cette zone.

   admin.example.org.

           la personne responsable pour cette zone avec le caractere "@"
           remplace. (<admin@example.org> devient admin.example.org)

   2006051501

           le numero de serie de ce fichier. Celui-ci doit etre incremente `a
           chaque modification du fichier de zone. De nos jours, de nombreux
           administrateurs preferent un format du type aaaammjjrr pour le
           numero de serie. 2006051501 signifierait derniere modification le
           15/05/2006, le 01 indiquant que c'est la seconde fois que ce
           fichier a ete revise ce jour. Le numero de serie est important
           puisqu'il indique aux serveurs de noms esclaves pour la zone une
           modification de celle-ci.

        IN NS           ns1.example.org.

   C'est une entree de type NS. Tous les serveurs de noms qui doivent faire
   autorite pour la zone devront inclure une de ces entrees.

 localhost       IN      A       127.0.0.1
 ns1             IN      A       192.168.1.2
 ns2             IN      A       192.168.1.3
 mx              IN      A       192.168.1.4
 mail            IN      A       192.168.1.5

   Un enregistrement de type A indique des noms de machine. Comme presente
   ci-dessus ns1.example.org sera resolu en 192.168.1.2.

                 IN      A       192.168.1.1

   Cette ligne assigne l'adresse IP 192.168.1.1 `a l'origine, dans cet
   exemple example.org.

 www             IN CNAME        @

   L'enregistrement de type CNAME est generalement utilise pour creer des
   alias `a une machine. Dans l'exemple, www est un alias de la machine
   connue sous le nom localhost.example.org (127.0.0.1). Les enregistrements
   CNAME peuvent etre utilises pour fournir des alias `a des noms de
   machines, ou permettre la rotation ("round robin") d'un nom de machine
   entre plusieurs machines.

                IN MX   10      mail.example.org.

   L'enregistrement MX indique quels serveurs de messagerie sont responsables
   de la gestion du courrier entrant pour la zone. mail.example.org est le
   nom de machine du serveur de messagerie, et 10 etant la priorite du
   serveur de messagerie.

   On peut avoir plusieurs serveurs de messagerie, avec des priorites de 10,
   20, etc. Un serveur de messagerie tentant de transmettre du courrier au
   domaine example.org essaiera en premier le MX avec la plus haute priorite
   (l'enregistrement avec le numero de priorite le plus bas), puis celui
   venant en second, etc, jusqu'`a ce que le courrier puisse etre
   correctement delivre.

   Pour les fichiers de zone in-addr.arpa (DNS inverse), le meme format est
   utilise, `a l'exception du fait que des entrees PTR seront utilisees en
   place de A ou CNAME.

 $TTL 3600

 1.168.192.in-addr.arpa. IN SOA ns1.example.org. admin.example.org. (
                         2006051501      ; Serial
                         10800           ; Refresh
                         3600            ; Retry
                         604800          ; Expire
                         3600 )          ; Minimum

         IN      NS      ns1.example.org.
         IN      NS      ns2.example.org.

 1       IN      PTR     example.org.
 2       IN      PTR     ns1.example.org.
 3       IN      PTR     ns2.example.org.
 4       IN      PTR     mx.example.org.
 5       IN      PTR     mail.example.org.

   Ce fichier donne la correspondance entre adresses IP et noms de machines
   de notre domaine fictif.

  30.6.7. Serveur de noms cache

   Un serveur de noms cache est un serveur de noms qui ne fait autorite pour
   aucune zone. Il emet simplement des requetes, et se souvient du resultat
   pour une utilisation ulterieure. Pour mettre en place un tel serveur,
   configurez le serveur de noms comme `a l'accoutume, en prenant bien soin
   de n'inclure aucune zone.

  30.6.8. Securite

   Bien que BIND soit l'implementation la plus courante du DNS, le probleme
   de la securite subsiste toujours. De possibles problemes de securite
   exploitables sont parfois decouvert.

   Bien que FreeBSD enferme automatiquement named dans un environnement
   chroot(8), il existe plusieurs autres mecanismes de securite qui
   pourraient aider `a se premunir contre de possibles attaques DNS.

   C'est une bonne idee de lire les avis de securite du CERT et de s'inscrire
   `a la liste de diffusion des avis de securite pour FreeBSD pour se
   maintenir au courant des problemes de securite actuels de l'Internet et de
   FreeBSD.

  Astuce:

   Si un probleme surgit, conserver les sources `a jour et disposer d'une
   version compilee de named recente ne seront pas de trop.

  30.6.9. Lectures supplementaires

   Les pages de manuel de BIND/named: rndc(8) named(8) named.conf(5).

     * Page officielle ISC concernant BIND

     * Forum officiel ISC concernant BIND

     * FAQ BIND

     * DNS et BIND 5eme Edition de chez O'Reilly

     * RFC1034 - Domain Names - Concepts and Facilities

     * RFC1035 - Domain Names - Implementation and Specification

30.7. Serveur HTTP Apache

   Contribution de Murray Stokely.

  30.7.1. Generalites

   FreeBSD est utilise pour faire tourner certains des sites les plus charges
   au monde. La majorite des serveurs web sur l'Internet utilisent le serveur
   HTTP Apache. Les versions pre-compilees d'Apache devraient se trouver sur
   le support d'installation de FreeBSD que vous avez utilise. Si vous n'avez
   pas installe Apache `a l'installation de FreeBSD, alors vous pouvez
   installer le serveur `a partir du logiciel porte www/apache13 ou
   www/apache20.

   Une fois qu'Apache a ete installe avec succes, il doit etre configure.

  Note:

   Cette section traite de la version 1.3.X du serveur HTTP Apache etant
   donne que c'est la version la plus largement utilisee sous FreeBSD.
   Apache 2.X introduit de nombreuses nouvelles technologies mais elles ne
   sont pas abordees ici. Pour plus d'informations concernant Apache 2.X
   veuillez consulter http://httpd.apache.org/.

  30.7.2. Configuration

   Le fichier principal de configuration du serveur HTTP Apache est, sous
   FreeBSD, le fichier /usr/local/etc/apache/httpd.conf. Ce fichier est un
   fichier texte de configuration UNIX(R) typique avec des lignes de
   commentaires debutant par un caractere #. Une description complete de
   toutes les options de configuration possibles depasse le cadre de cet
   ouvrage, aussi seules les directives les plus frequemment modifiees seront
   decrites ici.

   ServerRoot "/usr/local"

           Indique le repertoire d'installation par defaut pour
           l'arborescence Apache. Les binaires sont stockes dans les
           sous-repertoires bin et sbin de la racine du serveur, et les
           fichiers de configuration dans etc/apache.

   ServerAdmin you@your.address

           L'adresse electronique `a laquelle tous les problemes concernant
           le serveur doivent etre rapportes. Cette adresse apparait sur
           certaines pages generees par le serveur, comme des pages d'erreur.

   ServerName www.example.com

           La directive ServerName vous permet de fixer un nom de machine qui
           est renvoye aux clients de votre serveur si le nom est different
           de celui de la machine (i.e, utilisez www `a la place du veritable
           nom de la machine).

   DocumentRoot "/usr/local/www/data"

           DocumentRoot est le repertoire ou se trouvent les documents que
           votre serveur diffusera. Par defaut, toutes les requetes sont
           prises en compte par rapport `a ce repertoire, mais des liens
           symboliques et des alias peuvent etre utilises pour pointer vers
           d'autres emplacements.

   C'est toujours une bonne idee de faire des copies de sauvegarde de votre
   fichier de configuration d'Apache avant de faire des modifications. Une
   fois que vous etes satisfait avec votre configuration, vous etes pret `a
   lancer Apache.

  30.7.3. Executer Apache

   Apache n'est pas lance `a partir du "super-serveur" inetd comme pour
   beaucoup d'autres serveurs reseau. Il est configure pour tourner de fac,on
   autonome pour de meilleures performances `a la reception des requetes HTTP
   des navigateurs web. Une procedure est fournie pour rendre le demarrage,
   l'arret, et le redemarrage du serveur aussi simple que possible. Pour
   demarrer Apache pour la premiere fois, executez:

 # /usr/local/sbin/apachectl start

   Vous pouvez arreter le serveur `a tout moment en tapant:

 # /usr/local/sbin/apachectl stop

   Apres avoir effectue des modifications dans le fichier de configuration,
   vous devez redemarrer le serveur:

 # /usr/local/sbin/apachectl restart

   Pour redemarrer Apache sans faire echouer les connexions en cours,
   executez:

 # /usr/local/sbin/apachectl graceful

   Des informations supplementaires sont disponibles dans la page de manuel
   d'apachectl(8).

   Pour lancer Apache au demarrage du systeme, ajoutez la ligne suivante au
   fichier /etc/rc.conf:

 apache_enable="YES"

   Si vous desirez passer des options en ligne de commande supplementaires au
   programme httpd d'Apache lance au demarrage du systeme, vous pouvez les
   specifier `a l'aide d'une ligne dans rc.conf:

 apache_flags=""

   Maintenant que le serveur web tourne, vous pouvez voir votre site web en
   pointant votre navigateur sur http://localhost/. La page web affichee par
   defaut est /usr/local/www/data/index.html.

  30.7.4. Serveurs virtuels

   Apache supporte deux types differents de serveurs virtuels. Le premier
   type est celui des serveurs virtuels bases sur les noms. Ce type de
   serveurs virtuels utilise les entetes HTTP/1.1 pour determiner le nom de
   la machine. Cela autorise le partage de la meme adresse IP entre plusieurs
   domaines differents.

   Pour configurer Apache `a l'utilisation de serveurs virtuels bases sur les
   noms, ajoutez une entree comme la suivante `a votre fichier httpd.conf:

 NameVirtualHost *

   Si votre serveur web est appele www.domain.tld et que vous voulez mettre
   en place un domain virtuel pour www.someotherdomain.tld alors vous
   ajouterez les entrees suivantes au fichier httpd.conf:

 <VirtualHost *>
 ServerName www.domain.tld
 DocumentRoot /www/domain.tld
 </VirtualHost>

 <VirtualHost *>
 ServerName www.someotherdomain.tld
 DocumentRoot /www/someotherdomain.tld
 </VirtualHost>

   Remplacez les addresses avec celles que vous desirez utiliser et le chemin
   d'acces des documents avec celui que vous utilisez.

   Pour plus d'informations sur la mise en place de serveurs virtuels,
   veuillez consulter la documentation officielle d'Apache `a l'adresse
   http://httpd.apache.org/docs/vhosts/.

  30.7.5. Modules Apache

   Il existe de nombreux modules Apache disponibles en vue d'ajouter des
   fonctionnalites au serveur de base. Le catalogue des logiciels portes
   offre une methode simple d'installation d'Apache avec certains des modules
   les plus populaires.

    30.7.5.1. mod_ssl

   Le module mod_ssl utilise la bibliotheque OpenSSL pour offrir un
   chiffrement solide `a l'aide des protocoles "Secure Sockets Layer" (SSL
   v2/v3) et "Transport Layer Security". Ce module fourni tout ce qui est
   necessaire `a la demande de certificats signes aupres d'une autorite de
   certification connue de fac,on `a pouvoir faire tourner un serveur web
   securise sous FreeBSD.

   Si vous n'avez pas dej`a installe Apache, alors une version d'Apache 1.3.X
   comprenant mod_ssl peut etre installee `a l'aide du logiciel porte
   www/apache13-modssl. Le support SSL est egalement disponible pour
   Apache 2.X avec le logiciel porte www/apache20, ou il est active par
   defaut.

    30.7.5.2. Sites Web dynamiques avec Perl & PHP

   Ces dernieres annees, de plus en plus d'entreprises se sont tournees vers
   l'Internet pour augmenter leurs revenus et renforcer leur exposition. Cela
   a eu pour consequence d'accroitre le besoin de contenus Web interactifs.
   Quand certaines entreprises, comme Microsoft(R), ont introduit dans leurs
   produits proprietaires des solutions `a ces besoins, la communaute des
   logiciels libres a egalement repondu `a l'appel. Deux options pour obtenir
   du contenu Web dynamique sont mod_perl et mod_php.

      30.7.5.2.1. mod_perl

   Le projet d'integration Apache/Perl reuni la puissance du langage de
   programmation Perl et le serveur HTTP Apache. Avec le module mod_perl il
   est alors possible d'ecrire des modules Apache entierement en Perl. De
   plus, la presence d'un interpreteur integre au serveur evite la surcharge
   due au lancement d'un interpreteur externe et le delai penalisant du
   demarrage de Perl.

   Le module mod_perl est peut etre obtenu de diverses manieres. Pour
   l'utilisation du module mod_perl souvenez-vous que mod_perl 1.0 ne
   fonctionne qu'avec Apache 1.3 et mod_perl 2.0 ne fonctionne qu'avec Apache
   2. Le module mod_perl 1.0 est disponible sous www/mod_perl et une version
   compilee en statique sous www/apache13-modperl. Le module mod_perl 2.0 est
   disponible sous www/mod_perl2.

      30.7.5.2.2. mod_php

   Ecrit par Tom Rhodes.

   PHP, aussi connu sous le nom de << PHP: Hypertext Preprocessor >> est un
   langage de script tout particulierement adapte au developpement Web.
   Pouvant etre integre `a du HTML, sa syntaxe est derivee du C, Java(TM), et
   du Perl avec pour objectif de permettre aux developpeurs Web d'ecrire
   rapidement des pages Web au contenu genere dynamiquement.

   Pour ajouter le support de PHP5 au serveur Web Apache, commencez par
   installer le logiciel porte lang/php5.

   Si c'est la premiere installation du logiciel lang/php5, les OPTIONS
   disponibles seront affichees automatiquement. Si aucun menu n'est affiche,
   parce que le logiciel porte lang/php5 a ete installe par le passe, il est
   toujours possible de forcer l'affichage du menu des options de compilation
   en utilisant la commande:

 # make config

   dans le repertoire du logiciel porte.

   Dans le menu des options de compilation, selectionnez l'option APACHE pour
   compiler mod_php5 sous forme de module chargeable pour le serveur Web
   Apache.

  Note:

   De nombreux sites utilisent toujours PHP4 pour diverses raisons (des
   problemes de compatibilite ou des applications Web dej`a deployees). Si
   mod_php4 est requis `a la place de mod_php5, utilisez alors le logiciel
   porte lang/php4. Le logiciel porte lang/php4 supporte plusieurs des
   options de configuration et de compilation du logiciel porte lang/php5.

   Cela installera et configurera les modules requis au support des
   applications dynamiques PHP. Assurez-vous que les sections suivantes ont
   ete ajoutees au fichier /usr/local/etc/apache/httpd.conf:

 LoadModule php5_module        libexec/apache/libphp5.so

 AddModule mod_php5.c
     <IfModule mod_php5.c>
         DirectoryIndex index.php index.html
     </IfModule>
     <IfModule mod_php5.c>
         AddType application/x-httpd-php .php
         AddType application/x-httpd-php-source .phps
     </IfModule>

   Ensuite, un simple appel `a la commande apachectl pour un redemarrage
   elegant est requis pour charger le module PHP:

 # apachectl graceful

   Lors des futures mises `a jour de PHP, la commande make config ne sera pas
   necessaire; les OPTIONS precedemment selectionnees sont automatiquement
   sauvegardees par le systeme des logiciels portes de FreeBSD.

   Le support de PHP sous FreeBSD est extremement modulaire ce qui donne lieu
   `a une installation de base limitee. Il est tres simple d'ajouter une
   fonctionnalite en utilisant le logiciel porte lang/php5-extensions. Ce
   logiciel porte fournit un menu pour l'installation des extensions PHP.
   Alternativement, il est possible d'installer les extensions
   individuellement en utilisant les logiciels portes correspondants.

   Par exemple, pour ajouter `a PHP5 le support pour le serveur de bases de
   donnees MySQL, installez simplement le logiciel porte
   databases/php5-mysql.

   Apres l'installation d'une extension, le serveur Apache doit etre
   redemarre pour prendre en compte les changements de configuration:

 # apachectl graceful

30.8. Protocole de transfert de fichiers (FTP)

   Contribution de Murray Stokely.

  30.8.1. Generalites

   Le protocol de transfert de fichiers (FTP) offre aux utilisateurs une
   methode simple pour transferer des fichiers vers ou `a partir d'un serveur
   FTP. FreeBSD comprend un serveur FTP, ftpd, dans le systeme de base. Cela
   rend la configuration et l'administration d'un serveur FTP sous FreeBSD
   tres simple.

  30.8.2. Configuration

   L'etape de configuration la plus important est de decider quels comptes
   seront autorises `a acceder au serveur FTP. Un systeme FreeBSD classique
   possede de nombreux comptes systeme utilises par divers "daemon"s, mais
   les utilisateurs inconnus ne devraient pas etre autorises `a ouvrir de
   session sous ces comptes. Le fichier /etc/ftpusers est une liste
   d'utilisateurs interdits d'acces au serveur FTP. Par defaut, il inclut les
   comptes systemes precedemment mentionnes, mais il est possible d'ajouter
   des utilisateurs precis qui ne devraient pas avoir acces au serveur FTP.

   Vous pouvez vouloir restreindre l'acces `a certains utilisateurs sans leur
   refuser completement l'utilisation du serveur FTP. Cela peut etre realise
   `a l'aide du fichier /etc/ftpchroot. Ce fichier liste les utilisateurs et
   les groupes sujet `a des restrictions d'acces FTP. La page de manuel
   ftpchroot(5) fournit tous les details, cela ne sera donc pas decrit ici.

   Si vous desirez activer l'acces FTP anonyme sur votre serveur, vous devez
   alors creer un utilisateur appele ftp sur votre serveur FreeBSD. Les
   utilisateurs seront donc en mesure d'ouvrir une session FTP sur votre
   serveur sous le nom d'utilisateur ftp ou anonymous et sans aucun mot de
   passe (par convention l'adresse electronique de l'utilisateur devrait etre
   utilisee comme mot de passe). Le serveur FTP appellera chroot(2) quand un
   utilisateur anonyme ouvrira une session, pour restreindre l'acces juste au
   repertoire personnel de l'utilisateur ftp.

   Il existe deux fichiers texte qui specifient les messages de bienvenue `a
   afficher aux clients FTP. Le contenu du fichier /etc/ftpwelcome sera
   affiche aux utilisateurs avant qu'ils atteignent l'invite de session.
   Apres une ouverture de session, le contenu du fichier /etc/ftpmotd sera
   affiche. Notez que le chemin d'acces `a ce fichier est relatif `a
   l'environnement de la session, aussi le fichier ~ftp/etc/ftpmotd sera
   affiche aux utilisateurs anonymes.

   Une fois que le serveur FTP a ete configure correctement, il doit etre
   active dans le fichier /etc/inetd.conf. Ici il faut juste retirer le
   symbole de commentaire "#" en face de la ligne ftpd:

 ftp     stream  tcp     nowait  root    /usr/libexec/ftpd       ftpd -l

   Comme explique dans la Exemple 30.1, << Recharger le fichier de
   configuration d'inetd >>, la configuration d'inetd doit etre rechargee
   apres que le fichier de configuration ait ete modifie.

   Vous pouvez maintenant ouvrir une session FTP sur votre serveur en tapant:

 % ftp localhost

  30.8.3. Maintenance

   Le "daemon" ftpd utilise syslog(3) pour l'enregistrement des messages. Par
   defaut, le "daemon" de gestion des journaux du systeme enverra les
   messages relatifs au FTP dans le fichier /var/log/xferlog. L'emplacement
   des journaux FTP peut etre modifie en changeant la ligne suivante dans le
   fichier /etc/syslog.conf:

 ftp.info      /var/log/xferlog

   Soyez conscient des eventuels problemes impliques par l'utilisation d'un
   serveur FTP acceptant les connexions anonymes. Vous devriez, tout
   particulierement, penser `a deux fois avant d'autoriser les utilisateurs
   anonyme `a deposer des fichiers sur le serveur. Votre site FTP pourrait
   devenir un forum d'echange de logiciels commerciaux sans les licences ou
   pire. Si vous devez autoriser le depot de fichiers de fac,on anonyme sur
   le serveur FTP, alors vous devriez fixer les permissions sur ces fichiers
   de telle sorte qu'ils ne puissent etre lus par d'autres utilisateurs
   anonymes avant qu'ils n'aient pu etre controles.

30.9. Serveur de fichiers et d'impression pour clients Microsoft(R) Windows(R)
(Samba)

   Contribution de Murray Stokely.

  30.9.1. Generalites

   Samba est un logiciel libre tres populaire qui offre des services de
   partage de fichiers et d'imprimantes pour les clients
   Microsoft(R) Windows(R). De tels clients peuvent se connecter et utiliser
   l'espace de fichiers d'une machine FreeBSD comme si c'etait un disque
   local, ou utiliser des imprimantes FreeBSD comme si elles etaient des
   imprimantes locales.

   Samba devrait se trouver sur votre support d'installation. Si vous n'avez
   pas installe Samba `a l'installation de FreeBSD, vous pouvez alors
   l'installer `a partir de la version pre-compilee ou portee net/samba3.

  30.9.2. Configuration

   Le fichier de configuration par defaut de Samba est installe sous le nom
   /usr/local/etc/smb.conf.default. Ce fichier doit etre copie vers
   /usr/local/etc/smb.conf et personnalise avant que Samba ne puisse etre
   utilise.

   Le fichier smb.conf contient la configuration necessaire `a l'execution de
   Samba, comme la definition des imprimantes et des "systemes de fichiers
   partages" que vous desirez partager avec les clients Windows(R). Le
   logiciel Samba comprend une interface Web appele swat qui offre une
   methode simple de configuration du fichier smb.conf.

    30.9.2.1. Utilisation de l'interface web d'administration de Samba (SWAT)

   L'interface web d'administration de Samba (SWAT) est executee sous la
   forme d'un "daemon" `a partir d'inetd. Par consequent, la ligne suivante
   dans le fichier /etc/inetd.conf doit etre decommentee avant que swat ne
   puisse etre utilise pour configurer Samba:

 swat   stream  tcp     nowait/400      root    /usr/local/sbin/swat    swat

   Comme explique dans la Exemple 30.1, << Recharger le fichier de
   configuration d'inetd >>, la configuration d'inetd doit etre rechargee
   apres modification de ce fichier de configuration.

   Une fois que swat a ete active dans inetd.conf, vous pouvez utiliser un
   navigateur pour vous connecter `a l'adresse http://localhost:901. Vous
   devez ouvrir tout d'abord une session sous le compte systeme root.

   Une fois que vous avez ouvert une session sur la page principale de
   configuration de Samba, vous pouvez naviguer dans la documentation du
   systeme, ou commencer par cliquer sur l'onglet Globals. Le menu Globals
   correspond aux variables situees dans la section [global] du fichier
   /usr/local/etc/smb.conf.

    30.9.2.2. Parametrages generaux

   Que vous utilisiez swat ou editiez directement le fichier
   /usr/local/etc/smb.conf, les premieres directives que vous allez surement
   rencontrer en configurant Samba seront:

   workgroup

           Le nom de domaine NT ou le groupe de travail pour les ordinateurs
           qui accederont `a ce serveur.

   netbios name

           Fixe le nom NetBIOS sous lequel est connu le serveur Samba. Par
           defaut c'est le meme que la premiere composante du nom de la
           machine pour le DNS.

   server string

           Cette directive definie la chaine de caracteres qui sera affichee
           lors de l'utilisation de la commande net view et par d'autres
           outils reseau recherchant `a afficher une description du serveur.

    30.9.2.3. Parametres de securite

   Deux des plus importants parametrages de /usr/local/etc/smb.conf sont le
   mode de securite choisi, et le format de mot de passe pour les
   utilisateurs. Les directives suivantes controlent ces options:

   security

           Les deux options les plus courantes sont security = share et
           security = user. Si vos clients utilisent des noms d'utilisateur
           identiques `a ceux sur votre machine FreeBSD, alors vous voudrez
           utiliser un niveau de securite utilisateur. C'est le mode de
           securite par defaut et qui demande aux clients de d'ouvrir une
           session avant de pouvoir acceder aux ressources partagees.

           Dans le niveau de securite partage ("share"), le client n'a pas
           besoin d'ouvrir de session avant de pouvoir se connecter `a une
           ressource partagee. C'etait le mode de securite par defaut
           d'anciennes versions de Samba.

   passdb backend

           Samba possede plusieurs modeles de support d'authentification.
           Vous pouvez authentifier des clients avec LDAP, NIS+, une base de
           donnees SQL ou un fichier de mot de passe modifie. La methode
           d'authentification par defaut est appelee smbpasswd, et c'est
           celle qui sera presentee ici.

   En supposant que le modele smbpasswd par defaut est utilise, le fichier
   /usr/local/private/smbpasswd doit etre cree pour permettre `a Samba
   d'identifier les clients. Si vous desirez donner acces `a vos comptes
   utilisateur UNIX(R) `a partir de clients Windows(R), utilisez la commande
   suivante:

 # smbpasswd -a username

   Veuillez consulter le tutorial officiel de Samba pour des informations
   supplementaires sur les options de configuration. Avec les bases
   presentees ici, vous devriez disposer de tous les elements necessaires au
   demarrage de Samba.

  30.9.3. Demarrage de Samba

   Le logiciel porte net/samba3 amene une nouvelle procedure de demarrage qui
   peut etre employee pour controler Samba. Pour activer cette procedure de
   maniere `a ce qu'elle soit utilisee pour par exemple lancer, arreter ou
   relancer Samba, ajoutez la ligne suivante au fichier /etc/rc.conf:

 samba_enable="YES"

   Ou, pour un controle plus fin:

 nmbd_enable="YES"
         smbd_enable="YES"

  Note:

   Avec cela, Samba sera automatiquement lance au demarrage.

   Il est alors possible de demarrer Samba `a n'importe quel moment en
   tapant:

 # /usr/local/etc/rc.d/samba start
 Starting SAMBA: removing stale tdbs :
 Starting nmbd.
 Starting smbd.

   Veuillez consulter la Section 11.6, << Utilisation du systeme rc(8) sous
   FreeBSD >> pour plus d'information sur les procedures rc.

   Samba consiste essentiellement en trois "daemon"s separes. Vous devriez
   vous rendre compte que les "daemon"s nmbd et smbd sont lances par la
   procedure samba. Si vous avez active la resolution de noms winbind dans le
   fichier smb.conf, alors le "daemon" winbindd sera egalement lance.

   Vous pouvez arreter Samba `a tout moment en tapant:

 # /usr/local/etc/rc.d/samba stop

   Samba est une suite logiciels complexes avec des fonctionnalites
   permettant une large integration avec les reseaux Microsoft(R) Windows(R).
   Pour plus d'information sur les fonctionnalites non-abordees dans ce
   document, veuillez consulter http://www.samba.org.

30.10. Synchronisation de l'horloge avec NTP

   Contribution de Tom Hukins.

  30.10.1. Generalites

   Avec le temps, l'horloge d'un ordinateur tend `a deriver. Le protocole NTP
   ("Network Time Protocol") est une des manieres pour s'assurer que votre
   horloge reste precise.

   De nombreux services Internet ont besoin, ou tirent partie, de la
   precision des horloges des ordinateurs. Par exemple, un serveur web, peut
   recevoir des requetes pour n'envoyer un fichier que s'il a ete modifie
   depuis un certain temps. Sur un reseau local, il est essentiel que les
   ordinateurs partageant des fichiers `a partir du meme serveur de fichiers
   aient des horloges synchronisees de maniere `a ce que les dates de
   creation ou de derniere modification d'un fichier ("timestamp") soient
   coherentes. Des services comme cron(8) reposent sur une horloge systeme
   precise pour executer des commandes `a des moments precis.

   FreeBSD est fourni avec le serveur NTP ntpd(8) qui peut etre utilise pour
   contacter d'autres serveurs NTP pour regler l'horloge de votre machine ou
   pour jouer le role de serveur de temps pour d'autres.

  30.10.2. Choisir les serveurs NTP appropries

   Afin de synchroniser votre horloge, vous devrez trouver un ou plusieurs
   serveurs NTP. Votre administrateur reseau ou votre FAI peuvent avoir mis
   en place un serveur NTP dans cet objectif-consultez leur documentation
   pour voir si c'est le cas. Il existe une liste en ligne de serveurs NTP
   accessibles par le public que vous pouvez utiliser pour trouver un serveur
   NTP proche de vous. Assurez-vous d'avoir pris connaissance de la politique
   d'utilisation des serveurs que vous choisissez, et demandez la permission
   si necessaire.

   Choisir plusieurs serveurs NTP non-connectes entre eux est une bonne idee
   au cas ou un des serveurs que vous utilisez devient inaccessible ou que
   son horloge n'est plus fiable. ntpd(8) utilise intelligemment les reponses
   qu'il rec,oit d'autres serveurs-il favorisera les plus fiables par rapport
   aux moins fiables.

  30.10.3. Configuration de votre machine

    30.10.3.1. Configuration de base

   Si vous desirez synchroniser votre horloge uniquement lors du demarrage de
   la machine, vous pouvez alors employer ntpdate(8). Cela peut etre
   approprie pour certaines machines de bureau qui sont frequemment
   redemarrees et qui ne necessites qu'une synchronisation episodique,
   cependant la plupart des machines devraient utiliser ntpd(8).

   Utiliser ntpdate(8) au moment du demarrage est egalement une bonne idee
   pour les machines qui executent ntpd(8). Le programme ntpd(8) modifie
   l'horloge graduellement, alors que ntpdate(8) change directement
   l'horloge, peu importe la difference entre l'heure actuelle de la machine
   et l'heure correcte.

   Pour activer ntpdate(8) au demarrage, ajoutez la ligne
   ntpdate_enable="YES" au fichier /etc/rc.conf. Vous devrez egalement
   preciser tous les serveurs avec lesquels vous desirez vous synchroniser et
   tous les indicateurs devant etre passes `a ntpdate(8) avec ntpdate_flags.

    30.10.3.2. Configuration generale

   NTP est configure par l'intermediaire du fichier /etc/ntp.conf suivant le
   format decrit dans la page de manuel ntp.conf(5). Voici un exemple simple:

 server ntplocal.example.com prefer
 server timeserver.example.org
 server ntp2a.example.net

 driftfile /var/db/ntp.drift

   L'option server precise quels serveurs doivent etre utilises, avec un
   serveur liste par ligne. Si un serveur est specifie avec l'argument
   prefer, comme c'est le cas pour ntplocal.example.com, ce serveur est
   prefere par rapport aux autres serveurs. Une reponse en provenance d'un
   serveur prefere sera ignoree si elle differe de fac,on significative des
   reponses des autres serveurs, sinon elle sera utilisee sans considerer les
   autres reponses. L'argument prefer est normalement employe pour les
   serveurs NTP qui sont connus pour leur grande precision, comme ceux avec
   des systemes speciaux de controle du materiel.

   L'option driftfile precise quel fichier est utilise pour stocker le
   decalage de frequence de l'horloge. Le programme ntpd(8) l'utilise pour
   compenser automatiquement la derive naturelle de l'horloge, permettant de
   maintenir un reglage raisonnablement correct meme s'il est coupe d'autres
   sources exterieures de temps pendant une certaine periode.

   L'option driftfile precise egalement quel fichier est utilise pour stocker
   l'information concernant les reponses precedentes des serveurs NTP que
   vous utilisez. Il ne devrait pas etre modifie par un autre processus.

    30.10.3.3. Controler l'acces `a votre serveur

   Par defaut, votre serveur NTP sera accessible par toutes les machines sur
   l'Internet. L'option restrict du fichier /etc/ntp.conf vous permet de
   controler quelles machines peuvent acceder `a votre serveur.

   Si vous voulez refuser `a tout le monde l'acces `a votre serveur NTP,
   ajoutez la ligne suivante au fichier /etc/ntp.conf:

 restrict default ignore

  Note:

   Cela empechera egalement `a votre serveur d'acceder `a tout serveur liste
   dans votre configuration locale. Si vous avez besoin de synchroniser votre
   serveur NTP avec un serveur NTP externe, vous devez alors autoriser le
   serveur en question. Consultez la page de manuel de ntp.conf(5) pour plus
   d'information.

   Si vous desirez autoriser uniquement l'acces aux machines de votre reseau
   pour qu'elles puissent synchroniser leur horloge, tout en vous assurant
   qu'elles ne peuvent configurer le serveur ou etre utilisees comme point de
   de synchronisation, ajoutez:

 restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

   `a la place, ou 192.168.1.0 est une adresse IP de votre reseau et
   255.255.255.0 est votre masque de sous-reseau.

   Le fichier /etc/ntp.conf peut contenir plusieurs options restrict. Pour
   plus de details, lisez la section Access Control Support de la page de
   manuel ntp.conf(5).

  30.10.4. Executer le serveur NTP

   Pour s'assurer que le serveur NTP est lance au demarrage, ajoutez la ligne
   ntpd_enable="YES" dans le fichier /etc/rc.conf. Si vous desirez passer des
   indicateurs supplementaires `a ntpd(8), editez les parametres de l'option
   ntpd_flags dans /etc/rc.conf.

   Pour lancer le serveur sans redemarrer votre machine, executez ntpd en
   etant sur de preciser tout parametre supplementaire de ntpd_flags dans
   /etc/rc.conf. Par exemple:

 # ntpd -p /var/run/ntpd.pid

  30.10.5. Utiliser ntpd avec une connexion Internet temporaire

   Le programme ntpd(8) n'a pas besoin d'une connexion permanente `a
   l'Internet pour fonctionner correctement. Cependant, si vous disposez
   d'une connexion temporaire qui est configuree de telle sorte qu'il y ait
   etablissement de la connexion `a la demande, c'est une bonne idee
   d'empecher le trafic NTP de declencher la numerotation ou de maintenir
   constamment etablie la connexion. Si vous utilisez PPP en mode
   utilisateur, vous pouvez employer les directives filter dans le fichier
   /etc/ppp/ppp.conf. Par exemple:

  set filter dial 0 deny udp src eq 123
  # Empeche le trafic NTP de lancer une connexion
  set filter dial 1 permit 0 0
  set filter alive 0 deny udp src eq 123
  # Empeche le trafic NTP entrant de garder la connexion etablie
  set filter alive 1 deny udp dst eq 123
  # Empeche le trafic NTP sortant de garder la connexion etablie
  set filter alive 2 permit 0/0 0/0

   Pour plus de details lisez la section PACKET FILTERING de la page de
   manuel ppp(8) et les exemples du repertoire /usr/share/examples/ppp/.

  Note:

   Certains fournisseurs d'acces Internet bloquent les ports dont le numero
   est faible, empechant NTP de fonctionner puisque les reponses n'atteignent
   jamais votre machine.

  30.10.6. Information supplementaire

   La documentation pour le serveur NTP peut etre trouvee dans le repertoire
   /usr/share/doc/ntp/ sous le format HTML.

Chapitre 31. Firewalls ** Traduction en Cours **

   Contribution de Joseph J. Barbish.
   Converti en SGML et mis `a jour par Brad Davis.
   Table des matieres

   31.1. Introduction

   31.2. Firewall Concepts

   31.3. Firewall Packages

   31.4. The OpenBSD Packet Filter (PF) and ALTQ

   31.5. The IPFILTER (IPF) Firewall

   31.6. IPFW

31.1. Introduction

31.2. Firewall Concepts

31.3. Firewall Packages

31.4. The OpenBSD Packet Filter (PF) and ALTQ

31.5. The IPFILTER (IPF) Firewall

31.6. IPFW

Chapitre 32. Administration reseau avancee

   Table des matieres

   32.1. Synopsis

   32.2. Passerelles et routes

   32.3. Reseau sans fil

   32.4. Bluetooth

   32.5. Bridging

   32.6. Systeme sans disque dur

   32.7. ISDN

   32.8. Translation d'adresses

   32.9. IP sur liaison parallele (PLIP)

   32.10. IPv6

   32.11. ATM (<< Asynchronous Transfer Mode >>)

   Version franc,aise de Marc Fonvieille <blackend@FreeBSD.org>.

32.1. Synopsis

   Ce chapitre abordera certains nombre de sujets reseau avances.

   Apres la lecture de ce chapitre, vous connaitrez:

     * Les bases sur les passerelles et les routes.

     * Comment configurer les peripheriques IEEE 802.11 et Bluetooth(R).

     * Comment utiliser FreeBSD en tant que pont ("bridge").

     * Comment configurer le demarrage via le reseau pour une machine sans
       disque dur.

     * Comment configurer la translation d'adresse reseau.

     * Comment connecter deux ordinateurs via PLIP.

     * Comment configurer l'IPv6 sur une machine FreeBSD.

     * Comment configurer ATM.

   Avant de lire ce chapitre, vous devrez:

     * Comprendre les bases des procedures /etc/rc.

     * Etre familier avec la terminologie reseau de base.

     * Savoir comment configurer et installer un nouveau noyau FreeBSD
       (Chapitre 8, Configurer le noyau de FreeBSD).

     * Savoir comment installer des logiciels tierce-partie (Chapitre 4,
       Installer des applications: les logiciels pre-compiles et les
       logiciels portes).

32.2. Passerelles et routes

   Contribution de Coranth Gryphon.

   Pour qu'une machine soit en mesure d'en contacter une autre, il faut que
   soit mis en place un mecanisme qui decrive comment aller de l'une `a
   l'autre. C'est ce que l'on appelle le routage. Une "route" est definie par
   une paire d'adresses: une "destination" et une "passerelle". Cette paire
   signifie que pour atteindre cette destination, vous devez passer par cette
   passerelle. Il y a trois sortes de destination: les machines
   individuelles, les sous-reseaux, et "default"-la destination par defaut.
   La route par defaut ("default route") est utilisee lorsqu'aucune autre
   route n'est applicable. Nous parlerons un peu plus des routes par defaut
   par la suite. Il existe egalement trois sortes de passerelles: les
   machines individuelles, les interfaces (aussi appelees "liens"), et les
   adresses Ethernet materielles (adresses MAC).

  32.2.1. Un exemple

   Pour illustrer differents aspects du routage, nous utiliserons l'exemple
   suivant, qui est produit par la commande netstat:

 % netstat -r
 Routing tables

 Destination      Gateway            Flags     Refs     Use     Netif Expire

 default          outside-gw         UGSc       37      418      ppp0
 localhost        localhost          UH          0      181       lo0
 test0            0:e0:b5:36:cf:4f   UHLW        5    63288       ed0     77
 10.20.30.255     link#1             UHLW        1     2421
 example.com      link#1             UC          0        0
 host1            0:e0:a8:37:8:1e    UHLW        3     4601       lo0
 host2            0:e0:a8:37:8:1e    UHLW        0        5       lo0 =>
 host2.example.com link#1             UC          0        0
 224              link#1             UC          0        0

   Les deux premieres lignes definissent la route par defaut (dont nous
   parlerons dans la section suivante) et la route localhost.

   L'interface (colonne Netif) qu'il est indique d'utiliser pour localhost
   est lo0, aussi appelee interface "loopback"-en boucle. Ce qui veut dire
   que tout le trafic vers cette destination doit rester interne, au lieu
   d'etre envoye sur le reseau local, puisqu'il reviendra de toute fac,on `a
   son point de depart.

   Ce qui se remarque ensuite, ce sont les adresses commenc,ant par 0:e0:. Ce
   sont les adresses Ethernet materielles, qui sont egalement connues sous le
   nom d'adresses MAC. FreeBSD reconnaitra automatiquement toute machine
   (test0 dans l'exemple) sur le reseau local Ethernet et ajoutera une route
   vers cette machine, directement via l'interface Ethernet ed0. Il y a aussi
   un delai (colonne Expire) associe `a ce type de route, qui est utilise si
   l'on entend plus parler de cette machine pendant un laps de temps precis.
   Quand cela arrive, la route vers cette machine est automatiquement
   supprimee. Ces machines sont identifiees par un mecanisme appele RIP
   ("Routing Information Protocol"-protocole d'information de routage), qui
   met en place des routes vers les machines locales en determinant le chemin
   le plus court.

   FreeBSD ajoutera egalement des routes de sous-reseau pour le sous-reseau
   local (10.20.30.255 est l'adresse de diffusion pour le sous-reseau
   10.20.30, et example.com est le nom de domaine associe `a ce sous-reseau).
   La denomination link#1 fait reference `a la premiere carte Ethernet de la
   machine. Vous constaterez qu'il n'y a pas d'autre interface associee `a
   ces routes.

   Ces deux types de routes (vers les machines du reseau local et les
   sous-reseaux locaux) sont automatiquement configures par un "daemon"
   appele routed. S'il ne tourne pas, alors seules les routes definies comme
   statiques (i.e. explicitement definies) existeront.

   La ligne host1 fait reference `a votre machine, qui est identifiee par
   l'adresse Ethernet. Puisque nous sommes l'emetteur, FreeBSD sait qu'il
   faut utiliser l'interface en "boucle" (lo0) plutot que d'envoyer les
   donnees sur l'interface Ethernet.

   Les deux lignes host2 montrent ce qui se passe quand on utilise un alias
   avec ifconfig(8) (lisez la section sur l'Ethernet pour savoir pour quelles
   raisons on peut vouloir cela). Le symbole => qui suit l'interface lo0
   indique que non seulement nous utilisons l'interface en "boucle" (puisque
   cette adresse correspond egalement `a la machine locale), mais que c'est
   plus specifiquement un alias. Ce type de route n'apparait que sur la
   machine pour laquelle est defini l'alias; sur toutes les autres machines
   du reseau local il n'y aura q'une ligne link#1 pour cette machine.

   La derniere ligne (le sous-reseau destinataire 224) concerne le
   multicasting (diffusion pour plusieurs destinataires), qui sera aborde
   dans une autre section.

   Et enfin, diverses caracteristiques de chaque route sont indiquees dans la
   colonne Flags (indicateurs). Ci-dessous, une courte table presente
   certains de ces indicateurs et leur signification:

   U Active ("Up"): la route est active.                                      
   H Machine ("Host"): la destination de la route est une machine.            
     Passerelle ("Gateway"): envoyer tout ce qui concerne cette destination   
   G sur la machine distante indiquee, qui determinera `a qui transmettre     
     ensuite.                                                                 
   S Statique ("Static"): cette route a ete configuree manuellement et non    
     pas generee automatiquement par le systeme.                              
     Clone: genere une nouvelle route sur la base de celle-ci pour les        
   C machines auxquelles nous nous connectons. Ce type de route est           
     normalement utilise pour les reseaux locaux.                             
   W Clonee ("WasCloned"): cette route a ete auto-configuree (Clone) `a       
     partir d'une route pour le reseau local.                                 
   L Lien ("Link"): la route fait reference `a une adresse materielle         
     Ethernet.                                                                

  32.2.2. Routes par defaut

   Quand le systeme local doit etablir une connexion avec une machine
   distante, il consulte la table de routage pour voir s'il existe dej`a une
   route connue. Si la machine distante appartient `a un sous-reseau auquel
   le systeme sait se connecter (routes clonees), alors le systeme verifie
   s'il peut se connecter via cette interface.

   Si toutes les routes connues echouent, il reste alors au systeme une
   derniere option: la route par "defaut". Cette route est un type
   particulier de route passerelle (c'est generalement la seule du systeme),
   et est toujours marquee avec un c dans le champ des indicateurs. Pour les
   machines du reseau local, cette passerelle est definie avec la machine qui
   est directement connectee au monde exterieur (que ce soit par une liaison
   PPP, DSL, cable, T1, ou toute autre interface reseau).

   Si vous configurez la route par defaut sur une machine qui fonctionne
   comme passerelle vers le monde exterieur, alors la route par defaut sera
   la passerelle de votre Fournisseur d'Acces `a Internet (FAI).

   Examinons un exemple de route par defaut. Voici une configuration
   classique:

   Les machines Local1 et Local2 sont sur votre site. Local1 est connectee au
   serveur du FAI via une liaison PPP par modem. Ce serveur PPP est connecte
   par l'intermediaire d'un reseau local `a un autre ordinateur passerelle
   relie au point d'entree Internet du FAI.

   Les routes par defaut sur chacune de vos machines seront:

         Machine             Passerelle par defaut            Interface       
   Local2              Local1                            Ethernet             
   Local1              T1-GW                             PPP                  

   Une question qui revient souvent est "Pourquoi (ou comment) definir T1-GW
   comme passerelle par defaut pour Local1, plutot que le serveur du FAI
   auquel elle est connectee?".

   Rappelez-vous, puisque l'interface PPP utilise, de votre cote de la
   connexion, une adresse IP du reseau local du FAI, les routes vers toute
   autre machine du reseau local du FAI seront automatiquement generees. Par
   consequent vous savez dej`a comment atteindre la machine T1-GW, il n'y a
   donc pas besoin d'etape intermediaire qui passe par le serveur du FAI.

   Il est habituel d'attribuer l'adresse X.X.X.1 `a la passerelle sur votre
   reseau local. Donc (dans notre exemple), si votre espace d'adresse de
   classe C local etait 10.20.30 et que votre FAI utilisait l'espace 10.9.9,
   alors les routes par defaut seraient:

                    Machine                          Route par defaut         
   Local2 (10.20.30.2)                        Local1 (10.20.30.1)             
   Local1 (10.20.30.1, 10.9.9.30)             T1-GW (10.9.9.1)                

   Vous pouvez aisement definir la route par defaut via le fichier
   /etc/rc.conf. Dans notre exemple, sur la machine Local2, nous avons ajoute
   la ligne suivante dans /etc/rc.conf:

 defaultrouter="10.20.30.1"

   Il est egalement possible de faire directement cela `a partir de la ligne
   de commande avec la commande route(8):

 # route add default 10.20.30.1

   Pour plus d'informations sur la manipulation `a la main des tables de
   routage reseau, consultez la page de manuel route(8).

  32.2.3. Machines sur deux reseaux

   Il y a un autre type de configuration dont il faut parler, c'est celle
   d'une machine qui est connectee `a deux reseaux differents. Techniquement,
   toute machine servant de passerelle (comme dans l'exemple ci-dessus, en
   utilisant une connexion PPP) est une machine sur deux reseaux. Mais ce
   terme n'est normalement utilise que pour faire reference `a une machine
   qui est sur deux reseaux locaux differents.

   Selon le cas, la machine dispose de deux cartes Ethernet, ayant chacune
   une adresse sur des sous-reseaux separes. Alternativement, la machine peut
   ne disposer que d'une seule carte Ethernet, et utiliser des alias avec
   ifconfig(8). Le premier cas correspond `a l'utilisation de deux reseaux
   Ethernet physiquement separes, le deuxieme cas est employe s'il n'y a
   qu'un seul reseau physique mais deux sous-reseaux logiquement distincts.

   Dans les deux cas, les tables de routage sont definies de telle sorte que
   chaque sous-reseau sache que cette machine est la passerelle (route
   entrante) vers l'autre sous-reseau. Cette configuration, ou la machine
   sert de routeur entre les deux sous-reseaux, est souvent utilisee quand il
   faut mettre en place un dispositif de securite: filtrage de paquets ou
   coupe-feu, dans l'une ou dans les deux directions.

   Si vous voulez que cette machine transmette reellement les paquets entre
   les deux interfaces, vous devez demander `a FreeBSD d'activer cette
   fonctionnalite. Lisez la section suivante pour plus de details sur comment
   faire cela.

  32.2.4. Mettre en place un routeur

   Un routeur est un systeme qui transmet les paquets d'une interface `a une
   autre. Les standards de l'Internet et de bons principes d'ingenierie
   empechent le projet FreeBSD d'activer cette fonction par defaut sous
   FreeBSD. Vous pouvez l'activer en positionnant `a YES la variable suivante
   du fichier rc.conf(5):

 gateway_enable=YES          # Set to YES if this host will be a gateway

   Cette option fixera la variable sysctl(8) net.inet.ip.forwarding `a la
   valeur 1. Si vous devez arreter temporairement le routage, vous pouvez
   positionner la variable momentanement `a 0.

   Votre nouveau routeur aura besoin de route pour savoir ou envoyer le
   trafic. Si votre reseau est suffisamment simple vous pouvez utiliser des
   routes statiques. FreeBSD est egalement fourni avec le "daemon" de routage
   BSD standard routed(8), qui comprend et utilise les protocoles RIP
   (version 1 est 2) et IRDP. Le support de BGP v4, OSPF v2, et d'autres
   protocoles de routage sophistique est disponible avec le logiciel
   net/zebra. Des produits commerciaux comme GateD(R) sont egalement
   disponibles comme solutions avancees de routage.

  32.2.5. Configurarion des routes statiques

   Contribution de Al Hoang.

    32.2.5.1. Configuration manuelle

   Supposons que nous avons un reseau comme celui-ci:

   Dans ce scenario, RouteurA est notre machine FreeBSD qui joue le role de
   routeur pour l'Internet. Elle a une route par defaut vers 10.0.0.1 qui
   permet de se connecter au reste du monde exterieur. Nous supposerons que
   la machine RouteurB est correctement configuree et sait comment
   transmettre vers n'importe quelle destination (D'apres notre schema c'est
   relativement simple. Ajoutez juste une route par defaut sur RouteurB en
   utilisant 192.168.1.1 comme passerelle).

   Si nous regardons la table de routage de RouteurA nous verrions quelque
   chose comme:

 % netstat -nr
 Routing tables

 Internet:
 Destination        Gateway            Flags    Refs      Use  Netif  Expire
 default            10.0.0.1           UGS         0    49378    xl0
 127.0.0.1          127.0.0.1          UH          0        6    lo0
 10.0.0/24          link#1             UC          0        0    xl0
 192.168.1/24       link#2             UC          0        0    xl1

   Avec la table de routage actuelle, RouteurA ne sera pas en mesure
   d'atteindre notre reseau interne 2. Elle ne dispose pas de route pour
   192.168.2.0/24. Une maniere de resoudre cela est d'ajouter manuellement la
   route. La commande suivante ajouterait le reseau interne 2 `a la table de
   routage de RouteurA en utilisant 192.168.1.2 comme point intermediaire:

 # route add -net 192.168.2.0/24 192.168.1.2

   Maintenant RouteurA peut joindre n'importe quelle machine du reseau
   192.168.2.0/24.

    32.2.5.2. Configuration persistante

   L'exemple precedent est parfait pour configurer une route statique sur un
   systeme en fonctionnement. Cependant, le probleme est que l'information de
   routage ne sera pas conservee si vous redemarrez votre machine FreeBSD.
   L'addition d'une route statique doit se faire dans votre fichier
   /etc/rc.conf:

 # Add Internal Net 2 as a static route
 static_routes="internalnet2"
 route_internalnet2="-net 192.168.2.0/24 192.168.1.2"

   La variable static_routes est une liste de chaine de caracteres separees
   par une espace. Chaque chaine fait reference `a un nom de route. Dans
   notre exemple nous avons qu'une seule chaine dans static_routes. Cette
   chaine est internalnet2. Nous ajoutons ensuite une variable de
   configuration appelee route_internalnet2 dans laquelle nous mettons tous
   les parametres de configuration que nous passerions `a la commande
   route(8). Pour nous exemple precedent nous aurions utilise la commande:

 # route add -net 192.168.2.0/24 192.168.1.2

   nous avons donc besoin de "-net 192.168.2.0/24 192.168.1.2".

   Comme cela a ete precise, nous pouvons avoir plus d'une chaine dans la
   variable static_routes. Cela nous permet de creer plusieurs routes
   statiques. Les lignes suivantes donnent un exemple d'ajout de routes
   statiques pour les reseaux 192.168.0.0/24 et 192.168.1.0/24 sur un routeur
   imaginaire:

 static_routes="net1 net2"
 route_net1="-net 192.168.0.0/24 192.168.0.1"
 route_net2="-net 192.168.1.0/24 192.168.1.1"

  32.2.6. Propagation de route

   Nous avons dej`a explique comment definir nos routes vers le monde
   exterieur, mais pas comment le monde exterieur apprend `a nous localiser.

   Nous savons dej`a que les tables de routages peuvent etre renseignees pour
   que tout le trafic pour un espace d'adresses donne (dans nos exemples, un
   sous-reseau de classe C) soit envoye `a une machine precise de ce reseau,
   qui transmettra les paquets entrants.

   Lorsqu'il attribue un espace d'adresses `a votre site, votre fournisseur
   d'acces definira ses tables de routage de sorte que tout le trafic destine
   `a votre sous-reseau vous soit envoye sur votre liaison PPP. Mais comment
   les sites `a l'autre bout du pays savent-ils qu'ils doivent passer par
   votre fournisseur d'acces?

   Il existe un mecanisme (assez semblable au systeme d'information distribue
   du DNS) qui conserve un enregistrement de tous les espaces d'adresses
   affectes, et definit leur point de connexion `a la dorsale Internet
   ("backbone"). La "dorsale" comprend les liaisons principales qui
   vehiculent le trafic Internet `a travers le pays et le monde entier.
   Chaque machine de la dorsale dispose d'une copie de l'ensemble des tables
   maitresses qui aiguillent le trafic pour un reseau donne vers le
   transporteur correspondant de la dorsale, et de l`a par l'intermediaire de
   fournisseurs d'acces successifs, jusqu'`a atteindre votre reseau.

   C'est le role de votre fournisseur d'acces d'annoncer aux sites de la
   dorsale qu'il est le point de connexion (et par consequent la route
   entrante) pour votre site. C'est ce que l'on appelle la propagation de
   route.

  32.2.7. En cas de probleme

   Il se peut qu'il y ait parfois un probleme avec la propagation de route et
   que certains sites ne puissent vous atteindre. La commande probablement la
   plus utile pour determiner ou une route est defaillante est la commande
   traceroute(8). Elle est egalement utile si vous n'arrivez pas `a vous
   connecter `a une machine distante (i.e. lorsque ping(8) echoue).

   La commande traceroute(8) prend comme parametre le nom de la machine
   distante avec laquelle vous essayez d'etablir une connexion. Elle vous
   donnera la liste de passerelles intermediaires jusqu'`a la machine cible,
   ou jusqu'`a ce qu'il n'y ait plus de connexion.

   Pour plus d'informations, consultez la page de manuel de traceroute(8).

  32.2.8. Routage multicast

   FreeBSD supporte nativement les applications et le routage multicast
   (diffusion pour plusieurs destinataires). Les applications multicast ne
   necessitent pas de configuration specifique de FreeBSD, generalement,
   elles fonctionneront directement. Le routage multicast demande `a ce que
   le support soit compile dans le noyau:

 options MROUTING

   De plus, le "daemon" de routage multicast, mrouted(8) doit etre configure
   par l'intermediaire du fichier /etc/mrouted.conf pour mettre en place des
   tunnels et le protocole DVMRP. Plus de details sur la configuration du
   routage multicast peuvent etre trouves dans la page de manuel de
   mrouted(8).

32.3. Reseau sans fil

   Ecrit par Eric Anderson.

  32.3.1. Introduction

   Il peut etre tres utile de pouvoir utiliser un micro-ordinateur sans le
   desagrement d'etre constamment relie `a un cable reseau. FreeBSD peut etre
   utilise comme client sans fil, et meme comme "point d'acces" sans fil.

  32.3.2. Modes de fonctionnement des systemes sans fils

   Il existe deux manieres differentes de configurer les peripheriques sans
   fil 802.11: les modes BSS et IBSS.

    32.3.2.1. Mode BSS

   Le mode BSS est le mode generalement utilise. Le mode BSS est egalement
   appele mode infrastructure. Dans ce mode, plusieurs points d'acces sans
   fils sont connectes `a un reseau cable. Chaque reseau sans fil possede son
   propre nom. Ce nom est ce que l'on appelle le "SSID" du reseau.

   Les clients sans fils se connectent `a ces points d'acces sans fils. La
   norme IEEE 802.11 definie le protocole que les reseaux sans fils utilisent
   pour les connexions. Un client sans fil peut etre attache `a un reseau
   particulier quand un SSID est fixe. Un client peut s'attacher `a n'importe
   quel reseau en ne definissant pas explicitement de SSID.

    32.3.2.2. Mode IBSS

   Le mode IBSS, egalement appele mode "ad-hoc", est conc,u pour les
   connexions point `a point. Il existe en fait deux types de mode ad-hoc. Le
   premier est le mode IBSS, egalement appele mode ad-hoc ou IEEE ad-hoc. Ce
   mode est defini par les normes IEEE 802.11. Le deuxieme mode est appele
   ad-hoc demo ou encore mode ad-hoc Lucent (et parfois, ce qui prete `a
   confusion, mode ad-hoc). C'est l'ancien mode ad-hoc pre-standard 802.11 et
   ne devrait etre utilise qu'avec d'anciennes installations. Nous ne
   parlerons pas des modes ad-hoc dans ce qui suit.

  32.3.3. Mode infrastructure

    32.3.3.1. Points d'acces

   Un point d'acces est un peripherique sans fil qui permet `a un ou
   plusieurs clients sans fils d'utiliser ce peripherique comme un hub. Quand
   ils utilisent un point d'acces, tous les clients communiquent par
   l'intermediaire de ce point d'acces. Plusieurs points d'acces sont souvent
   utilises pour couvrir l'integralite d'une zone geographique comme une
   maison, une entreprise, ou un parc avec un reseau sans fil.

   Les points d'acces ont generalement plusieurs connexions reseaux: la carte
   reseaux sans fil, et une ou plusieurs cartes reseaux Ethernet pour les
   connexions avec le reste du reseau.

   Les points d'acces peuvent etre achetes tout fait, ou vous pouvez
   construire le votre avec FreeBSD et une carte reseau sans fil supportee.
   De nombreux constructeurs proposent des points d'acces et des cartes
   reseaux sans fils avec diverses fonctionnalites.

    32.3.3.2. Construire un point d'acces avec FreeBSD

      32.3.3.2.1. Pre-requis

   En vue de mettre en place un point d'acces sans fil sous FreeBSD, vous
   avez besoin d'une carte reseau sans fil compatible. Actuellement seule les
   cartes basees sur le circuit Prism sont supportees. Vous aurez egalement
   besoin d'une carte reseau cablee supportee par FreeBSD (cela ne devrait
   pas etre difficile `a trouver, FreeBSD supporte de nombreuses cartes).
   Dans le cadre de cette section, nous supposerons que le trafic passera par
   un pont entre la carte sans fil et le reseau relie `a la carte reseau
   classique.

   Le mode point d'acces implemente par FreeBSD fonctionne mieux avec
   certaines versions de firmware. Les cartes utilisant un circuit Prism 2
   devraient utiliser un firmware 1.3.4 ou plus recent. Les cartes Prism 2.5
   et Prism 3 devraient utiliser la version 1.4.9. Des versions de firmware
   plus anciennes pourront ne pas fonctionner correctement. Actuellement, la
   seule maniere de mettre `a jour vos cartes est d'utiliser les outils de
   mise `a jour du firmware pour Windows(R) disponibles aupres du
   constructeur de votre carte.

      32.3.3.2.2. Configuration

   Assurez-vous tout d'abord que votre systeme voit la carte reseau sans fil:

 # ifconfig -a
 wi0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
         inet6 fe80::202:2dff:fe2d:c938%wi0 prefixlen 64 scopeid 0x7
         inet 0.0.0.0 netmask 0xff000000 broadcast 255.255.255.255
         ether 00:09:2d:2d:c9:50
         media: IEEE 802.11 Wireless Ethernet autoselect (DS/2Mbps)
         status: no carrier
         ssid ""
         stationname "FreeBSD Wireless node"
         channel 10 authmode OPEN powersavemode OFF powersavesleep 100
         wepmode OFF weptxkey 1

   Ne vous preoccupez pas des details, verifiez juste que s'affiche quelque
   chose qui vous indique qu'une carte reseau sans fil est installee. Si vous
   avez des problemes `a voir l'interface reseau sans fil correspondante, et
   que vous utilisez une carte de type PC Card, vous devriez consultez les
   pages de manuel pccardc(8) et pccardd(8) pour plus d'information.

   Ensuite, vous devrez charger un module afin de mettre en place la partie
   de FreeBSD faisant office de pont pour le point d'acces. Pour charger le
   module bridge(4), executez la commande suivante:

 # kldload bridge

   Vous ne devriez pas voir apparaitre de message d'erreur lors du chargement
   du module. Si ce n'est pas le cas, vous devrez peut-etre compiler le
   support bridge(4) dans votre noyau. La section sur le Bridging de ce
   manuel devrait pouvoir vous aider dans cette tache.

   Maintenant que cette partie est assuree, nous devons dire `a FreeBSD entre
   quelles interface le pont doit etre installe. Nous effectuons cette
   configuration en utilisant sysctl(8):

 # sysctl net.link.ether.bridge.enable=1
 # sysctl net.link.ether.bridge.config="wi0 xl0"
 # sysctl net.inet.ip.forwarding=1

   Sous les versions anterieures `a la 5.2, vous devez utiliser `a la place
   les options suivantes:

 # sysctl net.link.ether.bridge=1
 # sysctl net.link.ether.bridge_cfg="wi0,xl0"
 # sysctl net.inet.ip.forwarding=1

   Il est maintenant possible de configurer la carte. La commande suivante
   positionnera la carte en mode point d'acces:

 # ifconfig wi0 ssid my_net channel 11 media DS/11Mbps mediaopt hostap up stationname "FreeBSD AP"

   La ligne ifconfig(8) active l'interface wi0, fixe son parametre SSID `a la
   valeur my_net, et fixe le nom de station `a FreeBSD AP. L'option media
   DS/11Mbps positionne la carte dans le mode 11Mbps et est necessaire pour
   que le parametre mediaopt soit pris en compte. L'option mediaopt hostap
   place l'interface dans le mode point d'acces. L'option channel 11 fixe le
   canal 802.11b `a employer. La page de manuel wicontrol(8) donne les
   options de canaux valides en fonction de votre zone geographique.

   Vous devez maintenant disposer d'un point d'acces operationnel et en
   fonctionnement. Vous etes encourages `a lire les pages de manuel
   wicontrol(8), ifconfig(8), et wi(4) pour plus d'amples informations.

   Il est egalement conseille de lire la section qui suit sur le chiffrage.

      32.3.3.2.3. Information d'etat

   Une fois que le point d'acces est configure et operationnel, les
   operateurs voudront voir quels clients sont associes avec le point
   d'acces. A n'importe quel instant, l'operateur pourra taper:

 # wicontrol -l
 1 station:
 00:09:b7:7b:9d:16  asid=04c0, flags=3<ASSOC,AUTH>, caps=1<ESS>, rates=f<1M,2M,5.5M,11M>, sig=38/15

   Ceci nous montre qu'une station est associee, ainsi que son parametrage.
   Les informations indiquees concernant le signal devraient etre utilisees
   uniquement comme une indication relative sur sa puissance. Sa conversion
   en dBm ou tout autre unite varie en fonction des differentes versions de
   firmware.

    32.3.3.3. Clients

   Un client sans fil est un systeme qui se connecte `a un point d'acces ou
   un autre client directement.

   Typiquement, les clients sans fils disposent d'une seule interface reseau,
   la carte reseau sans fil.

   Il existe quelques manieres differentes de configurer un client sans fil.
   Elles sont basees sur les differents modes sans fils, generalement les
   modes BSS (mode infrastructure, qui necessite un point d'acces), et IBSS
   (mode ad-hoc, ou mode point `a point). Dans notre exemple, nous
   utiliserons le plus populaire des deux, le mode BSS, pour discuter avec un
   point d'acces.

      32.3.3.3.1. Pre-requis

   Il n'y a qu'un seul pre-requis pour configurer FreeBSD comme client sans
   fil. Vous aurez besoin d'une carte sans fil supportee par FreeBSD.

      32.3.3.3.2. Configurer un client sans fil FreeBSD

   Avant de commencer, vous aurez besoin de connaitre certaines choses
   concernant le reseau sans fil auquel vous desirez vous connecter. Dans cet
   exemple, nous rejoignons un reseau ayant pour nom my_net, et avec le
   chiffrage des liaisons desactive.

  Note:

   Dans cet exemple, nous n'utilisons pas le chiffrage des liaisons, ce qui
   est une situation dangereuse. Dans la section suivante, nous verrons
   comment activer le chiffrage, pourquoi il est important de le faire, et
   pourquoi certaines technologies de chiffrage ne vous protegerons pas
   completement.

   Assurez-vous que votre carte est reconnue par FreeBSD:

 # ifconfig -a
 wi0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
         inet6 fe80::202:2dff:fe2d:c938%wi0 prefixlen 64 scopeid 0x7
         inet 0.0.0.0 netmask 0xff000000 broadcast 255.255.255.255
         ether 00:09:2d:2d:c9:50
         media: IEEE 802.11 Wireless Ethernet autoselect (DS/2Mbps)
         status: no carrier
         ssid ""
         stationname "FreeBSD Wireless node"
         channel 10 authmode OPEN powersavemode OFF powersavesleep 100
         wepmode OFF weptxkey 1

   Maintenant, nous pouvons configurer la carte suivant les parametres de
   notre reseau:

 # ifconfig wi0 inet 192.168.0.20 netmask 255.255.255.0 ssid my_net

   Remplacez 192.168.0.20 et 255.255.255.0 avec une adresse IP ainsi qu'un
   masque de sous-reseau valides de votre reseau cable. Rappelez-vous, notre
   point d'acces joue le role de pont entre le reseau sans fil et le reseau
   cable, il apparaitra aux autres cartes sur votre reseau que vous etes sur
   le meme reseau cable.

   Une fois cela effectue, vous devriez etre en mesure d'utiliser ping(8)
   pour atteindre les machines sur le reseau cable de la meme fac,on que si
   vous etiez connecte en utilisant un cable reseau standard.

   Si vous rencontrez des problemes avec votre connexion sans fil, verifiez
   que vous etes associe-"associated" (connecte) avec le point d'acces:

 # ifconfig wi0

   devrait retourner un certain nombre d'information; et vous devriez voir
   s'afficher:

 status: associated

   Si associated n'est pas affiche, alors il se peut que vous soyez hors de
   portee du point d'acces, que vous ayez le chiffrage active, ou peut-etre
   que vous ayez un probleme de configuration.

    32.3.3.4. Chiffrement

   L'utilisation du chiffrement sur un reseau sans fil est important parce
   que vous n'avez plus la possibilite de conserver le reseau dans une zone
   protegee. Vos donnees sans fil seront diffusees dans tout le voisinage, et
   toute personne desirant y acceder pourra le faire. C'est ici que le
   chiffrement entre en jeu. En chiffrant les donnees qui sont envoyees par
   les ondes, vous rendez plus difficile l'interception de celles-ci par
   quiconque d'interesse.

   Les deux methodes les plus courantes de chiffrage des donnees entre un
   client et un point d'acces sont le protocol WEP et ipsec(4).

      32.3.3.4.1. WEP

   WEP est l'abbrevation de "Wired Equivalency Protocol". Le protocole de
   chiffrage WEP est une tentative de rendre les reseaux sans fils aussi surs
   et securises qu'un reseau filaire. Malheureusement, il a ete craque, et
   est relativement simple `a dejouer. Cela signifie que l'on ne doit pas lui
   faire confiance quand il est necessaire de chiffrer des donnees sensibles.

   Cela reste mieux que rien du tout, utilisez ce qui suit pour activer WEP
   sur votre nouveau point d'acces FreeBSD:

 # ifconfig wi0 inet up ssid my_net wepmode on wepkey 0x1234567890 media DS/11Mbps mediaopt hostap

   Et vous pouvez activer WEP sur un client avec la commande:

 # ifconfig wi0 inet 192.168.0.20 netmask 255.255.255.0 ssid my_net wepmode on wepkey 0x1234567890

   Notez que vous devriez remplacer 0x1234567890 par une cle plus
   personnelle.

      32.3.3.4.2. IPsec

   ipsec(4) est un outil bien plus puissant et robuste pour chiffrer des
   donnees sur un reseau. C'est la methode `a preferer pour chiffrer les
   donnees sur un reseau sans fil. Vous pouvez obtenir plus de details
   concernant ipsec(4) et comment l'implementer dans la section IPsec de ce
   manuel.

    32.3.3.5. Outils

   Il existe un petit nombre d'outils disponibles pour le debogage et la
   configuration d'un reseau sans fil, et nous tenterons ici d'en decrire
   certains ainsi que leurs fonctionnalites.

      32.3.3.5.1. La suite bsd-airtools

   La suite bsd-airtools est une trousse `a outils complete qui comprend des
   outils d'audit sans fil pour le craquage du systeme WEP, la detection de
   points d'acces, etc.

   Les utilitaires bsd-airtools peuvent etre installes `a partir du logiciel
   porte net-mgmt/bsd-airtools. Des instructions sur l'installation des
   logiciels portes peuvent etre trouvees dans le Chapitre 4, Installer des
   applications: les logiciels pre-compiles et les logiciels portes de ce
   manuel.

   Le programme dstumbler est l'outil qui permet la recherche de points
   d'acces et la mesure du rapport signal sur bruit. Si vous avez des
   difficultes `a mettre en place et `a faire fonctionner votre point
   d'acces, dstumbler pourra vous aider dans ce sens.

   Pour tester la securite de votre reseau sans fil, vous pouvez choisir
   d'employer les outils "dweputils" (dwepcrack, dwepdump et dwepkeygen) pour
   vous aider `a determiner si WEP repond `a vos besoins en matiere de
   securite au niveau de votre reseau sans fil.

      32.3.3.5.2. Les utilitaires wicontrol, ancontrol et raycontrol

   Il existe des outils que vous pouvez utiliser pour controler le
   comportement de votre carte reseau sans fil sur le reseau sans fil. Dans
   les exemples precedents, nous avons choisi d'employer wicontrol(8) puisque
   notre carte sans fil utilise l'interface wi0. Si vous avez une carte sans
   fil Cisco, elle apparaitrait comme an0, et vous utiliseriez alors le
   programme ancontrol(8).

      32.3.3.5.3. La commande ifconfig

   La commande ifconfig(8) propose plusieurs options identiques `a celles de
   wicontrol(8), cependant il manque quelques options. Consultez la page de
   manuel d'ifconfig(8) pour les differents parametres et options en ligne de
   commande.

    32.3.3.6. Cartes supportees

      32.3.3.6.1. Points d'acces

   Les seules cartes actuellement supportees pour le mode BSS (points
   d'acces) sont celles basees sur les circuits Prism 2, 2.5, ou 3. Pour une
   liste complete, consultez la page de manuel de wi(4).

      32.3.3.6.2. Clients 802.11b

   Presque toutes les cartes reseaux sans fil 802.11b sont supportees sous
   FreeBSD. La plupart des cartes basees sur les circuits Prism, Spectrum24,
   Hermes, Aironet, et Raylink fonctionneront dans le mode IBSS (ad-hoc,
   point `a point, et BSS).

      32.3.3.6.3. Clients 802.11a & 802.11g

   Le pilote de peripherique ath(4) supporte les normes 802.11a et 802.11g.
   Si votre carte est basee sur un circuit Atheros, vous devriez etre en
   mesure d'utiliser ce pilote.

   Malheureusement il y a toujours de nombreux fabricants qui ne fournissent
   pas `a la communaute des logiciels libres les informations concernant les
   pilotes pour leurs cartes considerant de telles informations comme des
   secrets industriels. Par consequent, il ne reste aux developpeurs de
   FreeBSD et d'autres systemes d'exploitation libres que deux choix:
   developper les pilotes en passant par un long et penible processus de
   << reverse engineering >> ou utiliser les pilotes binaires existants
   disponibles pour la plateforme Microsoft(R) Windows(R). La plupart des
   developpeurs, y compris ceux impliques dans FreeBSD, ont choisi cette
   derniere approche.

   Grace aux contributions de Bill Paul (wpaul), depuis FreeBSD 5.3-RELEASE,
   il existe un support << natif >> pour la specification d'interface des
   pilotes de peripherique reseau (Network Driver Interface
   Specification-NDIS). Le NDISulator FreeBSD (connu egalement sous le nom de
   Project Evil) prend un pilote binaire reseau Windows(R) et lui fait penser
   qu'il est en train de tourner sous Windows(R). Cette fonctionnalite est
   relativement nouvelle, mais semble fonctionner correctement dans la
   plupart des tests.

   Pour utiliser le NDISulator, vous avez besoin de trois choses:

    1. les sources du noyau;

    2. le pilote binaire Windows(R) XP (extension .SYS);

    3. le fichier de configuration du pilote Windows(R) XP (extension .INF).

   Vous aurez besoin de compiler le module d'interface du mini-pilote
   ndis(4). En tant que root:

 # cd /usr/src/sys/modules/ndis
 # make && make install

   Recherchez les fichiers specifiques `a votre carte. Generalement, ils
   peuvent etre trouves sur les CDs livres avec la carte ou sur le site du
   fabricant. Dans les exemples qui suivent nous utiliseront les fichiers
   W32DRIVER.SYS et W32DRIVER.INF.

   L'etape suivante est de compiler le pilote binaire dans un module
   chargeable du noyau. Pour effectuer cela, en tant que root, rendez vous
   dans le repertoire du module if_ndis et copiez-y les fichiers du pilote
   Windows(R):

 # cd /usr/src/sys/modules/if_ndis
 # cp /path/to/driver/W32DRIVER.SYS ./
 # cp /path/to/driver/W32DRIVER.INF ./

   Nous utiliserons maintenant l'utilitaire ndiscvt pour generer le fichier
   d'entete ndis_driver_data.h du pilote pour la compilation du module:

 # ndiscvt -i W32DRIVER.INF -s W32DRIVER.SYS -o ndis_driver_data.h

   Les options -i et -s precisent respectivement le fichier de configuration
   et le fichier binaire. Nous utilisons l'option -o ndis_driver_data.h car
   le Makefile recherchera ce fichier lors de la compilation du module.

  Note:

   Certains pilotes Windows(R) necessitent des fichiers supplementaires pour
   fonctionner. Vous pouvez les ajouter avec ndiscvt en utilisant l'option
   -f. Consultez la page de manuel ndiscvt(8) pour plus d'information.

   Nous pouvons enfin compiler et installer le module du pilote:

 # make && make install

   Pour utiliser le pilote, vous devez charger les modules appropries:

 # kldload ndis
 # kldload if_ndis

   La premiere commande charge le pilote d'interface NDIS, la seconde charge
   l'interface reseau. Controlez la sortie de dmesg(8) `a la recherche d'une
   quelconque erreur au chargement. Si tout s'est bien passe, vous devriez
   obtenir une sortie ressemblant `a ce qui suit:

 ndis0: <Wireless-G PCI Adapter> mem 0xf4100000-0xf4101fff irq 3 at device 8.0 on pci1
       ndis0: NDIS API version: 5.0
       ndis0: Ethernet address: 0a:b1:2c:d3:4e:f5
       ndis0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
       ndis0: 11g rates: 6Mbps 9Mbps 12Mbps 18Mbps 36Mbps 48Mbps 54Mbps

   A partir de l`a, vous pouvez traiter le peripherique ndis0 comme n'importe
   quel peripherique sans fil (e.g. wi0) et consulter les premieres sections
   de ce chapitre.

32.4. Bluetooth

   Ecrit par Pav Lucistnik.

  32.4.1. Introduction

   Bluetooth(R) est une technologie sans fil pour creer des reseaux
   personnels sans fils fonctionnant dans la bande 2.4 GHz ne necessitant pas
   d'autorisation, avec une portee de 10 metres. Les reseaux etant
   generalement composes de peripheriques nomades comme les telephones
   portables, les assistants personnels et les ordinateurs portables.
   Contrairement `a l'autre technologie sans fil, Wi-Fi, Bluetooth(R) offre
   un niveau plus eleve de profils de service, par exemple des serveurs de
   fichiers semblables `a FTP, "file pushing", transport de la voix,
   emulation de lignes series, et bien plus.

   La pile Bluetooth(R) sous FreeBSD utilise le systeme Netgraph (voir
   netgraph(4)). Une large gamme d'adaptateurs USB Bluetooth(R) sont
   supportes par le pilote ng_ubt(4). Les peripheriques Bluetooth(R) bases
   sur le circuit Broadcom BCM2033 sont supportes par les pilotes ubtbcmfw(4)
   et ng_ubt(4). La carte 3Com Bluetooth(R) PC Card 3CRWB60-A demande le
   pilote ng_bt3c(4). Les peripheriques Bluetooth(R) de type serie et UART
   sont supportes via les pilotes sio(4), ng_h4(4) et hcseriald(8). Cette
   section decrit l'utilisation d'un adaptateur USB Bluetooth(R). Le support
   Bluetooth(R) est disponible sur les systemes 5.0 et suivants.

  32.4.2. Branchement du peripherique

   Par defaut les pilotes de peripheriques Bluetooth(R) sont disponibles sous
   la forme de modules du noyau. Avant de brancher le peripherique, vous
   devrez charger le pilote dans le noyau:

 # kldload ng_ubt

   Si le peripherique Bluetooth(R) est present au demarrage du systeme,
   chargez le module `a partir de /boot/loader.conf:

 ng_ubt_load="YES"

   Branchez votre cle USB. Une sortie semblable `a celle-ci devrait
   s'afficher sur la console (ou dans les journaux du systeme):

 ubt0: vendor 0x0a12 product 0x0001, rev 1.10/5.25, addr 2
 ubt0: Interface 0 endpoints: interrupt=0x81, bulk-in=0x82, bulk-out=0x2
 ubt0: Interface 1 (alt.config 5) endpoints: isoc-in=0x83, isoc-out=0x3,
       wMaxPacketSize=49, nframes=6, buffer size=294

  Note:

   La pile Bluetooth doit etre lancee manuellement sous FreeBSD 6.0, et sous
   les versions 5.0 anterieures `a la 5.5. Ce lancement est automatique `a
   partir de devd(8) sous FreeBSD 5.5, 6.1 et versions suivantes.

   Copiez /usr/share/examples/netgraph/bluetooth/rc.bluetooth `a un
   emplacement adapte, comme /etc/rc.bluetooth. Cette procedure est utilisee
   pour demarrer et arreter la pile Bluetooth(R). C'est une bonne idee
   d'arreter la pile avant de debrancher le peripherique, mais ce n'est pas
   (generalement) fatal. Quand la pile demarre, vous devriez avoir des
   messages similaires aux suivants:

 # /etc/rc.bluetooth start ubt0
 BD_ADDR: 00:02:72:00:d4:1a
 Features: 0xff 0xff 0xf 00 00 00 00 00
 <3-Slot> <5-Slot> <Encryption> <Slot offset>
 <Timing accuracy> <Switch> <Hold mode> <Sniff mode>
 <Park mode> <RSSI> <Channel quality> <SCO link>
 <HV2 packets> <HV3 packets> <u-law log> <A-law log> <CVSD>
 <Paging scheme> <Power control> <Transparent SCO data>
 Max. ACL packet size: 192 bytes
 Number of ACL packets: 8
 Max. SCO packet size: 64 bytes
 Number of SCO packets: 8

  32.4.3. Interface de controle de l'hote (HCI)

   L'interface de controle de l'hote (HCI) fournit une interface de commande
   pour le controleur de la bande de base et le gestionnaire de liaisons, et
   l'acces `a l'etat du materiel et aux registres de controle. Cette
   interface offre une methode uniforme d'acces aux fonctions de la bande de
   base Bluetooth(R). La couche HCI de l'hote echange des donnees et des
   commandes avec le firmware HCI du materiel Bluetooth(R). Le pilote de la
   couche de transport du controleur d'hote (i.e. le bus physique) fournit
   aux deux couches HCI la possibilite d'echanger des informations entre
   elles.

   Un seul noeud Netgraph de type hci est cree pour un peripherique
   Bluetooth(R). Le noeud HCI est normalement connecte au noeud du pilote
   Bluetooth(R) (flux descendant) et au noeud L2CAP (flux montant). Toutes
   les operations HCI doivent etre effectuees sur le noeud HCI et non pas sur
   le noeud du pilote de peripherique. Le nom par defaut pour le noeud HCI
   est "devicehci". Pour plus de details consultez la page de manuel
   ng_hci(4).

   Une des taches les plus courantes est la recherche de peripheriques
   Bluetooth(R) dans le voisinage hertzien. Cette operation est appelee
   inquiry (enquete, recherche). Cette recherche et les autres operations
   relatives `a HCI sont effectuees par l'utilitaire hccontrol(8). L'exemple
   ci-dessous montre comment determiner quels peripheriques Bluetooth(R) sont
   dans le voisinage. Vous devriez obtenir une listes de peripheriques au
   bout de quelques secondes. Notez qu'un peripherique distant ne repondra `a
   la recherche que s'il est place dans le mode discoverable.

 % hccontrol -n ubt0hci inquiry
 Inquiry result, num_responses=1
 Inquiry result #0
        BD_ADDR: 00:80:37:29:19:a4
        Page Scan Rep. Mode: 0x1
        Page Scan Period Mode: 00
        Page Scan Mode: 00
        Class: 52:02:04
        Clock offset: 0x78ef
 Inquiry complete. Status: No error [00]

   BD_ADDR est l'adresse unique d'un peripherique Bluetooth(R), similaire `a
   l'adresse MAC d'une carte reseau. Cette adresse est necessaire pour
   communiquer avec un peripherique. Il est possible d'assigner un nom
   humainement comprehensible `a l'adresse BD_ADDR. Le fichier
   /etc/bluetooth/hosts contient des informations concernant les hotes
   Bluetooth(R) connus. L'exemple suivant montre comment obtenir le nom qui a
   ete assigne au peripherique distant:

 % hccontrol -n ubt0hci remote_name_request 00:80:37:29:19:a4
 BD_ADDR: 00:80:37:29:19:a4
 Name: Pav's T39

   Si vous effectuez une recherche sur un peripherique Bluetooth(R) distant,
   vous devriez trouver votre ordinateur en tant que "votre.machine.nom
   (ubt0)". Le nom affecte au peripherique local peut etre modifie `a tout
   moment.

   Le systeme Bluetooth(R) fournit une connexion point `a point (seules deux
   materiels Bluetooth(R) sont concernes), ou une connexion point `a
   multipoints. Dans le cas d'une connexion point `a multipoints, la
   connexion est partages entre plusieurs peripheriques Bluetooth(R).
   L'exemple suivant montre comment obtenir la liste des connexions en bande
   de base actives pour le peripherique local:

 % hccontrol -n ubt0hci read_connection_list
 Remote BD_ADDR    Handle Type Mode Role Encrypt Pending Queue State
 00:80:37:29:19:a4     41  ACL    0 MAST    NONE       0     0 OPEN

   Une manipulation de la connexion est utile quand la fin d'une connexion en
   bande de base est necessaire. Notez qu'il n'est normalement pas necessaire
   de le faire `a la main. La pile mettra fin automatiquement aux connexions
   en bande de base inactives.

 # hccontrol -n ubt0hci disconnect 41
 Connection handle: 41
 Reason: Connection terminated by local host [0x16]

   Referez-vous `a la commande hccontrol help pour une liste complete des
   commandes HCI disponibles. La plupart des commandes HCI ne necessitent pas
   les privileges du super-utilisateur.

  32.4.4. Protocole d'adaptation et de controle de lien logique (L2CAP)

   Le protocole d'adaptation et de controle de lien logique (L2CAP) fournit
   des services orientes connexion ou non aux protocoles de niveaux
   superieurs, et cela avec des possibilites de multiplexage de protocoles,
   de segmentation et de reassemblage. L2CAP permet aux applications et aux
   protocoles de niveaux superieurs de transmettre et recevoir des paquets
   L2CAP d'une taille allant jusqu'`a 64 Ko.

   L2CAP est base sur le concept de canaux. Un canal est une connexion
   logique au sommet de la connexion en bande de base. Chaque canal est
   attache `a un protocole suivant le schema plusieurs-vers-un. Plusieurs
   canaux peuvent etre attaches au meme protocole, mais un canal ne peut etre
   attaches `a plusieurs protocoles. Chaque paquet L2CAP rec,u sur un canal
   est dirige vers le protocole de niveau superieur approprie. Plusieurs
   canaux peuvent partager la meme connexion en bande de base.

   Un seul noeud Netgraph de type l2cap est cree pour un peripherique
   Bluetooth(R). Le noeud L2CAP est normalement connecte au noeud HCI
   Bluetooth(R) (flux descendant) et aux noeuds des "sockets" Bluetooth(R)
   (flux montant). Le nom par defaut pour le noeud L2CAP est "device2cap".
   Pour plus de details consultez la page de manuel ng_l2cap(4).

   Une commande utile est l2ping(8), qui peut etre utilisee pour "pinguer"
   les autres peripheriques. Certaines implementations de Bluetooth(R)
   peuvent ne pas renvoyer toutes les donnees qui leur sont envoyees, aussi 0
   bytes dans ce qui suit est normal.

 # l2ping -a 00:80:37:29:19:a4
 0 bytes from 0:80:37:29:19:a4 seq_no=0 time=48.633 ms result=0
 0 bytes from 0:80:37:29:19:a4 seq_no=1 time=37.551 ms result=0
 0 bytes from 0:80:37:29:19:a4 seq_no=2 time=28.324 ms result=0
 0 bytes from 0:80:37:29:19:a4 seq_no=3 time=46.150 ms result=0

   L'utilitaire l2control(8) est employe pour effectuer diverses operations
   sur les noeuds L2CAP. Cet exemple montre comment obtenir la liste des
   connexions logiques (canaux) et la liste des connexions en bande de base
   pour le peripherique local:

 % l2control -a 00:02:72:00:d4:1a read_channel_list
 L2CAP channels:
 Remote BD_ADDR     SCID/ DCID   PSM  IMTU/ OMTU State
 00:07:e0:00:0b:ca    66/   64     3   132/  672 OPEN
 % l2control -a 00:02:72:00:d4:1a read_connection_list
 L2CAP connections:
 Remote BD_ADDR    Handle Flags Pending State
 00:07:e0:00:0b:ca     41 O           0 OPEN

   Un autre outil de diagnostic est btsockstat(1). Il effectue un travail
   similaire `a celui de netstat(1), mais relatif aux structures de donnees
   reseau Bluetooth(R). L'exemple ci-dessous montre la meme connexion logique
   que l2control(8) ci-dessus.

 % btsockstat
 Active L2CAP sockets
 PCB      Recv-Q Send-Q Local address/PSM       Foreign address   CID   State
 c2afe900      0      0 00:02:72:00:d4:1a/3     00:07:e0:00:0b:ca 66    OPEN
 Active RFCOMM sessions
 L2PCB    PCB      Flag MTU   Out-Q DLCs State
 c2afe900 c2b53380 1    127   0     Yes  OPEN
 Active RFCOMM sockets
 PCB      Recv-Q Send-Q Local address     Foreign address   Chan DLCI State
 c2e8bc80      0    250 00:02:72:00:d4:1a 00:07:e0:00:0b:ca 3    6    OPEN

  32.4.5. Protocole RFCOMM

   Le protocole RFCOMM permet l'emulation du port serie au-dessus du
   protocole L2CAP. Le protocole est base sur la norme ETSI TS 07.10. RFCOMM
   est un protocole de transport simple, avec les dispositions
   supplementaires pour emuler les 9 circuits (signaux) d'un port serie RS232
   (EIATIA-232-E). Le protocole RFCOMM supporte jusqu'`a 60 connexions
   simultanees (canaux RFCOMM) entre deux peripheriques Bluetooth(R).

   Dans le cas de RFCOMM, l'etablissement d'une communication implique deux
   applications tournant sur des peripheriques differents (les extremites de
   la communication) avec un segment de communication entre eux. RFCOMM est
   prevu pour couvrir les applications faisant usage des ports series des
   peripheriques sur lesquels elles resident. Le segment de communication est
   une liaison Bluetooth(R) d'un peripherique vers un autre (connexion
   directe).

   RFCOMM est seulement concerne par la connexion entre peripheriques dans le
   cas d'un raccordement direct, ou entre le peripherique et un modem dans le
   cas d'un reseau. RFCOMM peut supporter d'autres configurations, comme les
   modules qui communiquent par l'intermediaire de la technologie sans fil
   Bluetooth(R) d'un cote et utilise une interface cablee de l'autre cote.

   Sous FreeBSD, le protocole RFCOMM est implemente au niveau de la couche
   des "sockets" Bluetooth(R).

  32.4.6. Couplage des peripheriques

   Par defaut, une communication Bluetooth(R) n'est pas authentifiee, et
   n'importe quel peripherique peut parler avec n'importe quel autre
   peripherique. Un peripherique Bluetooth(R) (par exemple un telephone
   portable) peut choisir de demander une authentification pour fournir un
   service particulier (par exemple un service de connexion telephonique).
   L'authentification Bluetooth(R) est generalement effectuee avec des codes
   PIN. Un code PIN est une chaine ASCII d'une longueur de 16 caracteres.
   L'utilisateur doit entrer le meme code PIN sur les deux peripheriques. Une
   fois que l'utilisateur a entre le code PIN, les deux peripheriques
   generent une cle de liaison (link key). Ensuite la cle peut etre
   enregistree soit dans les peripheriques eux-memes ou sur un moyen de
   stockage non-volatile. La fois suivante les deux peripheriques utiliseront
   la cle precedemment generee. La procedure decrite est appelee couplage. Si
   la cle de liaison est perdue par un des peripheriques alors l'operation de
   couplage doit etre repetee.

   Le "daemon" hcsecd(8) est responsable de la gestion de toutes les requetes
   d'authentification Bluetooth(R). Le fichier de configuration par defaut
   est /etc/bluetooth/hcsecd.conf. Un exemple de section pour un telephone
   portable avec un code PIN arbitraire de "1234" est donne ci-dessous:

 device {
         bdaddr  00:80:37:29:19:a4;
         name    "Pav's T39";
         key     nokey;
         pin     "1234";
       }

   Il n'y pas de limitation sur les codes PIN (en dehors de la longueur).
   Certains peripheriques (comme les casques-micro Bluetooth(R)) peuvent
   avoir un code PIN definitivement fixe. Le parametre -d force le "daemon"
   hcsecd(8) `a rester en tache de fond, il est donc aise de voir ce qu'il se
   passe. Configurez le peripherique distant pour recevoir le couplage et
   initier la connexion Bluetooth(R) vers le peripherique distant. Le
   peripherique distant devrait annoncer que le couplage a ete accepte, et
   demander le code PIN. Entrez le meme code PIN que celui que vous avez dans
   le fichier hcsecd.conf. Maintenant votre PC et le peripherique distant
   sont couples. Alternativement, vous pouvez initier le couplage sur le
   peripherique distant.

   Sous FreeBSD 5.5, 6.1 et versions suivantes, la ligne suivante peut etre
   ajoutee au fichier /etc/rc.conf pour obtenir un lancement automatique de
   hcsecd au demarrage du systeme:

 hcsecd_enable="YES"

   Ce qui suit est une partie de la sortie du "daemon" hcsecd:

 hcsecd[16484]: Got Link_Key_Request event from 'ubt0hci', remote bdaddr 0:80:37:29:19:a4
 hcsecd[16484]: Found matching entry, remote bdaddr 0:80:37:29:19:a4, name 'Pav's T39', link key doesn't exist
 hcsecd[16484]: Sending Link_Key_Negative_Reply to 'ubt0hci' for remote bdaddr 0:80:37:29:19:a4
 hcsecd[16484]: Got PIN_Code_Request event from 'ubt0hci', remote bdaddr 0:80:37:29:19:a4
 hcsecd[16484]: Found matching entry, remote bdaddr 0:80:37:29:19:a4, name 'Pav's T39', PIN code exists
 hcsecd[16484]: Sending PIN_Code_Reply to 'ubt0hci' for remote bdaddr 0:80:37:29:19:a4

  32.4.7. Le protocole de decouverte de service (SDP)

   Le protocole de decouverte de service (SDP) offre aux applications
   clientes les moyens de decouvrir l'existence des services fournis par les
   applications serveurs ainsi que les proprietes (attributs) de ces
   services. Les attributs d'un service comprennent le type ou la classe du
   service offert et le mecanisme ou l'information sur le protocole
   necessaire pour utiliser le service.

   Le SDP implique la communication entre un serveur SDP et un client SDP. Le
   serveur maintient une liste d'enregistrements de services qui decrit les
   caracteristiques des services associes avec le serveur. Chaque
   enregistrement de service contient l'information sur un seul serveur. Un
   client peut recuperer l'information `a partir d'un enregistrement de
   service maintenu par le serveur SDP en emettant une requete SDP. Si le
   client, ou une application associee avec le client, decide d'utiliser un
   service, il doit ouvrir une connexion separee avec le fournisseur du
   service afin d'utiliser ce service. Le SDP fournit un mecanisme pour
   decouvrir les services et leur attributs, mais n'offre pas de mecanisme
   pour utiliser ces services.

   Generalement, un client SDP recherche les services sur la base de
   caracteristiques de services desirees. Cependant, il est parfois desirable
   de decouvrir quel type de services sont decrits par les enregistrements de
   services d'un serveur SDP sans aucune information prealable sur les
   services. Ce processus de recherche des services offerts est appele
   navigation ("browsing").

   Le serveur SDP Bluetooth(R) sdpd(8) et le client en ligne de commande
   sdpcontrol(8) font partie de l'installation FreeBSD standard. L'exemple
   suivant montre comment effectuer un requete de navigation ("browse") SDP:

 % sdpcontrol -a 00:01:03:fc:6e:ec browse
 Record Handle: 00000000
 Service Class ID List:
         Service Discovery Server (0x1000)
 Protocol Descriptor List:
         L2CAP (0x0100)
                 Protocol specific parameter #1: u/int/uuid16 1
                 Protocol specific parameter #2: u/int/uuid16 1

 Record Handle: 0x00000001
 Service Class ID List:
         Browse Group Descriptor (0x1001)

 Record Handle: 0x00000002
 Service Class ID List:
         LAN Access Using PPP (0x1102)
 Protocol Descriptor List:
         L2CAP (0x0100)
         RFCOMM (0x0003)
                 Protocol specific parameter #1: u/int8/bool 1
 Bluetooth Profile Descriptor List:
         LAN Access Using PPP (0x1102) ver. 1.0

   ... et ainsi de suite. Remarquez que chaque service a une liste
   d'attributs (canal RFCOMM par exemple). En fonction du service vous
   pourrez avoir besoin de prendre note de certains de ces attributs.
   Certaines implementations Bluetooth(R) ne supportent pas les requetes de
   navigation et peuvent renvoyer une liste vide. Dans ce cas il est possible
   de chercher un service specifique. L'exemple ci-dessous montre comment
   chercher le service OBEX Object Push (OPUSH):

 % sdpcontrol -a 00:01:03:fc:6e:ec search OPUSH

   Offrir des services sous FreeBSD aux clients Bluetooth(R) se fait `a
   l'aide du serveur sdpd(8). Sous les versions de FreeBSD 5.5, 6.1 et plus
   recentes, la ligne suivante peut etre ajoutee au fichier /etc/rc.conf:

 sdpd_enable="YES"

   Ensuite, le << demon >> sdpd peut etre demarre avec:

 # /etc/rc.d/sdpd start

   Sous FreeBSD 6.0, et sous les versions FreeBSD 5.X anterieures `a 5.5,
   sdpd n'est pas integre aux procedures de demarrage du systeme. Il doit
   etre lance manuellement:

 # sdpd

   L'application serveur locale qui desire offrir un service Bluetooth(R) `a
   des clients distants enregistrera le service aupres du "daemon" SDP local.
   Un exemple d'une telle application est rfcomm_pppd(8). Une fois demarre,
   il enregistrera un service de reseau local Bluetooth(R) aupres du serveur
   SDP local.

   La liste des services enregistres aupres du serveur SDP local peut etre
   obtenue en emettant une requete de navigation ("browse") SDP par
   l'intermediaire du canal de controle:

 # sdpcontrol -l browse

  32.4.8. Les profils Dial-Up Networking (DUN) et acces au reseau local avec PPP
  (LAN)

   Le profil Dial-Up Networking (DUN) est principalement utilise avec les
   modems et les telephones portables. Les cas de figure couverts par ce
   profil sont les suivants:

     * Utilisation d'un telephone portable ou d'un modem par un ordinateur
       comme modem sans fil pour se connecter `a un serveur d'acces Internet,
       ou pour l'utilisation de services accessibles par telephone;

     * Utilisation d'un telephone portable ou d'un modem par un ordinateur
       pour recevoir des appels avec transmission de donnees.

   Le profil d'acces au reseau local avec PPP (LAN) peut etre utilise dans
   les situations suivantes:

     * Acces au reseau local pour un peripherique Bluetooth(R);

     * Acces au reseau local pour plusieurs peripheriques Bluetooth(R);

     * Liaison PC `a PC (en utilisant le protocole PPP sur une emulation de
       cable serie).

   Sous FreeBSD les deux profils sont implementes par ppp(8) et
   rfcomm_pppd(8)-un "wrapper" convertit la connexion Bluetooth(R) RFCOMM en
   quelque chose d'utilisable par PPP. Avant qu'un profil ne soit utilisable,
   un nouveau label doit etre cree dans le fichier /etc/ppp/ppp.conf.
   Consultez la page de manuel rfcomm_pppd(8) pour des exemples.

   Dans l'exemple suivant rfcomm_pppd(8) sera employe pour ouvrir un
   connexion RFCOMM avec le peripherique distant avec une adresse BD_ADDR
   00:80:37:29:19:a4 sur un canal DUN RFCOMM. Le numero de canal RFCOMM reel
   sera obtenu du peripherique distant par l'intermediaire de SDP. Il est
   possible de preciser le canal RFCOMM `a la main, dans ce cas
   rfcomm_pppd(8) n'emettra pas de requete SDP. Utilisez sdpcontrol(8) pour
   trouver le canal RFCOMM sur le peripherique distant.

 # rfcomm_pppd -a 00:80:37:29:19:a4 -c -C dun -l rfcomm-dialup

   Afin de fournir un service d'acces au reseau local avec PPP, le serveur
   sdpd(8) doit etre en fonctionnement. Une nouvelle entree pour les clients
   du reseau local doit etre creee dans le fichier /etc/ppp/ppp.conf.
   Consultez la page de manuel rfcomm_pppd(8) pour des exemples. Enfin,
   lancez le serveur RFCOMM PPP sur un numero de canal RFCOMM valide. Le
   serveur RFCOMM PPP enregistrera automatiquement un service Bluetooth(R)
   LAN aupres du "daemon" SDP local. L'exemple ci-dessous montre comment
   demarrer le serveur RFCOMM PPP:

 # rfcomm_pppd -s -C 7 -l rfcomm-server

  32.4.9. Le profil OBEX Object Push (OPUSH)

   OBEX (echange d'objets) est un protocole tres largement utilise pour les
   transferts de fichiers entre peripheriques mobiles. Son utilisation
   principale se trouve dans les communications par infrarouge, ou il est
   utilise pour le transfert des fichiers entre ordinateurs portables ou
   PDAs, et pour envoyer des cartes de visite electronique ou des elements
   d'agenda entre telephones portables et d'autres peripheriques disposant
   d'applications de gestion d'informations personnelles (PIM).

   Le serveur et le client OBEX sont implementes dans le logiciel
   tierce-partie obexapp, qui est disponible sous la forme du logiciel porte
   comms/obexapp.

   Le client OBEX est employe pour "pousser" et/ou "tirer" des objets du
   serveur OBEX. Un objet peut etre, par exemple, une carte de visite ou un
   rendez-vous. Le client OBEX peut obtenir un numero de canal RFCOMM d'un
   peripherique distant par l'intermediaire de SDP. Cela peut etre fait en
   specifiant le nom du service plutot que le numero du canal RFCOMM. Les
   noms de service supportes sont: IrMC, FTRN et OPUSH. Il est possible de
   preciser le canal RFCOMM par un nombre. Un exemple de session OBEX est
   presente ci-dessous, ou l'objet information du peripherique d'un telephone
   portable est recupere, et un nouvel objet (carte de visite) est envoye
   dans le repertoire du telephone.

 % obexapp -a 00:80:37:29:19:a4 -C IrMC
 obex> get telecom/devinfo.txt devinfo-t39.txt
 Success, response: OK, Success (0x20)
 obex> put new.vcf
 Success, response: OK, Success (0x20)
 obex> di
 Success, response: OK, Success (0x20)

   Afin de fournir le service OBEX Object Push, le serveur sdpd(8) doit
   tourner. Un dossier racine ou tous les objets entrant seront stockes doit
   etre cree. Le chemin d'acces par defaut du repertoire racine est
   /var/spool/obex. Le serveur OBEX enregistrera automatiquement le service
   OBEX Object Push aupres du "daemon" SDP local. L'exemple ci-dessous montre
   comment demarrer le serveur OBEX:

 # obexapp -s -C 10

  32.4.10. Le profil port serie (SPP)

   Le profil port serie (SPP) permet aux peripheriques Bluetooth(R) d'emuler
   un cable serie RS232 (ou similaire). Ce profil traite avec les
   applications classiques en utilisant Bluetooth(R) comme un cable de
   remplacement, `a travers une abstraction de port serie virtuel.

   L'utilitaire rfcomm_sppd(1) implemente le profil port serie. Un pseudo
   terminal est utilise comme abstraction de port serie virtuel. L'exemple
   ci-dessous montre comment se connecter `a un service port serie d'un
   peripherique distant. Notez que vous n'avez pas besoin d'indiquer un canal
   RFCOMM - rfcomm_sppd(1) peut l'obtenir aupres du peripherique distant via
   SDP. Si vous desirez forcer cela, specifiez un canal RFCOMM sur la ligne
   de commande.

 # rfcomm_sppd -a 00:07:E0:00:0B:CA -t /dev/ttyp6
 rfcomm_sppd[94692]: Starting on /dev/ttyp6...

   Une fois connecte, le pseudo-terminal peut etre utilise comme un port
   serie:

 # cu -l ttyp6

  32.4.11. Depannage

    32.4.11.1. Un peripherique distant ne peut pas se connecter

   Certains anciens peripheriques Bluetooth(R) ne supportent pas de
   changement de role. Par defaut, quand FreeBSD accepte une nouvelle
   connexion, il tente d'effectuer un changement de role et de devenir
   maitre. Les peripheriques qui ne supportent pas cela ne seront pas en
   mesure de se connecter. Notez qu'un changement de role est effectue quand
   une nouvelle connexion est etablie, il n'est donc pas possible de demander
   au peripherique distant s'il supporte le changement de role. Il existe une
   option HCI pour desactiver le changement de role au niveau local:

 # hccontrol -n ubt0hci write_node_role_switch 0

    32.4.11.2. Quelque chose ne va pas, puis-je voir ce qui se passe exactement?

   Bien sur. Utilisez le logiciel tierce-partie hcidump qui est disponible
   sous comms/hcidump dans le catalogue des logiciels portes. L'utilitaire
   hcidump est similaire `a tcpdump(1). Il peut etre utilise pour afficher le
   contenu des paquets Bluetooth(R) `a l'ecran et les sauvegarder dans un
   fichier.

32.5. Bridging

   Ecrit par Steve Peterson.

  32.5.1. Introduction

   Il est parfois utile de diviser un reseau physique (comme un reseau
   Ethernet) en deux reseaux separes sans avoir `a creer de sous-reseaux IPs
   et `a utiliser un routeur pour connecter ces reseaux entre eux. Le
   peripherique qui connecte ensemble deux reseaux de cette maniere est
   appele "bridge"-pont. Un systeme FreeBSD avec deux cartes reseaux peut
   faire fonction de pont.

   Le pont apprend les adresses MAC (adresses Ethernet) des peripheriques
   branches sur chacune de ses interfaces reseaux. Il transmet le trafic
   entre deux reseaux uniquement quand la source et la destination sont sur
   des reseaux differents.

   Sous de nombreux aspects, un pont ressemble `a un switch (commutateur)
   Ethernet avec tres peu de ports.

  32.5.2. Situations ou l'utilisation d'un pont est appropriee

   Il existe deux situations dans lesquelles un pont est de nos jours
   utilise.

    32.5.2.1. Trafic important sur un segment

   La premiere situation apparait quand un segment physique d'un reseau est
   submerge par le trafic, mais vous ne voulez pas, pour differentes raisons,
   subdiviser le reseau et interconnecter les sous-reseaux `a l'aide d'un
   routeur.

   Prenons comme exemple un journal ou les bureaux de la redaction et de la
   production sont sur le meme sous-reseau. Les utilisateurs de la redaction
   utilisent tous le serveur de fichiers A, et les utilisateurs de la
   production le serveur B. Un reseau Ethernet est utilise pour connecter
   ensemble les utilisateurs, et des surcharges du reseau ralentissent les
   echanges.

   Si les utilisateurs de la redaction peuvent etre cantonne sur un segment,
   et les utilisateurs de la production sur un autre, les deux reseaux
   pourront etre connectes par un pont. Seul le trafic reseau destine aux
   interfaces reseaux situees de l'"autre" cote du pont sera transmis `a
   l'autre reseau, reduisant ainsi les congestions sur chaque segment.

    32.5.2.2. Coupe-feu filtrant/regulant le trafic

   La deuxieme situation est quand un coupe-feu est necessaire mais sans
   translation d'adresses (NAT).

   Un exemple est une compagnie qui est connectee `a son fournisseur d'acces
   internet par l'intermediaire d'une connexion ISDN ou DSL. Elle dispose de
   13 adresses IP routables fournies par le fournisseur d'acces et dispose de
   10 PCs sur son reseau. Dans cette situation, utiliser un coupe-feu/routeur
   est complexe en raison des problemes de sous-reseaux.

   Un coupe-feu base sur un pont peut etre configure et positionne dans le
   flux juste en aval de leur routeur DSL/ISDN sans aucun probleme
   d'adressage IP.

  32.5.3. Configuration d'un pont

    32.5.3.1. Choix des cartes reseaux

   Un pont necessite au moins deux cartes reseaux pour fonctionner.
   Malheureusement toutes les cartes reseaux ne supportent pas le mode
   bridging. Lisez la page de manuel bridge(4) pour des details sur les
   cartes supportees.

   Installez et testez les deux cartes reseaux avant de poursuivre.

    32.5.3.2. Modification de la configuration du noyau

   Pour activer le support necessaire pour mettre en place un pont ajouter la
   ligne suivante:

 options BRIDGE

   `a votre fichier de configuration du noyau, et recompilez votre noyau.

    32.5.3.3. Support du coupe-feu

   Si vous projetez d'utiliser un pont en tant que coupe-feu, vous devrez
   egalement ajouter l'option IPFIREWALL. Lisez la Chapitre 31, Firewalls **
   Traduction en Cours ** pour des informations generales sur la
   configuration d'un pont en tant que coupe-feu.

   Si vous avez besoin de permettre le passage `a travers le pont des paquets
   non-IP (comme ARP), il existe une option du coupe-feu qui doit etre
   activee. Cette option est IPFIREWALL_DEFAULT_TO_ACCEPT. Prennez note que
   cela modifie le fonctionnement par defaut du coupe-feu, ce dernier
   acceptera alors tous les paquets. Assurez-vous de savoir ce que ce
   changement signifie pour votre ensemble de regles de filtrage avant de
   l'effectuer.

    32.5.3.4. Support de la regulation du trafic

   Si vous desirez utiliser le pont comme regulateur de trafic, vous devrez
   ajouter l'option DUMMYNET `a votre fichier de configuration du noyau.
   Consultez la page de manuel dummynet(4) pour plus d'information.

  32.5.4. Activer le pont

   Ajoutez la ligne:

 net.link.ether.bridge.enable=1

   au fichier /etc/sysctl.conf pour activer le pont au demarrage, et la
   ligne:

 net.link.ether.bridge.config=if1,if2

   pour activer le mode bridging sur les interfaces specifiees (remplacez if1
   et if2 par les noms de vos interfaces reseaux). Si vous desirez que les
   paquets traversant le pont soient filtres par ipfw(8), vous devrez ajouter
   egalement la ligne:

 net.link.ether.bridge.ipfw=1

   Pour les versions anterieures `a FreeBSD 5.2-RELEASE, utilisez les lignes
   suivantes:

 net.link.ether.bridge=1
 net.link.ether.bridge_cfg=if1,if2
 net.link.ether.bridge_ipfw=1

  32.5.5. Informations supplementaires

   Si vous desirez etre en mesure de vous connecter au pont par
   l'intermediaire de ssh(1), il est correct d'ajouter `a l'une des cartes
   reseaux une adresse IP. Il existe un consensus sur le fait qu'assigner une
   adresse aux deux cartes est une mauvaise idee.

   Si vous avez plusieurs ponts sur votre reseau, il ne peut y en avoir plus
   d'un sur le chemin qui sera emprunte par le trafic entre deux stations de
   travail. Techniquement, cela signifie qu'il n'y a pas de support pour la
   gestion du "spanning tree".

   Un pont peut ajouter des temps de latence lors de l'utilisation de
   ping(8), et tout particulierement dans le cas du trafic d'un segment vers
   un autre.

32.6. Systeme sans disque dur

   Mis `a jour par Jean-Franc,ois Dockes.
   Reorganise et augmente par Alex Dupre.

   Une machine FreeBSD peut demarrer via le reseau et fonctionner sans disque
   dur local, en utilisant des systemes de fichiers montes `a partir d'un
   serveur NFS. Aucune modification du systeme n'est necessaire en dehors des
   fichiers de configuration standards. Un tel systeme est facile `a mettre
   en oeuvre comme tous les elements sont directement disponibles:

     * Il y a au moins deux methodes possibles pour charger un noyau via le
       reseau:

          * PXE: l'environnement d'execution prealable au demarrage
            d'Intel(R) (Preboot eXecution Environment) est une sorte de ROM
            intelligente presente sur certaines cartes reseau ou cartes mere.
            Consultez la page de manuel pxeboot(8) pour plus de details.

          * Le logiciel porte Etherboot (net/etherboot) produit un code
            stockable dans une ROM pour demarrer des noyaux via le reseau. Le
            code peut etre soit implante dans une PROM de demarrage sur une
            carte reseau, soit charge `a partir d'une disquette (ou d'un
            disque dur local), ou `a partir d'un systeme MS-DOS(R) en
            fonctionnement. De nombreuses cartes reseau sont supportees.

     * Une procedure d'exemple (/usr/share/examples/diskless/clone_root)
       facilite la creation et la maintenance du systeme de fichiers racine
       de la station de travail sur le serveur. La procedure demandera
       surement quelques modifications mais vous permettra de demarrer
       rapidement.

     * Des fichiers de demarrage du systeme existent dans le repertoire /etc
       pour detecter et supporter le demarrage d'un systeme sans disque dur.

     * La pagination, si necessaire, peut etre faite par l'intermediaire d'un
       fichier NFS ou sur un disque local.

   Il existe plusieurs fac,ons de configurer des stations de travail sans
   disque dur. Plusieurs elements entrent en oeuvre, et la plupart peuvent
   etre ajustes en fonction des besoins locaux. Ce qui suit decrit des
   variations sur la configuration d'un systeme complet, mettant en avant le
   simplicite et la compatibilite avec les procedures standards de demarrage
   de FreeBSD. Le systeme decrit presente les caracteristiques suivantes:

     * Les stations de travail sans disque dur utilisent des systemes de
       fichiers / et /usr partages et en lecture seule.

       Le systeme de fichiers racine est une copie d'une racine FreeBSD
       standard (generalement celle du serveur), avec certains fichiers de
       configuration remplaces par des versions specifiques `a un
       fonctionnement sans disque dur, et parfois `a la station de travail
       auxquels ils appartiennent.

       Les parties de la racine qui doivent etre inscriptibles sont
       remplacees par des systemes de fichiers mfs(8) (FreeBSD 4.X) ou md(4)
       (FreeBSD 5.X). Toute modification sera perdue au redemarrage du
       systeme.

     * Le noyau est transfere et charge soit `a l'aide d'Etherboot soit de
       PXE comme certaines situations peuvent exiger l'utilisation de l'une
       ou l'autre methode.

  Attention:

   Ainsi decrit, le systeme n'est pas securise. Il devrait se trouver dans
   une partie protegee du reseau, et les autres machines ne devraient pas lui
   faire confiance aveuglement.

   Toutes les instructions de cette section ont ete testees sous
   FreeBSD 4.9-RELEASE et 5.2.1-RELEASE. Le texte est destine `a l'origine
   pour une utilisation sous 4.X. Des notes on ete inserees aux endroits
   necessaires pour indiquer les modifications concernant la branche 5.X.

  32.6.1. Information de fond

   Mettre en place des stations de travail sans disque dur est `a la fois
   relativement simple et enclin aux erreurs. Ces dernieres sont parfois
   difficiles `a diagnostiquer pour de nombreuses raisons. Par exemple:

     * Des options de compilation peuvent donner lieu `a des comportements
       differents `a l'execution.

     * Les messages d'erreurs sont souvent caches ou totalement absents.

   Dans ce contexte, avoir quelques connaissances des mecanismes sous-jacents
   impliques est tres utile pour resoudre les problemes qui peuvent surgir.

   Plusieurs operations doivent etre effectuees pour un amorc,age reussi:

     * La machine doit obtenir des parametres de base comme son adresse IP,
       le nom du fichier executable, le nom du serveur, l'emplacement de la
       racine. Ceci est fait en utilisant le protocole DHCP ou le protocole
       BOOTP. DHCP est une extension compatible de BOOTP, et utilise les
       memes numeros de ports et son format de paquets basic.

       Il est possible de configurer un systeme pour n'utiliser que BOOTP. Le
       programme serveur bootpd(8) fait partie du systeme de base de FreeBSD.

       Cependant, DHCP presente plusieurs avantage sur BOOTP (des fichiers de
       configuration plus lisibles, la possibilite d'utiliser PXE, plus de
       nombreux autres avantages n'ayant pas de relation directe avec les
       systemes sans disque dur), et nous decrirons principalement une
       configuration DHCP, avec des exemples equivalent utilisant bootpd(8)
       quand cela est possible. L'exemple de configuration utilisera le
       logiciel ISC DHCP (la version 3.0.1.r12 etait installee sur le serveur
       de test).

     * La machine a besoin de transferer un ou plusieurs programmes en
       memoire locale. TFTP ou NFS sont utilises. Le choix entre TFTP et NFS
       est `a de nombreux endroits une option selectionnee lors de la
       compilation. Une source d'erreur courante est d'indiquer des noms de
       fichiers pour le mauvais protocole: TFTP transfere generalement tous
       les fichiers `a partir d'un seul repertoire sur le serveur, et
       attendra des noms de fichiers relatifs `a ce repertoire. NFS a besoin
       de chemins d'acces absolus.

     * Les eventuels programmes d'amorce intermediaires et le noyau doivent
       etre initialises et executes. Il existe plusieurs variations `a ce
       niveau:

          * PXE chargera pxeboot(8), qui est une version modifiee du
            chargeur. Le chargeur (loader(8)) recuperera la plupart des
            parametres necessaires au demarrage du systeme, et les
            transmettra au noyau avant de lui abandonner le controle du
            systeme. Dans ce cas il est possible d'utiliser un noyau GENERIC.

          * Etherboot, chargera directement le noyau avec moins de
            preparation. Vous devrez compiler un noyau avec des options
            particulieres.

       PXE et Etherboot fonctionnent aussi bien l'un que l'autre avec des
       systemes 4.X. Comme le noyau des systemes 5.X laisse au chargeur
       (loader(8)) un peu plus de travail `a effectuer, PXE est prefere pour
       les systemes 5.X.

       Si votre BIOS et vos cartes reseau supportent PXE, vous devriez
       probablement l'utiliser. Cependant, il est toujours possible de
       demarrer un systeme 5.X `a l'aide d'Etherboot.

     * Et enfin, la machine a besoin d'acceder `a ses systemes de fichiers.
       NFS est utilise dans tous les cas.

   Consultez egalement la page de manuel diskless(8).

  32.6.2. Configuration

    32.6.2.1. Configuration utilisant ISC DHCP

   Le serveur ISC DHCP peut repondre aux requetes BOOTP et DHCP.

   Avec la version 4.9, ISC DHCP 3.0 ne fait pas partie du systeme de base.
   Vous devrez installer le logiciel porte net/isc-dhcp3-server ou la version
   pre-compilee correspondante.

   Une fois ISC DHCP installe, il necessite un fichier de configuration pour
   fonctionner (normalement appele /usr/local/etc/dhcpd.conf). Voici un
   exemple commente, ou la machine margaux utilise Etherboot et ou la machine
   corbieres emploie PXE:

 default-lease-time 600;
 max-lease-time 7200;
 authoritative;

 option domain-name "example.com";
 option domain-name-servers 192.168.4.1;
 option routers 192.168.4.1;

 subnet 192.168.4.0 netmask 255.255.255.0 {
   use-host-decl-names on; 1
   option subnet-mask 255.255.255.0;
   option broadcast-address 192.168.4.255;

   host margaux {
     hardware ethernet 01:23:45:67:89:ab;
     fixed-address margaux.example.com;
     next-server 192.168.4.4; 2
     filename "/data/misc/kernel.diskless"; 3
     option root-path "192.168.4.4:/data/misc/diskless"; 4
   }
   host corbieres {
     hardware ethernet 00:02:b3:27:62:df;
     fixed-address corbieres.example.com;
     next-server 192.168.4.4;
     filename "pxeboot";
     option root-path "192.168.4.4:/data/misc/diskless";
   }
 }
        

   1 Cette option dit `a dhcpd d'envoyer le parametre des declarations host   
     comme nom de machine pour la machine sans disque dur. Une autre methode  
     aurait ete d'ajouter option host-name margaux `a l'interieur des         
     declarations host.                                                       
   2 La directive next-server designe le serveur TFTP ou NFS `a utiliser pour 
     telecharger le chargeur ou le noyau (le comportement par defaut etant    
     d'utiliser la meme machine que le serveur DHCP).                         
   3 La directive filename precise le fichier que chargera Etherboot ou PXE   
     `a la prochaine etape. Il doit etre defini en fonction de la methode de  
     transfert utilisee. Etherboot peut etre compile pour utiliser NFS ou     
     TFTP. Le logiciel porte pour FreeBSD utilisera NFS par defaut. PXE       
     emploie TFTP, c'est pourquoi un chemin d'acces relatif est utilise ici   
     (cela peut dependre de la configuration du serveur TFTP, mais devrait    
     etre plutot classique). De plus, PXE charge pxeboot, et non pas le       
     noyau. Il existe d'autres possibilites interessantes, comme le           
     chargement de pxeboot `a partir du repertoire /boot d'un CD-ROM FreeBSD  
     (comme pxeboot(8) peut charger un noyau GENERIC cela rend possible       
     l'utilisation de PXE pour demarrer `a partir d'un lecteur de CD-ROM      
     distant).                                                                
   4 L'option root-path definie le chemin d'acces au systeme de fichiers      
     racine, suivant la notation classique de NFS. En utilisant PXE, il est   
     possible de ne pas preciser l'adresse IP de la machine des lors que vous 
     n'activez pas l'option BOOTP du noyau. Le serveur NFS sera alors le meme 
     que le serveur TFTP.                                                     

    32.6.2.2. Configuration utilisant BOOTP

   Ce qui suit presente une configuration bootpd equivalente (reduite `a un
   seul client). Elle se trouverait sous /etc/bootptab.

   Veuillez noter qu'Etherboot doit etre compile avec l'option
   NO_DHCP_SUPPORT (qui n'est pas activee par defaut) afin d'utiliser BOOTP
   et que PXE necessite DHCP. The seul avantage evident de bootpd est qu'il
   est disponible dans le systeme de base.

 .def100:\
   :hn:ht=1:sa=192.168.4.4:vm=rfc1048:\
   :sm=255.255.255.0:\
   :ds=192.168.4.1:\
   :gw=192.168.4.1:\
   :hd="/tftpboot":\
   :bf="/kernel.diskless":\
   :rp="192.168.4.4:/data/misc/diskless":

 margaux:ha=0123456789ab:tc=.def100
        

    32.6.2.3. Preparation d'un programme de demarrage avec Etherboot

   Le site Web d'Etherboot propose une documentation importante
   principalement destinee aux systemes Linux, mais contenant neamoins des
   informations utiles. Ce qui suit presente comment vous utiliseriez
   Etherboot sur un systeme FreeBSD.

   Vous devez tout d'abord installer le logiciel porte net/etherboot ou sa
   version pre-compilee.

   Vous pouvez modifier la configuration d'Etherboot (i.e. pour utiliser TFTP
   au lieu de NFS) en editant le fichier Config dans le repertoire des
   sources d'Etherboot.

   Pour notre configuration nous utiliserons une disquette de demarrage. Pour
   d'autres methodes (PROM, ou un programme MS-DOS(R)), consultez la
   documentation d'Etherboot.

   Pour creer une disquette de demarrage, inserez une disquette dans le
   lecteur de la machine ou vous avez installe Etherboot, puis rendez-vous
   dans le repertoire src de l'arborescence Etherboot et tapez:

 # gmake bin32/devicetype.fd0

   devicetype depend du type de carte Ethernet se trouvant dans la station de
   travail sans disque dur. Referez-vous au fichier NIC dans le meme
   repertoire pour determiner la valeur devicetype correcte.

    32.6.2.4. Demarrer avec PXE

   Par defaut le chargeur pxeboot(8) charge le noyau via NFS. Il peut etre
   compile pour utiliser TFTP `a la place en specifiant l'option
   LOADER_TFTP_SUPPORT dans le fichier /etc/make.conf. Lisez les commentaires
   dans le fichier /etc/defaults/make.conf (ou
   /usr/share/examples/etc/make.conf pour les systemes 5.X) pour plus de
   details.

   Il existe deux autres options de make.conf non-documentees qui peuvent
   etre utiles pour la configuration d'une machine faisant fonction de
   console serie sans disque dur: BOOT_PXELDR_PROBE_KEYBOARD, et
   BOOT_PXELDR_ALWAYS_SERIAL (cette derniere n'existe que sous FreeBSD 5.X).

   Pour utiliser PXE quand la machine demarre, vous aurez normalement besoin
   de selectionner l'option Boot from network dans votre BIOS, ou d'appuyer
   sur une touche de fonction lors de l'initialisation du PC.

    32.6.2.5. Configuration des serveurs TFTP et NFS

   Si vous utilisez PXE ou Etherboot configures pour employer TFTP, vous
   devez activer tftpd sur le serveur de fichier:

    1. Creez un repertoire `a partir duquel tftpd proposera les fichiers,
       e.g. /tftpboot.

    2. Ajoutez la ligne suivante `a votre fichier /etc/inetd.conf:

 tftp    dgram   udp     wait    root    /usr/libexec/tftpd      tftpd -l -s /tftpboot

  Note:

       Il apparait que certaines versions de PXE veulent la version TCP de
       TFTP. Dans ce cas, ajoutez une seconde ligne, en remplac,ant dgram udp
       par stream tcp.

    3. Demandez `a inetd de relire son fichier de configuration:

 # kill -HUP `cat /var/run/inetd.pid`

   Le repertoire tftpboot peut etre place n'importe ou sur le serveur.
   Assurez-vous que son emplacement est defini dans les fichiers inetd.conf
   et dhcpd.conf.

   Dans tous les cas, vous devez egalement activer NFS et exporter le systeme
   de fichiers approprie sur le serveur NFS.

    1. Ajoutez ce qui suit au fichier /etc/rc.conf:

 nfs_server_enable="YES"

    2. Exportez le systeme de fichiers contenant le repertoire racine du
       systeme sans disque dur en ajoutant ce qui suit au fichier
       /etc/exports (ajustez le point de montage et remplacez margaux
       corbieres avec les noms des stations de travail sans disque dur):

 /data/misc -alldirs -ro margaux corbieres

    3. Demandez `a mountd de relire son fichier de configuration. Si vous
       avez eu besoin d'activer NFS dans /etc/rc.conf lors du premier point,
       vous voudrez probablement plutot redemarrer la machine.

 # kill -HUP `cat /var/run/mountd.pid`

    32.6.2.6. Compilation d'un noyau pour systeme sans disque dur

   Si vous utilisez Etherboot, vous devez creer un fichier de configuration
   du noyau pour le client sans disque dur avec les options suivantes (en
   plus des options habituelles):

 options     BOOTP          # Use BOOTP to obtain IP address/hostname
 options     BOOTP_NFSROOT  # NFS mount root filesystem using BOOTP info
        

   Vous pouvez vouloir egalement employer les options BOOTP_NFSV3,
   BOOT_COMPAT et BOOTP_WIRED_TO (referez-vous au fichier LINT sous 4.X ou
   NOTES sous 5.X).

   Les noms de ces options sont historiques et legerement trompeur comme
   elles activent indifferement l'utilisation de DHCP et BOOTP dans le noyau
   (il est egalement possible de forcer une utilisation stricte de BOOTP ou
   DHCP).

   Compilez le noyau (voir Chapitre 8, Configurer le noyau de FreeBSD), et
   copiez-le `a l'emplacement indique dans dhcpd.conf.

  Note:

   Quand on utilise PXE, la compilation d'un noyau avec les options
   precedentes n'est pas strictement necessaire (bien que conseille). Les
   activer causera un plus grand nombre de requetes DHCP generees lors du
   demarrage du noyau, avec un petit risque d'inconsistance entre les
   nouvelles valeurs et celles recuperees par pxeboot(8) dans certains cas
   particuliers. L'avantage de leur utilisation est que le nom de la machine
   sera forcement defini. Sinon vous devrez definir le nom de la machine par
   une autre methode, par exemple dans un fichier rc.conf particulier au
   client.

  Note:

   Afin d'etre chargeable par Etherboot, un noyau 5.X doit etre compile avec
   les "device hints". Vous definirez normalement l'option suivante dans le
   fichier de configuration (voir le fichier de commentaires sur la
   configuration: NOTES):

 hints           "GENERIC.hints"

    32.6.2.7. Preparer le systeme de fichiers racine

   Vous devez creer un systeme de fichiers racine pour les stations de
   travail sans disque dur, `a l'emplacement defini par root-path dans le
   fichier dhcpd.conf. Les sections suivantes decrivent deux manieres de le
   faire.

      32.6.2.7.1. Utilisation de la procedure clone_root

   C'est la methode la plus rapide pour creer un systeme de fichiers racine,
   mais elle est, pour le moment, uniquement supportee sous FreeBSD 4.X..
   Cette procedure est situee `a l'emplacement
   /usr/share/examples/diskless/clone_root et demande quelques modifications,
   pour au moins ajuster l'emplacement du systeme de fichiers `a creer (la
   variable DEST).

   Referez-vous aux commentaires situes en debut de la procedure pour
   information. Ils expliquent comment le systeme de fichiers de base est
   construit, et comment les fichiers peuvent etre remplaces de fac,on
   selective par des versions specifiques `a un fonctionnement sans disque
   dur, ou `a un sous-reseau, ou encore `a une station de travail
   particuliere. Ils donnent egalement des exemples de fichiers /etc/fstab et
   /etc/rc.conf pour un fonctionnement sans disque dur.

   Les fichiers README dans le repertoire /usr/share/examples/diskless
   contiennent beaucoup d'information de fond, mais, avec les autres exemples
   du repertoire diskless, ils documentent une methode de configuration qui
   est distincte de celle utilisee par clone_root et les procedures de
   demarrage du systeme de /etc, ce qui est un peu `a l'origine de
   confusions. Utilisez-les comme reference uniquement, `a moins que vous
   preferiez la methode qu'ils decrivent, dans quel cas vous devrez modifier
   les procedures rc.

      32.6.2.7.2. Utilisation de la procedure make world standard

   Cette methode s'applique aussi bien `a FreeBSD 4.X qu'`a FreeBSD 5.X et
   installera un systeme complet (et non pas uniquement le systeme de
   fichiers racine) dans le repertoire defini par DESTDIR. Tout ce dont vous
   avez besoin de faire est d'executer la procedure suivante:

 #!/bin/sh
 export DESTDIR=/data/misc/diskless
 mkdir -p ${DESTDIR}
 cd /usr/src; make world && make kernel
 cd /usr/src/etc; make distribution

   Une fois cela termine, vous devrez personaliser vos fichiers /etc/rc.conf
   et /etc/fstab situes dans DESTDIR en fonction de vos besoins.

    32.6.2.8. Configuration de l'espace de pagination

   Si necessaire, un fichier de pagination situe sur le serveur peut etre
   utilise via NFS. Une des methodes couramment utilisees pour cela n'est
   plus supportee sous 5.X.

      32.6.2.8.1. Pagination via NFS sous FreeBSD 4.X

   L'emplacement et la taille du fichier de pagination peuvent etre specifies
   avec les options BOOTP/DHCP 128 et 129 specifiques `a FreeBSD. Des
   exemples de fichiers de configuration pour ISC DHCP 3.0 ou bootpd suivent:

    1. Ajoutez les lignes suivantes au fichier dhcpd.conf:

 # Global section
 option swap-path code 128 = string;
 option swap-size code 129 = integer 32;

 host margaux {
   ... # Standard lines, see above
   option swap-path "192.168.4.4:/netswapvolume/netswap";
   option swap-size 64000;
 }
              

       swap-path est le chemin d'acces vers un repertoire ou les fichiers de
       pagination sont situes. Chaque fichier sera nomme swap.ip-client.

       Les anciennes version de dhcpd utilisaient une syntaxe du type option
       option-128 "..., qui n'est plus supportee.

       /etc/bootptab utiliserait la syntaxe suivante `a la place:

 T128="192.168.4.4:/netswapvolume/netswap":T129=0000fa00

  Note:

       Dans le fichier /etc/bootptab, la taille de l'espace de pagination
       doit etre exprimee en hexadecimal.

    2. Sur le serveur du fichier de pagination par NFS, creez le(s)
       fichier(s) de pagination:

 # mkdir /netswapvolume/netswap
 # cd /netswapvolume/netswap
 # dd if=/dev/zero bs=1024 count=64000 of=swap.192.168.4.6
 # chmod 0600 swap.192.168.4.6

       192.168.4.6 est l'adresse IP du client sans disque dur.

    3. Sur le serveur du fichier de pagination par NFS, ajoutez la ligne
       suivante au fichier /etc/exports:

 /netswapvolume  -maproot=0:10 -alldirs margaux corbieres
              

       Ensuite demandez `a mountd `a relire le fichier exports, comme plus
       haut.

      32.6.2.8.2. Pagination via NFS sous FreeBSD 5.X

   Le noyau ne supporte pas l'activation de la pagination par NFS au
   demarrage. L'espace de pagination doit etre active par les procedures de
   demarrage, en montant un systeme de fichiers accessible en ecriture et en
   creant et en activant un fichier de pagination. Pour creer un fichier de
   pagination de la taille appropriee, vous pouvez effectuer ce qui suit:

 # dd if=/dev/zero of=/path/to/swapfile bs=1k count=1 oseek=100000

   Pour ensuite l'activer, vous devez ajouter la ligne suivante `a votre
   fichier rc.conf:

 swapfile=/path/to/swapfile

    32.6.2.9. Problemes divers

      32.6.2.9.1. Utilisation d'un /usr en lecture seule

   Si la station de travail sans disque dur est configuree pour executer X,
   you devrez ajuster le fichier de configuration de XDM, qui envoie le
   journal d'erreurs sur /usr par defaut.

      32.6.2.9.2. Utilisation d'un serveur non-FreeBSD

   Quand le serveur pour le systeme de fichiers racine ne fait pas tourner
   FreeBSD, vous devrez creer le systeme de fichiers racine sur une machine
   FreeBSD, puis le copier vers sa destination en utilisant tar ou cpio.

   Dans cette situation, il y a parfois des problemes avec les fichiers
   speciaux de peripheriques dans /dev, en raison de differences de taille
   sur les entiers. Une solution `a ce probleme est d'exporter un repertoire
   `a partir du serveur non-FreeBSD, de monter ce repertoire sur une machine
   FreeBSD, et executer MAKEDEV sur la machine FreeBSD pour creer les entrees
   de peripheriques correctes (FreeBSD 5.X et les versions suivantes
   utilisent devfs(5) pour l'allocation des fichiers speciaux de
   peripheriques de maniere transparente pour l'utilisateur, executer MAKEDEV
   sur ces versions est inutile).

32.7. ISDN

   Une bonne source d'information sur la technologie et le materiel ISDN
   (RNIS) est la page ISDN de Dan Kegel.

   Voici un rapide aperc,u `a propos de l'ISDN:

     * Si vous residez en Europe, vous devriez etudier la section sur les
       cartes ISDN.

     * Si vous envisagez d'utiliser l'ISDN avant tout pour vous connecter `a
       l'Internet par l'intermediaire d'un fournisseur d'acces Internet et
       d'une ligne telephonique non dediee, vous devriez vous interesser aux
       Adaptateurs Terminaux. C'est la solution la plus souple, qui vous
       posera le moins de problemes si vous changez de fournisseur d'acces.

     * Si vous interconnectez deux reseaux locaux, ou si vous vous connectez
       `a l'Internet avec une liaison ISDN dediee, vous devriez envisager un
       pont/routeur autonome.

   Le cout est un facteur determinant de la solution que vous choisirez. Les
   options suivantes sont listees de la moins chere `a la plus chere.

  32.7.1. Cartes ISDN

   Contribution de Hellmuth Michaelis.

   L'implementation ISDN de FreeBSD ne supporte que la norme DSS1/Q.931 (ou
   Euro-ISDN) utilisant des cartes passives. Depuis FreeBSD 4.4, quelques
   cartes actives sont supportees ou le firmware supporte egalement d'autres
   protocoles au niveau des signaux, cela inclut les premieres cartes
   supportees du type "Primary Rate ISDN" (PRI).

   Le logiciel isdn4bsd vous permet de vous connecter `a d'autres routeurs
   ISDN soit en utilisant l'IP sur de l'HDLC de base, soit en utilisant PPP
   synchrone: en employant PPP integre au noyau avec isppp, une version
   modifiee du pilote de peripherique sppp(4), ou en employant ppp(8) en mode
   utilisateur. L'utilisation de ppp(8) en mode utilisateur rend possible
   l'agregation de deux ou plus canaux ISDN de type B. Une application
   capable de repondre aux appels telephoniques est egalement disponible,
   tout comme de nombreux utilitaires comme un modem logiciel 300 bauds.

   Un nombre croissant de cartes ISDN pour PC sont supportees sous FreeBSD et
   les retours montrent qu'elles sont utilisees avec succes dans toute
   l'Europe et dans de nombreuses autres parties du monde.

   Les cartes ISDN passives supportees sont principalement celles avec le
   circuit ISDN ISAC/HSCX/IPAC d'Infineon (precedemment Siemens), mais
   egalement les cartes avec des circuits en provenance de Cologne Chip
   (cartes ISA uniquement), les cartes PCI avec les circuits Winbond W6692,
   quelques cartes avec les circuits Tiger300/320/ISAC et quelques cartes
   avec des circuits specifiques comme l'AVM Fritz!Card PCI V.1.0 de l'AVM
   Fritz!Card PnP.

   Actuellement les cartes ISDN actives supportees sont les cartes AVM B1
   (ISA et PCI) BRI et les cartes PCI AVM T1 PRI.

   Pour de la documentation sur isdn4bsd, consultez le repertoire
   /usr/share/examples/isdn/ sur votre systeme FreeBSD ou sur la page web
   d'isdn4bsd qui propose egalement des astuces, des erratas et bien plus de
   documentation que le manuel d'isdn4bsd.

   Au cas ou vous seriez interesse par l'ajout du support pour un protocole
   ISDN different, d'une carte ISDN pour PC non encore supportee ou par
   l'amelioration d'isdn4bsd, veuillez contacter Hellmuth Michaelis.

   Pour les questions concernant l'installation, la configuration et le
   depannage d'isdn4bsd, une liste de diffusion freebsd-isdn est disponible.

  32.7.2. Adaptateurs terminaux ISDN

   Les adaptateurs terminaux-"Terminal adapters (TA)"; sont l'equivalent ISDN
   des modems pour les lignes telephoniques ordinaires.

   La plupart des TA utilisent le jeu de commandes standard des modems Hayes,
   et peuvent etre utilises en remplacement d'un modem.

   Un TA fonctionne essentiellement de la meme maniere qu'un modem `a la
   difference que la vitesse de la connexion sera plus elevee qu'avec votre
   vieux modem. Vous devrez configurer PPP de fac,on exactement identique que
   pour un modem classique. Assurez-vous de fixer la vitesse de votre port
   serie la plus haute possible.

   Le principal avantage d'utiliser un TA pour vous connecter `a votre
   fournisseur d'acces Internet est de pouvoir utiliser PPP en mode dynamic.
   Comme l'espace d'adressage IP disponible devient de plus en plus
   restreint, la plupart des fournisseurs d'acces ne desirent plus vous
   fournir d'adresse IP statique. La plupart des routeurs autonomes ne
   peuvent pas fonctionner avec une allocation dynamique d'adresse IP.

   Les fonctionnalites et la stabilite de la connexion des adaptateurs
   terminaux reposent completement sur le "daemon" PPP. Cela vous permet de
   passer facilement d'un modem classique `a l'ISDN sur une machine FreeBSD,
   si vous avez dej`a configure PPP. Cependant, les problemes que vous avez
   eventuellement rencontres avec PPP persisteront.

   Si vous desirez un maximum de stabilite, utilisez PPP integre au noyau, `a
   la place du PPP en mode utilisateur.

   Les adaptateurs suivants sont connus pour fonctionner avec FreeBSD:

     * Motorola BitSurfer et Bitsurfer Pro

     * Adtran

   La plupart des adaptateurs terminaux fonctionneront probablement
   egalement, les fabricants de TA font en sorte que leurs produits acceptent
   la plupart du jeu de commandes AT des modems.

   Le vrai probleme avec les adaptateurs terminaux est que comme pour les
   modems, il vous faudra une bonne interface serie dans votre ordinateur.

   Vous devriez lire le document sur les ports serie sous FreeBSD pour
   comprendre en detail le fonctionnement des peripheriques serie et les
   differences entre les ports series asynchrones et synchrones.

   Un adaptateur terminal sur un port serie PC standard (asynchrone) vous
   limite `a 115.2 Kbs, meme si vous disposez d'une connexion `a 128 Kbs.
   Pour utiliser completement les 128 Kbs offert par l'ISDN, vous devez
   brancher l'adaptateur sur une carte serie synchrone.

   Ne vous imaginez pas qu'il suffit d'acheter un adaptateur terminal interne
   pour s'affranchir du probleme synchrone/asynchrone. Les adaptateurs
   internes disposent simplement d'un port serie PC standard. Tout ce que
   vous y gagnerez sera d'economiser un cable serie et de liberer une prise
   electrique.

   Une carte synchrone avec un adaptateur terminal est au moins aussi rapide
   qu'un routeur autonome, pilote par une simple machine FreeBSD, et
   probablement plus souple.

   Le choix entre carte synchrone/adaptateur ou routeur autonome est une
   question de gout. Ce sujet a ete aborde dans les listes de diffusion. Nous
   vous suggerons de chercher dans les archives pour obtenir l'integralite de
   la discussion.

  32.7.3. Ponts/Routeurs ISDN autonomes

   Les ponts ou routeurs ISDN ne sont pas specifiques `a FreeBSD ou `a tout
   autre systeme d'exploitation. Pour une description complete de la
   technologie du routage et des ponts, veuillez vous reportez `a un ouvrage
   de reference sur les reseaux.

   Dans le contexte de cette section, les termes de routeur et de pont seront
   utilises indifferemment.

   Comme le prix des routeurs/ponts ISDN d'entree de gamme baissent, il est
   probable qu'ils deviennent un choix de plus en plus populaire. Un routeur
   ISDN est une petite boite qui se branche directement sur votre reseau
   Ethernet, et gere sa propre connexion aux autres ponts/routeurs. Il
   integre le logiciel necessaire au support du protocole PPP et d'autres
   protocoles.

   Un routeur vous offrira un debit plus eleve qu'un adaptateur terminal
   standard, puisqu'il utilisera une connexion ISDN synchrone.

   Le principal probleme avec les routeurs et ponts ISDN est que
   l'interoperabilite entre les materiels des differents constructeurs n'est
   pas toujours garantie. Si vous projetez de vous connecter `a un
   fournisseur d'acces Internet, vous devriez discuter de vos besoins avec ce
   dernier.

   Si vous envisagez de connecter ensemble deux reseaux locaux, comme le
   reseau de votre domicile et celui de votre bureau, c'est la solution la
   plus simple et celle qui demande le moins de maintenance. Etant donne que
   vous etes la personne qui achete les equipements pour les deux extremites,
   vous etes sur que cela fonctionnera.

   Par exemple pour connecter un ordinateur personnel situe `a son domicile
   ou le reseau d'une agence `a celui du siege social, la configuration
   suivante pourra etre utilisee:

   Exemple 32.1. Reseau d'agence ou `a domicile

   Le reseau utilise une topologie en bus avec une connectique Ethernet 10
   base 2 ("thinnet"). Connectez le routeur au reseau `a l'aide d'un
   emetteur/recepteur AUI/10BT si necessaire.

   Ethernet 10 Base 2

   Si votre reseau de domicile/d'agence n'est constitue que d'un seul
   ordinateur, vous pouvez utiliser une paire torsadee croisee pour le
   connecter directement au routeur autonome.

   Exemple 32.2. Siege social ou autre reseau

   Le reseau utilise une topologie en etoile avec une connectique Ethernet 10
   base T ("paire torsadee").

   Architecture du Reseau ISDN

   Un des principaux avantages de la plupart des routeurs/ponts est le fait
   qu'ils permettent d'avoir deux connexions PPP separees et independantes
   vers deux sites differents et cela en meme temps. Ceci n'est pas supporte
   par la plupart des adaptateurs terminaux, en dehors de modeles specifiques
   (en general couteux) qui disposent de deux ports serie. Ne confondez pas
   cette possibilite avec l'agregation de canaux, MPP, etc.

   Ceci peut etre une fonctionnalite tres utile si, par exemple, vous
   disposez d'une connexion ISDN dediee au bureau et vous voudriez en
   profiter mais vous ne voulez pas acquerir une nouvelle ligne ISDN. Un
   routeur au bureau peut gerer un canal B dedie (64 Kbps) vers l'Internet et
   utiliser l'autre canal B pour une autre connexion. Le deuxieme canal B
   peut etre utilise pour les connexions entrantes, sortantes ou pour
   l'agregation de canaux (MPP, etc.) avec le premier canal B pour augmenter
   la bande passante.

   Un pont Ethernet vous permettra de transmettre autre chose que juste du
   trafic IP. Vous pouvez egalement faire passer de l'IPX/SPX ou tout autre
   protocole que vous utilisez.

32.8. Translation d'adresses

   Contribution de Chern Lee.

  32.8.1. Generalites

   Le "daemon" de translation d'adresses ("Network Address Translation"-NAT)
   de FreeBSD, generalement connu sous le nom de natd(8) est un "daemon" qui
   accepte les paquets IP entrants, change l'adresse de la source par celle
   de la machine locale et re-injecte les paquets dans le flux sortant des
   paquets IP. Le programme natd(8) effectue cela en changeant l'adresse IP
   et le port source de sorte quand les donnees reponse arrivent il soit en
   mesure de determiner la provenance des donnees d'origine et les transferer
   `a l'emetteur original.

   L'utilisation classique de NAT est le partage de connexion Internet.

  32.8.2. Architecture du reseau

   En raison de la diminution du nombre d'adresses IP libres sous IPv4, et de
   l'augmentation du nombre d'utilisateurs de lignes haut-debit comme le
   cable ou l'ADSL, le besoin d'utiliser une solution de partage de connexion
   est donc en constante augmentation. La possibilite de connecter plusieurs
   ordinateurs par l'intermediaire d'une connexion et d'une adresse IP fait
   de natd(8) une solution de choix.

   Plus generalement, un utilisateur dispose d'une machine connecte sur la
   cable ou une ligne ADSL avec une adresse IP et desire utiliser cet
   ordinateur connecte pour fournir un acces Internet `a d'autres machines du
   reseau local.

   Pour cela, la machine FreeBSD sur Internet doit jouer le role de
   passerelle. Cette machine passerelle doit avoir deux cartes reseaux-l'une
   pour se connecter au routeur Internet, l'autre est connectee au reseau
   local. Toutes les machines du reseau local sont connectees par
   l'intermediaire d'un hub ou d'un switch.

  Note:

   Il existe plusieurs manieres pour connecter un reseau local `a l'Internet
   `a travers une passerelle FreeBSD. Cet exemple n'abordera que le cas d'une
   passerelle avec au moins deux cartes reseaux.

   Organisation du reseau

   Une telle configuration est communement utilisee pour partager une
   connexion Internet. Une des machines du reseau local est connectee `a
   Internet. Le reste des machines accede `a Internet par l'intermediaire de
   cette machine "passerelle".

  32.8.3. Configuration

   Les options suivantes doivent etre presentes dans le fichier de
   configuration du noyau:

 options IPFIREWALL
 options IPDIVERT

   De plus, les options suivantes peuvent egalement etre utiles:

 options IPFIREWALL_DEFAULT_TO_ACCEPT
 options IPFIREWALL_VERBOSE

   Ce qui suit doit figurer dans le fichier /etc/rc.conf:

 gateway_enable="YES" 1
 firewall_enable="YES" 2
 firewall_type="OPEN" 3
 natd_enable="YES"
 natd_interface="fxp0" 4
 natd_flags="" 5

   1 Configure la machine comme passerelle. Executer sysctl                   
     net.inet.ip.forwarding=1 aurait le meme effet.                           
   2 Active au demarrage les regles du coupe-feu se trouvant dans le fichier  
     /etc/rc.firewall.                                                        
   3 Cela specifie un ensemble de regles predefinies pour le coupe-feu qui    
     autorise tous les paquets entrant. Consultez le fichier /etc/rc.firewall 
     pour d'autres ensembles de regles.                                       
   4 Indique `a travers quelle interface transferer les paquets (l'interface  
     connectee `a l'Internet).                                                
   5 Toutes options de configuration supplementaires passees `a natd(8) au    
     demarrage.                                                               

   Le fait d'avoir les options precedentes definies dans le fichier
   /etc/rc.conf lancera la commande /etc/rc.conf au demarrage. Cette commande
   peut etre egalement executee `a la main.

  Note:

   Il est egalement possible d'utiliser un fichier de configuration pour
   natd(8) quand il y a trop d'options `a passer. Dans ce cas, le fichier de
   configuration doit etre defini en ajoutant la ligne suivante au fichier
   /etc/rc.conf:

 natd_flags="-f /etc/natd.conf"

   Le fichier /etc/natd.conf contiendra une liste d'options de configuration,
   une par ligne. Par exemple le cas de figure de la section suivante
   utiliserait le fichier suivant:

 redirect_port tcp 192.168.0.2:6667 6667
 redirect_port tcp 192.168.0.3:80 80

   Pour plus d'information concernant le fichier de configuration, consultez
   la page de manuel de natd(8) au sujet de l'option -f.

   A chaque machine et interface derriere le reseau local doit etre assigne
   une adresse IP de l'espace d'adresses privees comme defini par la RFC 1918
   et doit disposer d'une passerelle par defaut qui est l'adresse IP interne
   de la machine natd(8).

   Par exemple, les clients A et B du reseau local ont les adresses IP
   192.168.0.2 et 192.168.0.3, tandis que l'interface sur le reseau local de
   la machine natd a pour adresse IP 192.168.0.1. La passerelle par defaut
   des clients A et B doit etre l'adresse 192.168.0.1 de la machine natd.
   L'interface externe ou Internet de cette derniere ne demande aucune
   modification specifique pour que natd(8) puisse fonctionner.

  32.8.4. Redirection de ports

   L'inconvenient avec natd(8) est que les clients du reseau local ne sont
   pas accessibles depuis l'Internet. Les clients sur le reseau local peuvent
   etablir des connexions sortantes vers le monde exterieur mais ne peuvent
   recevoir de connexions entrantes. Cela presente un probleme si l'on tente
   de faire tourner des services Internet sur une des machines du reseau
   local. Une solution simple `a ce probleme est de rediriger les ports
   Internet selectionnes de la machine natd vers le client sur le reseau
   local.

   Par exemple, un serveur IRC tourne sur le client A, et un serveur web sur
   le client B. Pour que cela fonctionne correctement, les connections
   rec,ues sur les ports 6667 (IRC) et 80 (web) doivent etre redirigees vers
   les machines correspondantes.

   L'option -redirect_port doit etre passee `a natd(8) avec les autres
   options adequates. La syntaxe est la suivante:

 -redirect_port proto targetIP:targetPORT[-targetPORT]
                  [aliasIP:]aliasPORT[-aliasPORT]
                  [remoteIP[:remotePORT[-remotePORT]]]

   Dans l'exemple precedent, l'argument passe `a la commande devrait etre:

 -redirect_port tcp 192.168.0.2:6667 6667
 -redirect_port tcp 192.168.0.3:80 80

   Cela va rediriger les ports tcp voulus vers les machines du reseau local.

   L'option -redirect_port peut etre utilisee pour indiquer une plage de
   ports plutot que des ports individuels. Par exemple tcp
   192.168.0.2:2000-3000 2000-3000 redirigerait toutes les connexions rec,ues
   sur les ports 2000 `a 3000 vers les ports 2000 `a 3000 du client A.

   Ces options peuvent etre utilisees quand on execute directement natd(8),
   placees dans l'option natd_flags="" du fichier /etc/rc.conf, ou passees
   par l'intermediaire d'un fichier de configuration.

   Pour plus d'elements et d'options de configuration consultez la page de
   manuel natd(8)

  32.8.5. Redirection d'adresses

   La redirection d'adresses est utile si plusieurs adresses IP sont
   disponibles mais doivent se trouver sur une seule machine. Avec cela,
   natd(8) peut assigner `a chaque client du reseau local sa propre adresse
   IP externe. Le programme natd(8) recrit alors les paquets sortant des
   clients du reseau local avec l'adresse IP externe correcte et redirige
   tout le trafic entrant sur une adresse IP particuliere vers la machine du
   reseau local correspondante. Ce principe est egalement connu sous le nom
   de translation d'adresses statique. Par exemple, les adresses IP
   128.1.1.1, 128.1.1.2, et 128.1.1.3 appartiennent `a la passerelle natd.
   L'adresse 128.1.1.1 peut etre utilisee comme adresse IP externe de la
   passerelle natd, tandis que 128.1.1.2 et 128.1.1.3 sont redirigees vers
   les machines A et B du reseau local.

   La syntaxe de l'option -redirect_address est la suivante:

 -redirect_address localIP publicIP

   localIP  L'adresse IP interne du client sur le reseau local.               
   publicIP L'adresse IP externe correspondant au client sur le reseau local. 

   Dans l'exemple, les arguments passes `a la commande seraient:

 -redirect_address 192.168.0.2 128.1.1.2
 -redirect_address 192.168.0.3 128.1.1.3

   Comme pour l'option -redirect_port, ces options peuvent etre placees dans
   l'option natd_flags="" du fichier /etc/rc.conf, ou passees par
   l'intermediaire d'un fichier de configuration. Avec la redirection
   d'adresse, il n'y a pas besoin de redirection de ports puisque toutes les
   donnees rec,ues sur une IP particuliere sont redirigees.

   Les adresses IP sur la machine natd doivent etre active et pointer sur
   l'interface externe. Consultez la page de manuel rc.conf(5) pour cela.

32.9. IP sur liaison parallele (PLIP)

   PLIP nous permet d'utiliser le protocole TCP/IP entre ports paralleles.
   C'est utile sur des machines sans cartes reseaux, ou pour effectuer une
   installation sur ordinateur portable. Dans cette section nous aborderons:

     * La fabrication d'un cable parallele ("laplink").

     * La connexion de deux ordinateurs via PLIP.

  32.9.1. Fabriquer un cable parallele

   Vous pouvez acheter un cable parallele aupres de la plupart des vendeurs
   de materiel informatique. Si ce n'est pas le cas, ou desirez savoir
   comment est fait un tel cable, le tableau suivant montre comment en faire
   un `a partir d'un cable parallele d'imprimante.

   Tableau 32.1. Cablage d'un cable parallele pour reseau

   A-name A-End B-End Descr. Post/Bit 
   DATA0  2     15    Data   0/0x01   
   -ERROR 15    2            1/0x08   
   DATA1  3     13    Data   0/0x02   
   +SLCT  13    3            1/0x10   
   DATA2  4     12    Data   0/0x04   
   +PE    12    4            1/0x20   
   DATA3  5     10    Strobe 0/0x08   
   -ACK   10    5            1/0x40   
   DATA4  6     11    Data   0/0x10   
   BUSY   11    6            1/0x80   
   GND    18-25 18-25 GND    -        

  32.9.2. Configurer PLIP

   Tout d'abord procurez-vous un cable "laplink". Verifiez ensuite que les
   deux ordinateurs disposent d'un noyau avec le support pour le pilote de
   peripherique lpt(4).

 # grep lp /var/run/dmesg.boot
 lpt0: <Printer> on ppbus0
 lpt0: Interrupt-driven port

   Le port parallele doit fonctionner sous interruption, sous FreeBSD 4.X
   vous devriez avoir une ligne semblable `a la ligne suivante dans le
   fichier de configuration du noyau:

 device ppc0 at isa? irq 7

   Sous FreeBSD 5.X, le fichier /boot/device.hints devrait contenir les
   lignes suivantes:

 hint.ppc.0.at="isa"
 hint.ppc.0.irq="7"

   Ensuite verifiez si le fichier de configuration du noyau contient une
   ligne device plip ou si le module plip.ko est charge. Dans les deux cas
   l'interface reseau parallele devrait apparaitre quand vous utilisez la
   commande ifconfig(8):

 # ifconfig plip0
 plip0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500

   Branchez le cable "laplink" sur les interfaces paralleles des deux
   ordinateurs.

   Configurez les parametres de l'interface reseau des deux cotes en tant que
   root. Par exemple, si vous voulez connecter la machine host1 avec la
   machine host2:

                  host1 <-----> host2
 IP Address    10.0.0.1      10.0.0.2

   Configurez l'interface sur host1 en tapant:

 # ifconfig plip0 10.0.0.1 10.0.0.2

   Configurez l'interface sur host2 en tapant:

 # ifconfig plip0 10.0.0.2 10.0.0.1

   Vous devriez avoir maintenant une connexion qui fonctionne. Veuillez
   consulter les pages de manuel lp(4) et lpt(4) pour plus de details.

   Vous devriez egalement ajouter les deux noms de machines dans le fichier
   /etc/hosts:

 127.0.0.1               localhost.my.domain localhost
 10.0.0.1                host1.my.domain host1
 10.0.0.2                host2.my.domain

   Pour verifier le bon fonctionnement de la connexion, aller sur les deux
   machines et effectuez un "ping" vers l'autre machine. Par exemple, sur
   host1:

 # ifconfig plip0
 plip0: flags=8851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST> mtu 1500
         inet 10.0.0.1 --> 10.0.0.2 netmask 0xff000000
 # netstat -r
 Routing tables

 Internet:
 Destination        Gateway          Flags     Refs     Use      Netif Expire
 host2              host1              UH          0       0       plip0
 # ping -c 4 host2
 PING host2 (10.0.0.2): 56 data bytes
 64 bytes from 10.0.0.2: icmp_seq=0 ttl=255 time=2.774 ms
 64 bytes from 10.0.0.2: icmp_seq=1 ttl=255 time=2.530 ms
 64 bytes from 10.0.0.2: icmp_seq=2 ttl=255 time=2.556 ms
 64 bytes from 10.0.0.2: icmp_seq=3 ttl=255 time=2.714 ms

 --- host2 ping statistics ---
 4 packets transmitted, 4 packets received, 0% packet loss
 round-trip min/avg/max/stddev = 2.530/2.643/2.774/0.103 ms

32.10. IPv6

   Ecrit original de Aaron Kaplan.
   Restructure et ajoute par Tom Rhodes.
   Complete par Brad Davis.

   L'IPv6 (egalement connu sous le nom de IPng "IP nouvelle generation") est
   la nouvelle version du tres celebre protocole IP (aussi connu sous le nom
   d'IPv4). Comme les autres systemes BSD, FreeBSD utilise l'implementation
   IPv6 KAME. Votre systeme FreeBSD est donc fourni avec tout ce dont vous
   aurez besoin pour tester l'IPv6. Cette section se concentre sur la
   configuration et l'utilisation d'IPv6.

   Au debut des annees 90, on a pris conscience de la diminution rapide de
   l'espace d'adresses IPv4. Etant donne le taux d'expansion de l'Internet,
   deux problemes majeurs apparaissaient:

     * Le manque d'adresses. Aujourd'hui ce n'est plus vraiment un probleme
       puisque les espaces d'adresses privees RFC1918 (10.0.0.0/8,
       172.16.0.0/12, et 192.168.0.0/16) et la translation d'adresses (NAT)
       sont utilises.

     * Les tables des routeurs devenaient trop importantes. C'est toujours un
       probleme actuellement.

   L'IPv6 remedie `a ces problemes et `a de nombreux autres:

     * Espace d'adressage sur 128 bits. Ou plus precisement, il y a 340 282
       366 920 938 463 463 374 607 431 768 211 456 adresses disponibles. Cela
       equivaut `a approximativement 6.67 * 10^27 adresses IPv6 par
       kilometre-carre de surface de notre planete.

     * Les routeurs ne stockeront que des regroupements d'adresses dans leurs
       tables de routage reduisant donc l'espace moyen d'une table de routage
       `a 8192 entrees.

   IPv6 presente egalement de nombreuses autres interessantes fonctionnalites
   telles que:

     * L'autoconfiguration des adresses (RFC2462)

     * Adresses unicast ("une parmi plusieurs")

     * Adresses multicast (multidestinataires) obligatoires

     * IPsec (protocole de securite IP)

     * Struture d'entete simplifiee

     * IP mobile

     * Mecanismes de transition IPv6-vers-IPv4

   Pour plus d'informations consultez les references suivantes:

     * Generalites sur l'IPv6 `a playground.sun.com

     * KAME.net

     * 6bone.net

  32.10.1. Les adresses IPv6

   Il existe different types d'adresses IPv6: unicast, anycast et multicast.

   Les adresses unicast (mono-destinataire) sont les adresses classiques. Un
   paquet envoye `a une adresse unicast arrive `a l'interface correspondant
   `a l'adresse.

   Les adresses anycast ne sont normalement pas distinguables des adresses
   unicast mais correspondent `a un groupe d'interfaces. Un paquet destine `a
   une adresse anycast arrivera `a l'interface la plus proche (en terme
   d'unite de distance du protocole de routage). Les adresses anycast
   devraient n'etre utilisees que par les routeurs.

   Les adresses multicast identifient un groupe d'interfaces. Un paquet
   destine `a une adresse multicast arrivera sur toutes les interfaces
   appartenant au groupe multicast.

  Note:

   L'adresse de diffusion IPv4 (generalement xxx.xxx.xxx.255) est exprimee
   par des adresses multicast en IPv6.

   Tableau 32.2. Adresses IPv6 reservees

     Adresse IPv6    Longueur du      Description             Notes           
                    prefixe (bits) 
   ::               128 bits       non-specifiee     similaire `a 0.0.0.0     
                                                     sous IPv4                
   ::1              128 bits       adresse de boucle similaire `a 127.0.0.1   
                                                     sous IPv4                
                                                     Les 32 bits de poids     
                                                     faible sont l'adresse    
   ::00:xx:xx:xx:xx 96 bits        IPv4 encapsule    IPv4. Egalement appelee  
                                                     "adresse IPv6 compatible 
                                                     IPv4".                   
                                                     Les 32 bits de poids     
                                   adresse IPv6      faible sont l'adresse    
   ::ff:xx:xx:xx:xx 96 bits        mappee IPv4       IPv4. Destinees aux      
                                                     machines ne supportant   
                                                     pas l'IPv6.              
   fe80:: - feb::   10 bits        lien-local        similaire `a l'interface 
                                                     de boucle sous IPv4      
   fec0:: - fef::   10 bits        site-local                                 
   ff::             8 bits         multicast                                  
                                                     Toutes les adresses      
                                                     unicast globales sont    
   001 (base 2)     3 bits         unicast globale   assignees `a partir de   
                                                     ce pool. Les trois       
                                                     premiers bits de         
                                                     l'adresse sont "001".    

  32.10.2. Lecture des adresses IPv6

   La forme canonique est representee suivant le schema: x:x:x:x:x:x:x:x, ou
   chaque "x" est une valeur hexadecimale sur 16 bits. Par exemple
   FEBC:A574:382B:23C1:AA49:4592:4EFE:9982

   Souvent dans une adresse on aura de longues sous-parties constituees de
   zeros, une telle sous-partie peut etre abregee par "::". Les trois
   << 0 >>s de poids fort de chaque quartet hexadecimal peuvent egalement
   etre omis. Par exemple fe80::1 correspond `a la forme canonique
   fe80:0000:0000:0000:0000:0000:0000:0001.

   Une troisieme forme est d'ecrire les derniers 32 bits dans le style IPv4
   bien connu (decimal) avec des points "." comme separateurs. Par exemple
   2002::10.0.0.1 correspond `a la representation canonique (hexadecimale)
   2002:0000:0000:0000:0000:0000:0a00:0001 qui est `a son tour equivalente `a
   l'ecriture 2002::a00:1.

   Maintenant le lecteur devrait etre en mesure de comprendre ce qui suit:

 # ifconfig

 rl0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
          inet 10.0.0.10 netmask 0xffffff00 broadcast 10.0.0.255
          inet6 fe80::200:21ff:fe03:8e1%rl0 prefixlen 64 scopeid 0x1
          ether 00:00:21:03:08:e1
          media: Ethernet autoselect (100baseTX )
          status: active

   fe80::200:21ff:fe03:8e1%rl0 est une adresse de lien local configuree
   automatiquement. Elle est generee `a partir de l'adresse MAC dans le cas
   de l'autoconfiguration.

   Pour plus d'informations sur la structure des adresses IPv6 consultez la
   RFC3513.

  32.10.3. Se connecter

   Actuellement, il y a quatre fac,ons de se connecter `a des machines et des
   reseaux utilisant l'IPv6:

     * Rejoindre le reseau experimental 6bone

     * Obtenir un reseau IPv6 aupres de votre fournisseur d'acces. Contactez
       votre fournisseur d'acces Internet pour plus d'informations.

     * Utilisation d'un tunnel 6-vers-4 (RFC3068)

     * Utilisation du logiciel porte net/freenet6 si vous utilisez une
       connexion par modem.

   Ici nous ne parlerons que de la maniere de se connecter au reseau 6bone
   puisque cela semble etre aujourd'hui la methode de connexion la plus
   populaire.

   Consultez tout d'abord le site 6bone et recherchez une connexion 6bone
   proche de vous. Contactez le responsable et avec un peu de chance on vous
   donnera les instructions `a suivre pour configurer votre connexion.
   Generalement cela implique la mise en place d'un tunnel GRE (gif).

   Voici un exemple typique de configuration d'un tunnel gif(4):

 # ifconfig gif0 create
 # ifconfig gif0
 gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
 # ifconfig gif0 tunnel MON_ADR_IPv4 MON_ADR_IPv4_ASSIGNEE_A_LAUTRE_BOUT_DU_TUNNEL
 # ifconfig gif0 inet6 alias MON_ADR_IPv6_ASSIGNEE_A_LEXTREMITE_DU_TUNNEL MON_ADR_IPv6_ASSIGNEE_A_LAUTRE_BOUT_DU_TUNNEL

   Remplacez les mots en majuscules par les informations que vous avez
   rec,ues du point d'acces 6bone.

   Ceci etablit le tunnel. Verifiez si le tunnel fonctionne en utilisant
   ping6(8) sur l'adresse ff02::1%gif0. Vous devriez recevoir les reponses
   aux requetes ping.

  Note:

   Au cas ou vous seriez intrigue par l'adresse ff02:1%gif0, sachez que c'est
   une adresse multicast. %gif0 precise que l'adresse multicast de
   l'interface gif0 doit etre utilisee. Puisque nous utilisons ping sur une
   adresse multicast, l'autre bout du tunnel devrait egalement repondre.

   Desormais, la mise en place d'une route vers votre lien 6bone devrait etre
   relativement directe:

 # route add -inet6 default -interface gif0
 # ping6 -n MON_LIEN_MONTANT

 # traceroute6 www.jp.FreeBSD.org
 (3ffe:505:2008:1:2a0:24ff:fe57:e561) from 3ffe:8060:100::40:2, 30 hops max, 12 byte packets
      1  atnet-meta6  14.147 ms  15.499 ms  24.319 ms
      2  6bone-gw2-ATNET-NT.ipv6.tilab.com  103.408 ms  95.072 ms *
      3  3ffe:1831:0:ffff::4  138.645 ms  134.437 ms  144.257 ms
      4  3ffe:1810:0:6:290:27ff:fe79:7677  282.975 ms  278.666 ms  292.811 ms
      5  3ffe:1800:0:ff00::4  400.131 ms  396.324 ms  394.769 ms
      6  3ffe:1800:0:3:290:27ff:fe14:cdee  394.712 ms  397.19 ms  394.102 ms

   La sortie pourra etre differente d'une machine `a une autre. Maintenant
   vous devriez etre en mesure d'atteindre le site IPv6 www.kame.net et de
   voir la tortue dansante - et cela si vous disposez d'un navigateur
   supportant l'IPv6 comme www/mozilla, Konqueror qui fait partie du logiciel
   x11/kdebase3, ou www/epiphany.

  32.10.4. DNS dans le monde IPv6

   A l'origine, il existait deux types d'enregistrement DNS pour l'IPv6.
   L'organisme IETF a declare obsolete l'enregistrement A6. Les
   enregistrements AAAA sont aujourd'hui le standard.

   L'utilisation des enregistrements AAAA est assez direct. Assignez votre
   nom de machine `a la nouvelle adresse IPv6 que vous venez d'obtenir en
   ajoutant:

 MYHOSTNAME           AAAA    MYIPv6ADDR

   `a votre fichier de zone DNS primaire. Dans le cas ou vous ne gerez pas
   vos propres zones DNS contactez le responsable de votre DNS. Les versions
   actuelles de bind (version 8.3 et 9) et dns/djbdns (avec le correctif
   IPv6) supportent les enregistrements AAAA.

  32.10.5. Effectuer les changements necessaires dans le fichier /etc/rc.conf

    32.10.5.1. Parametrage du client IPv6

   Ces parametres vous permettront de configurer une machine qui sera sur
   votre reseau local et sera un client, non pas un routeur. Pour que
   rtsol(8) configure automatiquement votre interface reseau au demarrage
   tout ce dont vous avez besoin d'ajouter est:

 ipv6_enable="YES"

   Pour assigner une adresse IP statique telle que
   2001:471:1f11:251:290:27ff:fee0:2093, `a votre interface fxp0, ajoutez:

 ipv6_ifconfig_fxp0="2001:471:1f11:251:290:27ff:fee0:2093"

   Pour assigner le routeur par defaut 2001:471:1f11:251::1, ajoutez ce qui
   suit au fichier /etc/rc.conf:

 ipv6_defaultrouter="2001:471:1f11:251::1"

    32.10.5.2. Parametrage d'un routeur/passerelle IPv6

   Ceci vous aidera `a mettre en oeuvre les instructions que votre
   fournisseur de tunnel, tel que 6bone, vous a donne et `a les convertir en
   parametres qui seront conserves `a chaque demarrage. Pour retablir votre
   tunnel au demarrage, utilisez quelque chose comme ce qui suit dans le
   fichier /etc/rc.conf:

   Listez les interfaces generiques de tunnel qui seront configurees, par
   exemple gif0:

 gif_interfaces="gif0"

   Pour configurer l'interface avec une adresse (extremite) locale
   MY_IPv4_ADDR vers une adresse (extremite) distante REMOTE_IPv4_ADDR:

 gifconfig_gif0="MY_IPv4_ADDR REMOTE_IPv4_ADDR"

   Pour utiliser l'adresse IPv6 que l'on vous a assigne en vue d'etre
   utilisee pour votre extremite du tunnel IPv6, ajoutez:

 ipv6_ifconfig_gif0="MY_ASSIGNED_IPv6_TUNNEL_ENDPOINT_ADDR"

   Ensuite tout ce qu'il reste `a faire est de definir la route par defaut
   pour l'IPv6. C'est l'autre extremite du tunnel IPv6:

 ipv6_defaultrouter="MY_IPv6_REMOTE_TUNNEL_ENDPOINT_ADDR"

    32.10.5.3. Parametrage d'un tunnel IPv6

   Si le serveur doit router de l'IPv6 entre votre reseau et le reste du
   monde, le parametre suivant sera egalement necessaire dans votre fichier
   /etc/rc.conf:

 ipv6_gateway_enable="YES"

  32.10.6. Annonce du routeur et auto-configuration

   Cette section vous aidera `a configurer rtadvd(8) pour l'annonce de la
   route IPv6 par defaut.

   Pour activer rtadvd(8), vous devrez ajouter ce qui suit `a votre fichier
   /etc/rc.conf:

 rtadvd_enable="YES"

   Il est important que vous indiquiez l'interface sur laquelle le routeur
   IPv6 sera sollicite. Par exemple pour que rtadvd(8) utilise fxp0:

 rtadvd_interfaces="fxp0"

   Nous devons maintenant creer le fichier de configuration /etc/rtadvd.conf.
   Voici un exemple:

 fxp0:\
         :addrs#1:addr="2001:471:1f11:246::":prefixlen#64:tc=ether:

   Remplacez fxp0 avec l'interface que vous allez utiliser.

   Ensuite remplacez 2001:471:1f11:246:: avec votre prefixe.

   Si vous etes un sous-reseau /64 dedie, il ne sera pas necessaire de
   modifier quelque chose d'autre. Sinon, vous devrez modifier prefixlen#
   avec la valeur correcte.

32.11. ATM (<< Asynchronous Transfer Mode >>)

   Contribution de Harti Brandt.

  32.11.1. Configuration IP conventionnelle sur ATM (PVCs)

   L'IP conventionnelle sur ATM ("Classical IP over ATM"-CLIP) est la methode
   la plus simple pour utiliser ATM (Asynchronous Transfer Mode) avec l'IP.
   Elle peut etre utilisee en mode non connecte ("Switched Virtual
   Connections"-SVCs) et en mode connecte ("Permanent Virtual
   Connections"-PVCs). Cette section decrit comment configurer un reseau base
   sur les PVCs.

    32.11.1.1. Configurations en reseau maille

   La premiere methode de configuration CLIP avec des PVCs est de connecter
   entre elles chaque machine du reseau par l'intermediaire d'une PVC dediee.
   Bien que cela soit simple `a configurer, cela tend `a devenir impraticable
   avec un nombre important de machines. Notre exemple suppose que nous avons
   quatre machines sur le reseau, chacune connectee au reseau ATM `a l'aide
   d'une carte reseau ATM. La premiere etape est d'etablir le plan des
   adresses IP et des connexions ATM entre machines. Nous utilisons le plan
   suivant:

                Machine                             Adresse IP                
   hostA                              192.168.173.1                           
   hostB                              192.168.173.2                           
   hostC                              192.168.173.3                           
   hostD                              192.168.173.4                           

   Pour realiser un reseau maille, nous avons besoin d'une connexion ATM
   entre chaque paire de machines:

                 Machines                          Couple VPI.VCI             
   hostA - hostB                        0.100                                 
   hostA - hostC                        0.101                                 
   hostA - hostD                        0.102                                 
   hostB - hostC                        0.103                                 
   hostB - hostD                        0.104                                 
   hostC - hostD                        0.105                                 

   Les valeurs VPI et VCI `a chaque extremite de la connexion peuvent bien
   evidemment etre differentes, mais par souci de simplicite nous supposerons
   quelles sont identiques. Ensuite nous devons configurer les interfaces ATM
   sur chaque machine:

 hostA# ifconfig hatm0 192.168.173.1 up
 hostB# ifconfig hatm0 192.168.173.2 up
 hostC# ifconfig hatm0 192.168.173.3 up
 hostD# ifconfig hatm0 192.168.173.4 up

   en supposant que l'interface ATM est hatm0 sur toutes les machines.
   Maintenant les PVCs doivent etre configurees sur hostA (nous supposons
   qu'elles sont dej`a configurees sur les switches ATM, vous devez consulter
   le manuel du switch sur comment realiser cette configuration).

 hostA# atmconfig natm add 192.168.173.2 hatm0 0 100 llc/snap ubr
 hostA# atmconfig natm add 192.168.173.3 hatm0 0 101 llc/snap ubr
 hostA# atmconfig natm add 192.168.173.4 hatm0 0 102 llc/snap ubr

 hostB# atmconfig natm add 192.168.173.1 hatm0 0 100 llc/snap ubr
 hostB# atmconfig natm add 192.168.173.3 hatm0 0 103 llc/snap ubr
 hostB# atmconfig natm add 192.168.173.4 hatm0 0 104 llc/snap ubr

 hostC# atmconfig natm add 192.168.173.1 hatm0 0 101 llc/snap ubr
 hostC# atmconfig natm add 192.168.173.2 hatm0 0 103 llc/snap ubr
 hostC# atmconfig natm add 192.168.173.4 hatm0 0 105 llc/snap ubr

 hostD# atmconfig natm add 192.168.173.1 hatm0 0 102 llc/snap ubr
 hostD# atmconfig natm add 192.168.173.2 hatm0 0 104 llc/snap ubr
 hostD# atmconfig natm add 192.168.173.3 hatm0 0 105 llc/snap ubr

   Bien evidemment des contrats de trafic autres qu'UBR ("Unspecified Bit
   Rate") peuvent etre utilises des que la carte ATM les supportent. Dans ce
   cas le nom du contrat de trafic est suivi par les parametres du trafic. De
   l'aide concernant l'outil atmconfig(8) peut etre obtenue avec:

 # atmconfig help natm add

   ou dans la page de manuel de atmconfig(8).

   La meme configuration peut etre faite par l'intermediaire de /etc/rc.conf.
   Pour la machine hostA cela ressemblerait `a:

 network_interfaces="lo0 hatm0"
 ifconfig_hatm0="inet 192.168.173.1 up"
 natm_static_routes="hostB hostC hostD"
 route_hostB="192.168.173.2 hatm0 0 100 llc/snap ubr"
 route_hostC="192.168.173.3 hatm0 0 101 llc/snap ubr"
 route_hostD="192.168.173.4 hatm0 0 102 llc/snap ubr"

   L'etat de toutes les routes CLIP peut etre obtenu avec:

 hostA# atmconfig natm show

                               Partie V. Annexes

   Table des matieres

   A. Se procurer FreeBSD

                A.1. Editeurs de CD-ROMs et DVDs

                A.2. Sites FTP

                A.3. CVS anonyme

                A.4. Utiliser CTM

                A.5. Utiliser CVSup

                A.6. Utiliser Portsnap

                A.7. Etiquettes CVS

                A.8. Sites AFS

                A.9. Sites rsync

   B. Bibliographie

                B.1. Livres & magazines consacres `a FreeBSD

                B.2. Manuels d'utilisation

                B.3. Manuels d'administration

                B.4. Manuels de programmation

                B.5. "Internes" du systeme d'exploitation

                B.6. Ouvrages de reference en matiere de securite

                B.7. Ouvrages de reference sur le materiel

                B.8. Histoire d'UNIX(R)

                B.9. Revues et journaux

   C. Ressources sur Internet

                C.1. Listes de diffusion

                C.2. Forums de discussion

                C.3. Serveurs World Wide Web

                C.4. Adresses electroniques

                C.5. Comptes

   D. Cles OpenPGP

                D.1. Officiers

Annexe A. Se procurer FreeBSD

   Table des matieres

   A.1. Editeurs de CD-ROMs et DVDs

   A.2. Sites FTP

   A.3. CVS anonyme

   A.4. Utiliser CTM

   A.5. Utiliser CVSup

   A.6. Utiliser Portsnap

   A.7. Etiquettes CVS

   A.8. Sites AFS

   A.9. Sites rsync

   Version franc,aise de Marc Fonvieille <blackend@FreeBSD.org>.

A.1. Editeurs de CD-ROMs et DVDs

  A.1.1. Produits vendus en boite

   Des versions en boite de FreeBSD sont disponibles (CDs de FreeBSD,
   logiciels supplementaires, et documentation papier) aupres de plusieurs
   revendeurs:

     *     CompUSA
           WWW: http://www.compusa.com/
         

     *     Frys Electronics
           WWW: http://www.frys.com/
         

  A.1.2. CDs et DVDs

   Les CDs et DVDs de FreeBSD sont disponibles aupres de nombreux revendeurs
   en ligne:

     *   BSD Mall by Daemon News
         PO Box 161
         Nauvoo, IL 62354
         USA
         Phone: +1 866 273-6255
         Fax: +1 217 453-9956
         Email: <sales@bsdmall.com>
         WWW: http://www.bsdmall.com/
               

     *   BSD-Systems
         Email: <info@bsd-systems.co.uk>
         WWW: http://www.bsd-systems.co.uk

     *   FreeBSD Mall, Inc.
         3623 Sanford Street
         Concord, CA  94520-1405
         USA
         Phone: +1 925 240-6652
         Fax: +1 925 674-0821
         Email: <info@freebsdmall.com>
         WWW: http://www.freebsdmall.com/
               

     *   Dr. Hinner EDV
         St. Augustinus-Str. 10
         D-81825 Mu:nchen
         Allemagne
         Phone: (089) 428 419
         WWW: http://www.hinner.de/linux/freebsd.html
               

     *   Ikarios
         22-24 rue Voltaire
         92000 Nanterre
         France
         WWW: http://ikarios.com/form/#freebsd
               

     *   JMC Software
         Ireland
         Phone: 353 1 6291282
         WWW: http://www.thelinuxmall.com

     *  Linux CD Mall
        Private Bag MBE N348
        Auckland 1030
        New Zealand
        Phone: +64 21 866529
        WWW: http://www.linuxcdmall.co.nz/

     *   The Linux Emporium
         Hilliard House, Lester Way
         Wallingford
         OX10 9TA
         Royaume-Uni
         Phone: +44 1491 837010
         Fax: +44 1491 837016
         WWW: http://www.linuxemporium.co.uk/products/freebsd/
               

     *   Linux+ DVD Magazine
         Lewartowskiego 6
         Warsaw
         00-190
         Poland
         Phone: +48 22 860 18 18
         Email: <editors@lpmagazine.org>
         WWW: http://www.lpmagazine.org/

     *   Linux System Labs Australie
         21 Ray Drive
         Balwyn North
         VIC - 3104
         Australie
         Phone: +61 3 9857 5918
         Fax: +61 3 9857 8974
         WWW: http://www.lsl.com.au
               

     *   LinuxCenter.Ru
         Galernaya Street, 55
         Saint-Petersburg
         190000
         Russia
         Phone: +7-812-3125208
         Email: <info@linuxcenter.ru>
         WWW: http://linuxcenter.ru/freebsd

  A.1.3. Distributeurs

   Si vous etes un revendeur et desirez vendre des CDROMs de FreeBSD,
   veuillez contacter un distributeur:

     *     Cylogistics
           809B Cuesta Dr., #2149
           Mountain View, CA 94040
           USA
           Phone: +1 650 694-4949
           Fax: +1 650 694-4953
           Email: <sales@cylogistics.com>
           WWW: http://www.cylogistics.com/
         

     *   Ingram Micro
         1600 E. St. Andrew Place
         Santa Ana, CA  92705-4926
         USA
         Phone: 1 (800) 456-8000
         WWW: http://www.ingrammicro.com/
               

     *     Kudzu, LLC
           7375 Washington Ave. S.
           Edina, MN 55439
           USA
           Phone: +1 952 947-0822
           Fax: +1 952 947-0876
           Email: <sales@kudzuenterprises.com>
         

     *     Navarre Corp
           7400 49th Ave South
           New Hope, MN 55428
           USA
           Phone: +1 763 535-8333
           Fax: +1 763 535-0341
           WWW: http://www.navarre.com/
         

A.2. Sites FTP

   >Les sources officielles de FreeBSD sont disponibles via FTP anonyme `a
   partir d'un ensemble de sites miroir. Le site
   ftp://ftp.FreeBSD.org/pub/FreeBSD/ dispose d'une bonne connectivite et
   autorise un grand nombre de connexions, mais vous avez interet `a trouver
   plutot un site miroir "plus proche" (tout particulierement si vous decidez
   de mettre en place une sorte de miroir `a votre tour).

   La base de donnees des sites miroir FreeBSD est plus `a jour que la liste
   de ce Manuel, parce qu'elle tire ses informations du DNS plutot que se
   reposer sur une liste statique de machines.

   De plus, FreeBSD est disponible via FTP anonyme `a partir des sites miroir
   ci-dessous. Si vous decidez de vous procurer FreeBSD via FTP anonyme,
   essayez si possible d'utiliser un site proche de vous. Les sites miroir
   listes en tant que "sites miroir primaires" disposent generalement de
   l'integralite de l'archive FreeBSD (toutes les versions actuellement
   disponibles pour chacune des architectures) mais vous obtiendrez les temps
   de telechargements les plus courts `a partir d'un site situe dans votre
   pays ou votre region. Les sites regionaux proposent les versions les plus
   recentes des architectures les plus populaires mais pourraient ne pas
   proposer l'integralite de l'archive de FreeBSD. Tous les sites proposent
   un acces FTP anonyme mais certains sites fournissent egalement un acces
   suivant d'autres methodes. Les methodes d'acces disponibles pour chaque
   site sont donnees entre parentheses apres le nom de la machine.

   Serveurs primaires
              * ftp://ftp.FreeBSD.org/pub/FreeBSD/ (ftp / ftpv6 /
                http://ftp.FreeBSD.org/pub/FreeBSD/ /
                http://ftp.FreeBSD.org/pub/FreeBSD/)

   Sites miroirs primaires

           En cas de problemes, merci de contacter le hostmaster
           <mirror-admin@FreeBSD.org> pour ce domaine.

              * ftp://ftp1.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp2.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp3.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp4.FreeBSD.org/pub/FreeBSD/ (ftp / ftpv6 /
                http://ftp4.FreeBSD.org/pub/FreeBSD/ /
                http://ftp4.FreeBSD.org/pub/FreeBSD/)

              * ftp://ftp5.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp6.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp7.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp10.FreeBSD.org/pub/FreeBSD/ (ftp / ftpv6 /
                http://ftp10.FreeBSD.org/pub/FreeBSD/ /
                http://ftp10.FreeBSD.org/pub/FreeBSD/)

              * ftp://ftp11.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp13.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp14.FreeBSD.org/pub/FreeBSD/ (ftp /
                http://ftp14.FreeBSD.org/pub/FreeBSD/)

   Afrique du Sud

           En cas de problemes, merci de contacter le hostmaster
           <hostmaster@za.FreeBSD.org> pour ce domaine.

              * ftp://ftp.za.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp2.za.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp4.za.FreeBSD.org/pub/FreeBSD/ (ftp)

   Allemagne

           En cas de problemes, merci de contacter le hostmaster
           <de-bsd-hubs@de.FreeBSD.org> pour ce domaine.

              * ftp://ftp.de.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp1.de.FreeBSD.org/freebsd/ (ftp /
                http://www1.de.FreeBSD.org/freebsd/ /
                rsync://rsync3.de.FreeBSD.org/freebsd/)

              * ftp://ftp2.de.FreeBSD.org/pub/FreeBSD/ (ftp /
                http://ftp2.de.FreeBSD.org/pub/FreeBSD/ / rsync)

              * ftp://ftp4.de.FreeBSD.org/FreeBSD/ (ftp /
                http://ftp4.de.FreeBSD.org/pub/FreeBSD/)

              * ftp://ftp5.de.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp7.de.FreeBSD.org/pub/FreeBSD/ (ftp /
                http://ftp7.de.FreeBSD.org/pub/FreeBSD/)

              * ftp://ftp8.de.FreeBSD.org/pub/FreeBSD/ (ftp)

   Arabie Saoudite

           En cas de problemes, merci de contacter le hostmaster
           <ftpadmin@isu.net.sa> pour ce domaine.

              * ftp://ftp.isu.net.sa/pub/ftp.freebsd.org/ (ftp)

   Armenia

           En cas de problemes, merci de contacter le hostmaster
           <hostmaster@am.FreeBSD.org> pour ce domaine.

              * ftp://ftp1.am.FreeBSD.org/pub/FreeBSD/ (ftp /
                http://ftp1.am.FreeBSD.org/pub/FreeBSD/ / rsync)

   Australie

           En cas de problemes, merci de contacter le hostmaster
           <hostmaster@au.FreeBSD.org> pour ce domaine.

              * ftp://ftp.au.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp2.au.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp3.au.FreeBSD.org/pub/FreeBSD/ (ftp)

   Autriche

           En cas de problemes, merci de contacter le hostmaster
           <hostmaster@at.FreeBSD.org> pour ce domaine.

              * ftp://ftp.at.FreeBSD.org/pub/FreeBSD/ (ftp / ftpv6 /
                http://ftp.at.FreeBSD.org/pub/FreeBSD/ /
                http://ftp.at.FreeBSD.org/pub/FreeBSD/)

   Bresil

           En cas de problemes, merci de contacter le hostmaster
           <hostmaster@br.FreeBSD.org> pour ce domaine.

              * ftp://ftp2.br.FreeBSD.org/FreeBSD/ (ftp /
                http://ftp2.br.FreeBSD.org/)

              * ftp://ftp3.br.FreeBSD.org/pub/FreeBSD/ (ftp / rsync)

              * ftp://ftp4.br.FreeBSD.org/pub/FreeBSD/ (ftp)

   Coree

           En cas de problemes, merci de contacter le hostmaster
           <hostmaster@kr.FreeBSD.org> pour ce domaine.

              * ftp://ftp.kr.FreeBSD.org/pub/FreeBSD/ (ftp / rsync)

              * ftp://ftp2.kr.FreeBSD.org/pub/FreeBSD/ (ftp /
                http://ftp2.kr.FreeBSD.org/pub/FreeBSD/)

   Danemark

           En cas de problemes, merci de contacter le hostmaster
           <hostmaster@dk.FreeBSD.org> pour ce domaine.

              * ftp://ftp.dk.FreeBSD.org/pub/FreeBSD/ (ftp / ftpv6 /
                http://ftp.dk.FreeBSD.org/pub/FreeBSD/ /
                http://ftp.dk.FreeBSD.org/pub/FreeBSD/)

   Espagne

           En cas de problemes, merci de contacter le hostmaster
           <hostmaster@es.FreeBSD.org> pour ce domaine.

              * ftp://ftp.es.FreeBSD.org/pub/FreeBSD/ (ftp /
                http://ftp.es.FreeBSD.org/pub/FreeBSD/)

              * ftp://ftp3.es.FreeBSD.org/pub/FreeBSD/ (ftp)

   Estonie

           En cas de problemes, merci de contacter le hostmaster
           <hostmaster@ee.FreeBSD.org> pour ce domaine.

              * ftp://ftp.ee.FreeBSD.org/pub/FreeBSD/ (ftp)

   Finlande

           En cas de problemes, merci de contacter le hostmaster
           <hostmaster@fi.FreeBSD.org> pour ce domaine.

              * ftp://ftp.fi.FreeBSD.org/pub/FreeBSD/ (ftp)

   France

           En cas de problemes, merci de contacter le hostmaster
           <hostmaster@fr.FreeBSD.org> pour ce domaine.

              * ftp://ftp.fr.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp1.fr.FreeBSD.org/pub/FreeBSD/ (ftp /
                http://ftp1.fr.FreeBSD.org/pub/FreeBSD/ / rsync)

              * ftp://ftp3.fr.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp5.fr.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp6.fr.FreeBSD.org/pub/FreeBSD/ (ftp / rsync)

              * ftp://ftp7.fr.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp8.fr.FreeBSD.org/pub/FreeBSD/ (ftp)

   Grece

           En cas de problemes, merci de contacter le hostmaster
           <hostmaster@gr.FreeBSD.org> pour ce domaine.

              * ftp://ftp.gr.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp2.gr.FreeBSD.org/pub/FreeBSD/ (ftp)

   Hong-Kong
              * ftp://ftp.hk.FreeBSD.org/pub/FreeBSD/ (ftp)

   Irlande

           En cas de problemes, merci de contacter le hostmaster
           <hostmaster@ie.FreeBSD.org> pour ce domaine.

              * ftp://ftp3.ie.FreeBSD.org/pub/FreeBSD/ (ftp / rsync)

   Japon

           En cas de problemes, merci de contacter le hostmaster
           <hostmaster@jp.FreeBSD.org> pour ce domaine.

              * ftp://ftp.jp.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp2.jp.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp3.jp.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp4.jp.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp5.jp.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp6.jp.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp7.jp.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp8.jp.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp9.jp.FreeBSD.org/pub/FreeBSD/ (ftp)

   Lettonie

           En cas de problemes, merci de contacter le hostmaster
           <hostmaster@lv.FreeBSD.org> pour ce domaine.

              * ftp://ftp.lv.FreeBSD.org/pub/FreeBSD/ (ftp /
                http://ftp.lv.FreeBSD.org/pub/FreeBSD/)

   Lituanie

           En cas de problemes, merci de contacter le hostmaster
           <hostmaster@lt.FreeBSD.org> pour ce domaine.

              * ftp://ftp.lt.FreeBSD.org/pub/FreeBSD/ (ftp /
                http://ftp.lt.FreeBSD.org/pub/FreeBSD/)

   Norvege

           En cas de problemes, merci de contacter le hostmaster
           <hostmaster@no.FreeBSD.org> pour ce domaine.

              * ftp://ftp.no.FreeBSD.org/pub/FreeBSD/ (ftp / rsync)

   Nouvelle-Zelande
              * ftp://ftp.nz.FreeBSD.org/pub/FreeBSD/ (ftp /
                http://ftp.nz.FreeBSD.org/pub/FreeBSD/)

   Pays-Bas

           En cas de problemes, merci de contacter le hostmaster
           <hostmaster@nl.FreeBSD.org> pour ce domaine.

              * ftp://ftp.nl.FreeBSD.org/pub/FreeBSD/ (ftp /
                http://ftp.nl.FreeBSD.org/os/FreeBSD/ / rsync)

              * ftp://ftp2.nl.FreeBSD.org/pub/FreeBSD/ (ftp)

   Pologne

           En cas de problemes, merci de contacter le hostmaster
           <hostmaster@pl.FreeBSD.org> pour ce domaine.

              * ftp://ftp.pl.FreeBSD.org/pub/FreeBSD/ (ftp)

   Republique Tcheque

           En cas de problemes, merci de contacter le hostmaster
           <hostmaster@cz.FreeBSD.org> pour ce domaine.

              * ftp://ftp.cz.FreeBSD.org/pub/FreeBSD/ (ftp /
                ftp://ftp.cz.FreeBSD.org/pub/FreeBSD/ /
                http://ftp.cz.FreeBSD.org/pub/FreeBSD/ /
                http://ftp.cz.FreeBSD.org/pub/FreeBSD/ / rsync / rsyncv6)

              * ftp://ftp2.cz.FreeBSD.org/pub/FreeBSD/ (ftp /
                http://ftp2.cz.FreeBSD.org/pub/FreeBSD/)

   Royaume-Uni

           En cas de problemes, merci de contacter le hostmaster
           <hostmaster@uk.FreeBSD.org> pour ce domaine.

              * ftp://ftp.uk.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp2.uk.FreeBSD.org/pub/FreeBSD/ (ftp /
                rsync://ftp2.uk.FreeBSD.org/ftp.freebsd.org/pub/FreeBSD/)

              * ftp://ftp3.uk.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp4.uk.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp5.uk.FreeBSD.org/pub/FreeBSD/ (ftp)

   Russie

           En cas de problemes, merci de contacter le hostmaster
           <hostmaster@ru.FreeBSD.org> pour ce domaine.

              * ftp://ftp.ru.FreeBSD.org/pub/FreeBSD/ (ftp /
                http://ftp.ru.FreeBSD.org/FreeBSD/ / rsync)

              * ftp://ftp2.ru.FreeBSD.org/pub/FreeBSD/ (ftp /
                http://ftp2.ru.FreeBSD.org/pub/FreeBSD/ / rsync)

              * ftp://ftp4.ru.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp5.ru.FreeBSD.org/pub/FreeBSD/ (ftp /
                http://ftp5.ru.FreeBSD.org/pub/FreeBSD/ / rsync)

              * ftp://ftp6.ru.FreeBSD.org/pub/FreeBSD/ (ftp)

   Slovenie

           En cas de problemes, merci de contacter le hostmaster
           <hostmaster@si.FreeBSD.org> pour ce domaine.

              * ftp://ftp.si.FreeBSD.org/pub/FreeBSD/ (ftp)

   Suede

           En cas de problemes, merci de contacter le hostmaster
           <hostmaster@se.FreeBSD.org> pour ce domaine.

              * ftp://ftp.se.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp2.se.FreeBSD.org/pub/FreeBSD/ (ftp /
                rsync://ftp2.se.FreeBSD.org/)

              * ftp://ftp3.se.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp4.se.FreeBSD.org/pub/FreeBSD/ (ftp /
                ftp://ftp4.se.FreeBSD.org/pub/FreeBSD/ /
                http://ftp4.se.FreeBSD.org/pub/FreeBSD/ /
                http://ftp4.se.FreeBSD.org/pub/FreeBSD/ /
                rsync://ftp4.se.FreeBSD.org/pub/FreeBSD/ /
                rsync://ftp4.se.FreeBSD.org/pub/FreeBSD/)

              * ftp://ftp6.se.FreeBSD.org/pub/FreeBSD/ (ftp /
                http://ftp6.se.FreeBSD.org/pub/FreeBSD/)

   Suisse

           En cas de problemes, merci de contacter le hostmaster
           <hostmaster@ch.FreeBSD.org> pour ce domaine.

              * ftp://ftp.ch.FreeBSD.org/pub/FreeBSD/ (ftp /
                http://ftp.ch.FreeBSD.org/pub/FreeBSD/)

   Taiwan

           En cas de problemes, merci de contacter le hostmaster
           <hostmaster@tw.FreeBSD.org> pour ce domaine.

              * ftp://ftp.tw.FreeBSD.org/pub/FreeBSD/ (ftp /
                ftp://ftp.tw.FreeBSD.org/pub/FreeBSD/ / rsync / rsyncv6)

              * ftp://ftp2.tw.FreeBSD.org/pub/FreeBSD/ (ftp /
                ftp://ftp2.tw.FreeBSD.org/pub/FreeBSD/ /
                http://ftp2.tw.FreeBSD.org/pub/FreeBSD/ /
                http://ftp2.tw.FreeBSD.org/pub/FreeBSD/ / rsync / rsyncv6)

              * ftp://ftp4.tw.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp5.tw.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp6.tw.FreeBSD.org/pub/FreeBSD/ (ftp /
                http://ftp6.tw.FreeBSD.org/ / rsync)

              * ftp://ftp7.tw.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp8.tw.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp11.tw.FreeBSD.org/pub/FreeBSD/ (ftp /
                http://ftp11.tw.FreeBSD.org/FreeBSD/)

              * ftp://ftp12.tw.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp13.tw.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp14.tw.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp15.tw.FreeBSD.org/pub/FreeBSD/ (ftp)

   Ukraine
              * ftp://ftp.ua.FreeBSD.org/pub/FreeBSD/ (ftp /
                http://ftp.ua.FreeBSD.org/pub/FreeBSD/)

              * ftp://ftp6.ua.FreeBSD.org/pub/FreeBSD/ (ftp /
                http://ftp6.ua.FreeBSD.org/pub/FreeBSD /
                rsync://ftp6.ua.FreeBSD.org/FreeBSD/)

              * ftp://ftp7.ua.FreeBSD.org/pub/FreeBSD/ (ftp)

   USA

           En cas de problemes, merci de contacter le hostmaster
           <hostmaster@us.FreeBSD.org> pour ce domaine.

              * ftp://ftp1.us.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp2.us.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp3.us.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp4.us.FreeBSD.org/pub/FreeBSD/ (ftp / ftpv6 /
                http://ftp4.us.FreeBSD.org/pub/FreeBSD/ /
                http://ftp4.us.FreeBSD.org/pub/FreeBSD/)

              * ftp://ftp5.us.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp6.us.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp8.us.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp10.us.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp11.us.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp13.us.FreeBSD.org/pub/FreeBSD/ (ftp /
                http://ftp13.us.FreeBSD.org/pub/FreeBSD/ / rsync)

              * ftp://ftp14.us.FreeBSD.org/pub/FreeBSD/ (ftp /
                http://ftp14.us.FreeBSD.org/pub/FreeBSD/)

              * ftp://ftp15.us.FreeBSD.org/pub/FreeBSD/ (ftp)

A.3. CVS anonyme

  A.3.1. Introduction

   CVS anonyme (ou comme on l'appelle egalement, anoncvs) est une de
   fonctionnalite des utilitaires CVS livres avec FreeBSD qui permet la
   synchronisation avec un referentiel CVS sur une machine distante. Elle
   permet, entre autres, aux utilisateurs de FreeBSD, de lire, sans
   autorisation particuliere, les archives disponibles sur l'un des serveurs
   anoncvs officiels du projet FreeBSD. Pour l'utiliser, il suffit simplement
   de definir la variable d'environnement CVSROOT pour qu'elle pointe sur le
   serveur anoncvs approprie, fournir le fameux mot de passe "anoncvs" avec
   la commande cvs login, puis ensuite utiliser la commande cvs(1) pour y
   acceder de la meme maniere qu'`a un referentiel local.

  Note:

   La commande cvs login, stocke les mots de passe utilises pour
   authentification sur le serveur CVS dans un fichier appele .cvspass dans
   votre repertoire HOME. Si ce fichier n'existe pas, vous pourrez obtenir
   une erreur quand vous essaierez d'utiliser cvs login pour la premiere
   fois. Creez juste un fichier .cvspass vide, et relancez la commande.

   Bien que l'on puisse aussi dire que CVSup et anoncvs assurent globalement
   la meme fonction, il y a diverses nuances qui peuvent influencer
   l'utilisateur dans son choix d'une methode de synchronisation. En resume,
   CVSup utilise plus efficacement les ressources reseau et est de loin la
   methode la plus sophistiquee des deux, mais cela a un prix. Pour employer
   CVSup, il faut d'abord installer et configurer un programme client
   specialise avant de pouvoir recuperer quoi que ce soit, et il faut ensuite
   travailler par sous-ensemble relativement importants, que CVSup appelle
   catalogues.

   anoncvs, au contraire, peut etre utilise pour examiner n'importe quoi,
   d'un seul fichier `a un programme particulier (tel que ls ou grep) en
   faisant reference au nom du module CVS. Bien sur, anoncvs n'est bon qu'`a
   lire un referentiel CVS, si vous avez donc l'intention de developper
   localement sur un referentiel partage avec le projet FreeBSD, alors vous
   n'avez d'autre choix que d'utiliser CVSup.

  A.3.2. Utiliser CVS anonyme

   Configurer cvs(1) pour utiliser un referentiel CVS anonyme consiste
   simplement `a definir la variable d'environnement CVSROOT pour qu'elle
   pointe sur l'un des serveurs anoncvs du projet FreeBSD. A la date de
   redaction de ce document, les serveurs suivants sont disponibles:

     * Autriche: :pserver:anoncvs@anoncvs.at.FreeBSD.org:/home/ncvs (Utilisez
       cvs login et entrez le mot de passe "anoncvs" quand on vous le
       demandera.)

     * France: :pserver:anoncvs@anoncvs.fr.FreeBSD.org:/home/ncvs (pserver
       (mot de passe "anoncvs"), ssh (aucun mot de passe))

     * Allemagne: :pserver:anoncvs@anoncvs.de.FreeBSD.org:/home/ncvs (rsh,
       pserver, ssh, ssh/2022)

     * Japon: :pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs (Utilisez
       cvs login et entrez le mot de passe "anoncvs" quand on vous le
       demandera.)

     * Taiwan: :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs (pserver
       (utilisez cvs login and entrez n'importe quel mot de passe quand on
       vous le demandera), ssh (pas de mot de passe))

 SSH2 HostKey: 1024 e8:3b:29:7b:ca:9f:ac:e9:45:cb:c8:17:ae:9b:eb:55 /etc/ssh/ssh_host_dsa_key.pub

     * USA: freebsdanoncvs@anoncvs.FreeBSD.org:/home/ncvs (ssh uniquement -
       pas de mot de passe)

 SSH HostKey: 1024 a1:e7:46:de:fb:56:ef:05:bc:73:aa:91:09:da:f7:f4 root@sanmateo.ecn.purdue.edu
 SSH2 HostKey: 1024 52:02:38:1a:2f:a8:71:d3:f5:83:93:8d:aa:00:6f:65 ssh_host_dsa_key.pub

     * USA: anoncvs@anoncvs1.FreeBSD.org:/home/ncvs (ssh2 uniquement - pas de
       mot de passe)

 SSH2 HostKey: 2048 53:1f:15:a3:72:5c:43:f6:44:0e:6a:e9:bb:f8:01:62 /etc/ssh/ssh_host_dsa_key.pub

   Comme CVS vous permet de recuperer ("check out") pratiquement n'importe
   quelle version des sources de FreeBSD ayant existe (ou, dans certains cas,
   `a venir), vous devez maitriser l'indicateur de revision (-r) de cvs(1) et
   connaitre les valeurs qu'il peut prendre dans le referentiel du projet
   FreeBSD.

   Il y a deux sortes d'etiquettes, les etiquettes de revision et les
   etiquettes de branches. Les etiquettes de revision s'appliquent `a une
   revision particuliere. Leur signification ne varie pas d'un jour `a
   l'autre. Les etiquettes de branche, `a l'inverse, se rapportent `a la
   derniere revision sur une branche particuliere `a un moment donne. Comme
   les etiquettes de branche ne se rapportent pas `a une revision
   particuliere, elles peuvent designer demain quelque chose de different de
   ce qu'elles referencent aujourd'hui.

   Section A.7, << Etiquettes CVS >> presente les etiquettes de revision qui
   peuvent interesser l'utilisateur. Encore une fois, aucune ne s'applique au
   catalogue des logiciels portes puisque ce dernier ne presente pas de
   multiples branches de developpement.

   Quand vous precisez une etiquette de branche, vous obtenez normalement la
   derniere version des fichiers de cette branche de developpement. Si vous
   voulez une version anterieure, vous pouvez l'obtenir en precisant une date
   avec l'indicateur -D date. Reportez-vous aux pages de manuel cvs(1) pour
   plus de details.

  A.3.3. Exemples

   Bien qu'il soit vraiment recommande de lire attentivement les pages de
   manuel de cvs(1) avant de faire quoi que ce soit, voici quelques exemples
   rapides qui vous montrent essentiellement comment utiliser CVS anonyme:

   Exemple A.1. Recuperer quelque chose de -CURRENT (ls(1)):

 % setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs
 % cvs login
 At the prompt, enter any word for << password >>.
 % cvs co ls
          

   Exemple A.2. Utiliser SSH pour recuperer l'arborescence src/:

 % cvs -d freebsdanoncvs@anoncvs.FreeBSD.org:/home/ncvs co src
 The authenticity of host 'anoncvs.freebsd.org (128.46.156.46)' can't be established.
 DSA key fingerprint is 52:02:38:1a:2f:a8:71:d3:f5:83:93:8d:aa:00:6f:65.
 Are you sure you want to continue connecting (yes/no)? yes
 Warning: Permanently added 'anoncvs.freebsd.org' (DSA) to the list of known hosts.

   Exemple A.3. Recuperer la version 6-STABLE de ls(1):

 % setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs
 % cvs login
 At the prompt, enter any word for << password >>.
 % cvs co -rRELENG_6 ls
          

   Exemple A.4. Generer la liste des differences concernant ls(1) (sous forme
   de "diffs unifies") entre differentes versions de FreeBSD

 % setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs
 % cvs login
 At the prompt, enter any word for << password >>.
 % cvs rdiff -u -rRELENG_5_3_0_RELEASE -rRELENG_5_4_0_RELEASE ls
          

   Exemple A.5. Savoir quels autres noms de modules peuvent etre utilises:

 % setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs
 % cvs login
 At the prompt, enter any word for << password >>.
 % cvs co modules
 % more modules/modules
          

  A.3.4. Autres ressources

   Les ressources supplementaires suivantes peuvent etre utiles pour
   apprendre `a se servir de CVS:

     * Guide CVS de Cal Poly.

     * CVS Home, la communaute de developpement et de support de CVS.

     * CVSweb est l'interface Web pour CVS du projet FreeBSD.

A.4. Utiliser CTM

   CTM est une methode pour synchroniser une arborescence de repertoires
   distants avec une arborescence centrale. Elle a ete developpee pour etre
   utilisee avec l'arborescence des sources de FreeBSD, bien que d'autres
   puissent avec le temps la trouver utile pour d'autres besoins. Il existe
   actuellement tres peu, sinon aucune, documentation sur la fac,on de creer
   les deltas, contactez-donc la liste de diffusion ctm-users pour obtenir
   plus d'informations et si vous souhaitez utiliser CTM pour autre chose.

  A.4.1. Pourquoi utiliser CTM?

   CTM vous procurera un exemplaire local de l'arborescence des sources de
   FreeBSD. Il y a plusieurs "moutures" de l'arborescence disponibles. Que
   vous desiriez suivre toute l'arborescence CVS ou seulement une de ses
   branches, CTM peut vous fournir ce dont vous avez besoin. Si vous
   developpez activement sous FreeBSD, mais ne disposez que d'une
   connectivite TCP/IP peu fiable ou n'en avez pas du tout, ou voulez tout
   simplement que les modifications vous soient automatiquement envoyees, CTM
   est ce qu'il vous faut. Il vous faudra jusqu'`a trois deltas par jour sur
   les branches les plus actives. Cependant, vous devriez envisager de vous
   les faire envoyer automatiquement par courrier electronique. La taille des
   mises `a jour est toujours aussi petite que possible. Typiquement moins de
   5KO, occasionnellement (une fois sur 10), entre 10 et 50KO, et de temps `a
   autre, une grosse modification de 100KO ou plus.

   Vous devrez aussi vous tenir au courant des differentes contre-parties
   liees au fait de travailler directement avec les sources en cours de
   developpement plutot qu'avec les versions publiees. C'est particulierement
   vrai si vous choisissez les sources de la branche "-CURRENT". Il est
   recommande de lire Se synchroniser avec la version -CURRENT de FreeBSD.

  A.4.2. Que vous faut-il pour utiliser CTM?

   Vous aurez besoin de deux choses: le programme CTM, et les deltas initiaux
   `a lui fournir (pour mettre `a jour avec la version "courante").

   Le programme CTM fait partie de FreeBSD depuis la publication de la
   version 2.0, et se trouve dans /usr/src/usr.sbin/ctm si vous avez un
   exemplaire des sources en ligne.

   Vous pouvez obtenir les "deltas" `a fournir `a CTM de deux fac,ons, par
   FTP ou par courrier electronique. Si vous avez un acces FTP `a l'Internet,
   les sites suivants supportent l'acces `a CTM:

   ftp://ftp.FreeBSD.org/pub/FreeBSD/CTM/

   ou reportez-vous `a la section Sites miroirs.

   Allez dans le repertoire vous concernant et commencez par telecharger le
   fichier README.

   Si vous souhaitez recuperer vos deltas par courrier electronique:

   Abonnez-vous `a l'une des listes de distribution CTM. ctm-cvs-cur comprend
   toute l'arborescence -CURRENT. ctm-src-4 concerne la branche 4.X, etc...
   (Si vous ne savez pas comment vous abonner `a une liste, cliquez sur le
   nom de la liste ci-dessus ou sur http://lists.FreeBSD.org/mailman/listinfo
   puis cliquez sur la liste `a laquelle vous desirez vous abonner. La page
   devrait contenir toutes les instructions necessaires `a l'abonnement.)

   Des que vous commencez `a recevoir vos mises `a jour CTM par courrier
   electronique, vous pouvez utiliser le programme ctm_rmail pour les
   decompacter et les appliquer. Vous pouvez en fait utiliser directement le
   programme ctm_rmail `a partir d'une entree dans /etc/aliases si vous
   voulez automatiser completement le processus. Consultez les pages de
   manuel de ctm_rmail pour plus de details.

  Note:

   Quelle que soit la methode que vous utilisez pour recuperer les deltas
   CTM, vous devriez vous abonner `a la liste de diffusion ctm-announce. Ce
   sera, dans l'avenir, le seul endroit ou les annonces concernant le
   fonctionnement du systeme CTM seront faites. Cliquez sur le nom de la
   liste et suivez les instructions pour s'inscrire `a la liste.

  A.4.3. Utiliser CTM pour la premiere fois

   Avant de pouvoir utiliser les deltas CTM, il vous faut un point de depart
   pour appliquer les deltas generes `a partir de l`a.

   Tout d'abord vous devez determiner ce que vous avez dej`a. Tout le monde
   peut partir d'un repertoire "vide". Vous devez utiliser un delta "Empty"
   (vide) au depart pour debuter votre arborescence supportee par CTM. Il fut
   question que l'un de ces deltas de depart soit distribue sur le CD,
   cependant ce n'est actuellement pas le cas.

   Puisque les arborescences representent plusieurs dizaines de megaoctets,
   vous prefererez commencer avec ce que vous avez dej`a sous la main. Si
   vous disposez d'une version de FreeBSD sur CD, vous pouvez copier ou
   extraire les sources initiales qui s'y trouvent. Cela evitera un transfert
   de donnees consequent.

   Vous pouvez reconnaitre ces deltas de transition au X qui suit leur numero
   de sequence (src-cur.3210XEmpty.gz par exemple). La denomination apres le
   X correspond `a l'origine de votre "racine" initiale. Empty est un
   repertoire vide. La regle est qu'une transition de base `a partir de Empty
   est generee tous les 100 deltas. Au passage, elles sont volumineuses! De
   70 `a 80 megaoctets de donnees compressees avec gzip est une taille
   habituelle pour les deltas XEmpty.

   Une fois que vous avez selectionne un delta initial `a partir duquel
   commencer, il vous faudra egalement tous les deltas de numero superieur
   qui le suivent.

  A.4.4. Utiliser CTM au quotidien

   Pour appliquer les deltas, tapez simplement:

 # cd /ou/vous/voulez/mettre/les/fichiers
 # ctm -v -v /ou/vous/mettez/vos/deltas/src-xxx.*

   CTM reconnait les deltas qui ont ete compresses avec gzip, vous n'avez
   donc pas besoin de les decompresser avant, ce qui economise de l'espace
   disque.

   A moins d'etre absolument sur du resultat, CTM ne touchera pas `a votre
   arborescence. Pour controler la validite d'un delta, vous pouvez egalement
   utiliser l'indicateur -c et CTM ne modifiera alors pas votre arborescence;
   il verifiera simplement l'integrite du delta et regardera s'il peut
   s'appliquer proprement `a votre arborescence en l'etat.

   Il y a aussi d'autres option pour CTM, voyez les pages de manuel ou lisez
   les sources pour plus d'informations.

   C'est `a peu pres tout. Chaque fois que vous recevez un delta, passez-le
   `a CTM pour tenir `a jour votre arborescence des sources.

   N'effacez pas les deltas s'il vous est difficile de les telecharger de
   nouveau. Vous pouvez en avoir besoin si quelque chose mauvais se produit.
   Meme si vous n'avez que des disquettes, envisagez d'utiliser fdwrite(1)
   pour en faire une copie.

  A.4.5. Conserver vos modifications locales

   Si vous etes developpeur vous voudrez experimenter et modifier des
   fichiers de l'arborescence des sources. CTM supporte de fac,on limitee les
   modifications locales: avant de controler l'existence d'un fichier foo, il
   regarde tout d'abord s'il y a un fichier foo.ctm. Si ce fichier existe,
   CTM l'utilisera au lieu de foo.

   Ce comportement vous permet de conserver de fac,on simple des
   modifications locales: copiez simplement les fichiers que vous envisagez
   de modifier dans des fichiers de meme nom, mais avec le suffixe .ctm. Vous
   pouvez ensuite bidouiller tranquillement le code, pendant que CTM
   maintient `a jour le fichier .ctm.

  A.4.6. D'autres options interessantes de CTM

    A.4.6.1. Savoir avec precision ce que va modifier une mise `a jour

   Vous pouvez connaitre la liste des modifications que CTM appliquera `a
   votre archive des sources en utilisant CTM avec l'option -l.

   C'est utile si vous voulez conserver la trace des modifications, pre- ou
   post- modifier les fichiers concernes, ou vous vous sentez un tantinet
   paranoiaque.

    A.4.6.2. Faire des sauvegardes avant la mise `a jour

   Parfois vous voudrez sauvegarder tous les fichiers qui seraient toucher
   par une mise `a jour CTM.

   Avec l'option -B fichier_de_sauvegarde, CTM sauvegarde tous les fichiers
   que seraient modifies par delta CTM donne dans fichier_de_sauvegarde.

    A.4.6.3. Restreindre la liste des fichiers touches par une mise `a jour

   Parfois vous voudrez restreindre le champ d'application d'une mise `a jour
   CTM, ou serez interesse `a n'extraire que quelques fichiers d'une sequence
   de deltas.

   Vous pouvez controler la liste de fichiers sur laquelle travaillera CTM en
   donnant comme filtre une expression reguliere avec les options -e et -x.

   Par exemple, pour extraire une version `a jour de lib/libc/Makefile de la
   serie de deltas CTM que vous avez sauvegarde, lancez les commandes:

 # cd /where/ever/you/want/to/extract/it/
 # ctm -e '^lib/libc/Makefile' ~ctm/src-xxx.*

   Pour chaque fichier d'un delta CTM, les options -e et -x sont appliquees
   dans l'ordre donne sur la ligne de commande. Le fichier est traite par CTM
   uniquement s'il est selectionne apres application des options -e et -x.

  A.4.7. Perspectives pour CTM

   Il y en a des tonnes:

     * Utiliser une methode d'authentification au systeme CTM pour detecter
       la substitution de mises `a jour.

     * Faire le menage dans les options de CTM, elles commencent `a engendrer
       de la confusion et `a contredire l'intuition.

  A.4.8. Divers

   Il existe aussi une sequence de deltas pour le catalogue des logiciels
   portes, mais elle n'a pas rec,ue beaucoup d'echo jusqu'ici.

  A.4.9. Miroirs CTM

   CTM/FreeBSD est disponible via FTP anonyme sur les miroirs suivants. Si
   vous faites le choix de vous procurer CTM via FTP anonyme, utilisez s'il
   vous plait un site proche de vous.

   En cas de probleme, contactez la liste de diffusion ctm-users.

   Californie, Bay Area, source officielle
              * ftp://ftp.FreeBSD.org/pub/FreeBSD/development/CTM/

   Afrique du Sud, serveur de sauvegarde pour les anciens deltas
              * ftp://ftp.za.FreeBSD.org/pub/FreeBSD/CTM/

   Taiwan/R.O.C.
              * ftp://ctm.tw.FreeBSD.org/pub/FreeBSD/development/CTM/

              * ftp://ctm2.tw.FreeBSD.org/pub/FreeBSD/development/CTM/

              * ftp://ctm3.tw.FreeBSD.org/pub/FreeBSD/development/CTM/

   Si vous n'avez pas trouve de miroir proche de vous, ou si le miroir est
   incomplet, essayez d'utiliser un moteur de recherche comme alltheweb.

A.5. Utiliser CVSup

  A.5.1. Introduction

   CVSup est un ensemble de logiciels pour la distribution et la mise `a jour
   d'arborescences de sources `a partir d'un referentiel CVS principal sur
   une machine serveur distante. Les sources de FreeBSD sont archivees sous
   un referentiel CVS sur une machine centrale de developpement en
   Californie. Grace `a CVSup, les utilisateurs de FreeBSD peuvent facilement
   tenir `a jour leur propre arborescence de sources.

   CVSup utilise le modele pull de mise `a jour. Dans ce schema, chaque
   client reclame les mises `a jour au serveur, si et quand il le souhaite.
   Le serveur attend passivement les demandes de mises `a jour de ses
   clients. Toutes les mises `a jour sont donc faites `a la demande du
   client. Le serveur n'envoie jamais de mise `a jour non sollicitee. Les
   utilisateurs doivent soit executer le client CVSup `a la main pour obtenir
   une mise `a jour, soit mettre en oeuvre une tache cron pour l'executer
   automatiquement et `a intervalles reguliers.

   Le terme CVSup, avec les majuscules, designe l'ensemble du logiciel. Ses
   principales composantes sont le client cvsup qui s'execute sur les
   machines de chaque utilisateur, et le serveur cvsupd, qui tourne sur tous
   les sites miroir de FreeBSD.

   En lisant la documentation et les listes de diffusion de FreeBSD, vous
   trouverez des references `a sup. sup etait le predecesseur de CVSup, et
   remplissait la meme fonction. CVSup est utilise de la meme fac,on que sup
   et, emploie de fait des fichiers de configuration qui sont compatibles
   avec ceux de sup. sup n'est plus utilise pour le projet FreeBSD, parce que
   CVSup est `a la fois plus rapide et plus souple.

  Note:

   L'utilitaire csup est une reecriture en C du logiciel CVSup. Son plus
   grand avantage est d'etre plus rapide et de ne pas dependre du langage
   Modula-3, vous n'avez donc pas besoin de l'installer. De plus si vous
   utilisez FreeBSD 6.2 ou une version suivante, vous pouvez directement
   utiliser cet utilitaire puisqu'il fait partie du systeme de base. Les
   anciennes versions de FreeBSD ne disposent pas de csup(1) dans leur
   systeme de base, mais vous pouvez facilement installer le logiciel porte
   net/csup, ou le paquetage pre-compile correspondant. L'utilitaire csup ne
   supporte pas, cependant, le mode CVS. Si vous desirez dupliquer
   l'integralite de depots, vous aurez toujours besoin de CVSup. Si vous avez
   decide d'utiliser csup, passez les etapes concernant l'installation de
   CVSup et remplacez les references `a CVSup par csup dans le reste de cette
   section.

  A.5.2. Installation

   La methode la plus simple pour installer CVSup est d'utiliser la version
   pre-compilee net/cvsup du catalogue des logiciels portes de FreeBSD. Si
   vous preferez compiler CVSup `a partir des sources, vous pouvez
   directement utiliser le logiciel porte net/cvsup. Cependant soyez averti:
   le logiciel porte net/cvsup est ecrit en Modula-3, qui demande un temps et
   un espace disque non negligeables pour le telecharger et le compiler.

  Note:

   Si vous avez l'intention d'utiliser CVSup sur une machine qui ne disposera
   pas de XFree86(TM) ou Xorg, comme un serveur, assurez-vous que le logiciel
   porte de n'incluera pas l'interface graphique ("GUI") de CVSup,
   net/cvsup-without-gui.

   Si vous voulez installer csup sous FreeBSD 6.1 et version precedentes,
   vous pouvez utiliser le paquetage pre-compile net/csup du catalogue des
   logiciels portes. Si vous preferez compiler csup `a partir des sources,
   vous pouvez directement utiliser le logiciel porte net/csup.

  A.5.3. Configuration de CVSup

   Le fonctionnement de CVSup est controle par un fichier de configuration
   appele supfile. Il y a des exemples de fichiers supfile dans le repertoire
   /usr/share/examples/cvsup/.

   Les informations du fichier supfile repondent pour CVSup aux question
   suivantes:

     * Quels fichiers voulez-vous telecharger?

     * Quelles versions de ces fichiers voulez-vous?

     * D'ou voulez-vous les telecharger?

     * Ou voulez-vous les mettre sur votre machine?

     * Ou voulez-vous mettre les fichiers d'etat de votre machine?

   Dans les sections suivantes, nous allons renseigner un fichier supfile
   typique en repondant une `a une `a chacune de ces questions. Commenc,ons
   par decrire la structure d'ensemble d'un fichier supfile.

   Un fichier supfile est un fichier texte. Les commentaires debutent par un
   # et se prolongent jusqu'`a la fin de la ligne. Les lignes vides ou qui ne
   contiennent que des commentaires sont ignorees.

   Les autres lignes decrivent les ensembles de fichiers que l'utilisateur
   souhaite recevoir. Ces lignes commencent par le nom d'un "catalogue" -
   collection, un regroupement logique de fichiers defini par le serveur. Le
   nom du catalogue dit au serveur quels fichiers vous voulez. Ce nom est
   eventuellement suivi d'un ou plusieurs champs, separes par un espace. Ces
   champs repondent aux questions listees ci-dessus. Il y deux types de
   champs: des indicateurs et des valeurs. Un indicateur est un mot-cle
   autonome, e.g., delete ou compress. Une valeur commence aussi par un
   mot-cle, mais il est imperativement suivi sans espace par un = et un
   deuxieme mot. Par exemple, release=cvs est un champ definissant une
   valeur.

   Un fichier supfile specifie en general plus d'un catalogue `a telecharger.
   Une fac,on de construire un fichier supfile consiste `a preciser
   explicitement tous les champs necessaires pour chaque catalogue.
   Cependant, cela tend `a donner des fichiers supfile avec des lignes assez
   longues, et ce n'est pas tres pratique parce que la plupart des champs
   sont les memes pour tous les catalogues du fichier supfile. CVSup fournit
   un mecanisme pour s'affranchir de ce probleme. Les lignes qui commencent
   par le nom du pseudo-catalogue special *default servent `a definir les
   indicateurs et les valeurs qui seront pris par defaut pour les catalogues
   listes ensuite dans le fichier supfile. Une valeur par defaut peut-etre
   surchargee pour un catalogue particulier, en associant au catalogue
   lui-meme une valeur differente. Les valeurs par defaut peuvent egalement
   etre redefinies, ou bien on peut en definir de nouvelles, en cours de
   fichier supfile, par de nouvelles lignes *default.

   Sachant cela, nous allons maintenant mettre au point un fichier supfile
   pour telecharger et mettre `a jour l'arborescence principale de
   FreeBSD-CURRENT.

     * Quels fichiers voulez-vous telecharger?

       Les fichiers disponibles via CVSup sont regroupes par "catalogues" -
       collections. Les catalogues disponibles sont decrits dans la section
       suivante. Dans notre exemple, nous souhaitons recevoir toute
       l'arborescence principale du systeme FreeBSD. Il existe un unique gros
       catalogue src-all qui correspond `a tout cela. Pour commencer `a
       renseigner notre fichier supfile, nous listons simplement les
       catalogues, un par ligne (dans notre cas, une seule ligne):

 src-all

     * Quelle(s) version(s) voulez-vous telecharger?

       Avec CVSup, vous pouvez obtenir pratiquement n'importe quelle version
       qui ait existe des sources. C'est possible parce que le serveur cvsupd
       travaille directement `a partir du referentiel CVS, qui contient
       toutes les versions. Vous indiquez quelle version vous voulez en
       utilisant les valeurs tag= et date=.

  Avertissement:

       Faites tres attention `a definir correctement la valeur tag=.
       Certaines etiquettes ne s'appliquent qu'`a certains catalogues. Si
       l'etiquette que vous donnez n'est pas valable ou mal orthographiee,
       CVSup effacera des fichiers que vous ne vouliez probablement pas
       supprimer. En particulier, n'utilisez que tag=. pour les catalogues
       ports-*.

       Les valeurs donnees avec tag= sont des etiquettes symboliques definies
       dans le referentiel. Il y a deux sortes d'etiquettes, les etiquettes
       de revision et les etiquettes de branches. Les etiquettes de revision
       s'appliquent `a une revision particuliere. Leur signification ne varie
       pas d'un jour `a l'autre. Les etiquettes de branches, `a l'inverse, se
       rapportent `a la derniere revision sur une branche particuliere `a un
       moment donne. Comme les etiquettes de branches ne se rapportent pas `a
       une revision particuliere, elles peuvent designer demain quelque chose
       de different de ce qu'elles referencent aujourd'hui.

       Section A.7, << Etiquettes CVS >> contient les etiquettes de branches
       qui peuvent interesser les utilisateurs. Quand on specifie une
       etiquette dans le fichier de configuration de CVSup, elle doit etre
       precedee du champ tag= (RELENG_4 deviendra tag=RELENG_4). Gardez `a
       l'esprit que seule l'etiquette tag=. n'a de signification pour le
       catalogue des logiciels portes.

  Avertissement:

       Faites tres attention `a mentionner precisement l'etiquette exacte.
       CVSup ne sait differencier une etiquette valide d'une etiquette qui ne
       l'est pas. Si vous orthographiez mal l'etiquette, CVSup se comportera
       comme si vous aviez donne une etiquette valide qui ne se refere `a
       aucun fichier. Dans ce cas il supprimera toutes les sources que vous
       avez dej`a.

       Lorsque vous indiquez une etiquette de branche, vous recevez
       normalement les dernieres versions des fichiers sur cette branche de
       developpement. Si vous voulez recuperer des version anterieures, vous
       pouvez le faire en donnant une date avec le champ date=. La page de
       manuel de cvsup(1) vous expliquent comment le faire.

       Dans notre exemple, nous desirons obtenir FreeBSD-CURRENT. Nous
       ajoutons alors la ligne suivante au debut de notre fichier supfile:

 *default tag=.

       Il existe un cas particulier important qui se produit lorsque que l'on
       ne specifie ni le champ tag= ni le champ date=. Dans ce cas, vous
       obtenez alors les fichiers RCS directement du referentiel CVS du
       serveur, plutot que de recevoir une version donnee. Les developpeurs
       preferent generalement cette fac,on de travailler. En maintenant une
       version du referentiel lui-meme sur leur systeme, ils ont la
       possibilite de consulter l'historique des revisions et d'acceder aux
       versions anterieures des fichiers. Cet avantage ne s'obtient cependant
       qu'au prix d'une consommation importante d'espace disque.

     * D'ou voulez-vous les telecharger?

       Nous employons le champ host= pour dire `a cvsup ou recuperer ses
       mises `a jour. N'importe quel des sites miroir CVSup fera l'affaire,
       bien que vous devriez essayer de choisir un site proche de vous. Dans
       cet exemple, nous utiliserons un site fictif de distribution de
       FreeBSD cvsup99.FreeBSD.org:

 *default host=cvsup99.FreeBSD.org

       Vous devrez changer le site pour un qui existe reellement avant
       d'executer CVSup. Lors de l'execution de cvsup, vous pouvez surcharger
       cette definition sur la ligne de commande avec l'option -h
       nom_de_machine.

     * Ou voulez-vous les mettre sur votre machine?

       Le champ prefix= dit `a cvsup ou mettre les fichiers qu'il obtient.
       Dans l'exemple, nous mettrons les fichiers source directement dans
       notre arborescence des sources, /usr/src. Le repertoire src est dej`a
       implicitement defini dans les catalogues que nous avons choisis de
       telecharger, voici donc la definition correcte:

 *default prefix=/usr

     * Ou cvsup doit-il mettre les fichiers d'etat?

       Le client CVSup tient `a jour des fichiers d'etat dans ce qui est
       appele le repertoire de "base". Ces fichiers permettent `a CVSup de
       travailler plus efficacement en gardant la trace des modifications que
       vous avez dej`a rec,ues. Nous utiliserons le repertoire de base
       standard, /var/db:

 *default base=/var/db

       Si votre repertoire de base n'existe pas encore, c'est le moment de le
       creer. Le client cvsup refusera de s'executer si le repertoire de base
       n'existe pas.

     * Diverses autres options de configuration dans le fichier supfile:

       Il y a une autre ligne d'instruction qui doit normalement figurer dans
       le fichier supfile:

 *default release=cvs delete use-rel-suffix compress

       release=cvs dit au serveur d'obtenir les informations du referentiel
       principal de FreeBSD. C'est quasiment toujours le cas, mais il existe
       d'autres possibilites qui sortent du cadre du present document.

       delete donne `a CVSup l'autorisation de supprimer des fichiers. Vous
       devriez toujours utiliser cette possibilite, de sorte que CVSup puisse
       vraiment maintenir `a jour votre arborescence des sources. CVSup
       veille `a ne supprimer que les fichiers qu'il maintient. Les fichiers
       supplementaires que vous pourriez avoir ne seront pas touches.

       use-rel-suffix est... esoterique. Si vous voulez vraiment savoir de
       quoi il retourne, lisez la page de manuel de cvsup(1). Sinon, mettez
       cet indicateur et ne vous en souciez pas plus.

       compress permet d'utiliser un algorithme de compression de type
       gzip(1) sur la ligne de communication. Si votre connexion a la vitesse
       d'une ligne T1 ou plus, vous ne devriez probablement pas utiliser la
       compression. Sinon, cela facilite substantiellement les choses.

     * Assembler les morceaux:

       Voici le fichier supfile de notre exemple en entier:

 *default tag=.
 *default host=cvsup99.FreeBSD.org
 *default prefix=/usr
 *default base=/var/db
 *default release=cvs delete use-rel-suffix compress

 src-all

    A.5.3.1. Le fichier refuse

   Comme mentionne ci-dessus, CVSup utilise une methode de type pull.
   Fondamentalement, cela signifie que vous vous connectez au serveur CVSup,
   ce dernier dit, "Voici ce que vous pouvez telecharger...", puis votre
   client repond "Ok, je prendrai ceci, ceci, ceci et cela". Dans la
   configuration par defaut, le client CVSup telechargera chaque fichier
   associe avec le catalogue et l'etiquette que vous avez choisi dans le
   fichier de configuration. Cependant cela ne correspond pas toujours `a ce
   que vous desirez, tout particulierement si vous mettez `a jour les
   arborescences doc, ports, ou www - la plupart des personnes sont
   incapables de lire quatre ou cinq langues differentes, et donc elles n'ont
   pas besoin de telecharger les fichiers specifiques `a certaines langues.
   Si vous mettez `a jour le catalogue des logiciels portes, vous pouvez
   remedier `a cela en specifiant chaque catalogue individuellement (e.g.,
   ports-astrology, ports-biology, etc au lieu de specifier simplement
   ports-all). Cependant puisque les arborescences doc et www ne disposent
   pas de catalogues specifiques `a chaque langue, vous devez utiliser une
   des nombreuses fonctions de CVSup: le fichier refuse.

   Le fichier refuse indique essentiellement `a CVSup qu'il ne doit pas
   telecharger chaque fichier d'un catalogue; en d'autre termes, il dit au
   client de refuser certains fichiers du serveur. Le fichier refuse peut
   etre trouve (ou, si vous n'en disposez pas encore d'un, doit etre place)
   dans base/sup/. base est defini dans votre supfile; notre repertoire base
   est defini en tant que /var/db ce qui signifie que le fichier refuse est
   par defaut /var/db/sup/refuse.

   Le fichier refuse a un format tres simple; il contient tout simplement les
   noms des fichiers ou des repertoires que vous ne desirez pas rapatrier.
   Par exemple, si vous ne pouvez parler d'autres langues que l'anglais ou un
   peu d'allemand, et vous ne ressentez pas le besoin de lire la traduction
   en allemand de la documentation, vous pouvez mettre ce qui suit dans le
   fichier refuse:

 doc/bn_*
 doc/da_*
 doc/de_*
 doc/el_*
 doc/es_*
 doc/fr_*
 doc/it_*
 doc/ja_*
 doc/nl_*
 doc/no_*
 doc/pl_*
 doc/pt_*
 doc/ru_*
 doc/sr_*
 doc/tr_*
 doc/zh_*

   et ainsi de suite pour les autres langues (vous pouvez en trouver une
   liste complete en parcourant le referentiel CVS de FreeBSD).

   Avec cette fonction tres utile, les utilisateurs disposant d'une connexion
   lente ou payant le temps de connexion `a la minute seront en mesure
   d'economiser de precieuses minutes comme ils n'auront plus du tout besoin
   de telecharger des fichiers qu'ils n'utiliseront jamais. Pour plus
   d'information sur les fichiers refuse et d'autres caracteristiques
   interessantes de CVSup, consultez sa page de manuel.

  A.5.4. Executer CVSup

   Vous etes maintenant pret `a essayer de faire une mise `a jour. La ligne
   de commande `a utiliser est tres simple:

 # cvsup supfile

   ou supfile est bien sur le nom du fichier supfile que vous venez de creer.
   Si vous etes sous X11, cvsup affichera une interface graphique avec des
   boutons pour les operations courantes. Appuyez sur le bouton go et suivez
   le deroulement des operations.

   Comme, dans cet l'exemple, vous mettez directement `a jour votre
   arborescence /usr/src, vous devrez executer le programme en tant que root
   de fac,on `a ce que cvsup ait le droit de mettre `a jour vos fichiers.
   Comme vous venez juste de creer votre fichier de configuration et n'avez
   encore jamais utilise le programme, il est comprehensible que cela vous
   rende nerveux. Il est facile de faire un essai sans toucher `a vos
   precieux fichiers. Creez juste un nouveau repertoire quelque part et
   donnez-le en argument supplementaire sur la ligne de commande:

 # mkdir /var/tmp/dest
 # cvsup supfile /var/tmp/dest

   Le repertoire indique sera pris comme destination pour tous les fichiers
   modifies. CVSup examinera les fichiers habituels dans /usr/src, mais ne
   les modifiera pas et n'en supprimera aucun. Les modifications atterriront
   dans /var/tmp/dest/usr/src. CVSup ne touchera pas non plus `a ses fichiers
   d'etat dans le repertoire de base, lorsqu'il est invoque de cette maniere.
   Les nouvelles versions de ces fichiers iront dans le repertoire indique. A
   partir du moment ou vous avez les les droits en lecture sur /usr/src, vous
   n'avez pas besoin d'etre root pour faire ce genre d'essai.

   Si vous n'etes pas sous X11, ou si vous n'aimez tout simplement pas les
   interfaces graphiques, vous devrez ajouter quelques options
   supplementaires sur la ligne de commande de cvsup:

 # cvsup -g -L 2 supfile

   L'option -g dit `a CVSup de ne pas utiliser son interface graphique. C'est
   automatique si vous n'etes pas sous X11, sinon vous devez le preciser.

   L'option-L 2 dit `a CVSup d'afficher le detail de ce qu'il est en train de
   faire. Il y a trois niveaux de trace, de -L 0 `a -L 2. La valeur par
   defaut est de 0, ce qui equivaut `a n'emettre que les messages d'erreur.

   Il y a de nombreuses autres option disponibles. Pour en obtenir un resume,
   tapez cvsup -H. Pour une description plus detaillee, reportez-vous aux
   pages de manuel.

   Une fois que vous etes satisfait de la fac,on dont se passent les mises `a
   jour, vous pouvez mettre en place une execution de CVSup `a intervalles
   reguliers en utilisant cron(8). Bien evidemment, vous ne devez pas laisser
   CVSup utiliser don interface graphique quand vous le lancez depuis
   cron(8).

  A.5.5. Catalogue de fichiers CVSup

   Les catalogues de fichiers disponibles via CVSup sont organises
   hierarchiquement. Il y a quelques gros catalogues, qui sont divises en
   plus petits sous-catalogues. Recevoir un gros catalogue equivaut `a
   recevoir chacun de ces sous-catalogues. Les relations hierarchiques entre
   les sous-catalogues sont decrites par les indentations dans la liste
   ci-dessous.

   Les catalogues habituellement les plus employes sont src-all, et
   ports-all. Les autres catalogues ne sont utilises que par de petits
   groupes de personnes pour des besoins particuliers, et certains sites
   miroir ne les mettent pas `a disposition.

   cvs-all release=cvs

           Le referentiel CVS principal de FreeBSD, incluant les logiciels de
           chiffrement.

                distrib release=cvs

                        Les fichiers ayant trait `a la distribution et `a la
                        mise en place de sites miroir FreeBSD.

                doc-all release=cvs

                        Les sources du manuel FreeBSD et d'autres
                        documentations. Cela de comprend pas les fichiers
                        pour le site Web de FreeBSD.

                ports-all release=cvs

                        Le catalogue des logiciels portes de FreeBSD.

  Important:

                        Si vous ne voulez pas mettre `a jour l'integralite du
                        catalogue ports-all (l'integralite du catalogue des
                        logiciels portes), mais utiliser un des
                        sous-catalogues listes ci-dessous, assurez-vous de
                        toujours mettre `a jour le sous-catalogue ports-base!
                        Des qu'il y a un changement dans l'infrastructure de
                        compilation des logiciels portes representee par
                        ports-base, il est certain que ces changements seront
                        utilises par un logiciel porte tres rapidement. Donc,
                        si vous ne mettez `a jour que les logiciels portes en
                        tant que tel et qu'ils utilisent certains des
                        changements, il y a de grandes chances pour que leur
                        compilation echoue avec de mysterieux messages
                        d'erreur. La premiere chose `a faire dans ce cas est
                        de verifier que votre sous-catalogue ports-base est
                        `a jour.

  Important:

                        Si vous voulez construire votre propre version locale
                        du fichier ports/INDEX, vous devez accepter le
                        catalogue ports-all (l'integralite du catalogue des
                        logiciels portes). La construction de ports/INDEX
                        avec une arborescence partielle n'est pas supportee.
                        Consultez la FAQ.

                             ports-accessibility release=cvs

                                     Logiciels pour utilisateurs handicapees.

                             ports-arabic release=cvs

                                     Support pour l'arabe.

                             ports-archivers release=cvs

                                     Outils d'archivage.

                             ports-astro release=cvs

                                     Logiciels d'astronomie.

                             ports-audio release=cvs

                                     Support du son.

                             ports-base release=cvs

                                     L'infrastructure de compilation du
                                     catalogue des logiciels portes - divers
                                     fichiers situes dans les repertoires Mk/
                                     et Tools/ sous-repertoires de la
                                     hierarchie /usr/ports.

  Note:

                                     Lisez l'important avertissement
                                     ci-dessus: vous devriez toujours mettre
                                     `a jour ce sous-catalogue, des que vous
                                     mettez `a jour une partie du catalogue
                                     des logiciels portes de FreeBSD!

                             ports-benchmarks release=cvs

                                     Evaluation de performances.

                             ports-biology release=cvs

                                     Biologie.

                             ports-cad release=cvs

                                     Outils de conception assistee par
                                     ordinateur.

                             ports-chinese release=cvs

                                     Support pour le chinois.

                             ports-comms release=cvs

                                     Logiciels de communication.

                             ports-converters release=cvs

                                     Conversion entre codages de carateres.

                             ports-databases release=cvs

                                     Bases de donnees.

                             ports-deskutils release=cvs

                                     Les choses que l'on trouvait sur un
                                     bureau avant l'invention des
                                     ordinateurs.

                             ports-devel release=cvs

                                     Outils de developpement.

                             ports-dns release=cvs

                                     Logiciels relatifs au DNS.

                             ports-editors release=cvs

                                     Editeurs.

                             ports-emulators release=cvs

                                     Emulateurs d'autres systemes
                                     d'exploitation.

                             ports-finance release=cvs

                                     Applications concernant les finances et
                                     l'argent.

                             ports-ftp release=cvs

                                     Clients et serveurs FTP.

                             ports-games release=cvs

                                     Jeux.

                             ports-german release=cvs

                                     Support pour l'allemand.

                             ports-graphics release=cvs

                                     Outils graphiques.

                             ports-hebrew release=cvs

                                     Support de l'hebreu.

                             ports-hungarian release=cvs

                                     Support du hongrois.

                             ports-irc release=cvs

                                     Outils pour l'IRC.

                             ports-japanese release=cvs

                                     Support pour le japonais.

                             ports-java release=cvs

                                     Outils Java(TM).

                             ports-korean release=cvs

                                     Support pour le coreen.

                             ports-lang release=cvs

                                     Langages de programmation.

                             ports-mail release=cvs

                                     Logiciels de courrier electronique.

                             ports-math release=cvs

                                     Logiciels de calcul numerique.

                             ports-mbone release=cvs

                                     Applications MBone.

                             ports-misc release=cvs

                                     Utilitaires divers.

                             ports-multimedia release=cvs

                                     Logiciels pour le multimedia.

                             ports-net release=cvs

                                     Logiciels reseau.

                             ports-net-im release=cvs

                                     Logiciels de messagerie instantanee.

                             ports-net-mgmt release=cvs

                                     Logiciels de gestion des reseaux.

                             ports-net-p2p release=cvs

                                     Logiciels pour le << peer to peer >>.

                             ports-news release=cvs

                                     Logiciels pour les forums de discussion
                                     USENET.

                             ports-palm release=cvs

                                     Logiciels de support des machines
                                     Palm(TM).

                             ports-polish release=cvs

                                     Support pour le polonais.

                             ports-ports-mgmt release=cvs

                                     Utilitaires pour la gestion des
                                     logiciels portes et des paquetages.

                             ports-portuguese release=cvs

                                     Support pour le portugais.

                             ports-print release=cvs

                                     Logiciels d'impression.

                             ports-russian release=cvs

                                     Support pour le russe.

                             ports-science release=cvs

                                     Science.

                             ports-security release=cvs

                                     Outils de securite.

                             ports-shells release=cvs

                                     Interpreteurs de commandes.

                             ports-sysutils release=cvs

                                     Utilitaires systeme.

                             ports-textproc release=cvs

                                     Outils de traitement de texte (sauf les
                                     logiciels de publication assistee par
                                     ordinateur).

                             ports-ukrainian release=cvs

                                     Support de l'ukrainien.

                             ports-vietnamese release=cvs

                                     Support du vietnamien.

                             ports-www release=cvs

                                     Logiciels concernant le World Wide Web.

                             ports-x11 release=cvs

                                     Logiciel pour le systeme X window.

                             ports-x11-clocks release=cvs

                                     Horloges pour X11.

                             ports-x11-drivers release=cvs

                                     pilotes de peripherique X11.

                             ports-x11-fm release=cvs

                                     Gestionnaires de fichiers pour X11.

                             ports-x11-fonts release=cvs

                                     Polices de caracteres et outils associes
                                     pour X11.

                             ports-x11-toolkits release=cvs

                                     "Toolkits" X11.

                             ports-x11-servers release=cvs

                                     Serveurs X11.

                             ports-x11-themes release=cvs

                                     Themes X11.

                             ports-x11-wm release=cvs

                                     Gestionnaires de fenetres pour X11.

                projects-all release=cvs

                        Les sources presentes dans le depots des projets
                        FreeBSD.

                src-all release=cvs

                        Les sources du systeme FreeBSD, comprenant les
                        logiciels de chiffrement.

                             src-base release=cvs

                                     Divers fichiers en haut de la hierarchie
                                     /usr/src.

                             src-bin release=cvs

                                     Programmes utilisateurs qui peuvent etre
                                     utiles en mode mono-utilisateur
                                     (/usr/src/bin).

                             src-cddl release=cvs

                                     Utilitaires et bibliotheques sous
                                     licence CDDL (/usr/src/cddl).

                             src-contrib release=cvs

                                     Utilitaires et bibliotheques d'origine
                                     independante du projet FreeBSD, employes
                                     `a peu pres tels quels
                                     (/usr/src/contrib).

                             src-crypto release=cvs

                                     Utilitaires et bibliotheques pour le
                                     chiffrement d'origine independante du
                                     projet FreeBSD, employes `a peu pres
                                     tels quels (/usr/src/crypto).

                             src-eBones release=cvs

                                     Kerberos et DES (/usr/src/eBones). Non
                                     utilises dans les versions de FreeBSD
                                     actuellement publiees.

                             src-etc release=cvs

                                     Fichiers de configuration du systeme
                                     (/usr/src/etc).

                             src-games release=cvs

                                     Jeux (/usr/src/games).

                             src-gnu release=cvs

                                     Utilitaires soumis `a la licence
                                     publique GNU (/usr/src/gnu).

                             src-include release=cvs

                                     Fichiers d'entete (/usr/src/include).

                             src-kerberos5 release=cvs

                                     Logiciel de securite Kerberos5
                                     (/usr/src/kerberos5).

                             src-kerberosIV release=cvs

                                     Logiciel de securite KerberosIV
                                     (/usr/src/kerberosIV).

                             src-lib release=cvs

                                     Bibliotheques (/usr/src/lib).

                             src-libexec release=cvs

                                     Programmes systeme normalement executes
                                     par d'autres programmes
                                     (/usr/src/libexec).

                             src-release release=cvs

                                     Fichiers necessaires `a la generation
                                     d'une version publiable de FreeBSD
                                     (/usr/src/release).

                             src-rescue release=cvs

                                     Programmes lies en statique pour les
                                     depannages d'urgence; consultez la page
                                     de manuel rescue(8) (/usr/src/rescue).

                             src-sbin release=cvs

                                     Utilitaires systeme pour le mode
                                     mono-utilisateur (/usr/src/sbin).

                             src-secure release=cvs

                                     Commandes et bibliotheques pour le
                                     chiffrage (/usr/src/secure).

                             src-share release=cvs

                                     Fichiers qui peuvent etre partages par
                                     plusieurs systemes (/usr/src/share).

                             src-sys release=cvs

                                     Le noyau (/usr/src/sys).

                             src-sys-crypto release=cvs

                                     Code du noyau destine au chiffrement
                                     (/usr/src/sys/crypto).

                             src-tools release=cvs

                                     Divers outils pour la maintenance de
                                     FreeBSD (/usr/src/tools).

                             src-usrbin release=cvs

                                     Outils utilisateur (/usr/src/usr.bin).

                             src-usrsbin release=cvs

                                     Utilitaires systeme (/usr/src/usr.sbin).

                www release=cvs

                        Les sources du site WWW de FreeBSD.

   distrib release=self

           Fichiers de configuration du serveur CVSup. Utilises par les sites
           miroir CVSup.

   gnats release=current

           Base de donnees GNATS d'historique des bogues.

   mail-archive release=current

           Archives des listes de diffusion FreeBSD.

   www release=current

           Les fichiers/donnees WWW publies (pas les fichiers source).
           Utilises par les sites miroir WWW.

  A.5.6. Pour plus d'informations

   Pour la FAQ de CVSup et d'autres informations concernant CVSup, consultez
   la page Web de CVSup.

   La plupart des discussions relatives `a l'utilisation de CVSup sous
   FreeBSD ont lieu sur la liste de diffusion pour les discussions techniques
   sur FreeBSD. Les nouvelles versions du logiciel y sont annonces ainsi que
   sur la liste de diffusion pour les annonces relatives `a FreeBSD.

   Pour toutes les questions et rapports de bogues concernant CVSup,
   consultez la FAQ CVSup.

  A.5.7. Sites CVSup

   Des serveurs CVSup pour FreeBSD fonctionnent aux sites suivants:

   Serveurs primaires
              * cvsup.FreeBSD.org

A.6. Utiliser Portsnap

  A.6.1. Introduction

   Portsnap est un systeme de distribution securisee du catalogue des
   logiciels portes de FreeBSD. Approximativement chaque heure, un
   << instantane >> du catalogue des logiciels portes est genere, rassemble
   et signe de maniere chiffree. Les fichiers resultants sont alors
   distribues par l'intermediaire du protocole HTTP.

   Tout comme CVSup, Portsnap utilise un modele de mise `a jour de type pull:
   le catalogue des logiciels portes package et signe est place sur un
   serveur Web qui attend les requetes des clients. Les utilisateurs doivent
   soit executer manuellement portsnap(8) pour telecharger les mises `a jour,
   soit configurer cron(8) pour un telechargement regulier et automatique des
   mises `a jour.

   Pour des raisons techniques, Portsnap ne met pas `a jour le catalogue des
   logiciels portes directement dans le repertoire /usr/ports; le logiciel
   travaille plutot par defaut sur une version compressee de l'arborescence
   des logiciels portes dans le repertoire /var/db/portsnap. Cette copie
   compressee est ensuite utilisee pour mettre `a jour le catalogue des
   logiciels portes.

  Note:

   Si Portsnap est installe `a partir du catalogue des logiciels portes de
   FreeBSD, alors l'emplacement par defaut pour son instantane compresse sera
   /usr/local/portsnap au lieu de /var/db/portsnap.

  A.6.2. Installation

   Sous FreeBSD 6.0 et les versions plus recentes, Portsnap fait partie du
   systeme de base de FreeBSD. Sous des versions plus anciennes de FreeBSD,
   il peut etre installe `a partir du logiciel porte ports-mgmt/portsnap.

  A.6.3. Configuration de Portsnap

   L'execution de Portsnap est controlee par le fichier de configuration
   /etc/portsnap.conf. Pour la plupart des utilisateurs, le fichier de
   configuration par defaut sera suffisant; pour plus de details, consultez
   la page de manuel portsnap.conf(5).

  Note:

   Si Portsnap est installe `a partir du catalogue des logiciels portes, il
   utilisera /usr/local/etc/portsnap.conf comme fichier de configuration au
   lieu de /etc/portsnap.conf. Ce fichier n'est pas cree lors de
   l'installation du logiciel, mais un fichier d'exemple est fourni; pour le
   copier `a son emplacement correct, utilisez la commande suivante:

 # cd /usr/local/etc && cp portsnap.conf.sample portsnap.conf

  A.6.4. Executer Portsnap pour la premiere fois

   Au premier lancement de la commande portsnap(8), il sera necessaire de
   telecharger un instantane compresse de l'integralite de l'arborescence des
   logiciels portes dans /var/db/portsnap (ou /usr/local/portsnap si Portsnap
   a ete installe `a partir du catalogue des logiciels portes). Au debut de
   l'annee 2006, cela representait un telechargement d'environ 41 Mo.

 # portsnap fetch

   Une fois que l'instantane compresse a ete recupere, une copie utilisable
   de l'arborescence des logiciels portes peut etre extraite dans le
   repertoire /usr/ports. Cela est necessaire meme si une arborescence a
   dej`a ete creee dans ce repertoire (par exemple en utilisant CVSup),
   puisque cela met en place une version de reference `a partir de laquelle
   portsnap peut determiner plus tard quelles parties du catalogue des
   logiciels portes a besoin d'une mise `a jour.

 # portsnap extract

  Note:

   Dans l'installation par defaut de FreeBSD /usr/ports n'est pas cree. Si
   vous utilisez FreeBSD 6.0-RELEASE, ce repertoire doit etre cree avant
   d'utiliser la commande portsnap. Sur les versions de FreeBSD plus recentes
   ou de Portsnap, cette creation est effectuee automatiquement `a la
   premiere utilisation de la commande portsnap.

  A.6.5. Mettre `a jour l'arborescence des logiciels portes

   Apres qu'un instantane initial du catalogue des logiciels portes ait ete
   recupere puis decompresse dans le repertoire /usr/ports, la mise `a jour
   du catalogue se divise en deux etapes: la recuperation (fetch) des mises
   `a jour de l'instantane, et leur utilisation pour mettre `a jour (update)
   le catalogue des logiciels portes en tant que tel. Ces deux etapes peuvent
   etre effectuees par l'intermediaire d'une seule commande portsnap:

 # portsnap fetch update

  Note:

   Des versions anciennes de portsnap ne supporte pas cette syntaxe; en cas
   d'echec, utilisez `a la place ceci:

 # portsnap fetch
 # portsnap update

  A.6.6. Executer Portsnap `a partir de cron

   Afin d'eviter tout probleme << d'embouteillage >> lors de l'acces aux
   serveurs Portsnap, portsnap fetch ne fonctionnera pas `a partir d'une
   tache cron(8). Il existe, `a la place, une commande portsnap cron
   specifique, qui patiente durant un delai aleatoire pouvant aller jusqu'`a
   3600 secondes avant de recuperer les mises `a jour.

   De plus, il est fortement recommande de ne pas executer portsnap update `a
   partir d'une tache cron, puisque cela peut etre `a l'origine de graves
   problemes si la commande a lieu au meme moment qu'un logiciel porte est en
   train d'etre compile ou installe. Cependant, les fichiers INDEX peuvent
   etre mis `a jour sans risque, et cela peut etre fait en passant
   l'indicateur -I `a la commande portsnap (bien entendu si portsnap -I
   update est execute `a par cron, il sera alors necessaire de lancer
   portsnap update sans l'option -I ulterieurement pour mettre `a jour le
   reste de l'arborescence).

   L'ajout de la ligne suivante dans le fichier /etc/crontab demandera `a
   portsnap de mettre `a jour son instantane compresse et les fichiers INDEX
   du repertoire /usr/ports, et enverra un courrier electronique si un
   logiciel porte installe n'est pas `a jour:

 0 3 * * * root portsnap -I cron update && pkg_version -vIL=

  Note:

   Si l'horloge systeme n'est pas positionnee sur le fuseau horaire local,
   remplacez 3 par une valeur quelconque comprise entre 0 et 23, afin de
   repartir de maniere plus equilibree la charge sur les serveurs Portsnap.

  Note:

   Des versions anciennes de portsnap ne supportent pas l'utilisation de
   commandes multiples (par exemple cron update) lors de la meme invocation
   de portsnap. Si la ligne precedente echoue, essayez de remplacer portsnap
   -I cron update par portsnap cron && portsnap -I update.

A.7. Etiquettes CVS

   Quand on recupere ou l'on met `a jour les sources en utilisant cvs ou
   CVSup, une etiquette de revision doit etre specifiee. Une etiquette de
   revision fait reference soit `a une branche particuliere de developpement
   de FreeBSD, soit `a un moment particulier dans le temps. Le premier type
   d'etiquette est nomme "etiquette de branche", le second type "etiquette de
   publication" - release tags.

  A.7.1. Etiquettes de branche

   Toutes ces etiquettes, `a l'exception de l'etiquette HEAD (qui est une
   etiquette toujours valide), ne s'appliquent qu'`a l'arborescence src/. Il
   n'y a pas de branche pour les arborescences ports/, doc/, et www/.

   HEAD

           Nom symbolique pour la branche principale de developpement, ou
           FreeBSD-CURRENT. C'est aussi la valeur par defaut lorsque la
           revision n'est pas precisee.

           Sous CVSup, cette etiquette est representee par un . (ce n'est pas
           une ponctuation, mais bien le caractere .).

  Note:

           Sous CVS, c'est la valeur par defaut quand aucune etiquette de
           revision n'est precisee. Ce n'est generalement pas une bonne idee
           de recuperer ou mettre `a jour vers les sources CURRENT sur une
           machine STABLE, `a moins que cela ne soit vraiment votre
           intention.

   RELENG_6

           Branche de developpement pour FreeBSD-6.X, egalement connue sous
           le nom de FreeBSD 6-STABLE.

   RELENG_6_2

           Branche de publication de la version FreeBSD-6.2, utilisee
           uniquement pour les avis de securite et autres correctifs de
           problemes critiques.

   RELENG_6_1

           Branche de publication de la version FreeBSD-6.1, utilisee
           uniquement pour les avis de securite et autres correctifs de
           problemes critiques.

   RELENG_6_0

           Branche de publication de la version FreeBSD-6.0, utilisee
           uniquement pour les avis de securite et autres correctifs de
           problemes critiques.

   RELENG_5

           Branche de developpement pour FreeBSD-5.X, egalement connue sous
           le nom de FreeBSD 5-STABLE.

   RELENG_5_5

           Branche de publication de la version FreeBSD-5.5, utilisee
           uniquement pour les avis de securite et autres correctifs de
           problemes critiques.

   RELENG_5_4

           Branche de publication de la version FreeBSD-5.4, utilisee
           uniquement pour les avis de securite et autres correctifs de
           problemes critiques.

   RELENG_5_3

           Branche de publication de la version FreeBSD-5.3, utilisee
           uniquement pour les avis de securite et autres correctifs de
           problemes critiques.

   RELENG_5_2

           Branche de publication des versions FreeBSD-5.2 et FreeBSD-5.2.1,
           utilisee uniquement pour les avis de securite et autres correctifs
           de problemes critiques.

   RELENG_5_1

           Branche de publication de la version FreeBSD-5.1, utilisee
           uniquement pour les avis de securite et autres correctifs de
           problemes critiques.

   RELENG_5_0

           Branche de publication de la version FreeBSD-5.0, utilisee
           uniquement pour les avis de securite et autres correctifs de
           problemes critiques.

   RELENG_4

           Branche de developpement de FreeBSD-4.X, aussi connue sous le nom
           de FreeBSD 4-STABLE.

   RELENG_4_11

           Branche de publication de la version FreeBSD-4.11, utilisee
           uniquement pour les avis de securite et autres correctifs de
           problemes critiques.

   RELENG_4_10

           Branche de publication de la version FreeBSD-4.10, utilisee
           uniquement pour les avis de securite et autres correctifs de
           problemes critiques.

   RELENG_4_9

           Branche de publication de la version FreeBSD-4.9, utilisee
           uniquement pour les avis de securite et autres correctifs de
           problemes critiques.

   RELENG_4_8

           Branche de publication de la version FreeBSD-4.8, utilisee
           uniquement pour les avis de securite et autres correctifs de
           problemes critiques.

   RELENG_4_7

           Branche de publication de la version FreeBSD-4.7, utilisee
           uniquement pour les avis de securite et autres correctifs de
           problemes critiques.

   RELENG_4_6

           Branche de publication des versions FreeBSD-4.6 et FreeBSD-4.6.2,
           utilisee uniquement pour les avis de securite et autres correctifs
           de problemes critiques.

   RELENG_4_5

           Branche de publication de la version FreeBSD-4.5, utilisee
           uniquement pour les avis de securite et autres correctifs de
           problemes critiques.

   RELENG_4_4

           Branche de publication de la version FreeBSD-4.4, utilisee
           uniquement pour les avis de securite et autres correctifs de
           problemes critiques.

   RELENG_4_3

           Branche de publication de la version FreeBSD-4.3, utilisee
           uniquement pour les avis de securite et autres correctifs de
           problemes critiques.

   RELENG_3

           Branche de developpement de FreeBSD-3.X, aussi connue sous le nom
           de 3.X-STABLE.

   RELENG_2_2

           Branche de developpement de FreeBSD-2.2.X, aussi connue sous le
           nom de 2.2-STABLE. Cette branche est en grande partie obsolete.

  A.7.2. Etiquettes de publication

   Ces etiquettes font reference `a un moment bien precis dans le temps quand
   une version particuliere de FreeBSD a ete publiee. Le processus
   d'ingenierie des publications est documente en details dans les documents
   Information sur la publication des versions et Processus de publication.
   L'arborescence src utilise des etiquettes commenc,ant par RELENG_. Les
   arborescences ports et doc utilisent des etiquettes dont les noms
   commencent par RELEASE. Enfin, l'arborescence www ne beneficie pas
   d'etiquette particuliere pour les publications.

   RELENG_6_2_0_RELEASE

           FreeBSD 6.2

   RELENG_6_1_0_RELEASE

           FreeBSD 6.1

   RELENG_6_0_0_RELEASE

           FreeBSD 6.0

   RELENG_5_5_0_RELEASE

           FreeBSD 5.5

   RELENG_5_4_0_RELEASE

           FreeBSD 5.4

   RELENG_4_11_0_RELEASE

           FreeBSD 4.11

   RELENG_5_3_0_RELEASE

           FreeBSD 5.3

   RELENG_4_10_0_RELEASE

           FreeBSD 4.10

   RELENG_5_2_1_RELEASE

           FreeBSD 5.2.1

   RELENG_5_2_0_RELEASE

           FreeBSD 5.2

   RELENG_4_9_0_RELEASE

           FreeBSD 4.9

   RELENG_5_1_0_RELEASE

           FreeBSD 5.1

   RELENG_4_8_0_RELEASE

           FreeBSD 4.8

   RELENG_5_0_0_RELEASE

           FreeBSD 5.0

   RELENG_4_7_0_RELEASE

           FreeBSD 4.7

   RELENG_4_6_2_RELEASE

           FreeBSD 4.6.2

   RELENG_4_6_1_RELEASE

           FreeBSD 4.6.1

   RELENG_4_6_0_RELEASE

           FreeBSD 4.6

   RELENG_4_5_0_RELEASE

           FreeBSD 4.5

   RELENG_4_4_0_RELEASE

           FreeBSD 4.4

   RELENG_4_3_0_RELEASE

           FreeBSD 4.3

   RELENG_4_2_0_RELEASE

           FreeBSD 4.2

   RELENG_4_1_1_RELEASE

           FreeBSD 4.1.1

   RELENG_4_1_0_RELEASE

           FreeBSD 4.1

   RELENG_4_0_0_RELEASE

           FreeBSD 4.0

   RELENG_3_5_0_RELEASE

           FreeBSD-3.5

   RELENG_3_4_0_RELEASE

           FreeBSD-3.4

   RELENG_3_3_0_RELEASE

           FreeBSD-3.3

   RELENG_3_2_0_RELEASE

           FreeBSD-3.2

   RELENG_3_1_0_RELEASE

           FreeBSD-3.1

   RELENG_3_0_0_RELEASE

           FreeBSD-3.0

   RELENG_2_2_8_RELEASE

           FreeBSD-2.2.8

   RELENG_2_2_7_RELEASE

           FreeBSD-2.2.7

   RELENG_2_2_6_RELEASE

           FreeBSD-2.2.6

   RELENG_2_2_5_RELEASE

           FreeBSD-2.2.5

   RELENG_2_2_2_RELEASE

           FreeBSD-2.2.2

   RELENG_2_2_1_RELEASE

           FreeBSD-2.2.1

   RELENG_2_2_0_RELEASE

           FreeBSD-2.2.0

A.8. Sites AFS

   Il y a des serveurs AFS pour FreeBSD sur les sites suivants:

   Suede

           Le chemin d'acces au fichiers est
           /afs/stacken.kth.se/ftp/pub/FreeBSD/

 stacken.kth.se         # Stacken Computer Club, KTH, Suede
 130.237.234.43         #hot.stacken.kth.se
 130.237.237.230        #fishburger.stacken.kth.se
 130.237.234.3          #milko.stacken.kth.se

           Responsable <ftp@stacken.kth.se>

A.9. Sites rsync

   Les sites suivants fournissent FreeBSD en utilisant le protocole rsync.
   L'utilitaire rsync fonctionne globalement de la meme maniere que la
   commande rcp(1), mais il dispose de plus d'options et utilise le protocole
   de mise `a jour `a distance rsync qui ne transfert que les differences
   entre deux ensembles de fichiers, ce qui accelere enormement la
   synchronisation par le reseau. C'est surtout utile si vous disposez d'un
   miroir du serveur FTP de FreeBSD, ou du referentiel CVS. La suite rsync
   est disponible sur de nombreux systemes d'exploitation, et sous FreeBSD,
   voir le logiciel porte net/rsync ou utilisez la version pre-compilee.

   Republique Tcheque

           rsync://ftp.cz.FreeBSD.org/

           Collections disponibles:

              * ftp: un miroir partiel du serveur FTP FreeBSD.

              * FreeBSD: un miroir complet du serveur FTP FreeBSD.

   Allemagne

           rsync://grappa.unix-ag.uni-kl.de/

           Collections disponibles:

              * freebsd-cvs: referentiel CVS FreeBSD complet.

           Cette machine est egalement miroir des referentiels CVS des
           projets NetBSD et OpenBSD, parmi d'autres.

   Hollande

           rsync://ftp.nl.FreeBSD.org/

           Collections disponibles:

              * vol/4/freebsd-core: un miroir complet du serveur FTP FreeBSD.

   Thailande

           rsync://ftp.tw.FreeBSD.org/

           rsync://ftp2.tw.FreeBSD.org/

           rsync://ftp6.tw.FreeBSD.org/

           Collections disponibles:

              * FreeBSD: Un miroir complet du serveur FTP FreeBSD.

   Royaume-Uni

           rsync://rsync.mirror.ac.uk/

           Collections disponibles:

              * ftp.freebsd.org: Un miroir complet du serveur FTP FreeBSD.

   Etats Unis d'Amerique

           rsync://ftp-master.FreeBSD.org/

           Ce serveur ne pourra etre utilise que par les sites miroirs
           primaires FreeBSD.

           Collections disponibles:

              * FreeBSD: l'archive principale du serveur FTP FreeBSD.

              * acl: la liste principale ACL de FreeBSD.

           rsync://ftp13.FreeBSD.org/

           Collections disponibles:

              * FreeBSD: Un miroir complet du serveur FTP FreeBSD.

Annexe B. Bibliographie

   Table des matieres

   B.1. Livres & magazines consacres `a FreeBSD

   B.2. Manuels d'utilisation

   B.3. Manuels d'administration

   B.4. Manuels de programmation

   B.5. "Internes" du systeme d'exploitation

   B.6. Ouvrages de reference en matiere de securite

   B.7. Ouvrages de reference sur le materiel

   B.8. Histoire d'UNIX(R)

   B.9. Revues et journaux

   Version franc,aise de Marc Fonvieille <blackend@FreeBSD.org>.

   Bien que les pages de manuel soient la documentation de reference pour
   chaque facette du systeme d'exploitation FreeBSD, il est de notoriete
   publique qu'elles n'expliquent pas comment assembler les morceaux pour
   avoir un systeme d'exploitation qui tourne sans encombre. Il n'y a pour
   cela pas d'autre alternative qu'un bon livre sur l'administration UNIX(R)
   et un bon manuel utilisateur.

B.1. Livres & magazines consacres `a FreeBSD

   Livres & revues internationaux:

     * Utiliser FreeBSD (en chinois traditionnel), publie par Drmaster.,
       1997. ISBN 9-578-39435-7.

     * FreeBSD Unleashed (traduction en chinois simplifie), publie par China
       Machine Press. ISBN 7-111-10201-0.

     * FreeBSD From Scratch First Edition (en chinois simplifie), publie par
       China Machine Press. ISBN 7-111-07482-3.

     * FreeBSD From Scratch Second Edition (en chinois simplifie), publie par
       China Machine Press. ISBN 7-111-10286-X.

     * Manuel FreeBSD (traduction en chinois simplifie), publie par Posts &
       Telecom Press. ISBN 7-115-10541-3.

     * FreeBSD 3.x Internet (en chinois simplifie), publie par Tsinghua
       University Press. ISBN 7-900625-66-6.

     * FreeBSD & Windows (en chinois simplifie), ISBN 7-113-03845-X

     * FreeBSD Internet Services HOWTO (en chinois simplifie), ISBN
       7-113-03423-3

     * FreeBSD pour les utilisateurs de PC 98 (en Japonais), publie par SHUWA
       System Co, LTD. ISBN 4-87966-468-5 C3055 P2900E.

     * FreeBSD (en Japonais), publie par CUTT. ISBN 4-906391-22-2 C3055
       P2400E.

     * Introduction complete `a FreeBSD (en Japonais), publie par Shoeisha
       Co., Ltd. ISBN 4-88135-473-6 P3600E.

     * Kit de demarrage pour Unix personnel FreeBSD (en Japonais), publie par
       ASCII. ISBN 4-7561-1733-3 P3000E.

     * Manuel de reference FreeBSD (traduction en Japonais), publie par
       ASCII. ISBN 4-7561-1580-2 P3800E.

     * FreeBSD avec methode (en Allemand), publie par Computer und Literatur
       Verlag/Vertrieb Hanser, 1998. ISBN 3-932311-31-0.

     * FreeBSD 4 - Installieren, Konfigurieren, Administrieren (en Allemand),
       publie par Computer und Literatur Verlag, 2001. ISBN 3-932311-88-4.

     * FreeBSD 5 - Installieren, Konfigurieren, Administrieren (en Allemand),
       publie par Computer und Literatur Verlag, 2003. ISBN 3-936546-06-1.

     * FreeBSD de Luxe (en Allemand), publie par Verlag Modere Industrie,
       2003. ISBN 3-8266-1343-0.

     * Manuel d'installation et d'utilisation de FreeBSD (en Japonais),
       publie par Mainichi Communications Inc., 1998. ISBN 4-8399-0112-0.

     * Onno W Purbo, Dodi Maryanto, Syahrial Hubbany, Widjil Widodo
       Construire un serveur Internet avec FreeBSD (en Indonesien), publie
       par Elex Media Komputindo.

     * Absolute BSD: The Ultimate Guide to FreeBSD (traduction en chinois
       traditionnel), publie par GrandTech Press, 2003. ISBN 986-7944-92-5.

     * The FreeBSD 6.0 Book (en chinois traditionnel), publie par Drmaster,
       2006. ISBN 9-575-27878-X.

   Livres & revues en langue anglaise:

     * Absolute BSD: The Ultimate Guide to FreeBSD, publie par No Starch
       Press, 2002. ISBN: 1886411743

     * The Complete FreeBSD, publie par O'Reilly, 2003. ISBN: 0596005164

     * The FreeBSD Corporate Networker's Guide, publie par Addison-Wesley,
       2000. ISBN: 0201704811

     * FreeBSD: An Open-Source Operating System for Your Personal Computer,
       publie par The Bit Tree Press, 2001. ISBN: 0971204500

     * Teach Yourself FreeBSD in 24 Hours, publie par Sams, 2002. ISBN:
       0672324245

     * FreeBSD unleashed, publie par Sams, 2006. ISBN: 0672328755

     * FreeBSD: The Complete Reference, publie McGrawHill, 2003. ISBN:
       0072224096

B.2. Manuels d'utilisation

     * Computer Systems Research Group, UC Berkeley. 4.4BSD User's Reference
       Manual. O'Reilly & Associates, Inc., 1994. ISBN 1-56592-075-9

     * Computer Systems Research Group, UC Berkeley. 4.4BSD User's
       Supplementary Documents. O'Reilly & Associates, Inc., 1994. ISBN
       1-56592-076-7

     * UNIX in a Nutshell. O'Reilly & Associates, Inc., 1990. ISBN 093717520X

     * Mui, Linda. What You Need To Know When You Can't Find Your UNIX System
       Administrator. O'Reilly & Associates, Inc., 1995. ISBN 1-56592-104-6

     * L'Universite de l'Etat d'Ohio a ecrit un Cours d'introduction `a Unix
       qui est disponible en ligne aux formats HTML et PostScript.

       Une version en Italien de ce document fait partie du projet de
       documentation FreeBSD Italien.

     * Jpman Project, Groupe d'utilisateurs japonais de FreeBSD. Manuel de
       reference utilisateur de FreeBSD (traduction en Japonais). Mainichi
       Communications Inc., 1998. ISBN4-8399-0088-4 P3800E.

     * L'Universite d'Edinburgh a ecrit un Guide en ligne pour les nouveaux
       venus `a l'environnement Unix.

B.3. Manuels d'administration

     * Albitz, Paul and Liu, Cricket. DNS and BIND, 4th Ed. O'Reilly &
       Associates, Inc., 2001. ISBN 1-59600-158-4

     * Computer Systems Research Group, UC Berkeley. 4.4BSD System Manager's
       Manual. O'Reilly & Associates, Inc., 1994. ISBN 1-56592-080-5

     * Costales, Brian, et al. Sendmail, 2nd Ed. O'Reilly & Associates, Inc.,
       1997. ISBN 1-56592-222-0

     * Frisch, AEleen. Essential System Administration, 2nd Ed. O'Reilly &
       Associates, Inc., 1995. ISBN 1-56592-127-5

     * Hunt, Craig. TCP/IP Network Administration, 2nd Ed. O'Reilly &
       Associates, Inc., 1997. ISBN 1-56592-322-7

     * Nemeth, Evi. UNIX System Administration Handbook. 3rd Ed. Prentice
       Hall, 2000. ISBN 0-13-020601-6

     * Stern, Hal Managing NFS and NIS O'Reilly & Associates, Inc., 1991.
       ISBN 0-937175-75-7

     * Jpman Project, Groupe d'utilisateurs japonais de FreeBSD. Manuel de
       l'administrateur systeme FreeBSD (traduction en Japonais). Mainichi
       Communications Inc., 1998. ISBN4-8399-0109-0 P3300E.

     * Dreyfus, Emmanuel. Cahiers de l'Admin: BSD 2nde Ed. (en Franc,ais),
       Eyrolles, 2004. ISBN 2-212-11463-X

B.4. Manuels de programmation

     * Asente, Paul, Converse, Diana, and Swick, Ralph. X Window System
       Toolkit. Digital Press, 1998. ISBN 1-55558-178-1

     * Computer Systems Research Group, UC Berkeley. 4.4BSD Programmer's
       Reference Manual. O'Reilly & Associates, Inc., 1994. ISBN
       1-56592-078-3

     * Computer Systems Research Group, UC Berkeley. 4.4BSD Programmer's
       Supplementary Documents. O'Reilly & Associates, Inc., 1994. ISBN
       1-56592-079-1

     * Harbison, Samuel P. and Steele, Guy L. Jr. C: A Reference Manual. 4th
       ed. Prentice Hall, 1995. ISBN 0-13-326224-3

     * Kernighan, Brian and Dennis M. Ritchie. The C Programming Language.
       2nd Ed. PTR Prentice Hall, 1988. ISBN 0-13-110362-8

     * Lehey, Greg. Porting UNIX Software. O'Reilly & Associates, Inc., 1995.
       ISBN 1-56592-126-7

     * Plauger, P. J. The Standard C Library. Prentice Hall, 1992. ISBN
       0-13-131509-9

     * Spinellis, Diomidis. Code Reading: The Open Source Perspective.
       Addison-Wesley, 2003. ISBN 0-201-79940-5

     * Spinellis, Diomidis. Code Quality: The Open Source Perspective.
       Addison-Wesley, 2006. ISBN 0-321-16607-8

     * Stevens, W. Richard and Stephen A. Rago. Advanced Programming in the
       UNIX Environment. 2nd Ed. Reading, Mass. : Addison-Wesley, 2005. ISBN
       0-201-43307-9

     * Stevens, W. Richard. UNIX Network Programming. 2nd Ed, PTR Prentice
       Hall, 1998. ISBN 0-13-490012-X

     * Wells, Bill. "Writing Serial Drivers for UNIX". Dr. Dobb's Journal.
       19(15), December 1994. pp68-71, 97-99.

B.5. "Internes" du systeme d'exploitation

     * Andleigh, Prabhat K. UNIX System Architecture. Prentice-Hall, Inc.,
       1990. ISBN 0-13-949843-5

     * Jolitz, William. "Porting UNIX to the 386". Dr. Dobb's Journal.
       January 1991-July 1992.

     * Leffler, Samuel J., Marshall Kirk McKusick, Michael J Karels and John
       Quarterman The Design and Implementation of the 4.3BSD UNIX Operating
       System. Reading, Mass. : Addison-Wesley, 1989. ISBN 0-201-06196-1

     * Leffler, Samuel J., Marshall Kirk McKusick, The Design and
       Implementation of the 4.3BSD UNIX Operating System: Answer Book.
       Reading, Mass. : Addison-Wesley, 1991. ISBN 0-201-54629-9

     * McKusick, Marshall Kirk, Keith Bostic, Michael J Karels, and John
       Quarterman. The Design and Implementation of the 4.4BSD Operating
       System. Reading, Mass. : Addison-Wesley, 1996. ISBN 0-201-54979-4

       (Le chapitre 2 de ce livre est disponible en ligne en tant que partie
       du Projet de Documentation de FreeBSD, et le chapitre 9 ici.)

     * Marshall Kirk McKusick, George V. Neville-Neil The Design and
       Implementation of the FreeBSD Operating System. Boston, Mass. :
       Addison-Wesley, 2004. ISBN 0-201-70245-2

     * Stevens, W. Richard. TCP/IP Illustrated, Volume 1: The Protocols.
       Reading, Mass. : Addison-Wesley, 1996. ISBN 0-201-63346-9

     * Schimmel, Curt. Unix Systems for Modern Architectures. Reading, Mass.
       : Addison-Wesley, 1994. ISBN 0-201-63338-8

     * Stevens, W. Richard. TCP/IP Illustrated, Volume 3: TCP for
       Transactions, HTTP, NNTP and the UNIX Domain Protocols. Reading, Mass.
       : Addison-Wesley, 1996. ISBN 0-201-63495-3

     * Vahalia, Uresh. UNIX Internals -- The New Frontiers. Prentice Hall,
       1996. ISBN 0-13-101908-2

     * Wright, Gary R. and W. Richard Stevens. TCP/IP Illustrated, Volume 2:
       The Implementation. Reading, Mass. : Addison-Wesley, 1995. ISBN
       0-201-63354-X

B.6. Ouvrages de reference en matiere de securite

     * Cheswick, William R. and Steven M. Bellovin. Firewalls and Internet
       Security: Repelling the Wily Hacker. Reading, Mass. : Addison-Wesley,
       1995. ISBN 0-201-63357-4

     * Garfinkel, Simson and Gene Spafford. Practical UNIX & Internet
       Security. 2nd Ed. O'Reilly & Associates, Inc., 1996. ISBN
       1-56592-148-8

     * Garfinkel, Simson. PGP Pretty Good Privacy O'Reilly & Associates,
       Inc., 1995. ISBN 1-56592-098-8

B.7. Ouvrages de reference sur le materiel

     * Anderson, Don and Tom Shanley. Pentium Processor System Architecture.
       2nd Ed. Reading, Mass. : Addison-Wesley, 1995. ISBN 0-201-40992-5

     * Ferraro, Richard F. Programmer's Guide to the EGA, VGA, and Super VGA
       Cards. 3rd ed. Reading, Mass. : Addison-Wesley, 1995. ISBN
       0-201-62490-7

     * Intel Corporation publie la documentation sur ses processeurs,
       circuits et standards sur son site web developpeur, generalement sous
       forme de fichiers PDF.

     * Shanley, Tom. 80486 System Architecture. 3rd ed. Reading, Mass. :
       Addison-Wesley, 1995. ISBN 0-201-40994-1

     * Shanley, Tom. ISA System Architecture. 3rd ed. Reading, Mass. :
       Addison-Wesley, 1995. ISBN 0-201-40996-8

     * Shanley, Tom. PCI System Architecture. 4th ed. Reading, Mass. :
       Addison-Wesley, 1999. ISBN 0-201-30974-2

     * Van Gilluwe, Frank. The Undocumented PC, 2nd Ed. Reading, Mass:
       Addison-Wesley Pub. Co., 1996. ISBN 0-201-47950-8

     * Messmer, Hans-Peter. The Indispensable PC Hardware Book, 4th Ed.
       Reading, Mass: Addison-Wesley Pub. Co., 2002. ISBN 0-201-59616-4

B.8. Histoire d'UNIX(R)

     * Lion, John Lion's Commentary on UNIX, 6th Ed. With Source Code. ITP
       Media Group, 1996. ISBN 1573980137

     * Raymond, Eric S. The New Hacker's Dictionary, 3rd edition. MIT Press,
       1996. ISBN 0-262-68092-0. Aussi connu sous le nom de Jargon File

     * Salus, Peter H. A quarter century of UNIX. Addison-Wesley Publishing
       Company, Inc., 1994. ISBN 0-201-54777-5

     * Simon Garfinkel, Daniel Weise, Steven Strassmann. The UNIX-HATERS
       Handbook. IDG Books Worldwide, Inc., 1994. ISBN 1-56884-203-1. Epuise,
       mais disponible en ligne.

     * Don Libes, Sandy Ressler Life with UNIX - special edition.
       Prentice-Hall, Inc., 1989. ISBN 0-13-536657-7

     * The BSD family tree.
       http://www.FreeBSD.org/cgi/cvsweb.cgi/src/share/misc/bsd-family-tree
       ou local sur une machine FreeBSD.

     * The BSD Release Announcements collection. 1997.
       http://www.de.FreeBSD.org/de/ftp/releases/

     * Networked Computer Science Technical Reports Library.
       http://www.ncstrl.org/

     * Anciennes version de BSD du Computer Systems Research group (CSRG).
       http://www.mckusick.com/csrg/: Ces 4 CDROMs incluent toutes les
       versions de BSD de 1BSD `a 4.4BSD et 4.4BSD-Lite2 (mais
       malheureusement pas 2.11BSD). De plus le dernier CDROM contient les
       dernieres sources et les fichiers SCCS.

B.9. Revues et journaux

     * The C/C++ Users Journal. R&D Publications Inc. ISSN 1075-2838

     * Sys Admin - The Journal for UNIX System Administrators Miller Freeman,
       Inc., ISSN 1061-2688

     * freeX - Das Magazin fu:r Linux - BSD - UNIX (in German) Computer- und
       Literaturverlag GmbH, ISSN 1436-7033

Annexe C. Ressources sur Internet

   Table des matieres

   C.1. Listes de diffusion

   C.2. Forums de discussion

   C.3. Serveurs World Wide Web

   C.4. Adresses electroniques

   C.5. Comptes

   Version franc,aise de Marc Fonvieille <blackend@FreeBSD.org>.

   L'evolution rapide de FreeBSD rend peu pratique le suivi des
   developpements via des supports imprimes. Les supports electroniques sont
   le meilleur, sinon la plupart du temps le seul, moyen de se tenir au
   courant des dernieres avancees. Comme FreeBSD est un effort base sur le
   volontariat, la communaute des utilisateurs sert generalement de "service
   de support technique", le courrier electronique et les forums de
   discussion etant le meilleur moyen de contacter cette communaute.

   Les points de contact les plus importants avec la communaute des
   utilisateurs de FreeBSD sont listes ci-dessous. Si vous connaissez
   d'autres ressources qui n'y figurent pas, communiquez-les s'il vous plait
   `a la liste de diffusion du groupe de documentation de FreeBSD de fac,on
   `a ce qu'elles soient aussi mentionnees.

C.1. Listes de diffusion

   Bien qu'un grand de nombre de developpeurs de FreeBSD lisent les forums de
   discussion, nous ne pouvons vous garantir de reponse en temps et en heure
   `a vos questions (ni meme de reponse tout court) si vous ne les postez que
   sur un des forums comp.unix.bsd.freebsd.*. En adressant vos questions sur
   la liste de diffusion appropriee vous nous contacterez en meme temps qu'un
   auditoire FreeBSD concentre, ce qui vous garantit invariablement une
   meilleure (ou tout au moins une plus rapide) reponse.

   Les chartes d'utilisation pour les differentes listes sont donnees `a la
   fin de ce document. Lisez-les s'il vous plait avant de vous inscrire ou
   d'envoyer du courrier `a une liste. La plupart des inscrits `a nos listes
   rec,oivent maintenant des centaines de messages en rapport `a FreeBSD
   chaque jour, et en definissant des chartes et des regles d'utilisation,
   nous essayons de garder assez eleve le rapport signal/bruit sur les
   listes. Ne pas le faire verrait l'echec des listes de diffusion comme
   moyen efficace de communication pour le projet.

  Note:

   Si vous desirez tester votre capacite `a envoyer du courrier aux listes
   FreeBSD, envoyez un message de test `a la liste freebsd-test. Veuillez ne
   pas envoyer de messages de test vers une autre liste.

   En cas de doute sur la liste sur laquelle poser une question, lisez
   Comment obtenir les meilleurs resultats sur la liste de diffusion
   FreeBSD-questions.

   Avant de poster sur une liste de diffusion, veuillez apprendre `a utiliser
   au mieux les listes de diffusion, comme par exemple eviter de relancer des
   discussions qui reviennent regulierement, en lisant le document (FAQ) sur
   les questions frequemment posees au sujet des listes de diffusion.

   Des archives de toutes les listes de diffusion sont conservees et on peut
   effectuer des recherches sur le serveur World Wide Web de FreeBSD. Les
   archives interrogeables par mots-cles offrent un excellent moyen de
   trouver des reponses aux questions frequemment posees et devraient etre
   consultees avant de poster une question.

  C.1.1. Resume des listes de diffusion

   Listes generales: les listes suivantes sont des listes generales
   auxquelles chacun est libre (et encourage) de s'inscrire:

               Liste                                 Objet                    
   cvs-all                        Toutes les modifications de l'arborescence  
                                  des sources                                 
   freebsd-advocacy               Propagande FreeBSD                          
   freebsd-announce               Evenements et etapes importantes du projet  
   freebsd-arch                   Discussions sur l'architecture et           
                                  l'implementation de FreeBSD                 
                                  Discussions concernant la maintenance de la 
   freebsd-bugbusters             base des donnees des rapports de bogue de   
                                  FreeBSD et des outils rattaches             
   freebsd-bugs                   Rapports de bogue                           
   freebsd-chat                   Sujets non-techniques en rapport avec la    
                                  communaute FreeBSD                          
   freebsd-current                Discussions concernant l'utilisation de     
                                  FreeBSD-CURRENT                             
   freebsd-isp                    Pour les fournisseurs d'acces utilisant     
                                  FreeBSD                                     
   freebsd-jobs                   Emplois et interventions de consultants en  
                                  rapport avec FreeBSD                        
                                  Decisions de la politique de l'equipe de    
   freebsd-policy                 base de FreeBSD. Volume faible, et acces en 
                                  lecture uniquement                          
   freebsd-questions              Questions des utilisateurs et support       
                                  technique                                   
   freebsd-security-notifications Avis de securite                            
   freebsd-stable                 Discussions concernant l'utilisation de     
                                  FreeBSD-STABLE                              
   freebsd-test                   Ou envoyer vos messages de test au lieu que 
                                  dans une des listes reelles                 

   Listes techniques: les listes suivantes sont destinees aux discussions
   techniques. Vous devriez lire la charte d'utilisation pour chaque liste
   attentivement avant de s'y inscrire ou d'y envoyer du courrier parce qu'il
   y a des regles fermes quant `a leur utilisation et leur contenu.

          Liste                                Objet                          
   freebsd-acpi        Developpement de l'ACPI et de la gestion d'energie     
   freebsd-afs         Portage d'AFS sous FreeBSD                             
   freebsd-aic7xxx     Developpement de pilotes pour les controleurs AIC 7xxx 
                       d'Adaptec(R)                                           
   freebsd-alpha       Portage de FreeBSD sur les systemes Alpha              
   freebsd-amd64       Portage de FreeBSD sur les systemes AMD64              
   freebsd-apache      Discussion sur les logiciels portes relatifs `a Apache 
   freebsd-arm         Portage de FreeBSD sur les processeurs ARM(R)          
   freebsd-atm         Utilisation de reseaux ATM avec FreeBSD                
   freebsd-audit       Projet d'audit du code source                          
   freebsd-binup       Conception et developpement du systeme de mise `a jour 
                       binaire                                                
   freebsd-bluetooth   Utilisation de la technologie Bluetooth(R) sous        
                       FreeBSD                                                
   freebsd-cluster     Utilisation de FreeBSD dans un environnement en grappe 
   freebsd-cvsweb      Maintenance du systeme CVSweb                          
   freebsd-database    Discussions `a propos de l'utilisation de bases de     
                       donnees et de leur developpement sous FreeBSD          
   freebsd-doc         Creation de documents en rapport avec FreeBSD          
   freebsd-drivers     Ecrire des pilotes de peripheriques pour FreeBSD       
                       Pour les utilisateurs FreeBSD de l'EDI Eclipse, les    
   freebsd-eclipse     outils, les applications clientes et les logiciels     
                       portes.                                                
   freebsd-embedded    Utilisation de FreeBSD dans les applications           
                       embarquees                                             
   freebsd-eol         Entre-aide sur les logiciels relatifs `a FreeBSD et    
                       qui ne sont plus supportes par le projet FreeBSD.      
   freebsd-emulation   Emulation d'autres systemes comme                      
                       Linux/MS-DOS(R)/Windows(R)                             
   freebsd-firewire    Discussion technique au sujet du FireWire(R) (iLink,   
                       IEEE 1394) sous FreeBSD                                
   freebsd-fs          Systemes de fichiers                                   
   freebsd-geom        Discussions specifiques `a GEOM et `a ses              
                       implementations                                        
   freebsd-gnome       Portage de GNOME et des applications GNOME             
   freebsd-hackers     Discussions techniques generales                       
   freebsd-hardware    Discussion generale `a propos du materiel fonctionnant 
                       sous FreeBSD                                           
   freebsd-i18n        Internationalisation de FreeBSD                        
   freebsd-ia32        FreeBSD sur la plate-forme IA-32 (Intel(R) x86)        
   freebsd-ia64        Portage de FreeBSD sur les futurs systeme Intel(R)     
                       IA64                                                   
   freebsd-ipfw        Discussion technique concernant le developpement du    
                       nouveau code du coupe-feu                              
   freebsd-isdn        Developpeurs ISDN                                      
   freebsd-jail        Discussion au sujet des environnements jail(8)         
   freebsd-java        Developpeurs Java(TM) et personnes portant et les JDKs 
                       sous FreeBSD                                           
   freebsd-kde         Portage de KDE et des applications pour KDE            
   freebsd-lfs         Portage de LFS sous FreeBSD                            
   freebsd-libh        Le systeme d'installation et de logiciel pre-compile   
                       de seconde generation                                  
   freebsd-mips        Portage de FreeBSD sur MIPS(R)                         
   freebsd-mobile      Discussions `a propos des ordinateurs portables        
   freebsd-mozilla     Portage de Mozilla sous FreeBSD                        
   freebsd-multimedia  Applications multimedia                                
   freebsd-new-bus     Discussions techniques au sujet de l'architecture de   
                       bus                                                    
   freebsd-net         Discussion au sujet des reseaux et du code source      
                       TCP/IP                                                 
   freebsd-openoffice  Portage d'OpenOffice.org et de StarOffice(TM) sous     
                       FreeBSD                                                
   freebsd-performance Questions relatives `a l'optimisation pour les         
                       installations `a charge/performances elevees.          
   freebsd-perl        Maintenance des logiciels portes relatifs `a perl      
   freebsd-pf          Discussions et questions concernant le systeme de      
                       coupe-feu packet filter                                
   freebsd-platforms   Portages sur des plateformes `a architecture non       
                       Intel(R)                                               
   freebsd-ports       Discussion sur le catalogue des logiciels portes       
   freebsd-ports-bugs  Discussion sur les bogues/PRs des logiciels portes     
   freebsd-ppc         Portage de FreeBSD pour le PowerPC(R)                  
   freebsd-proliant    Discussion technique sur l'utilisation de FreeBSD sur  
                       les serveurs HP ProLiant                               
   freebsd-python      Problemes concernant l'utilisation de Python sous      
                       FreeBSD                                                
   freebsd-qa          Discussion sur la qualite de FreeBSD, generalement     
                       entre deux versions                                    
   freebsd-rc          Discussion relative au systeme rc.d et `a son          
                       developpement                                          
   freebsd-realtime    Developpement des extensions temps reel de FreeBSD     
   freebsd-scsi        Sous-systeme SCSI                                      
   freebsd-security    Questions concernant la securite                       
                       Utilisation de FreeBSD dans les applications           
   freebsd-small       embarquees (obsolete, utilisez freebsd-embedded `a la  
                       place)                                                 
   freebsd-smp         Discussions sur la conception du traitement symetrique 
                       multiprocesseurs                                       
   freebsd-sparc64     Portage de FreeBSD sur les systemes SPARC(R)           
   freebsd-standards   Conformite de FreeBSD aux normes C99 et POSIX(R)       
   freebsd-sun4v       Portage de FreeBSD sur les systemes bases sur          
                       UltraSPARC(R) T1                                       
   freebsd-threads     Threading sous FreeBSD                                 
   freebsd-testing     Tests de stabilite et de performance de FreeBSD        
   freebsd-tokenring   Support du Token Ring sous FreeBSD                     
   freebsd-x11         Support et maintenance de X11 sous FreeBSD             
   freebsd-usb         Discussion sur le support USB sous FreeBSD             
   freebsd-vuxml       Discussion sur l'infrastructure VuXML                  
   freebsd-x11         Maintenance and support of X11 on FreeBSD              

   Liste `a acces restreint: les listes suivantes sont pour les assistances
   plus specialisees (et exigeantes) et ne sont probablement pas d'interet
   general. C'est aussi une bonne idee d'etre d'abord actif sur les listes
   techniques avant de vous inscrire `a une de ces listes limites de sorte
   que vous compreniez l'etiquette impliquee dans ces communications.

          Liste                                Objet                          
   freebsd-hubs        Pour ceux qui gerent des sites miroir (questions       
                       d'infrastructure)                                      
   freebsd-user-groups Coordination des groupes d'utilisateurs                
   freebsd-vendors     Coordination des fournisseurs des pre-versions         
   freebsd-www         Webmestres de www.FreeBSD.org                          

   Resume de liste: Toutes les listes ci-dessus sont egalement disponibles
   sous forme de resume. Une fois inscrit `a une liste, vous pouvez modifier
   vos options de resume dans les options de votre compte.

   Listes CVS lists: Les listes suivantes sont destinees aux personnes
   interessees par la lecture des journaux des modifications effectuees sur
   les differentes partie de l'arborescence des sources. Ce sont des listes
   `a lecture seule et on ne devrait pas y envoyer de messages.

                                                         Description de la    
      Liste     Partie de l'arborescence des sources    partie (des sources   
                                                            concernees)       
                                                      Toute modification de   
                                                      l'arborescence          
   cvs-all      /usr/(CVSROOT|doc|ports|projects|src) (agregation de          
                                                      l'ensemble des listes   
                                                      CVS)                    
                                                      Toutes les              
                                                      modifications           
   cvs-doc      /usr/(doc|www)                        effectuees sur les      
                                                      arborescences doc et    
                                                      www                     
                                                      Toutes les              
                                                      modifications           
   cvs-ports    /usr/ports                            effectuees sur          
                                                      l'arborescence des      
                                                      logiciels portes        
                                                      Toutes les              
                                                      modifications           
   cvs-projects /usr/projects                         effectuees sur          
                                                      l'arborescence des      
                                                      projets                 
                                                      Toutes les              
                                                      modifications           
   cvs-src      /usr/src                              effectuees sur          
                                                      l'arborescence des      
                                                      sources                 

  C.1.2. Comment s'inscrire

   Pour s'inscrire `a une liste, cliquez sur le nom d'une liste ci-dessus ou
   sur http://lists.FreeBSD.org/mailman/listinfo et cliquez ensuite sur la
   liste qui vous interesse. La page de la liste devrait contenir toutes les
   instructions necessaires `a l'inscription.

   Pour poster reellement sur une liste, envoyez simplement un courrier
   electronique `a l'adresse <nom-de-la-liste@FreeBSD.org>. Ce courrier sera
   alors redistribue `a l'ensemble des membres de la liste de par le monde.

   Pour vous desabonner d'une liste, cliquez sur l'URL se trouvant `a la fin
   de chaque message rec,u de la liste. Il est egalement possible d'envoyer
   un message `a <nom-de-la-liste-unsubscribe@FreeBSD.org> pour vous
   desabonner.

   Encore une fois, nous voudrions vous demander de garder aux discussions
   sur les listes techniques leur caractere technique. Si vous n'etes
   interesses uniquement que par les annonces importantes alors nous vous
   suggerons de vous inscrire `a la liste liste de diffusion pour les
   annonces relatives `a FreeBSD, dont le trafic n'est qu'occasionnel.

  C.1.3. Chartes d'utilisation des listes

   Il y a pour toutes les listes de diffusion FreeBSD des regles de base
   auxquelles tous leurs utilisateurs doivent se conformer. En cas de non
   respect de ces regles, et apres deux (2) avertissements ecrits de la part
   du "Postmaster" de FreeBSD <postmaster@FreeBSD.org>, au troisieme
   manquement, le contrevenant sera desabonne de toutes les listes de
   diffusion de FreeBSD, et ses messages ulterieurs filtres. Nous regrettons
   de devoir prendre de telles mesures, mais l'Internet d'aujourd'hui est un
   milieu relativement hostile, et beaucoup ne se rendent pas compte de la
   fragilite de certains de ses mecanismes.

   Regles generales:

     * Le sujet de tout message doit correspondre au sujet traite par la
       liste `a laquelle il est adresse, e.g., si c'est une liste concernant
       des problemes techniques alors le contenu de votre message doit etre
       technique. Le bavardage continu et les polemiques ne font que degrader
       la qualite de la liste de diffusion pour tous les utilisateurs et ne
       seront pas toleres. Pour des discussions libres sans sujet
       particulier, la liste de diffusion pour la discussion de sujets
       non-techniques en rapport avec FreeBSD est disponible et devrait etre
       utilisee dans ce cas.

     * Aucun message ne doit etre adresse `a plus de 2 listes de diffusion,
       et `a 2 listes uniquement dans le cas ou il y a une necessite evidente
       de poster sur les deux listes. Pour la plupart des listes, il y a
       dej`a beaucoup de souscripteurs communs, et mis `a part les cas les
       plus esoteriques (par exemple "-stable & -scsi"), il n'y a pas
       vraiment de raison de poster sur plus d'une liste `a la fois. Si vous
       recevez un message ou apparaissent sur la ligne Cc plusieurs listes de
       diffusion, vous devez purger cette ligne Cc avant d'y repondre. Vous
       etes toujours responsable de vos expeditions croisees, peu importe qui
       en a ete `a l'origine.

     * Les attaques personnelles et les insultes (dans le cadre d'une
       discussion) ne sont pas autorises, et cela concerne tout autant les
       utilisateurs que les developpeurs. Les manquements grossiers `a la
       "netiquette", citer ou reposter des courriers prives quand l'accord
       n'en a pas ete donne et ne le sera pas, par exemple, sont
       desapprouves, mais pas particulierement reprimes. Cependant de tels
       contenus entrent rarement dans le cadre des regles d'utilisation d'une
       liste, et entraineront donc probablement un avertissement (ou une
       exclusion) pour cette seule raison.

     * La publicite pour des produits ou services sans rapport avec FreeBSD
       est rigoureusement interdite et entrainera l'exclusion immediate s'il
       s'avere que le contrevenant adresse ses publicites par "courrier
       electronique non sollicite" - spam.

   Chartes liste par liste:

   freebsd-acpi

           Developpement de l'ACPI et de la gestion de l'energie

   freebsd-afs

           Systeme de fichiers Andrew - Andrew File System

           C'est une liste de discussion sur le portage et l'utilisation
           d'AFS de CMU/Transarc.

   freebsd-announce

           Evenements importants / etapes importantes pour le projet

           C'est une liste pour les gens interesses uniquement par les
           annonces occasionnelles d'evenements FreeBSD importants. Cela
           inclut les annonces d'instantanes et autres versions. Cela
           comprend egalement les annonces de nouvelles fonctionnalites de
           FreeBSD. Il peut y avoir aussi des appels `a volontaires, etc...
           C'est une liste de faible volume et rigoureusement moderee.

   freebsd-arch

           Discussions concernant l'architecture et l'implementation

           C'est une liste pour discuter de l'architecture de FreeBSD. Les
           messages y seront habituellement de nature technique. Des exemples
           de sujets qui cadrent avec cette liste sont:

              * Comment revoir le systeme de compilation pour que plusieurs
                compilations personnalisees puissent etre effectuees en meme
                temps.

              * Que faut-il corriger dans VFS pour que les couches Heidemann
                fonctionnent.

              * Comment modifier l'interface des pilotes de peripheriques
                pour que la meme interface fonctionne proprement sur
                differents bus et architectures.

              * Comment ecrire un pilote reseau.

   freebsd-audit

           Projet d'audit du code source

           C'est la liste de discussion pour le projet d'audit du code source
           de FreeBSD. Bien que n'etant `a l'origine destinee qu'aux
           modifications relatives `a la securite, sa charte a ete elargie
           pour l'examen de toute modification de code.

           Cette liste est tres chargee de correctif, et n'est probablement
           pas interessant pour l'utilisateur moyen de FreeBSD. Les
           discussions sur la securite non relatives `a une modification
           particuliere du code ont lieu sur freebsd-security.
           Reciproquement, tous les developpeurs sont encourages `a envoyer
           leur correctifs sur la liste pour examen, tout particulierement
           s'ils touchent une partie du systeme ou un bogue peut compromettre
           l'integrite du systeme.

   freebsd-binup

           Projet de mise `a jour binaire de FreeBSD

           Cette liste existe pour discuter du systeme de mise `a jour
           binaire, ou binup. Problemes de conception, details
           d'implementation, correctifs, rapports de bogue, rapport d'etat,
           demandes de fonctionnalites, traces des modifications du code, et
           tout ce qui peut avoir rapport avec binup sont `a leur place ici.

   freebsd-bluetooth

           Bluetooth(R) sous FreeBSD

           C'est un forum ou se rassemble les utilisateurs de la technologie
           Bluetooth(R) sous FreeBSD. Problemes de conception, details de
           l'implementation, rapports de bogues, etat du support, demande de
           fonctionnalites, et tous les sujets en rapport avec Bluetooth(R)
           sont les bienvenues.

   freebsd-bugbusters

           Coordination de la gestion des rapports de bogue

           L'objet de cette liste est de servir de forum de coordination et
           de discussion entre le "Boguemestre", ses chasseurs de bogues et
           toute autre partie interessee dans la base de donnees des PRs.
           Cette liste n'est pas destinee aux discussions sur des bogues
           specifiques, correctifs ou PRs.

   freebsd-bugs

           Rapports de bogue

           C'est la liste pour rapporter les bogues de FreeBSD. Chaque fois
           que c'est possible, les bogues devraient etre soumis en utilisant
           la commande send-pr(1) ou son interface WEB.

   freebsd-chat

           Sujets non-techniques en rapport avec la communaute FreeBSD

           Cette liste rec,oit le residu des discussions sur les autres
           listes: informations sociologiques, et non techniques. Cela va de
           savoir si Jordan ressemble ou non `a un furet de bande dessinee,
           s'il faut tapez en majuscules, qui boit trop de cafe, quelle est
           la meilleure biere, qui brasse de la biere dans sa cave, et ainsi
           de suite. Les annonces occasionnelles d'evenements importants (les
           prochaines fetes, mariages, naissances, nouveaux emplois, etc...)
           peuvent etre adressees aux listes techniques, mais doivent ensuite
           etre redirigees sur cette liste.

   freebsd-core

           Equipe de base de FreeBSD

           C'est une liste interne `a l'usage des membres de l'equipe de
           base. Des messages peuvent y etre adresses lorsqu'un sujet en
           rapport avec FreeBSD demande arbitrage ou examen `a haut niveau.

   freebsd-current

           Discussions concernant l'utilisation de FreeBSD-CURRENT

           C'est la liste de diffusion pour les utilisateurs de
           FreeBSD-CURRENT. Elle inclut avertissements au sujet de nouvelles
           fonctionnalites de -CURRENT qui affecteront les utilisateurs, et
           les instructions sur ce qu'il faut faire pour rester `a jour avec
           -CURRENT. Tous les utilisateurs de "CURRENT" doivent s'inscrire `a
           cette liste. C'est une liste de discussion technique sur laquelle
           le contenu doit etre strictement technique.

   freebsd-cvsweb

           Project CVSweb de FreeBSD

           Discussions techniques au sujet de l'utilisation, du developpement
           et de la maintenance du FreeBSD-CVSweb.

   freebsd-doc

           Project de documentation

           C'est la liste de discussion sur les questions et projets lies `a
           la redaction de documentation pour FreeBSD. Les membres de cette
           liste sont collectivement appeles "Le Projet de Documentation de
           FreeBSD" - The FreeBSD Documentation Project. C'est une liste
           ouverte; n'hesitez pas `a vous inscrire et `a participer!

   freebsd-drivers

           Ecrire des pilotes de peripheriques pour FreeBSD

           C'est une liste pour les discussions techniques au sujet des
           pilotes de peripheriques sous FreeBSD. C'est principalement un
           lieu ou les personnes ecrivant les pilotes peuvent poser des
           questions sur l'ecriture de pilotes utilisant les APIs du noyau
           FreeBSD.

   freebsd-eclipse

           Pour les utilisateurs FreeBSD de l'EDI Eclipse, les outils, les
           applications clientes et les logiciels portes.

           L'objectif de cette liste est de fournir un support pour tout que
           qui concerne le choix, l'installation, l'utilisation, le
           developpement et la maintenance de l'EDI Eclipse, des ses outils,
           de ses applications clients sous FreeBSD et l'aide au portage de
           l'EDI Eclipse et de ses greffons sous l'environnement FreeBSD.

           Le but est egalement de faciliter les echanges d'information entre
           les communautes Eclipse et FreeBSD pour un benefice mutuel.

           Bien que cette liste soit principalement destinee `a repondre aux
           demandes des utilisateurs d'Eclipse, elle est egalement un forum
           pour ceux qui desirent developper des applications specifiques `a
           FreeBSD en utilisant le systeme Eclipse.

   freebsd-embedded

           Utilisation de FreeBSD dans les applications embarquees

           Cette liste aborde les sujets relatifs `a l'utilisation de FreeBSD
           dans les systemes embarques. C'est une liste de diffusion `a
           caractere technique pour laquelle on attend un contenu strictement
           technique. Dans le cadre de cette liste, nous definissons le terme
           de systeme embarque pour les appareils informatises qui ne sont
           pas des stations de travail et qui sont destines `a une
           application bien particuliere et limitee par opposition aux
           systemes informatiques classiques. Des exemples de systemes
           embarques, parmi tant d'autres, sont les combines telephoniques,
           les equipements reseau comme les routeurs, les commutateurs et les
           PABXs, les equipements de mesure `a distance, les PDAs, les
           systemes de distributeurs, et ainsi de suite.

   freebsd-emulation

           Emulation d'autres systemes comme Linux/MS-DOS(R)/Windows(R)

           C'est une liste pour les discussions techniques relativent `a
           l'execution sous FreeBSD de programmes ecris pour d'autres
           systemes d'exploitation.

   freebsd-eol

           Entre-aide sur les logiciels relatifs `a FreeBSD et qui ne sont
           plus supportes par le projet FreeBSD.

           Cette liste est destinee aux personnes desirant proposer ou
           recherchant une aide pour les logiciels relatifs `a FreeBSD pour
           lesquels le projet FreeBSD ne fournir officiellement plus de
           support (par exemple sous la forme d'avis de secutite et de
           correctifs).

   freebsd-firewire

           FireWire(R) (iLink, IEEE 1394)

           C'est une liste pour les discussions sur la conception et le
           developpement d'un sous-systeme FireWire(R) (IEEE 1394, iLink)
           sous FreeBSD. Les sujets appropries incluent specifiquement les
           normes, les bus peripheriques et leur protocole, l'ensemble
           d'adaptateurs/cartes/circuits, et l'architecture et
           l'implementation de leur propre support.

   freebsd-fs

           Systemes de fichiers

           Discussions concernant les systemes de fichiers FreeBSD. C'est une
           liste de discussion technique sur laquelle le contenu doit etre
           strictement technique.

   freebsd-geom

           GEOM

           Discussions specifiques `a GEOM et aux implementations relatives.
           C'est une liste de diffusion technique sur laquelle le contenu
           doit etre strictement technique.

   freebsd-gnome

           GNOME

           Discussions concernant l'environnement de travail GNOME sous les
           systemes FreeBSD. C'est une liste de discussion technique sur
           laquelle le contenu doit etre strictement technique.

   freebsd-ipfw

           Coupe-feu IP

           C'est le forum pour les discussions techniques concernant la
           nouvelle implementation du code du coupe-feu IP sous FreeBSD.
           C'est une liste de discussion technique sur laquelle le contenu
           doit etre strictement technique.

   freebsd-ia64

           Portage de FreeBSD sur IA64

           C'est une liste de discussion technique pour les personnes
           travaillant sur le portage de FreeBSD sur la plate-forme IA-64
           d'Intel(R), pour soulever les problemes ou discuter de solutions
           alternatives. Ceux qui sont interesses `a suivre les discussions
           techniques sont aussi bienvenus.

   freebsd-isdn

           Communications ISDN

           C'est la liste pour les personnes discutant du developpement du
           support ISDN de FreeBSD.

   freebsd-java

           Developpement Java(TM)

           C'est la liste pour les personnes discutant du developpement
           d'applications Java(TM) significatives sous FreeBSD et du portage
           et de la maintenance des JDK(TM)s.

   freebsd-jobs

           Recherches et offres d'emplois

           C'est un forum pour poster des offres d'emplois et des curriculum
           vitae relatifs `a FreeBSD, c'est `a dire si vous cherchez un
           emploi concernant FreeBSD ou que vous offrez un emploi impliquant
           FreeBSD, alors c'est le bon endroit. Ce n'est pas une liste de
           diffusion pour les problemes generaux relatifs aux offres et `a la
           recherche d'un emploi puisque des forums adequats existent dej`a
           par ailleurs.

           Notez que cette liste, comme les autres listes de diffusion du
           domaine FreeBSD.org, est diffusee au niveau mondial. Par
           consequent, vous devez etre precis quant `a l'emplacement, les
           possibilites de travail `a distance ou de deplacement.

           Les messages devraient utiliser uniquement des formats ouverts -
           de preference du texte brut, mais le PDF, l'HTML, et quelques
           autres formats sont acceptables. Les formats proprietaires comme
           Microsoft(R) Word (.doc) seront rejetes par le serveur de la liste
           de diffusion.

   freebsd-kde

           KDE

           Discussions concernant KDE sous les systemes FreeBSD. C'est une
           liste de discussion technique sur laquelle le contenu doit rester
           strictement technique.

   freebsd-hackers

           Discussions techniques

           C'est le forum pour les discussions techniques au sujet de
           FreeBSD. C'est la principale liste technique. Elle est destinee `a
           ceux qui travaillent activement `a FreeBSD, pour soulever des
           problemes et discuter de solutions alternatives. Ceux qui sont
           interesses `a suivre les discussions techniques sont aussi
           bienvenus. C'est une liste de discussion technique sur laquelle le
           contenu doit etre strictement technique.

   freebsd-hardware

           Discussions generales sur le materiel pour FreeBSD

           Discussions generales sur les types de materiel sur lesquels
           tourne FreeBSD, les problemes rencontres et suggestions sur quoi
           acheter ou eviter.

   freebsd-hubs

           Sites miroir

           Annonces et discussions pour les personnes qui font fonctionner
           les sites miroir FreeBSD.

   freebsd-isp

           Questions concernant les fournisseurs d'acces `a Internet

           C'est la liste pour discuter des sujets qui interessent les
           fournisseurs d'acces Internet - Internet Service Providers (ISPs)
           - qui utilisent FreeBSD. C'est une liste de discussion technique
           sur laquelle le contenu doit etre strictement technique.

   freebsd-openoffice

           OpenOffice.org

           Discussions concernant le portage et la maintenance
           d'OpenOffice.org et StarOffice(TM).

   freebsd-performance

           Discussions au sujet de l'optimisation et l'acceleration de la
           vitesse d'execution de FreeBSD

           Cette liste de diffusion existe pour offrir un endroit aux
           hackers, administrateurs, et/ou les parties concernees pour
           discuter de sujets ayant trait aux performances de FreeBSD. Les
           sujets acceptables comprennent les discussions concernant les
           installations de FreeBSD qui sont soit sous charge importante,
           soit presentant des problemes de performance, ou encore qui
           repoussent les limites de FreeBSD. Les personnes desirant
           travailler sur l'amelioration des performances de FreeBSD sont
           grandement encouragees `a s'inscrire `a cette liste. C'est une
           liste hautement technique destinee aux utilisateurs experimentes
           de FreeBSD, aux hackers, ou aux administrateurs interesses par un
           FreeBSD rapide, robuste, et adaptable. Ce n'est pas une liste de
           questions-reponses qui remplace la lecture de la documentation,
           mais c'est un endroit ou il est possible d'effectuer des
           contributions ou de se preoccuper de sujets non-resolus relatifs
           aux performances.

   freebsd-pf

           Discussions et questions concernant le systeme de coupe-feu packet
           filter

           Discussions concernant le systeme de coupe-feu packet filter (pf)
           sous FreeBSD. Les discussions techniques ainsi que les questions
           des utilisateurs sont les bienvenues. Cette liste est egalement un
           endroit ou discuter du systeme de qualite de service ALTQ.

   freebsd-platforms

           Portage sur les plate-formes non Intel(R)

           Questions concernant le support d'autres plates-formes,
           discussions generales et propositions pour les portages sur des
           plates-formes non Intel(R). C'est une liste de discussion
           technique sur laquelle le contenu doit etre strictement technique.

   freebsd-policy

           Decisions de la politique de l'equipe de base

           C'est une liste de discussion `a faible trafic, et en lecture
           seule pour les decisions de la politique de l'equipe de base.

   freebsd-ports

           Discussion sur les "logiciels portes"

           Discussions concernant le ``catalogue des logiciels portes'' de
           FreeBSD (/usr/ports), propositions de portages, modifications de
           l'infrastructure du catalogue des logiciels portes et coordination
           generale. C'est une liste de discussion technique sur laquelle le
           contenu doit etre strictement technique.

   freebsd-proliant

           Discussion technique sur l'utilisation de FreeBSD sur les serveurs
           HP ProLiant

           Cette liste de diffusion doit etre utilisee pour les discussions
           techniques concernant l'utilisation de FreeBSD sur les serveurs HP
           ProLiant, y compris les discussions sur les pilotes specifiques `a
           ces machines, les logiciels de gestion, les outils de
           configuration, et les mises `a jour du BIOS. C'est egalement le
           premier endroit ou discuter des modules hpasmd, hpasmcli, et
           hpacucli.

   freebsd-python

           Python sous FreeBSD

           C'est une liste pour les discussions relatives `a l'amelioration
           du support de Python sous FreeBSD. C'est une liste de discussion
           technique. Elle est destinee aux personnes travaillant sur le
           portage de Python, de ses modules tiers partie et elements
           relatifs `a Zope sous FreeBSD. Les personnes interessees par ces
           discussions techniques sont egalement les bienvenues.

   freebsd-questions

           Questions des utilisateurs

           C'est la liste pour les questions `a propos de FreeBSD. Vous ne
           devriez pas adresser de questions du type "comment faire" aux
           listes techniques `a moins que vous n'estimiez que la question
           soit vraiment tres technique.

   freebsd-scsi

           Sous-systeme SCSI

           C'est la liste de diffusion pour ceux qui travaillent sur le
           sous-systeme SCSI de FreeBSD. C'est une liste de discussion
           technique sur laquelle le contenu doit etre strictement technique.

   freebsd-security

           Questions relatives `a la securite

           Questions ayant trait `a la securite des ordinateurs sous FreeBSD
           (DES, Kerberos, trous de securite connus et correctifs, etc...).
           C'est une liste de discussion technique sur laquelle le contenu
           doit etre strictement technique. Notez que ce n'est pas une liste
           de question-reponse, mais ce type de contribution (la question ET
           la reponse) `a la FAQ est le bienvenue.

   freebsd-security-notifications

           Avis de securite

           Notifications des problemes de securite concernant FreeBSD et
           correctifs. Ce n'est pas une liste de discussion. La liste de
           discussion correspondante est FreeBSD-security.

   freebsd-small

           Utilisation de FreeBSD dans les applications embarquees

           Cette liste discute de sujets relatifs aux installations
           inhabituellement petites et embarquees de FreeBSD. C'est une liste
           de discussion technique sur laquelle un contenu strictement
           technique est attendu.

  Note:

           Cette liste est obsolete depuis la creation de freebsd-embedded.

   freebsd-stable

           Discussions concernant l'utilisation de FreeBSD-STABLE

           C'est la liste de diffusion pour les utilisateurs de
           FreeBSD-STABLE. Elle inclut avertissements au sujet de nouvelles
           fonctionnalites de -STABLE qui affecteront les utilisateurs, et
           des instructions sur ce qu'il faut faire pour rester `a jour avec
           -STABLE. Tous les utilisateurs de la branche "STABLE" devraient
           s'inscrire `a cette liste. C'est une liste de discussion technique
           sur laquelle le contenu doit etre strictement technique.

   freebsd-standards

           Conformite aux normes C99 & POSIX

           C'est un forum pour les discussions techniques concernant la
           conformite de FreeBSD aux normes C99 et POSIX.

   freebsd-usb

           Discussion sur le support USB sous FreeBSD

           C'est une liste de diffusion pour les discussions techniques
           relatives au support de l'USB sous FreeBSD

   freebsd-user-groups

           Coordination des groupes d'utilisateurs

           C'est la liste pour les coordinateurs des differents groupes
           locaux d'utilisateurs, destinee `a leurs discussions entre eux et
           avec un membre designe de l'equipe de base. Cette liste doit se
           limiter aux comptes-rendus de reunions et `a la coordination de
           projets entre plusieurs groupes d'utilisateurs.

   freebsd-vendors

           Fournisseurs

           Coordination des discussions entre le projet FreeBSD et les
           fournisseurs de logiciel ou de materiel pour FreeBSD.

  C.1.4. Filtrages en vigueur sur les listes de diffusion

   Les listes de diffusion FreeBSD sont filtrees de plusieurs fac,ons en vue
   d'eviter la distribution de SPAM, de virus, et tout autre message
   non-sollicite. Les operations de filtrage decries dans cette section ne
   comprennent pas toutes celles utilisees pour proteger les listes re
   diffusion.

   Seuls certains types de pieces jointes sont autorises sur les listes de
   diffusion. Toutes les pieces jointes avec un format MIME qui ne figurent
   pas parmi la liste ci-dessous seront retirees avant que le message ne soit
   distribue sur les listes de diffusion.

     * application/octet-stream

     * application/pdf

     * application/pgp-signature

     * application/x-pkcs7-signature

     * message/rfc822

     * multipart/alternative

     * multipart/related

     * multipart/signed

     * text/html

     * text/plain

     * text/x-diff

     * text/x-patch

  Note:

   Certaines listes de diffusion pourront autoriser des pieces jointes sous
   d'autres formats MIME, mais la liste precedente devrait etre applicable
   pour la plupart des listes de diffusion.

   Si un message contient une version HTML et une version texte du contenu du
   message, la version HTML sera retiree. Si le corps d'un message est
   uniquement sous forme HTML, il sera converti sous forme texte brut.

C.2. Forums de discussion

   En plus de deux forums de discussion specifiques `a FreeBSD, il y en a de
   nombreux autres ou il est question de FreeBSD ou qui sont par ailleurs
   d'interet pour les utilisateurs de FreeBSD. Des archives interrogeables
   par mots-cles sont disponibles pour certains de ces forums, grace `a
   Warren Toomey <wkt@cs.adfa.edu.au>.

  C.2.1. Forums specifiques `a BSD

     * comp.unix.bsd.freebsd.announce

     * comp.unix.bsd.freebsd.misc

     * de.comp.os.unix.bsd (Allemand)

     * fr.comp.os.bsd (Franc,ais)

     * it.comp.os.freebsd (Italien)

     * tw.bbs.comp.386bsd (Chinois)

  C.2.2. Autres forums UNIX(R) interessants

     * comp.unix

     * comp.unix.questions

     * comp.unix.admin

     * comp.unix.programmer

     * comp.unix.shell

     * comp.unix.user-friendly

     * comp.security.unix

     * comp.sources.unix

     * comp.unix.advocacy

     * comp.unix.misc

     * comp.bugs.4bsd

     * comp.bugs.4bsd.ucb-fixes

     * comp.unix.bsd

  C.2.3. Systeme X Window

     * comp.windows.x.i386unix

     * comp.windows.x

     * comp.windows.x.apps

     * comp.windows.x.announce

     * comp.windows.x.intrinsics

     * comp.windows.x.motif

     * comp.windows.x.pex

     * comp.emulators.ms-windows.wine

C.3. Serveurs World Wide Web

     * Serveurs primaires

          * https://www.FreeBSD.org/

     * Afrique du Sud

          * http://www.za.FreeBSD.org/

     * Allemagne

          * http://www.de.FreeBSD.org/

     * Armenia

          * http://www1.am.FreeBSD.org/ (IPv6)

     * Australie

          * http://www.au.FreeBSD.org/

          * http://www2.au.FreeBSD.org/

     * Autriche

          * http://www.at.FreeBSD.org/ (IPv6)

     * Danemark

          * http://www.dk.FreeBSD.org/ (IPv6)

     * Espagne

          * http://www.es.FreeBSD.org/

          * http://www2.es.FreeBSD.org/

     * Finlande

          * http://www.fi.FreeBSD.org/

     * France

          * http://www1.fr.FreeBSD.org/

     * Hong-Kong

          * http://www.hk.FreeBSD.org/

     * Irlande

          * http://www.ie.FreeBSD.org/

     * Japon

          * http://www.jp.FreeBSD.org/www.FreeBSD.org/ (IPv6)

     * Lettonie

          * http://www.lv.FreeBSD.org/

     * Lituanie

          * http://www.lt.FreeBSD.org/

     * Norvege

          * http://www.no.FreeBSD.org/

     * Pays-Bas

          * http://www.nl.FreeBSD.org/

     * Republique Tcheque

          * http://www.cz.FreeBSD.org/ (IPv6)

     * Royaume-Uni

          * http://www1.uk.FreeBSD.org/

          * http://www3.uk.FreeBSD.org/

     * Russie

          * http://www.ru.FreeBSD.org/ (IPv6)

     * Slovenie

          * http://www.si.FreeBSD.org/

     * Suede

          * http://www.se.FreeBSD.org/

     * Suisse

          * http://www.ch.FreeBSD.org/ (IPv6)

          * http://www2.ch.FreeBSD.org/ (IPv6)

     * Taiwan

          * http://www.tw.FreeBSD.org/

          * http://www2.tw.FreeBSD.org/

          * http://www4.tw.FreeBSD.org/

          * http://www5.tw.FreeBSD.org/ (IPv6)

     * USA

          * http://www5.us.FreeBSD.org/ (IPv6)

C.4. Adresses electroniques

   Les groupes d'utilisateurs suivants fournissent `a leurs membres des
   adresses electroniques liees `a FreeBSD. Les administrateurs cites se
   reservent le droit de supprimer l'adresse si elle est `a l'origine d'abus.

      Domaine       Possibilites     Groupe d'utilisateurs         Administrateur    
                      offertes   
                    Transmission                                Lee Johnston         
ukug.uk.FreeBSD.org de courrier  <freebsd-users@uk.FreeBSD.org> <lee@uk.FreeBSD.org> 
                    uniquement   

C.5. Comptes

   Les groupes d'utilisateurs suivants fournissent des comptes aux personnes
   supportant le projet FreeBSD. Les administrateurs cites se reservent le
   droit de supprimer le compte s'il est `a l'origine d'abus.

            Hote               Acces       Possibilites     Administrateur    
                                             offertes    
                                          Adresse                             
   dogma.freebsd-uk.eu.org Telnet/FTP/SSH electronique,  Lee Johnston         
                                          espace Web,    <lee@uk.FreeBSD.org>
                                          FTP anonyme    

Annexe D. Cles OpenPGP

   Table des matieres

   D.1. Officiers

   Version franc,aise de Marc Fonvieille <blackend@FreeBSD.org>.

   Les cles OpenPGP des officiers FreeBSD.org sont donnees ici. Ces cles
   peuvent etre utilisees pour verifier une signature ou pour envoyer un
   courrier electronique chiffre `a un des officiers. Une liste complete des
   cles OpenPGP FreeBSD est disponible dans l'article Cles PGP. Le trouseau
   complet peut etre telecharger depuis
   https://www.FreeBSD.org/doc/pgpkeyring.txt.

D.1. Officiers

  D.1.1. L'officier de securite <security-officer@FreeBSD.org>

 pub   rsa4096/D39792F49EA7E5C2 2017-08-16 [SC] [expires: 2023-01-02]
       Key fingerprint = FC0E 878A E5AF E788 028D  6355 D397 92F4 9EA7 E5C2
 uid                            FreeBSD Security Officer <security-officer@FreeBSD.org>
 sub   rsa4096/6DD0A349F26ADEFD 2017-08-16 [E] [expires: 2023-01-02]


 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQINBFmT2+ABEACrTVJ7Z/MuDeyKFqoTFnm5FrGG55k66RLeKivzQzq/tT/6RKO9
 K8DaEvSIqD9b0/xgK02KgLSdp0Bucq8HLDFYUk3McFa6Z3YwjobNCWkxc72ipvVl
 uAOGN4H6fuoYOpeg4cLK1H9pktUIrzONTCixaZzc/Bu6X+aX4ywGeCfsuu8g5v03
 fLCPBLLgf3Bm5wsyZ6ZaGmsmILrWzd+d/rbr35Mcc5BekdgywUI4R191qo1bdrw9
 mEJP1V7Ik3jpExOsNnuhMTvm5OQMeCTfUvVEOtBU15QtbT+1LXF5FIOgML0LwS5v
 RHZN+5w/xvzSnEULpj24UuMKLDs/u9rj8U/zET8QaE+oG7m/mr4jJWZEmdX8HKdO
 WrpnVj6UAppk72qdBIEfLsOW2xB/NOjJpppbCQH3+sw7DRYA2UnKE9Mptj/KKiE4
 cs4c8Cupo2WSu93lEZDC5rCrULpT2lFeEXnRYlC/5oIgY5w9sFide9VI4CzHkkWX
 Z2NPW/i1w3mFhoXjvnNLGOYMfAMKPxsRC2/Bn3bY0IhKvuIZ4rAeu7FTmKDDqFKQ
 YEcrUOW74ZVng17AB29xzjWr4zNJVvp/CybFiUb8JoKkwtVWRqAVZIEgenAjU40d
 G5+W4e+ccL0mfTQfEBbXRjnL2BL2tnaoBR42cTfbZGRucPHz7MrlKBEeZQARAQAB
 tDdGcmVlQlNEIFNlY3VyaXR5IE9mZmljZXIgPHNlY3VyaXR5LW9mZmljZXJARnJl
 ZUJTRC5vcmc+iQJUBBMBCgA+FiEE/A6HiuWv54gCjWNV05eS9J6n5cIFAlmT2+AC
 GwMFCQoek4AFCwkIBwMFFQoJCAsFFgIDAQACHgECF4AACgkQ05eS9J6n5cKd9A/9
 Fz3uGjNy28D0ALT1d/JJGzdQ2R3YwspHk9KHBr1LePkog9wf1WRalwCeNtPmA+g5
 cn24psuzOeh1tRElImTZ2eE2ENPZ9XzK/J0ok0nK42MvmIwmMCyz+CaWv9GXW+FK
 0oXnFmHi4YaQUVN3p+45TGkD9T+O5biVww7P47n/NnWsTfhLx0bzC7LyjPKXINai
 /LgPgtlcOgY65/YhW/qhADCkoU7qMp9is41jMjTu1WB3OBPJkUkNpHfu6r15y8FN
 Wqsk7K4W6Obr/WQ6VKGGXgh/a5mTcaEoFGMO16uHijAY4nXeb2HGZlBKxgmPH9Ur
 aT4A9Pz/n+rIRMrK+rs+msFPemQHHNBYxy+x99uBpRBNyT2Su6GouZIxu5J16aIM
 V0ZyOy/dy7m/uJ4sMhJPqKkd8a+MoQs/2L1M1y1EAzsO/QZqIrKrCluaftNN9k/B
 qU0XClSDqB6sRMF7HFzYqb+f+M6cwSL/3Cp1Yx4rZ/onEE/MdWp64+3R87dETTXd
 5tWXQw04qOhfPri5cBTI7r3t/qMO1iNXCGSG5RJbGkas6N6t6Mj83L4ItjI8doLf
 aSIWZjj1XP3/me2hFJ6h2G5y5A+khO4ZwhC0ATFSq1fYbVGHw5AtfthIgNn8FoWu
 +Sb8h7/RqTr7F6LgWagAoAh0GtVj02SVABZjcNZz/AKJAjcEEAEKACEWIQQc9/9v
 rfXKn74bjLLtZ+zWXc9q5wUCWZPcTAMFAngACgkQ7Wfs1l3PauflkRAAgYcaBX0Y
 ic4btxKoP/eOVpgUciOPPKEhDCiloQDyf4XQnZFDoMfjgcHpbLTBZ6kiAz2UzDGr
 fJ4yUqrD+xfixUfCd5YpwzsaSpCGzDzSxOBcP/SpuAFhe40awSOIf5MruQar9Mlf
 33JyslDLULXXeewAq2pcGk0/WrrOragI6Cs2vPGy9XP96VvLxyhjrWjlKmnO+//w
 UF8oIO5hhKoqbtoxxlcqJgsWVyHch0mnPzvr6GWwoPhFXocnh1oPdbLjX1AwmGm9
 ltEYMge4QxONIXlXJR0TvuDuJOaLNvTOC3OI8L97fdBcZS7eNJrG5FAYR5Ft3ISf
 KJowIsSLGDt/cYApqpyP2pv7FpCvnwHgXHYar7/q4zhngCFRxQ2DPUx1cIJQ3Bgh
 HZolKyK1X7XE5ZVDfZ3s3gcHSVKS89pipgHHZNr4sSmOanA8rXHcyHS4o2zSi1ie
 r4iBwnOk6cCd6UNzEIiq0y/XhP/sc7xeL0mn3wDuV7jDBP9sp65sexL1qtIAfnzL
 pLQevm0z41ifrUH5nNeL6RdbXpaoXc8M4PJJeQKJDu04KzLcQpZdUdCJsbS6QO9w
 srWR8enQXPEhz2CO4L77bM9TgYO29222jTqEPcbXcmxF/klxO1rpssTTHUnHHi1Z
 LUGYCbZPjt+laTJ2YPHTjUtN1Jw85vSKCEuJATMEEAEKAB0WIQS7KNQLNg7uk2rt
 FW/l97zLo73d+AUCWjSYRwAKCRDl97zLo73d+JKyB/9N5Ytao12nD5QzMLvceGh5
 otCLN99TUryYiDVDLoNkBivq3jHQA/hOX2rwEueFq0+LF8/2DnglJuUICNtCxIzL
 WXXf/Hr5iWBUQ0JxYNPQzzjdMSXGE0WMwYVpAbCGxHpIsetKLdHUCwneYhaywe3I
 KzmRJSDJGV1IJB0sAfoFtgybZXHgIR61jQjtnNmmyYXliYCd0wmIhXQDFN91tzzG
 +EZdJ3Fao9JsMC+x55jO6EOLVySZgRF5E8vCeKUWemQciKFC7EhKcljILPYAA21u
 NmHCAgRHKWU9JMdFK0w9lQuN2HQaNfkahjarTNM/Q6LwxY0dLG0vVYifE085WFAf
 uQINBFmT2+ABEACxi39m5nQZexzY3c9sg/w5mUYCD89ZNSkj427gduQMYYGn7YW6
 jSPfVJ/V3+PDK824c0a0XasyDapQFY1CPTZYrReRPoyjb8tJjsSVGXXCTFpJZlFU
 br6kS9mgcx58Sypke2PMVk73+W1N1Yco+nahfTECRuM2/T2zHHr0AdKuBPF28U+H
 TxyLatKoIgQwHDs4E/f4ZTbAoHvu3PixAl7XHVXCgz0cHaLhRljXizbZDXngOdGm
 lqdFlAIpL6/l8E3m1Er0m3IfFo6qSzWRHg/KaBGIL4YKetJ6ACjlkCe5qbatDpmk
 gWlg3Ux4RBVjyCK834Xh7eZpEcNf2iwpm28glWh7XMHGUplTHkU3PWQ4vGfNxXB8
 HBOd9r02/cHL6MiHwhCAfIzZGVtqR0i9Ira57TMdXTpJWNXUcgsCMsi/Bg2a+hsn
 aiYLrZc18uNL5nqOqsqKG3c1TcmeN7nbxVgnrNST4AjteulkhmB9p8tNOXA3u979
 OO0T5LPwdqIpobdZ0lfw4URnAGw4Wd4Sm9PtRw0RvuAk2M2e5KXNyxPWAuMVkoRR
 a7wG6h/R8pki54Gexyc+JkfB4ZcOrzHNLurw6DhxroyfRs8WEgX0wNIGmJvCXSBG
 54jb5w9qudYwzIg4YPfvuX8sfeY8MTNhal3rF0tvVloGj3l709wlaWlBYwARAQAB
 iQI8BBgBCgAmFiEE/A6HiuWv54gCjWNV05eS9J6n5cIFAlmT2+ACGwwFCQoek4AA
 CgkQ05eS9J6n5cKhWw/+PT0R4r2gPAxI8ESEe380BYOmneNAH24MFOgWXqWCj4zX
 Uz992BVnW2aL5nH4O5d822LGeCrYUC7SCpQvlifdHZHjobgtizLTwuu40bc3gSOz
 cxWlx2jKfx3Ezn6QQz2mhhK6fZ1AO0ObiQxQq25ldURep95L78E/C8XkCe11YlUR
 ng3wQKeHM7awZWRw/QBC92haHuVtU3cx7At+zQL7jTBKSZqd34zzs0uoXIhk2h94
 O07MMDZ8z8MeU337vdL+RKYtD2bljLwpf7/kqg1D/q44RJ4ZpZcha9G0GvtLaQg2
 +MAPlLg1vOWZ8wOTLaQHm+uzYRpkqxkIV8OuVd4UikCd8t3VNjNG5rG/YRNIAX0A
 UEzs6oMF5YOFE8LmykesbUHAbC07Vcb0AsT5u3XKixDiIpPdnYSwGlkvoOVVLdeh
 q/aXLK9V8BpViG5+a8xP2fdF1eMqdnrKAsiO4GEiq193PN/FA049VeIs3fd0izAa
 x7+ag1MGtoF5Pij5iTVJm6phH5SUd1P3FY3OmclxWj/MbL4ba/G/6FWcy5NXxdw9
 L1bRqaM2KEHJ67aF6NZz7UMldwExAWzFbUon1LUpKysAukxVf0EnntydBeVOQ+JO
 HdqEpirrVLMpxPttUB2xxbo947nMj7/Bnme2gvb0vxaC9xSGVxrpW9cg5iCwSdc=
 =8rds
 -----END PGP PUBLIC KEY BLOCK-----

  D.1.2. Security Team Secretary <secteam-secretary@FreeBSD.org>

 pub   4096R/3CB2EAFCC3D6C666 2013-09-24 [expires: 2018-01-01]
       Key fingerprint = FA97 AA04 4DF9 0969 D5EF  4ADA 3CB2 EAFC C3D6 C666
 uid                          FreeBSD Security Team Secretary <secteam-secretary@FreeBSD.org>
 sub   4096R/509B26612335EB65 2013-09-24 [expires: 2018-01-01]

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQINBFJBjIIBEADadvvpXSkdnBOGV2xcsFwBBcSwAdryWuLk6v2VxjwsPcY6Lwqz
 NAZr2Ox1BaSgX7106Psa6v9si8nxoOtMc5BCM/ps/fmedFU48YtqOTGF+utxvACg
 Ou6SKintEMUa1eoPcww1jzDZ3mxx49bQaNAJLjVxeiAZoYHe9loTe1fxsprCONnx
 Era1hrI+YA2KjMWDORcwa0sSXRCI3V+b4PUnbMUOQa3fFVUriM4QjjUBU6hW0Ub0
 GDPcZq45nd7PoPPtb3/EauaYfk/zdx8Xt0OmuKTi9/vMkvB09AEUyShbyzoebaKH
 dKtXlzyAPCZoH9dihFM67rhUg4umckFLc8vc5P2tNblwYrnhgL8ymUaOIjZB/fOi
 Z2OZLVCiDeHNjjK3VZ6jLAiPyiYTG1Hrk9E8NaZDeUgIb9X/K06JXVBQIKNSGfX5
 LLp/j2wr+Kbg3QtEBkcStlUGBOzfcbhKpE2nySnuIyspfDb/6JbhD/qYqMJerX0T
 d5ekkJ1tXtM6aX2iTXgZ8cqv+5gyouEF5akrkLi1ySgZetQfjm+zhy/1x/NjGd0u
 35QbUye7sTbfSimwzCXKIIpy06zIO4iNA0P/vgG4v7ydjMvXsW8FRULSecDT19Gq
 xOZGfSPVrSRSAhgNxHzwUivxJbr05NNdwhJSbx9m57naXouLfvVPAMeJYwARAQAB
 tD9GcmVlQlNEIFNlY3VyaXR5IFRlYW0gU2VjcmV0YXJ5IDxzZWN0ZWFtLXNlY3Jl
 dGFyeUBGcmVlQlNELm9yZz6JAj0EEwEKACcFAlJBjIICGwMFCQgH7b8FCwkIBwMF
 FQoJCAsFFgIDAQACHgECF4AACgkQPLLq/MPWxmYt8Q/+IfFhPIbqglh4rwFzgR58
 8YonMZcq+5Op3qiUBh6tE6yRz6VEqBqTahyCQGIk4xGzrHSIOIj2e6gEk5a4zYtf
 0jNJprk3pxu2Og05USJmd8lPSbyBF20FVm5W0dhWMKHagL5dGS8zInlwRYxr6mMi
 UuJjj+2Hm3PoUNGAwL1SH2BVOeAeudtzu80vAlbRlujYVmjIDn/dWVjqnWgEBNHT
 SD+WpA3yW4mBJyxWil0sAJQbTlt5EM/XPORVZ2tvETxJIrXea/Sda9mFwvJ02pJn
 gHi6TGyOYydmbu0ob9Ma9AvUrRlxv8V9eN7eZUtvNa6n+IT8WEJj2+snJlO4SpHL
 D3Z+l7zwfYeM8FOdzGZdVFgxeyBU7t3AnPjYfHmoneqgLcCO0nJDKq/98ohz5T9i
 FbNR/vtLaEiYFBeX3C9Ee96pP6BU26BXhw+dRSnFeyIhD+4g+/AZ0XJ1CPF19D+5
 z0ojanJkh7lZn4JL+V6+mF1eOExiGrydIiiSXDA/p5FhavMMu8Om4S0sn5iaQ2aX
 wRUv2SUKhbHDqhIILLeQKlB3X26obx1Vg0nRhy47qNQn/xc9oSWLAQSVOgsShQeC
 6DSzrKIBdKB3V8uWOmuM7lWAoCP53bDRW+XIOu9wfpSaXN2VTyqzU7zpTq5BHX1a
 +XRw8KNHZGnCSAOCofZWnKyJAhwEEAEKAAYFAlJBjYgACgkQ7Wfs1l3PaudFcQ//
 UiM7EXsIHLwHxez32TzA/0uNMPWFHQN4Ezzg4PKB6Cc4amva5qbgbhoeCPuP+XPI
 2ELfRviAHbmyZ/zIgqplDC4nmyisMoKlpK0Yo1w4qbix9EVVZr2ztL8F43qN3Xe/
 NUSMTBgt/Jio7l5lYyhuVS3JQCfDlYGbq6NPk0xfYoYOMOZASoPhEquCxM5D4D0Z
 3J3CBeAjyVzdF37HUw9rVQe2IRlxGn1YAyMb5EpR2Ij612GFad8c/5ikzDh5q6JD
 tB9ApdvLkr0czTBucDljChSpFJ7ENPjAgZuH9N5Dmx2rRUj2mdBmi7HKqxAN9Kdm
 +pg/6vZ3vM18rBlXmw1poQdc3srAL+6MHmIfHHrq49oksLyHwyeL8T6BO4d4nTZU
 xObP7PLAeWrdrd1Sb3EWlZJ9HB/m2UL9w9Om1c6cb6X2DoCzQAStVypAE6SQCMBK
 pxkWRj90L41BS62snja+BlZTELuuLTHULRkWqS3fFkUxlDSMUn96QksWlwZLcxCv
 hKxJXOX+pHAiUuMIImaPQ0TBDBWWf5d8zOQlNPsyhSGFR5Skwzlg+m9ErQ+jy7Uz
 UmNCNztlYgRKeckXuvr73seoKoNXHrn7vWQ6qB1IRURj2bfphsqlmYuITmcBhfFS
 Dw0fdYXSDXrmG9wad98g49g4HwCJhPAl0j55f93gHLGIRgQQEQoABgUCUkGO5gAK
 CRAV1ogEymzfsol4AKCI7rOnptuoXgwYx2Z9HkUKuugSRwCgkyW9pxa5EovDijEF
 j1jG/cdxTOaJAhwEEAEKAAYFAlJBkdUACgkQkshDRW2mpm6aLxAAzpWNHMZVFt7e
 wQnCJnf/FMLTjduGTEhVFnVCkEtI+YKarveE6pclqKJfSRFDxruZ6PHGG2CDfMig
 J6mdDdmXCkN//TbIlRGowVgsxpIRg4jQVh4S3D0Nz50h+Zb7CHbjp6WAPVoWZz7b
 Myp+pN7qx/miJJwEiw22Eet4Hjj1QymKwjWyY146V928BV/wDBS/xiwfg3xIVPZr
 RqtiOGN/AGpMGeGQKKplkeITY7AXiAd+mL4H/eNf8b+o0Ce2Z9oSxSsGPF3DzMTL
 kIX7sWD3rjy3Xe2BM20stIDrJS2a1fbnIwFvqszS3Z3sF5bLc6W0iyPJdtbQ0pt6
 nekRl9nboAdUs0R+n/6QNYBkj4AcSh3jpZKe82NwnD/6WyzHWtC0SDRTVkcQWXPW
 EaWLmv8VqfzdBiw6aLcxlmXQSAr0cUA6zo6/bMQZosKwiCfGl3tR4Pbwgvbyjoii
 pF+ZXfz7rWWUqZ2C79hy3YTytwIlVMOnp3MyOV+9ubOsFhLuRDxAksIMaRTsO7ii
 5J4z1d+jzWMW4g1B50CoQ8W+FyAfVp/8qGwzvGN7wxN8P1iR+DZjtpCt7J+Xb9Pt
 L+lRKSO/aOgOfDksyt2fEKY4yEWdzq9A3VkRo1HCdUQY6SJ/qt7IyQHumxvL90F6
 vbB3edrR/fVGeJsz4vE10hzy7kI1QT65Ag0EUkGMggEQAMTsvyKEdUsgEehymKz9
 MRn9wiwfHEX5CLmpJAvnX9MITgcsTX8MKiPyrTBnyY/QzA0rh+yyhzkY/y55yxMP
 INdpL5xgJCS1SHyJK85HOdN77uKDCkwHfphlWYGlBPuaXyxkiWYXJTVUggSjuO4b
 jeKwDqFl/4Xc0XeZNgWVjqHtKF91wwgdXXgAzUL1/nwN3IglxiIR31y10GQdOQEG
 4T3ufx6gv73+qbFc0RzgZUQiJykQ3tZK1+Gw6aDirgjQYOc90o2Je0RJHjdObyZQ
 aQc4PTZ2DC7CElFEt2EHJCXLyP/taeLq+IdpKe6sLPckwakqtbqwunWVoPTbgkxo
 Q1eCMzgrkRu23B2TJaY9zbZAFP3cpL65vQAVJVQISqJvDL8K5hvAWJ3vi92qfBcz
 jqydAcbhjkzJUI9t44v63cIXTI0+QyqTQhqkvEJhHZkbb8MYoimebDVxFVtQ3I1p
 EynOYPfn4IMvaItLFbkgZpR/zjHYau5snErR9NC4AOIfNFpxM+fFFJQ7W88JP3cG
 JLl9dcRGERq28PDU/CTDH9rlk1kZ0xzpRDkJijKDnFIxT2ajijVOZx7l2jPL1njx
 s4xa1jK0/39kh6XnrCgK49WQsJM5IflVR2JAi8BLi2q/e0NQG2pgn0QL695Sqbbp
 NbrrJGRcRJD9sUkQTpMsLlQTABEBAAGJAiUEGAEKAA8FAlJBjIICGwwFCQgH7b8A
 CgkQPLLq/MPWxmZAew//et/LToMVR3q6/qP/pf9ob/QwQ3MgejkC0DY3Md7JBRl/
 6GWfySYnO0Vm5IoJofcv1hbhc/y3OeZTvK4s+BOQsNokYe34mCxZG4dypNaepkQi
 x0mLujeU/n4Y0p0LTLjhGLVdKina2dM9HmllgYr4KumT58g6eGjxs2oZD6z5ty0L
 viU5tx3lz3o0c3I9soH2RN2zNHVjXNW0EvWJwFLxFeLJbk/Y3UY1/kXCtcyMzLua
 S5L5012eUOEvaZr5iYDKjy+wOxY4SUCNYf0GPmSej8CBbwHOF2XCwXytSzm6hNb3
 5TRgCGbOSFTIy9MxfV5lpddQcdzijmuFSl8LySkL2yuJxjlI7uKNDN+NlfODIPMg
 rdH0hBSyKci6Uz7Nz/Up3qdE+aISq68k+Hk1fiKJG1UcBRJidheds29FCzj3hoyZ
 VDmf6OL60hL0YI1/4GjIkJyetlPzjMp8J7K3GweOUkfHcFihYZlbiMe7z+oIWEc7
 0fNScrAGF/+JN3L6mjXKB6Pv+ER5ztzpfuhBJ/j7AV5BaNMmDXAVO4aTphWl7Dje
 iecENuGTpkK8Ugv5cMJc4QJaWDkj/9sACc0EFgigPo68KjegvKg5R8jUPwb8E7T6
 lIjBtlclVhaUrE2uLx/yTz2Apbm+GAmD8M0dQ7IYsOFlZNBW9zjgLLCtWDW+p1A=
 =5gJ7
 -----END PGP PUBLIC KEY BLOCK-----

  D.1.3. Le secretaire de l'equipe de base <core-secretary@FreeBSD.org>

 pub   rsa4096/D8C8C83B49F26F17 2020-06-26 [SC] [expires: 2022-06-30]
       Key fingerprint = 4B64 E9E0 BDE9 B3EC C06B  5C66 D8C8 C83B 49F2 6F17
 uid                            FreeBSD Core Team Secretary <core-secretary@freebsd.org>
 sub   rsa4096/377C937536E4821B 2020-06-26 [E] [expires: 2022-06-30]


 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQINBF72HwABEAC5hl4kfh8DyRpp0WE5rwbnuS+wQ51EVTGs1vLho8OZ2XruzlQT
 AezCnKLsqMgD/UEaBcn9kbKoeqp2sIwuEUX+P79KhRc4C8RJ8TMfDH0OtC091QVp
 MYWbIsvZYCO04K+rN1Dbk2En3BOJVgTowqbZzR3hPvzeU2/P+Y3zMtpQGea2DB5d
 24Q/tIuPMh89evEXOx0K5eM/4P2awSmA3J+h+r09UYjKejJ5OBUJQsMervWAHgCA
 TxJQHoPXw+ZKpJB3dzyHKTMukVZhdCjK6Zt2tih/rO/CHDsitMgYRIl3w2X6pDfV
 JOpvOBlzg7nooIw94v6Uxr2y/JWgOGh2qy07u4qE//y6uSl55s+Vq5TrFr79VSwB
 GhY9As/0Dk1lyFisKp1/yiet2W7Pu4c99Z5dsrQPSTLFvkvonVRX8wgxRZwk6gWA
 LEYklwoR0NXiqlrpBT10Tsnsa4aoUvZW6eyOWZrKsdsVn05sgRmvlfpiqBbwqldJ
 0EeF/MztPuhmq4Hgn+DmmYnx/P85pZpThcfJx16VxS8nB7ExYljeC9LF8V8/1d7e
 tfgAj8ezzNtr2TXSZ5gblQtYLjKdgBiBZqsxHPYHzfG8Zx3eYs2Myklf9p4lt7nv
 atTroDt8pUGXfhGfoqSHSLXODfYAO9/7DOPqTy5Pan4i7aWBPP+gfK0kgQARAQAB
 tDhGcmVlQlNEIENvcmUgVGVhbSBTZWNyZXRhcnkgPGNvcmUtc2VjcmV0YXJ5QGZy
 ZWVic2Qub3JnPokCVAQTAQoAPhYhBEtk6eC96bPswGtcZtjIyDtJ8m8XBQJe9h8A
 AhsDBQkDx60ABQsJCAcDBRUKCQgLBRYDAgEAAh4BAheAAAoJENjIyDtJ8m8XQFwP
 /RqHPMSsLlTcq5NfK2MAVGmdtpL5wf84bchVWtcXUUEwXW1wI2cdDwu9SoqudDbP
 2lrbMpxWeUWAgCpPCF/vCVo4Nzd0zb1cEGKRKFiZe/4EQ8dfvqr03YyupSQvx6+P
 oY+8y3kl7iHJKBkwrASraB2p+N9XDAJDgqz+1M2Xbo7rcJx64wBOCyPAxd9JWsge
 d8mXyAqZlrLihsTjLbhuYbJxpKM5YjGubVaQZaNIDxUduqc8Pt9VgHvWJBc9VPPA
 3B6E9/PUFZYZeZQSROkYniN9NE7keitxj/rvZkpzcaXfAoDMC7CSoLBzlP+CJZ+i
 Kk7IWz4JpxiYkE/IY4VvMMYms9tRP8fVv0+R7r7yKEA9SSlH+e9qC++OoWg4b+wV
 OrWtVIWvaJCtj5ZAPCutGZxBdvXEbHd/Gv6uCzG86n4huz23U+Y4iLzoAlVelnQs
 Hqu1wSAUBNpplyeZ1TvrGg2pufxLh8iXfh0npDP/6J+u0GUfeX4JoAzvxlatXMYI
 fBmqmcZI6ShJN8qQtCUa5OMqbnieo7Fmpf8BsLegjAsQ+8w21ATD2boinStntLzF
 /yoL/z9WYxmoOdHYcQ8bildjCvtbAKrZie8sI4SgWQz2UX6KX9sc/WOmWUEtjdqB
 WfGratZNoxuQLUvEDftt7r9ts1jKVUl3dMPTCfU4wcj5iQIzBBABCgAdFiEEVbCT
 pybDiFVxIrrVNqQMg7DW754FAl72J74ACgkQNqQMg7DW756LaA//Z3CCF5fQ08tx
 RLeqHNsS5xCYS97TjZxY6xAMBjebkS+ABkgdbedSH+YNGfdaGSD/SMtvMAmnx55t
 18DDdA4pqC5x2USaHjXFdbDdxKuKMAoSAtOpipVASVmW0FkZI5C5FDe3MF8+mfGb
 EPhVPwKbo7R5tk4jUPyX8wUaOAyUX9fyQnwDxN+zTHvKwnX/+qwpoKaY2N4ZOI0w
 rOF1kkczibbfwvjVYcpPovGALmTccnWo1Xvpkhllg93Y21mH+T2Ub/BK3GhvgJQi
 WwiDtMwelUnPLp4W1451OU1OyGzeT/XwuMPH9dsKz5Iw4/g1zqQEtZj2Gc0DP5we
 HM50doTn+dVIF+WCFLhPYm0RSf8Zj8ngbX/HV2UYLB5k+uNT9YTnBVEdKVydx7Cp
 IplC7XApJEfTUk7wl7YCGn5P5YolC7DSJlwcAjxdbffXLowBhgyOq+EJJgnqerZl
 r4db58h2epIHRKgnSl5z4KoAGW1O5dFShBz1UYPj4cZdeE+twpcgEg3/7LMzPzF/
 xQAQZ89axxXBaCPl+YVsuMJSerbNdPp1SjCs9e8Vev91tLFmt/sY4IpvbPHZavGl
 /4ealh8E1zPgf8lVW9TPrUY6mjN/uDI2y39tk2EoFzOcSQhlEM6gRW8uV4q92cWM
 V55hu7Vs2RrKA7fve9y+YBi3DdTwwHSJATMEEAEKAB0WIQSfAoNvUNOtWrdaxYgM
 tAPk6VuW7AUCXvY98wAKCRAMtAPk6VuW7CDLB/9PSUSMV/pnC+X4ougpjpqfSJf8
 5bozjkKSkNqXZmt2vJVImc/oSK13awq46FC4rAhk59lT3kaH6EKvDHQ5G8Twi07u
 VotcOdtfMjXgPV6RLmo6Hps0E1nzmbsum6xeemRDf3D3n1kAdUteXNBxHTIdAbeY
 p4Wxu46CC/SqD6HbnUF2o+/6dXXyV1lTnViIj6m5eFD2OQ4Jdq7GPsSjSS2XL4f9
 jHZUOUJyyA0aFWjJ+SCzMkXSUnyiOCl4uUHdCgivLIRyZ/giWoQpr8sAgHXCh82h
 T3BmbHgmcMgMh+wNxH878IPwUU0CKRd2dL5kOSZVCFuMnFsc9eIie5kMEJwPuQIN
 BF72HwABEADT9l4GIYiFaYg2QbQ3wsmmFnP/pAZiHDxXI6wL6xCKj6o2sc1/b5j3
 ILEiAoqZ5ZenXX6T7Epjal0ASkfsGo/n3vF18grSudIkXJPQXcb61fXU7xfmGAEU
 HWABQG+OD/HTvUPAITVckl4LxVFkz3oqRnq13rxDk1XZYvLVWeBn8vfWF4/glz9k
 etfLw71Pk9f86BuNb0vCPnWpOpZaOxKlabdGpMKDD+1RYC/L+ZEwKiLBfgXTzK3g
 IWAX3kTrQjKBZzsQ0s5TFWkm+z80GVUq8HKlXUOuF8s7cX+KXGU2kYcC8DQrxPdL
 jYm6N8axOn4RR8eP5ZFA0W7qMieFSHAjqCs4srdN1bGC3nS0zGsQCvtTRBbu0nen
 O6uwzWQgTzWVfV+dqaEH2crnhn5CUI0A8jdbFBGDiBbWJz/QfRray1CEc8q+hZFM
 OLBsVXrDVe6hUXTveGc9xAnXC+0o3nnc7WhWr1caTbbhnzlEbME8u2oLif7rkhc7
 FanuQEyKa76J1zou08ZeLK/pUFXTbRCoyUEVL+VIxLESCWi1ptkDpiZey3l6fe0Q
 WWRMLFMpbu3WTNl21bEwfRL03+fP1q+yGAV5hyJv/EMldd76v577dAolIsTh+aDP
 PMJ7mJ5NwOuiC20HIlCjuVT5A2pBIzFfraZY/v4dzoaOpXZjEz9wIwARAQABiQI8
 BBgBCgAmFiEES2Tp4L3ps+zAa1xm2MjIO0nybxcFAl72HwACGwwFCQPHrQAACgkQ
 2MjIO0nybxcflQ/9FYvM/lBSzy4VFOjNsUkRtjmPtyw2dJmQOCbWoSHmibRCG26a
 Upt5lp1n4LG/qEtDlus5mDETL+/TnYhCG+hhnHADc87goLwBwl37yK1NAYvOy2rm
 TddjDT5vZW0yzHjHqIJlNxQ4OjMi/XjyHIzb0PGNayFVi3XkLVxWZI+lWON1btWk
 gpFfEgqRqQbJxM2cSEQimkfrrE+b2/M4cGX9rThpTtpfpbyHjTsS6juo4/eIdnBA
 UXpKce4Q9LB5zxDaakKoDVxxkc9R0HAAoIH4u+Fu8az+CuH2sJcVJWK7Nxct++N8
 Xhj+FUS+Ay8siu+ScQjsOHOHRwr6a+6NT58eylwR5hwotmnzJHLZReqknoAjLEGT
 d33jzKM/y6OqPe/oPGj2b13RkA2vRnCPm33+T57sLMonNe6hhlXs9VTgXxSAzfMa
 cmVOdP+nxUsoc3MtqjE2z2BcI9WMmmJFeEgE2BOj703CQuot+8jcZFXGUW+i6V1a
 k7dZEMDsbALNzxaRNGeJC6HiM1+dXFGLNHEIgBLGwdvFAxTfNauvK0p7skDWEx44
 giaUjZYpQ21+SHjVKTUnFQiiIDORvs3jdZDaxK/Y/vSoLRUiLBiHZWa6mxQY4uc6
 5nAzLZB2BiBRfdL8fEO154nWjAZBLbKhK+ke2DBoPvSWubLPJqZyh+GmZAE=
 =3AI7
 -----END PGP PUBLIC KEY BLOCK-----

  D.1.4. Le secretaire de l'equipe de gestion des logiciels portes
  <portmgr-secretary@FreeBSD.org>

 pub   rsa2048/D8294EC3BBC4D7D5 2012-07-24 [SC]
       Key fingerprint = FB37 45C8 6F15 E8ED AC81  32FC D829 4EC3 BBC4 D7D5
 uid                            FreeBSD Ports Management Team Secretary <portmgr-secretary@FreeBSD.org>
 sub   rsa2048/5CC117965F65CFE7 2012-07-24 [E]


 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQENBFAOzqYBCACYd+KGv0/DduIRpSEKWZG2yfDILStzWfdaQMD+8zdWihB0x7dd
 JDBUpV0o0Ixzt9mvu5CHybx+9lOHeFRhZshFXc+bIJOPyi+JrSs100o7Lo6jg6+c
 Si2vME0ixG4x9YjCi8DisXIGJ1kZiDXhmVWwCvL+vLInpeXrtJnK8yFkmszCOr4Y
 Q3GXuvdU0BF2tL/Wo/eCbSf+3U9syopVS2L2wKcP76bbYU0ioO35Y503rJEK6R5G
 TchwYvYjSXuhv4ec7N1/j3thrMC9GNpoqjVninTynOk2kn+YZuMpO3c6b/pfoNcq
 MxoizGlTu8VT4OO/SF1y52OkKjpAsENbFaNTABEBAAG0R0ZyZWVCU0QgUG9ydHMg
 TWFuYWdlbWVudCBUZWFtIFNlY3JldGFyeSA8cG9ydG1nci1zZWNyZXRhcnlARnJl
 ZUJTRC5vcmc+iQE4BBMBAgAiBQJQDs6mAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIe
 AQIXgAAKCRDYKU7Du8TX1QW2B/0coHe8utbTfGKpeM4BY9IyC+PFgkE58Hq50o8d
 shoB9gfommcUaK9PNwJPxTEJNlwiKPZy+VoKs/+dO8gahovchbRdSyP1ejn3CFy+
 H8pol0hDDU4n7Ldc50q54GLuZijdcJZqlgOloZqWOYtXFklKPZjdUvYN8KHAntgf
 u361rwM4DZ40HngYY9fdGc4SbXurGA5m+vLAURLzPv+QRQqHfaI1DZF6gzMgY49x
 qS1JBF4kPoicpgvs3o6CuX8MD9ewGFSAMM3EdzV6ZdC8pnpXC8+8Q+p6FjNqmtjk
 GpW39Zq/p8SJVg1RortCH6qWLe7dW7TaFYov7gF1V/DYwDN5iEYEEBECAAYFAlN2
 WksACgkQtzkaJjSHbFtuMwCg0MXdQTcGMMOma7LC3L5b4MEoZ+wAn0WyUHpHwHnn
 pn2oYDlfAbwTloWIiQEcBBABAgAGBQJQDuVrAAoJENk3EJekc8mQ3KwIAImNDMXA
 F8ajPwCZFpM6KDi3F/jpwyBPISGY1oWuYPEi1zN94k5jS90aZb3W8Y8x4JTh35Ew
 b6XODi3uGLSLCmnlqu2a80yPfXf5IuWmIQdFNQxvosj9UHrg+icZGFmm+f0hPJxM
 TsZREv3AvivQfnb/N3xIICxW4SjKSYXQcq4hr4ObhUx7GKnjayq+ofU2cRlujr87
 uOH0fO3xhOJG4+cX5mI1HGK38k0Csc1zqYa/66Qe5dnIZz+sNXpEPMLAHIt1a45U
 B967igJdZSDFN33bPl1QWmf3aUXU3d1VttiSyHkpm4kb9KgsDkUk1IJ5nUe9OXyd
 WtoqNW5afDa5N0aIRgQQEQIABgUCUA7lwwAKCRB59uBxdBRinNh2AJ41+zfsaQSR
 HWvSkqOXGcP/fgOduwCfUJDT+M1eXe2udmKof/9yzGYMirKJASIEEAECAAwFAlAa
 IT8FAwASdQAACgkQlxC4m8pXrXwCHAf+J7l+L7AvRpqlQcezjnjFS/zG1098qkDf
 lThHZlpVnrBMJZaXdvL6LzVgiIYVWZC5CSSazW9EWFjp9VjM7FBHdWFZNMV7GAuU
 t0jzx6gGXOWwi+/v/hs1P11RyDZN5hICHdPNmyZVupciDxe+sIEP9aEbVxcaiccq
 zM/pFzIVIMMP5tCiA42q6Mz3h0hy6hntUKptS8Uon6sje5cDVcVlKAUj1wO2cphC
 qkYlwMQfZV5J9f/hcW5ODriD3cBwK8SocA2Cq5JYF8kYDL1+pXnUutGnvAHUYt87
 RWvQdKmfXjzBcMFJ2LlPUB1+IFvwQ13V9R8j9B/EdLmSWQYT9qRA2okCHAQTAQoA
 BgUCV1XMpwAKCRCtu/hhCjeJt2CyD/9JLe+Ck23CJkeRSF8oC+4SFOUdSAmejSzn
 klPwmEClffABYd/kckO1T6um+2FUcXuJZQE1nKKUNvZ8pBWwsm1RDHsyroKi/XB1
 0a1Tdx/rvlU88ytbeLfUCLzoCrf6pkMQWoU6/3qS6elV0WwOlDufk+XjD1sja2wu
 sshG8y+1WCA5JjP3rZdD9NVdzo5DgkotTRUfuYN1LJIN4zlDgHj7FVP7wW7+R0cZ
 FoOiNsLJCA0FN8SiyU98UysjawLiIY9dTJz6XVA0DgB0TZWO3mWiDjITeKrdGcqf
 PNiJhmvUKBkn07YpTPNfkoTT/p/q5ChYmu0ubGeyS1ELKjmklJ+DzynfZLzvnXYX
 Ngo5ckeuqEqUNxM0J63v8lmfhDRROFveqHWdp0XMxXVmR5bMunSldg5EZsoLyQbN
 +ScIPnDTAEPGrCtf0t84RQxNQeET6/WBbZfzeSeAFmpBFCdicsZ6Mjwtwjr4+o15
 n1QMTZco1NaTqf8vXwzl9wM4aYtg1OkF4z8HdHuy50CHCet4mT5eJgwZUfFvXdbM
 pHXprEI0Y9OOL4aMinC1egF3dXt/0n57i6CE+E2k3UJPNvMrtp0HaDEnKZ8cfkBU
 EBzkUYi5wwqntHV2JRisqoRnHdvJT7ImlHMe7WaJsifBK874PnToaKg8P6K1Tph+
 FyLxULaYjYkCHAQSAQgABgUCVBg2zwAKCRDqsDxYv9xHj1klEADXYJdHC3zsdx7w
 DsJsttWdykcZoOd/VUKUdN0BAU72nLV0tLn4uFjETA6MhHZVxzwIDTeLB8kqyEpc
 fZnoVbqJIUJz1sJXMdOty7CwZzlZlAwmUaIfFiazJY1p398JbyYfSrVKNOpw9wCm
 Db7WP9dBritwvjaLzu8HQsiztO0S/5ha/EDfTU3qocBUTjbCtGR9LqAmPE4X8+li
 F2EfZMEoJd3rJWsYv2y/k6pSgC/MpQewnyr6f+JQ/781UoZB6PpxCxfu4D6xlOyd
 ERBUg+FfDAWYR+KX+DGOalRlUyaSz8Nvxl8/b0Im/AQhx9afqyEZxIDpg52zt8jJ
 t3wx23YP8EQGUgwF8pIrj3wFSBSG3a/cskiBNUIhChIR9hQrVPUahN/jx7DGAGxk
 /Ka9qsRGYTHfSr9jjTUQ+htfeFBRDR0nkZKMo5+Wk/cAcBKVbPlBpwvnzT3fh+wL
 cF3ErBbx5jp+BoFee8D6ATeUvQxMcgVbDPUkgMsy3EtKMVO10jhIoXoVV+Sg9GZ8
 zMEy1tORKn0zsd2ZgXC2sRJOm5ttCSdYQ4ddbM1A9jg6tiRx4hES16GDywvkL8P2
 M9+qyIfjQxjGU33f/r8zp9DyNT1VlrtwhFxtOoMdmrsbYOCTja4Xg14hK1hRac0k
 GB7bj6w97p8uMrQT3PlSMtoyrRyo7bkBDQRQDs6mAQgAzNxJYpf5PrqV8pdRXkn3
 6Fe45q671YtbZ2WrT7D0CVZ8Z+AZsxnP/tiY1SrM2MepCeA2xBAhKGsWBWo1aRk5
 mfZOksKsiXsi2XeBVhdZlCkrOMKBTVian7I1lH59ZnNIMX0Nl0tlj3L1IjeWWNvf
 ej43URV81S9EmSwpjaWboatr2A+1oJku5m7nPD9JIOckE1TzBsyhx7zIUN9w6MKr
 7gFw8DCzypwUKyYgKYToVm8QlkT/L3B0fuQHWhT6ROGk4o8SC71ia5tc1TzUzGEZ
 1AQO8bbnbmJLBDKveWHCoaeAkRzINzoD9wAn9z4pnilze59QtKC1cOqUksTvBSDh
 6wARAQABiQEfBBgBAgAJBQJQDs6mAhsMAAoJENgpTsO7xNfVOHoH/i5VyggVdwpq
 PX8YBmN5mXQziYZNQoiON8IhOsxpX4W2nXCj5m6MACV6nJDVV6wyUH8/VvDQC9nH
 arCe1oaNsHXJz0HamYt5gHJ0G1bYuBcuJp/FEjLa48XFI7nXQjJHn8rlwZMjK/PW
 j1lw2WZiekviuzTEDH8c3YStGJSa+gYe8Eyq3XJVAe2VQOhImoWgGDR3tWfgrya/
 IdEFb/jmjHSG5XUfbI0vNwqlf832BqSQKPG/Zix4MmBJgvAz4R71PH8WBmbmNFjD
 elxVyfz80+iMgEb9aL91MfeBNC2KB1pFmg91mQTsiq7ajwVLVJK8NplHAkdLmkBC
 O8MgMjzGhlE=
 =iw7d
 -----END PGP PUBLIC KEY BLOCK-----

  D.1.5. <doceng-secretary@FreeBSD.org>

 pub   rsa2048/E1C03580AEB45E58 2019-10-31 [SC] [expires: 2022-10-30]
       Key fingerprint = F24D 7B32 B864 625E 5541  A0E4 E1C0 3580 AEB4 5E58
 uid                            FreeBSD Doceng Team Secretary <doceng-secretary@freebsd.org>
 sub   rsa2048/9EA8D713509472FC 2019-10-31 [E] [expires: 2022-10-30]


 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQENBF27FFcBCADeoSsIgyQUY8vREwkTikwFFlNg31MVy5s/Nq1cNK1PRfRMnprS
 yfB62KqbYuz16bmQKaA9zHN4FGfiTvR6tl66LVHm1s/5HPiLv8sP14GsruLro9zN
 v72dO7a9i68bMw+jarPOnu9dGiDFEI0dACOkdCGEYKEUapQeNpmWRrQ46BeXyFwF
 JcNx76bJJUkwk6fWC0W63D762e6lCEX6ndoaPjjLBnFvtx13heNGUc8RukBwe2mA
 U5pSGHj47J05bdWiRSwZaXa8PcW+20zTWaP755w7zWe4h60GANY7OsT9nuOqsioJ
 QonxTrJuZweKRV8fNQ1EfDws3HZr7/7iXvO3ABEBAAG0PEZyZWVCU0QgRG9jZW5n
 IFRlYW0gU2VjcmV0YXJ5IDxkb2Nlbmctc2VjcmV0YXJ5QGZyZWVic2Qub3JnPokB
 VAQTAQoAPhYhBPJNezK4ZGJeVUGg5OHANYCutF5YBQJduxRXAhsDBQkFo5qABQsJ
 CAcDBRUKCQgLBRYDAgEAAh4BAheAAAoJEOHANYCutF5YB2IIALw+EPYmOz9qlqIn
 oTFmk/5MrcdzC5iLEfxubbF6TopDWsWPiOh5mAuvfEmROSGf6ctvdYe9UtQV3VNY
 KeeyskeFrIBOFo2KG/dFqKPAWef6IfhbW3HWDWo5uOBg01jHzQ/pB1n6SMKiXfsM
 idL9wN+UQKxF3Y7S/bVrZTV0isRUolO9+8kQeSYT/NMojVM0H2fWrTP/TaNEW4fY
 JBDAl5hsktzdl8sdbNqdC0GiX3xb4GvgVzGGQELagsxjfuXk6PfOyn6Wx2d+yRcI
 FrKojmhihBp5VGFQkntBIXQkaW0xhW+WBGxwXdaAl0drQlZ3W+edgdOl705x73kf
 Uw3Fh2a5AQ0EXbsUVwEIANEPAsltM4vFj2pi5xEuHEcZIrIX/ZJhoaBtZkqvkB+H
 4pu3/eQHK5hg0Dw12ugffPMz8mi57iGNI9TXd8ZYMJxAdvEZSDHCKZTX9G+FcxWa
 /AzKNiG25uSISzz7rMB/lV1gofCdGtpHFRFTiNxFcoacugTdlYDiscgJZMJSg/hC
 GXBdEKXR5WRAgAGandcL8llCToOt1lZEOkd5vJM861w6evgDhAZ2HGhRuG8/NDxG
 r4UtlnYGUCFof/Q4oPNbDJzmZXF+8OQyTNcEpVD3leEOWG1Uv5XWS2XKVHcHZZ++
 ISo/B5Q6Oi3SJFCVV9f+g09YF+PgfP/mVMBgif2fT20AEQEAAYkBPAQYAQoAJhYh
 BPJNezK4ZGJeVUGg5OHANYCutF5YBQJduxRXAhsMBQkFo5qAAAoJEOHANYCutF5Y
 kecIAMTh2VHQqjXHTszQMsy3NjiTVVITI3z+pzY0u2EYmLytXQ2pZMzLHMcklmub
 5po0X4EvL6bZiJcLMI2mSrOs0Gp8P3hyMI40IkqoLMp7VA2LFlPgIJ7K5W4oVwf8
 khY6lw7qg2l69APm/MM3xAyiL4p6MU8tpvWg5AncZ6lxyy27rxVflzEtCrKQuG/a
 oVaOlMjH3uxvOK6IIxlhvWD0nKs/e2h2HIAZ+ILE6ytS5ZEg2GXuigoQZdEnv71L
 xyvE9JANwGZLkDxnS5pgN2ikfkQYlFpJEkrNTQleCOHIIIp8vgJngEaP51xOIbQM
 CiG/y3cmKQ/ZfH7BBvlZVtZKQsI=
 =MQKT
 -----END PGP PUBLIC KEY BLOCK-----

                               Glossaire FreeBSD

   Ce glossaire definit des termes et des acronymes specifiques `a FreeBSD.

  B

   Berkeley Software Distribution

           C'est le nom qu'a donne le groupe de recherche en systemes
           informatique ("Computer Systems Research Group") de Berkeley aux
           ameliorations et modifications qu'il a apporte `a l'UNIX(R) 32V
           d'AT&T.

   Bikeshed Building

           Un phenomene selon lequel beaucoup de gens donnent leur opinion
           sur un sujet trivial, tandis qu'un sujet complexe n'est que peu ou
           pas du tout debattu. Consultez la FAQ pour l'origine de ce terme.

   BSD

           Voir Berkeley Software Distribution.

  K

   Kernel Scheduler Entities

           Un systeme de threading supporte par le noyau. Consultez la page
           du projet pour plus de details.

   KSE

           Voir Kernel Scheduler Entities.

  M

   Merge From Current

           Integration d'une fonctionnalite ou d'un correctif de la branche
           -CURRENT vers une autre branche, la plupart du temps la branche
           -STABLE.

   Merge From Stable

           Lors du deroulement normal du developpement de FreeBSD, une
           modification sera effectuee tout d'abord sur la branche -CURRENT
           pour etre testee avant d'etre integree sur la branche -STABLE.
           Dans de rares occasions, une modification pourra etre effectuee en
           premier lieu sur la branche -STABLE puis etre ensuite integree `a
           la branche -CURRENT.

           Ce terme est egalement utilise quand un correctif de la branche
           -STABLE est integre dans une branche de securite.

           Voir aussi Merge From Current.

   MFC

           Voir Merge From Current.

   MFS

           Voir Merge From Stable.

  P

   Principle Of Least Astonishment

           Avec l'evolution de FreeBSD, les changements visibles par
           l'utilisateur devraient etre les moins deroutant possible. Par
           exemple, un rearrangement arbitraire des variables de demarrage du
           systeme dans le fichier /etc/defaults/rc.conf viole ce principe
           (POLA-principe du moindre etonnement). Les developpeurs prennent
           en compte ce principe quand ils s'interessent aux changements du
           systeme visibles par les utilisateurs.

   POLA

           Voir Principle Of Least Astonishment.

                                     Index

  Symboles

   -CURRENT, Suivre une branche de developpement

                compilation, Utiliser FreeBSD-CURRENT

                Synchronisation avec CVSup, Utiliser FreeBSD-CURRENT

                Synchroniser avec CTM, Utiliser FreeBSD-CURRENT

                utilisation, Utiliser FreeBSD-CURRENT

   -STABLE, Suivre une branche de developpement, Qu'est-ce que
   FreeBSD-STABLE?

                compilation, Utiliser FreeBSD-STABLE

                Synchronisation avec CVSup, Utiliser FreeBSD-STABLE

                Synchroniser avec CTM, Utiliser FreeBSD-STABLE

                utilisation, Utiliser FreeBSD-STABLE

   .rhosts, Dump et Restore

   /boot/kernel.old, Compiler et installer un noyau sur mesure

   /dev/vinum, Appellation des objets

   /etc, Choix du partitionnement

   /etc/groups, Groupes

   /etc/login.conf, Mettre en place des restrictions pour les utilisateurs

   /etc/mail/access, Configuration de sendmail

   /etc/mail/aliases, Configuration de sendmail

   /etc/mail/local-host-names, Configuration de sendmail

   /etc/mail/mailer.conf, Configuration de sendmail

   /etc/mail/mailertable, Configuration de sendmail

   /etc/mail/sendmail.cf, Configuration de sendmail

   /etc/mail/virtusertable, Configuration de sendmail

   /usr, Choix du partitionnement

   /usr/local/etc, Configuration des applications

   /usr/share/skel, adduser

   /var, Choix du partitionnement

   10 base 2, Ponts/Routeurs ISDN autonomes

   10 base T, Ponts/Routeurs ISDN autonomes

   386BSD, Un court historique de FreeBSD, A propos de cette version

   386BSD Patchkit, Un court historique de FreeBSD

   4.3BSD-Lite, Un court historique de FreeBSD

   4.4BSD-Lite, Bienvenue `a FreeBSD!, Que peut faire FreeBSD?

   802.11 (voir reseau sans fil)

   "locales", Methodes de configuration des "locales", Methode utilisant les
   fichiers d'initialisation de l'interpreteur de commandes

  A

   Abacus, Abacus

   AbiWord, AbiWord

   acces multi-utilisateurs, Que peut faire FreeBSD?

   accounting

                espace disque, Quotas d'utilisation des disques

                imprimante, lpf: un filtre texte

   ACL, Listes de controle d'acces au systeme de fichiers

   ACPI, Qu'est-ce que l'ACPI?, Information de fond

                ASL, ASL, acpidump, et IASL, Correction de votre ASL

                debogage, Obtenir d'ACPI une sortie de debogage

                messages d'erreur, Correction de votre ASL

                problemes, Utiliser et deboguer l'ACPI sous FreeBSD,
                Problemes courants, Obtenir d'ACPI une sortie de debogage

   Acrobat Reader, Acrobat Reader(R)

   adduser, adduser, Configuration au niveau administrateur

   AIX, Qu'est-ce que c'est?

   alias IP, Hotes virtuels

   Amanda, Amanda

   amd, Montages automatiques avec amd

   Apache, Qui utilise FreeBSD?, Serveur HTTP Apache

                demarrage ou arret, Executer Apache

                fichier de configuration, Configuration

                modules, Modules Apache

   APIC

                desactivation, Blocages du systeme (temporaires ou
                permanents)

   APM, Le fichier de configuration, Qu'est-ce que l'ACPI?

   apsfilter, Conversion automatique: une alternative aux filtres de
   conversion

   ASCII, Codage des caracteres

   AT&T, Un court historique de FreeBSD

   attaques DoS (voir deni de service (DoS))

   AUDIT, Synopsis

   Audit des evenements relatifs `a la securite du systeme (voir MAC)

   Avis de securite de FreeBSD, Avis de securite de FreeBSD

  B

   bande magnetique, Creer et utiliser les bandes magnetiques

                AIT, AIT

                bandes DDS (4mm), Bandes 4mm (DDS: "Digital Data Storage")

                Bandes Exabyte (8mm), Bandes 8mm (Exabyte)

                bandes QIC, Bandes 4mm (DDS: "Digital Data Storage")

                DLT, DLT

                QIC-150, QIC

   bannieres (voir pages d'en-tete)

   base de donnees SQL, Parametres de securite

   Basic Input/Output System (voir BIOS)

   BGP, Mettre en place un routeur

   bibliotheques partagees, Installer des bibliotheques supplementaires `a la
   main

   BIND, Depannage, Generalites

                fichiers de configuration, Fichiers de configuration

                fichiers de zone, Fichiers de zone

                lancement, Lancer BIND

                serveur de noms cache, Serveur de noms cache

   BIOS, Le probleme du demarrage

   bits-par-seconde, Tester une imprimante serie

   Blue Mountain Arts, Qui utilise FreeBSD?

   Bluetooth, Bluetooth

   Boot Loader, Le probleme du demarrage

   boot-loader, Etape trois, /boot/loader

   BOOTP

                systeme sans disque dur, Configuration utilisant BOOTP

   bootstrap, Synopsis

   Bourne shells, Interpreteurs de commandes - "Shells"

   bridge/pont, Introduction

   BSD Copyright, Les objectifs du projet FreeBSD

   bsdlabel, Avant le desastre, Apres le desastre

  C

   cable null-modem, Les ports serie

   cartes reseaux

                configuration, Configuration de la carte reseau

                depannage, Depannage

                pilote, Configuration des cartes reseaux

                tests, Tester la carte Ethernet

   cartes son, Configuration du systeme

   cartes TV, Configuration des cartes TV

   Catalogue des logiciels portes, Configurer la compatibilite binaire avec
   Linux(R)

   CDROMs

                creation, Creation et utilisation de supports optiques (CDs)

                creation d'un CDROM bootable, mkisofs

                gravure, burncd, cdrecord

   centronics (voir imprimantes parallele)

   chargeur, Deroulement des operations du chargeur

   chargeur de classe d'execution, Sujets avances

   chiffrement, DES, MD5, et chiffrement, mod_ssl

   Chinois traditionnel

                codage BIG-5, Configuration au niveau utilisateur

   chpass, chpass

   Cisco, Utiliser pppd comme client

   classe de session, Methodes de configuration des "locales", Configuration
   au niveau administrateur

   cles pgp, Cles OpenPGP

   Client de messagerie, Clients de messagerie

   Coda, Systemes de fichiers reseaux, en memoire et sauvegardes sur fichier

   codage des langues, Codage de la langue et du pays

   codage des pays, Codage de la langue et du pays

   codages des caracteres, Codage des caracteres

   code source, Que peut faire FreeBSD?

   Compatibilite binaire

                BSD/OS, Que peut faire FreeBSD?

                Linux, Que peut faire FreeBSD?

                NetBSD, Que peut faire FreeBSD?

                SCO, Que peut faire FreeBSD?

                SVR4, Que peut faire FreeBSD?

   compatibilite binaire

                Linux, Synopsis

   compatibilite binaire avec Linux, Synopsis

   Compilateur GNU, Que peut faire FreeBSD?

   compilateurs

                C, Que peut faire FreeBSD?

                C++, Que peut faire FreeBSD?

                Fortran, Que peut faire FreeBSD?

   compilation du systeme

                duree, Duree

   compression, Puis-je sauvegarder mes sauvegardes?

   comptabiliser l'utilisation

                imprimante, Comptabiliser l'utilisation de l'imprimante

   Comptabilite des processus, Comptabilite des processus

   compte

                creation, adduser

   comptes

                daemon, Comptes systeme

                groupes, Groupes

                modification, Modifier des comptes

                modifier le mot de passe, passwd

                nobody, Comptes systeme

                operator, Comptes systeme

                restriction, Mettre en place des restrictions pour les
                utilisateurs

                super-utilisateur (root), Le compte super-utilisateur

                suppression, rmuser

                systeme, Comptes systeme

                utilisateur, Comptes utilisateur

   Computer Systems Research Group (CSRG), Que peut faire FreeBSD?, A propos
   de cette version

   concatenation

                Vinum, Les goulots d'etranglement d'acces aux donnees

   Concurrent Versions System (voir CVS)

   configuration des cartes reseaux

                determiner le pilote de peripherique, Determiner le bon
                pilote de peripherique

   configuration du chargeur, Deroulement des operations du chargeur

   configuration du systeme, Synopsis

   console, La console, Mode mono-utilisateur

   consoles virtuelles, Consoles virtuelles & terminaux

   contributions, Le mode de developpement de FreeBSD

   coredumpsize, Mettre en place des restrictions pour les utilisateurs

   coupe-feu, Que peut faire FreeBSD?, Coupe-feu filtrant/regulant le trafic,
   Support du coupe-feu

   couplage, Couplage des peripheriques

   courrier electronique, Synopsis

                changer d'agent de transfert de courrier, Changer votre agent
                de transfert de courrier

                configuration, Basic Configuration

                depannage, Depannage

                reception, Reception de courrier

   cpio, cpio

   cputime, Mettre en place des restrictions pour les utilisateurs

   cron, Utiliser FreeBSD-CURRENT, Utiliser FreeBSD-STABLE

                configuration, Configuration de l'utilitaire cron

   CTM, Synchroniser vos sources, Utiliser CTM

   CVS

                anonyme, Synchroniser vos sources, Introduction

                archives, Le mode de developpement de FreeBSD

   cvsup, Utiliser FreeBSD-CURRENT, Utiliser FreeBSD-STABLE

  D

   daemon de montage automatique, Montages automatiques avec amd

   daemons serveurs de courrier

                exim, Le "daemon" serveur de courrier

                postfix, Le "daemon" serveur de courrier

                qmail, Le "daemon" serveur de courrier

                sendmail, Le "daemon" serveur de courrier

   delai de grace, Consulter les quotas et l'utilisation des disques

   demarrage, Synopsis

   deni de service (DoS), Introduction

   DES, DES, MD5, et chiffrement

   device.hints, "Device Hints"-Parametrage des peripheriques

   DGA, Determiner les capacites video

   DHCP

                dhcpd.conf, Configuration du serveur DHCP

                fichier de configuration, Fichiers

                fichiers de configuration, Fichiers

                installation, Installation d'un serveur DHCP

                prerequis, Integration dans FreeBSD

                serveur, Integration dans FreeBSD

                systeme sans disque dur, Configuration utilisant ISC DHCP

   dimensionnement de l'espace de pagination, Choix du partitionnement

   disques

                ajout, Ajouter des disques

                chiffrement, Chiffrer les partitions d'un disque

                detacher un disque memoire, Detacher un disque memoire du
                systeme

                memoire, Systemes de fichiers reseaux, en memoire et
                sauvegardes sur fichier

                systeme de fichiers en memoire, Systeme de fichiers en
                memoire

                systeme de fichiers sauvegarde dans un fichier, Systeme de
                fichiers sauvegarde dans un fichier

                virtuels, Systemes de fichiers reseaux, en memoire et
                sauvegardes sur fichier

   disques virtuels, Systemes de fichiers reseaux, en memoire et sauvegardes
   sur fichier

   disquette de reprise d'urgence, Avant le desastre

   disquettes, Puis-je utiliser des disquettes pour la sauvegarde des mes
   donnees?

   disquettes de sauvegarde, Puis-je utiliser des disquettes pour la
   sauvegarde des mes donnees?

   DNS, Nom d'hotes, Utilisation du courrier electronique, Courrier pour
   votre domaine, Generalites

                enregistrements, Fichiers de zone

   DNS inverse, Terminologie

   Documentation (voir Updating and Upgrading)

   documentation package (voir Updating and Upgrading)

   DOS, Noyau et systemes de fichiers

   DSL, Coupe-feu filtrant/regulant le trafic

   DSP, Problemes courants

   DTrace, Synopsis

   dump, Dump et Restore

   DVD

                DVD+RW, Utiliser un DVD+RW

                DVD-RAM, Utiliser un disque DVD-RAM

                DVD-RW, Utiliser un DVD-RW

                DVD-Video, Graver un DVD-Video

                gravure, Creation et utilisation de supports optiques (DVDs)

   Dynamic Host Configuration Protocol (voir DHCP)

  E

   Ecran LCD, Polices de caracteres anticrenelage

   editeurs, Editeurs de texte

                ee, Editeurs de texte

                emacs, Editeurs de texte

                vi, Editeurs de texte

   editeurs de texte, Editeurs de texte

   ELF, Sujets avances

                marquage, Sujets avances

   emacs, Editeurs de texte

   email, Que peut faire FreeBSD?, Synopsis

   enregistrement MX, Courrier electronique et DNS, Basic Configuration

   equipe de base de FreeBSD, Le mode de developpement de FreeBSD

   espace de pagination

                chiffrage, Chiffrage de l'espace de pagination

   Etherboot, Preparation d'un programme de demarrage avec Etherboot

   Ethernet, Configuration de slip.hosts

                adresse MAC, Configuration de slip.login, Un exemple

   Extensions d'adressage physique-"Physical Address Extensions" (PAE)

                memoire importante, Configurations memoire importantes (PAE)

  F

   fdisk, Ajouter des disques

   fichiers, Configuration des ressources (rc)

   fichiers de trace, Configuration des fichiers de trace

   fichiers journaux

                FTP, Maintenance

   fichiers rc

                rc.conf, Configuration principale

   fichiers speciaux de peripherique, Problemes courants

   file d'attente d'imprimante, Creer le repertoire de file d'attente

   filesize, Mettre en place des restrictions pour les utilisateurs

   Firefox, Firefox

   firewall, Firewalls ** Traduction en Cours **

                IPFILTER, The IPFILTER (IPF) Firewall

                IPFW, IPFW

                PF, The OpenBSD Packet Filter (PF) and ALTQ

                rulesets, Firewall Concepts

   Fondation pour le Logiciel Libre, Fichiers GNU Info

   fonts

                TrueType, Polices de caracteres TrueType(R)

   FORTRAN, Quels filtres de conversion dois-je installer?

   Free Software Foundation, Un court historique de FreeBSD, A propos de
   cette version, Fichiers GNU Info

   freebsd-update (voir mise `a jour)

   FreshMeat, Trouver votre application

   FreshPorts, Trouver votre application

   FTP

                anonyme, Configuration, Maintenance

  G

   GateD, Utiliser GateD(R)

   GEOM, Synopsis, RAID0 - << Striping >>, RAID1 - << mirroring >>, Ajouter
   un label `a un disque

   gestionnaire d'impression LPD, Synopsis

   Gestionnaire de demarrage, Le probleme du demarrage, Le gestionnaire de
   demarrage et les etapes de demarrage

   Ghostscript, Emuler du PostScript(R) sur les imprimantes non-PostScript(R)

   GNOME, GNOME

   GNU General Public License (GPL), Les objectifs du projet FreeBSD

   GNU Lesser General Public License (LGPL), Les objectifs du projet FreeBSD

   GnuCash, GnuCash

   Gnumeric, Gnumeric

   GQview, GQview

   graveur de CD

                ATAPI, Introduction

                pilote ATAPI/CAM, Utilisation du pilote de peripherique
                ATAPI/CAM

   Greenman, David, Un court historique de FreeBSD

   Grimes, Rod, Un court historique de FreeBSD

   groupes, Groupes

   groupes reseau, Utiliser les groupes reseau ("netgroups")

   gv, gv

   gzip, Puis-je sauvegarder mes sauvegardes?

  H

   HCI, Interface de controle de l'hote (HCI)

   hierarchie des repertoires, Organisation de l'arborescence des repertoires

   hosts, /etc/hosts

   hotes virtuels, Hotes virtuels

   HP-UX, Qu'est-ce que c'est?

   Hubbard, Jordan, Un court historique de FreeBSD

   hw.ata.wc, hw.ata.wc

  I

   IEEE, pax

   ifconfig, La commande ifconfig

   IMAP, Utilisation du courrier electronique, Acces aux boites aux lettres
   distantes en utilisant POP et IMAP

   impression en reseau, Imprimantes installees sur des machines distantes

   impression reseau, Imprimer via un reseau

   imprimantes, Configuration de l'imprimante

                fonctionnalites, Mettre en place le gestionnaire
                d'impression: le fichier /etc/printcap

                parallele, Les ports et les cables, Tester une imprimante
                parallele

                reseau, Imprimer via un reseau, Imprimantes installees sur
                des machines distantes

                restreindre l'acces aux, Restreindre l'utilisation de
                l'imprimante

                serie, Les ports et les cables, Tester une imprimante serie,
                Configurer les parametres de communication du gestionnaire
                d'impression, Gerer les travaux d'impression de texte brut
                sur des imprimantes PostScript(R)

                USB, Les ports et les cables

   imprimer, Synopsis

                filtres, Installer le filtre texte, Les filtres,
                Fonctionnement des filtres

                             apsfilter, Conversion automatique: une
                             alternative aux filtres de conversion

                pages d'en-tete, Supprimer les pages d'en-tete

   init, Le probleme du demarrage, Init: Initialisation de la gestion des
   processus

   installation, Synopsis

                depannage, Depannage

   instantane, Qu'est-ce que FreeBSD-CURRENT?

   Instantane de systeme de fichiers

                Snapshot, Instantane ("Snapshot") d'un systeme de fichiers

   interface en boucle, Un exemple

   internationalisation (voir localisation)

   Internet Software Consortium (ISC), Qu'est-ce que DHCP?

   interpreteurs de commandes, Interpreteurs de commandes - "Shells"

   IP masquerading, Que peut faire FreeBSD?

   IP sur liaison parallele (voir PLIP)

   IPsec, IPsec

   IPX/SPX, Ponts/Routeurs ISDN autonomes

   IRQ, Problemes courants

   ISA, Configuration du systeme

   ISDN, Coupe-feu filtrant/regulant le trafic

                cartes, Cartes ISDN

                ponts/routeurs autonomes, Ponts/Routeurs ISDN autonomes

   ISDN-(RNIS), ISDN

   ISO 9660, Introduction

  J

   jails, Environnements jail

   JMA Wired, Qui utilise FreeBSD?

   Jolitz, Bill, Un court historique de FreeBSD

  K

   KDE, KDE

                gestionnaire d'affichage, KDE

   Kerberos, Kerberos

                installation, Installation de Kerberos

   kermit, Utiliser pppd comme client

   kern.cam.scsi_delay, SCSI_DELAY (kern.cam.scsi_delay)

   kern.ipc.somaxconn, kern.ipc.somaxconn

   kern.maxfiles, kern.maxfiles

   kernel.old, Exemples d'utilisation du chargeur

   KLD (kernel loadable object), Clients 802.11a & 802.11g

   KLD (module noyau chargeable), Utilisation des pilotes NDIS de Windows(R)

   KMyMoney, KMyMoney

   KOffice, KOffice

   Konqueror, Konqueror

  L

   L2CAP, Protocole d'adaptation et de controle de lien logique (L2CAP)

   Labels de disque, Ajouter un label `a un disque

   LDAP, Parametres de securite

   lecteur zip, Le fichier de configuration

   liens symboliques, Installer des bibliotheques supplementaires `a la main

   ligne de commande, Interpreteurs de commandes - "Shells"

   limitation du produit delai-bande passante TCP

                net.inet.tcp.inflight.enable, Le produit delai-bande passante
                TCP

   limite souple, Definir les quotas

   limite stricte, Definir les quotas

   Linux, Qu'est-ce que c'est?

                binaires ELF, Installer des binaires Linux(R) ELF

   LISA, Quel est le meilleur programme de sauvegarde?

   liste de diffusion, Recompiler le systeme

   locale, Utiliser la localisation

   localisation, Qu'est-ce que I18N/L10N?

                allemand, Localisation pour la langue allemande (valable
                egalement pour tous les langues respectant le standard ISO
                8859-1)

                chinois traditionnel, Localisation du chinois traditionnel
                pour Taiwan

                coreenne, Localisation pour le japonais et le coreen

                japonaise, Localisation pour le japonais et le coreen

                russe, Russe (codage KOI8-R)

   logiciels portes, Synopsis

                desinstallation, Supprimer des logiciels portes installes

                espace disque, Logiciels portes et espace disque

                installation, Installation de logiciels portes

                mise `a jour, Mise `a jour des logiciels portes

   logiciels portes video, Logiciels portes et pre-compiles relatifs `a la
   video

   logiciels pre-compiles, Synopsis

                effacer, Effacer un logiciel pre-compile

                gestion, Gestion des logiciels pre-compiles

                installation, Installation d'un logiciel pre-compile

   logiciels pre-compiles video, Logiciels portes et pre-compiles relatifs `a
   la video

   ls, Permissions

  M

   machines sur deux reseaux, Machines sur deux reseaux

   MacOS, Generer un unique mot de passe non reutilisable

   make, Compiler le nouveau systeme

   make.conf, Controler /etc/make.conf

   Master Boot Record (MBR), Le probleme du demarrage, Le gestionnaire de
   demarrage

   maxproc, Mettre en place des restrictions pour les utilisateurs

   MD5, DES, MD5, et chiffrement

   memoire virtuelle, Que peut faire FreeBSD?

   memorylocked, Mettre en place des restrictions pour les utilisateurs

   memoryuse, Mettre en place des restrictions pour les utilisateurs

   mencoder, mencoder

   mergemaster, mergemaster

   Microsoft Windows, Utilisation des pilotes NDIS de Windows(R), Serveur de
   fichiers et d'impression pour clients Microsoft(R) Windows(R) (Samba),
   Clients 802.11a & 802.11g

                pilotes de peripheriques, Utilisation des pilotes NDIS de
                Windows(R), Clients 802.11a & 802.11g

   MIME, Configurer les "locales", Methode utilisant les fichiers
   d'initialisation de l'interpreteur de commandes

   mirroring, RAID1 - << mirroring >>

   Mise `a jour, Mise `a jour de FreeBSD, Portsnap: un outil de mise `a jour
   du catalogue des logiciels portes

   MIT, Installation de Kerberos

   mode dedie, Organisation des disques

   mode miroir

                Vinum, Integrite des donnees

   mode mono-utilisateur, Exemples d'utilisation du chargeur, Mode
   mono-utilisateur, Passer en mode mono-utilisateur, Redemarrer en mode
   mono-utilisateur

   mode multi-utilisateur, Mode multi-utilisateur

   mode multi-utilisateurs, Passer en mode mono-utilisateur

   modem, Utiliser pppd comme client, Prerequis, Adaptateurs terminaux ISDN

   mod_perl

                Perl, mod_perl

   mod_php

                PHP, mod_php

   mots de passe non reutilisables, Mots de passe non reutilisables

   mount, Apres le desastre

   mountd, Comment NFS fonctionne

   moused, Configuration de la console

   Mozilla, Mozilla

   mplayer

                compilation, Compiler MPlayer

   MPlayer

                utiliser, Utiliser MPlayer

   MS-DOS, Generer un unique mot de passe non reutilisable

   multi-tache preemptif, Que peut faire FreeBSD?

   MX record, Depannage, Fichiers de zone

   MySQL, Compiler des programmes I18N

  N

   NAT, Que peut faire FreeBSD?, Coupe-feu filtrant/regulant le trafic,
   Generalites

   natd, Generalites

   navigateurs

                web, Navigateurs

   NDIS, Utilisation des pilotes NDIS de Windows(R), Clients 802.11a &
   802.11g

   NDISulator, Utilisation des pilotes NDIS de Windows(R), Clients 802.11a &
   802.11g

   net.inet.ip.portrange.*, net.inet.ip.portrange.*

   Net/2, Un court historique de FreeBSD

   NetBIOS, Parametrages generaux

   NetBSD, A propos de cette version, Qu'est-ce que c'est?

   Netcraft, Qui utilise FreeBSD?

   newfs, Apres le desastre

   newsyslog.conf, newsyslog.conf

   NFS, Systemes de fichiers reseaux, en memoire et sauvegardes sur fichier,
   Quotas avec NFS, Systeme de fichiers reseau (NFS)

                configuration, Configurer NFS

                exemples d'exportation, Configurer NFS

                installation de multiples machines, Suivre les mises `a jour
                pour plusieurs machines

                montage, Configurer NFS

                serveur, Comment NFS fonctionne

                systeme sans disque dur, Configuration des serveurs TFTP et
                NFS

                utilisations, Exemples pratiques d'utilisation

   nfsd, Comment NFS fonctionne

   NIS, Qu'est-ce que c'est?

                client, Type de machine

                configuration du client, Configurer un client NIS

                configuration du serveur, Configurer un serveur NIS maitre

                domaines, Qu'est-ce que c'est?

                formats des mots de passe, Formats des mots de passe

                nom de domaine, Choisir un nom de domaine NIS

                serveur esclave, Type de machine, Configurer un serveur NIS
                esclave

                serveur maitre, Type de machine

                tables, Initialisation des tables NIS

   NIS+, Parametres de securite

   nom d'hote, Nom d'hotes

   nom de domaine, Ce que vous n'aurez `a faire qu'une seule fois

   NOTES, Le fichier de configuration

   Novell, Un court historique de FreeBSD

   noyau, Le probleme du demarrage

                compilation, Compiler et installer un nouveau noyau

                compiler / installer, Compiler et installer un noyau sur
                mesure

                compiler un noyau sur mesure, Synopsis

                configuration, Configuration du systeme, Configuration du
                noyau, Configuration

                fichier de configuration, Le fichier de configuration

                interaction au demarrage, Interaction avec le noyau au
                demarrage

                NOTES, Le fichier de configuration

                options de demarrage, Options de demarrage du noyau

   NTP, Synchronisation de l'horloge avec NTP

                choisir les serveurs, Choisir les serveurs NTP appropries

                configuration, Configuration de votre machine

                ntp.conf, Configuration generale

                ntpd, Generalites

   ntpdate, Configuration de base

  O

   OBEX, Le profil OBEX Object Push (OPUSH)

   OpenBSD, A propos de cette version, Qu'est-ce que c'est?

   openfiles, Mettre en place des restrictions pour les utilisateurs

   OpenOffice.org, OpenOffice.org

   OpenSSH, OpenSSH

                activation, Activer sshd

                client, Client SSH

                configuration, Configuration

                copie securisee, Copie securisee

                tunnel, Tunnels SSH

   OpenSSL

                generation de certificats, Generer des certificats

   Opera, Opera

   optimisation

                avec sysctl, Optimisation avec sysctl(8)

   Optimisation

                limitations du noyau, Optimisation des limitations du noyau

   optimisation du systeme, Synopsis

   options du noyau

                BRIDGE, Modification de la configuration du noyau

                COMPAT_LINUX, Configurer la compatibilite binaire avec
                Linux(R)

                cpu, Le fichier de configuration

                ident, Le fichier de configuration

                machine, Le fichier de configuration

                MROUTING, Routage multicast

                MSDOSFS, Le fichier de configuration

                NFS, Le fichier de configuration

                NFS_ROOT, Le fichier de configuration

                SCSI_DELAY, SCSI_DELAY (kern.cam.scsi_delay)

                SMP, Le fichier de configuration

   OS/2, Mode dedie

   OSPF, Mettre en place un routeur

   outils GNU, Installer des binaires Linux(R) ELF

  P

   page accounting, lpf: un filtre texte

   pages d'en-tete, Mettre en place le gestionnaire d'impression: le fichier
   /etc/printcap, Pages d'en-tete

   pages de manuel, Les pages de manuel

   Pair Networks, Qui utilise FreeBSD?

   parite, Les ports serie, Tester une imprimante serie

   Partage de connexion Internet, Generalites

   partition de pagination, Choix du partitionnement

   partition racine, Apres le desastre

   partitionnnement, Choix du partitionnement

   partitions, Organisation des disques, Ajouter des disques

   partitions BSD, Utiliser sysinstall(8)

   passerelles, Passerelles et routes

   passwd, passwd

   pax, pax

   PCI, Configuration du systeme

   PCL, Verifier la communication avec l'imprimante

   PDF

                lecture, Acrobat Reader(R), gv, Xpdf

   permissions, Permissions

                symboliques, Permissions symboliques

   permissions de fichier, Permissions

   personnes autorisees, "committers", Le mode de developpement de FreeBSD

   pilotes de peripheriques Windows, Clients 802.11a & 802.11g

   pilotes Windows, Utilisation des pilotes NDIS de Windows(R)

   pkg_add, Installation d'un logiciel pre-compile

   pkg_delete, Effacer un logiciel pre-compile

   pkg_info, Gestion des logiciels pre-compiles

   pkg_version, Gestion des logiciels pre-compiles

   PLIP, IP sur liaison parallele (PLIP)

   polices de caracteres

                anticrenelage, Polices de caracteres anticrenelage

                Ecran LCD, Polices de caracteres anticrenelage

                espacement, Polices de caracteres anticrenelage

   polices de caracteres anticrenelage, Polices de caracteres anticrenelage

   POP, Utilisation du courrier electronique, Acces aux boites aux lettres
   distantes en utilisant POP et IMAP

   port d'E/S, Problemes courants

   port serie, Tester une imprimante serie

   Portaudit, Surveillance des problemes de securite relatifs aux programmes
   tierce-partie

   portmanager, Mise `a jour des logiciels portes `a l'aide de Portmanager

   portmap, Termes/processus `a connaitre

   portmaster, Mise `a jour des logiciels portes `a l'aide de Portmaster

   Portsnap (voir mise `a jour)

   portupgrade, Mise `a jour des logiciels portes `a l'aide de portupgrade

   POSIX, pax, Configurer les "locales"

   PostScript, Les ports et les cables, Verifier la communication avec
   l'imprimante

                emulation, Emuler du PostScript(R) sur les imprimantes
                non-PostScript(R)

                lecture, gv

   PPP, Synopsis, Depannage, Adaptateurs terminaux ISDN

                client, Utiliser pppd comme client

                PPP en mode utilisateur, Synopsis

                PPP integre au noyau, Synopsis, Configurer PPP integre au
                noyau

                serveur, Configurer PPP integre au noyau

                sur ATM, Utiliser PPP sur ATM (PPPoA)

                sur Ethernet, Synopsis, Utiliser PPP sur Ethernet (PPPoE)

   PPPoA (voir PPP, sur ATM)

   PPPoE (voir PPP, sur Ethernet)

   procedures de demarrage, Ouvrir une session sur un systeme FreeBSD

   programmes de sauvegarde

                Amanda, Amanda

                cpio, cpio

                dump / restore, Dump et Restore

                pax, pax

                tar, tar

   Projet FreeBSD

                historique, Un court historique de FreeBSD

                mode de developpement, Le mode de developpement de FreeBSD

                objectifs, Les objectifs du projet FreeBSD

   propagation de route, Propagation de route

   protection de la memoire, Que peut faire FreeBSD?

   protocole de controle de flux, Les ports serie

   pw, pw, Configuration au niveau administrateur

  Q

   quotas, Mettre en place des restrictions pour les utilisateurs

   quotas disque, Mettre en place des restrictions pour les utilisateurs,
   Quotas d'utilisation des disques

                controle, Configurer votre systeme pour pouvoir utiliser les
                quotas d'utilisation des disques, Consulter les quotas et
                l'utilisation des disques

                limites, Definir les quotas

  R

   RAID, Les goulots d'etranglement d'acces aux donnees

                CCD, Configuration du pilote de disque concatene (CCD -
                "Concatenated Disk Driver")

                Logiciel, Configuration du pilote de disque concatene (CCD -
                "Concatenated Disk Driver"), Le gestionnaire de volume Vinum

                Materiel, RAID Materiel

                niveau 1, Integrite des donnees

                Vinum, Le gestionnaire de volume Vinum

   RAID-1, Integrite des donnees

   RAID-5, Integrite des donnees

   recompiler le systeme, Recompiler le systeme

   redirection d'adresses, Redirection d'adresses

   Redundant

                Array of Inexpensive Disks, Les goulots d'etranglement
                d'acces aux donnees

   repertoire de squelettes, adduser

   repertoires, Permissions

   reseau sans fil, Reseau sans fil

                chiffrement, Chiffrement

                point d'acces, Construire un point d'acces avec FreeBSD

   Reseau TCP/IP, Que peut faire FreeBSD?

   reseau TCP/IP, Prerequis, Configuration de slip.hosts

   resolv.conf, /etc/resolv.conf

   resolveur, Terminologie

   restore, Dump et Restore

   restrictions pour les utilisateurs, Mettre en place des restrictions pour
   les utilisateurs

                coredumpsize, Mettre en place des restrictions pour les
                utilisateurs

                cputime, Mettre en place des restrictions pour les
                utilisateurs

                filesize, Mettre en place des restrictions pour les
                utilisateurs

                maxproc, Mettre en place des restrictions pour les
                utilisateurs

                memorylocked, Mettre en place des restrictions pour les
                utilisateurs

                memoryuse, Mettre en place des restrictions pour les
                utilisateurs

                openfiles, Mettre en place des restrictions pour les
                utilisateurs

                quotas, Mettre en place des restrictions pour les
                utilisateurs

                sbsize, Mettre en place des restrictions pour les
                utilisateurs

                stacksize, Mettre en place des restrictions pour les
                utilisateurs

   RFCOMM, Protocole RFCOMM

   RIP, Utiliser GateD(R), Mettre en place un routeur

   rmuser, rmuser

   routage, Passerelles et routes

   routage multicast, Routage multicast

   route par defaut, Ce que vous n'aurez `a faire qu'une seule fois, Un
   exemple, Routes par defaut

   routes statiques, Routes statiques

   routeur, Que peut faire FreeBSD?, Mettre en place un routeur, Coupe-feu
   filtrant/regulant le trafic

   rpcbind, Comment NFS fonctionne, Termes/processus `a connaitre

  S

   sbsize, Mettre en place des restrictions pour les utilisateurs

   scanners, Scanners

   scp, Copie securisee

   SDL, Determiner les capacites video

   SDP, Le protocole de decouverte de service (SDP)

   securite, Securite

                attaques DoS (voir deni de service (DoS))

                backdoors, Introduction

                chiffrement, DES, MD5, et chiffrement

                comptes compromis, Introduction

                IPsec, IPsec

                mots de passe non reutilisables, Mots de passe non
                reutilisables

                OpenSSH, OpenSSH

                OpenSSL, OpenSSL

   security

                firewalls, Firewalls ** Traduction en Cours **

   sendmail, Configuration de sendmail

   serveur d'impression

                clients Windows, Serveur de fichiers et d'impression pour
                clients Microsoft(R) Windows(R) (Samba)

   serveur de courrier, Le serveur de courrier

   serveur de fichiers

                clients UNIX, Comment NFS fonctionne

                clients Windows, Serveur de fichiers et d'impression pour
                clients Microsoft(R) Windows(R) (Samba)

   serveur de polices de caracteres True Type pour X11, Affichage des polices
   de caracteres

   serveur DNS, Que peut faire FreeBSD?

   serveur Samba, Serveur de fichiers et d'impression pour clients
   Microsoft(R) Windows(R) (Samba)

   serveurs de noms de domaines, Ce que vous n'aurez `a faire qu'une seule
   fois

   serveurs FTP, Que peut faire FreeBSD?, Protocole de transfert de fichiers
   (FTP)

   serveurs web, Que peut faire FreeBSD?

                configuration, Serveur HTTP Apache

                securise, mod_ssl

   services, Demarrer des services

   shutdown, Sequence d'arret du systeme

   signal 11, Questions

   slices, Organisation des disques

   SLIP, Synopsis, Utiliser SLIP, Configuration du noyau, Configuration de
   slip.hosts

                client, Configurer un client SLIP

                routage, A propos du routage

                se connecter avec, Etablir une connexion SLIP

                serveur, Configurer un serveur SLIP

   SMTP, Basic Configuration

   Soft Updates, Les "Soft Updates"

                details, Plus de details `a propos des "Soft Updates"

   Solaris, Sujets avances, Qu'est-ce que c'est?

   Sony Japan, Qui utilise FreeBSD?

   Sophos Anti-Virus, Qui utilise FreeBSD?

   sous-reseau, Passerelles et routes, Un exemple

   sous-reseau IP, Introduction

   SSL, mod_ssl

   stacksize, Mettre en place des restrictions pour les utilisateurs

   station de travail sans disque dur, Systeme sans disque dur

   Striping, RAID0 - << Striping >>

   striping

                Vinum, Les goulots d'etranglement d'acces aux donnees

   su, Utiliser sysinstall(8)

   suite de bureautique

                KOffice, KOffice

                OpenOffice.org, OpenOffice.org

   SunOS, Compiler et installer un noyau sur mesure, Choisir un nom de
   domaine NIS

   Supervalu, Qui utilise FreeBSD?

   support DTrace (voir DTrace)

   sysctl, sysctl.conf, Optimisation avec sysctl(8)

   sysctl.conf, sysctl.conf

   sysinstall, Configuration de la console, Integration dans FreeBSD

                ajout de disque, Utiliser sysinstall(8)

   syslog, Maintenance

   syslog.conf, syslog.conf

   systeme de fichiers racine, Monter et demonter des systemes de fichiers

                systeme sans disque dur, Preparer le systeme de fichiers
                racine

   Systeme de gestion des disques GEOM (voir GEOM)

   systeme sans disque dur, Systeme sans disque dur

                /usr en lecture seule, Utilisation d'un /usr en lecture seule

                configuration du noyau, Compilation d'un noyau pour systeme
                sans disque dur

   systeme X Window, Que peut faire FreeBSD?

                (voir aussi XFree86)

                Accelerated-X, Que peut faire FreeBSD?

                XFree86, Que peut faire FreeBSD?

   systemes de fichiers

                demontage, La commande umount

                HFS, mkisofs

                ISO 9660, Introduction, mkisofs

                Joliet, mkisofs

                montage, La commande mount

                montes avec fstab, Le fichier fstab

   Systemes de fichiers, Synopsis

   Systemes de fichiers supportes (voir Systemes de fichiers)

   sysutils/cdrtools, Introduction

  T

   table de clavier, Configuration de la console

   table de correspondance d'affichage, Configuration de la console

   tableur

                Abacus, Abacus

                Gnumeric, Gnumeric

                KMyMoney, KMyMoney

   tar, Puis-je sauvegarder mes sauvegardes?, tar

   TCP Wrapper, Securite du NIS

   TCP Wrappers, L'encapsuleur TCP (<< TCP Wrappers >>)

   TELEHOUSE America, Qui utilise FreeBSD?

   tempetes d'interruptions, Blocages du systeme (temporaires ou permanents)

   terminaux, Consoles virtuelles & terminaux

   TeX, Pourquoi vous devriez utiliser le gestionnaire d'impression

                imprimer des fichiers DVI, Pourquoi installer des filtres de
                conversion?

   TFTP

                systeme sans disque dur, Configuration des serveurs TFTP et
                NFS

   The GIMP, The GIMP

   traceroute, En cas de probleme

   Traitement symetrique multiprocesseurs (SMP), Que peut faire FreeBSD?

   tranches, Organisation des disques, Ajouter des disques

   travaux d'impression, Introduction, Creer le repertoire de file d'attente,
   Gerer les travaux d'impression de texte brut sur des imprimantes
   PostScript(R), Controler la taille des travaux d'impression

                controle, Controler la taille des travaux d'impression

   troff, Fonctionnement des filtres

   Tru64 UNIX, Initialisation des tables NIS

   TrueType Fonts, Polices de caracteres TrueType(R)

   tunefs, Les "Soft Updates"

  U

   U.C. Berkeley, Que peut faire FreeBSD?, Un court historique de FreeBSD, A
   propos de cette version

   UDP, Comment cela fonctionne-t-il?

   Unicode, Noyau et systemes de fichiers

   UNIX, Permissions

   Updating and Upgrading, Updating the Documentation Set ** Traduction en
   Cours **, Updating Documentation from Ports

   USB

                disques, Peripheriques de stockage USB

   USENET, Que peut faire FreeBSD?

   utilisateurs

                les sites importants utilisant FreeBSD, Qui utilise FreeBSD?

   Utiliser fetchmail, Utiliser fetchmail

   Utiliser procmail, Utiliser procmail

   UUCP, Depannage

  V

   variables d'environnement, Interpreteurs de commandes - "Shells"

   vfs.hirunningspace, vfs.hirunningspace

   vfs.vmiodirenable, vfs.vmiodirenable

   vfs.write_behind, vfs.write_behind

   vi, Editeurs de texte

   Vinum, Les disques sont trop petits

                concatenation, Les goulots d'etranglement d'acces aux donnees

                mode miroir, Integrite des donnees

                striping, Les goulots d'etranglement d'acces aux donnees

   vipw, Configuration au niveau administrateur

   vitesse de transmission, Les ports serie

   vm.swap_idle_enabled, vm.swap_idle_enabled

   Volume

                Gestionnaire, Les disques sont trop petits

  W

   Walnut Creek CDROM, Un court historique de FreeBSD

   Weathernews, Qui utilise FreeBSD?

   WEP, WEP

   Williams, Nate, Un court historique de FreeBSD

   Windows, Generer un unique mot de passe non reutilisable

   Windows NT, Qu'est-ce que c'est?

  X

   X Display Manager, Le gestionnaire de connexion graphique XDM

   X11 Input Method (XIM), Saisie de caracteres non-anglais

   XML, Polices de caracteres anticrenelage

   Xorg, Configuration d'Xorg

   Xpdf, Xpdf

   XVideo, Determiner les capacites video

  Y

   Yahoo!, Qui utilise FreeBSD?

   yellow pages (voir NIS)

  Z

   zone racine, Terminologie

   zones

                exemples, Terminologie

                               Acheve d'imprimer

   Cet ouvrage est le travail combine de centaines de contributeurs au
   << Groupe de Documentation de FreeBSD >>. Le texte est ecrit en XML en
   respectant la DTD DocBook et est formate `a partir du XML dans de nombreux
   differents formats de presentation en utilisant XSLT. La version imprimee
   de ce document n'aurait pas ete possible sans le langage de formatage TeX
   de Donald Knuth, LaTeX de Leslie Lamport, ou l'ensemble de macro JadeTeX
   de Sebastian Rahtz.
