GNU/Linux
de se servir d’un clavier pendant trois ans, l’avaient tenu éloigné de la programmation. Il cite enfin la mauvaise communication entre les différentes parties du projet GNU. « Faire fonctionner l’environnement de débogage demandait un gros travail,
se souvient-il. Et l’équipe qui maintenait GDB à l’époque n’était
pas très coopérative. » Les développeurs de GDB avaient en effet donné la priorité au support des plates-formes existantes sur
lesquelles tournait GDB, au lieu de se consacrer au but général :
l’obtention d’un système GNU complet.
Mais surtout, Stallman reconnaît que lui et les développeurs
de Hurd avaient foncièrement sous-estimé la difficulté d’étendre le
micro-noyau Mach à un noyau Unix complet. « Je m’étais imaginé
que la partie [de Mach] parlant avec la machine avait déjà été déboguée, raconte-t-il au cours d’un discours prononcé en l’an 2000, se
souvenant des déboires de l’équipe de Hurd. Grâce à cette longueur
d’avance, nous aurions dû pouvoir finir le travail plus vite. Mais
au contraire, il est apparu que déboguer ces programmes asynchrones et multithreadés 6 était vraiment difficile. Il y avait des
bogues de synchronisation qui corrompaient les fichiers, et c’était
vraiment l’enfer. Et au final, il a fallu de très nombreuses années
pour obtenir une version de test » 7 (voir encart ci-après).
Note À propos des bogues de synchronisation
Dans les courriels qui ont suivi ce discours, j’ai demandé à Stallman ce qu’il voulait dire exactement par « bogues de synchronisation » (timing bugs). Stallman expliqua que l’expression « erreurs
6. Le multithread est la capacité d’un programme à disposer de plusieurs
traitements simultanément actifs au sein d’un même processus. (Source : Le
Jargon Français, http://jargonf.org) — NdT.
7. Extrait du discours du Maui High Performance Computing Center (cf.
chap. 8).
211
Précédent

- 234/358

Suivant