• Auteur : Linus Torvald (trad. Patrick Mazéris)
  • Date : 4 septembre 2004 (4 septembre 2005)
  • Licence : Creative Commons BY-NC-ND link_license
  • Site : URL d’origine du document

Juste pour s’amuser, par Linus Torvalds

Qui mieux que son auteur pour nous raconter la génèse de cette "révolution accidentelle" que représente Linux !

Nous devons la traduction française à Patrick Mazéris qui alimente depuis peu un très intéressant petit blog, www.linux38.net, où nous avons puisé ce document et qu’il nous présente ainsi : « Bienvenue à ceux qui s’échoueront sur ces plages pages dédiées à Linux, et à un tas d’autres trucs comme mon chat Filou, mes souvenirs, mes espérances, bref à la vie que j’ai reçue et qui ne m’appartiens pas totalement comme dira le Poète. »

La photographie est de Ian White.

Extrait de “Just for Fun : The Story of an Accidental Revolutionary", “Juste pour s’amuser : L’Histoire d’un Révolutionnaire par accident", par Linus Torvalds et David Diamond, 2001, HarperCollins Publishers.

2 Janvier 1991. C’était le jour de ré-ouverture des commerces après le réveillon de Noël et mon vingt-et-unième anniversaire : les deux jours les plus rémunérateurs de mon agenda annuel.

Avec l’argent de mon Noël-anniversaire en main, j’ai alors pris la grande décision économique d’acquérir un ordinateur à 18000 FIM, représentant alors près de 3500 dollar$ / €uros. Comme je n’avais pas tout cet argent, l’idée était de mettre un tiers de la somme nécessaire à cet achat en apport puis de solder le reste du montant à crédit. En fait, l’ordinateur me coûtait 15,000 FM mais le surplus venait des intérêts du crédit sur trois années.

C’était un de ces petits détaillants en ordinateurs et multimédia pour le grand public et j’insiste plus sur le côté grand public qu’autre chose. Je me fichais de la marque... J’optai pour une boîte blanche de marque générique. Le type me montra alors une liste de prix ainsi qu’une flopée de processeurs disponibles ; la quantité de mémoire vive ; la taille du disque dur... Je voulais quelque chose de puissant. Je voulais 4 méga-octets de mémoire RAM au lieu de 2 méga-octets. Je voulais un processeur cadencé à 33 mégahertz. Certes j’aurais pu me contenter de 16 mégahertz, mais non, il me fallait le top du top.

Donc vous leur disiez ce que vous vouliez et il vous l’assemblaient. Ca pourrait paraître ringard aux spécialistes en E-commerce ou aux expéditeurs de la classe d’UPS. Mais vous reveniez trois jours plus tard pour prendre livraison de votre article en magasin... Sauf que ces trois jours là durèrent pour moi comme une semaine. Le 5 Janvier suivant j’avais obtenu que mon père m’aide pour ramener l’objet à la maison avec sa voiture.

C’était non seulement du générique, mais aussi assez insipide visuellement parlant. Ca avait l’apparence basique d’un bloc de couleur grise. Mais je n’avais pas acheté ce PC pour son design. Machine morne d’aspect, avec un écran de 14 pouces, le moins cher, c’était la configuration la plus raisonnablement fournie que j’aie pu trouver. Par “configuration fournie” j’entends un PC complet, bien équipé, puissant, un de ceux que peu de personnes pouvaient alors posséder. Je ne voudrais pas qu’on se dise non plus “oui, si fade mais tellement fonctionnel” comme on pourrait le dire par exemple d’un Station Wagon de chez Volvo. Mais je voulais quelque chose de sûr, avec une bonne capacité d’évolution et de mise-à-jour, choses dont j’aurai inévitablement besoin bien vite.

L’ordinateur est venu avec une version de base du DOS. Voulant faire tourner du Minix, une variante d’Unix, je commandai ce dernier. Ce système d’exploitation mit plus d’un mois pour m’arriver jusqu’en Finlande. Certes on pouvait acheter l’ouvrage Minix avec le système dans tout bon magasin d’ordinateurs, mais du fait qu’il y avait si peu de demandes pour ce système d’exploitation là, vous deviez passer commande au libraire. Minix coûtait 169 $ hors taxes, plus les frais de change, plus je ne sais quoi encore. J’ai trouvé ça vraiment abusif à l’époque et pour être franc, c’est toujours le cas. Le mois suivant fut perdu et passa comme six années. Un laps de temps qui me frustra plus encore que les longs mois où j’avais du attendre patiemment de simplement pouvoir m’acheter mon PC.

