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

Greg O'Keefe

             <gcokeefe@postoffice.utas.edu.au>

   _Dominique van den Broeck - _Traduction fran�aise

   _Jean-Philippe Gu�rard - _Relecture de la version fran�aise

   v0.9, novembre 2000

   Voici une description rapide de ce qui se passe dans un syst�me 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 m�canismes vous sera tr�s utile lorsque vous aurez
   besoin de r�soudre des probl�mes ou de configurer votre syst�me.
     _________________________________________________________________

   _Table des mati�res_
   1. Introduction
   2. Partie mat�rielle

        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 biblioth�que 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 syst�me de fichiers

        7.1. Configuration
        7.2. Exercices
        7.3. Aller plus loin

   8. Les d�mons du noyau

        8.1. Configuration
        8.2. Exercices
        8.3. Aller plus loin

   9. Le journal syst�me

        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. R�actions
        14.4. R�f�rences et remerciements
        14.5. Historique des changements
        14.6. Am�liorations pr�vues
        14.7. Adaptation fran�aise

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 syst�me plut�t que simplement savoir comment
   l'utiliser, ce document devrait �tre un bon point de d�part. Ce genre
   de connaissance de fond est aussi requis si vous voulez devenir un as
   de la r�solution de probl�mes sous Linux.

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

   Le sujet principal de ce document est la fa�on dont Linux d�marre.
   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'esp�re que certains lecteurs s'attaqueront au meilleur exercice
   d'apprentissage de Linux que je connaisse : construire un syst�me �
   partir du code source. Giambattista Vico, un philosophe italien
   (1668-1744) disait _verum ipsum factum_ ce qui signifie � de
   l'exp�rience na�t la compr�hension � (NdT : traduction libre). Merci �
   Alex (voir r�f�rences et remerciements) pour cette citation.

   Si vous souhaitez vous r�aliser votre propre installation Linux, je
   vous conseille d'aller voir le document de Gerard Beekmans Comment
   faire un syst�me Linux � partir de z�ro (_Linux from scratch - LFS_).
   LFS fournit des instructions d�taill�es pour b�tir un syst�me 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 syst�mes. Les instructions jadis incluses �
   ce guide se trouvent maintenant dans un document distinct nomm�
   � Construire un syst�me Linux minimum � partir du code source � et qui
   peut �tre r�cup�r� sur le site From PowerUp to Bash Prompt pour
   construire un syst�me jouet, purement pour l'exercice.

   Les paquets sont pr�sent�s dans l'ordre o� ils apparaissent dans le
   processus de d�marrage du syst�me. Cela signifie que si vous installez
   les paquets dans cet ordre vous pouvez red�marrer apr�s chaque
   installation, et voir � chaque fois le syst�me 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 r�f�rences, puis de d�cider du
   point jusqu'auquel vous souhaitez comprendre votre syst�me. Reprenez
   alors depuis le d�but, en faisant les exercices et en relisant en
   d�tail.
     _________________________________________________________________

2. Partie mat�rielle

   Lorsque vous allumez votre ordinateur, celui-ci se teste lui-m�me 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'amor�age (_bootstrap loader_),
   situ� dans le BIOS en ROM, recherche un secteur d'amor�age. Un secteur
   d'amor�age est le premier secteur d'un disque et contient un petit
   programme capable de charger un syst�me d'exploitation. Les secteurs
   d'amor�age sont marqu�s par un nombre magique (i.e. une valeur fixe
   caract�ristique) 0xAA55 = 43603 � l'octet 0x1FE = 510. Ce sont les
   deux derniers octets du secteur. C'est de cette fa�on que la partie
   mat�rielle peut d�terminer s'il s'agit d'un secteur d'amor�age ou pas.

   Le chargeur d'amor�age a une liste d'endroits o� chercher un secteur
   d'amor�age. 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'amor�age sur un CD-ROM. S'il trouve un secteur
   d'amor�age, il le charge en m�moire et passe ainsi le contr�le au
   programme qui charge le syst�me d'exploitation en m�moire. Sur un
   syst�me Linux classique, ce programme sera la premi�re �tape du
   chargeur de Lilo. Il existe malgr� tout plusieurs mani�res diff�rentes
   de configurer l'amor�age de votre syst�me. Voir le _Guide de
   l'utilisateur de Lilo_ pour plus de d�tails. Voir la section liens sur
   Lilo pour l'url.

   �videment, il y a bien plus � dire sur ce que fait la partie
   mat�rielle du PC. Mais ce n'est pas l'objet de ce document. Lisez un
   des nombreux livres traitant de l'architecture mat�rielle 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 install�s dans le syst�me.
   Le BIOS de la machine contient un programme de configuration, Setup,
   qui vous permet de modifier ces informations. Pour savoir comment y
   acc�der, 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 syst�me d'exploitation.
     _________________________________________________________________

