diff options
Diffstat (limited to 'talermerchantdemos/blog/articles/fr/stallman-kth.html')
-rw-r--r-- | talermerchantdemos/blog/articles/fr/stallman-kth.html | 787 |
1 files changed, 406 insertions, 381 deletions
diff --git a/talermerchantdemos/blog/articles/fr/stallman-kth.html b/talermerchantdemos/blog/articles/fr/stallman-kth.html index 2a82ffa..04ccc21 100644 --- a/talermerchantdemos/blog/articles/fr/stallman-kth.html +++ b/talermerchantdemos/blog/articles/fr/stallman-kth.html @@ -1,31 +1,46 @@ <!--#set var="ENGLISH_PAGE" value="/philosophy/stallman-kth.en.html" --> <!--#include virtual="/server/header.fr.html" --> -<!-- Parent-Version: 1.77 --> +<!-- Parent-Version: 1.96 --> +<!-- This page is derived from /server/standards/boilerplate.html --> +<!--#set var="TAGS" value="speeches" --> +<!--#set var="DISABLE_TOP_ADDENDUM" value="yes" --> <!-- This file is automatically generated by GNUnited Nations! --> -<title>Conférence en Suède - Projet GNU - Free Software Foundation</title> +<title>Conférence de RMS au KTH (Suède, 1986) - Projet GNU - Free Software +Foundation</title> +<style type="text/css" media="screen"><!-- +#content span { font-style: italic; color: #505050; } +--> +</style> <!--#include virtual="/philosophy/po/stallman-kth.translist" --> <!--#include virtual="/server/banner.fr.html" --> -<h2>Conférence de RMS au KTH (Suède), le 30 octobre 1986</h2> - -<div style="text-align: center;"> -<p><em>[Kungliga Tekniska Högskolan (Institut royal de technologie)<br /> -Stockholm, Suède]</em></p> -<p><em>organisée par l'association des étudiants<br /> -« Datorföreningen Stacken »<br /> -le 30 octobre 1986</em></p> +<!--#include virtual="/philosophy/ph-breadcrumb.fr.html" --> +<!--GNUN: OUT-OF-DATE NOTICE--> +<!--#include virtual="/server/top-addendum.fr.html" --> +<div class="article reduced-width"> +<h2>Conférence de RMS au KTH (Suède, 1986)</h2> + +<div class="infobox"> +<p>Transcription d'une conférence de Richard Stallman au <i>Kungliga Tekniska +Högskolan</i> (Institiut royal de technologie), à Stockholm (Suède), +organisée par l'association des étudiants, <i>Datorföreningen Stacken</i>, +le 30 octobre 1986. +</p> </div> +<hr class="thin" /> -<p><strong>[Note : Ce texte est une transcription légèrement révisée de la +<div class="introduction"> +<p><i>[Note : Ce texte est une transcription légèrement révisée de la conférence. La version originale contient des faux départs ainsi que des locutions naturelles en anglais parlé mais qui paraissent bizarres dans une publication. Il n'est pas évident de la transformer en anglais écrit correct -sans faire violence au discours original.]</strong></p> +sans faire violence au discours original.]</i></p> +</div> -<p>Il semble qu'il y ait trois choses dont les gens voudraient que je -parle. Tout d'abord, j'ai pensé que le meilleur sujet ici pour un club de +<p><b>RMS :</b> Il semble qu'il y ait trois choses dont les gens voudraient que +je parle. Tout d'abord, j'ai pensé que le meilleur sujet ici pour un club de hackers était de dire comment ça se passait au <abbr title="Massachusetts Institute of Technology">MIT</abbr> autrefois, ce qui faisait du labo d'intelligence artificielle (labo d'IA) un endroit si particulier. Mais d'un @@ -38,19 +53,24 @@ une heure, nous y sommes pour un bon moment. Aussi je me suis dit que je pourrais éventuellement diviser la conférence en trois parties. Comme ça les gens pourraient sortir quand ça ne les intéresse pas. Une fois arrivé à la fin d'un sujet, je peux signaler que c'est fini, les gens peuvent sortir et -je peux envoyer Jan Rynning dehors pour appeler les -autres. <br/><br/>Quelqu'un : <i>Janne, han trenger ingen mike</i> (Janne, -il n'a pas besoin de micro).<br/><br/>RMS : Jan, tu es prêt à courir -chercher les autres ?<br/><br/>JMR : Je suis à la recherche d'un micro et -quelqu'un me dit qu'il est dans ce casier fermé à clé.<br/><br/>RMS : -Autrefois au labo d'IA, on l'aurait ouvert à coup de masse et la porte -défoncée aurait servi de leçon à celui qui avait osé mettre sous clé quelque -chose dont tout le monde avait besoin. Mais heureusement j'ai étudié le -chant bulgare, donc je peux très bien me débrouiller sans micro.</p> +je peux envoyer Jan Rynning dehors pour appeler les autres.</p> + +<p><span>[Quelqu'un : « <i>Janne, han trenger ingen mike.</i> » (Janne, il n'a +pas besoin de micro.)]</span></p> + +<p>Jan, tu es prêt à courir chercher les autres ?</p> + +<p><b>JMR :</b> Je suis à la recherche d'un micro et quelqu'un me dit qu'il est +dans ce casier fermé à clé.</p> + +<p><b>RMS :</b> Autrefois au labo d'IA, on l'aurait ouvert à coup de masse et +la porte défoncée aurait servi de leçon à celui qui avait osé mettre sous +clé quelque chose dont tout le monde avait besoin. Mais heureusement j'ai +étudié le chant bulgare, donc je peux très bien me débrouiller sans micro.</p> <p>Bon, est-ce que je dois vous signaler les différentes parties de la -conférence ou vous avez juste envie de la suivre jusqu'au bout ? (Réponse : -Yeaaah !)</p> +conférence ou vous avez juste envie de la suivre jusqu'au bout ? +<span>[Réponse : Yeaaah !]</span></p> <p>Quand j'ai commencé à programmer, c'était en 1969, dans un laboratoire d'IBM à New York. Ensuite, je suis allé dans une école qui avait un département @@ -61,14 +81,14 @@ pénurie de terminaux pour la plupart d'entre nous. Or pas mal de professeurs en avaient un personnellement dans leur bureau, ce qui était du gaspillage, mais typique de leur attitude. Quand j'ai visité le labo d'intelligence artificielle au MIT, j'ai trouvé une atmosphère qui était une bouffée d'air -pur par rapport à ça. Par exemple : là, on considérait que les terminaux +pur par rapport à ça. Par exemple : là, on considérait que les terminaux étaient à tout le monde et les professeurs qui les enfermaient à clef dans leurs bureaux couraient le risque de voir leurs portes défoncées. On m'a montré une fois un chariot avec un gros bloc de fer dessus. C'était celui qui avait été utilisé pour défoncer la porte du bureau d'un des professeurs quand il avait eu le culot d'y enfermer un terminal. Il y en avait très peu à cette époque. Il y avait probablement quelque chose comme cinq terminaux à -écran pour tout le système ; aussi, si l'un d'entre eux était sous clé, +écran pour tout le système ; aussi, si l'un d'entre eux était sous clé, c'était une vraie catastrophe.</p> <p>Dans les années qui ont suivi, j'ai été guidé par ces idées et il m'est @@ -84,8 +104,8 @@ avoir accès au reste du matériel qui était dans la même salle. Presque à chaque fois que cela s'est produit – après avoir porté à leur attention qu'il ne leur appartenait pas de décider du verrouillage de la porte – ils étaient capables de trouver un compromis. Mais le problème, c'est que les -gens ne prennent pas la peine d'y penser. Ils se disent : « Cette salle est -à moi, je peux la fermer à clé, que les autres aillent au diable ! » C'est +gens ne prennent pas la peine d'y penser. Ils se disent : « Cette salle est +à moi, je peux la fermer à clé, que les autres aillent au diable ! » C'est précisément cette attitude que nous devons leur désapprendre.</p> <p>Mais cette habitude de déverrouiller les portes n'était pas un comportement @@ -99,7 +119,7 @@ ce qu'elles sont en train de faire et des personnes qui prennent ça juste pour un boulot. Si c'est juste un boulot, qu'importe si les gens qui vous ont embauché sont assez stupides pour vous obliger à attendre sans rien faire. C'est leur temps, leur argent, mais pas grand-chose ne se fait dans -un endroit comme ça ; ce n'est pas drôle d'être dans un endroit comme ça.</p> +un endroit comme ça ; ce n'est pas drôle d'être dans un endroit comme ça.</p> <p>Une autre chose que nous n'avions pas au labo d'IA, c'était la protection des fichiers. Il n'y avait aucune sécurité sur l'ordinateur, et c'était une @@ -120,14 +140,14 @@ faire.</p> <p>Et nous ne laissions pas non plus de professeur, ni de patron, décider quel devait être notre prochain travail, parce que notre travail c'était -d'améliorer le système ! Nous parlions aux utilisateurs évidemment ; si vous +d'améliorer le système ! Nous parlions aux utilisateurs évidemment ; si vous ne faites pas ça, vous ne pouvez pas savoir ce dont ils ont besoin. Mais ensuite, nous étions les seuls, les plus aptes à savoir quelles sortes d'améliorations étaient possibles. Et nous discutions toujours entre nous pour savoir comment nous voulions voir le système évoluer, quelles idées astucieuses nous avions vues dans d'autres systèmes et pourrions utiliser. Ainsi au final, nous avions une anarchie qui fonctionnait sans -à-coups ; d'après mon expérience là-bas, je suis convaincu que c'est la +à-coups ; d'après mon expérience là-bas, je suis convaincu que c'est la meilleure façon de vivre.</p> <p>Malheureusement le labo d'IA, tel qu'il était à cette époque, a été @@ -140,7 +160,7 @@ continuellement d'annexer le labo d'IA. Personne ne voulait faire les choses d'autres choses dans le style.</p> <p>Mais ce danger, nous avons réussi à le repousser pour être en fin de compte -détruits par une chose que nous n'avions pas prévue : l'esprit +détruits par une chose que nous n'avions pas prévue : l'esprit commercial. Vers le début des années 80, les hackers ont soudain compris que ce qu'ils faisaient avait désormais un intérêt commercial. Il était possible de devenir riche en travaillant pour une société privée. Il leur suffisait @@ -183,8 +203,8 @@ de maintenance le fassent, ça aurait pris des jours. Et on ne voulait pas de chose réparaient très vite, puisqu'ils étaient dix fois plus compétents que n'importe quel technicien. Ils pouvaient faire un bien meilleur travail. Et une fois qu'ils avaient démonté les circuits défectueux, il leur suffisait -de les mettre de côté et d'appeler le technicien : « Reprenez-les et -ramenez-nous-en des neufs. »</p> +de les mettre de côté et d'appeler le technicien : « Reprenez-les et +ramenez-nous-en des neufs. »</p> <p>À la belle époque, nos hackers avaient également l'habitude de modifier les machines qui venaient de Digital. Par exemple, ils ont construit des boîtes @@ -202,17 +222,17 @@ mémoire qui permettaient d'affecter individuellement chaque périphérique matériel à une tâche en temps partagé, et des tas d'autres trucs dont j'ai à peine entendu parler. Je pense qu'ils ont également rajouté une sorte de mode d'adressage étendu, des registres d'indexation ainsi que l'adressage -indirect ; en somme ils ont transformé une toute petite machine en une +indirect ; en somme ils ont transformé une toute petite machine en une machine à peu près correcte.</p> <p>Je suppose que c'est l'un des inconvénients de la <abbr title="Very Large -Scale Integration">VLSI</abbr> (intégration à très grande échelle) : il +Scale Integration">VLSI</abbr> (intégration à très grande échelle) : il n'est plus vraiment pratique d'ajouter des instructions sur vos machines.</p> -<p>Le PDP-1 avait une caractéristique très intéressante : il était possible +<p>Le PDP-1 avait une caractéristique très intéressante : il était possible d'écrire des programmes intéressants avec un très petit nombre d'instructions, moins qu'aucune autre machine construite depuis. Je crois -par exemple que le célèbre hack d'affichage <i>munching squares</i> (lit. : +par exemple que le célèbre hack d'affichage <i>munching squares</i> (lit. : grignotage de carrés) – qui traçait des carrés qui grandissaient puis se brisaient en une multitude de petits carrés qui devenaient plus grands et se brisaient en petits carrés – cela a été écrit en quelque chose comme cinq @@ -220,7 +240,7 @@ instructions sur le PDP-1. Et beaucoup d'autres beaux programmes d'affichage ont pu être écrits ainsi avec un très petit nombre d'instructions.</p> <p>Voilà donc ce qu'était le labo d'IA. Mais c'était quoi la culture des -hackers, hormis leur anarchisme ? Au temps du PDP-1, la machine ne pouvait +hackers, hormis leur anarchisme ? Au temps du PDP-1, la machine ne pouvait être utilisée que par une personne à la fois, du moins au début. Plusieurs années après, ils ont écrit un système fonctionnant en temps partagé et ils ont rajouté pas mal de matériel pour ça. Mais au début, on pouvait seulement @@ -233,7 +253,7 @@ le temps partagé, il était toujours plus facile d'avoir du temps la nuit, on pouvait avoir plus de cycles parce qu'il y avait peu d'utilisateurs. Aussi ceux qui voulaient abattre beaucoup de travail continuaient à venir la nuit. Mais ça a commencé à changer parce qu'on n'était pas seul, il y avait -là quelques autres hackers ; ainsi c'est devenu un phénomène social. Si vous +là quelques autres hackers ; ainsi c'est devenu un phénomène social. Si vous entriez pendant la journée, vous pouviez vous attendre à trouver des professeurs et des étudiants qui n'étaient pas des fans de la machine, alors que si vous veniez la nuit vous trouviez des hackers. Par conséquent, les @@ -256,23 +276,23 @@ raison ou une autre, je n'avais pas d'appartement et j'y habitais quelques mois. Et j'ai toujours trouvé que c'était très confortable, sans compter que c'était sympa et frais en été. Mais il n'était pas rare du tout de tomber sur des gens qui s'étaient endormis au labo, toujours à cause de leur -enthousiasme : vous restez le plus longtemps possible à hacker parce que +enthousiasme : vous restez le plus longtemps possible à hacker parce que vous ne voulez pas vous arrêter, et une fois que vous êtes complètement épuisé, vous escaladez la surface horizontale souple la plus proche. Une ambiance vraiment sans cérémonie.</p> <p>Mais quand les hackers sont tous partis du labo, ça a causé un changement démographique parce que les professeurs et les étudiants qui n'étaient pas -vraiment des fans de la machine étaient aussi nombreux qu'auparavant ; +vraiment des fans de la machine étaient aussi nombreux qu'auparavant ; maintenant ils représentaient la majorité. Et ils ont vraiment eu peur. Sans -hacker pour entretenir le système, ils se sont dit : « Ça va être un +hacker pour entretenir le système, ils se sont dit : « Ça va être un désastre, il nous faut du logiciel commercial. Comme ça, nous pourrons -compter sur la maintenance de l'entreprise. » La suite prouva qu'ils avaient +compter sur la maintenance de l'entreprise. » La suite prouva qu'ils avaient absolument tort, mais c'est ce qu'ils ont fait.</p> <p>C'était exactement au moment où ils devaient recevoir un nouvel ordinateur, -le KL-10, et la question s'est alors posée : faut-il qu'il fonctionne avec -ITS ou bien Twenex, le système de Digital ? Une fois les hackers partis +le KL-10, et la question s'est alors posée : faut-il qu'il fonctionne avec +ITS ou bien Twenex, le système de Digital ? Une fois les hackers partis – ils auraient sans doute poussé à utiliser le leur – les universitaires ont choisi d'utiliser le logiciel commercial et cela eut plusieurs effets immédiats. Certains n'ont pas été vraiment immédiats, mais ils en ont @@ -290,14 +310,13 @@ quelqu'un a envoyé une demande d'assistance en utilisant Macsyma. Macsyma est un programme d'algèbre symbolique qui a été développé au MIT. Il a envoyé une demande d'assistance à l'une des personnes qui travaillait dessus et a obtenu une réponse quelques heures plus tard de la part de quelqu'un -d'autre. Il était horrifié. Il a envoyé le message suivant : « Untel doit +d'autre. Il était horrifié. Il a envoyé le message suivant : « Untel doit lire votre courrier, les fichiers de courrier ne sont peut-être pas -correctement protégés sur votre système ? » – « Naturellement, aucun dossier -n'est protégé sur notre système. Où est le problème ? Vous avez obtenu votre -réponse plus tôt, de quoi vous plaignez-vous ? Évidemment nous lisons le +correctement protégés sur votre système ? » – « Naturellement, aucun dossier +n'est protégé sur notre système. Où est le problème ? Vous avez obtenu votre +réponse plus tôt, de quoi vous plaignez-vous ? Évidemment nous lisons le courrier de tout le monde, comme ça nous pouvons tomber sur des personnes -comme vous et les aider. » Certaines personnes ne connaissent pas leur -bonheur.</p> +comme vous et les aider. » Certains ne connaissent pas leur bonheur.</p> <p>Bien sûr, Twenex n'est pas seulement muni d'une sécurité – et par défaut la sécurité est activée – mais il est également conçu en partant de l'hypothèse @@ -314,7 +333,7 @@ désactiver la sécurité de Twenex pour avoir ce qu'on voulait. Et il n'y avait plus les hackers pour faire les changements nécessaires à l'introduction de ces autres mécanismes. Aussi les gens ont-ils été obligés de travailler avec la sécurité. Et la machine était là depuis six mois à peu -près, quand il a commencé à y avoir quelques « coups d'État ». Au début nous +près, quand il a commencé à y avoir quelques « coups d'État ». Au début nous avons supposé que tous ceux qui travaillaient pour le labo allaient avoir le <i>wheel bit</i><a id="TransNote3-rev" href="#TransNote3"><sup>3</sup></a> qui leur donnerait les pleins pouvoirs pour désactiver la sécurité, mais @@ -332,9 +351,9 @@ peu partout. J'ai fouillé dans le moniteur pendant un moment et j'ai compris à la fin comment faire pour qu'il se charge et que je puisse le patcher. De sorte que j'ai pu bloquer le contrôle des mots de passe et ainsi redonner leur <i>wheel bit</i> à plein de gens. Puis j'ai laissé un message -système. Le nom de cette machine était OZ et le message disait : « Il y a eu +système. Le nom de cette machine était OZ et le message disait : « Il y a eu une nouvelle tentative de prise du pouvoir, jusqu'ici les forces -aristocratiques sont battues – <i>Radio Free OZ</i> (la radio libre d'Oz). » +aristocratiques sont battues – <i>Radio Free OZ</i> (la radio libre d'Oz). » Plus tard j'ai découvert que <i>Radio Free OZ</i> est l'une des expressions utilisées par le <i>Firesign Theater</i>. Je ne le savais pas à ce moment-là.</p> @@ -350,14 +369,14 @@ passe. Je dois toujours veiller à avoir un mot de passe aussi évident que possible et le dire à tout le monde. Puisque je ne crois pas qu'il soit vraiment souhaitable d'avoir une sécurité sur un ordinateur, je ne dois pas aider au maintien du régime de sécurité. Sur les systèmes qui le permettent, -j'utilise un « mot de passe vide » et sur des systèmes où cela n'est pas +j'utilise un « mot de passe vide » et sur des systèmes où cela n'est pas permis (où cela signifie que vous ne pouvez pas ouvrir de session de l'extérieur, des choses comme ça), j'utilise mon nom d'utilisateur comme mot de passe. C'est aussi évident que possible. Et quand les gens me font remarquer que de cette manière on peut ouvrir une session sous mon nom, je -réponds : « Oui, c'est ça l'idée, quelqu'un pourrait avoir besoin de +réponds : « Oui, c'est ça l'idée, quelqu'un pourrait avoir besoin de certaines données sur cette machine. Je veux m'assurer qu'elles ne se feront -pas avoir par la sécurité. »</p> +pas avoir par la sécurité. »</p> <p>Et une autre chose que je fais toujours, c'est de désactiver la protection sur mon répertoire et mes dossiers. Parce que de temps en temps j'y stocke @@ -365,11 +384,11 @@ des programmes utiles et s'il y a un bogue je veux que les gens puissent le corriger.</p> <p>Mais cette machine n'avait pas non plus été conçue pour gérer un phénomène -appelé « tourisme ». Le tourisme était une très vieille tradition du labo +appelé « tourisme ». Le tourisme était une très vieille tradition du labo d'IA qui allait avec nos autres conceptions de l'anarchie. Elle disait que nous devions laisser les gens de l'extérieur utiliser la machine. À l'époque où n'importe qui pouvait venir se connecter à ce qui lui plaisait, c'était -automatique : comme visiteur, vous pouviez ouvrir une session pour +automatique : comme visiteur, vous pouviez ouvrir une session pour travailler. Plus tard nous avons plus ou moins formalisé ça comme une tradition établie, particulièrement quand l'Arpanet s'est mis en place et que les gens ont commencé à se connecter à nos machines à partir de @@ -378,10 +397,10 @@ personnes apprendraient vraiment à programmer et qu'elles commenceraient à modifier le système d'exploitation. Si vous disiez ça à un administrateur système n'importe où ailleurs, il serait horrifié. Si vous lui proposiez l'idée que n'importe quel étranger puisse utiliser la machine, il -répondrait : « Et s'il commence à modifier nos programmes ? » Mais pour +répondrait : « Et s'il commence à modifier nos programmes ? » Mais pour nous, si un étranger commençait à modifier les programmes, cela signifiait qu'il montrait un intérêt réel à devenir un membre contributif de la -communauté. Nous encouragions toujours les gens à le faire ; à commencer, +communauté. Nous encouragions toujours les gens à le faire ; à commencer, naturellement, par écrire de nouveaux utilitaires, des petits. Nous jetions un œil sur ce qu'ils avaient fait et nous le corrigions. Ils en arrivaient alors à ajouter des fonctionnalités à de grands utilitaires existants. Et ce @@ -393,14 +412,14 @@ l'un après l'autre, ajoutent de nouvelles fonctionnalités.</p> des bâtiments extrêmement anciens avec des rajouts construits des centaines d'années plus tard, jusqu'à aujourd'hui. Dans le domaine de l'informatique, un programme qui a été commencé en 1965, c'est à peu près ça. Ainsi nous -espérions toujours que des touristes deviendraient mainteneurs du système ; +espérions toujours que des touristes deviendraient mainteneurs du système ; et peut-être qu'ensuite ils allaient être embauchés, après avoir commencé à travailler sur les programmes du système et nous avoir montré qu'ils étaient capables de faire du bon travail.</p> <p>Mais il y avait sur les machines ITS certains autres dispositifs qui aidaient à éviter que ça nous échappe. L'un d'entre eux était un dispositif -« espion » où tout le monde pouvait observer ce que chacun faisait. Et +« espion » où tout le monde pouvait observer ce que chacun faisait. Et naturellement les touristes adoraient espionner. Ils pensaient que c'était super. C'était un peu méchant, voyez-vous, mais le résultat, c'était que si un touriste commençait à faire un truc à problème, il y avait toujours @@ -418,10 +437,10 @@ la suite ils ne m'ont plus toléré, moi et mon mot de passe que tout le monde connaissait. Les touristes n'arrêtaient pas d'ouvrir des sessions sous mon nom, à deux ou trois à la fois, et ont commencé à vider mon compte. À ce moment-là de toute façon, je travaillais le plus souvent sur d'autres -machines ; si bien que finalement je l'ai abandonné et cessé à tout jamais +machines ; si bien que finalement je l'ai abandonné et cessé à tout jamais de le réactiver. C'est tout. Je ne me suis pas connecté sur cette machine -sous mon nom pendant… [à ce moment-là, RMS est interrompu par un -tonnerre d'applaudissements]</p> +sous mon nom pendant… <span>[À ce moment-là, RMS est interrompu par +un tonnerre d'applaudissements.]</span></p> <p>Quand ils ont installé le système Twenex, ils avaient à l'esprit d'y faire plusieurs changements, des changements dans le fonctionnement de la @@ -438,23 +457,23 @@ moyens de les attirer. Et de nos jours au MIT, il y a davantage de gens que ça intéresse de hacker ITS que Twenex.</p> <p>La dernière raison de cet état de fait, c'est que Twenex ne pouvait pas être -partagé. Twenex est un programme propriétaire : vous n'avez le droit d'avoir +partagé. Twenex est un programme propriétaire : vous n'avez le droit d'avoir les sources que si vous les gardez secrètes par des moyens très déplaisants. Et ça leur donne mauvais goût, à moins d'être inconscient comme le sont certains en informatique (il y en a qui feront n'importe quoi si c'est amusant pour eux et ne penseront pas une minute à coopérer avec qui -que ce soit ; mais il faut être franchement ailleurs pour ne pas remarquer à +que ce soit ; mais il faut être franchement ailleurs pour ne pas remarquer à quel point c'est triste de travailler comme ça sur un programme, comme c'est décourageant). Et comme si ce n'était pas suffisant, chaque année ils vous donnent une nouvelle version remplie d'une cinquantaine de milliers de lignes de code supplémentaires, toutes écrites par des singes. Parce qu'ils -suivent généralement une école de programmation système du genre « un +suivent généralement une école de programmation système du genre « un million de singes tapant sur une machine à écrire finiront bien un jour par -sortir quelque chose d'utile ».</p> +sortir quelque chose d'utile ».</p> <p>Il était clair pour moi, après avoir vu ce qui arrivait à ces systèmes propriétaires, que la seule façon de conserver l'esprit du vieux labo d'IA -était d'avoir un système d'exploitation libre ; d'avoir un système fait de +était d'avoir un système d'exploitation libre ; d'avoir un système fait de logiciel libre pouvant être partagé avec n'importe qui, de façon à pouvoir inviter tout le monde à collaborer à son amélioration. Et c'est ce qui a conduit au projet GNU. Ainsi j'estime que nous sommes arrivés à la deuxième @@ -463,7 +482,7 @@ partie de la conférence.</p> <p>Il y a environ trois ans et demi, il m'est apparu comme une évidence que je devais commencer à développer un système constitué de <a href="/philosophy/free-sw.html">logiciel libre</a>. J'envisageais deux types -de systèmes : le premier, pratiquement identique au système de machine Lisp +de systèmes : le premier, pratiquement identique au système de machine Lisp du MIT, mais libre et fonctionnant sur tout type de matériel, pas seulement sur les machines Lisp spécialisées, et l'autre, un logiciel d'exploitation plus conventionnel. Et il était clair pour moi que si je faisais un logiciel @@ -477,7 +496,7 @@ pour obtenir à la fois une bonne vitesse d'exécution et une détection robuste des erreurs pendant le temps d'exécution, en particulier les erreurs sur le type des données. Pour qu'un système Lisp puisse fonctionner assez rapidement sur du matériel ordinaire, on doit commencer par faire des -suppositions, supposer que tel argument est du type voulu ; ensuite, si ce +suppositions, supposer que tel argument est du type voulu ; ensuite, si ce n'est pas le cas, le système se plante.</p> <p>Naturellement on peut mettre des contrôles explicites, on peut écrire un @@ -491,7 +510,7 @@ garder le système en état de marche et de déboguer les problèmes éventuels. J'en suis arrivé à la conclusion que si je devais avoir un système d'exploitation de bas niveau, je pouvais tout aussi bien faire un bon système d'exploitation – le choix était entre un système d'exploitation -plus le Lisp, et juste un système d'exploitation ; donc je devais faire le +plus le Lisp, et juste un système d'exploitation ; donc je devais faire le système d'exploitation d'abord et le rendre compatible avec Unix. Enfin, quand j'ai réalisé que je pouvais utiliser le plus drôle des mots anglais pour nommer ce système, le choix était clair. Et ce mot est bien sûr GNU, @@ -513,11 +532,11 @@ Compiler Kit</i>, qui était intéressant, et j'ai pensé qu'avec un nom pareil je pourrais peut-être l'avoir.<a id="TransNote5-rev" href="#TransNote5"><sup>5</sup></a> Alors j'ai envoyé un message à son développeur en lui demandant s'il acceptait de le donner au projet GNU. Et -il a dit « Non, l'université est peut-être libre, mais le logiciel qu'elle -développe ne l'est pas », mais il a ajouté qu'il voulait aussi avoir un +il a dit « Non, l'université est peut-être libre, mais le logiciel qu'elle +développe ne l'est pas », mais il a ajouté qu'il voulait aussi avoir un système compatible avec Unix et qu'il voulait écrire une sorte de noyau pour lui, alors pourquoi est-ce que je n'écrirais pas les utilitaires, comme ça -les deux pourraient être distribués avec son compilateur propriétaire ? Ça +les deux pourraient être distribués avec son compilateur propriétaire ? Ça encouragerait les gens à l'acheter. J'ai pensé que c'était ignoble, alors je lui ai dit que mon premier projet serait de faire un compilateur.</p> @@ -525,23 +544,23 @@ lui ai dit que mon premier projet serait de faire un compilateur.</p> compilateurs à cette époque parce que je n'avais jamais travaillé dessus. Mais j'ai mis la main sur un compilateur dont on m'avait dit qu'il était libre. C'était un compilateur appelé Pastel dont les auteurs disaient -que c'était du « Pascal mal fichu ».</p> +que c'était du « Pascal mal fichu ».</p> <p>Le Pastel est un langage très compliqué comprenant des fonctionnalités comme des types paramétrés et des paramètres de types explicites et beaucoup de choses compliquées. Le compilateur naturellement était écrit dans ce langage et comportait nombre de fonctionnalités compliquées pour optimiser -l'utilisation de ces éléments. Par exemple : le type <i>string</i> dans ce -langage était un type paramétré ; vous pouviez dire <code>string(n)</code> -si vous vouliez une chaîne d'une longueur particulière ; vous pouviez +l'utilisation de ces éléments. Par exemple : le type <i>string</i> dans ce +langage était un type paramétré ; vous pouviez dire <code>string(n)</code> +si vous vouliez une chaîne d'une longueur particulière ; vous pouviez également juste dire <code>string</code>, et le paramètre était déterminé à partir du contexte. Cela dit, les chaînes sont très importantes et sont nécessaires à beaucoup de constructions qui les utilisent pour fonctionner rapidement. Et ça veut dire qu'on avait besoin de beaucoup de -fonctionnalités pour détecter des choses comme : lorsque la longueur +fonctionnalités pour détecter des choses comme : lorsque la longueur déclarée d'une chaîne est un argument dont on sait qu'il est constant dans toute la fonction, sauvegarder la valeur et optimiser le code qu'elle va -produire ; beaucoup de choses compliquées. Mais j'ai pu voir dans ce +produire ; beaucoup de choses compliquées. Mais j'ai pu voir dans ce compilateur comment procéder à l'allocation automatique de registre et glaner quelques idées sur la façon de gérer différents types de machines.</p> @@ -551,13 +570,13 @@ d'ajouter une sortie pour le 68000 qui devait être ma première cible. Mais j'allais vers un sérieux problème. Puisque le langage Pastel était conçu de manière à ne pas avoir besoin de déclarer quoi que ce soit avant de l'utiliser, la déclaration d'une variable et son usage pouvaient se faire -dans n'importe quel ordre ; en d'autres termes, la déclaration +dans n'importe quel ordre ; en d'autres termes, la déclaration <code>forward</code> du Pascal était obsolète. Pour cette raison il fallait lire le programme dans son intégralité, le garder en mémoire centrale <i>[core]</i> et le compiler d'une traite. Le résultat, c'était que le stockage intermédiaire utilisé par le compilateur, ou plutôt la taille de la mémoire requise, était proportionnel à la taille de votre fichier. Et il -fallait aussi compter avec l'espace de pile ; vous aviez besoin d'une +fallait aussi compter avec l'espace de pile ; vous aviez besoin d'une quantité gigantesque d'espace de pile. J'en ai conclu que le système 68000 dont je disposais ne pouvait pas faire fonctionner ce compilateur. Car c'était une horrible version d'Unix qui vous limitait à quelque chose comme @@ -611,8 +630,8 @@ immédiatement pour pouvoir réaliser mon projet. J'avais déjà pensé auparavant à remplacer éventuellement Mocklisp par le vrai Lisp, mais ce que j'ai découvert, c'est qu'il fallait le faire dès le début. Maintenant, la raison pour laquelle Mocklisp s'appelle <i>mock</i> (faux), c'est qu'il n'a -aucune sorte de structure pour les types de données : il n'y a pas les -listes Lisp ; il n'y a aucune sorte de tableau ; il n'y a pas non plus les +aucune sorte de structure pour les types de données : il n'y a pas les +listes Lisp ; il n'y a aucune sorte de tableau ; il n'y a pas non plus les symboles Lisp, qui sont des objets nommés (à chaque nom particulier correspond un seul objet de manière que la saisie du nom se rapporte toujours au même objet, sinon ça entrave considérablement l'écriture de pas @@ -634,7 +653,7 @@ me faire réécrire à peu près tout ce qu'il y avait dans l'éditeur.</p> <p>En outre, du fait qu'il est vraiment difficile d'écrire en Mocklisp, rien n'était écrit proprement. Et en le réécrivant, je pouvais tirer profit de la -puissance du vrai Lisp ; je pouvais rendre tout ça beaucoup plus puissant, +puissance du vrai Lisp ; je pouvais rendre tout ça beaucoup plus puissant, beaucoup plus simple et rapide. C'est ce que j'ai fait. Et quand j'ai commencé à distribuer le programme, il ne restait qu'une petite partie de ce que j'avais reçu.</p> @@ -646,7 +665,7 @@ a nié lui avoir donné cette permission. Une chose étrange s'est alors produite. Il était en pourparlers avec cette société qui semblait surtout vouloir éviter qu'il ne distribue quelque chose d'analogue à ce qu'elle-même distribuait. Voyez-vous, Gosling continuait à distribuer ce qu'il m'avait -donné et la société pour laquelle il travaillait, Megatest, également ; il +donné et la société pour laquelle il travaillait, Megatest, également ; il s'agissait en réalité d'une ancienne version de l'Emacs de Gosling, avec ses modifications. Il allait donc faire un accord avec eux dans lequel il cesserait de le distribuer, et passer ensuite à GNU Emacs. Ils @@ -668,12 +687,12 @@ propriétaires couverts par le secret industriel et de commencer à en distribuer des copies à tous les coins de rue, ce qui les ferait sortir du secret. Peut-être que ce serait une manière beaucoup plus efficace de fournir aux gens de nouveaux logiciels libres, que de les écrire -effectivement moi-même ; mais tout le monde serait trop lâche pour ne +effectivement moi-même ; mais tout le monde serait trop lâche pour ne serait-ce qu'y toucher.)</p> <p>Donc ça m'a obligé à réécrire tout ce qui restait qui n'était pas de moi, ce que j'ai fait. Il m'a fallu environ une semaine et demie. Quelle victoire -pour eux ! Il était certain qu'après ça ils n'obtiendraient jamais plus +pour eux ! Il était certain qu'après ça ils n'obtiendraient jamais plus aucune collaboration de ma part.</p> <p>Une fois que GNU Emacs a été raisonnablement stable – ce qui m'a pris @@ -685,7 +704,7 @@ l'Unix de Berkeley. Les commandes se composent d'un mot indiquant ce que vous voulez faire, suivi des arguments. Dans ce programme, toutes les commandes peuvent être abrégées. Les commandes courantes ont des abréviations d'un seul caractère, mais toute abréviation d'un seul caractère -est permise. La fonction « aide » est très fournie : vous pouvez taper +est permise. La fonction « aide » est très fournie : vous pouvez taper <code>help</code> suivi de n'importe quelle commande, y compris des commandes secondaires, et vous obtenez une description complète de la façon de l'utiliser. Naturellement vous pouvez taper n'importe quelle expression @@ -696,23 +715,23 @@ symbolique. Par exemple, vous pouvez vous référer à n'importe quel type de donnée C à n'importe quelle adresse de mémoire pour en examiner la valeur ou pour lui affecter une valeur. Supposons que vous vouliez stocker un nombre en virgule flottante dans un mot à une certaine adresse. Vous devez juste -dire : « Donne-moi l'objet de type <i>float</i> ou <i>double</i> à cette -adresse et ensuite affecte-lui cette valeur. » Une autre chose que vous +dire : « Donne-moi l'objet de type <i>float</i> ou <i>double</i> à cette +adresse et ensuite affecte-lui cette valeur. » Une autre chose que vous pouvez faire est d'examiner toutes les valeurs qui ont été examinées -auparavant. Chaque valeur examinée se place sur la pile de l'« historique -des valeurs ». Vous pouvez vous référer à n'importe quel élément par sa +auparavant. Chaque valeur examinée se place sur la pile de l'« historique +des valeurs ». Vous pouvez vous référer à n'importe quel élément par sa position dans l'historique, ou bien vous pouvez facilement vous référer au dernier élément, juste avec le signe dollar. Ça facilite le suivi de la structure des listes. Si une structure C quelconque contient un pointeur vers une autre structure, vous pouvez faire quelque chose comme -<code>print*$.next</code> qui veut dire : « Prends le champ suivant dans la +<code>print*$.next</code> qui veut dire : « Prends le champ suivant dans la dernière chose que tu m'as montrée, puis affiche la structure sur laquelle -il pointe ». En répétant cette commande, on voit l'une après l'autre les +il pointe ». En répétant cette commande, on voit l'une après l'autre les structures sur lesquelles pointe la liste, alors qu'avec chacun des autres débogueurs C que j'ai vus, la seule manière de faire ça est de taper une commande de plus en plus longue. Et quand c'est combiné à une fonctionnalité -qui fait qu'« Entrée » rappelle la dernière commande, ça devient très -pratique. Vous avez juste à taper « Entrée » pour chaque élément de la liste +qui fait qu'« Entrée » rappelle la dernière commande, ça devient très +pratique. Vous avez juste à taper « Entrée » pour chaque élément de la liste que vous voulez voir.</p> <p>Vous pouvez aussi définir des variables de façon explicite dans le @@ -725,8 +744,8 @@ souvenir de son numéro dans l'historique vous pouvez lui donner un nom. Vous pouvez aussi utiliser ces variables quand vous placez des paliers <i>[breakpoints]</i> conditionnels. Les paliers conditionnels sont une fonctionnalité qui existe dans beaucoup de débogueurs symboliques. Vous -dites : « Fais une pause quand tu seras arrivé à cet endroit du programme, -mais seulement si une certaine expression est vraie. » Les variables du +dites : « Fais une pause quand tu seras arrivé à cet endroit du programme, +mais seulement si une certaine expression est vraie. » Les variables du débogueur vous permettent de comparer une variable du programme à sa précédente valeur sauvegardée dans la variable du débogueur. Une autre chose à laquelle elles peuvent servir, c'est à compter. Parce qu'après tout, les @@ -735,40 +754,39 @@ faire <code>$foo+=5</code> pour incrémenter la valeur <code>$foo</code> de 5, ou juste <code>$foo++</code>. Vous pouvez également le faire lors d'un palier conditionnel. Une manière économe de faire une pause dans le programme la dixième fois que le palier est atteint, serait de faire -<code>$foo--==0</code>. Est-ce que tout le monde suit ? Faire décroître -<code>foo</code> et une fois qu'il est à zéro, pause. Vous faites démarrer -<code>$foo</code> au nombre de boucles que vous voulez qu'il saute et vous -le lâchez. Vous pouvez aussi utiliser ça pour examiner les éléments d'un -tableau. Supposez que vous ayez un tableau de pointeurs, vous pouvez faire :</p> - -<pre>print X[$foo++]</pre> - -<p>mais d'abord vous faites</p> - -<pre>set $foo=0</pre> - -<p>OK, quand vous faites ça [il montre l'expression <code>print</code>], vous -obtenez l'élément zéro de X et quand vous le faites à nouveau, il atteint le -premier élément. Supposez que ce soient des pointeurs vers des structures, -alors vous mettez probablement un astérisque là [avant le X dans -l'expression <code>print</code>] et à chaque fois, il affiche la structure -sur laquelle pointe l'élément suivant du tableau. Et bien sûr vous pouvez -répéter cette commande en tapant « Entrée ». Si ce n'est pas suffisant de -répéter une seule chose, vous pouvez créer une « commande -utilisateur ». Vous pouvez dire <code>define mumble</code>, vous mettez -quelques lignes de commandes puis <code>end</code>. Vous venez ainsi de -définir une commande <code>mumble</code> qui exécutera ces lignes. Et il est -très utile de mettre ces définitions dans un fichier de commandes. Vous -pouvez avoir un fichier de commandes dans chaque répertoire qui sera chargé -automatiquement en tant que répertoire actif lorsque vous lancerez le -débogueur. Ainsi pour chaque programme, vous pouvez définir un ensemble de -commandes utilisateur pour accéder efficacement aux structures. Vous pouvez -même fournir de la documentation pour vos commandes, de façon qu'elles -soient traitées par la fonction <code>help</code> comme des commandes -intégrées.</p> +<code>$foo--==0</code>. Est-ce que tout le monde suit ? Faire décroître foo +et une fois qu'il est à zéro, pause. Vous faites démarrer <code>$foo</code> +au nombre de boucles que vous voulez qu'il saute et vous le lâchez. Vous +pouvez aussi utiliser ça pour examiner les éléments d'un tableau. Supposez +que vous ayez un tableau de pointeurs, vous pouvez faire :</p> + +<pre><code>PRINT X[$foo++]</code></pre> + +<p>Mais d'abord vous faites</p> + +<pre><code>SET $foo=0</code></pre> + +<p>OK, quand vous faites ça [il montre l'expression PRINT], vous obtenez +l'élément zéro de X et quand vous le faites à nouveau, il atteint le premier +élément. Supposez que ce soient des pointeurs vers des structures, alors +vous mettez probablement un astérisque là [avant le X dans l'expression +PRINT] et à chaque fois, il affiche la structure sur laquelle pointe +l'élément suivant du tableau. Et bien sûr vous pouvez répéter cette commande +en tapant « Entrée ». Si ce n'est pas suffisant de répéter une seule chose, +vous pouvez créer une « commande utilisateur ». Vous pouvez dire +<code>define mumble</code>, vous mettez quelques lignes de commandes puis +<code>end</code>. Vous venez ainsi de définir une commande +<code>mumble</code> qui exécutera ces lignes. Et il est très utile de mettre +ces définitions dans un fichier de commandes. Vous pouvez avoir un fichier +de commandes dans chaque répertoire qui sera chargé automatiquement en tant +que répertoire actif lorsque vous lancerez le débogueur. Ainsi pour chaque +programme, vous pouvez définir un ensemble de commandes utilisateur pour +accéder efficacement aux structures. Vous pouvez même fournir de la +documentation pour vos commandes, de façon qu'elles soient traitées par la +fonction <code>help</code> comme des commandes intégrées.</p> <p>Une autre chose peu habituelle dans ce débogueur, c'est la capacité -d'écarter des cadres <i>[frames]</i> de la pile ; parce que je crois que +d'écarter des cadres <i>[frames]</i> de la pile ; parce que je crois que c'est important, non seulement pour pouvoir examiner ce qui se produit dans le programme que vous déboguez, mais aussi pour le modifier de toutes les façons possibles. De sorte qu'après avoir trouvé un problème et avoir @@ -777,39 +795,39 @@ correct et trouver le prochain bogue sans avoir d'abord à recompiler le programme. Cela signifie non seulement pouvoir changer en souplesse les zones de données de votre programme, mais également changer le flux de contrôle. Dans ce débogueur, vous pouvez changer le flux de contrôle très -directement en disant :</p> +directement en disant :</p> -<pre>set $PC=<un certain nombre></pre> +<pre><code>SET $PC=<un certain nombre></code></pre> <p>Ainsi vous pouvez positionner le compteur ordinal <i>[program counter]</i>. Vous pouvez également positionner le pointeur de pile <i>[stack pointer]</i>, ou bien vous pouvez dire</p> -<pre>set $SP+=<quelque_chose></pre> +<pre><code>SET $SP+=<quelque_chose></code></pre> <p>si vous voulez incrémenter le pointeur de pile d'une certaine quantité. Mais en outre, vous pouvez également lui dire de démarrer sur une ligne -particulière du programme ; vous pouvez placer le compteur ordinal à une +particulière du programme ; vous pouvez placer le compteur ordinal à une ligne particulière du code source. Mais que se passe-t-il si vous constatez que vous avez appelé une fonction par erreur et que vous ne vouliez pas -appeler cette fonction du tout ? Vous vous dites que cette fonction est trop +appeler cette fonction du tout ? Vous vous dites que cette fonction est trop merdique, que vous voulez vraiment en sortir et faire à la main ce qu'elle devait faire. Pour cela, vous pouvez utiliser la commande -<code>return</code>. Vous sélectionnez un cadre de la pile et vous dites -<code>return</code>. Et ça va faire que ce cadre, et tous ceux qui sont à +<code>RETURN</code>. Vous sélectionnez un cadre de la pile et vous dites +<code>RETURN</code>. Et ça va faire que ce cadre, et tous ceux qui sont à l'intérieur, seront abandonnés comme si cette fonction renvoyait instantanément sa valeur. Vous pouvez aussi spécifier la valeur qu'elle doit -renvoyer. Ça ne poursuit pas l'exécution ; ça fait comme si la valeur était -renvoyée et le programme s'arrête à nouveau ; vous pouvez ainsi continuer de +renvoyer. Ça ne poursuit pas l'exécution ; ça fait comme si la valeur était +renvoyée et le programme s'arrête à nouveau ; vous pouvez ainsi continuer de modifier autre chose.</p> <p>Et si vous combinez tout ça, vous avez pas mal de contrôle sur ce qui se passe dans un programme.</p> -<p>Une autre chose assez amusante : C a des constantes qui sont des chaînes de -caractères <i>[string constants]</i> ; que se passe-t-il si vous utilisez +<p>Une autre chose assez amusante : C a des constantes qui sont des chaînes de +caractères <i>[string constants]</i> ; que se passe-t-il si vous utilisez une constante de ce type dans une expression que vous calculez dans le -débogueur ? Il faut qu'il crée une chaîne dans le programme que vous +débogueur ? Il faut qu'il crée une chaîne dans le programme que vous déboguez. Eh bien, c'est ce qu'il fait. Il crée un appel à <code>malloc</code> dans le programme débogué, laisse tourner <code>malloc</code>, puis reprend la main. Ainsi il trouve de façon @@ -820,12 +838,12 @@ d'y installer des fonctionnalités pour examiner l'ensemble des états internes du processus tournant en dessous de lui. Par exemple pour examiner l'état de la topographie mémoire, pour savoir quelles pages existent, si elles sont lisibles, si elles sont inscriptibles, et pour examiner l'état du -terminal pour le programme inférieur. Il y a déjà l'ébauche d'une commande ; +terminal pour le programme inférieur. Il y a déjà l'ébauche d'une commande ; ce débogueur, à la différence des débogueurs sous Unix, garde l'état du terminal du débogueur et celui du programme que vous déboguez complètement séparés. De sorte que ça marche avec les programmes qui tournent en mode brut et avec ceux qui font des interruptions d'entrées dynamiques -<i>[interrupt driven input]</i> ; et il y a également une commande qui vous +<i>[interrupt driven input]</i> ; et il y a également une commande qui vous permet d'apprendre quelque chose sur les réglages des terminaux que le programme que vous déboguez utilise réellement. Je crois qu'en général un débogueur doit vous permettre de découvrir tout qui se passe dans le @@ -837,21 +855,21 @@ nouveau compilateur C et l'autre le noyau Trix.</p> <p>J'ai commencé à écrire le nouveau compilateur C cette année, au printemps dernier. J'ai finalement décidé que je devais me passer de Pastel. Ce compilateur utilise quelques idées de Pastel et quelques idées de -« l'optimiseur portable de l'université d'Arizona » <i>[University of +« l'optimiseur portable de l'université d'Arizona » <i>[University of Arizona Portable Optimizer]</i>. Ce que ce dernier a d'intéressant, c'est de gérer plusieurs types différents de machines par des instructions simples et d'ensuite combiner plusieurs instructions simples dans une seule instruction compliquée quand la machine cible le permet. Pour que cela reste uniforme, ils représentent les instructions en notation algébrique. Par exemple, -l'instruction <code>add</code> peut être représentée comme ceci :</p> +l'instruction <code>add</code> peut être représentée comme ceci :</p> <pre> - r[3]=r[2]+4 + <code>r[3]=r[2]+4</code> </pre> -<p>C'est une représentation interne au compilateur de l'instruction « prendre +<p>C'est une représentation interne au compilateur de l'instruction « prendre le contenu du registre n°2, y ajouter 4 et le stocker dans le registre -n°3 ». De cette façon vous pouvez représenter n'importe quelle +n°3 ». De cette façon vous pouvez représenter n'importe quelle instruction pour n'importe quelle machine. C'est donc comme ça qu'ils représentent toutes les instructions. Quand vient le moment d'essayer de les combiner, ils le font en substituant une expression dans une autre, ce qui @@ -859,11 +877,11 @@ donne pour l'instruction combinée une expression algébrique plus compliquée.< <p>Quelquefois, suivant que le résultat de la première instruction est utile par la suite, ou pas, il peut être nécessaire de faire une instruction -combinée avec deux opérateurs d'affectation <i>[assignment]</i> : un pour -cette valeur [il montre ???] et un autre pour cette valeur [il montre ???] à +combinée avec deux opérateurs d'affectation <i>[assignment]</i> : un pour +cette valeur [il montre ???] et un autre pour cette valeur [il montre ???] à l'intérieur de laquelle est substitué ce qui provient de la deuxième instruction. Si cette valeur n'est utilisée qu'une fois, vous pouvez -l'éliminer après l'avoir substituée ; elle n'a pas à entrer dans d'autres +l'éliminer après l'avoir substituée ; elle n'a pas à entrer dans d'autres calculs. Donc c'est vraiment assez compliqué de faire ces substitutions correctement, en vérifiant bien que les instructions intermédiaires ne vont changer aucune de ces valeurs, ni rien d'autre du même genre. Quand vous @@ -886,26 +904,26 @@ lent. Au début j'avais l'idée de l'utiliser et d'y apporter des modifications, mais j'ai compris que je devais le réécrire entièrement pour obtenir la rapidité que je voulais. En le réécrivant, j'ai fait en sorte de pouvoir utiliser des représentations de structure de liste pour toutes ces -expressions ; des choses comme ceci :</p> +expressions ; des choses comme ceci :</p> <pre> - (set (reg 2) - (+ (reg 2) - (int 4))) + <code>(set (reg 2)</code> + <code>(+ (reg 2)</code> + <code>(int 4)))</code> </pre> <p>Ça ressemble un peu à du Lisp mais la sémantique n'est pas tout à fait la même, parce que chaque symbole est ici identifié individuellement. Un ensemble fixe, particulier de ces symboles est défini, tous ceux dont vous avez besoin, chacun ayant une combinaison particulière de types -d'arguments. Pour « reg » par exemple, c'est toujours un nombre entier, -parce que les registres sont numérotés, mais « + » prend deux -sous-expressions, et ainsi de suite. Et chacune de ces expressions a aussi -un type de données qui, en gros, indique s'il est fixe ou flottant et +d'arguments. Pour <code>reg</code> par exemple, c'est toujours un nombre +entier, parce que les registres sont numérotés, mais <code>+</code> prend +deux sous-expressions, et ainsi de suite. Et chacune de ces expressions a +aussi un type de données qui, en gros, indique s'il est fixe ou flottant et combien d'octets il occupe. Ça peut être étendu pour manipuler d'autres choses si vous en avez besoin.</p> -<p>Voilà comment je fais l'allocation automatique de registre : au moment où je +<p>Voilà comment je fais l'allocation automatique de registre : au moment où je génère initialement le code, et quand je fais la combinaison et le reste, pour toute variable qui entre théoriquement dans un registre j'alloue ce que j'appelle un pseudo-numéro de registre. C'est un nombre qui commence à @@ -926,10 +944,10 @@ pile. Sur certaines machines, des instructions peuvent devenir invalides quand ça arrive. Par exemple sur le 68000, on peut ajouter depuis un registre dans la mémoire et ajouter depuis la mémoire dans un registre mais pas ajouter depuis une adresse mémoire vers une autre. Par exemple, si lors -d'une instruction <code>add</code> vous sortez vers un 68000 et que les deux -éléments se retrouvent dans la mémoire, ce n'est pas valide. Donc ce dernier -passage examine le tout et copie au besoin des éléments dans les registres -ou en dehors des registres, pour corriger ce genre de problème.</p> +d'une instruction ADD vous sortez vers un 68000 et que les deux éléments se +retrouvent dans la mémoire, ce n'est pas valide. Donc ce dernier passage +examine le tout et copie au besoin des éléments dans les registres ou en +dehors des registres, pour corriger ce genre de problème.</p> <p>Des problèmes peuvent également survenir avec les registres d'index. Si vous essayez d'indexer par quelque chose, la plupart du temps le code deviendra @@ -948,24 +966,24 @@ pleinement efficace.</p> transforme efficacement le code C en arbre syntaxique, annoté d'informations sur le type de données C. Après ça, un autre passage examine cet arbre et produit du code comme celui-là [comme du Lisp]. Ensuite viennent plusieurs -passages d'optimisation : un pour traiter par exemple les sauts à travers -des sauts, les sauts aboutissant à des sauts, les sauts à .+1 et tout ce qui -peut être immédiatement simplifié ; puis la reconnaissance des -sous-expressions communes ; puis la recherche des blocs de base et l'analyse -du flux de données, afin de pouvoir indiquer pour chaque instruction quelles -valeurs sont utilisées dans l'instruction et nulle part ailleurs ; et aussi -la liaison entre chaque instruction et les endroits où les valeurs utilisées -ont été créées. Ainsi, quand j'ai une instruction qui crée un -pseudo-registre R[28] et une autre instruction plus tard qui utilise R[28], -sachant que c'est le premier endroit qui utilise R[28], je fais pointer la -seconde en arrière sur la première et ce pointeur est celui qui servira pour -contrôler les essais de combinaison des instructions. Vous ne combinez pas -des instructions adjacentes, vous combinez une instruction qui utilise une -valeur avec l'instruction qui a produit cette valeur. Même s'il y a d'autres -instructions au milieu, elles ne sont pas concernées ; vous avez juste à -vous assurer qu'elles n'interviennent pas. Et après le combinateur vient -l'allocateur dynamique de registres, et enfin quelque chose pour faire la -conversion en code assembleur.</p> +passages d'optimisation : un pour traiter par exemple les sauts à travers +des sauts, les sauts aboutissant à des sauts, les sauts à <code>.+1</code> +et tout ce qui peut être immédiatement simplifié ; puis la reconnaissance +des sous-expressions communes ; puis la recherche des blocs de base et +l'analyse du flux de données, afin de pouvoir indiquer pour chaque +instruction quelles valeurs sont utilisées dans l'instruction et nulle part +ailleurs ; et aussi la liaison entre chaque instruction et les endroits où +les valeurs utilisées ont été créées. Ainsi, quand j'ai une instruction qui +crée un pseudo-registre R[28] et une autre instruction plus tard qui utilise +R[28], sachant que c'est le premier endroit qui utilise R[28], je fais +pointer la seconde en arrière sur la première et ce pointeur est celui qui +servira pour contrôler les essais de combinaison des instructions. Vous ne +combinez pas des instructions adjacentes, vous combinez une instruction qui +utilise une valeur avec l'instruction qui a produit cette valeur. Même s'il +y a d'autres instructions au milieu, elles ne sont pas concernées ; vous +avez juste à vous assurer qu'elles n'interviennent pas. Et après le +combinateur vient l'allocateur dynamique de registres, et enfin quelque +chose pour faire la conversion en code assembleur.</p> <p>Dans le compilateur d'Arizona, le système de reconnaissance d'instructions a été créé avec Lex. La description de votre machine est simplement un @@ -992,7 +1010,7 @@ fait un autre choix, une étape ultérieure aurait été assez intelligente pour faire encore mieux. Mais l'étape précoce ne sait pas ce que l'étape ultérieure va faire, donc je dois retravailler certaines choses.</p> -<p>Parfois ça lui fait libérer des registres inutilement : quand des choses +<p>Parfois ça lui fait libérer des registres inutilement : quand des choses atterrissent dans la mémoire et qu'il a besoin de les copier dans des registres, il faut qu'il trouve des registres. Cela veut dire prendre des registres déjà alloués et virer les données temporaires des <i>slots</i> de @@ -1002,9 +1020,9 @@ lui faut tout le temps vérifier. Parfois il pense à tort qu'il devrait copier des choses dans les registres, alors il arrive qu'il en libère trop et n'utilise pas tous les registres qu'il pourrait.</p> -<p>(Question : Avez-vous un générateur de code pour le 32000 ?)<br/><br/> -Pas encore, mais je le répète, ce n'est pas un générateur de code dont vous -avez besoin, juste une description de machine, une liste de toutes les +<p><span>[Question : Avez-vous un générateur de code pour le 32000 ?]</span>Pas +encore, mais je le répète, ce n'est pas un générateur de code dont vous avez +besoin, juste une description de machine, une liste de toutes les instructions de la machine décrites sous cette forme [comme du Lisp]. En fait, hormis le travail d'implémenter l'idée des contraintes qui déterminent quels arguments peuvent aller dans les registres et dans quelles sortes de @@ -1015,19 +1033,19 @@ jours. Donc il est très facile à porter.</p> <p>Le compilateur produit actuellement du code assembleur et il peut produire de l'information de débogage, soit dans le format voulu par DBX, soit dans le format interne spécial à GDB. Je dirais que le seul travail qui reste à -faire sur ce compilateur se situe à trois niveaux. Un : Je dois ajouter un -dispositif de « profilage » comme celui des compilateurs d'Unix. Deux : Je +faire sur ce compilateur se situe à trois niveaux. Un : Je dois ajouter un +dispositif de « profilage » comme celui des compilateurs d'Unix. Deux : Je dois rendre les allocations de registre plus intelligentes pour ne plus voir -de choses stupides apparaître en sortie. Trois : Il y a divers bogues, des +de choses stupides apparaître en sortie. Trois : Il y a divers bogues, des choses qu'il ne traite pas encore correctement bien qu'il se soit compilé correctement. Je pense que ça ne prendra que quelques mois, ensuite je le publierai.</p> -<p>L'autre partie importante du système existant, c'est le noyau. (Question : -Une pause ?) Ah, ouais, je suppose que nous avons oublié les -coupures. Pourquoi est-ce que je ne finirais pas de parler du noyau, ce qui -ne devrait pas prendre plus de cinq minutes ? Ensuite nous pourrons faire -une coupure.</p> +<p>L'autre partie importante du système existant, c'est le +noyau. <span>[Question : Une pause ?]</span> Ah, ouais, je suppose que nous +avons oublié les coupures. Pourquoi est-ce que je ne finirais pas de parler +du noyau, ce qui ne devrait pas prendre plus de cinq minutes ? Ensuite nous +pourrons faire une coupure.</p> <p>Donc, pour le noyau je projette d'utiliser un système appelé TRIX (cela ne signifie rien de spécial, que je sache) qui a été développé comme projet de @@ -1035,7 +1053,7 @@ recherche au MIT. Ce système est basé sur l'appel de procédure à distance <i>[Remote Procedure Call]</i>. Les programmes sont appelés domaines. Chaque domaine est un espace d'adressage et a diverses capacités, une capacité n'étant rien d'autre que l'aptitude à appeler un domaine. Tout domaine peut -créer des « ports de capacité » <i>[capability ports]</i> pour l'appeler et +créer des « ports de capacité » <i>[capability ports]</i> pour l'appeler et peut passer ces ports aux autres domaines. Et il n'y a aucune différence entre appeler le système et appeler un autre domaine utilisateur. En fait vous ne pouvez pas dire lequel vous avez. Ainsi il est très facile de faire @@ -1055,13 +1073,13 @@ rendait plus facile le débogage parce qu'ils pouvaient installer les fichiers avec Unix et donc faire fonctionner TRIX, mais ce système de fichiers n'a aucune des fonctionnalités que je trouve nécessaires.</p> -<p>Voilà les fonctionnalités qui, je pense, devraient être rajoutées : des +<p>Voilà les fonctionnalités qui, je pense, devraient être rajoutées : des numéros de version, la restauration des fichiers effacés, les informations sur quand, comment et où le dossier a été sauvegardé sur bande, le remplacement nucléaire des fichiers. Ce qui est bien dans Unix, d'après moi, c'est que lorsqu'un fichier est en cours d'écriture, on peut déjà regarder ce qui se passe. Ainsi par exemple, vous pouvez utiliser <code>tail</code> -pour voir où ça en est ; c'est vraiment sympa. Et si le programme se plante +pour voir où ça en est ; c'est vraiment sympa. Et si le programme se plante après avoir écrit le fichier partiellement, vous pouvez voir ce qu'il a fait. Tout ça c'est très bien, mais le résultat partiellement écrit ne doit jamais être considéré comme le résultat final escompté. La version @@ -1081,13 +1099,14 @@ version si vous le spécifiez normalement. Et si vous souhaitez le faire de façon explicite – soit parce que vous voulez déclarer explicitement quelle version utiliser, soit parce que vous ne voulez pas de version du tout – vous mettez un point à son extrémité. Ainsi, si vous donnez le nom de -fichier « FOO » cela signifie « cherchez les versions qui existent pour FOO -et prenez la dernière ». Mais si vous dites « FOO. » cela signifie -« utilisez exactement le nom FOO et aucun autre ». Si vous dites « FOO.3. » -cela veut dire « utilisez exactement le nom FOO.3 » qui naturellement est la -version trois de FOO et aucune autre. En sortie, si vous dites juste -« FOO », ça va créer une nouvelle version de FOO, mais si vous dites -« FOO. », ça va écrire un fichier nommé exactement « FOO ».</p> +fichier <code>FOO</code> cela signifie « cherche les versions qui existent +pour FOO et prends la dernière ». Mais si vous dites <code>FOO.</code> cela +signifie « utilise exactement le nom FOO et aucun autre ». Si vous dites +<code>FOO.3. » cela veut dire « utilise exactement le nom FOO.3</code>, qui +naturellement est la version trois de FOO et aucune autre. En sortie, si +vous dites juste <code>FOO</code>, ça va créer une nouvelle version de FOO, +mais si vous dites <code>FOO.</code>, ça va écrire un fichier nommé +exactement « FOO ».</p> <p>Maintenant c'est un défi de mettre au point tous ces détails et de voir s'il persiste des problèmes, si vraiment certains logiciels Unix se plantent bien @@ -1095,8 +1114,8 @@ qu'on leur ait fourni des noms avec des points et ainsi de suite, pour tenter de leur faire garder le même comportement.</p> <p>Je m'attends à ce que, si on ouvre un fichier dont le nom finit par un -point, on ouvre en fait immédiatement un fichier avec ce nom-là ; on obtient -ainsi le même comportement qu'Unix : le résultat partiellement écrit est +point, on ouvre en fait immédiatement un fichier avec ce nom-là ; on obtient +ainsi le même comportement qu'Unix : le résultat partiellement écrit est immédiatement visible. Tandis que, si on l'ouvre avec un nom qui ne finit pas par un point, la nouvelle version ne doit apparaître qu'à la fermeture du fichier, et seulement si on le ferme explicitement. S'il a été fermé @@ -1104,40 +1123,41 @@ parce que la tâche a échoué ou à cause du plantage du système ou de n'importe quoi du genre, il doit être sous un nom différent.</p> <p>Et cette idée peut être rapprochée de l'utilisation de l'astérisque comme -joker <i>[star matching]</i> : un nom qui ne finit pas par un point équivaut +joker <i>[star matching]</i> : un nom qui ne finit pas par un point équivaut à tous les noms sans leur numéro de version. Supposons qu'un certain -répertoire ait des fichiers comme ceci :</p> +répertoire ait des fichiers comme ceci :</p> <pre> - foo.1 foo.2 bar.8 + <code>foo.1 foo.2 bar.8</code> </pre> -<p>Si je dis « * », ça équivaut à</p> +<p>Si je dis <code>*</code>, ça équivaut à</p> <pre> - foo bar + <code>foo bar</code> </pre> <p>parce que ça prend tous les noms, les débarrasse de leurs versions et -conserve tous ceux qui sont distincts. Mais si je dis « *. », alors ça prend -tous les noms exacts, met un point après chaque nom et cherche les +conserve tous ceux qui sont distincts. Mais si je dis <code>*.</code>, alors +ça prend tous les noms exacts, met un point après chaque nom et cherche les équivalences. Ça me donne tous les noms avec toutes les différentes versions qui existent. Et de la même façon, vous pouvez voir la différence entre -« *.c » et « *.c. ». Ceci [le premier] vous donnera essentiellement les -références sans version de tous les fichiers « .c », tandis que cela [le -second] vous donnera toutes les versions… Bon, pas vraiment, vous -devriez dire « *.c.*. », mais ici je ne tiens pas compte des détails.</p> +<code>*.c</code> et <code>*.c.</code>. Ceci [le premier] vous donnera +essentiellement les références sans version de tous les fichiers +<code>.c</code>, tandis que cela [le second] vous donnera toutes les +versions… Bon, pas vraiment, vous devriez dire <code>*.c.*.</code>, +mais ici je ne tiens pas compte des détails.</p> <p>Une autre chose qu'on pourrait ajouter, qui est transparente pour l'utilisateur et est certainement compatible, c'est la tolérance du système de fichiers aux défaillances de la machine. À savoir, écrire toutes les informations sur le disque dans l'ordre approprié, en s'arrangeant pour -qu'on puisse presser le bouton « Arrêt » à tout moment sans endommager le -système de fichiers du disque. C'est tellement connu que je ne peux pas -imaginer qu'on puisse le négliger. Une autre idée, c'est d'augmenter la -redondance de l'information. Je ne sais pas si je le ferai, mais j'ai des -idées sur la façon de stocker dans chaque fichier tous ses noms, ce qui -permettrait, si l'un des répertoires du disque est perdu, de le reconstruire -à partir du reste du contenu du disque.</p> +qu'on puisse presser le bouton <kbd>Arrêt</kbd> à tout moment sans +endommager le système de fichiers du disque. C'est tellement connu que je ne +peux pas imaginer qu'on puisse le négliger. Une autre idée, c'est +d'augmenter la redondance de l'information. Je ne sais pas si je le ferai, +mais j'ai des idées sur la façon de stocker dans chaque fichier tous ses +noms, ce qui permettrait, si l'un des répertoires du disque est perdu, de le +reconstruire à partir du reste du contenu du disque.</p> <p>En outre, je pense savoir comment rendre possible la mise à jour nucléaire de n'importe quelle partie d'un fichier – c'est-à-dire pouvoir remplacer un @@ -1147,30 +1167,29 @@ anciennes. Je crois que je peux faire ça, sans même de verrouillage.</p> <p>Pour la gestion du réseau, j'ai l'intention par la suite d'implémenter TCP/IP pour ce système. Je pense également qu'il est possible d'utiliser -Kermit pour obtenir quelque chose de pratiquement équivalent à UUCP.</p> +KERMIT pour obtenir quelque chose de pratiquement équivalent à UUCP.</p> <p>Un <i>shell</i> a déjà été écrit, je crois. Il a deux modes, l'un imitant le <i>Bourne shell</i> et l'autre imitant le <i>C-shell</i>,<a id="TransNote6-rev" href="#TransNote6"><sup>6</sup></a> dans le même programme. Je n'en ai pas reçu de copie et je ne sais pas combien de travail -j'aurai à faire dessus. Il y a encore beaucoup d'autres utilitaires. Un -<code>make</code> existe, <code>ls</code> également ; il y a Bison qui -remplace YACC et qui est déjà distribué. Il existe quelque chose d'assez -proche de Lex, mais qui n'est pas totalement compatible et a besoin d'être -retravaillé. Et en général, ce qui reste à faire est beaucoup moins -important que ce qui a été fait mais on a toujours besoin de beaucoup de -gens pour aider.</p> - -<p>Les gens me demandent toujours « Quand est-ce que ça sera fini ? » +j'aurai à faire dessus. Il y a encore beaucoup d'autres utilitaires. Un MAKE +existe, LS également ; il y a BISON qui remplace YACC et qui est déjà +distribué. Il existe quelque chose d'assez proche de LEX, mais qui n'est pas +totalement compatible et a besoin d'être retravaillé. Et en général, ce qui +reste à faire est beaucoup moins important que ce qui a été fait mais on a +toujours besoin de beaucoup de gens pour aider.</p> + +<p>Les gens me demandent toujours « Quand est-ce que ça sera fini ? » Naturellement je ne peux pas le savoir, mais c'est une mauvaise question. Si vous comptiez payer pour ça, je comprendrais que vous vouliez savoir exactement ce que vous allez obtenir, et quand. Mais puisque vous n'allez -pas payer, la bonne question à vous poser est : « Comment peut-on aider pour -que ça soit fini plus tôt ? » J'ai une liste de projets dans un dossier au +pas payer, la bonne question à vous poser est : « Comment peut-on aider pour +que ça soit fini plus tôt ? » J'ai une liste de projets dans un dossier au MIT. Les gens qui souhaitent apporter leur aide peuvent m'envoyer un courrier à cette adresse internet et je leur enverrai en retour une liste de projets (je me demande si ça va marcher [en regardant la craie]). Est-ce que -c'est lisible ? C'est « RMS@GNU.ORG » (suivez juste la balle magique<a +c'est lisible ? C'est « RMS@GNU.ORG » (suivez juste la balle magique<a id="TransNote7-rev" href="#TransNote7"><sup>7</sup></a>). Et maintenant faisons une pause, et après la pause, je vais dire des choses vraiment controversées, alors ne partez pas maintenant. Si vous partez maintenant, @@ -1194,7 +1213,7 @@ partir des sources de la distribution d'Emacs, vous pouvez en obtenir des copies de la <i>Free Software Foundation</i>. Vous pouvez venir après pour le regarder. Il contient également un bulletin de commande dont vous pouvez copier les renseignements, de même que ce dessin [de la page de garde] qui a -quelquefois du succès : [montrant du doigt un personnage chassé par RMS à +quelquefois du succès : [montrant du doigt un personnage chassé par RMS à cheval sur un gnou] c'est un accapareur de logiciel effrayé, je parlerai de lui dans un moment.</p> @@ -1220,7 +1239,7 @@ mais cela reste ce qu'il y a de plus proche. Et personne n'est autorisé à posséder une recette.</p> <p>Mais l'analogie qui a été choisie fut celle des livres, sur lesquels -s'applique le copyright. Pourquoi ce choix a-t-il été fait ? Parce que les +s'applique le copyright. Pourquoi ce choix a-t-il été fait ? Parce que les gens qui avaient le plus à gagner à faire ce choix particulier ont été autorisés à prendre la décision. Les gens qui écrivaient les programmes ont eu le droit de décider, pas ceux qui les utilisaient. Cela a été fait d'une @@ -1242,7 +1261,7 @@ changer. J'étais extrêmement marqué par l'esprit de partage que nous avions jusque-là. Nous espérions faire quelque chose d'utile et nous étions heureux si les gens pouvaient s'en servir. Ainsi, quand j'ai développé le premier Emacs et que les gens ont commencé à vouloir l'utiliser en dehors du MIT, -j'ai dit qu'il appartenait à la « communauté » Emacs. Pour utiliser Emacs +j'ai dit qu'il appartenait à la « communauté » Emacs. Pour utiliser Emacs vous deviez être membre de la communauté et ça voulait dire que vous deviez lui apporter en contribution toutes les améliorations que vous aviez faites. Toutes les améliorations de l'Emacs original devaient m'être @@ -1287,7 +1306,7 @@ type de nocivité matérielle correspond une nocivité morale.</p> <p>Au premier niveau, c'est juste que ça décourage l'utilisation du programme. Il y a moins de gens qui utilisent le programme, mais ça ne demande pas moins de travail pour l'élaborer. Quand on met un prix sur -l'utilisation d'un programme en tant qu'« incitation », c'est le mot que ces +l'utilisation d'un programme en tant qu'« incitation », c'est le mot que ces accapareurs de logiciel aiment à employer, c'est une incitation pour les gens à ne pas l'utiliser et c'est du gâchis. Si par exemple il y a deux fois moins de gens qui utilisent le programme à cause de son prix, le programme a @@ -1304,12 +1323,12 @@ essaye délibérément d'entraver le partage du programme. Mais il ne tente pas simplement de l'entraver, il essaie de pousser les autres à l'aider. Toutes les fois qu'un utilisateur signe un accord de confidentialité, c'est comme s'il trahissait ses camarades utilisateurs. Au lieu de suivre la règle d'or -et de dire « J'apprécie ce programme, mon voisin le voudrait aussi, je veux -que nous l'ayons tous les deux », il dit « Ouais, donnez-le-moi. Au diable -mon voisin ! Je vous aiderai à le maintenir hors de sa portée. Ne le donnez -qu'à moi ! » C'est cet état d'esprit qui est source de nuisance morale, -cette attitude qui consiste à dire : « Au diable mes voisins, donnez-m'en, à -MOI, une copie. »</p> +et de dire « J'apprécie ce programme, mon voisin le voudrait aussi, je veux +que nous l'ayons tous les deux », il dit « Ouais, donnez-le-moi. Au diable +mon voisin ! Je vous aiderai à le maintenir hors de sa portée. Ne le donnez +qu'à moi ! » C'est cet état d'esprit qui est source de nuisance morale, +cette attitude qui consiste à dire : « Au diable mes voisins, donnez-m'en, à +MOI, une copie. »</p> <p>Après être tombé sur des gens qui disaient qu'ils ne me laisseraient pas avoir de copies parce qu'ils avaient signé un accord de confidentialité, @@ -1328,7 +1347,7 @@ résultats dont ils ont besoin.</p> <p>Les propriétaires de logiciel ne s'inquiètent pas vraiment de savoir si les gens peuvent modifier le programme ou non, mais les en empêcher leur est utile pour parvenir à leurs fins. Généralement, quand un logiciel est -propriétaire, vous ne pouvez pas obtenir les sources ; vous ne pouvez pas le +propriétaire, vous ne pouvez pas obtenir les sources ; vous ne pouvez pas le modifier et c'est un grand gaspillage de travail pour les programmeurs, aussi bien qu'une grande frustration pour les utilisateurs. Par exemple, une amie m'a dit qu'elle avait travaillé pendant de nombreux mois dans une @@ -1352,14 +1371,14 @@ imprimante graphique beaucoup plus intéressante, une des premières imprimantes laser, mais le logiciel était fourni par Xerox et nous ne pouvions pas le modifier. Ils n'acceptaient pas d'intégrer ces fonctionnalités et nous ne pouvions pas le faire nous-même. Aussi avons-nous -dû nous contenter de choses qui ne « fonctionnaient qu'à moitié ». Et +dû nous contenter de choses qui ne « fonctionnaient qu'à moitié ». Et c'était très frustrant de savoir que nous étions prêts à arranger ça, désireux et capables de le faire, mais que nous n'en avions pas le droit. On sabotait notre travail.</p> <p>Et il y a tous les gens qui utilisent des ordinateurs et qui disent que les ordinateurs sont un mystère pour eux. Ils ne savent pas comment ça -fonctionne. Mais comment pourraient-ils le savoir ? Ils ne peuvent pas lire +fonctionne. Mais comment pourraient-ils le savoir ? Ils ne peuvent pas lire les programmes qu'ils utilisent. La seule manière pour les gens d'apprendre comment les programmes doivent être écrits ou comment ils font ce qu'ils font, c'est de lire le code source.</p> @@ -1376,10 +1395,10 @@ disposition des meubles déterminent comment nous y vivons, il en est de même pour le système informatique que nous utilisons. Si nous ne pouvons pas le modifier pour qu'il nous convienne, nos vies sont alors vraiment sous le contrôle des autres, et d'une certaine manière la personne qui le constate -en est démoralisée : « Ça ne sert à rien d'essayer de changer ça, ce ne sera +en est démoralisée : « Ça ne sert à rien d'essayer de changer ça, ce ne sera jamais bien. Ce n'est pas la peine de s'embêter. Je vais juste faire mes heures et… quand j'aurai fini, je m'en irai en tâchant de ne plus y -penser. » Ce genre d'état d'esprit, ce manque d'enthousiasme, est le +penser. » Ce genre d'état d'esprit, ce manque d'enthousiasme, est le résultat obtenu quand on n'est pas autorisé à améliorer les choses alors qu'on serait prêt à montrer de l'esprit civique.</p> @@ -1393,9 +1412,9 @@ deviendrait difficile à cerner, c'est pourquoi ils s'assurent que chaque nouveau venu dans le domaine commence au début, ce qui ralentit considérablement le progrès.</p> -<p>C'est ce que nous pouvons constater : combien y a-t-il de tableurs créés par +<p>C'est ce que nous pouvons constater : combien y a-t-il de tableurs créés par des entreprises différentes sans qu'aucune ait profité de ce qui avait été -fait auparavant ? Oui, c'est vrai, le premier tableur qui a été écrit +fait auparavant ? Oui, c'est vrai, le premier tableur qui a été écrit n'était pas parfait. Il ne fonctionnait probablement que sur certains types d'ordinateurs et il ne faisait pas les choses de la meilleure manière possible. Donc il y avait diverses raisons pour lesquelles certaines @@ -1403,7 +1422,7 @@ personnes voulaient en réécrire des morceaux. Mais si elles avaient seulement dû réécrire les morceaux qu'elles voulaient vraiment améliorer, ça leur aurait donné beaucoup moins de travail. Vous pouvez très bien voir comment améliorer un des aspects d'un système, mais ne pas voir comment en -améliorer un autre ; en fait cela pourrait vous être très difficile de le +améliorer un autre ; en fait cela pourrait vous être très difficile de le faire aussi bien. Si vous pouviez prendre la partie que vous trouvez bien et refaire seulement le morceau pour lequel vous avez des idées, vous pourriez avoir un système en tout point meilleur, avec beaucoup moins de travail que @@ -1414,12 +1433,12 @@ pouvoir lire l'ancien d'abord.</p> <p>Ainsi, dans le domaine de la programmation, les gens ont développé une manière de perdre une bonne partie de leur temps, créant de ce fait un apparent besoin en programmeurs, plus important qu'en réalité. Pourquoi y -a-t-il un manque de programmeurs ? Parce qu'avec la propriété intellectuelle -ils se sont organisés pour gaspiller la moitié de leur travail ; il semble +a-t-il un manque de programmeurs ? Parce qu'avec la propriété intellectuelle +ils se sont organisés pour gaspiller la moitié de leur travail ; il semble ainsi que nous en ayons besoin de deux fois plus. Quand les gens se tournent -vers le système de la propriété intellectuelle en disant « Regardez les -belles statistiques de l'emploi, regardez l'ampleur de cette industrie », -cela ne prouve qu'une chose : l'ampleur du gaspillage de temps et +vers le système de la propriété intellectuelle en disant « Regardez les +belles statistiques de l'emploi, regardez l'ampleur de cette industrie », +cela ne prouve qu'une chose : l'ampleur du gaspillage de temps et d'argent. Quand ils parlent de chercher des moyens d'améliorer la productivité du programmeur, ils sont ravis de le faire si cela implique des outils plus évolués, mais si cela implique de se débarrasser de choses @@ -1441,7 +1460,7 @@ manger, le même sandwich, autant de fois qu'elle voudrait, et il resterait toujours aussi nourrissant qu'à l'origine.</p> <p>La meilleure chose à faire, ce que nous devrions faire avec ce sandwich, -serait de l'amener partout où les gens ont faim ; de l'amener à autant de +serait de l'amener partout où les gens ont faim ; de l'amener à autant de bouches que possible, de sorte qu'il alimente autant de personnes que possible. Il est certain que nous ne devons pas mettre de prix sur ce sandwich, parce que sinon les gens ne pourraient pas se permettre de le @@ -1454,9 +1473,9 @@ suffisait pour alimenter tout le monde, partout, pour toujours, mais que ça lui était interdit parce que quelqu'un croyait qu'il devait le posséder.</p> <p>Les gens qui croient pouvoir posséder des programmes proposent généralement -deux types d'arguments. Le premier c'est : « Je l'ai écrit, c'est l'enfant -de mon esprit, mon cœur, mon âme y est. Comment peut-on me l'enlever ? Où -qu'il aille, il est à moi, à moi, À MOI !! » Très bien, mais il est curieux +deux types d'arguments. Le premier c'est : « Je l'ai écrit, c'est l'enfant +de mon esprit, mon cœur, mon âme y est. Comment peut-on me l'enlever ? Où +qu'il aille, il est à moi, à moi, À MOI !! » Très bien, mais il est curieux tout de même que la plupart d'entre eux signent des accords stipulant qu'il appartient à l'entreprise pour laquelle ils travaillent.</p> @@ -1466,12 +1485,12 @@ n'ont aucune importance.</p> <p>Habituellement, ces personnes usent de cet argument pour exiger le droit de contrôler jusqu'à la façon dont les gens peuvent modifier le programme. Ils -disent : « Personne ne doit pouvoir gâcher mon œuvre d'art. » Bien, imaginez +disent : « Personne ne doit pouvoir gâcher mon œuvre d'art. » Bien, imaginez que l'inventeur du plat que vous projetez de cuisiner ait le droit de contrôler la façon dont vous le préparez parce que c'est son œuvre -d'art. Vous voulez enlever du sel, mais il dit : « Oh, non! J'ai conçu ce -plat et il doit y avoir beaucoup de sel ! » – « Mais mon médecin m'a dit -qu'il n'était pas bon pour moi de manger salé. Que puis-je faire ? »</p> +d'art. Vous voulez enlever du sel, mais il dit : « Oh, non! J'ai conçu ce +plat et il doit y avoir beaucoup de sel ! » – « Mais mon médecin m'a dit +qu'il n'était pas bon pour moi de manger salé. Que puis-je faire ? »</p> <p>La personne qui se sert du programme est évidemment bien plus près de l'événement. L'utilisation du programme l'affecte directement tandis que @@ -1479,20 +1498,20 @@ l'auteur a seulement une sorte de relation abstraite avec cette utilisation. Et donc, pour donner aux gens autant de contrôle que possible sur leurs propres vies, c'est l'utilisateur qui doit décider.</p> -<p>Le deuxième argument est économique. « Comment les gens seront-ils payés -pour programmer ? » disent-ils, et il y a un peu de vrai là-dedans. Mais une +<p>Le deuxième argument est économique. « Comment les gens seront-ils payés +pour programmer ? » disent-ils, et il y a un peu de vrai là-dedans. Mais une bonne part de ce qu'ils disent est confus. Et la confusion vient de ce qu'il -n'est pas du tout pareil de dire « Si nous voulons avoir beaucoup de gens +n'est pas du tout pareil de dire « Si nous voulons avoir beaucoup de gens pour programmer, nous devons nous assurer qu'ils n'auront pas besoin de -gagner leur vie d'une autre manière » d'une part, et d'autre part de dire -« Nous devons conserver le système actuel, nous devons devenir riches en -programmant. » Il y a une grande différence entre juste percevoir un salaire +gagner leur vie d'une autre manière » d'une part, et d'autre part de dire +« Nous devons conserver le système actuel, nous devons devenir riches en +programmant. » Il y a une grande différence entre juste percevoir un salaire pour vivre et se faire du fric comme le font les programmeurs de nos jours, -du moins aux États-Unis. Ils disent toujours : « Comment vais-je manger ? » -Mais le problème n'est pas vraiment de savoir « comment il va manger » mais -« comment il va manger des sushis ». Ou bien : « Comment ferai-je pour avoir -un toit au-dessus de la tête ? » Mais le vrai problème est : « Comment -pourra-t-il se payer un appartement dans une copropriété ? »</p> +du moins aux États-Unis. Ils disent toujours : « Comment vais-je manger ? » +Mais le problème n'est pas vraiment de savoir « comment il va manger » mais +« comment il va manger des sushis ». Ou bien : « Comment ferai-je pour avoir +un toit au-dessus de la tête ? » Mais le vrai problème est : « Comment +pourra-t-il se payer un appartement dans une copropriété ? »</p> <p>Le système actuel a été choisi par les gens qui investissent dans le développement logiciel parce que ça leur donne la possibilité de se faire le @@ -1519,34 +1538,34 @@ payés, autant il est vraiment impossible d'en trouver qui construiront des routes sans être payés. La construction des routes n'est pas un travail créatif ni amusant comme la programmation mais il y a plein de rues par là-bas. Nous arrivons parfaitement à trouver de quoi payer ces gens et c'est -bien mieux comme ça que d'avoir dit : « Laissons des entreprises privées +bien mieux comme ça que d'avoir dit : « Laissons des entreprises privées construire des routes et installer des cabines de péage, et vous paierez un péage à chaque coin de rue. Alors les entreprises qui auront sélectionné les bons endroits pour mettre leurs routes feront des profits et les autres -feront faillite. »</p> +feront faillite. »</p> <p>Il se produit une chose amusante chaque fois que quelqu'un propose une manière de faire de l'argent en accaparant quelque chose. Jusque-là, vous aviez probablement un bon nombre de gens vraiment enthousiastes et désireux -de travailler dans ce domaine. Et la seule question qui se posait était : -« Comment peuvent-ils trouver un moyen d'existence ? » Si nous pensons aux +de travailler dans ce domaine. Et la seule question qui se posait était : +« Comment peuvent-ils trouver un moyen d'existence ? » Si nous pensons aux mathématiciens par exemple, il y a beaucoup plus de gens qui veulent être des mathématiciens purs que de financement pour que tout le monde le devienne. Et même lorsqu'ils obtiennent des fonds, ils n'en obtiennent pas beaucoup. Et ces gens ne vivent pas bien. Pour les musiciens, c'est encore pire. J'ai vu des statistiques sur ce que gagne le musicien moyen, le péquin moyen qui consacre la majeure partie de son temps à tenter de devenir -musicien dans le Massachusetts ; c'est quelque chose comme la moitié du +musicien dans le Massachusetts ; c'est quelque chose comme la moitié du revenu moyen, ou moins. C'est à peine assez pour vivre, c'est dur. Mais il y en a un bon nombre qui essaient. Et puis, d'une façon ou d'une autre, quand il devient possible d'être très bien payé pour faire quelque chose, -généralement tous ces gens disparaissent. Et on commence à dire : « Personne -ne le fera à moins d'être payé aussi bien. »</p> +généralement tous ces gens disparaissent. Et on commence à dire : « Personne +ne le fera à moins d'être payé aussi bien. »</p> <p>J'ai vu cela se produire dans le domaine de la programmation. Les mêmes qui travaillaient au labo d'IA en étant très peu payés et qui trouvaient ça très bien, aujourd'hui n'imagineraient pas travailler pour moins de cinquante -mille dollars par an. Que s'est-il passé ? Quand vous faites miroiter aux +mille dollars par an. Que s'est-il passé ? Quand vous faites miroiter aux gens la possibilité de faire de l'argent, quand ils en voient d'autres faire le même travail en étant payés très cher, ils estiment devoir obtenir la même chose et personne n'est alors disposé à continuer comme avant. Il est @@ -1561,9 +1580,9 @@ comme je l'ai expliqué, qu'on a besoin de logiciel libre pour retrouver une communauté comme celle-là. Mais en y réfléchissant davantage, j'ai compris en quoi l'accaparement du logiciel fait du mal à l'ensemble de la société – plus particulièrement en poussant les gens à trahir leurs voisins, ce qui -entraîne l'affaiblissement du lien social ; ce même état d'esprit qui +entraîne l'affaiblissement du lien social ; ce même état d'esprit qui conduit les gens à voir quelqu'un se faire poignarder dans la rue et à -n'avertir personne ; cet état d'esprit dont nous pouvons voir tant +n'avertir personne ; cet état d'esprit dont nous pouvons voir tant d'entreprises faire preuve autour de nous. Il m'est apparu clairement que j'avais un choix à faire. Je pouvais faire partie de ce monde et me sentir malheureux de voir ce que je faisais de ma vie, ou je pouvais décider de le @@ -1578,25 +1597,25 @@ menace des accapareurs de logiciel.</p> inutile l'ordinateur personnel. Il y a une cinquantaine d'années, il y avait des gens aux USA, de la Mafia, qui entraient dans les magasins et les bars, surtout les bars quand les bars étaient hors-la-loi, évidemment. Une fois -entrés, ils disaient : « Pas mal d'endroits par ici ont brûlé -dernièrement. Vous ne voudriez pas que le vôtre subisse le même sort ? Eh +entrés, ils disaient : « Pas mal d'endroits par ici ont brûlé +dernièrement. Vous ne voudriez pas que le vôtre subisse le même sort ? Eh bien, nous pouvons vous protéger contre les incendies, vous avez juste à nous payer mille dollars par mois et nous ferons en sorte qu'il n'y ait pas -le feu. » Et ça s'appelait « le racket de protection ». Aujourd'hui nous en -sommes à quelque chose près à ce qu'une personne nous dise : « Vous avez un +le feu. » Et ça s'appelait « le racket de protection ». Aujourd'hui nous en +sommes à quelque chose près à ce qu'une personne nous dise : « Vous avez un joli ordinateur ici et vous utilisez quelques programmes. Eh bien, si vous ne voulez pas que ces programmes disparaissent, si vous ne voulez pas que la police vous poursuive, vous feriez mieux de me payer mille dollars et je -vous donnerai un exemplaire de ce programme avec une licence. » Et ça -s'appelle « le racket de protection du logiciel ».</p> +vous donnerai un exemplaire de ce programme avec une licence. » Et ça +s'appelle « le racket de protection du logiciel ».</p> <p>En réalité, ils ne font que mettre des bâtons dans les roues de tous ceux qui font ce qui doit être fait, mais ils se prétendent à eux-mêmes, et veulent nous faire croire, qu'ils ont une fonction utile. Bon. Ce que j'espère, c'est que le jour où ce type de la Mafia du logiciel entrera et -dira « Vous voulez que ces programmes disparaissent de votre ordinateur ? » -l'utilisateur puisse répondre « Je n'ai plus peur de vous. J'ai le logiciel -libre GNU et il n'y a rien que vous puissiez me faire désormais. »</p> +dira « Vous voulez que ces programmes disparaissent de votre ordinateur ? » +l'utilisateur puisse répondre « Je n'ai plus peur de vous. J'ai le logiciel +libre GNU et il n'y a rien que vous puissiez me faire désormais. »</p> <p>Quelquefois, les gens essaient de se justifier de posséder le logiciel en avançant l'idée qu'il faut donner aux gens des incitations pour produire des @@ -1638,9 +1657,9 @@ heure. Je n'en ai inclus que quelques-unes dans cette version. La bande la totalité]</strong></p> <dl> -<dt><b>Question :</b> Est-ce que quelqu'un a tenté de vous causer des ennuis ?</dt> +<dt><b>Question :</b> Est-ce que quelqu'un a tenté de vous causer des ennuis ?</dt> -<dd><p><b>Réponse :</b> La seule fois où l'on a tenté de me causer des ennuis, +<dd><p><b>Réponse :</b> La seule fois où l'on a tenté de me causer des ennuis, c'était ces propriétaires, ces prétendus propriétaires, autoproclamés, de Gosling Emacs. Hormis le fait qu'ils n'avaient aucune raison de le faire, ils ne pouvaient pas faire grand-chose. D'ailleurs, je voudrais attirer @@ -1649,18 +1668,18 @@ langage pour vous inciter à penser d'une certaine façon et pas autrement. Une grande part de la terminologie actuelle dans ce domaine a été choisie par les propriétaires autoproclamés de logiciel pour vous inciter à assimiler le logiciel à des biens matériels et à oublier les -différences. L'exemple le plus flagrant en est le terme « pirate ». Refusez -s'il vous plaît d'utiliser le terme « pirate » pour décrire quelqu'un qui +différences. L'exemple le plus flagrant en est le terme « pirate ». Refusez +s'il vous plaît d'utiliser le terme « pirate » pour décrire quelqu'un qui souhaite partager du logiciel avec son voisin comme tout bon citoyen.</p> -<p>J'ai oublié de vous dire ceci : La notion de copyright est apparue après +<p>J'ai oublié de vous dire ceci : La notion de copyright est apparue après l'invention de la presse à imprimer. Dans les temps anciens, les auteurs se copiaient les uns les autres librement et ceci n'était pas considéré comme -un mal. Et c'était même très utile : certaines œuvres originales n'ont pu +un mal. Et c'était même très utile : certaines œuvres originales n'ont pu survivre, bien que de manière fragmentaire, que grâce à des citations extensives dans d'autres œuvres qui, elles, ont survécu.</p> -<p>C'est parce que la copie des livres se faisait à l'unité ; il était dix fois +<p>C'est parce que la copie des livres se faisait à l'unité ; il était dix fois plus difficile d'en faire dix copies qu'une seule. Puis la presse à imprimer a été inventée. Ceci n'a pas empêché les gens de copier les livres à la main, mais comparée à l'impression, la copie manuelle était si pénible @@ -1675,7 +1694,7 @@ moralement, à cause d'un changement technologique. Or aujourd'hui le changement inverse se produit. La copie individuelle d'information se fait de mieux en mieux et nous pouvons voir que la finalité du progrès technologique est de permettre de copier n'importe quel genre -d'information… [coupure due à l'inversion de la bande].</p> +d'information… <span>[coupure due à l'inversion de la bande]</span>.</p> <p>Ainsi nous retournons à la même situation que dans le monde antique où le copyright n'avait aucun sens.</p> @@ -1683,7 +1702,7 @@ copyright n'avait aucun sens.</p> <p>Considérons notre concept de propriété. Il a son origine dans les objets matériels. Ces derniers satisfont la loi de conservation, à peu de choses près. Oui c'est vrai, je peux casser une craie en deux, mais ce n'est pas -ça ; elle va s'user, se « consommer ». Mais fondamentalement ceci est une +ça ; elle va s'user, se « consommer ». Mais fondamentalement ceci est une chaise [pointant une chaise du doigt]. Je ne peux pas simplement claquer des doigts et en avoir deux. La seule manière d'en avoir une deuxième, c'est de la construire comme l'a été la première. Ça prend plus de matières @@ -1697,19 +1716,19 @@ de gens que cela va aider et le nombre de gens que cela va léser de faire certaines choses. Lorsqu'il s'agit d'un objet matériel, vous pouvez venir prendre cette chaise, mais vous ne pouvez pas venir la copier. Et si vous emportiez la chaise, cela ne produirait rien, vous n'auriez aucune -excuse. Si quelqu'un dit « J'ai travaillé pour faire cette chaise, une seule -personne peut avoir cette chaise, ça peut aussi bien être moi », nous -pourrions aussi bien dire « Oui, c'est compréhensible. » Quand une personne -dit « J'ai gravé les bits de ce disque, une seule personne peut l'avoir, -alors n'essayez pas de me l'enlever », ça se comprend aussi. Si une seule -personne peut avoir le disque, pourquoi pas celui à qui il appartient ?</p> - -<p>Mais quand quelqu'un d'autre arrive et dit « Je ne vais pas abîmer votre +excuse. Si quelqu'un dit « J'ai travaillé pour faire cette chaise, une seule +personne peut avoir cette chaise, ça peut aussi bien être moi », nous +pourrions aussi bien dire « Oui, c'est compréhensible. » Quand une personne +dit « J'ai gravé les bits de ce disque, une seule personne peut l'avoir, +alors n'essayez pas de me l'enlever », ça se comprend aussi. Si une seule +personne peut avoir le disque, pourquoi pas celui à qui il appartient ?</p> + +<p>Mais quand quelqu'un d'autre arrive et dit « Je ne vais pas abîmer votre disque, je vais juste en faire un autre comme lui par magie, je l'emmènerai et vous pourrez continuer à utiliser ce disque comme vous le faisiez -auparavant », eh bien, c'est la même chose que si quelqu'un disait « J'ai un +auparavant », eh bien, c'est la même chose que si quelqu'un disait « J'ai un copieur magique de chaise. Vous pouvez continuer à profiter de votre chaise -en l'ayant toujours à disposition mais j'en aurai une aussi. » C'est une +en l'ayant toujours à disposition mais j'en aurai une aussi. » C'est une bonne chose.</p> <p>Si les gens n'ont pas à construire mais juste à claquer des doigts et @@ -1719,11 +1738,11 @@ tirer de l'argent. C'est une idée qui ne correspond qu'aux objets qui se conservent. Aussi font-ils leur possible pour transformer les programmes en objets matériels. Vous êtes-vous demandés pourquoi, quand vous allez dans un magasin de logiciel et que vous achetez un exemplaire d'un programme, cela -revient à acheter quelque chose qui ressemble à un livre ? Ils veulent que +revient à acheter quelque chose qui ressemble à un livre ? Ils veulent que les gens pensent à leur achat comme à un objet matériel, sans se rendre compte qu'il est en réalité sous forme de données numériques copiables.</p> -<p>Après tout, qu'est-ce qu'un ordinateur à part une machine universelle ? Vous +<p>Après tout, qu'est-ce qu'un ordinateur à part une machine universelle ? Vous avez probablement étudié les machines universelles de Turing, ces machines qui peuvent imiter n'importe quelle autre machine. L'avantage d'une machine universelle, c'est que vous pouvez lui faire imiter n'importe quelle autre @@ -1733,20 +1752,20 @@ exactement ce que les accapareurs de logiciel veulent que le public arrête de faire. Ils veulent profiter du changement technologique, en marche vers les machines universelles, mais ils ne veulent pas que le public en profite.</p> -<p>En gros, ils tentent de conserver « l'âge de l'objet matériel », mais +<p>En gros, ils tentent de conserver « l'âge de l'objet matériel », mais celui-ci est dépassé. Notre conception du bien et du mal doit être synchrone avec les faits réels du monde dans lequel nous vivons.</p> </dd> -<dt><b>Question :</b> Ainsi ça se ramène à la propriété de +<dt><b>Question :</b> Ainsi ça se ramène à la propriété de l'information. Pensez-vous qu'il y ait des exemples où, selon vous, il soit -juste de posséder l'information ?</dt> +juste de posséder l'information ?</dt> -<dd><p><b>Réponse :</b> Pour une information qui n'est pas utile au public ou qui a +<dd><p><b>Réponse :</b> Pour une information qui n'est pas utile au public ou qui a un caractère personnel, je dirais OK. En d'autres termes, l'information qui porte, non sur la manière de faire les choses mais sur ce que vous avez -l'intention de faire ; l'information dont la seule valeur pour les autres -est spéculative ; celle qui leur permet de vous faire perdre de l'argent +l'intention de faire ; l'information dont la seule valeur pour les autres +est spéculative ; celle qui leur permet de vous faire perdre de l'argent mais avec laquelle ils ne peuvent véritablement rien créer. Je dirais qu'il est parfaitement raisonnable de garder ce genre de chose secrète et sous contrôle.</p> @@ -1756,60 +1775,66 @@ ils peuvent profiter, et ce d'autant mieux que plus de gens y auront accès, nous devons toujours en encourager la copie.</p> </dd> </dl> +</div> <div class="translators-notes"> <!--TRANSLATORS: Use space (SPC) as msgstr if you don't have notes.--> -<hr /><b>Notes de relecture</b><ol> -<li id="TransNote1">ITS <i>(Incompatible Timesharing System)</i> : « Système -à temps partagé incompatible », conçu par les hackers du laboratoire -d'intelligence artificielle et nommé en opposition avec CTSS <i>(Compatible -Time Sharing System)</i>, utilisé précédemment au MIT. <a -href="#TransNote1-rev" class="nounderline">↑</a></li> -<li id="TransNote2">Nous traduisons maintenant <i>proprietary</i> par -« privateur ». <a href="#TransNote2-rev" -class="nounderline">↑</a></li> -<li id="TransNote3"><i>Wheel bit</i> (litt. bit de gouvernail) : il s'agit -d'un bit particulier du nombre binaire définissant un utilisateur sous -Twenex (ou certains autres systèmes à temps partagé des années 80), qui -permet à cet utilisateur de faire certaines opérations interdites à -l'utilisateur normal. Les privilèges du mode <i>wheel</i> sont analogues à -ceux de <i>root</i> sous Unix. <a href="#TransNote3-rev" -class="nounderline">↑</a></li> -<li id="TransNote4">DDT signifiait à l'origine <i><abbr title="Digital -Equipment Corporation">DEC</abbr> Debugging Tape</i> (bande de débogage de +<hr /><b>Notes de traduction</b><ol> +<li><a id="TransNote1" href="#TransNote1-rev" +class="nounderline">↑</a> +ITS <i>(Incompatible Timesharing System)</i> : « Système à temps partagé +incompatible », conçu par les hackers du laboratoire d'intelligence +artificielle et nommé en opposition avec CTSS <i>(Compatible Time Sharing +System)</i>, utilisé précédemment au MIT.</li> +<li><a id="TransNote2" href="#TransNote2-rev" +class="nounderline">↑</a> +Nous traduisons maintenant <i>proprietary</i> par « privateur ».</li> +<li><a id="TransNote3" href="#TransNote3-rev" +class="nounderline">↑</a> +<i>Wheel bit</i> (litt. bit de gouvernail) : il s'agit d'un bit particulier +du nombre binaire définissant un utilisateur sous Twenex (ou certains autres +systèmes à temps partagé des années 80), qui permet à cet utilisateur de +faire certaines opérations interdites à l'utilisateur normal. Les privilèges +du mode <i>wheel</i> sont analogues à ceux de <i>root</i> sous Unix.</li> +<li><a id="TransNote4" href="#TransNote4-rev" +class="nounderline">↑</a> +DDT signifiait à l'origine <i><abbr title="Digital Equipment +Corporation">DEC</abbr> Debugging Tape</i> (bande de débogage de DEC). C'était un ensemble de programmes, développé en 1961, permettant de déboguer le système d'exploitation du PDP-1 (les bandes dont il s'agissait étaient des bandes perforées). Des systèmes similaires existent pour des machines plus récentes, ils ont pour nom <i>Dynamic Debugging Technique</i>, de manière à garder le même sigle. DDT fait allusion à l'insecticide <i>[bug -killer]</i> de l'époque. <a href="#TransNote4-rev" -class="nounderline">↑</a></li> -<li id="TransNote5"><i>Free University Compiler Kit</i> peut s'interpréter -de deux manières différentes, car on ne sait pas si l'adjectif <i>free</i> -qualifie <i>compiler kit</i> ou <i>university</i>. En fait, il s'agit du -« kit de compilation de l'Université Libre (d'Amsterdam) ». <a -href="#TransNote5-rev" class="nounderline">↑</a></li> -<li id="TransNote6"><i>C-shell</i> se prononce de la même façon que -<i>seashell</i> (coquillage). Il n'est pas impossible que ce jeu de mots -soit voulu. <a href="#TransNote6-rev" class="nounderline">↑</a></li> -<li id="TransNote7"><i>Bouncing ball</i> : peut-être une allusion à la -« balle bondissante » du karaoke qui rebondit sur les paroles affichées à -l'écran au moment où il faut les chanter. <a -href="#TransNote7-rev">↑</a></li> +killer]</i> de l'époque.</li> +<li><a id="TransNote5" href="#TransNote5-rev" +class="nounderline">↑</a> +<i>Free University Compiler Kit</i> peut s'interpréter de deux manières +différentes, car on ne sait pas si l'adjectif <i>free</i> qualifie +<i>compiler kit</i> ou <i>university</i>. En fait, il s'agit du « kit de +compilation de l'Université Libre (d'Amsterdam) ».</li> +<li><a id="TransNote6" href="#TransNote6-rev" +class="nounderline">↑</a> +<i>C-shell</i> se prononce de la même façon que <i>seashell</i> +(coquillage). Il n'est pas impossible que ce jeu de mots soit voulu.</li> +<li><a id="TransNote7" href="#TransNote7-rev" +class="nounderline">↑</a> +<i>Bouncing ball</i> : peut-être une allusion à la « balle bondissante » du +karaoke qui rebondit sur les paroles affichées à l'écran au moment où il +faut les chanter.</li> </ol></div> </div> <!-- for id="content", starts in the include above --> <!--#include virtual="/server/footer.fr.html" --> -<div id="footer"> +<div id="footer" role="contentinfo"> <div class="unprintable"> -<p>Veuillez envoyer les requêtes concernant la FSF et GNU à <a -href="mailto:gnu@gnu.org"><gnu@gnu.org></a>. Il existe aussi <a +<p>Veuillez envoyer les requêtes concernant la FSF et GNU à <<a +href="mailto:gnu@gnu.org">gnu@gnu.org</a>>. Il existe aussi <a href="/contact/">d'autres moyens de contacter</a> la FSF. Les liens -orphelins et autres corrections ou suggestions peuvent être signalés à <a -href="mailto:webmasters@gnu.org"><webmasters@gnu.org></a>.</p> +orphelins et autres corrections ou suggestions peuvent être signalés à +<<a href="mailto:webmasters@gnu.org">webmasters@gnu.org</a>>.</p> <p> <!-- TRANSLATORS: Ignore the original text in this paragraph, @@ -1822,18 +1847,17 @@ href="mailto:webmasters@gnu.org"><webmasters@gnu.org></a>.</p> <web-translators@gnu.org></a>.</p> - <p>For information on coordinating and submitting translations of + <p>For information on coordinating and contributing translations of our web pages, see <a href="/server/standards/README.translations.html">Translations README</a>. --> -Nous faisons le maximum pour proposer des traductions fidèles et de bonne -qualité, mais nous ne sommes pas parfaits. Merci d'adresser vos commentaires -sur cette page, ainsi que vos suggestions d'ordre général sur les -traductions, à <a href="mailto:web-translators@gnu.org"> -<web-translators@gnu.org></a>.</p> -<p>Pour tout renseignement sur la coordination et la soumission des -traductions de nos pages web, reportez-vous au <a -href="/server/standards/README.translations.html">guide de traduction</a>.</p> +Merci d'adresser vos commentaires sur les pages en français à <<a +href="mailto:trad-gnu@april.org">trad-gnu@april.org</a>>, et sur les +traductions en général à <<a +href="mailto:web-translators@gnu.org">web-translators@gnu.org</a>>. Si +vous souhaitez y contribuer, vous trouverez dans le <a +href="/server/standards/README.translations.html">guide de traduction</a> +les infos nécessaires.</p> </div> <!-- Regarding copyright, in general, standalone pages (as opposed to @@ -1853,7 +1877,7 @@ href="/server/standards/README.translations.html">guide de traduction</a>.</p> There is more detail about copyright years in the GNU Maintainers Information document, www.gnu.org/prep/maintain. --> <p> -Copyright © 1987, 2009, 2010, 2020 Richard Stallman et Bjrn Remseth +Copyright © 1987 Richard Stallman et Bjrn Remseth </p> <p> La reproduction exacte et la distribution de copies intégrales de cette @@ -1866,17 +1890,18 @@ manière apparente. <div class="translators-credits"> <!--TRANSLATORS: Use space (SPC) as msgstr if you don't want credits.--> -Traduction : Miluz.<br /> Révision : <a +Traduction : Miluz.<br /> Révision : <a href="mailto:trad-gnu@april.org">trad-gnu@april.org</a></div> <p class="unprintable"><!-- timestamp start --> Dernière mise à jour : -$Date: 2021/01/26 13:03:21 $ +$Date: 2022/06/11 14:31:02 $ <!-- timestamp end --> </p> </div> </div> +<!-- for class="inner", starts in the banner include --> </body> </html> |