
De la mise sous tension  l'invite de commande de Bash

Greg O'Keefe

             <gcokeefe@postoffice.utas.edu.au>

   _Dominique van den Broeck - _Traduction franaise

   _Jean-Philippe Gurard - _Relecture de la version franaise

   v0.9, novembre 2000

   Voici une description rapide de ce qui se passe dans un systme Linux,
   depuis l'instant o vous mettez celui-ci sous tension, jusqu'au moment
   o vous vous connectez et obtenez l'invite de commande de Bash.
   Comprendre ces mcanismes vous sera trs utile lorsque vous aurez
   besoin de rsoudre des problmes ou de configurer votre systme.
     _________________________________________________________________

   _Table des matires_
   1. Introduction
   2. Partie matrielle

        2.1. Configuration
        2.2. Exercices
        2.3. Aller plus loin

   3. Lilo

        3.1. Configuration
        3.2. Exercices
        3.3. Aller plus loin

   4. Le noyau Linux

        4.1. Configuration
        4.2. Exercices
        4.3. Aller plus loin

   5. La bibliothque C de GNU

        5.1. Configuration
        5.2. Exercices
        5.3. Aller plus loin

   6. Init

        6.1. Configuration
        6.2. Exercices
        6.3. Aller plus loin

   7. Le systme de fichiers

        7.1. Configuration
        7.2. Exercices
        7.3. Aller plus loin

   8. Les dmons du noyau

        8.1. Configuration
        8.2. Exercices
        8.3. Aller plus loin

   9. Le journal systme

        9.1. Configuration
        9.2. Exercices
        9.3. Aller plus loin

   10. Getty et Login

        10.1. Configuration
        10.2. Exercices

   11. Bash

        11.1. Configuration
        11.2. Exercices
        11.3. Aller plus loin

   12. Les commandes
   13. Conclusion
   14. Section administrative

        14.1. Copyright
        14.2. Page principale
        14.3. Ractions
        14.4. Rfrences et remerciements
        14.5. Historique des changements
        14.6. Amliorations prvues
        14.7. Adaptation franaise

1. Introduction

   Je trouve frustrant qu'il se passe dans ma machine Linux des choses
   que je ne comprends pas. Si, comme moi, vous souhaitez vraiment
   comprendre votre systme plutt que simplement savoir comment
   l'utiliser, ce document devrait tre un bon point de dpart. Ce genre
   de connaissance de fond est aussi requis si vous voulez devenir un as
   de la rsolution de problmes sous Linux.

   Je pars du principe que vous avez une machine Linux en tat de marche,
   et que vous matrisez les bases d'Unix et de l'architecture matrielle
   des PC. Si ce n'est pas le cas, Les notions fondamentales d'Unix et
   d'Internet est un excellent endroit pour dbuter. C'est un document
   concis, lisible, et qui couvre toutes les bases.

   Le sujet principal de ce document est la faon dont Linux dmarre.
   Mais il se veut galement tre une ressource d'apprentissage plus
   large. J'ai inclus des exercices dans chaque section. Si vous en
   faites vraiment quelques-uns, vous en apprendrez bien plus qu'en vous
   contentant de lire ce document.

   J'espre que certains lecteurs s'attaqueront au meilleur exercice
   d'apprentissage de Linux que je connaisse : construire un systme 
   partir du code source. Giambattista Vico, un philosophe italien
   (1668-1744) disait _verum ipsum factum_ ce qui signifie  de
   l'exprience nat la comprhension  (NdT : traduction libre). Merci 
   Alex (voir rfrences et remerciements) pour cette citation.

   Si vous souhaitez vous raliser votre propre installation Linux, je
   vous conseille d'aller voir le document de Gerard Beekmans Comment
   faire un systme Linux  partir de zro (_Linux from scratch - LFS_).
   LFS fournit des instructions dtailles pour btir un systme complet
   et exploitable  partir du code source. Sur le site web de LFS, vous
   trouverez aussi une liste de discussion  la disposition des personnes
   qui construisent de tels systmes. Les instructions jadis incluses 
   ce guide se trouvent maintenant dans un document distinct nomm
    Construire un systme Linux minimum  partir du code source  et qui
   peut tre rcupr sur le site From PowerUp to Bash Prompt pour
   construire un systme jouet, purement pour l'exercice.

   Les paquets sont prsents dans l'ordre o ils apparaissent dans le
   processus de dmarrage du systme. Cela signifie que si vous installez
   les paquets dans cet ordre vous pouvez redmarrer aprs chaque
   installation, et voir  chaque fois le systme se rapprocher petit 
   petit de l'tat o il vous donnera la ligne de commande. Il y a une
   notion de progression rassurante dans cela.

   Je vous recommande de commencer par lire le texte principal de chaque
   section, en ignorant les exercices et rfrences, puis de dcider du
   point jusqu'auquel vous souhaitez comprendre votre systme. Reprenez
   alors depuis le dbut, en faisant les exercices et en relisant en
   dtail.
     _________________________________________________________________

2. Partie matrielle

   Lorsque vous allumez votre ordinateur, celui-ci se teste lui-mme pour
   s'assurer que tous ses composants sont en tat de marche. Cela
   s'appelle l'auto-test  l'allumage (_Power On Self Test - POST_).
   Ensuite, un programme nomm chargeur d'amorage (_bootstrap loader_),
   situ dans le BIOS en ROM, recherche un secteur d'amorage. Un secteur
   d'amorage est le premier secteur d'un disque et contient un petit
   programme capable de charger un systme d'exploitation. Les secteurs
   d'amorage sont marqus par un nombre magique (i.e. une valeur fixe
   caractristique) 0xAA55 = 43603  l'octet 0x1FE = 510. Ce sont les
   deux derniers octets du secteur. C'est de cette faon que la partie
   matrielle peut dterminer s'il s'agit d'un secteur d'amorage ou pas.

   Le chargeur d'amorage a une liste d'endroits o chercher un secteur
   d'amorage. Ma vieille machine regarde d'abord sur le lecteur de
   disquette, puis sur le disque dur. Les machines modernes peuvent aussi
   rechercher un secteur d'amorage sur un CD-ROM. S'il trouve un secteur
   d'amorage, il le charge en mmoire et passe ainsi le contrle au
   programme qui charge le systme d'exploitation en mmoire. Sur un
   systme Linux classique, ce programme sera la premire tape du
   chargeur de Lilo. Il existe malgr tout plusieurs manires diffrentes
   de configurer l'amorage de votre systme. Voir le _Guide de
   l'utilisateur de Lilo_ pour plus de dtails. Voir la section liens sur
   Lilo pour l'url.

   videment, il y a bien plus  dire sur ce que fait la partie
   matrielle du PC. Mais ce n'est pas l'objet de ce document. Lisez un
   des nombreux livres traitant de l'architecture matrielle des PC.
     _________________________________________________________________

