 Guide rapide pour debuter avec FreeBSD `a l'attention des utilisateurs
                              de Linux(R)

  John Ferrell

   $FreeBSD:
   release/8.4.0/fr_FR.ISO8859-1/articles/linux-users/article.xml
   39632 2012-10-01 11:56:00Z gabor $

   Copyright (c) 2008 The FreeBSD Documentation Project

   FreeBSD is a registered trademark of the FreeBSD Foundation.

   Linux is a registered trademark of Linus Torvalds.

   Intel, Celeron, 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.

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

   UNIX is a registered trademark of The Open Group in the United
   States and other countries.

   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.

   Ce document a pour but de familiariser rapidement les utilisateurs
   de Linux(R) de niveau intermediaire `a avance avec les
   fondamentaux de FreeBSD.

   Version franc,aise de Frederic Culot <culot@freebsd.org>.

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

1. Introduction

   Ce document met en evidence les differences entre FreeBSD et Linux
   de telle sorte que les utilisateurs de Linux d'un niveau
   intermediaire jusqu'`a avance puissent se familiariser rapidement
   avec les fondamentaux de FreeBSD. Il s'agit ici simplement d'une
   courte introduction technique qui n'a pas pour objectif
   d'expliciter les differences "philosophiques" entre les deux
   systemes d'exploitation.

   Ce document part du principe que vous avez dej`a installe FreeBSD.
   Si vous n'avez pas installe FreeBSD ou que vous avez besoin d'aide
   pour mener `a terme le processus d'installation, vous pouvez vous
   referer au chapitre   Installer FreeBSD du Manuel de Reference
   FreeBSD.

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

2. Interpreteurs de commandes: Pas de Bash?

   Ceux qui ont l'habitude de Linux sont souvent surpris de voir que
   Bash n'est pas l'interpreteur de commandes par defaut de FreeBSD.
   En fait, Bash n'est meme pas present dans l'installation par
   defaut. A la place, FreeBSD utilise tcsh(1) comme interpreteur par
   defaut. Cependant, Bash ainsi que vos autres interpreteurs de
   commandes favoris sont disponibles dans les Paquetages et
   logiciels portes de FreeBSD.

   Si vous installez d'autres interpreteurs de commandes vous pouvez
   utiliser chsh(1) pour definir un interpreteur par defaut pour un
   utilisateur. Il est cependant recommande de ne pas modifier
   l'interpreteur de commandes par defaut de root. La raison en est
   que les interpreteurs de commandes qui ne sont pas inclus dans la
   distribution de base sont normalement installes dans
   /usr/local/bin ou /usr/bin. Dans le cas d'un probleme les systemes
   de fichiers contenant /usr/local/bin et /usr/bin peuvent ne pas
   etre montes. Dans ce cas root n'aurait pas acces `a son
   interpreteur de commandes par defaut, ce qui empecherait root de
   pouvoir se connecter. Pour cette raison un second compte root, le
   compte toor, a ete cree pour l'utilisation avec des interpreteurs
   de commandes qui ne sont pas ceux par defaut. Vous pouvez
   consulter les questions frequemment posees sur la securite
   concernant le   compte toor pour plus d'information.

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

