Le journal Planete Linux a publié un entretien avec moi dans son numéro d'octobre 2002.

page 1 page 2 page 3
page 1 page 2 page 3
basse résolution 73K basse résolution 70K basse résolution 72K
haute résolution 234K haute résolution 266K haute résolution 273K


Jean-Loup Gailly, acteur méconnu de l'Open Source.

Même si son nom est moins connu des Linuxiens que ceux de Linus Torvalds, Alan Cox ou Richard Stallman, Jean-Loup Gailly n'en a pas moins contribué de façon majeure au succès de l'Open Source. Il est en effet le créateur de gzip, un utilitaire de compression de données désormais universel, et a également dirigé le développement de la Mandrake jusqu'à la hisser dans le tiercé de tête des distributions Linux. Jean-Loup nous raconte l'histoire de gzip, nous livre ses commentaires sur les brevets logiciels et les distributions Linux, et nous parle de sa passion pour le jeu de Go.

Tu es l'homme derrière gzip, est-ce que tu peux nous raconter comment t'es venue l'idée d'écrire un remplaçant à compress ? Quelle est l'idée principale de l'algorithme de compression utilisé par gzip?

Tout a commencé en 1985 avec mon premier ordinateur personnel. Alors que le standard était l'IBM PC 8088 à 4,77 Mhz, j'avais investi plusieurs mois de salaire dans un PC "haut de gamme": un Olivetti 8086 à 8 Mhz. Mais le disque dur gigantesque que j'avais acheté (20 Mega-octets, deux fois plus grand que celui d'IBM) était toujours trop petit. Donc j'ai écrit des programmes de compression pour faire tenir plus de fichiers sur le disque. Mon PC actuel a 1000 fois plus d'espace disque mais est toujours aussi plein!

En 1991 j'ai découvert sur Internet le groupe Info-Zip qui avait produit unzip, un programme Open Source compatible avec PKzip, et qui travaillait sur une version beta de zip. J'ai réécrit l'algorithme de compression pour qu'il soit plus efficace, et cela est devenu zip 1.0. L'année suivante, Richard Stallman, le père du projet GNU, a exprimé le besoin d'un programme non breveté pour remplacer 'compress' couvert par le brevet d'Unisys. Je lui ai proposé d'utiliser l'algorithme de compression de zip pour créer gzip. Il a accepté après de longues recherches pour s'assurer que gzip ne serait pas sujet à un brevet.

Ce code de compression est maintenant utilisé un peu partout (Internet Explorer, Microsoft Office, Netscape, Apache, PGP, Java...), par l'intermédiaire de la librairie zlib qui reprend le code utilisé dans gzip.

L'idée principale de l'algorithme de compression est très simple : on recherche les séquences d'octets dupliquées et on les remplace par des références à la première occurrence. Par exemple on remplace "abcdeabcd" par "abcde" suivi d'un code qui dit "recopier la séquence de longueur 4 située à une distance de 5 octets". En pratique c'est plus complexe puisque même les séquences non dupliquées sont compressées en codant de manière plus compacte les octets les plus fréquents. Et les codes eux mêmes sont compressés par un "super code". Mais l'idée de base, la recherche des séquences dupliquées, reste simple.

Tu as recensé de nombreux brevets ayant trait à la compression de données qui ne tiennent pas la route d'un point de vue technique. Comment se fait-il que ce genre de choses se produise ? Et que penser des brevets logiciels en général ?

L'office des brevets des Etats-Unis est presque devenu une simple chambre d'enregistrement. Les examinateurs des demandes de brevets sont mal payés et n'ont pas les compétences et le temps nécessaires pour étudier correctement les demandes. On laisse aux tribunaux la charge de valider ou invalider les brevets. Mais un procès coûte très cher et bon nombre de petites organisations sont obligées de céder devant la menace d'un procès même si le brevet est en fait invalide. De plus un procès en matière de brevets peut aux Etat-Unis être jugé par un jury populaire qui n'a pas les compétences techniques nécessaires pour déterminer la validité d'un brevet. L'issue d'un procès peut donc être assez aléatoire.

En théorie, un brevet ne doit pas porter sur une idée déjà publiée ou sur une idée évidente. En pratique, un grand nombre de brevets logiciels reprennent des idées publiées depuis longtemps ou évidentes. L'existence de tels brevets est une réelle menace pour les projets de logiciels Open Source. De plus la durée de vie d'un brevet (20 ans) est extrêmement longue par rapport au cycle de développement des logiciels. Il est triste de constater que l'Europe, qui avait soutenu le principe qu'une opération mathématique n'est pas brevetable, s'aligne sur les Etats-Unis et autorise maintenant de tels brevets. Imaginez qu'un mathématicien doive payer des redevances pour l'utilisation d'un théorème!

