Juste pour s’amuser – par Linus Torvalds 153

Nous publionsl’article qui raconte la naissance du système d’exploitation libre Linux. Ce système devient de plus en plus riche et surtout commercialement il commence à inquieter Microsoft. J’espère que cette lecture encouragera les jeunes congolais à prendre au serieux leur rêve et tout donner pour le réaliser.

Classé dans: Echos du Net Torvalds— Blogger1 @ 7:28 pm
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” cf. http://fr.wikipedia.org/wiki/R… et BIOS pour “Basic Input Output System” cf. http://fr.wikipedia.org/wiki/B…). 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’exécution ou Processus légers cf. http://fr.wikipedia.org/wiki/T…]. 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 cf. http://www.centralweb.fr/dico/…] 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.

Wired Magazine, Nov. 2003
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].

Leave a Comment

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Scroll to Top