De curieux insectes envahissent quotidiennement les ordinateurs. Classés dans l'espèce des bugs, ces créatures numériques sont coriaces, à un tel point que nous sommes souvent contraints de céder et de redémarrer nos PC. Une situation en passe de changer grâce à des chercheurs du MIT.

au sommaire


    Vous surfez tranquillement sur Firefox, jonglant entre maints onglets, et tout à coup, le navigateur s'immobilise, comme un voilier pris dans les calmes. Bien souvent un « ctrl+alt+suppr » suffit, mais il arrive encore qu'un redémarrage de la machine soit nécessaire. Face à cette menace qui rôde à chaque instant, l'utilisateur n'a d'autre recours que d'envoyer ses rapports d'erreur en croisant les doigts pour que l'éditeur du logiciel mette au point un correctif (ou patch) pour éliminer le problème. Le processus est fastidieux et est impossible à concevoir au cas par cas. Pour les éminences grises du MIT il est temps que les logiciels se réparent eux-mêmes !

    Quand les PC réclament leur indépendance

    C'est sous le nom de code ClearView que le professeur Martin C. Rinard, professeur du département de l'ingénierie électrique et des sciences informatiques du MIT (Massachusetts Institute of Technology) et membre du laboratoire des sciences informatiques et d'intelligence artificielle, et son équipe ont dévoilé leur insecticideinsecticide numérique miracle à même d'éliminer ces vilains bugs de nos ordinateurs. Ce logiciel, sorte de contremaître informatique, doit jauger la bonne exécution des tâches présentes dans la mémoire vivemémoire vive.

    Il s'appuie sur cinq fondamentaux, l'observation des invariantsinvariants, la détection d'erreurs, l'identification des invariants défaillants, la génération d'un correctif pour renforcer les invariants et enfin l'évaluation et l'observation des tâches corrigées suivie par la création d'autant de correctifs que nécessaires.

    (Cliquer pour agrandir.) Processus de correction schématisé (traduction Futura-Sciences). © <em>Massachusetts Institute of Technology</em>
    (Cliquer pour agrandir.) Processus de correction schématisé (traduction Futura-Sciences). © Massachusetts Institute of Technology

    ClearView ne requiert pas d'intervention humaine pour effectuer sa besogne. Son aptitude à l'apprentissage et sa constante remise en question des corrections qu'il applique au système sont autant d'atouts qui permettent une meilleure personnalisation du support du système de l'utilisateur. De plus, ce réparateur officie à chaud, c'est-à-dire qu'il ne nécessite pas de redémarrage du système d'exploitationsystème d'exploitation de l'utilisateur ni même de redémarrage de la tâche exécutée qu'il corrige à la volée. ClearView est compatible avec les bibliothèques logicielles des systèmes X86X86 Windows. Cependant, MicrosoftMicrosoft gardant jalousement le code sourcecode source de son système d'exploitation, l'applicationapplication est destinée à réparer les logiciels d'éditeurs tiers.

    Les cinq étapes du travail précitées consistent en des procédures répétées à l'infini. Tout d'abord, lors de l'apprentissage ClearView observe l'exécution et le comportement des applications dans des conditions normalesconditions normales. Ces observations sont collectées sous la forme de propriétés ou, selon le terme consacré, d'invariants. Plus les observations de ClearView se multiplient plus les modèles qu'il établit s'affinent.

    Toujours aux aguets

    La surveillance (souvent appelée monitoring) consiste à différencier les exécutions normales des exécutions échouées. ClearView procède alors à une localisation de la source des exécutions erronées dans les librairies. Pour détecter ces erreurs, le logiciel n'est pas seul et fait appel à deux applications de surveillance qui détectent les fameux boguesbogues. ClearView en tant que contremaitre n'agit dont pas seul mais reçoit des rapports d'erreurs de deux de ses employés. L'un est spécialisé dans les erreurs d'écriture tandis que l'autre détecte les transferts de données qui ne correspondent pas à la politique de sécurité du système.

    Une fois une erreur détectée par ses deux agents de terrain, ClearView met les données fraichement acquises en corrélation avec les invariants établis lors de l'étape d'observation. Une fois le recoupement d'informations effectué, ClearView propose en premier lieu un correctif de vérification pour différencier les bonnes et mauvaises exécutions. Puis l'angeange gardien numérique génère un lot de correctifs pour réparer l'invariant en cause dans le dysfonctionnement de l'application. Le but est d'assurer le bon lancement de l'application et de mettre au point un correctif après la première erreur pour éviter que celle-ci ne se propage, rendant l'erreur critique.

    Le processus de correction effectué est un cycle sans fin. Ainsi, après avoir corrigé les défauts d'exécution d'un logiciel, ClearView n'aura de cesse de réévaluer son travail. Les éditeurs de logiciels reçoivent un rapport détaillé des diverses erreurs notifiées et ne restent donc pas totalement sur la touche. Les vilains bugs n'ont qu'à bien se tenir, à moins que ces derniers ne s'invitent dans ClearView.