Il n'est pas réaliste d'envisager une suppression complète des brevets logiciels. Mais il faudrait au minimum raccourcir la durée de validité de ces brevets, et imposer de manière beaucoup plus stricte que les idées brevetées soient effectivement nouvelles et non évidentes.

Tu as participé à la conception de l'OS à micro-noyau Chorus, qui était destiné au marché des applications embarquées. Comment est-ce que Linux se positionne dans ce domaine par rapport à des OS spécialisés ?

Linux prend de l'importance dans ce marché, principalement pour une raison de coût, mais aussi peut être pour éviter une trop forte dépendance envers un unique fournisseur. Il existe des versions de Linux bien adaptées pour la plupart des applications embarquées. Pour certaines applications qui ont des contraintes très fortes, notamment en termes d'utilisation de la mémoire, Linux n'est pas forcément la meilleure solution aujourd'hui. Vous n'avez probablement pas encore besoin de Linux dans votre machine à laver. Mais Linux est bien adapté pour programmer un central téléphonique par exemple.

Paradoxalement le succès de Linux dans le marché des applications embarquées ne bénéficie pas toujours aux fournisseurs de solutions Linux : dans la période actuelle de difficultés économiques, les entreprises ont tendance à serrer les coûts et faire des développements en interne basés sur des solutions Open Source. RedHat a du récemment restructurer sa division pour les systèmes embarqués.

D'une manière générale, qu'est-ce que le noyau Linux y aurait gagné s'il était un OS à micro-noyau au lieu d'être un OS monolithique ?

Le système Linux n'est pas si monolithique que ça. Le système de modules chargeables dynamiquement est très souple. Linux peut facilement être déployé de manière répartie sur des clusters constitués de nombreuses machines. L'interface utilisateur est clairement séparée du noyau, alors que Microsoft insiste sur l'aspect monolithique de son système pour éviter de faire de la place à la concurrence.

Si la conception de Linux avait été basée sur un micro-noyau, comme le projet Hurd qui a vraiment du mal à décoller, il aurait pu être mieux adapté à certaines applications spécifiques, mais il aurait sans doute eu plus de mal à s'imposer et n'aurait peut être pas eu le succès phénoménal que l'on constate aujourd'hui. Linux continue à évoluer de manière significative d'une version majeure à l'autre. Certaines parties sont réécrites entièrement. Qualifier ce système de monolithique me semble un peu péjoratif.

Tu as été jusqu'à récemment le CTO de MandrakeSoft, qu'est-ce qui différencie vraiment la distribution Mandrake des autres, en particulier de la Red Hat ?

A l'origine, la distribution Mandrake était très proche de celle de RedHat. Ce n'est plus du tout le cas, et depuis plusieurs années. MandrakeSoft a développé son propre système d'installation et ses propres outils de configuration, et maintient tous les paquetages, y compris les correctifs de sécurité et les fonctionnalités supplémentaires. L'interface utilisateur est personnalisée. Tout cela représente un énorme travail, qui est souvent mal compris. Même si les sources des programmes sont librement disponibles, assembler tout ça, le tester, s'assurer que cela forme un ensemble cohérent, c'est loin d'être facile!

Les principales différences avec RedHat sont l'accent mis par Mandrake sur la facilité d'installation et d'utilisation, un support plus complet du matériel, une sélection de paquetages plus complète et plus à jour. Il faut aussi rappeler que le principal concurrent de Mandrake c'est Microsoft, pas RedHat. MandrakeSoft et RedHat sont tous deux défenseurs du modèle Open Source si violemment attaqué par Microsoft qui y voit maintenant une menace contre son monopole.

Mandrake a fait beaucoup d'efforts pour rendre l'installation de Linux accessible aux débutants, mais on n'a pas encore l'impression d'avoir atteint le but. Est-ce que Linux est vraiment un système à mettre entre toutes les mains ? Ou est-ce que la tâche d'installation doit rester du domaine de ceux qui connaissent, tandis que l'utilisation 'de base' est maintenant presque à la portée de tous ?

J'aurais pu être d'accord il y a plusieurs années. Linux était à l'origine réservé aux experts. Mais maintenant un système Mandrake est aussi facile à installer qu'un système Windows. Tout le matériel est reconnu et configuré automatiquement. Le disque dur est repartionné si nécessaire et il est très facile de faire coexister plusieurs systèmes sur la même machine. En quelques minutes et quelques clics de souris, on obtient un système parfaitement fonctionnel avec interface graphique, applications multimedia, connexion Internet etc. Si cela vous semble n'être que du baratin publicitaire, le mieux est d'essayer ! La distribution Mandrake est librement téléchargeable.