3. Paquetages et logiciels portes: ajouter des logiciels sous FreeBSD

   En plus de la traditionnelle methode UNIX(R) d'installation de
   logiciels (telecharger les sources, extraire, editer le code
   source, et compiler), FreeBSD offre deux autres methodes pour
   installer des applications: les paquetages et les logiciels
   portes. Une liste complete de tous les logiciels portes et
   paquetages disponibles se trouve ici.

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

  3.1. Paquetages

   Les paquetages sont des applications pre-compilees, les
   equivalents FreeBSD des fichiers .deb pour les systemes bases sur
   Debian/Ubuntu et des fichiers .rpm pour les systemes bases sur
   Red Hat/Fedora. Par exemple, la commande suivante installe Apache
   2.2:

 # pkg_add /tmp/apache-2.2.6_2.tbz

   Utiliser l'option -r indique `a pkg_add(1) de telecharger
   automatiquement le paquetage et de l'installer, ainsi que toutes
   ses dependances:

 # pkg_add -r apache22
 Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-6.2-release/Latest/apache22.tbz... Done.
 Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-6.2-release/All/expat-2.0.0_1.tbz... Done.
 Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-6.2-release/All/perl-5.8.8_1.tbz... Done.
 [snip]

 To run apache www server from startup, add apache22_enable="YES"
 in your /etc/rc.conf. Extra options can be found in startup script.

     Note : Si vous utilisez une version RELEASE de FreeBSD (6.2,
     6.3, 7.0, etc., generalement installee depuis un CD-ROM) pkg_add
     -r telechargera les paquetages compiles specifiquement pour
     cette version. Ces paquetages peuvent ne pas etre la version la
     plus recente de l'application. Vous pouvez utiliser la variable
     PACKAGESITE pour surcharger ce comportement par defaut. Par
     exemple, assignez
     ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-6-stable/Latest/
     `a PACKAGESITE pour telecharger les paquetages les plus recents
     construits pour les versions 6.X.

   Pour plus d'information concernant les paquetages vous pouvez vous
   referer `a la section 4.4 du Manuel FreeBSD:Utiliser le systeme
   des logiciels pre-compiles.

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

  3.2. Les logiciels portes

   Le catalogue des logiciels portes est la seconde methode proposee
   par FreeBSD pour installer des applications. Le catalogue des
   logiciels portes a pour architecture un ensemble de Makefiles et
   de fichiers correctifs specifiquement adaptes pour pouvoir
   installer depuis les sources des applications diverses sur
   FreeBSD. Lors de l'installation d'un logiciel porte le systeme
   telechargera le code source, appliquera tous les correctifs
   necessaires, compilera le code, et installera l'application (et
   fera de meme pour toutes ses dependances).

   Le catalogue des logiciels portes, parfois appelee l'arbre des
   ports (ports tree en anglais), peut etre trouve dans /usr/ports.
   Nous partons ici du principe que le catalogue des logiciels portes
   a ete installe pendant le processus d'installation de FreeBSD. Si
   le catalogue des logiciels portes n'a pas ete installe, il peut
   etre ajoutee `a partir des disques d'installation en utilisant
   sysinstall(8), ou bien recupere depuis les serveurs FreeBSD en
   utilisant csup(1) ou portsnap(8). Des instructions detaillees
   concernant l'installation du catalogue des logiciels portes
   peuvent etre consultees dans la section 4.5.1 du Manuel.

   Installer un logiciel porte est aussi simple (en general) que de
   se deplacer dans le repertoire du logiciel porte et de lancer le
   processus de compilation. L'exemple suivant installe Apache 2.2
   depuis le catalogue des logiciels portes:

 # cd /usr/ports/www/apache22
 # make install clean

   Un des avantages majeurs d'utiliser les logiciels portes pour
   installer des logiciels est de pouvoir adapter les options
   d'installation. Par exemple, lors de l'installation d' Apache 2.2
   depuis une version portee, il vous est possible d'activer mod_ldap
   en fixant la variable WITH_LDAP de make(1):

 # cd /usr/ports/www/apache22
 # make WITH_LDAP="YES" install clean

   Vous pouvez vous referer `a la section 4.5 du Manuel FreeBSD,  
   Utiliser le catalogue des logiciels portes, pour obtenir plus
   d'information concernant le catalogue des logiciels portes.

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

  3.3. Logiciel porte ou paquetage, lequel devrais-je utiliser?

   Les paquetages sont simplement des logiciels portes pre-compiles,
   donc il s'agit vraiment de choisir entre une installation depuis
   les sources (logiciels portes) ou une installation utilisant des
   binaires pre-compiles. Chaque methode presente ses avantages:

   Les paquetages (binaires)

     * Installation plus rapide (compiler de grosses applications
       peut prendre du temps).

     * Inutile de comprendre comment compiler un logiciel.

     * Inutile d'installer des compilateurs sur votre systeme.

   Les logiciels portes (sources)

     * Possibilite d'adapter les options d'installation (les
       paquetages sont normalement compiles avec les options
       standards alors qu'avec les logiciels portes vous pouvez
       adapter diverses options comme la compilation de modules
       additionnels ou le changement de l'emplacement par defaut).

     * Vous pouvez appliquer vos propres fichiers correctifs si vous
       le souhaitez.

   Si vous n'avez pas de besoins particuliers, les paquetages seront
   probablement tout `a fait adaptes `a votre situation. S'il vous
   arrivait d'avoir des besoins specifiques, les logiciels portes
   seraient plus appropries (et n'oubliez pas que si vous devez
   effectuer des adaptations mais que vous preferez les paquetages,
   vous pouvez toujours compiler un paquetage personnalise en
   utilisant make package et en copiant le paquetage sur d'autres
   serveurs).

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

4. Demarrage Systeme: ou sont les niveaux d'execution (run-levels)?

   Linux utilise le systeme d'initialisation SysV alors que FreeBSD
   utilise le style traditionnel BSD avec init(8). Avec init(8) il
   n'existe pas de niveaux d'execution et pas de /etc/inittab, mais
   `a la place le demarrage est controle par l'utilitaire rc(8). Le
   script /etc/rc lit /etc/defaults/rc.conf et /etc/rc.conf pour
   determiner quels services doivent etre demarres. Les services
   declares sont alors demarres en lanc,ant les scripts
   d'initialisation du service considere que l'on trouve dans
   /etc/rc.d/ et /usr/local/etc/rc.d/. Ces scripts sont similaires
   aux scripts que l'on trouve dans /etc/init.d/ sur les systemes
   Linux.

   +----------------------------------------------------------------+
   | Pourquoi existe-t-il deux emplacements distincts pour les      |
   | scripts d'initialisation de services ? Les scripts que l'on    |
   | trouve dans /etc/rc.d/ sont pour les applications qui font     |
   | partie du systeme de base (cron(8), sshd(8), syslog(3), et     |
   | d'autres). Les scripts dans /usr/local/etc/rc.d/ sont pour les |
   | applications installees par les utilisateurs telles que        |
   | Apache, Squid, etc.                                            |
   |                                                                |
   | Quelle est la difference entre le systeme de "base" et les     |
   | applications installees par l'utilisateur? FreeBSD est         |
   | developpe comme un systeme d'exploitation complet. En d'autres |
   | termes, le noyau, les bibliotheques systeme, et les            |
   | utilitaires presents dans l'espace utilisateur (tels que       |
   | ls(1), cat(1), cp(1), etc.) sont developpes et distribues      |
   | conjointement. C'est `a cela que l'on fait reference en        |
   | parlant de systeme de "base". Les applications installees par  |
   | l'utilisateur sont des applications qui ne font pas partie du  |
   | systeme de "base", telles que Apache, X11, Mozilla Firefox,    |
   | etc. Ces applications sont generalement installees en          |
   | utilisant le Catalogue des logiciels portes et les paquetages  |
   | de FreeBSD. Afin de les conserver `a l'ecart du systeme de     |
   | "base", les applications installees par l'utilisateur sont     |
   | normalement placees dans /usr/local/. Ainsi les binaires       |
   | installes par l'utilisateur se trouvent dans /usr/local/bin/,  |
   | les fichiers de configuration dans /usr/local/etc/, et ainsi   |
   | de suite.                                                      |
   +----------------------------------------------------------------+

   Les services sont actives en specifiant NomDuService_enable="YES"
   dans /etc/rc.conf (rc.conf(5)). Pour vous faire une idee, vous
   pouvez consulter les valeurs par defaut du systeme dans
   /etc/defaults/rc.conf, ces valeurs par defaut sont surchargees par
   celles trouvees dans /etc/rc.conf. De plus, lors de l'installation
   de logiciels additionnels, veillez `a consulter leur documentation
   pour determiner de quelle maniere sont actives les services
   associes, le cas echeant.

   Le bout de code suivant extrait de /etc/rc.conf active sshd(8) et
   Apache 2.2. Il specifie egalement que Apache devrait etre lance
   avec SSL.

 # enable SSHD
 sshd_enable="YES"
 # enable Apache with SSL
 apache22_enable="YES"
 apache22_flags="-DSSL"

   Des lors qu'un service a ete active dans /etc/rc.conf, ce service
   peut etre demarre depuis la ligne de commande (sans avoir `a
   redemarrer le systeme):

 # /etc/rc.d/sshd start

   Si un service n'a pas ete active il peut etre demarre depuis la
   ligne de commande en utilisant forcestart:

 # /etc/rc.d/sshd forcestart

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

5. Configuration Reseau

  5.1. Interfaces Reseau

   A la place d'un identifiant generique ethX que Linux utilise pour
   identifier une interface reseau, FreeBSD utilise le nom du pilote
   suivi d'un nombre en tant qu'identifiant. La sortie suivante de
   ifconfig(8) montre deux interfaces reseau Intel(R) Pro 1000 (em0
   et em1):

 % ifconfig
 em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
         options=b<RXCSUM,TXCSUM,VLAN_MTU>
         inet 10.10.10.100 netmask 0xffffff00 broadcast 10.10.10.255
         ether 00:50:56:a7:70:b2
         media: Ethernet autoselect (1000baseTX <full-duplex>)
         status: active
 em1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
         options=b<RXCSUM,TXCSUM,VLAN_MTU>
         inet 192.168.10.222 netmask 0xffffff00 broadcast 192.168.10.255
         ether 00:50:56:a7:03:2b
         media: Ethernet autoselect (1000baseTX <full-duplex>)
         status: active

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

  5.2. Configuration IP

   Une adresse IP peut etre assignee `a une interface en utilisant
   ifconfig(8). Cependant, pour assurer la persistence meme apres un
   redemarrage, la configuration IP doit etre enregistree dans
   /etc/rc.conf. Dans l'exemple suivant sont specifies le nom de la
   machine, l'adresse IP, et la passerelle par defaut:

 hostname="server1.example.com"
 ifconfig_em0="inet 10.10.10.100  netmask 255.255.255.0"
 defaultrouter="10.10.10.1"

   Utilisez ceci pour configurer une interface pour DHCP:

 hostname="server1.example.com"
 ifconfig_em0="DHCP"

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

6. Pare-feu

   Tout comme IPTABLES pour Linux, FreeBSD offre egalement un
   pare-feu au niveau du noyau; en fait FreeBSD offre trois pare-feux
   distincts:

     * IPFIREWALL

     * IPFILTER

     * PF

   IPFIREWALL ou IPFW (la commande pour gerer un jeu de regles IPFW
   est ipfw(8)) est le pare-feu developpe et maintenu par les
   developpeurs FreeBSD. IPFW peut etre couple avec dummynet(4) pour
   fournir des possibilites de regulation du trafic et simuler
   differents types de connections reseau.

   Voici un exemple de regle IPFW pour autoriser SSH en entree:

 ipfw add allow tcp from any to me 22 in via $ext_if

   IPFILTER est le pare-feu applicatif developpe par Darren Reed.
   Celui-ci n'est pas specifique `a FreeBSD et a ete porte sur de
   nombreux systemes d'exploitation tels que NetBSD, OpenBSD, SunOS,
   HP/UX, et Solaris.

   Voici un exemple de regle IPFILTER pour autoriser SSH en entree:

 pass in on $ext_if proto tcp from any to any port = 22

   Le dernier pare-feu, PF, est developpe par le projet OpenBSD. PF a
   ete cree pour remplacer IPFILTER, ce qui fait que la syntaxe de PF
   est tres similaire `a celle de IPFILTER. PF peut etre couple avec
   altq(4) pour fournir des possibilites de QoS.

   Voici un exemple de regle PF pour autoriser SSH en entree:

 pass in on $ext_if inet proto tcp from any to ($ext_if) port 22

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

7. Mettre `a jour FreeBSD

   Il existe trois methodes differentes pour mettre `a jour un
   systeme FreeBSD: `a partir des sources, les mises `a jour
   binaires, et les disques d'installation.

   Mettre `a jour depuis les sources est la methode la plus
   compliquee mais elle offre la plus grande flexibilite. Le
   processus implique de synchroniser une copie locale du code source
   de FreeBSD avec les serveurs CVS (Concurrent Versioning System -
   Systeme de gestion de Versions Concurrentes) de FreeBSD. Une fois
   que le code source local est `a jour vous pouvez compiler les
   nouvelles versions du noyau et du systeme de base. Pour plus
   d'informations concernant les mises `a jour depuis les sources
   vous pouvez consulter   le chapitre sur la mise `a jour du manuel
   FreeBSD.

   Les mises `a jour binaires ressemblent aux commandes yum ou
   apt-get utilisees pour mettre `a jour un systeme Linux. La
   commande freebsd-update(8) telechargera les nouvelles mises `a
   jour et les installera. Les mises `a jour peuvent etre programmees
   par l'intermediaire de cron(8).

     Note : Si vous utilisez cron(8) pour programmer vos mises `a
     jour, assurez-vous d'utiliser la commande freebsd-update cron
     dans votre crontab(1) pour reduire le nombre de machines
     recuperant les mises `a jour au meme moment.

 0 3 * * * root /usr/sbin/freebsd-update cron

   La derniere methode, qui permet de mettre `a jour en utilisant les
   disques d'installation, est simple: demarrez depuis les disques
   d'installation et selectionnez l'option de mise `a jour.

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

8. procfs: disparu mais pas oublie

   Avec Linux, il vous est peut-etre arrive de consulter
   /proc/sys/net/ipv4/ip_forward pour determiner si le routage IP
   etait active. Avec FreeBSD vous devriez utiliser sysctl(8) pour
   voir ce reglage ainsi que d'autres reglages systeme parce que
   procfs(5) a ete abandonne dans les versions actuelles de FreeBSD
   (notez que sysctl est disponible aussi sous Linux).

   Dans l'exemple du routage IP voici ce que vous utiliseriez pour
   determiner si le routage IP est active sur votre systeme FreeBSD:

 % sysctl net.inet.ip.forwarding
 net.inet.ip.forwarding: 0

   L'option -a est utilisee pour lister tous les reglages du systeme:

 % sysctl -a
 kern.ostype: FreeBSD
 kern.osrelease: 6.2-RELEASE-p9
 kern.osrevision: 199506
 kern.version: FreeBSD 6.2-RELEASE-p9 #0: Thu Nov 29 04:07:33 UTC 2007
     root@i386-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC

 kern.maxvnodes: 17517
 kern.maxproc: 1988
 kern.maxfiles: 3976
 kern.argmax: 262144
 kern.securelevel: -1
 kern.hostname: server1
 kern.hostid: 0
 kern.clockrate: { hz = 1000, tick = 1000, profhz = 666, stathz = 133 }
 kern.posix1version: 200112
 ...

     Note : Certaines de ces valeurs sysctl sont uniquement
     accessibles en lecture.

   procfs est parfois necessaire comme pour faire fonctionner de
   vieux logiciels, pour examiner des appels systeme en utilisant
   truss(1), et pour la   Compatibilite Binaire avec Linux (celle-ci
   utilise cependant son propre procfs, linprocfs(5)). Si vous avez
   besoin de monter procfs vous pouvez ajouter la ligne suivante dans
   /etc/fstab:

 proc                /proc           procfs  rw,noauto       0       0

     Note : noauto fera en sorte que /proc ne soit pas monte
     automatiquement lors du demarrage.

   Et ensuite montez procfs avec:

 # mount /proc

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

9. Commandes Usuelles

  9.1. Gestion des Paquetages



    Commande Linux (Red Hat/Debian)  Equivalent         Role          
                                      FreeBSD   
   yum install paquetage / apt-get   pkg_add -r Installation de       
   install paquetage                 paquetage  paquetage depuis un   
                                                depot distant         
   rpm -ivh paquetage / dpkg -i      pkg_add -v Installation de       
   paquetage                         paquetage  paquetage             
   rpm -qa / dpkg -l                 pkg_info   Lister les paquetages 
                                                installes             

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

  9.2. Gestion Systeme



   Commande Linux Equivalent FreeBSD               Role               
   lspci          pciconf             Lister les peripheriques PCI    
   lsmod          kldstat             Lister les modules noyau        
                                      charges                         
   modprobe       kldload / kldunload Charger/Decharger les modules   
                                      noyau                           
   strace         truss               Examiner les appels systeme     

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

10. Conclusion

   Nous esperons que ce document vous a fourni suffisamment
   d'informations pour que vous puissiez faire vos premiers pas avec
   FreeBSD. Vous pouvez consulter   le Manuel FreeBSD pour une
   couverture plus complete des sujets abordes ici ainsi que de tous
   les autres sujets non abordes dans ce document.

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

        Ce document, ainsi que d'autres peut etre telecharge sur
                   ftp.FreeBSD.org/pub/FreeBSD/doc/.

Pour toutes questions `a propos de FreeBSD, lisez la documentation avant
                 de contacter <questions@FreeBSD.org>.
Pour les questions sur cette documentation, contactez <doc@FreeBSD.org>.