Nous étions au coeur de l’hiver. Chaque fois que vous quittiez votre chambre pour le monde du dehors vous risquiez de chuter sur le manteau neigeux en entrant en collision avec les vieilles dames qui, souvent, se trouvaient là à clopiner le long du Mannerheimintie plutôt que d’être à préparer une soupe au choux pour leur famille, à regarder le hockey à la télé en tricotant des pulls... En gros, je passai ce mois-là à jouer à “Prince of Persia” sur mon nouvel ordinateur. Et quand je ne faisais pas ça, je lisais les ouvrages qui m’aideraient à comprendre l’ordinateur récemment acquis.

Finalement, Minix arriva un vendredi après-midi et je l’installai le soir même. Il fallut insérer seize disquettes dans le PC. Tout le week-end fut dévolu à l’apprentissage du nouveau système. J’appris ce qui me semblait bon dans ce système d’exploitation et, plus important, ce que je n’en aimais pas. Je tentai de compenser ses défauts en téléchargeant certains programmes que j’utilisais sur l’ordinateur de l’Université. Au final il m’aura fallu un peu plus d’un mois pour faire de cet ordinateur “mon” PC.

Andrew Tanenbaum, le professeur d’Amsterdam et auteur de Minix, voulait garder le système d’exploitation comme simple outil pédagogique. Il l’avait donc simplifié à dessein, mais mal. Cependant il y avait des correctifs (patches) pour Minix - comprendre des améliorations - y compris un patch bien connu réalisé par un hacker d’Australie du nom de Bruce Evans, le Dieu de Minix 386 à l’époque. Son travail rendait Minix beaucoup plus utilisable sur un processeur 386. Avant même d’avoir reçu mon ordinateur j’avais suivi les groupes de discussions Minix en ligne, ce qui explique pourquoi j’ai voulu faire tourner une version optimisée de Minix dès le départ. Néanmoins, du point de vue de la licence d’utilisation, il fallait d’abord acheter une version commerciale de Minix avant de pouvoir s’échiner à charger les patches d’Evans. Ce qui fut un assez gros morceau à abattre.

Il y avait un certain nombre de caractéristiques décevantes dans Minix. La plus décevante de toutes était l’émulateur de terminal, important pour moi parce que c’était par ce programme que je me connectais à l’ordinateur de l’Université. Je dépendais donc de l’émulateur de terminal lors de chaque connection sur le serveur de connection de l’Université, soit dans le but de travailler sur une station Unix (plus puissante) soit juste pour aller sur Internet.

C’est alors que j’entamai un projet de création d’un programme d’émulation de terminal personnalisé. Je ne voulais pas rester sur Minix mais plutôt descendre vers le bas-niveau : le niveau matériel. Ce projet d’émulation de terminal serait donc l’occasion idéale d’apprendre le fonctionnement matériel d’un PC 386. Comme je l’ai dit plus haut, c’était l’hiver à Helsinki. Possédant un ordinateur bien équipé, l’aspect le plus important du projet serait juste de comprendre ce que faisait cette machine et de m’amuser avec ça.

Parce que je programmais en bas niveau je devais commencer de zéro, à partir du BIOS, qui est un programme ROM initial utilisé par l’ordinateur pour démarrer (NdT : ROM pour “Read Only Memory” ou “Mémoire à lecture seule” et BIOS pour “Basic Input Output System”). Le BIOS peut prendre ses informations soit d’une disquette, soit du disque dur et dans ce cas, mon programme se trouvait sur une disquette. Le BIOS lit alors le premier secteur de la disquette puis entame son exécution. C’était mon premier PC et je devais comprendre comment les choses marchaient. Tout cela se passe dans ce que l’on appelle le “mode réel". Or si vous voulez bénéficier de toute la puissance de votre processeur via le mode 32 bits, il vous faut entrer en “mode protégé". Et pour arriver à cela, il faut effectuer pas mal de réglages assez compliqués.

Donc pour créer un terminal émulé de cette manière, vous devez connaître le fonctionnement du processeur. En fait la raison pour laquelle j’écrivais en langage assembleur était mon désir d’apprendre le fonctionnement même d’un processeur. Il fallait également connaître un tas d’autres choses comme : la manière de faire s’afficher des informations à l’écran, d’interpréter des entrées au clavier, de lire et écrire vers le modem (j’espère ne pas trop embrouiller ceux des non-spécialistes qui auront refusé de sauter ce passage pour passer directement à la page 120.)

Je voulais avoir deux threads indépendants [NdT : Flots d’éxécution ou Processus légers]. Un thread lirait des données à partir du modem pour les faire s’afficher à l’écran. L’autre lirait à partir du clavier pour écrire sur le modem. On aurait alors deux Pipes [NdT : tubes] allant chacun dans leur sens. On appelle cela du Task-Switching [Ndt : Task-Switching : Commutation de tâche] et comme un PC 386 a la capacité matérielle de gérer un tel processus, l’idée me semblait sympa.