2.1. Configuration

   La machine stocke des informations sur son propre tat dans son CMOS.
   Cela inclut la RAM et les types de disques installs dans le systme.
   Le BIOS de la machine contient un programme de configuration, Setup,
   qui vous permet de modifier ces informations. Pour savoir comment y
   accder, regardez attentivement les messages qui apparaissent sur
   votre cran lorsque vous mettez votre machine sous tension. Sur ma
   machine, il faut appuyer sur la touche _Suppr_ avant qu'elle ne
   commence  charger le systme d'exploitation.
     _________________________________________________________________

2.2. Exercices

   Une bonne faon d'en apprendre plus sur la partie matrielle d'un PC
   est de monter une machine  partir de composants d'occasion. Prenez au
   moins un 386 pour pouvoir y installer Linux facilement. Cela ne vous
   cotera pas trs cher. Posez la question autour de vous, quelqu'un
   pourrait bien vous donner une partie des pices qu'il vous faut.

   Allez voir Unios, (ils avaient une page sur http://www.unios.org, mais
   elle a disparu) et tlchargez, compilez et fabriquez votre disquette
   amorable. Ce n'est qu'un programme d'amorage affichant  Hello
   World! , contenant  peine plus de 100 lignes d'assembleur. Il serait
   intressant de le voir converti en un format exploitable par
   l'assembleur _as_ de GNU.

   Ouvrez l'image de la disquette d'amorage pour Unios avec un diteur
   hexadcimal. Cette image fait 512 octets de long. Exactement la
   longueur d'un secteur. Trouvez-y le nombre magique 0xAA55. Faites la
   mme chose pour une disquette amorable de votre propre ordinateur.

   Vous pouvez utiliser la commande _dd_ pour la copier dans un fichier :
   _dd if=/dev/fd0 of=secteur.d.amorcage_. Faites _trs_ attention 
   paramtrer if (fichier source) et of (fichier destination) comme il
   faut !

   Essayez d'en extraire le code source du chargeur de Lilo.
     _________________________________________________________________

2.3. Aller plus loin

     * Les notions fondamentales d'Unix et d'Internet, par Eric S.
       Raymond, et particulirement la section 3, _Que se passe-t-il
       lorsque vous allumez un ordinateur ?_
     * Le premier chapitre du _Guide de l'utilisateur de Lilo_ donne une
       excellente explication des partitions de disques sur PC et de
       l'amorage. Voir la section liens sur Lilo pour l'url.
     * _Peter Norton Programmer's Guide to the IBM PC & PS/2_ (Guide
       Peter Norton du programmeur pour l'IBM PC et PS/2), par Peter
       Norton et Richard Wilton, Microsoft Press, 1988. Il existe un
       nouveau livre Norton, qui a l'air bien, mais que je ne peux
       m'offrir pour le moment.
     * Un des nombreux ouvrages disponibles sur la manire de faire
       voluer son PC.
     _________________________________________________________________

3. Lilo

   Lorsque l'ordinateur charge le secteur d'amorce d'un systme sous
   Linux normal, ce qu'il charge est en fait une partie de Lilo, appele
   chargeur d'amorage de premier niveau (_first stage boot loader_). Il
   s'agit d'un mini-programme dont la seule tche est de charger et
   d'excuter le chargeur d'amorage de deuxime niveau (_second stage
   boot loader_).

   Le chargeur d'amorage de deuxime niveau vous donne une invite de
   commande (s'il a t install de cette manire) et charge le systme
   d'exploitation de votre choix.

   Lorsque votre systme est mont et en tat de marche, et que vous
   excutez _lilo_, ce que vous excutez en ralit est l'outil de
   dfinition des localisations (_map installer_). Celui-ci lit le
   fichier de configuration /etc/lilo.conf et crit le chargeur
   d'amorage sur le disque dur, avec les informations concernant les
   systmes d'exploitation qu'il peut charger.

   Il y a de nombreuses manires de rendre votre systme amorable. Celle
   que je viens de dcrire est la manire la plus vidente et
    normale , au moins pour une machine dont le systme d'exploitation
   principal est Linux. Le Guide de l'utilisateur Lilo explique plusieurs
   exemples de mthodes d'amorage. Cela vaut la peine de les lire, et
   d'en essayer quelques-uns.
     _________________________________________________________________

3.1. Configuration

   Le fichier de configuration de Lilo est /etc/lilo.conf. Il existe une
   page de manuel (man page)  son sujet : tapez _man lilo.conf_ dans un
   shell pour l'afficher. La principale caractristique de lilo.conf est
   qu'il existe une entre pour chaque chose que Lilo doit pouvoir
   lancer. Pour une entre Linux, cela inclut l'emplacement du noyau, et
   la partition  monter comme racine du systme de fichier. Pour les
   autres systmes, la principale information est la partition sur
   laquelle dmarrer.
     _________________________________________________________________

3.2. Exercices

   _DANGER_ : soyez prudent avec ces exercices. Il est assez facile de
   faire une erreur quelque part et de bloquer votre bloc de dmarrage
   (_master boot record - MBR_, premier secteur du disque dur, qui
   contient le chargeur d'amorage et la table des partitions) et de
   rendre ainsi votre systme inutilisable. Assurez-vous que vous avez
   une disquette de rparation qui fonctionne, et que vous savez comment
   vous en servir pour remettre les choses en tat. Voir ci-dessous un
   lien vers tomsrtbt, la disquette de rparation que j'utilise et
   recommande. La meilleure des prcautions est d'utiliser une machine
   qui ne contienne pas de donnes sensibles.

   Installez Lilo sur une disquette. Peu importe s'il n'y a rien d'autre
   sur la disquette que le noyau - vous obtiendrez un kernel panic quand
   le noyau sera prt  charger init, mais au moins vous saurez que Lilo
   fonctionne.

   Si vous le souhaitez, vous pouvez essayer de voir jusqu' quel point
   vous pouvez faire tenir un systme sur une disquette. C'est srement
   la deuxime meilleure activit pour apprendre Linux. Voir le  Comment
   faire une disquette d'amorage  (url ci-dessous), et tomsrtbt (url
   ci-dessous) pour avoir des pistes.

   Configurez Lilo afin qu'il lance Unios (voir section exercices sur la
   partie matrielle pour une url). Comme dfi supplmentaire, voyez si
   vous pouvez le faire sur une disquette.

   Faites une boucle d'amorage. Configurez le Lilo du bloc de dmarrage
   pour qu'il lance le Lilo du secteur d'amorage d'une des partitions
   principales, puis configurez ce Lilo pour qu'il relance celui du bloc
   de dmarrage. Ou alors utilisez le bloc de dmarrage et vos quatre
   partitions principales pour faire une boucle en cinq points !
   Marrant !
     _________________________________________________________________

