mardi 16 octobre 2012

Patch (informatique)

Un patch est une section de code que l'on ajoute à un logiciel, pour y apporter des modifications : correction d'un bug, traduction, crack.
En français, les termes recommandés en France par la DGLFLF sont retouche ou bien correctif (terme en français majoritairement utilisé dans les milieux professionnels)1, et les termes recommandés au Québec par l'OQLF sont rustine ou rustine logicielle.
Le mot anglais donne au pluriel : patches respectant l'orthographe anglophone, ou patchs par francisation.

Sommaire

Origine

Sa signification originelle est tirée des utilitaires (logiciels libres) diff et patch qui permettent respectivement d'extraire des différences entre deux fichiers texte et d'appliquer des changements à un fichier. Les patches sont donc des modifications de fichiers texte que sont les codes sources des logiciels. Les patchs sont donc à l'image des pièces de tissus cousues aux vêtements pour les renforcer.
Le correctif a vocation à être distribué à tous les utilisateurs du logiciel, de manière à minimiser la distribution du logiciel complet (pour des raisons de coût en bande passante ou tout simplement pour ne le rendre utilisable que par les utilisateurs enregistrés ou payants du logiciel).
L'origine proviendrait de l'utilisation des cartes perforées sur lesquelles on ajoutait une rustine pour corriger un bug.

Nature

Il se présente normalement comme une séquence de modifications à apporter au code source du logiciel traité, après quoi le code devra être recompilé pour obtenir la version modifiée du logiciel.
Cependant, dans certains cas, notamment quand l'éditeur du logiciel ne désire pas que les utilisateurs aient accès à son code source, le correctif peut se présenter comme un programme autonome qui va greffer sur le logiciel original une modification sous la forme d'un ajout de code exécutable et de la mise en place d'une instruction de branchement vers la section de code ajoutée.
Plusieurs correctifs peuvent être distribués simultanément et sont alors regroupés dans un Service Pack (SP).
Par abus de langage, on appelle parfois patch les corrections de bugs livrés sous forme de code compilé (binaire) annulant et remplaçant un exécutable ou une bibliothèque.

Limites du principe

Le principe des patchs offre donc un palliatif aux manques d'un logiciel, mais il a des limites. L'accumulation de patchs, surtout de sources différentes, peut, à l'image du patchwork, poser un problème de cohérence globale. Par ailleurs, l'ordre d'application des patches peut s'avérer essentiel : passer un patch avant un autre peut conduire à une situation difficilement récupérable. Une approche prévoyante consiste à prévoir ce qui peut évoluer et de standardiser l'évolutivité en suivant par exemple une approche à base de plugins.

Aucun commentaire:

Enregistrer un commentaire