L'Histoire des Pingouins

- Par Antoine Bellot -
Épisode XXXXI.I
Yet Another Linux User Group

Malgré la diversité apparente des amusements qui semblent m'attirer, ma vie n'a qu'un objet : elle est tendue tout entière vers l'accomplissement d'un grand dessein. J'écris l'histoire des Pingouins.

Anatole France : l'île des Pingouins

Une intense activité régnait à bord du formidable octoprocesseur Hytachy, trahissant un décollage imminent. Salle des machines, l'équipe de développement s'assurait des dernières vérifications avant l'envol :

« Tu sais c'qu'on fait, là, au juste ?
-- Bof, pas trop... mais j'croyais que tu savais, toi ?
-- Moi ?? T'es fou, j'y comprends rien du tout au codding, ch'uis plutôt réseau comme mec, t'sais, tout c'qui touche à ADSL, IP, ARP, inetd, tout ça.
-- Ouaips, m'étonne pas, avec tes histoires de commentaires évalués on s'est déjà plantés la gueule un sacré paquet de fois.
-- Hé ho, t'as rien dit quand j'ai supprimé les #ifdef et pis de toutes façons t'étais d'accord avec moi, non ? Pis d'abord on a toujours dit que c'était alpha comme truc. Et pis, zut, ça sert à quoi de coder si on peut pas tester des trucs ?
-- Ha, non, moi je faisais que répéter ce que disait Tom le Viet. Moi, mon truc, c'est plutôt les scripts shells.
-- T'es d'une mauvaise foi, c'est pas croyable. Pourquoi tu t'es foutu dans l'équipe de développement kernel ? Tu veux coder des modules en /bin/sh ?
-- Hé, toi, hé, c'est toi qui disait que tu savais coder des modules ! Moi, tout ce que je connais, c'est zsh, mais c'est pareil que csh, et csh c'est comme le C, alors je me suis dit que j'pourrais t'aider. Toi, par contre, t'as dit que...
-- J'ai juste dit que je savais coder un module qui fait panic(Argh !!!!); .
-- Ha, ben tu vois que tu ne t'intéresses qu'à certaines sections bien précises de l'API.
-- Ha, ça, moi, l'algèbre de pointeurs j'y comprends rien, je préfère coder des interfaces en Java.
-- Ou faire ta frime sur irc...
-- T'en connais beaucoup des mecs sur irc qui savent si long median short int fait 4, 8, 12 ou 16 octets sur Alpha ?
-- Et ça fait combien, alors ?
-- On s'en fout, on est sur x86.
-- Mais coder portable, c'est vachement important.
-- Sauf qu'il paraît qu'on décolle dans 10 min sur notre code, gars.
-- Ha ? T'es sûr que c'est une bonne idée ? J'ai pas fini de rédiger mon testament.
-- Bof : c'est plutôt les pilotes qui devraient s'inquiéter.
-- Tu oublies qu'on fait cargaison sur s'coup là ?
-- Sans rire ?
-- Ben il paraît... Après le dernier crash, Schoelcher a dit que le devteam embarquerait en soute au prochain essai : histoire de motiver les équipes, qu'il disait.
-- Ha non, mais c'est point fun, ça !!! Moi j'ai jamais signé pour me taper des gamelles dans l'Ether. On est des codeurs, nous, des purs, des durs, des tatoués. Pas comme ces espèces de cinglés de pilotes qui font n'importe quoi avec du code de merde. Hmmm... Bon : t'aurais pas un bouquin de C sous la main ?
-- Ben non : tu sais bien, le chef l'a toujours dit, le C, c'est instinctif, les bouquins, ça sert qu'à embrouiller la tête. Moi, j'écoute toujours le chef, pis ça tombe bien parce que lire j'aime pas. D'ailleurs, je sais plus quel mec vachement balèze expliquait que le langage naturel, c'est ambigu : comment tu veux apprendre des trucs avec des machins écrits en langage ambigu ?
-- Oui, enfin, bon, si on veut, mais tout ça, ça me dit pas s'il n'y a pas une race condition dans cette fonction.
-- Une race de quoi ?
-- Une sa race de race condition. Un truc vachement important que même que en gros, l'idée, c'est du genre, tu testes un truc, tu stockes la valeur, mais hop, au moment où t'utilises la valeur, elle est devenue fausse même si avant elle était vraie parce que ça a changé.
-- Mais pourquoi ça aurait changé si on l'a testée avant ?
-- Ben heu... Parce que... Enfin, ça aurait bougé pendant que le kernel a le dos tourné quoi.
-- T'as déjà vu le dos d'un kernel, toi ?
-- Non, mais c'est façon de dire, quoi. En gros l'idée, c'est que le noyau il fait plein de trucs à la fois, et pis le matériel aussi, et pis si on teste et que ça change entre temps on est marron. Imagine par exemple : tu testes si ya un disque, ok ? Bon, le noyo il te dit oui, et soudain, un mec arrive et fout un coup de hache dans le disque, tu fais quoi ?
-- J'lui pète la gueule !!!
-- Non, pas toi, le noyau.
-- Heu... Ben chais pas moi !!! Heu... Mais d'abord qui serait assez con pour foutre des coups de hache dans le disque ?
-- Par exemple, l'chef Schoelcher.
-- Ha oui, c'est vrai. Lui, on lui met pas un coup de hache dans la gueule non plus remarque.
-- Bon conclusion, faut éviter les race conditions.
-- Et comment on fait ?
-- Ben, chais pas moi : qu'est-ce qu'ils disent dans le manuel ?
-- Ben c'est toi qui doit l'écrire, j'te rappelle.
-- Hmmm... Bon, alors on va dire qu'il ne faut surtout pas donner des coups de hache dans le disque. Tu crois que ça ira ?
-- Pour un vol d'essai, ça devrait suffire. Tu fais des backups, j'espère ?
-- Les backups, c'est pour les faibles. Pis on s'en fout, si ça merde, vaut mieux pour nous que personne ne retrouve jamais le source, histoire qu'on se choppe pas la honte.
-- On pourrait ptet quand même faire un truc genre codé robuste.
-- Ptet qu'il faudrait pas utiliser le malloc spéculatif.
-- Tu crois ? Pourtant, c'est rapide comme algo.
-- Oui mais bon, c'est vrai que l'idée de prendre une adresse au hasard en se disant que statistiquement elle est pas allouée, c'est pas très sécure.
-- Mais ça accélère vachement le code, quand même ! »