3.3. Aller plus loin

     * La page de manuel de Lilo
     * Le paquet Lilo (ftp://lrcftp.epfl.ch/pub/linux/local/lilo/)
       contient le  Guide l'utilisateur de Lilo  lilo-u-21.ps.gz (ou
       une version plus rcente). Il se peut que vous disposiez dj de
       ce document. Regardez dans /usr/share/doc/lilo ou  un endroit
       similaire. La version PostScript est meilleure que la version en
       texte brut, car elle contient des diagrammes et des tables.
     * tomsrtbt : le Linux mono-disquette le plus cool ! Constitue une
       excellente disquette de secours.
     * Comment faire une disquette d'amorage (_Bootdisk HOWTO_).
     _________________________________________________________________

4. Le noyau Linux

   Le noyau (_kernel_) fait vraiment beaucoup de choses. Je pense qu'une
   bonne manire de rsumer tout cela est de dire qu'il fait faire au
   matriel ce que les programmes veulent, proprement et efficacement.

   Le processeur ne peut excuter qu'une seule instruction  la fois,
   mais Linux semble faire tourner beaucoup de choses simultanment. Le
   noyau accomplit cela en sautant de tche en tche trs rapidement. Il
   fait le meilleur usage possible du processeur en gardant trace des
   processus qui sont prts  tre excuts et de ceux qui attendent
   quelque chose comme un enregistrement en provenance d'un disque, ou
   une saisie clavier quelconque. Cette tche du noyau est appele
   ordonnancement.

   Si un programme ne fait rien, alors il n'a pas besoin d'tre conserv
   en mmoire (RAM). Mme un programme qui travaille peut avoir certaines
   parties inactives, qui n'ont donc pas besoin d'tre en mmoire.
   L'espace adressable est divis en pages. Le noyau garde une trace des
   pages les plus utilises. Les pages qui sont moins souvent utilises
   peuvent tre dplaces dans la partition d'change (_swap_).
   Lorsqu'une page est  nouveau sollicite, une autre page inutilise
   est retire de l'espace adressable pour lui faire de la place. Cela
   s'appelle la gestion de la mmoire virtuelle.

   Si vous avez un jour compil votre propre noyau, vous avez remarqu
   qu'il y a un grand nombre d'options pour des priphriques
   spcifiques. Le noyau contient une grande quantit de code spcifique
   pour interagir avec tous types de matriels, et pouvoir les prsenter
   d'une faon propre et uniforme aux programmes.

   Le noyau prend aussi en charge la gestion des fichiers, les
   communications entre processus, et une grande partie du travail
   concernant le rseau.

   Une fois le noyau charg, la premire chose qu'il fait est de
   rechercher un programme appel init et l'excuter.
     _________________________________________________________________

4.1. Configuration

   La majorit de la configuration du noyau est effectue quand vous le
   construisez, en utilisant _make menuconfig_, ou _make xconfig_ dans le
   rpertoire /usr/src/linux/ (l ou se trouvent les sources de votre
   noyau Linux). La commande _rdev_ vous permet rinitialiser le mode
   vido par dfaut, la racine du systme de fichiers, le priphrique
   d'change et la taille du disque virtuel (disque RAM). Ces paramtres
   ainsi que d'autres peuvent aussi tre passs au noyau depuis Lilo.
   Vous pouvez indiquer  Lilo les paramtres  passer au noyau soit dans
   lilo.conf, soit  l'invite de Lilo. Par exemple, si vous souhaitiez
   utiliser hda3 comme racine du systme de fichiers plutt que hda2,
   vous pourriez taper :
   LILO: linux root=/dev/hda3

   Si vous mettez en place un systme  partir de ses sources, vous
   pouvez vous simplifier la vie en crant un noyau  monolithique ,
   c'est--dire sans module. Vous n'aurez donc pas  copier ceux-ci sur
   le systme cible.

   Note

   Le fichier System.map est utilis lors de l'criture d'entres dans le
   journal systme pour dterminer les noms des modules gnrant les
   messages. Le programme _top_ utilise galement ces informations.
   Lorsque vous copiez le noyau vers un systme cible, copiez aussi
   System.map.
     _________________________________________________________________

