city:arsac

  • De Multics à Unix et au logiciel libre - Site WWW de Laurent Bloch
    http://www.laurentbloch.org/MySpip3/spip.php?article291

    Un article un peu « pour geeks », mais passionnant en raison des précisions et rappels historiques sur le développement des systèmes d’exploitation.

    Avant d’aborder la question du logiciel libre, il faut s’interroger sur un phénomène quand même surprenant : nous avons dit qu’Unix était très inconfortable pour tout autre qu’un développeur utilisant ses diverses fonctions à longueur de journée. Comment expliquer alors qu’en une dizaine d’années il se soit vu reconnaître une position hégémonique dans tout le monde de la recherche ? Parce que même dans les départements d’informatique des universités et des centres de recherche, la majorité des gens ne passent pas leur temps à programmer, il s’en faut même de beaucoup, alors ne parlons pas des biologistes ou des mathématiciens.

    La réponse n’est pas univoque. Mon hypothèse est que si cette population d’étudiants et d’ingénieurs, pauvre en capital social et en légitimité scientifique, a pu se hisser à cette position hégémonique, c’est que la place était à prendre. Pendant les années 1960 et 1970, on assiste aux tentatives des autorités académiques légitimes de l’informatique, dont les porte-drapeaux ont nom Dijkstra, Hoare, Knuth, ou en France Arsac, Ichbiah, Meyer, pour imposer leur discipline comme une science à part entière, égale de la Physique ou de la Mathématique. Pour ce faire ils élaborent des formalisations, des théories, des concepts souvent brillants. Peine perdue, ils échouent, malgré le succès technique et économique retentissant de l’informatique, ou peut-être même victimes de ce succès. Le public, fût-il universitaire, ne discerne pas l’existence d’une science derrière les objets informatiques qui deviennent de plus en plus ses outils de travail quotidiens. Les raisons de cet état de fait restent en grande partie à élucider, sur les traces de chercheurs en histoire de l’informatique tels en France Pierre-Éric Mounier-Kuhn, Valérie Schafer ou Camille Paloque-Berges. Ce désarroi identitaire de l’informatique universitaire snobée par ses collègues laissait le champ libre à des non-mandarins d’autant plus dépourvus de complexes qu’ils n’avaient aucune position à défendre et que le contexte économique d’Unix lui permettait de se développer dans les marges du système, sans gros budgets hormis le coup de pouce initial de la DARPA. Les financements absorbés par Unix et TCP/IP sont assez ridicules si on les compare à ceux de l’intelligence artificielle, sans doute la branche la plus dispendieuse et la plus improductive de la discipline [9], ou même à ceux du langage Ada, projet sur lequel se sont penchées toutes les bonnes fées de la DARPA et du monde académique, et qui finalement n’a jamais percé en dehors des industries militaires et aérospatiales (ce n’est déjà pas si mal, mais les espoirs étaient plus grands).

    Finalement, les outsiders unixiens l’ont emporté par leur séduction juvénile et leur occupation du terrain pratique, qui leur a permis de proposer à telle ou telle discipline les outils qui lui manquaient au moment crucial : le système de composition de documents TeX pour les mathématiciens, qui seul répondait à leurs exigences typographiques, et pour les informaticiens toutes sortes de langages et surtout d’outils pour créer des langages. J’ai vu dans le monde de la biologie Unix supplanter VMS : il faut bien dire que les tarifs pratiqués par Digital Equipment et la rigidité de sa politique de produits lui ont coûté la domination d’un secteur qui n’avait pas beaucoup de raisons de lui être infidèle. Un collègue m’a confié un jour « Le principal argument en faveur d’Unix, c’est que c’est un milieu sympathique ». Cet argument m’avait paru révoltant, mais je crois qu’il avait raison, si l’on prend soin de préciser que par « sympathique » on entend « propice aux libres échanges intellectuels ».

    Pour qu’un tel procédé donne des résultats utilisables, il faut que le logiciel présente une architecture qui s’y prête, notamment une grande modularité, afin que chaque contributeur puisse travailler relativement indépendamment sur telle ou telle partie. Par exemple, dans le noyau Linux, tout ce qui permet le fonctionnement de machines multi-processeurs et la préemption des processus en mode noyau demande une synchronisation beaucoup plus fine des fils (threads) d’exécution : les adaptations nécessaires ont été réalisées par Robert Love, ce qui a été possible parce qu’il n’était pas trop difficile d’isoler les parties du code concernées. À l’inverse, lorsque Netscape a voulu donner un statut Open Source à une partie du code de son navigateur connue sous le nom Mozilla, l’opération a été rendue difficile parce que le code initial n’avait pas été réalisé selon un plan suffisamment modulaire.

    Finalement, la réutilisation de composants logiciels, dont plusieurs industriels parlent beaucoup depuis des années sans grand résultat, sera sans doute réalisée plutôt par les adeptes de l’Open Source. En effet, l’achat d’un tel composant est un investissement problématique, tandis que le récupérer sur le réseau, l’essayer, le jeter s’il ne convient pas, l’adopter s’il semble prometteur, c’est la démarche quotidienne du développeur libre. On pourra lire à ce sujet l’article de Josh Lerner et Jean Tirole, The Simple Economics of Open Source.

    Linux est au départ plutôt un Unix System V, mais doté de toutes les extensions BSD souhaitables, ainsi que des dispositifs nécessaires à la conformité POSIX [19]. Sa principale originalité tient sans doute à son processus de développement : alors que tous les autres systèmes d’exploitation cités dans ce chapitre ont été développés par des équipes organisées, le développement du noyau Linux s’est fait depuis le début par « appel au peuple » sur l’Internet. Quiconque s’en sent la vocation peut participer aux forums, lire le code et proposer ses modifications (appelées patches). Elles seront examinées par la communauté, et après ce débat Linus Torvalds tranchera et décidera de l’incorporation éventuelle au noyau officiel. Il est difficile d’estimer les effectifs d’une telle communauté informelle, mais le nombre de contributeurs actifs au noyau Linux était en 2003 sans doute inférieur à 200 (nombre de développeurs recensés pour la version 2.0. Plus récemment : 1 326 contributeurs à la version 3.2 de janvier 2013). Le succès de Linux résulte sans doute en partie de facteurs impondérables : pourquoi l’appel initial de Torvalds a-t-il séduit d’emblée ? La réponse à cette question est sûrement complexe, mais en tout cas le succès est incontestable. Ce qui est sûr, c’est que l’appel à contribution d’août 1991 répondait à une attente et à une frustration largement répandues.