Un hululement annonciateur du décollage imminent se fit entendre. Une enseigne fit son apparition dans l'entrebâillement du sas :

« Bon allez les gars, vous êtes prêts, là ? »

Les deux developpeurs s'entre-regardèrent, semblant réfléchir :

« Il nous faudrait un petit supplément de CPU pour optimiser, mais on s'ra prêts ! »

« OK, les gars : je transmets ! répondit l'enseigne. Bonne bourre, et faites-nous du beau code qui marche. » Continua-t-il avant de disparaître. L'équipe resta muette un instant.

« Bon allez, là ça suffit, on compile ! Je le sens bien, ça va passer. »

Un grondement sourd trahit la mise en route de la CPU de boot. En haut, les pilotes devaient se préparer à accéder au moniteur, le morceau de code propriétaire mode réel stocké en dur qui se chargeait des opérations de maintenance avant décollage. Bientôt, sous leurs ordres, le module de probe/préchauffage mettrait les disques en régime de fonctionnement. Sauf incident de dernière minute, le décollage était imminent.

« Compiiile !!! » hurlait un pingouin, tandis qu'un autre cherchait distraitement du regard une hache.


Épisode précédent
Épisode suivant


Fiche mise à jour le samedi 21 mai 2005.
Thomas Nemeth
back
Script (version 2.9.9-r9) fait en août 2000