4.2. Exercices

   Rflchissez  ceci : /dev/hda3 est un type de fichier spcial qui
   dcrit une partition d'un disque dur. Mais il vit sur le systme de
   fichiers comme tous les autres fichiers. Le noyau veut savoir quelle
   partition monter  la racine - donc il n'a pas encore de systme de
   fichiers. Alors comme peut-il lire /dev/hda3 pour trouver la partition
    monter ?

   Si vous ne l'avez pas encore fait, compilez votre noyau. Lisez l'aide
   pour chaque option.

   Essayez de voir jusqu' quel point vous pouvez rduire la taille de
   votre noyau avant qu'il ne cesse de fonctionner. Vous pouvez apprendre
   beaucoup en cartant les parties non ncessaires.

   Lisez  Le noyau Linux  (url ci-dessous) et ce faisant, trouvez les
   parties des sources auxquelles il se rfre. Le livre (au moment o
   j'cris ces lignes) se rfre au noyau version 2.0.33, qui commence 
   tre franchement dpass. Il pourrait tre plus facile de suivre si
   vous tlchargiez cette ancienne version et y lisiez le source. Il est
   trs excitant de trouver des morceaux de code C appels  process  et
    page .

   Programmez ! Faites des essais ! Voyez si vous pouvez faire cracher au
   noyau des messages supplmentaires ou quoi que ce soit.
     _________________________________________________________________

4.3. Aller plus loin

     * Le fichier /usr/src/linux/README et le contenu du rpertoire
       /usr/src/linux/Documentation/. Leurs emplacements peuvent varier
       selon votre systme.
     * Le Comment faire un noyau Linux (_Kernel HOWTO_).
     * L'aide disponible quand vous configurez un noyau en utilisant
       _make menuconfig_ ou _make xconfig_. Il existe une version
       franaise de cet aide disponible sur http://traduc.org/kernelfr/.
     *  Le noyau Linux  et les autres guides du projet de documentation
       Linux (LDP)
     * Pour le code source, suivre les hyperliens dans Construire un
       systme Linux minimum  partir du code source
     _________________________________________________________________

5. La bibliothque C de GNU

   L'tape suivante qui se produit au dmarrage de votre ordinateur est
   le chargement d'init et son excution. Cependant, init, comme la
   plupart des programmes, utilise des fonctions issues de bibliothques.

   Vous avez peut-tre dj vu un exemple de programme C comme celui-ci :
        main() {
                printf("Hello World!\n");
        }

   Le programme ne dfinit nullement printf, alors d'o vient-il ? Il
   provient des bibliothques C standard. Pour un systme GNU/Linux, il
   s'agit de glibc. Si vous les compilez sous Visual C++, alors il
   provient d'une mise en oeuvre Microsoft de ces mmes fonctions
   standard. Il existe des masses de ces fonctions standard, pour les
   mathmatiques, la gestion des chanes de caractres, de l'heure et de
   la date, des allocations de mmoire et ainsi de suite. Tout, dans Unix
   (y compris Linux) est soit crit en C, soit doit faire de son mieux
   pour faire comme si, de sorte que tous les programmes utilisent ces
   fonctions.

   Si vous jetez un oeil dans /lib sur votre systme Linux, vous verrez
   un grand nombre de fichiers appels libquelquechose.so ou
   libquelquechose.a et ctera. Ce sont les bibliothques de ces
   fonctions. Glibc est simplement la mise en oeuvre GNU de ces
   fonctions.

   Les programmes peuvent utiliser ces fonctions de deux manires. Si
   vous ralisez une dition de liens _statique_, ces fonctions seront
   copies  l'intrieur de l'excutable gnr. C'est  cela que servent
   les bibliothques libquelquechose.a. Si vous ralisez une dition de
   liens _dynamique_ (cas par dfaut), lorsque le programme aura besoin
   du code d'une bibliothque, il l'appellera directement depuis le
   fichier libquelquechose.so

   La commande _ldd_ vous apporte une aide prcieuse lorsque vous
   cherchez  retrouver les bibliothques utilises par un programme
   particulier. Par exemple, voici les bibliothques utilises par
   _bash_:
        [greg@Curry power2bash]$ ldd /bin/bash
                libtermcap.so.2 => /lib/libtermcap.so.2 (0x40019000)
                libc.so.6 => /lib/libc.so.6 (0x4001d000)
                /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
     _________________________________________________________________

5.1. Configuration

   Certaines fonctions des bibliothques dpendent de la rgion
   gographique o vous vous trouvez. Par exemple, en franais, on crit
   les dates sous la forme jj/mm/aa, mais les amricains les crivent
   sous la forme mm/jj/aa. Ceci est configurable via un programme appel
   _localdef_ livr avec glibc.
     _________________________________________________________________

5.2. Exercices

   Utilisez _ldd_ pour dterminer les bibliothques qu'utilise votre
   application prfre.

   Utilisez _ldd_ pour dterminer les bibliothques utilises par init.

   Crez une bibliothque gadget, avec seulement une ou deux fonctions
   dedans. On utilise le programme _ar_ pour les crer. La page de manuel
   d'ar pourrait tre un bon point de dpart pour commencer  enquter
   sur la manire dont cette opration est effectue. crivez, compilez,
   et liez un programme utilisant cette bibliothque.
     _________________________________________________________________

5.3. Aller plus loin

     * Pour le code source, suivre les liens dans Construire un systme
       Linux minimum  partir du code source
     _________________________________________________________________

6. Init

   Je ne parlerai que du style d'initialisation  System V  que les
   systmes Linux utilisent le plus souvent. Il existe des alternatives.
   En fait, vous pouvez mettre n'importe quel programme dans /sbin/init,
   que le noyau excutera lorsqu'il aura fini de se charger.

   Le travail d'init est de faire en sorte que tout se lance
   correctement. Il vrifie que les systmes de fichier sont en bon tat
   et les monte. Il dmarre les dmons (_daemons_) qui enregistrent les
   messages systme, grent le rseau, distribuent les pages web,
   coutent les signaux de la souris, et ctera. Init dmarre aussi les
   processus getty qui vous donnent l'invite de connexion sur vos
   terminaux virtuels.

   Il y a un processus compliqu concernant le changement de niveau
   d'excution ( run-levels ), mais je vais sauter tout a, et ne
   parler que du dmarrage du systme.

   Init lit le fichier /etc/inittab, qui lui dit quoi faire. En gnral,
   la premire chose demande est l'excution d'un script
   d'initialisation. Le programme qui excute (ou interprte) ce script
   est _bash_, le mme programme qui vous donne la ligne de commande. Sur
   les systmes Debian, le script d'initialisation est /etc/init.d/rcS,
   sur Red Hat, /etc/rc.d/rc.sysinit. C'est l que les systmes de
   fichiers sont vrifis puis monts, l'horloge mise  l'heure, le
   fichier ou la partition d'change (swap) activs, les noms de machines
   dfinis, et ctera.

   Ensuite, un autre script est invoqu pour nous placer dans le niveau
   d'excution par dfaut. Cela implique simplement le dmarrage d'un
   ensemble de sous-systmes. Il existe un ensemble de sous-rpertoires
   /etc/rc.d/rc0.d, /etc/rc.d/rc1.d, ... , /etc/rc.d/rc6.d sous Red Hat,
   ou /etc/rc0.d, /etc/rc1.d, ... , /etc/rc6.d sous Debian, correspondant
   aux niveaux d'excution (_runlevels_). Si nous entrons dans le niveau
   d'excution 3 sur un systme Debian, le script excute tous les
   scripts de /etc/rc3.d commenant par  S  (pour _Start_). Ces scripts
   sont en ralit des liens vers un autre rpertoire appel gnralement
   init.d.

   Donc, le script de notre niveau d'excution est appel par init, et
   recherche dans un rpertoire les scripts dont le nom dbute par la
   lettre  S . Il se peut qu'il tombe sur S10syslog en premier. Les
   chiffres indiquent au script de gestion des niveaux d'excution
   l'ordre dans lequel il doit les lancer. En l'occurrence, S10syslog est
   lanc en premier parce qu'il n'y pas de script commenant par
   S00 ... S09. Mais S10syslog est en fait un lien vers
   /etc/init.d/syslog qui est un script charg du dmarrage et de l'arrt
   du dmon de gestion du journal systme. Parce que le nom du lien
   commence par un  S , le script de gestion des niveaux d'excution
   sait qu'il doit excuter le script _syslog_ avec le paramtre start.
   Il y a aussi des liens dont le nom dbute par  K  (pour _Kill_), qui
   spcifient ce qui doit tre arrter, et dans quel ordre, lorsque l'on
   entre dans ce niveau d'excution.

   Pour changer ce que le sous-systme lance par dfaut, vous devez
   configurer ces liens dans le rpertoire rcN.d, o N est le niveau
   d'excution par dfaut dfini dans votre fichier inittab.

   La dernire chose importante qu'effectue init est de dmarrer les
   getty. Ceux-ci sont ressuscits (_respawned_), ce qui signifie qu'ils
   sont automatiquement relancs par init s'ils viennent  se terminer.
   La plupart des distributions fournissent six terminaux virtuels. Il se
   peut que vous souhaitiez en enlever pour conomiser de la mmoire, ou
   en ajouter pour pouvoir faire tourner plus de choses  la fois, et
   passer rapidement de l'une  l'autre. Vous pourriez aussi avoir besoin
   de lancer un getty vers un terminal texte ou vers un modem. Vous
   devrez alors diter inittab.
     _________________________________________________________________

6.1. Configuration

   /etc/inittab est le fichier de configuration principale d'init.

   Les rpertoires rcN.d, o N = 0, 1, ... , 6 dtermine les
   sous-systmes  lancer.

   Quelque part dans les scripts invoqus par init, se trouve la commande
   _mount -a_. Cela signifie :  Monte tous les systmes de fichiers
   censs tre monts . Le fichier /etc/fstab dfinit ce qui est cens
   tre mont. Si vous souhaitez changer ce qui est mont par dfaut au
   dmarrage, c'est ce fichier que vous devez modifier. Il existe une
   page de manuel pour fstab.
     _________________________________________________________________

6.2. Exercices

   Trouvez le rpertoire rcN.d du niveau d'excution par dfaut de votre
   systme puis faites un _ls -l_ pour voir les fichiers points par les
   liens.

   Changez le nombre de getty tournant sur votre systme.

   Retirez tous les sous-systmes dont vous n'avez pas besoin de votre
   niveau d'excution par dfaut.

   Essayez de dterminer le minimum ncessaire pour dmarrer.

   Fabriquez une disquette avec Lilo, un noyau et un programme statique
   affichant  Bonjour tout le monde !  nomm /sbin/init, puis
   regardez-la dmarrer et dire bonjour.

   Regardez attentivement votre systme dmarrer, et notez les vnements
   signals. Ou imprimez une section de votre journal systme
   /var/log/messages  partir du moment o votre systme a dmarr.
   Ensuite, en partant d'inittab, explorez tous les scripts et essayez de
   voir quel code fait quoi. Vous pouvez galement ajouter des messages,
   comme
   echo "Bonjour, moi c'est rc.sysinit"

   C'est aussi un bon exercice pour apprendre le langage de script de
   Bash, certains scripts tant assez compliqus. Ayez un bon document de
   rfrence sur Bash  porte de la main.
     _________________________________________________________________

6.3. Aller plus loin

     * Il y a des pages de manuel pour les fichiers inittab et fstab.
       Tapez (par exemple) _man inittab_ dans un shell pour l'afficher.
     * Le guide Linux de l'administrateur systme du projet de
       documentation Linux (LDP) contient une section intressante sur
       init.
     * Pour le code source, suivre les liens du Construire un systme
       Linux minimum  partir du code source
     _________________________________________________________________

7. Le systme de fichiers

   Dans cette section, j'emploierai l'expression  systme de fichiers 
   pour deux notions diffrentes. Il y a les systmes de fichiers
   installs sur des partitions de disque ou d'autres priphriques, et
   il y a le systme de fichier tel qu'il vous est prsent par un
   systme Linux en tat de marche. Sous Linux, vous  montez  le
   systme de fichiers d'un disque sur le systme de fichiers de Linux.

   Dans la section prcdente, j'ai mentionn le fait que des scripts
   d'initialisation vrifiaient et montaient les systmes de fichiers.
   Les commandes qui effectuent ces oprations sont respectivement _fsck_
   et _mount_.

   Un disque dur n'est qu'un grand espace dans lequel vous pouvez crire
   des zros et des uns. Un systme de fichiers impose une structure 
   tout cela, et le prsente sous la forme de fichiers,  l'intrieur de
   sous-rpertoires,  l'intrieur de rpertoires ... Chaque fichier est
   reprsent par un _inode_, indiquant le fichier dont il s'agit, sa
   date de cration, et o trouver son contenu. Les rpertoires sont
   aussi reprsents par des inodes, mais ceux-ci indiquent o trouver
   les inodes des fichiers que les rpertoires contiennent. Si le systme
   veut lire /home/greg/groslolos.jpeg, il commence par lire l'inode du
   rpertoire racine / dans le  superbloc , puis trouve l'inode du
   rpertoire home dans le contenu de /, puis trouve l'inode du
   rpertoire greg dans le contenu de home, et enfin l'inode de
   groslolos.jpeg qui lui dira quels blocs du disque il doit lire.

   Si nous ajoutons des donnes  la fin d'un fichier, il peut arriver
   que les donnes soient crites avant que l'inode ne soit mis  jour
   (indiquant que le nouveau bloc appartient dsormais au fichier), ou
   vice-versa. Si le courant est coup  cet instant prcis, le systme
   de fichiers sera cass. C'est ce genre de chose que _fsck_ essaie de
   dtecter et de rparer.

   La commande _mount_ prend le systme de fichiers d'un priphrique, et
   l'ajoute  la hirarchie de fichiers de votre systme. En gnral le
   noyau monte son systme de fichiers racine en lecture seule. La
   commande mount est ensuite utilise pour le remonter en
   lecture-criture aprs que fsck aie vrifi que tout est en ordre.

   Linux prend aussi en charge d'autres types de systmes de fichiers :
   msdos, vfat, minix, et ctera. Les dtails d'un systme de fichiers
   spcifique sont masqus par le systme de fichier virtuel (Virtual
   File System - VFS), qui est une couche d'abstraction. Je ne rentrerai
   pas dans ces dtails. Il existe une discussion sur ce sujet dans  Le
   noyau Linux  (voir la section aller plus loin - le noyau Linux pour
   l'url).

   Un type de systme de fichiers compltement diffrent est mont sur
   /proc. C'est une vritable projection de ce qui se passe dans le
   noyau. On y trouve un rpertoire pour chaque processus existant sur le
   systme, dont le nom correspond au numro dudit processus. Il existe
   aussi des fichiers comme interrupts et meminfo qui donnent des
   informations sur l'utilisation du matriel. Vous pouvez dcouvrir
   normment de choses en explorant /proc.
     _________________________________________________________________

7.1. Configuration

   Il est possible d'indiquer  _mke2fs_, la commande de cration des
   systme de fichiers ext2, des paramtres dfinissant la taille des
   blocs, le nombre d'inodes, et ctera. Voir la page de manuel de mke2fs
   pour plus de dtails.

   Ce qui doit tre mont sur votre systme de fichiers est contrl par
   le fichier /etc/fstab, qui a lui aussi sa page de manuel.
     _________________________________________________________________

7.2. Exercices

   Fabriquez un tout petit systme de fichiers, et visualisez-le avec un
   diteur hexadcimal. Identifiez les inodes, les superblocs, et le
   contenu des fichiers.

   Je crois qu'il existe des outils qui vous donnent une vue graphique
   d'un systme de fichiers. Trouvez-en un, essayez-le, et envoyez moi
   l'url par courrier lectronique (en anglais) avec vos commentaires !

   Explorez le code du systme de fichiers ext2 dans le noyau.
     _________________________________________________________________

7.3. Aller plus loin

     * Le chapitre 9 du livre  Le noyau linux  du LDP donne une
       excellente description des systmes de fichiers. Vous pouvez le
       trouver sur le site du projet de documentation Linux (LDP).
     * La commande _mount_ fait partie du paquet util-linux, il y a un
       lien vers celui-ci dans Construire un Systme Linux Minimum 
       partir du Code Source
     * Les pages de manuel de mount, fstab, fsck, mke2fs et proc.
     * Le fichier Documentation/proc.txt, distribu avec les sources du
       noyau Linux, dcrit le fonctionnement du systme de fichier /proc.
     * La page principale des utilitaires du systme de fichier Ext2
       ext2fsprogs. On y trouve galement un document donnant une vue
       d'ensemble d'Ext2fs, bien qu'il ne soit plus  jour, et moins
       lisible que le chapitre 9 du livre  Le noyau Linux .
     * Le standard de systme de fichier Unix. Ce document dcrit o doit
       se trouver quoi, dans un systme Unix, et pourquoi. Il indique
       aussi le minimum ncessaire  placer dans /bin, /sbin, et ctera.
       C'est une bonne rfrence si votre objectif est un systme minimal
       mais complet.
     _________________________________________________________________

8. Les dmons du noyau

   Si vous saisissez la commande _ps aux_, vous verrez quelque chose
   ressemblant  ce qui suit :
USER       PID %CPU %MEM  SIZE   RSS TTY STAT START   TIME COMMAND
root         1  0.1  8.0  1284   536   ? S    07:37   0:04 init [2]
root         2  0.0  0.0     0     0   ? SW   07:37   0:00 (kflushd)
root         3  0.0  0.0     0     0   ? SW   07:37   0:00 (kupdate)
root         4  0.0  0.0     0     0   ? SW   07:37   0:00 (kpiod)
root         5  0.0  0.0     0     0   ? SW   07:37   0:00 (kswapd)
root        52  0.0 10.7  1552   716   ? S    07:38   0:01 syslogd -m 0
root        54  0.0  7.1  1276   480   ? S    07:38   0:00 klogd
root        56  0.3 17.3  2232  1156   1 S    07:38   0:13 -bash
root        57  0.0  7.1  1272   480   2 S    07:38   0:01 /sbin/agetty 38400 t
t
root        64  0.1  7.2  1272   484  S1 S    08:16   0:01 /sbin/agetty -L ttyS
1
root        70  0.0 10.6  1472   708   1 R   Sep 11   0:01 ps aux

   C'est une liste de processus en cours d'excution sur le systme. Les
   informations proviennent du systme de fichiers /proc que j'ai
   mentionn dans la section prcdente. Remarquez que init est le
   processus numro un. Les processus 2, 3, 4 et 5 sont kflushd, kupdate,
   kpiod et kswapd. Il y a quand mme quelque chose d'trange : dans les
   deux colonnes de la taille virtuelle de stockage (SIZE) et la taille
   relle de stockage (Real Storage Size, RSS), ces processus renvoient
   zro. Comment un processus peut-il ne pas utiliser de mmoire ?

   Il s'agit des dmons propres au noyau. La majeure partie du noyau
   n'apparat mme pas dans la liste des processus, et le seul moyen de
   connatre la mmoire qu'il utilise est de soustraire la mmoire
   disponible  la quantit totale de mmoire installe. Les dmons du
   noyau sont dmarrs aprs init, et obtiennent de ce fait des numros
   de processus normaux, mais leur code et leurs donnes n'existent qu'au
   sein de la zone de mmoire occupe par le noyau.

   Les noms des dmons du noyau dans la liste sont crits entre crochets
   car le systme de fichiers /proc ne contient pas d'information sur la
   ligne de commande utilise pour lancer ces processus.

   Alors,  quoi servent ces dmons ? Les versions prcdentes de ce
   document prsentaient ici un appel  contribution, car mes
   connaissances dans ce domaine sont limites. L'explication (partielle)
   qui suit est une fusion de diffrentes rponses  cet appel, pour
   lesquelles j'ai une grande reconnaissance. Toutes indications,
   rfrences et corrections sont bienvenues.

   Toutes les entres et sorties sont effectues via des _tampons_ en
   mmoire, ce qui acclre grandement les choses. Tout ce qu'un
   programme crit peut tre conserv en mmoire, puis tre crit sur le
   disque par blocs plus grands et plus efficaces. C'est le travail des
   dmons kflushd et kupdate.

   Trs souvent, les processus sont au repos, et ceux qui tournent n'ont
   pas besoin d'avoir l'intgralit de leur code et de leurs donnes
   charge en mmoire. Cela signifie que l'on peut faire un meilleur
   usage de notre mmoire vive, en faisait glisser les pages inutilises
   des programmes en cours d'excution vers la ou les partitions
   d'change du disque dur. Le transfert des donnes depuis et vers la
   mmoire selon les besoins est assur par kpiod et kswapd. Toutes les
   secondes environ, kswapd se rveille et vrifie la situation de la
   mmoire, et, si une page devient ncessaire en mmoire ou que l'on
   commence  manquer de place, invoque kpiod.

   Il peut aussi exister un dmon kapmd si vous avez activ la gestion
   avance de l'nergie (apm) dans votre noyau.
     _________________________________________________________________

8.1. Configuration

   Le programme _update_ vous permet de configurer kflushd et kswapd.
   Essayez update -h pour avoir plus d'information.

   L'espace d'change (_swap_) est mis en service avec _swapon_ et hors
   service par _swapoff_. Ce sont les scripts d'initialisation
   /etc/rc.sysinit ou /etc/rc.d/rc.sysinit qui appellent gnralement
   _swapon_, lorsque le systme dmarre. J'ai entendu dire que _swapoff_
   tait pratique pour conomiser l'nergie des ordinateurs portables.
     _________________________________________________________________

8.2. Exercices

   Faites un _update -t_, notez les commentaires des dernires lignes
   parlant de  threshold for buffer fratricide  (seuil fratricides des
   tampons). Voil un concept bien intriguant ! Enqutez !

   Entrez dans le rpertoire /proc/sys/vm et faites un _cat_ sur tous les
   fichiers s'y trouvant. Voyez ce que vous pouvez en tirer.
     _________________________________________________________________

8.3. Aller plus loin

   Le livre  Le noyau Linux  du projet de documentation Linux (LDP).
   Suivre les liens dans la section aller plus loin - le noyau Linux.

   Le code source du noyau, si vous tes courageux ! Le programme source
   de kswapd se trouve dans linux/mm/vmscan.c, ceux de klushd et kupdate
   se trouvent eux dans linux/fs/buffer.c.
     _________________________________________________________________

9. Le journal systme

   Init dmarre les dmons syslogd et klogd. Ils crivent les messages 
   consigner dans le journal systme. Les messages du noyau sont pris en
   main par klogd, alors que syslogd gre les messages des autres
   processus. Le fichier journal principal est /var/log/messages. C'est
   un bon endroit o aller voir quand quelque chose tourne mal sur votre
   systme. Vous y trouverez souvent de prcieux indices.
     _________________________________________________________________

9.1. Configuration

   Le fichier /etc/syslog.conf indique au dmon de gestion du journal
   systme o mettre quels messages. Les messages sont identifis par le
   service dont ils proviennent, et leur niveau de priorit. Ce fichier
   de configuration est constitu de lignes indiquant que les messages du
   service x avec une priorit y vont vers z, o z est un fichier, un
   terminal, une imprimante, une machine distante, ou autre chose encore.

   Note

   Syslog a besoin que le fichier /etc/services existe. Ce fichier alloue
   des ports (UDP et TCP). Je ne sais pas vraiment si syslog a besoin
   d'un port rserv uniquement pour pouvoir enregistrer les messages des
   machines distantes, ou si mme l'enregistrement en local se fait au
   travers d'un port, ou mme s'il ne se contente pas d'utiliser
   /etc/services pour convertir les noms de services indiqus dans
   /etc/syslog.conf en numros de port.
     _________________________________________________________________

9.2. Exercices

   Jetez un oeil  votre journal systme. Prenez un message que vous ne
   comprenez pas, et essayez de trouver ce qu'il signifie.

   Redirigez tous les messages du journal vers un terminal. (Revenez  la
   normale une fois que c'est fait).
     _________________________________________________________________

9.3. Aller plus loin

   Le miroir franais de sysklogd.
     _________________________________________________________________

10. Getty et Login

   Getty est le programme qui vous permet de vous connecter  travers un
   priphrique srie, comme une console virtuelle, un terminal en mode
   texte, ou un modem. Il affiche l'invite de connexion. Une fois que
   vous avez saisi votre nom d'utilisateur, getty le transmet  login,
   qui vous demande un mot de passe, le vrifie, puis vous donne
   l'interprteur de commandes (le shell).

   Il existe plusieurs getty disponibles. Certaines distributions, comme
   Red Hat, en utilisent un trs petit appel mingetty et qui ne gre que
   les terminaux virtuels.

   Le programme login fait partie du paquet util-linux, qui contient
   aussi un getty nomm agetty, qui fonctionne bien. Ce paquet contient
   galement _mkswap_, _fdisk_, _passwd_, _kill_, _setterm_, _mount_,
   _swapon_, _rdev_, _renice_, _more_ et bien d'autres.
     _________________________________________________________________

10.1. Configuration

   Le message qui apparat en haut de votre cran avec l'invite de login
   provient du fichier /etc/issue. Les getty sont en gnral dmarrs
   depuis /etc/inittab. Login recherche les informations spcifiques 
   l'utilisateur dans /etc/passwd, et si vous utilisez un fichier de mot
   de passe ombre (_shadow password_), dans /etc/shadow.
     _________________________________________________________________

10.2. Exercices

   Crez un fichier /etc/passwd  la main. Les mots de passe peuvent tre
   nuls, puis changs avec le programme _passwd_ une fois connect. Voir
   la page de manuel de ce fichier. Utilisez _man 5 passwd_ pour obtenir
   la page de manuel du fichier plutt que celle du programme.
     _________________________________________________________________

11. Bash

   Si vous donnez  login une combinaison valide de nom d'utilisateur et
   de mot de passe, il ira regarder dans /etc/passwd pour savoir quel
   interprteur de commandes vous donner. La plupart du temps, dans un
   systme Linux, ce sera bash. Le travail de bash consiste  lire vos
   commandes et voir ce sur quoi elles agissent. C'est  la fois une
   interface utilisateur, et l'interprteur d'un langage de
   programmation.

   Dans son rle d'interface, il lit vos commandes, et les excute
   lui-mme si ces commandes sont internes, comme _cd_, ou bien trouve et
   excute un programme s'il s'agit de commandes externes comme _cp_ ou
   _startx_. Bash propose galement plusieurs options fort sympathiques
   comme un historique des commandes, ou la capacit de finir
   automatiquement les noms de fichiers que vous entrez (lorsque vous
   utiliser la touche _Tab_).

   Nous avons dj vu bash  l'action dans son rle de langage de
   programmation. Les scripts qu'init lance pour dmarrer le systme sont
   gnralement des scripts shell, et sont excuts par bash. Avoir un
   langage de programmation propre, paralllement aux utilitaires
   systmes disponibles depuis l'invite de commande forme une combinaison
   trs puissante, si vous savez ce que vous faites. Par exemple
   (squence frime !), j'ai eu besoin l'autre jour d'appliquer une pile
   entire de correctifs  un rpertoire de codes source. J'ai t
   capable de le faire en une seule commande, la suivante :
   for f in /home/greg/sh-utils-1.16*.patch; do patch -p0 < $f; done;

   Ceci recherche tous les fichiers de mon rpertoire personnel dont les
   noms commencent par sh-utils-1.16 et finissent par .patch, puis
   affecte un par un ces noms  la variable f et excute les commandes
   invoques entre do et done. Il y avait en l'occurrence 11 correctifs,
   mais il aurait pu aussi bien y en avoir 3000.
     _________________________________________________________________

11.1. Configuration

   Le fichier /etc/profile agit sur le comportement de bash au niveau du
   systme entier. Ce que vous mettez dans ce fichier affectera toute
   personne qui utilise bash sur votre systme. Cela sert par exemple 
   ajouter des rpertoires dans la variable PATH, ou  dfinir celui de
   la variable MAIL.

   Le comportement par dfaut du clavier laisse souvent  dsirer. En
   fait, c'est readline qui contrle cela. Readline est un paquet
   distinct qui prend en main les interfaces de ligne de commande, en
   fournissant l'historique des commandes, et la capacit  terminer
   automatiquement de noms de fichiers, tout comme les facilits volues
   d'dition de ligne. Il est compil dans bash. Par dfaut, Readline est
   configur  l'aide du fichier .inputrc, dans votre rpertoire
   personnel. La variable INPUTRC peut tre utilise pour outrepasser les
   rgles de ce fichier pour le bash. Par exemple, dans Red Hat 6,
   INPUTRC reoit la valeur /etc/inputrc dans le fichier /etc/profile. Ce
   qui signifie que les touches _Effacement arrire_, _Suppr_, _Dbut_ et
   _Fin_ fonctionnent correctement et pour tout le monde.

   Une fois que bash a lu le fichier de configuration gnral, commun au
   systme entier, il recherche votre fichier de configuration personnel.
   Il teste l'existence des fichiers .bash_profile, .bash_login et
   .profile dans votre rpertoire personnel. Il lance le premier qu'il
   trouve. Si vous voulez modifier le comportement de bash  votre gard,
   sans le changer pour les autres, faites-le ici. Par exemple, de
   nombreuses applications utilisent les variables d'environnement pour
   contrler leur fonctionnement. J'ai une variable EDITOR contenant la
   valeur _vi_ pour pouvoir utiliser vi sous Midnight Commander (un
   excellent gestionnaire de fichier orient console) au lieu de son
   propre diteur.
     _________________________________________________________________

11.2. Exercices

   Les bases de bash sont faciles  apprendre. Mais ne vous y limitez
   pas : on peut aller incroyablement loin avec. Prenez l'habitude de
   rechercher de meilleures faons de faire les choses.

   Lisez des scripts shell, analysez les choses que vous ne comprenez
   pas.
     _________________________________________________________________

11.3. Aller plus loin

     * Il existe le  Manuel de rfrence Bash , clair, mais assez
       lourd.
     * Il existe galement un livre O'Reilly sur Bash, je ne sais pas
       s'il est bon.
     * Je ne connais pas de bon tutoriel bash gratuit et  jour. Si vous
       en connaissez un, merci de me faire connatre le lien.
     * Le code source. Suivre les liens dans Construire un systme Linux
       Minimum  partir du Code Source
     _________________________________________________________________

12. Les commandes

   Vous effectuez la plupart des choses sous bash en saisissant des
   commandes comme _cp_. La majorit de ces commandes sont des petits
   programmes, bien que quelques-unes, comme _cd_ soient intgres 
   l'interprteur de commandes.

   Les commandes viennent de paquets, la plupart de la Free Software
   Foundation (projet GNU). Plutt que de dresser ici la liste des
   paquets, je prfre vous renvoyer vers le Comment faire un systme
   Linux  partir de zro. Il contient une liste complte et  jour de
   tous les paquets allant dans un systme Linux, aussi bien que des
   indications pour les construire.
     _________________________________________________________________

13. Conclusion

   L'un des meilleurs cts de Linux,  mon humble avis, est que vous
   pouvez entrer dedans et voir rellement comment il fonctionne.
   J'espre que vous apprcierez cela autant que moi. Et j'espre que ces
   quelques notes vous y auront aid.
     _________________________________________________________________

14. Section administrative

14.1. Copyright

   Copyright  1999, 2000 Greg O'Keefe. Vous tes libre d'utiliser, de
   copier, de distribuer ou de modifier ce document, sans obligation,
   selon les termes de la Licence publique gnrale GNU (GPL : GNU
   General Public Licence). Merci de citer l'auteur si vous utilisez tout
   ou partie de ce document dans un autre.
     _________________________________________________________________

14.2. Page principale

   Les mises  jour de ce document voluent sur le site From Powerup To
   Bash Prompt avec son compagnon  Building a Minimal Linux System from
   Source Code .

   Il existe une traduction franaise sur From Powerup to Bash Prompt.
   Merci  Dominique van den Broeck. Une traduction japonaise par Yuji
   Senda est en cours et sera disponible sur le site du Projet des
   documentations et FAQ japonaises si elle ne s'y trouve pas dj.
     _________________________________________________________________

14.3. Ractions

   J'aimerais recevoir vos commentaires, critiques et suggestions.
   Veuillez s'il vous plat me les envoyer en anglais  Greg O'Keefe
   <gcokeefe@postoffice.utas.edu.au>
     _________________________________________________________________

14.4. Rfrences et remerciements

   Les noms de produits cits sont des marques dposes par leurs
   propritaires respectifs, et considrs par cette note comme reconnus
   comme tels.

   Il y a quelques personnes que je voudrais remercier, pour m'avoir aid
    raliser tout ceci.

   Michael Emery
          Pour m'avoir rappel Unios.

   Tim Little
          Pour de bonnes indications concernant /etc/passwd

   sPaKr dans #linux sur efnet
          Qui a souponn l'utilisation de /etc/services par syslog, et
          m'a fait connatre l'expression  rolling your own  (raliser
          soi-mme) pour dcrire la construction d'un systme  partir
          des sources.

   Alex Aitkin
          Pour avoir port Vico et son  verum ipsum factum  (La
          comprhension dcoule de l'exprience)  mon attention.

   Dennis Scott
          Pour avoir corrig mon arithmtique en hexadcimal.

   jdd
          Pour avoir mis en vidence quelques erreurs typographiques.

   David Leadbeater
          Pour avoir contribu aux  prgrinations  dans les dmons
          noyau.

   Dominique van den Broeck
          Pour avoir traduit cette doc en franais. (NdT : Merci 
          Guillaume Allgre et Anthony Boureux pour la relecture ainsi
          qu' tous les membres de projet de traduction linux franais).

   Matthieu Peeters
          Pour ses trs bonnes informations sur les dmons du noyau.

   John Fremlin
          Pour ses trs bonnes informations sur les dmons du noyau.

   Yuji Senda
          Pour la traduction en japonais.

   Antonius de Rozari
          Pour avoir apport une version en assembleur GNU de Unios (voir
          la section ressources sur la page principale).
     _________________________________________________________________

14.5. Historique des changements

   0.8 -> 0.9 (novembre 2000)
          Incorporation des informations de Matthieu Peeters sur les
          dmons du noyau et le systme de fichiers /proc.

   0.7 -> 0.8 (septembre 2000)
          Suppression des informations sur la manire de construire un
          systme, pour les placer dans un document distinct. Correction
          de quelques liens en consquence.

          Changement de site internet: de learning@TasLUG vers mon propre
          site.

          Impossible d'incorporer toutes les bonnes informations reues
          d'horizons varis. La prochaine fois, peut-tre :(

   0.6 -> 0.7
          L'accent est plus port sur l'explication, et moins sur la
          faon de monter un systme, ces informations ayant t
          regroupes dans une section distincte, et le systme une fois
          construit a t revu  la baisse, voir directement la
          documentation de Gerard Beekmans  Linux From Scratch  pour
          construire un systme srieux.

          Ajout de quelques hypothses de la part de David Leadbeater

          Correction de deux url, ajout d'un lien vers le tlchargement
          d'Unios sur learning.taslug.org.au/resources

          Test et correction d'url.

          Grand nettoyage et rcriture gnrale.

   0.5 -> 0.6
          Ajout de l'historique des changements

          Ajout de quelques lments dans la liste des amliorations
          prvues.
     _________________________________________________________________

14.6. Amliorations prvues

     * Expliquer les modules noyau, depmod, modprobe, insmod et tout (il
       faut d'abord que je trouve moi-mme).
     * Mentionner le systme de fichiers /proc. Exercices potentiels.
     * Convertir en documentation sgml
     * Ajouter plus d'exercices, peut-tre une section entire
       d'exercices plus pousss, comme crer un systme de fichiers
       minimal fichier par fichier  partir de l'installation d'une
       distribution.
     _________________________________________________________________

14.7. Adaptation franaise

14.7.1. Traduction

   La traduction franaise de ce document a t ralise par Dominique
   van den Broeck <dvandenbroeck@free.fr>, mai 2000 (v0.7), fvrier 2001
   (v0.9).
     _________________________________________________________________

14.7.2. Relecture

   La relecture de ce document a t ralise par Jean-Philippe Gurard
   <jean-philippe.guerard@laposte.net>. Les version prcdentes ont t
   relues par Guillaume Allgre et Anthony Boureux.
