/usr/share/doc/HOWTO/fr-html/From-PowerUp-To-Bash-Prompt-HOWTO.html is in doc-linux-fr-html 2013.01-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for Linux/x86 (vers 25 March 2009), see www.w3.org">
<title>De la mise sous tension à l'invite de commande de
Bash</title>
<meta name="GENERATOR" content=
"Modular DocBook HTML Stylesheet Version 1.79">
</head>
<body class="ARTICLE" bgcolor="#FFFFFF" text="#000000" link=
"#0000FF" vlink="#840084" alink="#0000FF">
<div class="ARTICLE">
<div class="TITLEPAGE">
<h1 class="TITLE"><a name="AEN2" id="AEN2">De la mise sous tension
à l'invite de commande de Bash</a></h1>
<h3 class="AUTHOR"><a name="AEN4" id="AEN4">Greg O'Keefe</a></h3>
<div class="AFFILIATION">
<div class="ADDRESS">
<p class="ADDRESS">
<code class="EMAIL"><<a href="mailto:gcokeefe@postoffice.utas.edu.au">gcokeefe@postoffice.utas.edu.au</a>></code><br>
</p>
</div>
</div>
<p class="PUBDATE">v0.9, novembre 2000<br></p>
<div>
<div class="ABSTRACT"><a name="AEN27" id="AEN27"></a>
<p>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.</p>
</div>
</div>
<hr></div>
<div class="SECT1">
<hr>
<h2 class="SECT1"><a name="AEN29" id="AEN29">Introduction</a></h2>
<p>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.</p>
<p>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, <a href=
"http://www.traduc.org/docs/HOWTO/lecture/Unix-and-Internet-Fundamentals-HOWTO.html"
target="_top">Les notions fondamentales d'Unix et d'Internet</a>
est un excellent endroit pour débuter. C'est un document
concis, lisible, et qui couvre toutes les bases.</p>
<p>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.</p>
<p>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 <i class=
"FOREIGNPHRASE">verum ipsum factum</i> ce qui signifie de
l'expérience naît la compréhension (NdT:
traduction libre). Merci à Alex (voir ) pour cette
citation.</p>
<p>Si vous souhaitez vous réaliser votre propre installation
Linux, je vous conseille d'aller voir le document de Gerard
Beekmans <a href="http://www.fr.linuxfromscratch.org/" target=
"_top">Comment faire un système Linux à partir de
zéro</a> (<i class="FOREIGNPHRASE">Linux from scratch -
LFS</i>). 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é «<a href=
"http://www.traduc.org/docs/HOWTO/lecture/Build-Minimal-Linux-from-Source-HOWTO.html"
target="_top">Construire un système Linux minimum à
partir du code source</a>» et qui peut être
récupéré sur le site <a href=
"http://www.netspace.net.au/~gok/power2bash/" target="_top">From
PowerUp to Bash Prompt</a> pour construire un système jouet,
purement pour l'exercice.</p>
<p>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.</p>
<p>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.</p>
</div>
<div class="SECT1">
<hr>
<h2 class="SECT1"><a name="AEN45" id="AEN45">Partie
matérielle</a></h2>
<p>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 (<i class="FOREIGNPHRASE">Power On Self Test -
POST</i>). Ensuite, un programme nommé chargeur
d'amorçage (<i class="FOREIGNPHRASE">bootstrap loader</i>),
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.</p>
<p>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 <span class="emphasis"><i class=
"EMPHASIS">Guide de l'utilisateur de Lilo</i></span> pour plus de
détails. Voir la section pour l'url.</p>
<p>É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.</p>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN54" id="AEN54">Configuration</a></h3>
<p>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 <b class="KEYCAP">Suppr</b>
avant qu'elle ne commence à charger le système
d'exploitation.</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="hardware-ex" id=
"hardware-ex">Exercices</a></h3>
<p>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.</p>
<p>Allez voir <a href="http://www.netspace.net.au/~gok/resources"
target="_top">Unios</a>, (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 <b class="COMMAND">as</b> de
GNU.</p>
<p>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.</p>
<p>Vous pouvez utiliser la commande <b class="COMMAND">dd</b> pour
la copier dans un fichier: <b class="COMMAND">dd if=/dev/fd0
of=<tt class="REPLACEABLE"><i>secteur.d.amorcage</i></tt></b>.
Faites <span class="emphasis"><i class=
"EMPHASIS">très</i></span> attention à
paramétrer <code class="PARAMETER">if</code> (fichier
source) et <code class="PARAMETER">of</code> (fichier destination)
comme il faut!</p>
<p>Essayez d'en extraire le code source du chargeur de Lilo.</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN73" id="AEN73">Aller plus
loin</a></h3>
<ul>
<li>
<p><a href=
"http://www.traduc.org/docs/HOWTO/lecture/Unix-and-Internet-Fundamentals-HOWTO.html"
target="_top">Les notions fondamentales d'Unix et d'Internet</a>,
par Eric S. Raymond, et particulièrement la section 3,
<span class="emphasis"><i class="EMPHASIS">Que se passe-t-il
lorsque vous allumez un ordinateur?</i></span></p>
</li>
<li>
<p>Le premier chapitre du <span class="emphasis"><i class=
"EMPHASIS">Guide de l'utilisateur de Lilo</i></span> donne une
excellente explication des partitions de disques sur PC et de
l'amorçage. Voir la section pour l'url.</p>
</li>
<li>
<p><i class="FOREIGNPHRASE">Peter Norton Programmer's Guide to the
IBM PC & PS/2</i> (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.</p>
</li>
<li>
<p>Un des nombreux ouvrages disponibles sur la manière de
faire évoluer son PC.</p>
</li>
</ul>
</div>
</div>
<div class="SECT1">
<hr>
<h2 class="SECT1"><a name="AEN89" id="AEN89">Lilo</a></h2>
<p>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 (<i class="FOREIGNPHRASE">first stage boot
loader</i>). 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 (<i class=
"FOREIGNPHRASE">second stage boot loader</i>).</p>
<p>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.</p>
<p>Lorsque votre système est monté et en état
de marche, et que vous exécutez <b class="COMMAND">lilo</b>,
ce que vous exécutez en réalité est l'outil de
définition des localisations (<i class="FOREIGNPHRASE">map
installer</i>). Celui-ci lit le fichier de configuration <tt class=
"FILENAME">/etc/lilo.conf</tt> et écrit le chargeur
d'amorçage sur le disque dur, avec les informations
concernant les systèmes d'exploitation qu'il peut
charger.</p>
<p>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.</p>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN100" id=
"AEN100">Configuration</a></h3>
<p>Le fichier de configuration de Lilo est <tt class=
"FILENAME">/etc/lilo.conf</tt>. Il existe une page de manuel (man
page) à son sujet: tapez <b class="COMMAND">man
lilo.conf</b> dans un shell pour l'afficher. La principale
caractéristique de <tt class="FILENAME">lilo.conf</tt> 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.</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN106" id="AEN106">Exercices</a></h3>
<p><span class="emphasis"><i class="EMPHASIS">DANGER</i></span>:
soyez prudent avec ces exercices. Il est assez facile de faire une
erreur quelque part et de bloquer votre bloc de démarrage
(<i class="FOREIGNPHRASE">master boot record - MBR</i>, 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.</p>
<p>Installez Lilo sur une disquette. Peu importe s'il n'y a rien
d'autre sur la disquette que le noyau - vous obtiendrez un
<span class="ERRORNAME">kernel panic</span> quand le noyau sera
prêt à charger init, mais au moins vous saurez que
Lilo fonctionne.</p>
<p>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.</p>
<p>Configurez Lilo afin qu'il lance Unios (voir section pour une
url). Comme défi supplémentaire, voyez si vous pouvez
le faire sur une disquette.</p>
<p>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!</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="lilo-links" id="lilo-links">Aller plus
loin</a></h3>
<p></p>
<ul>
<li>
<p>La page de manuel de Lilo</p>
</li>
<li>
<p>Le paquet Lilo (<a href=
"ftp://lrcftp.epfl.ch/pub/linux/local/lilo/" target=
"_top">ftp://lrcftp.epfl.ch/pub/linux/local/lilo/</a>) contient le
Guide l'utilisateur de Lilo <tt class=
"FILENAME">lilo-u-21.ps.gz</tt> (ou une version plus
récente). Il se peut que vous disposiez déjà
de ce document. Regardez dans <tt class=
"FILENAME">/usr/share/doc/lilo</tt> ou à un endroit
similaire. La version PostScript est meilleure que la version en
texte brut, car elle contient des diagrammes et des tables.</p>
</li>
<li>
<p><a href="http://www.toms.net/rb/" target="_top">tomsrtbt</a>: le
Linux mono-disquette le plus cool! Constitue une excellente
disquette de secours.</p>
</li>
<li>
<p><a href=
"http://www.traduc.org/docs/HOWTO/lecture/Bootdisk-HOWTO.html"
target="_top">Comment faire une disquette d'amorçage</a>
(<i class="FOREIGNPHRASE">Bootdisk HOWTO</i>).</p>
</li>
</ul>
</div>
</div>
<div class="SECT1">
<hr>
<h2 class="SECT1"><a name="AEN135" id="AEN135">Le noyau
Linux</a></h2>
<p>Le noyau (<i class="FOREIGNPHRASE">kernel</i>) 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.</p>
<p>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.</p>
<p>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 (<i class="FOREIGNPHRASE">swap</i>).
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.</p>
<p>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.</p>
<p>Le noyau prend aussi en charge la gestion des fichiers, les
communications entre processus, et une grande partie du travail
concernant le réseau.</p>
<p>Une fois le noyau chargé, la première chose qu'il
fait est de rechercher un programme appelé <span class=
"SYSTEMITEM">init</span> et l'exécuter.</p>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN146" id=
"AEN146">Configuration</a></h3>
<p>La majorité de la configuration du noyau est
effectuée quand vous le construisez, en utilisant <b class=
"COMMAND">make menuconfig</b>, ou <b class="COMMAND">make
xconfig</b> dans le répertoire <tt class=
"FILENAME">/usr/src/linux/</tt> (là ou se trouvent les
sources de votre noyau Linux). La commande <b class=
"COMMAND">rdev</b> 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:</p>
<pre class="SCREEN">
</pre></div>
</div>
</div>
</body>
</html>
|