<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<article lang="fr">
  <articleinfo>
    <title>Travailler avec des micro-distributions, ou comment mettre <systemitem class="osname">Linux</systemitem> dans sa poche</title>

    <subtitle>Gazette Linux n°077 — Avril 2002</subtitle>

    <author>
      <firstname>Larry</firstname>

      <surname> "Dirt Road" Kollar </surname>

      <email>lkollar _CHEZ_ despammed _POINT_ com</email>
    </author>

    <othercredit class="translator" role="traduction">
      <firstname>Sébastien</firstname>

      <surname>Marbrier</surname>

      <contrib>Adaptation française</contrib>

      <email>sebastien _POINT_ marbrier _CHEZ_ laposte _POINT_ net</email>
    </othercredit>

    <othercredit class="translator" role="relecture">
      <firstname>Frédéric</firstname>

      <surname>Marchal</surname>

      <contrib>Relecture de la version française</contrib>

      <email>fmarchal CHEZ perso POINT be</email>
    </othercredit>

    <legalnotice>
      <para>Article paru dans le n°077 de la Gazette Linux d'avril
      2002.</para>

      <para>Cet article est publié selon les termes de la <ulink
      url="http://linuxgazette.net/copying.html">Open Publication
      License</ulink>. La <citetitle>Linux Gazette</citetitle> n'est ni
      produite, ni sponsorisée, ni avalisée par notre hébergeur principal,
      SSC, Inc.</para>
    </legalnotice>

    <copyright>
      <year>2002</year>

      <holder>Larry "Dirt Road" Kollar</holder>
    </copyright>

    <copyright>
      <year>2014</year>

      <holder>Sébastien Marbrier</holder>
    </copyright>

    <copyright>
      <year>2017</year>

      <holder>Frédéric Marchal</holder>
    </copyright>
  </articleinfo>

  <section>
    <title/>

	<para>De nos jours, les distributions Linux tiennent sur six CD, c'est une bonne chose de se souvenir qu'un système <systemitem class="osname">Linux</systemitem> parfaitement fonctionnel tient sur une cartouche ZIP &mdash; voire sur quelques disquettes.</para>

    <para>Afin de montrer l'utilité d'un <systemitem class="osname">Linux</systemitem> minuscule, j'ai préparé un système tenant sur deux disquettes sur un 486 pour écrire cet article.</para>
  </section>

  <section>
    <title>Introduction</title>

    <para>Tout a commencé lorsque j'ai reçu deux PC et un moniteur. 
    L'ordinateur le plus puissant, un Aptiva, avait un processeur P133, un disque dur de 2Go, un lecteur de CD-ROM mais pas de mémoire.
    Le second était HP Vectra 486/33N avec un disque dur de 173&nbsp;Mo, <systemitem class="osname">Windows 3.1</systemitem>, et 8&nbsp;Mo de mémoire vive (pas de CD).
    Les deux étaient équipés de souris mais sans clavier.
	Après un voyage à <orgname class="corporation">Wal-Mart</orgname> et y avoir dépensé 10 $US, j'avais un clavier compatible PS/2.
    Les deux ordinateurs utilisant des barrettes SIMM 72 broches, j'ai tout d'abord transféré les barrettes dans l'Aptiva pour m'assurer qu'il n'y a pas quelque chose d'utile sur ce gros disque dur.
    </para>
    <para> J'ai appris quelque chose d'intéressant. J'ai appris que <systemitem class="osname">Windows 98</systemitem> s'étouffe affreusement en cas de mémoire insuffisante. </para>
    <para> N'ayant pas réussi à mettre la main sur de la mémoire supplémentaire, 
    j'ai alors replacé la mémoire dans le Vectra et déterré les disquettes de la Red-Hat 4.0&hellip;
    Oups, elle est sur CD mais ce Vectra n'a pas de lecteur de CD (et aucun port disponible pour en installer un).
    Il est clair que je devais opter pour une autre stratégie.</para>
  </section>

  <section>
    <title>Chercher la Disquette-clé</title>

    <para><ulink url="http://lwn.net/daily/">Linux Daily News</ulink> est l'une de mes lectures quotidiennes sur le réseau.
		Si l'information dont vous avez besoin ne se trouve pas sur <acronym>LWN</acronym>, il y a un lien vers elle.
    Sur la page <ulink url="http://lwn.net/Distributions/">Distributions</ulink>, j'ai parcouru la liste de celles reposant sur des disquettes.</para>
    
    <para>Ma première idée fut d'utiliser la distribution favorite de secours tenant sur une unique disquette <ulink url="http://www.toms.net/rb/home.html">tomsrtbt</ulink>.
		J'ai un portable sous <systemitem class="osname">Windows</systemitem> au travail, absolument accessoire par rapport à mon <systemitem class="osname">Mac G3</systemitem>, mais à l'occasion il rend service.
        Malheureusement, tomsrtbt fait appel à d'étranges arcanes pour faire tenir 1.77&nbsp;Mo sur une disquette de 1.44&nbsp;Mo et le service informatique a récemment mis à jour le portable avec <systemitem class="osname">Windows 2000</systemitem>.
        Ce dernier n'autorise pas ce genre de manipulation et je ne peux pas avoir accès facilement à un autre système <systemitem class="osname">Windows</systemitem>.
    </para>
    <para>Retour à la liste. En explorant d'autres ressources, j'ai découvert que <ulink url="http://mujweb.cz/basiclinux/">BasicLinux</ulink>
		n'est pas à proprement parler une distribution basée sur CD (contrairement à ce qu'affirme la page de la distribution sur <acronym>LWN</acronym>).
        Elle tient sur un unique fichier zip de 2&nbsp;Mo; mais les fichiers décompressés tiennent facilement sur deux disquettes et ne nécessite pas d'écrire une image
		(elle utilise <application>LOADLIN.exe</application> pour démarrer du <systemitem class="osname">DOS</systemitem>). 
        Dérivée de Slackware 3.5 elle présente un noyau 2.0.34 et libc5.
        Elle alloue également 4&nbsp;Mo pour son disque virtuel, permettant au Vectra de goûter pour la première fois au logiciel libre.
    </para>
  </section>
  <section>
    <title>Succès croissant</title>  
    <para>
        Malgré des différences de version logiciel, de format de disque, et d'intention, les distributions sur disquettes ont une procédure de démarrage relativement similaire&nbsp;:
        <orderedlist  numeration="arabic">
        <listitem>
			<para>Initialisation, soit au démarrage (<application>LILO</application>) soit après le démarrage du <systemitem class="osname">DOS</systemitem> (<application>LOADLIN</application>).</para>
        </listitem>
        <listitem>
          <para>Le chargeur décompresse le noyau et le lance.</para>
        </listitem>
        <listitem>
          <para>Le noyau crée un disque virtuel pour son espace utilisateur.</para>
        </listitem>
        <listitem>
          <para>Le chargeur décompresse l'espace utilisateur et le charge dans le disque virtuel.</para>
        </listitem>
        <listitem>
          <para>Le démarrage se passe normalement, le disque virtuel monté à la racine.</para>
        </listitem>
      </orderedlist>
    </para>
    <para>
        Une image disque contenant l'espace utilisateur (c-à-d le contenu du système de fichiers) tient habituellement juste sur une disquette 1.44&nbsp;Mo et se déploie sur environ 3&nbsp;Mo.
        Sur un disque virtuel, même un 486/33 semble assez tonique.
    </para>
  </section>
  <section>
    <title>Différences</title>
    <para>
		Caler un système <systemitem class="osname">Linux</systemitem> minimal sur deux disquettes fait penser à la légendaire observation d'Heinlein&nbsp;: <quote>il n'y a pas de repas gratuit</quote>.
		Bien qu'il soit possible de proposer des outils de base et même <application>X11</application>, vous n'aurez pas <application>KDE</application>, <application>Gnome</application> ou <application>Mozilla</application>.
		Les fanas d'<application>Emacs</application> en seront pour leurs frais (du moins pour l'essentiel).
    </para>
    <para>
        Même les commandes de bases et les utilitaires que vous vous attendez à trouver dans tout système d'exploitation dont le nom se termine par « X » ne sont que des versions tronquées.
	  En réalité, la plupart ne sont que des liens symboliques vers un programme nommé <ulink url="http://busybox.net/">BusyBox</ulink>. Lineo a développé cet ensemble pour les systèmes <systemitem class="osname">Linux</systemitem> embarqués, mais il a trouvé également sa place dans diverses micro-distributions ou de secours. 
	  Il regroupe 54 commandes essentielles dans un unique binaire d'à peine plus de 100K.
	  Pour créer un lien (avec <command>ln -s</command>) nommé <command>cp</command> et quand même entrer cette commande, BusyBox se comporte comme la commande <command>cp</command>. 
	  Quand vous l'utilisez à la place de <emphasis role="bold">mv</emphasis>, il déplace ou renomme les fichiers. 
	  L'option <option>--help</option> donne une description rapide de la commande, éliminant du coup le besoin des pages de manuel. 
	  Je peux affirmer que sans BusyBox, les distributions sur disquettes obligeraient à davantage de compromis.
    </para>
  </section>
  <section>
    <title>Travailler avec BasicLinux</title>
      <para>    
	BasicLinux est un système réseau compact mais satisfaisant. 
	En plus des fonctions essentielles (via BusyBox), il fournit une connectivité réseau à la fois par Ethernet et par numérotation, et peut mettre en place un pare-feu grâce à <application>ipfwadm</application>. 
	Les utilitaires tels que <application>fetchmail</application> et <application>links</application> (pas <application>lynx</application>, il m'a jeté) fournissent un accès au courrier électronique et au web. 
	Afin de donner tout le confort possible à l'utilisateur <systemitem class="osname">Linux</systemitem> expérimenté, le shell <application>bash</application> familier. 
	L'<filename>initab</filename> par défaut offre trois accès console, ce qui est plus que suffisant pour mes besoins (j'utilise parfois deux consoles à la fois, une pour moi et une pour l'administrateur).
      </para>
      <para>
		  Contrairement à d'autres distributions, BasicLinux propose deux éditeurs de texte, le minuscule <application>e3</application> et le populaire <application>pico</application>. Profitant de l'espace restant dans l'image de démarrage et de l'archive Slackware d'origine, je les ai remplacés par <application>joe</application>. 
		  <application>Joe</application> est un éditeur légèrement plus grand que <application>pico</application> mais il peut émuler <application>pico</application>, <application>WordStar</application>, et <application>Emacs</application> (mais sans les gourmandes fonctionnalités avancées).
	On obtient une image compressée plus grande mais tenant toujours sur une disquette.
      </para>
  </section>
  <section>
  <title>Édition de l'Image</title>
  <para>
    Le fichier <filename>readme.txt</filename> accompagnant BasicLinux est court mais fournit assez d'information à quiconque est habitué à la console pour personnaliser le système ou pour créer une image de disquette amorçable.
   </para>
   <para>
	   En écrivant cette section de l'article, j'ai mis les fichiers de BasicLinux sur le disque <filename class="devicefile">C:</filename> d'un 486 qui, autrement, fonctionnerait sous <systemitem class="osname">MS-DOS</systemitem>.
    La personnalisation de l'image est aisée&nbsp;:
    <orderedlist numeration="arabic">
      <listitem><para>Décompresser l'image avec <command>gunzip</command>.</para></listitem>
      <listitem><para>Monter l'image sur un périphérique à rebouclage.</para></listitem>
      <listitem><para>Effectuer les changements voulus.</para></listitem>
      <listitem><para>Démonter l'image.</para></listitem>
	  <listitem><para>Compresser l'image avec <command>gzip</command>.</para></listitem>
    </orderedlist>
   </para>
   <para> J'ai écris une <ulink url="loopback.html">page séparée</ulink> décrivant le périphérique à rebouclage.</para>
  </section>
  <section>
    <title>Migrer sur le disque dur</title>
    <para>
      Ce n'est pas compliqué, à condition de supprimer tout ce qu'il s'y trouve.
      Le Vectra avait <systemitem class="osname">Windows 3.1</systemitem> et tout un tas d'applications, sans réelle utilité pour moi.
    </para>
    <para>
		Avant d'aller plus loin, j'ai effectué quelques recherches et sauvegardé le répertoire du <systemitem class="osname">DOS</systemitem> sur une disquette (avec un compacteur zip qui était déjà sur l'ordinateur). 
      Avec 160&nbsp;Mo de disque dur et 8&nbsp;Mo de RAM, j'ai supposé avoir suffisamment de place pour construire un système capable sans être tenté de le surcharger.
    </para>
    <para>
		Une recherche Google sur les programmes de partitionnement a fait émerger le programme gratuit/libre <ulink url="http://web.archive.org/web/20090413115233/http://bmrc.berkeley.edu/people/chaffee/fips/fips.html">FIPS</ulink> (<foreignphrase lang="en">First non-destructive Interactive Partition Splitting program</foreignphrase>).
		Selon les instructions, j'ai installé FIPS sur une disquette afin de réduire la partition <filename class="devicefile">C:</filename>. 
		J'ai voulu la réduire à 10&nbsp;Mo, mais <acronym>FIPS</acronym> (pour une raison obscure) ne descend pas en dessous de 16&nbsp;Mo.
		Après avoir complètement effacé <systemitem class="osname">Windows 3.1</systemitem> et défragmenté le disque dur, il me restait moins de 5&nbsp;Mo sur <filename class="devicefile">C:</filename> je ne suis pas sûr de ce qu'il s'est passé. Peu importe&nbsp;! 
    </para>
    <para>
	Maintenant, je peux redémarrer <systemitem class="osname">Linux</systemitem> et utiliser l'utilitaire <application>fdisk</application> fourni avec BasicLinux pour créer une partition d'échange de 32&nbsp;Mo et dédier le reste du lecteur à la racine. 
	Exécuter <command>mkswap</command>, <command>mke2fs</command>, et <command>e2fsck</command> pour préparer les nouvelles partitions. 
	Pour terminer, j'ai décompressé l'archive de BasicLinux <filename>instl2hd.zip</filename> et suivi les instructions fournies pour charger mon image de disque virtuel (et quelques extras) sur le disque dur. 
	À partir d'ici il a suffi d'éditer <filename>/etc/fstab</filename> pour pointer sur la nouvelles partitions racine et d'échange. 
	Encore un redémarrage et je démarrais depuis le disque dur. La vie est belle. J'ai copié mon article sur la partition <systemitem class="osname">Linux</systemitem> et continuais d'écrire.
      </para>
    </section>
    <section>
      <title>Pris dans la toile</title>
      <para>
	Avec un système basé sur la console utilisant moins de 5&nbsp;Mo de mémoire vive et laissant 3&nbsp;Mo de libre, j'ai revu mes objectifs un peu à la hausse. En bref, j'ai voulu ajouter&nbsp;: 
      <itemizedlist>
      <listitem>
		  <para><application>groff</application> (le formateur <application>troff GNU</application>)</para>
      </listitem>

      <listitem>
		  <para><application>vim</application> (l'éditeur de texte de première classe)</para>
      </listitem>

      <listitem>
		  <para><application>rogue</application> (tuer des monstres, vaincre le blocage)</para>
      </listitem>

      <listitem>
		  <para><application>X11</application> (afficher des brouillons de documents)</para>
      </listitem>
      
      <listitem>
		  <para><application>gcc</application> (au moins temporairement pour compiler <application>groff</application> et <application>rogue</application>)</para>
      </listitem>
    </itemizedlist>
    Par chance, le Vectra était équipé d'une carte réseau SMB-Ultra. 
    Trouver le module adéquat ne fut pas long, et la documentation BasicLinux m'a indiqué de charger en premier le module 8390. 
	Comme mon <systemitem class="osname">Mac G3</systemitem> fait déjà tourner un pare-feu <acronym>NAT</acronym> (<command>ipchains</command>) sous <systemitem class="osname">Linux</systemitem> pour partager la ligne téléphonique, il a suffit de le transporter dans la pièce du réseau local et d'y brancher un câble.
    Après quelques tripatouillages et avoir lu plusieurs fois les pages man de <application>route</application>, j'ai finalement deviné les incantations pour connecter <systemitem class="systemname">Skeeter</systemitem> (c'est ainsi que j'ai nommé le Vectra) au réseau local et au reste du monde au travers de la passerelle du G3.
    </para>
    <para>
		Le téléchargement des paquets de <package>X11</package> m'a rappelé que ma ligne téléphonique n'est pas la plus lente.
        Ce fut l'une des rares fois où je fus content de ne pas avoir le haut débit; je me serais senti frustré. 
		Mais finalement, j'ai tout récupéré  sur le disque dur, et préparé la configuration de <application>X11</application>.
		En recherchant de l'aide ici et là sur le réseau, j'ai appris que l'utilitaire <application>SuperProbe</application> m'aurait indiqué quelle était la carte vidéo interne du Vectra, et que mon moniteur ne supporte que le 640×480.
        Le deuxième soir, l'interface graphique fonctionnait et j'ai basculé sur <application>icewm</application>, le gestionnaire de fenêtre qui m'a été recommandé.
        Le pager d'<application>Icewm</application> et sa petite taille rendent le petit écran supportable, à la limite agréable.
        Pour être honnête, une fenêtre <application>rxvt</application> de 35 lignes est bien meilleure qu'une console de 25 ligne, je suis donc globalement satisfait.
    </para>
    </section>
    <section>
        <title>Le Repos</title>
        <para>
            Maintenant que le réseau et l'interface graphique sont fonctionnels, il reste à finaliser.
            À cette étape, le système pèse un peu moins de 21&nbsp;Mo sur le disque dur (sur 113&nbsp;Mo disponibles).
            L'ajout des paquets pour la compilation l'augmentera jusqu'à 35&nbsp;Mo.
        </para>
        <para>
			Avec l'ajout des paquets nécessaires à compilation de <application><ulink url="http://www.gnu.org/software/groff/">groff</ulink></application> et <application><ulink url="http://www.gnu.org/software/gawk/gawk.html">gawk</ulink></application>, plus les applications compilées, nous avons dépassé les 60&nbsp;Mo.
            Après l'installation des programme et la suppressions des répertoires de compilation, j'étais satisfait de 57&nbsp;Mo pour l'utilisation.
        </para>
        <para>
			Dans le passé, j'ai été confronté au partage d'une imprimante sur un réseau local avec <command>lpr</command>. Il ne m'a pas fallu longtemps avant d'être en mesure d'avoir quelques documents <application>groff</application> de test pour les imprimer sur l'imprimante laser USB du G3.
			<systemitem class="systemname">Skeeter</systemitem> effectue toutes les tâches que j'avais prévues. J'aurais voulu le doter d'un plus grand écran (au moins du 800×600) et peut-être compiler <application>Chimera 1.x</application> pour avoir un navigateur web graphique. 
            Mais ce n'était absolument pas indispensable.
        </para>
    </section>
    <section>
        <title>Trouver sa niche</title>
        <para>
			En plus d'être en mesure d'écrire des articles tels que celui-ci, <systemitem class="systemname">Skeeter</systemitem> peut se connecter aux serveurs de MUD pour le divertissement (imaginez trois personnes partageant une même liaison téléphonique &mdash; deux utilisant <command>telnet</command> et le troisième ne lisant que des courriels dans un navigateur, personne ne se plaindra de la lenteur de la connexion). <application>Rogue</application> a captivé mon adolescent de fils et son ami, qui s'émerveille qu'un jeu sans graphismes puisse être tellement prenant&nbsp;!
        </para>   
	
	<para>
		<systemitem class="systemname">Skeeter</systemitem> a également rendu service en tant que pseudo lecteur de disquette distant. L'iMac (fonctionnant à présent sous <systemitem class="osname">MacOS X</systemitem>) n'a pas de lecteur de disquette, et le lecteur du G3 est un peu douteux. Quand on a besoin de lire ou d'écriture sur une disquette, on appelle <systemitem class="systemname">Skeeter</systemitem>. Dans le futur, <systemitem class="systemname">Skeeter</systemitem> pourra devenir un serveur d'impression.
	</para>
	
	<para>
	  Pour conclure, je considère cette expérience comme étant réussie. Un investissement de 10$ plus un peu de ma propre sueur m'ont permis d'avoir un autre ordinateur utile et quelques nouvelles compétences.
	</para>

  </section>

  <section>
    <title/>

    <blockquote>
      <para><emphasis role="bold">Larry Kollar</emphasis></para>

      <para>Larry est « Rédacteur Technique » mais rêve secrètement de devenir un jour un Foutu Administrateur Infernal. 
	Au travail, il trouve le temps d'écrire des scripts, de mettre en place des serveurs <systemitem class="osname">Linux</systemitem> départementaux (sur des Macs bien sûr), et de repousser les hordes du service informatique qui veulent son G3.
	Chez lui, au bas des montagnes de Georgie, il fait de son mieux pour que sa femme, ses deux enfants et ses quatre ordinateurs soient heureux et en bonne santé.
	</para>
    </blockquote>
  </section>

  <colophon id="a-propos-de-la-gazette">
    <title>Adaptation française de la Gazette Linux</title>

    <para>L'adaptation française de ce document a été réalisée dans le cadre
    du <citetitle>Projet de traduction de la Gazette Linux</citetitle>.</para>

    <para>Vous pourrez lire d'autres articles traduits et en apprendre plus
    sur ce projet en visitant notre site : <ulink
    url="http://www.traduc.org/Gazette_Linux"/>.</para>

    <para>Si vous souhaitez apporter votre contribution, n'hésitez pas à nous
    rejoindre, nous serons heureux de vous accueillir.</para>
  </colophon>
</article>