Mon tout premier programme test fut écrit de telle sorte qu’un thread gérerait l’affichage de la lettre A sur l’écran et un autre l’affichage de la lettre B (je sais, ça paraît dérisoire). J’ai programmé un certain nombre d’occurrences par seconde. Avec l’interruption de l’horloge, j’ai donc fait en sorte que l’écran se remplisse de AAAAAAAAAA’s puis tout d’un coup de BBBBBBBBB’s. Exercice complètement inutile du point de vue pratique s’il en est, mais cela m’a permis de démontrer le bon fonctionnement de mon Task-Switching. Et il m’aura peut-être fallu un mois pour arriver là du seul fait que je devais tout apprendre au fur et à mesure.

Finalement j’étais capable d’alterner deux threads, le AAAAAAAA et le BBBBBBB, le premier lisant les données en provenance du modem pour les afficher à l’écran, le deuxième lisant les entrées du clavier pour les retranscrire sur le modem... Je possédais là ma toute première émulation de terminal.

Quand je voulais lire les nouvelles, j’insérais ma disquette, redémarrais la machine, puis consultais les nouvelles diffusées par le serveur de l’Université avec mon programme. Si je voulais effectuer des modifications en vue d’améliorer l’émulation du terminal, je redémarrais sur Minix pour continuer ma programmation.

J’étais très fier de tout ça.