2.2. Exercices

   Une bonne fa�on d'en apprendre plus sur la partie mat�rielle 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
   co�tera pas tr�s cher. Posez la question autour de vous, quelqu'un
   pourrait bien vous donner une partie des pi�ces qu'il vous faut.

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

   Ouvrez l'image de la disquette d'amor�age pour Unios avec un �diteur
   hexad�cimal. Cette image fait 512 octets de long. Exactement la
   longueur d'un secteur. Trouvez-y le nombre magique 0xAA55. Faites la
   m�me chose pour une disquette amor�able 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 _tr�s_ attention �
   param�trer 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 particuli�rement 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'amor�age. 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 mani�re de faire
       �voluer son PC.
     _________________________________________________________________

3. Lilo

   Lorsque l'ordinateur charge le secteur d'amorce d'un syst�me sous
   Linux normal, ce qu'il charge est en fait une partie de Lilo, appel�e
   chargeur d'amor�age de premier niveau (_first stage boot loader_). Il
   s'agit d'un mini-programme dont la seule t�che est de charger et
   d'ex�cuter le chargeur d'amor�age de deuxi�me niveau (_second stage
   boot loader_).

   Le chargeur d'amor�age de deuxi�me niveau vous donne une invite de
   commande (s'il a �t� install� de cette mani�re) et charge le syst�me
   d'exploitation de votre choix.

   Lorsque votre syst�me est mont� et en �tat de marche, et que vous
   ex�cutez _lilo_, ce que vous ex�cutez en r�alit� est l'outil de
   d�finition des localisations (_map installer_). Celui-ci lit le
   fichier de configuration /etc/lilo.conf et �crit le chargeur
   d'amor�age sur le disque dur, avec les informations concernant les
   syst�mes d'exploitation qu'il peut charger.

   Il y a de nombreuses mani�res de rendre votre syst�me amor�able. Celle
   que je viens de d�crire est la mani�re la plus �vidente et
   � normale �, au moins pour une machine dont le syst�me d'exploitation
   principal est Linux. Le Guide de l'utilisateur Lilo explique plusieurs
   exemples de m�thodes d'amor�age. 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 caract�ristique de lilo.conf est
   qu'il existe une entr�e pour chaque chose que Lilo doit pouvoir
   lancer. Pour une entr�e Linux, cela inclut l'emplacement du noyau, et
   la partition � monter comme racine du syst�me de fichier. Pour les
   autres syst�mes, la principale information est la partition sur
   laquelle d�marrer.
     _________________________________________________________________

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 d�marrage
   (_master boot record - MBR_, premier secteur du disque dur, qui
   contient le chargeur d'amor�age et la table des partitions) et de
   rendre ainsi votre syst�me inutilisable. Assurez-vous que vous avez
   une disquette de r�paration 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 r�paration que j'utilise et
   recommande. La meilleure des pr�cautions est d'utiliser une machine
   qui ne contienne pas de donn�es 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 pr�t � 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 syst�me sur une disquette. C'est s�rement
   la deuxi�me meilleure activit� pour apprendre Linux. Voir le � Comment
   faire une disquette d'amor�age � (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 mat�rielle pour une url). Comme d�fi suppl�mentaire, voyez si
   vous pouvez le faire sur une disquette.

   Faites une boucle d'amor�age. Configurez le Lilo du bloc de d�marrage
   pour qu'il lance le Lilo du secteur d'amor�age d'une des partitions
   principales, puis configurez ce Lilo pour qu'il relance celui du bloc
   de d�marrage. Ou alors utilisez le bloc de d�marrage 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 r�cente). Il se peut que vous disposiez d�j� 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'amor�age (_Bootdisk HOWTO_).
     _________________________________________________________________

4. Le noyau Linux

   Le noyau (_kernel_) fait vraiment beaucoup de choses. Je pense qu'une
   bonne mani�re de r�sumer tout cela est de dire qu'il fait faire au
   mat�riel ce que les programmes veulent, proprement et efficacement.

   Le processeur ne peut ex�cuter qu'une seule instruction � la fois,
   mais Linux semble faire tourner beaucoup de choses simultan�ment. Le
   noyau accomplit cela en sautant de t�che en t�che tr�s rapidement. Il
   fait le meilleur usage possible du processeur en gardant trace des
   processus qui sont pr�ts � �tre ex�cut�s et de ceux qui attendent
   quelque chose comme un enregistrement en provenance d'un disque, ou
   une saisie clavier quelconque. Cette t�che du noyau est appel�e
   ordonnancement.

   Si un programme ne fait rien, alors il n'a pas besoin d'�tre conserv�
   en m�moire (RAM). M�me un programme qui travaille peut avoir certaines
   parties inactives, qui n'ont donc pas besoin d'�tre en m�moire.
   L'espace adressable est divis� en pages. Le noyau garde une trace des
   pages les plus utilis�es. Les pages qui sont moins souvent utilis�es
   peuvent �tre d�plac�es dans la partition d'�change (_swap_).
   Lorsqu'une page est � nouveau sollicit�e, une autre page inutilis�e
   est retir�e de l'espace adressable pour lui faire de la place. Cela
   s'appelle la gestion de la m�moire virtuelle.

   Si vous avez un jour compil� votre propre noyau, vous avez remarqu�
   qu'il y a un grand nombre d'options pour des p�riph�riques
   sp�cifiques. Le noyau contient une grande quantit� de code sp�cifique
   pour interagir avec tous types de mat�riels, et pouvoir les pr�senter
   d'une fa�on 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 r�seau.

   Une fois le noyau charg�, la premi�re chose qu'il fait est de
   rechercher un programme appel� init et l'ex�cuter.
     _________________________________________________________________

4.1. Configuration

   La majorit� de la configuration du noyau est effectu�e quand vous le
   construisez, en utilisant _make menuconfig_, ou _make xconfig_ dans le
   r�pertoire /usr/src/linux/ (l� ou se trouvent les sources de votre
   noyau Linux). La commande _rdev_ vous permet r�initialiser le mode
   vid�o par d�faut, la racine du syst�me de fichiers, le p�riph�rique
   d'�change et la taille du disque virtuel (disque RAM). Ces param�tres
   ainsi que d'autres peuvent aussi �tre pass�s au noyau depuis Lilo.
   Vous pouvez indiquer � Lilo les param�tres � passer au noyau soit dans
   lilo.conf, soit � l'invite de Lilo. Par exemple, si vous souhaitiez
   utiliser hda3 comme racine du syst�me de fichiers plut�t que hda2,
   vous pourriez taper :
   LILO: linux root=/dev/hda3

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

   Note

   Le fichier System.map est utilis� lors de l'�criture d'entr�es dans le
   journal syst�me pour d�terminer les noms des modules g�n�rant les
   messages. Le programme _top_ utilise �galement ces informations.
   Lorsque vous copiez le noyau vers un syst�me cible, copiez aussi
   System.map.
     _________________________________________________________________

4.2. Exercices

   R�fl�chissez � ceci : /dev/hda3 est un type de fichier sp�cial qui
   d�crit une partition d'un disque dur. Mais il vit sur le syst�me de
   fichiers comme tous les autres fichiers. Le noyau veut savoir quelle
   partition monter � la racine - donc il n'a pas encore de syst�me 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 r�duire la taille de
   votre noyau avant qu'il ne cesse de fonctionner. Vous pouvez apprendre
   beaucoup en �cartant les parties non n�cessaires.

   Lisez � Le noyau Linux � (url ci-dessous) et ce faisant, trouvez les
   parties des sources auxquelles il se r�f�re. Le livre (au moment o�
   j'�cris ces lignes) se r�f�re au noyau version 2.0.33, qui commence �
   �tre franchement d�pass�. Il pourrait �tre plus facile de suivre si
   vous t�l�chargiez cette ancienne version et y lisiez le source. Il est
   tr�s excitant de trouver des morceaux de code C appel�s � process � et
   � page �.

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

4.3. Aller plus loin

     * Le fichier /usr/src/linux/README et le contenu du r�pertoire
       /usr/src/linux/Documentation/. Leurs emplacements peuvent varier
       selon votre syst�me.
     * 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
       fran�aise 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
       syst�me Linux minimum � partir du code source
     _________________________________________________________________

5. La biblioth�que C de GNU

   L'�tape suivante qui se produit au d�marrage de votre ordinateur est
   le chargement d'init et son ex�cution. Cependant, init, comme la
   plupart des programmes, utilise des fonctions issues de biblioth�ques.

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

   Le programme ne d�finit nullement printf, alors d'o� vient-il ? Il
   provient des biblioth�ques C standard. Pour un syst�me 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 m�mes fonctions
   standard. Il existe des masses de ces fonctions standard, pour les
   math�matiques, la gestion des cha�nes de caract�res, de l'heure et de
   la date, des allocations de m�moire 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 syst�me Linux, vous verrez
   un grand nombre de fichiers appel�s libquelquechose.so ou
   libquelquechose.a et c�tera. Ce sont les biblioth�ques de ces
   fonctions. Glibc est simplement la mise en oeuvre GNU de ces
   fonctions.

   Les programmes peuvent utiliser ces fonctions de deux mani�res. Si
   vous r�alisez une �dition de liens _statique_, ces fonctions seront
   copi�es � l'int�rieur de l'ex�cutable g�n�r�. C'est � cela que servent
   les biblioth�ques libquelquechose.a. Si vous r�alisez une �dition de
   liens _dynamique_ (cas par d�faut), lorsque le programme aura besoin
   du code d'une biblioth�que, il l'appellera directement depuis le
   fichier libquelquechose.so

   La commande _ldd_ vous apporte une aide pr�cieuse lorsque vous
   cherchez � retrouver les biblioth�ques utilis�es par un programme
   particulier. Par exemple, voici les biblioth�ques utilis�es 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 biblioth�ques d�pendent de la r�gion
   g�ographique o� vous vous trouvez. Par exemple, en fran�ais, on �crit
   les dates sous la forme jj/mm/aa, mais les am�ricains 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 d�terminer les biblioth�ques qu'utilise votre
   application pr�f�r�e.

   Utilisez _ldd_ pour d�terminer les biblioth�ques utilis�es par init.

   Cr�ez une biblioth�que gadget, avec seulement une ou deux fonctions
   dedans. On utilise le programme _ar_ pour les cr�er. La page de manuel
   d'ar pourrait �tre un bon point de d�part pour commencer � enqu�ter
   sur la mani�re dont cette op�ration est effectu�e. �crivez, compilez,
   et liez un programme utilisant cette biblioth�que.
     _________________________________________________________________

5.3. Aller plus loin

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

6. Init

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

   Le travail d'init est de faire en sorte que tout se lance
   correctement. Il v�rifie que les syst�mes de fichier sont en bon �tat
   et les monte. Il d�marre les d�mons (_daemons_) qui enregistrent les
   messages syst�me, g�rent le r�seau, distribuent les pages web,
   �coutent les signaux de la souris, et c�tera. Init d�marre 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'ex�cution (� run-levels �), mais je vais sauter tout �a, et ne
   parler que du d�marrage du syst�me.

   Init lit le fichier /etc/inittab, qui lui dit quoi faire. En g�n�ral,
   la premi�re chose demand�e est l'ex�cution d'un script
   d'initialisation. Le programme qui ex�cute (ou interpr�te) ce script
   est _bash_, le m�me programme qui vous donne la ligne de commande. Sur
   les syst�mes Debian, le script d'initialisation est /etc/init.d/rcS,
   sur Red Hat, /etc/rc.d/rc.sysinit. C'est l� que les syst�mes de
   fichiers sont v�rifi�s puis mont�s, l'horloge mise � l'heure, le
   fichier ou la partition d'�change (swap) activ�s, les noms de machines
   d�finis, et c�tera.

   Ensuite, un autre script est invoqu� pour nous placer dans le niveau
   d'ex�cution par d�faut. Cela implique simplement le d�marrage d'un
   ensemble de sous-syst�mes. Il existe un ensemble de sous-r�pertoires
   /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'ex�cution (_runlevels_). Si nous entrons dans le niveau
   d'ex�cution 3 sur un syst�me Debian, le script ex�cute tous les
   scripts de /etc/rc3.d commen�ant par � S � (pour _Start_). Ces scripts
   sont en r�alit� des liens vers un autre r�pertoire appel� g�n�ralement
   init.d.

   Donc, le script de notre niveau d'ex�cution est appel� par init, et
   recherche dans un r�pertoire les scripts dont le nom d�bute par la
   lettre � S �. Il se peut qu'il tombe sur S10syslog en premier. Les
   chiffres indiquent au script de gestion des niveaux d'ex�cution
   l'ordre dans lequel il doit les lancer. En l'occurrence, S10syslog est
   lanc� en premier parce qu'il n'y pas de script commen�ant par
   S00 ... S09. Mais S10syslog est en fait un lien vers
   /etc/init.d/syslog qui est un script charg� du d�marrage et de l'arr�t
   du d�mon de gestion du journal syst�me. Parce que le nom du lien
   commence par un � S �, le script de gestion des niveaux d'ex�cution
   sait qu'il doit ex�cuter le script _syslog_ avec le param�tre start.
   Il y a aussi des liens dont le nom d�bute par � K � (pour _Kill_), qui
   sp�cifient ce qui doit �tre arr�ter, et dans quel ordre, lorsque l'on
   entre dans ce niveau d'ex�cution.

   Pour changer ce que le sous-syst�me lance par d�faut, vous devez
   configurer ces liens dans le r�pertoire rcN.d, o� N est le niveau
   d'ex�cution par d�faut d�fini dans votre fichier inittab.

   La derni�re chose importante qu'effectue init est de d�marrer les
   getty. Ceux-ci sont ressuscit�s (_respawned_), ce qui signifie qu'ils
   sont automatiquement relanc�s 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 m�moire, 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 r�pertoires rcN.d, o� N = 0, 1, ... , 6 d�termine les
   sous-syst�mes � lancer.

   Quelque part dans les scripts invoqu�s par init, se trouve la commande
   _mount -a_. Cela signifie : � Monte tous les syst�mes de fichiers
   cens�s �tre mont�s �. Le fichier /etc/fstab d�finit ce qui est cens�
   �tre mont�. Si vous souhaitez changer ce qui est mont� par d�faut au
   d�marrage, c'est ce fichier que vous devez modifier. Il existe une
   page de manuel pour fstab.
     _________________________________________________________________

6.2. Exercices

   Trouvez le r�pertoire rcN.d du niveau d'ex�cution par d�faut de votre
   syst�me puis faites un _ls -l_ pour voir les fichiers point�s par les
   liens.

   Changez le nombre de getty tournant sur votre syst�me.

   Retirez tous les sous-syst�mes dont vous n'avez pas besoin de votre
   niveau d'ex�cution par d�faut.

   Essayez de d�terminer le minimum n�cessaire pour d�marrer.

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

   Regardez attentivement votre syst�me d�marrer, et notez les �v�nements
   signal�s. Ou imprimez une section de votre journal syst�me
   /var/log/messages � partir du moment o� votre syst�me a d�marr�.
   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 compliqu�s. Ayez un bon document de
   r�f�rence sur Bash � port�e 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 syst�me du projet de
       documentation Linux (LDP) contient une section int�ressante sur
       init.
     * Pour le code source, suivre les liens du Construire un syst�me
       Linux minimum � partir du code source
     _________________________________________________________________

7. Le syst�me de fichiers

   Dans cette section, j'emploierai l'expression � syst�me de fichiers �
   pour deux notions diff�rentes. Il y a les syst�mes de fichiers
   install�s sur des partitions de disque ou d'autres p�riph�riques, et
   il y a le syst�me de fichier tel qu'il vous est pr�sent� par un
   syst�me Linux en �tat de marche. Sous Linux, vous � montez � le
   syst�me de fichiers d'un disque sur le syst�me de fichiers de Linux.

   Dans la section pr�c�dente, j'ai mentionn� le fait que des scripts
   d'initialisation v�rifiaient et montaient les syst�mes de fichiers.
   Les commandes qui effectuent ces op�rations sont respectivement _fsck_
   et _mount_.

   Un disque dur n'est qu'un grand espace dans lequel vous pouvez �crire
   des z�ros et des uns. Un syst�me de fichiers impose une structure �
   tout cela, et le pr�sente sous la forme de fichiers, � l'int�rieur de
   sous-r�pertoires, � l'int�rieur de r�pertoires ... Chaque fichier est
   repr�sent� par un _inode_, indiquant le fichier dont il s'agit, sa
   date de cr�ation, et o� trouver son contenu. Les r�pertoires sont
   aussi repr�sent�s par des inodes, mais ceux-ci indiquent o� trouver
   les inodes des fichiers que les r�pertoires contiennent. Si le syst�me
   veut lire /home/greg/groslolos.jpeg, il commence par lire l'inode du
   r�pertoire racine / dans le � superbloc �, puis trouve l'inode du
   r�pertoire home dans le contenu de /, puis trouve l'inode du
   r�pertoire 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 donn�es � la fin d'un fichier, il peut arriver
   que les donn�es soient �crites avant que l'inode ne soit mis � jour
   (indiquant que le nouveau bloc appartient d�sormais au fichier), ou
   vice-versa. Si le courant est coup� � cet instant pr�cis, le syst�me
   de fichiers sera cass�. C'est ce genre de chose que _fsck_ essaie de
   d�tecter et de r�parer.

   La commande _mount_ prend le syst�me de fichiers d'un p�riph�rique, et
   l'ajoute � la hi�rarchie de fichiers de votre syst�me. En g�n�ral le
   noyau monte son syst�me de fichiers racine en lecture seule. La
   commande mount est ensuite utilis�e pour le remonter en
   lecture-�criture apr�s que fsck aie v�rifi� que tout est en ordre.

   Linux prend aussi en charge d'autres types de syst�mes de fichiers :
   msdos, vfat, minix, et c�tera. Les d�tails d'un syst�me de fichiers
   sp�cifique sont masqu�s par le syst�me de fichier virtuel (Virtual
   File System - VFS), qui est une couche d'abstraction. Je ne rentrerai
   pas dans ces d�tails. 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 syst�me de fichiers compl�tement diff�rent est mont� sur
   /proc. C'est une v�ritable projection de ce qui se passe dans le
   noyau. On y trouve un r�pertoire pour chaque processus existant sur le
   syst�me, dont le nom correspond au num�ro dudit processus. Il existe
   aussi des fichiers comme interrupts et meminfo qui donnent des
   informations sur l'utilisation du mat�riel. Vous pouvez d�couvrir
   �norm�ment de choses en explorant /proc.
     _________________________________________________________________

7.1. Configuration

   Il est possible d'indiquer � _mke2fs_, la commande de cr�ation des
   syst�me de fichiers ext2, des param�tres d�finissant la taille des
   blocs, le nombre d'inodes, et c�tera. Voir la page de manuel de mke2fs
   pour plus de d�tails.

   Ce qui doit �tre mont� sur votre syst�me de fichiers est contr�l� par
   le fichier /etc/fstab, qui a lui aussi sa page de manuel.
     _________________________________________________________________

7.2. Exercices

   Fabriquez un tout petit syst�me de fichiers, et visualisez-le avec un
   �diteur hexad�cimal. 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 syst�me de fichiers. Trouvez-en un, essayez-le, et envoyez moi
   l'url par courrier �lectronique (en anglais) avec vos commentaires !

   Explorez le code du syst�me 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 syst�mes 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 Syst�me 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, d�crit le fonctionnement du syst�me de fichier /proc.
     * La page principale des utilitaires du syst�me 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 syst�me de fichier Unix. Ce document d�crit o� doit
       se trouver quoi, dans un syst�me Unix, et pourquoi. Il indique
       aussi le minimum n�cessaire � placer dans /bin, /sbin, et c�tera.
       C'est une bonne r�f�rence si votre objectif est un syst�me minimal
       mais complet.
     _________________________________________________________________

8. Les d�mons 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'ex�cution sur le syst�me. Les
   informations proviennent du syst�me de fichiers /proc que j'ai
   mentionn� dans la section pr�c�dente. Remarquez que init est le
   processus num�ro un. Les processus 2, 3, 4 et 5 sont kflushd, kupdate,
   kpiod et kswapd. Il y a quand m�me quelque chose d'�trange : dans les
   deux colonnes de la taille virtuelle de stockage (SIZE) et la taille
   r�elle de stockage (Real Storage Size, RSS), ces processus renvoient
   z�ro. Comment un processus peut-il ne pas utiliser de m�moire ?

   Il s'agit des d�mons propres au noyau. La majeure partie du noyau
   n'appara�t m�me pas dans la liste des processus, et le seul moyen de
   conna�tre la m�moire qu'il utilise est de soustraire la m�moire
   disponible � la quantit� totale de m�moire install�e. Les d�mons du
   noyau sont d�marr�s apr�s init, et obtiennent de ce fait des num�ros
   de processus normaux, mais leur code et leurs donn�es n'existent qu'au
   sein de la zone de m�moire occup�e par le noyau.

   Les noms des d�mons du noyau dans la liste sont �crits entre crochets
   car le syst�me de fichiers /proc ne contient pas d'information sur la
   ligne de commande utilis�e pour lancer ces processus.

   Alors, � quoi servent ces d�mons ? Les versions pr�c�dentes de ce
   document pr�sentaient ici un appel � contribution, car mes
   connaissances dans ce domaine sont limit�es. L'explication (partielle)
   qui suit est une fusion de diff�rentes r�ponses � cet appel, pour
   lesquelles j'ai une grande reconnaissance. Toutes indications,
   r�f�rences et corrections sont bienvenues.

   Toutes les entr�es et sorties sont effectu�es via des _tampons_ en
   m�moire, ce qui acc�l�re grandement les choses. Tout ce qu'un
   programme �crit peut �tre conserv� en m�moire, puis �tre �crit sur le
   disque par blocs plus grands et plus efficaces. C'est le travail des
   d�mons kflushd et kupdate.

   Tr�s souvent, les processus sont au repos, et ceux qui tournent n'ont
   pas besoin d'avoir l'int�gralit� de leur code et de leurs donn�es
   charg�e en m�moire. Cela signifie que l'on peut faire un meilleur
   usage de notre m�moire vive, en faisait glisser les pages inutilis�es
   des programmes en cours d'ex�cution vers la ou les partitions
   d'�change du disque dur. Le transfert des donn�es depuis et vers la
   m�moire selon les besoins est assur� par kpiod et kswapd. Toutes les
   secondes environ, kswapd se r�veille et v�rifie la situation de la
   m�moire, et, si une page devient n�cessaire en m�moire ou que l'on
   commence � manquer de place, invoque kpiod.

   Il peut aussi exister un d�mon kapmd si vous avez activ� la gestion
   avanc�e 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 g�n�ralement
   _swapon_, lorsque le syst�me d�marre. 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 derni�res lignes
   parlant de � threshold for buffer fratricide � (seuil fratricides des
   tampons). Voil� un concept bien intriguant ! Enqu�tez !

   Entrez dans le r�pertoire /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 syst�me

   Init d�marre les d�mons syslogd et klogd. Ils �crivent les messages �
   consigner dans le journal syst�me. Les messages du noyau sont pris en
   main par klogd, alors que syslogd g�re 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
   syst�me. Vous y trouverez souvent de pr�cieux indices.
     _________________________________________________________________

9.1. Configuration

   Le fichier /etc/syslog.conf indique au d�mon de gestion du journal
   syst�me o� mettre quels messages. Les messages sont identifi�s 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 r�serv� uniquement pour pouvoir enregistrer les messages des
   machines distantes, ou si m�me l'enregistrement en local se fait au
   travers d'un port, ou m�me s'il ne se contente pas d'utiliser
   /etc/services pour convertir les noms de services indiqu�s dans
   /etc/syslog.conf en num�ros de port.
     _________________________________________________________________

9.2. Exercices

   Jetez un oeil � votre journal syst�me. 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 fran�ais de sysklogd.
     _________________________________________________________________

10. Getty et Login

   Getty est le programme qui vous permet de vous connecter � travers un
   p�riph�rique s�rie, 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 v�rifie, puis vous donne
   l'interpr�teur de commandes (le shell).

   Il existe plusieurs getty disponibles. Certaines distributions, comme
   Red Hat, en utilisent un tr�s petit appel� mingetty et qui ne g�re 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 appara�t en haut de votre �cran avec l'invite de login
   provient du fichier /etc/issue. Les getty sont en g�n�ral d�marr�s
   depuis /etc/inittab. Login recherche les informations sp�cifiques �
   l'utilisateur dans /etc/passwd, et si vous utilisez un fichier de mot
   de passe ombre (_shadow password_), dans /etc/shadow.
     _________________________________________________________________

10.2. Exercices

   Cr�ez un fichier /etc/passwd � la main. Les mots de passe peuvent �tre
   nuls, puis chang�s 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 plut�t 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
   interpr�teur de commandes vous donner. La plupart du temps, dans un
   syst�me 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'interpr�teur d'un langage de
   programmation.

   Dans son r�le d'interface, il lit vos commandes, et les ex�cute
   lui-m�me si ces commandes sont internes, comme _cd_, ou bien trouve et
   ex�cute 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 d�j� vu bash � l'action dans son r�le de langage de
   programmation. Les scripts qu'init lance pour d�marrer le syst�me sont
   g�n�ralement des scripts shell, et sont ex�cut�s par bash. Avoir un
   langage de programmation propre, parall�lement aux utilitaires
   syst�mes disponibles depuis l'invite de commande forme une combinaison
   tr�s puissante, si vous savez ce que vous faites. Par exemple
   (s�quence frime !), j'ai eu besoin l'autre jour d'appliquer une pile
   enti�re de correctifs � un r�pertoire 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 r�pertoire 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 ex�cute les commandes
   invoqu�es 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
   syst�me entier. Ce que vous mettez dans ce fichier affectera toute
   personne qui utilise bash sur votre syst�me. Cela sert par exemple �
   ajouter des r�pertoires dans la variable PATH, ou � d�finir celui de
   la variable MAIL.

   Le comportement par d�faut du clavier laisse souvent � d�sirer. En
   fait, c'est readline qui contr�le 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 facilit�s �volu�es
   d'�dition de ligne. Il est compil� dans bash. Par d�faut, Readline est
   configur� � l'aide du fichier .inputrc, dans votre r�pertoire
   personnel. La variable INPUTRC peut �tre utilis�e pour outrepasser les
   r�gles de ce fichier pour le bash. Par exemple, dans Red Hat 6,
   INPUTRC re�oit la valeur /etc/inputrc dans le fichier /etc/profile. Ce
   qui signifie que les touches _Effacement arri�re_, _Suppr_, _D�but_ et
   _Fin_ fonctionnent correctement et pour tout le monde.

   Une fois que bash a lu le fichier de configuration g�n�ral, commun au
   syst�me entier, il recherche votre fichier de configuration personnel.
   Il teste l'existence des fichiers .bash_profile, .bash_login et
   .profile dans votre r�pertoire 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
   contr�ler 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 fa�ons 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 r�f�rence 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 conna�tre le lien.
     * Le code source. Suivre les liens dans Construire un syst�me 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 int�gr�es �
   l'interpr�teur de commandes.

   Les commandes viennent de paquets, la plupart de la Free Software
   Foundation (projet GNU). Plut�t que de dresser ici la liste des
   paquets, je pr�f�re vous renvoyer vers le Comment faire un syst�me
   Linux � partir de z�ro. Il contient une liste compl�te et � jour de
   tous les paquets allant dans un syst�me Linux, aussi bien que des
   indications pour les construire.
     _________________________________________________________________

13. Conclusion

   L'un des meilleurs c�t�s de Linux, � mon humble avis, est que vous
   pouvez entrer dedans et voir r�ellement comment il fonctionne.
   J'esp�re que vous appr�cierez cela autant que moi. Et j'esp�re 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 g�n�rale 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 fran�aise 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 d�j�.
     _________________________________________________________________

14.3. R�actions

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

14.4. R�f�rences et remerciements

   Les noms de produits cit�s sont des marques d�pos�es par leurs
   propri�taires respectifs, et consid�r�s par cette note comme reconnus
   comme tels.

   Il y a quelques personnes que je voudrais remercier, pour m'avoir aid�
   � r�aliser 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 soup�onn� l'utilisation de /etc/services par syslog, et
          m'a fait conna�tre l'expression � rolling your own � (r�aliser
          soi-m�me) pour d�crire la construction d'un syst�me � partir
          des sources.

   Alex Aitkin
          Pour avoir port� Vico et son � verum ipsum factum � (La
          compr�hension d�coule de l'exp�rience) � mon attention.

   Dennis Scott
          Pour avoir corrig� mon arithm�tique en hexad�cimal.

   jdd
          Pour avoir mis en �vidence quelques erreurs typographiques.

   David Leadbeater
          Pour avoir contribu� aux � p�r�grinations � dans les d�mons
          noyau.

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

   Matthieu Peeters
          Pour ses tr�s bonnes informations sur les d�mons du noyau.

   John Fremlin
          Pour ses tr�s bonnes informations sur les d�mons 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
          d�mons du noyau et le syst�me de fichiers /proc.

   0.7 -> 0.8 (septembre 2000)
          Suppression des informations sur la mani�re de construire un
          syst�me, pour les placer dans un document distinct. Correction
          de quelques liens en cons�quence.

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

          Impossible d'incorporer toutes les bonnes informations re�ues
          d'horizons vari�s. La prochaine fois, peut-�tre :(

   0.6 -> 0.7
          L'accent est plus port� sur l'explication, et moins sur la
          fa�on de monter un syst�me, ces informations ayant �t�
          regroup�es dans une section distincte, et le syst�me une fois
          construit a �t� revu � la baisse, voir directement la
          documentation de Gerard Beekmans � Linux From Scratch � pour
          construire un syst�me s�rieux.

          Ajout de quelques hypoth�ses de la part de David Leadbeater

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

          Test et correction d'url.

          Grand nettoyage et r��criture g�n�rale.

   0.5 -> 0.6
          Ajout de l'historique des changements

          Ajout de quelques �l�ments dans la liste des am�liorations
          pr�vues.
     _________________________________________________________________

14.6. Am�liorations pr�vues

     * Expliquer les modules noyau, depmod, modprobe, insmod et tout (il
       faut d'abord que je trouve moi-m�me).
     * Mentionner le syst�me de fichiers /proc. Exercices potentiels.
     * Convertir en documentation sgml
     * Ajouter plus d'exercices, peut-�tre une section enti�re
       d'exercices plus pouss�s, comme cr�er un syst�me de fichiers
       minimal fichier par fichier � partir de l'installation d'une
       distribution.
     _________________________________________________________________

14.7. Adaptation fran�aise

14.7.1. Traduction

   La traduction fran�aise de ce document a �t� r�alis�e par Dominique
   van den Broeck <dvandenbroeck@free.fr>, mai 2000 (v0.7), f�vrier 2001
   (v0.9).
     _________________________________________________________________

14.7.2. Relecture

   La relecture de ce document a �t� r�alis�e par Jean-Philippe Gu�rard
   <jean-philippe.guerard@laposte.net>. Les version pr�c�dentes ont �t�
   relues par Guillaume All�gre et Anthony Boureux.