Il faut aussi considérer le résultat obtenu après l'installation. Une installation de Mandrake avec options par défaut est sécurisée. En revanche une installation par défaut de Windows comporte de nombreux trous de sécurité, et il faut une certaine expertise pour arriver à en boucher la plupart. Windows est il vraiment un système à mettre entre toutes les mains? On peut se poser la question en voyant la facilité avec laquelle les virus se répandent.

On peut enfin regretter que les pratiques monopolistiques de Microsoft empêchent la vente de PCs préinstallés avec Linux. Quelques sociétés comme Wal-Mart s'y lancent mais c'est encore trop marginal. Si les PCs étaient préinstallés avec Linux, ou même avec un double démarrage Linux/Windows, on pourrait alors plus équitablement comparer la facilité d'utilisation pour un débutant.

Que penses-tu de l'initiative récente autour de United Linux ? Est-ce que la diversité des distributions est vraiment dommageable à Linux ?

United Linux me parait être surtout une initiative commerciale pour regagner des parts de marché. Tous les acteurs Linux connaissent des difficultés dans la crise économique actuelle, mais les initiateurs de United Linux semblent être parmi les plus touchés. En quelques années, la distribution Mandrake est devenue nettement plus populaire que Caldera, SuSE, TurboLinux et Conectiva, membres de United Linux.

La diversité des distributions Linux n'est pas dommageable, au contraire, tant que celles ci respectent des standards tels que LSB (Linux Standard Base). La compétition encourage les innovations. Les différentes distributions doivent sans cesse s'améliorer pour ne pas disparaître. Il est normal que des regroupements s'opèrent, comme cela arrive dans toutes les industries. Il serait en revanche très regrettable qu'il ne reste plus qu'une seule distribution Linux.

Tu es un grand amateur de jeu de Go, est-ce que tu peux nous dire pourquoi les programmes de Go sont d'un niveau très moyen, alors que les programmes de jeu d'échecs, par exemple, rivalisent avec les meilleurs joueurs humains ? Quand on sait combien d'informaticiens sont des fanatiques de Go, ça a de quoi surprendre, non ?

Bien qu'il ait des règles très simples, le jeu de Go est bien plus profond que tous les autres jeux, en particulier les échecs. Les programmes d'échecs utilisent une version améliorée de la force brute pour explorer tous les coups possibles jusqu'à un certain niveau. Ceci n'est pas envisageable au Go puisque le nombre de coups possibles est beaucoup trop grand, même pour des ordinateurs très rapides.

De plus la fonction d'évaluation, qui permet de choisir la meilleure entre différentes positions, est assez simple pour les échecs et peut donc être calculée rapidement, puisque qu'elle prend principalement en compte l'avantage matériel qui est facile à mesurer. Au Go, la fonction d'évaluation est très complexe. On ne peut pas facilement savoir si un groupe est solide ou au contraire capturable par l'adversaire. Et sans notion de solidité des groupes il est impossible d'évaluer correctement la position globale.

En résumé non seulement il faut évaluer nettement plus de coups possibles, mais en plus chaque évaluation coûte beaucoup plus cher. Donc la force brute n'est pas actuellement applicable au Go. Les programmes de Go doivent se contenter d'approximations encore trop grossières et font trop d'erreurs. La médiocrité des programmes ne tient pas à celle des programmeurs mais à la difficulté du problème.

Mais cela rend le problème plus intéressant! Alors que l'on pensait initialement qu'atteindre un niveau de grand maître aux échecs nécessiterait une vraie intelligence artificielle, on a vu depuis que la force brute suffisait. Au Go, la force brute ne suffira jamais, du moins pas avant que la puissance des ordinateurs dépasse celle du cerveau humain, c'est à dire pas avant un demi siècle. Donc on est condamné pour l'instant à rechercher des solutions originales.

Il ne faut pas désespérer, bien au contraire. Le niveau des programmes de Go progresse régulièrement. Le prix d'un million de dollars pour le premier programme capable de battre un professionnel n'a jamais été près d'être accordé. Mais j'ai bon espoir qu'un programme arrive à me battre un jour, puisque je suis hélas très loin d'avoir la force d'un professionnel.

Jean-Loup, merci d'avoir répondu à nos questions.

Propos recueillis par Julien Vayssière.

LIENS WEB

La page Web de Jean-Loup Gailly
http://gailly.net

La page Web de gzip
http://www.gzip.org

Une interview de Jean-Loup Gailly par les lecteurs de Slashdot
http://slashdot.org/interviews/00/03/10/1043247.shtml

Un excellent site en français d'initiation au jeu de Go
http://jeudego.org

Retour à la page de Jean-loup