Ma soeur Sara a également tout connu de ce magnifique accomplissement personnel. Quand je le lui ai montré, qu’elle a observé un écran plein de AAAAAA`s et de BBBBBBBBs pendant environ cinq secondes, elle m’a alors dit “Bien” et a quitté la pièce, sans plus. J’ai alors compris que tout cela semblait peu de chose. Il m’était complètement impossible d’expliquer à quelqu’un d’autre qu’en fait un tas de choses se passaient en arrière-plan quand un programme “n’ayant l’air de rien” s’exécutait. C’était au final aussi impressionnant que de montrer à quelqu’un un bout de route qu’on aurait juste terminé de goudronner... La seule personne qui ait vraisemblablement vu ce que je voyais alors fut Lars, un autre étudiant suédois en informatique, qui avait débuté la même année que moi.

Nous étions en Mars, peut-être Avril, et la neige devenait boueuse sur Petersgatan. Mais je ne le savais ou ne m’en souciais pas plus que ça. Je passais le plus clair de mon temps en peignoir, voûté sur mon nouvel et fade ordinateur, derrière un épais store noir chargé de me protéger des rayons du soleil, sans parler du monde extérieur. J’additionnais les mensualités de remboursement de mon PC, dont la dernière était programmée pour dans trois années. Or ce que je ne savais pas encore, c’était que les remboursements s’arrêteraient l’année suivante. Entre temps, j’aurais écrit Linux, lequel serait bientôt connu de beaucoup plus de monde que les seuls Sara ou Lars. Entre temps, Peter Anvin, qui travaille maintenant avec moi à Transmeta, aurait entamé une collecte sur Internet pour le remboursement anticipé de mon ordinateur.

Tout le monde savait que je ne tirais aucun profit pécuniaire de Linux. Mais des gens ont simplement lancé “Allez on démarre une collecte pour rembourser l’ordinateur de Linus !"...

Ca a été une chose magnifique.

Je n’avais absolument aucun argent. J’ai toujours pensé qu’il serait important de ne jamais demander voire quémander de l’argent mais ... Le seul fait de savoir qu’on me le donnait ... Je m’en étoufferais presque.

Voilà comment Linux a démarré. Quelques programmes de test devenus un simple paquet d’émulation de terminal...

[NdT : Un “package” ou paquet dans le monde Unix, est une application distribuée sous la forme d’une archive auto-installable].

Extrait initialement paru le 11 Juin 2001 sur www.linux.com avec l’aimable autorisation de l’éditeur HarperCollins, archivé sur linux.omnipotent.net sous licence OpenContent. Merci de notifier Gareth Watts [gareth_AT_omnipotent_DOT_net] pour toutes erreurs ou violations de droits d’auteur.
Traduction française proposée par Patrick Mazéris [root_AT_linux38_DOT_net] sous licence Creative Commons.

Commentaires

<< Poster un message >>
:: question :: précision :: avis :: commentaire :: bug ::

> Un système d’explotation... du temps de loisirs ! , le 4 octobre 2005 par denishofmann (1 rép.)

Bien avant Linus, j’avais été confronté à un problème presque identique, sauf que la machine en question ne possédait pas de systême d’exploitation. C’était un IBM 1401, 8k de mémoire et un de mes programmes en faisait 12. Les 8k supplémentaires de mémoire, alors en tores de ferrite et reliés par des fils d’or coûtait env 100’00’ euros ! Nous étions en 1969 et les ordinateurs se comptaient encore sur les doigts de la main. J’ai donc réalisé un mini système d’exploitation avec mémoire virtuelle : Dans mes misérables 8k, mon Os en prenait 2 et une page de 6k. Le tout réalisé en assembler sinon directement en langage machine. Mais avec le même enthousiasme et la même fraicheur que je retrouve en lisant Linus ! Comme lui, je n’avais l’intention de me laisser limiter par de la bête électronique. Bravo camarade pour ton apport essentiel à la collectivité, surtout dans l’optique du partage et de la liberté. Denis

> Un système d’explotation... du temps de loisirs ! , le 4 octobre 2005 par fun sun

Salut denis,

Merci pour ce moment historique. Un OS de 2ko ?!!! Ouaahhh !!!! C’était donc possible ? En assembler ou en langage machine, directement écrire un programme avec des 0 et des 1 ; incroyable !!! J’en avais entendu parler mais là ça fait tout drôle de répondre à quelqu’un qui l’a vraiment fait !!!

Respect.

Répondre à ce message

Licence , le 3 octobre 2004 par Antoine Pitrou (0 rép.)

J’ajoute que l’utilisation d’une licence interdisant les oeuvres dérivées (Creative Commons nc-nd) pour une traduction est complètement contre-productif, puisque personne ne peut reprendre la traduction pour l’améliorer...

Répondre à ce message

Le fun, ce n’est pas s’amuser , le 3 octobre 2004 par Antoine Pitrou (0 rép.)

Je n’ai pas le temps ni vraiment l’envie de développer, mais traduire "le fun" par "s’amuser" est vraiment mauvais. La plupart du temps, résoudre un problème compliqué, passer des heures à débugger des erreurs de compatibilité, améliorer du code ou se disputer avec des contributeurs sur la pertinence de tel bout de code n’est absolument pas "amusant". En fait, la plupart des projets réussis sont très sérieux et se distinguent par leur professionalisme. Par contre, le "fun" est bien présent mais il renvoie à autre chose qu’un côté amusant qui peut paraître infantile (la photo qui orne cet article est elle aussi franchement mal choisie, elle fait passer Linus Torvalds pour un brave couillon à la mode qui écrirait quelques lignes de code en trois coups de cuiller à pot entre deux rails de coke avec ses potes publicitaires).

La seule possibilité que je vois est en fait de garder le mot "fun", qui est bien accepté dans l’expression courante et correspond exactement à ce qu’on veut faire passer : "Juste pour le fun", par Linus Torvalds. Ce "fun" correspond à celui des hobbyistes (par exemple les demomakers, fort en vogue dans les années 85 à 95), qui passent des heures à faire des choses souvent ingrates ou obscures mais dont le résultat, s’il est à la hauteur, leur procure une grande gratification personnelle.

Il y a bel et bien un clivage entre Linus et RMS, mais il ne se situe absolument pas dans le fait que l’un ferait du boulot sérieux alors que l’autre passerait son temps à rigoler comme un gamin devant son écran.

Répondre à ce message

> Juste pour s’amuser, par Linus Torvalds , le 27 septembre 2004 par coyote (0 rép.)

merci. merci beaucoup pour ce bout de bio qui m’a donné envie d’en savoir plus sur le createur de Linux. Je ne verrai plus mon pengouin de la meme maniere ... :-))

Répondre à ce message

> Juste pour s’amuser, par Linus Torvald , le 15 août 2004 par ohkami (1 rép.)

Le titre exact du livre en édition française est : "il était une fois linux, l’extraordinaire histoire d’une révolution accidentelle". C’est un livre que je conseille à tout le monde, parfois technique, parfois assez personnel, souvent drôle.

On y découvre entre autre que Linus a chosi un développemnt "opensource" pour linux, non par philosophie (ce qui le différencie de Richard M. Stallman) mais parce que c’est pour lui le modèle le plus efficace, tout simplement.

> Juste pour s’amuser, par Linus Torvald : je confirme , le 20 août 2004 par Etienne

Je confirme le plaisir et l’interet qu’on peut trouver a la lecture de ce livre.

L’editeur en est OEM (haha !), et il coute environ 15 ecus.

Répondre à ce message

Informations complémentaires

Faire un don ? (défiscalisé)

Faire un DON

Aidez-nous à atteindre notre objectif de 800 donateurs récurrents pour assurer notre pérennité et notre développement ! (nous n’y sommes plus très loin).

Je soutiens Framasoft pour 10€/mois

Informations générales

Juste une image

couple couple
Creative Commons BY