Le 29 avril 1981, deux DECSYSTEM-20 de l'université Columbia échangent leurs premiers octets sur un simple câble null-modem. Le 3 août 2026, le protocole qui est né là publie sa version 11. Entre les deux : quarante-cinq ans, trois maisons et une grenouille.
C-Kermit 11 (11.0.506) est la première version stable depuis 2011 ; tout ce qui était sorti entre-temps, après la 9.0.302, portait l'étiquette bêta16. Son annonce s'ouvre sur une dédicace rare dans un changelog : « Frank a été directement impliqué dans Kermit pendant 44 ans, de sa conception initiale en 1981 jusqu'en 2025 », écrit John Goerzen à propos de Frank da Cruz, cofondateur du protocole1.
Une release de plus, dira-t-on. Sauf que ce logiciel met toujours à jour des firmwares, commande des machines d'usine et discute avec des calculatrices de poche. Voilà de bonnes raisons d'ouvrir le capot.

Deux DEC et un câble
Kermit naît d'un problème d'inventaire. En 1981, le centre de calcul de Columbia fait cohabiter des mainframes DEC et IBM et s'apprête à poser des micro-ordinateurs CP/M « Superbrain » dans une salle en libre-service. Aucun de ces mondes ne partage le même format de fichiers, ni le même jeu de caractères2.
Frank da Cruz, responsable des DEC-20 et chef de Bill à l'époque, pose les exigences : un protocole robuste, indépendant des plateformes, capable de transporter du binaire autant que du texte, même sur de mauvaises lignes. Catchings écrit le protocole puis les deux premières implémentations, une pour le DEC-20, une pour CP/M. Le 29 avril 1981, deux instances de DECSYSTEM-20 Kermit transfèrent un fichier via un câble null-modem. Quelques semaines plus tard vient le premier transfert « réel », entre un DEC-20 et un Superbrain2.
Le nom arrive en mai, face au calendrier des Muppets accroché au mur. Selon da Cruz, personne dans le groupe ne s'imaginait alors que le logiciel sortirait de l'université, ni qu'il durerait des décennies3.
Pensé pour les pires liaisons
Les contraintes de départ expliquent presque toute la suite. Paquets de moins de 100 octets, parce que certains systèmes plantaient au-delà, et encodages imprimables pour survivre à des liens qui ne laissaient pas passer 8 bits propres. Il fallait aussi convertir les jeux de caractères entre ASCII et EBCDIC, parce que les mainframes IBM n'écrivaient pas leurs fichiers comme les autres23.
Et chaque session commence par négocier ce que les deux bouts savent faire. Ce choix rendait le protocole extensible : longs paquets, fenêtres glissantes et streaming sont arrivés des années plus tard sans casser les clients anciens3. Aujourd'hui, un paquet peut monter autour de 9 Ko4.
C'est ce qui a emmené Kermit là où les protocoles plus rapides refusaient d'aller. En 2002-2003, l'expérience de microgravité CSLM-2 à bord de la Station spatiale internationale récupérait ses données d'un boîtier embarqué sous MS-DOS vers un portable Windows, via RS-232 à 38 400 bauds, en Kermit. L'ingénieur de ZIN Technologies raconte qu'une version « 3.16 Beta 12-NASA », adaptée par Joe Doupnik pour tourner sans écran, avait été livrée en quelques jours5. D'après la documentation du projet, le protocole pilote aussi des machines d'usine, dont une tape layer utilisée pour fabriquer des éléments de structure du Boeing 7873.
Trois maisons
Depuis 1984, Columbia faisait financer le projet par ses propres revenus. Selon les comptes publiés par da Cruz, il aura rapporté 8,89 millions de dollars à l'université ; Kermit 95, le seul volet strictement commercial, s'est vendu à plus d'un quart de million de licences en volume3.
Le 1er juillet 2011, Columbia annule le projet. Tout le logiciel passe sous licence open source de type BSD et le site déménage chez l'hébergeur Panix. Da Cruz, licencié la même année en tant que dernier membre du projet, continue seul et bénévolement23.
En 2025, il prend sa retraite du protocole, après 44 ans. Plus rien ne sort4. L'ère suivante part d'une frustration très concrète : John Goerzen, mainteneur de Kermit sous Debian, passait son temps à distribuer à la main des patchs de sécurité aux distributions, et ça devenait intenable. Il a créé Open Kermit, la troisième maison du protocole, avec un dépôt GitHub et une vraie documentation47.
Archéologie de bugs
Avant de modifier quoi que ce soit, Goerzen a posé des filets : tests unitaires en C, suite de régression en Python, plus de 1 700 cas exécutés en continu sur Linux, macOS, FreeBSD et NetBSD. Et, détail qui résume tout, des tests de compatibilité contre gkermit, E-Kermit et la C-Kermit 9.0.302 de 20111. Un logiciel qui prétend parler à toutes les machines doit vérifier qu'il parle encore à son propre passé.
Les résultats de cette campagne ressemblent à un sondage stratigraphique. Un bug de corruption de données causé par un mauvais emploi de strlen(), introduit en 1992 dans C-Kermit 5A(188), vient d'être corrigé1. Un blocage de transfert remontait à la bêta.05 de 20221. Des problèmes de pseudo-terminaux sur macOS traînaient depuis des décennies1. Et NetBSD livre la pépite du lot : son noyau peut signaler avoir écrit plus d'octets dans un pty qu'il n'en a réellement passés. En mode par défaut, C-Kermit détecte maintenant la perte et réduit tout seul la taille de ses paquets pour compenser1.
Malgré les ajouts (IPv6 avec repli sur IPv4, compatibilité OpenSSL 3.x et 4.x, vitesses série jusqu'à 4 Mbps, binaires statiques musl pour amd64 et arm64, support Android), la base de code sort 2 600 lignes plus courte que la dernière bêta 10.x. Autrement dit : le code mort retiré a pesé plus lourd que les fonctions ajoutées1.
Les défauts rattrapés
La version 11 change aussi des comportements par défaut qui avaient vieilli, en les listant honnêtement parmi les ruptures « rares » attendues1. Le correctif principal porte un numéro : CVE-2025-68920. Les réglages historiques permettaient à un serveur Kermit distant malveillant d'exécuter des actions sur votre machine locale1. La gestion des collisions de fichiers passe de BACKUP à REJECT : avant, un serveur hostile pouvait écraser vos fichiers sensibles, .bashrc en tête1. Le mode de transfert automatique, qui devine texte ou binaire à l'extension et a déjà causé des pertes de données, est désactivé par défaut1. Et une confirmation apparaît avant de recevoir un fichier dont vous n'avez pas explicitement demandé le nom1.
Mon analyse : un protocole dessiné pour des liaisons série institutionnelles supposait des correspondants polis. Le monde de 2026 ne l'est plus toujours, et la correction est passée par les valeurs par défaut plutôt que par le protocole lui-même. Les anciens usages restent accessibles : lancer le binaire sous le nom kermit9 ou kermit10 restaure les réglages d'antan1.
Dans sa dédicace, Goerzen écrit que Kermit « collait les systèmes les uns aux autres, de la Station spatiale internationale aux calculatrices de poche »1. La phrase tient encore debout, et la nouvelle suite de compatibilité la prend au mot : la version 2026 contre celle de 2011, sur le même câble.