/[www]/www/philosophy/stallman-kth.fr.html
ViewVC logotype

Contents of /www/philosophy/stallman-kth.fr.html

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.69 - (show annotations) (download) (as text)
Sun Mar 3 15:44:23 2024 UTC (7 months, 3 weeks ago) by gnun
Branch: MAIN
CVS Tags: HEAD
Changes since 1.68: +14 -14 lines
File MIME type: text/html
Automatic update by GNUnited Nations.

1 <!--#set var="ENGLISH_PAGE" value="/philosophy/stallman-kth.en.html" -->
2
3 <!--#include virtual="/server/header.fr.html" -->
4 <!-- Parent-Version: 1.96 -->
5 <!-- This page is derived from /server/standards/boilerplate.html -->
6 <!--#set var="TAGS" value="speeches" -->
7 <!--#set var="DISABLE_TOP_ADDENDUM" value="yes" -->
8
9 <!-- This file is automatically generated by GNUnited Nations! -->
10 <title>Conférence de RMS au KTH (Suède, 1986) - Projet GNU - Free Software
11 Foundation</title>
12 <style type="text/css" media="screen"><!--
13 #content span { font-style: italic; color: #505050; }
14 -->
15 </style>
16
17 <!--#include virtual="/philosophy/po/stallman-kth.translist" -->
18 <!--#include virtual="/server/banner.fr.html" -->
19 <!--#include virtual="/philosophy/ph-breadcrumb.fr.html" -->
20 <!--GNUN: OUT-OF-DATE NOTICE-->
21 <!--#include virtual="/server/top-addendum.fr.html" -->
22 <div class="article reduced-width">
23 <h2>Conférence de RMS au KTH (Suède, 1986)</h2>
24
25 <div class="infobox">
26 <p>Transcription d'une conférence de Richard Stallman au <i>Kungliga Tekniska
27 Högskolan</i> (Institiut royal de technologie), à Stockholm (Suède),
28 organisée par l'association des étudiants, <i>Datorföreningen Stacken</i>,
29 le 30 octobre 1986.
30 </p>
31 </div>
32 <hr class="thin" />
33
34 <div class="introduction">
35 <p><i>[Note : Ce texte est une transcription légèrement révisée de la
36 conférence. La version originale contient des faux départs ainsi que des
37 locutions naturelles en anglais parlé mais qui paraissent bizarres dans une
38 publication. Il n'est pas évident de la transformer en anglais écrit correct
39 sans faire violence au discours original.]</i></p>
40 </div>
41
42 <p><b>RMS :</b> Il semble qu'il y ait trois choses dont les gens voudraient que
43 je parle. Tout d'abord, j'ai pensé que le meilleur sujet ici pour un club de
44 hackers était de dire comment ça se passait au <abbr title="Massachusetts
45 Institute of Technology">MIT</abbr> autrefois, ce qui faisait du labo
46 d'intelligence artificielle (labo d'IA) un endroit si particulier. Mais d'un
47 autre côté on m'a suggéré, étant donné que les personnes qui sont ici ne
48 sont pas celles qui étaient aux conférences de lundi et mardi, de raconter
49 ce qui se passe dans le projet GNU, et de dire pourquoi le logiciel et
50 l'information ne peuvent pas être considérés comme des propriétés. Cela fait
51 un total de trois conférences. Et puisque deux de ces sujets prennent chacun
52 une heure, nous y sommes pour un bon moment. Aussi je me suis dit que je
53 pourrais éventuellement diviser la conférence en trois parties. Comme ça les
54 gens pourraient sortir quand ça ne les intéresse pas. Une fois arrivé à la
55 fin d'un sujet, je peux signaler que c'est fini, les gens peuvent sortir et
56 je peux envoyer Jan Rynning dehors pour appeler les autres.</p>
57
58 <p><span>[Quelqu'un : « <i>Janne, han trenger ingen mike.</i> » (Janne, il n'a
59 pas besoin de micro.)]</span></p>
60
61 <p>Jan, tu es prêt à courir chercher les autres ?</p>
62
63 <p><b>JMR :</b> Je suis à la recherche d'un micro et quelqu'un me dit qu'il est
64 dans ce casier fermé à clé.</p>
65
66 <p><b>RMS :</b> Autrefois au labo d'IA, on l'aurait ouvert à coup de masse et
67 la porte défoncée aurait servi de leçon à celui qui avait osé mettre sous
68 clé quelque chose dont tout le monde avait besoin. Mais heureusement j'ai
69 étudié le chant bulgare, donc je peux très bien me débrouiller sans micro.</p>
70
71 <p>Bon, est-ce que je dois vous signaler les différentes parties de la
72 conférence ou vous avez juste envie de la suivre jusqu'au bout ?
73 <span>[Réponse : Yeaaah !]</span></p>
74
75 <p>Quand j'ai commencé à programmer, c'était en 1969, dans un laboratoire d'IBM
76 à New York. Ensuite, je suis allé dans une école qui avait un département
77 d'informatique probablement semblable à la plupart des autres. Il y avait
78 quelques professeurs responsables de ce qu'on était censé y faire et il y
79 avait des gens qui décidaient de qui pouvait se servir de quoi. Il y avait
80 pénurie de terminaux pour la plupart d'entre nous. Or pas mal de professeurs
81 en avaient un personnellement dans leur bureau, ce qui était du gaspillage,
82 mais typique de leur attitude. Quand j'ai visité le labo d'intelligence
83 artificielle au MIT, j'ai trouvé une atmosphère qui était une bouffée d'air
84 pur par rapport à ça. Par exemple : là, on considérait que les terminaux
85 étaient à tout le monde et les professeurs qui les enfermaient à clef dans
86 leurs bureaux couraient le risque de voir leurs portes défoncées. On m'a
87 montré une fois un chariot avec un gros bloc de fer dessus. C'était celui
88 qui avait été utilisé pour défoncer la porte du bureau d'un des professeurs
89 quand il avait eu le culot d'y enfermer un terminal. Il y en avait très peu
90 à cette époque. Il y avait probablement quelque chose comme cinq terminaux à
91 écran pour tout le système ; donc, si l'un d'entre eux était sous clé
92 c'était une vraie catastrophe.</p>
93
94 <p>Dans les années qui ont suivi, j'ai été guidé par ces idées et il m'est
95 souvent arrivé de crapahuter au-dessus des plafonds ou sous les planchers
96 pour déverrouiller les salles qui contenaient des machines dont les gens
97 avaient besoin. Et je laissais généralement un mot qui expliquait aux gens
98 qu'il ne fallait pas fermer la porte à clé de manière aussi égoïste. Les
99 gens qui fermaient la porte à clé, au fond, ne pensaient qu'à eux. Ils
100 avaient une raison de le faire, bien sûr. Il y avait un truc qui,
101 pensaient-ils, pouvait tenter les voleurs, et ils voulaient l'enfermer à
102 clef. Mais ils ne s'occupaient pas des autres, que cela gênait de ne pas
103 avoir accès au reste du matériel qui était dans la même salle. Presque à
104 chaque fois que cela s'est produit – après avoir porté à leur attention
105 qu'il ne leur appartenait pas de décider du verrouillage de la porte – ils
106 étaient capables de trouver un compromis. Mais le problème, c'est que les
107 gens ne prennent pas la peine d'y penser. Ils se disent : « Cette salle est
108 à moi, je peux la fermer à clé, que les autres aillent au diable ! » C'est
109 précisément cette attitude que nous devons leur désapprendre.</p>
110
111 <p>Mais cette habitude de déverrouiller les portes n'était pas un comportement
112 isolé, il faisait partie d'une façon de vivre à part entière. Les hackers du
113 labo d'IA étaient vraiment passionnés par l'écriture de bons programmes, de
114 programmes intéressants. Ils étaient à ce point impatients de faire avancer
115 le travail qu'ils ne supportaient pas la mise sous clé des terminaux, ni un
116 tas d'autres comportements qui faisaient obstacle au travail utile. C'est la
117 différence entre des personnes très motivées qui se préoccupent vraiment de
118 ce qu'elles sont en train de faire et des personnes qui prennent ça juste
119 pour un boulot. Si c'est juste un boulot, qu'importe si les gens qui vous
120 ont embauché sont assez stupides pour vous obliger à attendre sans rien
121 faire. C'est leur temps, leur argent, mais pas grand-chose ne se fait dans
122 un endroit comme ça ; ce n'est pas drôle d'être dans un endroit comme ça.</p>
123
124 <p>Une autre chose que nous n'avions pas au labo d'IA, c'était la protection
125 des fichiers. Il n'y avait aucune sécurité sur l'ordinateur, et c'était une
126 décision mûrement réfléchie. Les hackers qui ont écrit ITS<a
127 id="TransNote1-rev" href="#TransNote1"><sup>1</sup></a> ont jugé que la
128 protection des fichiers n'était qu'un moyen comme un autre, pour un
129 administrateur système autoproclamé, d'avoir du pouvoir sur tout le
130 monde. Ils ont refusé que quiconque puisse avoir du pouvoir sur eux de cette
131 façon. Aussi, ils n'ont pas implémenté ce genre de dispositif. Résultat,
132 chaque fois que quelque chose était cassé dans le système, vous pouviez
133 toujours le réparer. Vous n'étiez jamais obligé de rester planté là,
134 frustré, parce qu'il n'y avait RIEN À FAIRE, alors que vous saviez
135 parfaitement quoi faire mais que quelqu'un avait décidé de ne pas vous faire
136 confiance. Vous n'étiez pas obligé de laisser tomber et de rentrer à la
137 maison en attendant le lendemain matin que quelqu'un vienne réparer le
138 système, alors que vous saviez dix fois mieux que lui ce qu'il fallait
139 faire.</p>
140
141 <p>Et nous ne laissions pas non plus de professeur, ni de patron, décider quel
142 devait être notre prochain travail, parce que notre travail c'était
143 d'améliorer le système ! Nous parlions aux utilisateurs évidemment ; si vous
144 ne faites pas ça, vous ne pouvez pas savoir ce dont ils ont besoin. Mais
145 ensuite, nous étions les seuls, les plus aptes à savoir quelles sortes
146 d'améliorations étaient possibles. Et nous discutions toujours entre nous
147 pour savoir comment nous voulions voir le système évoluer, quelles idées
148 astucieuses nous avions vues dans d'autres systèmes et pourrions
149 utiliser. Ainsi au final, nous avions une anarchie qui fonctionnait sans
150 à-coups ; d'après mon expérience là-bas, je suis convaincu que c'est la
151 meilleure façon de vivre.</p>
152
153 <p>Malheureusement le labo d'IA, tel qu'il était à cette époque, a été
154 détruit. Pendant des années nous avions craint qu'il ne soit détruit par un
155 autre labo du MIT, le labo d'informatique, dont le directeur était le genre
156 de type à construire un empire. Il faisait tout ce qu'il pouvait pour avoir
157 une promotion au MIT et faire grossir son organisation. Il essayait
158 continuellement d'annexer le labo d'IA. Personne ne voulait faire les choses
159 à sa manière parce qu'il croyait que les gens devaient obéir aux ordres et
160 d'autres choses dans le style.</p>
161
162 <p>Mais ce danger, nous avons réussi à le repousser pour être en fin de compte
163 détruits par une chose que nous n'avions pas prévue : l'esprit
164 commercial. Vers le début des années 80, les hackers ont soudain compris que
165 ce qu'ils faisaient avait désormais un intérêt commercial. Il était possible
166 de devenir riche en travaillant pour une société privée. Il leur suffisait
167 de cesser de partager leur travail avec le reste du monde et de détruire le
168 labo d'IA du MIT. Et c'est ce qu'ils ont fait, malgré tous mes efforts pour
169 les en empêcher.</p>
170
171 <p>Presque tous les programmeurs compétents du labo d'IA, excepté moi, ont été
172 embauchés ailleurs et cela a causé bien plus qu'un changement
173 provisoire. Cela a causé une métamorphose définitive, parce que ça a brisé
174 la continuité de la culture des hackers. Les nouveaux hackers sont toujours
175 attirés par les anciens. Il y avait là les ordinateurs les plus amusants et
176 les gens qui faisaient les choses les plus intéressantes avec. Et aussi une
177 atmosphère qu'il était très amusant de partager. Une fois cela disparu, il
178 ne restait rien pour attirer les nouveaux venus. Ils ont donc cessé
179 d'arriver. Il n'y avait plus personne pour les inspirer, personne pour leur
180 enseigner les traditions. Qui plus est, personne de qui apprendre à bien
181 programmer. Avec juste un tas de professeurs et de doctorants qui ne savent
182 pas vraiment comment faire marcher un programme, on ne peut pas apprendre à
183 faire fonctionner de bons programmes. Ainsi le labo d'IA du MIT que j'aimais
184 a disparu. Et après deux années passées à me battre contre les gens qui
185 avaient fait ça, pour essayer de les punir, j'ai décidé de me consacrer à
186 créer une nouvelle communauté ayant cet état d'esprit.</p>
187
188 <p>Mais un des problèmes auxquels j'ai dû faire face était celui des logiciels
189 <a
190 href="/philosophy/categories.html#ProprietarySoftware">propriétaires</a>.<a
191 id="TransNote2-rev" href="#TransNote2"><sup>2</sup></a> Par exemple, ce qui
192 s'est passé au labo une fois les hackers partis, c'est que les machines et
193 les logiciels que nous avions développés ne pouvaient plus être
194 maintenus. Bien sûr Les logiciels fonctionnaient et continuaient de
195 fonctionner si personne ne les modifiait, mais pas les machines. Les
196 machines tombaient en panne et personne ne pouvait les réparer, et ensuite
197 on les mettait au rebut. Autrefois, il y avait bien des contrats d'entretien
198 pour les machines, mais pour l'essentiel c'était du bidon. C'était une
199 manière d'obtenir des pièces détachées une fois que les hackers experts du
200 labo d'IA avaient réparé. Parce que si on avait attendu que les techniciens
201 de maintenance le fassent, ça aurait pris des jours. Et on ne voulait pas de
202 ça. On voulait que ça marche. Aussi, les gens qui savaient faire ce genre de
203 chose réparaient très vite, puisqu'ils étaient dix fois plus compétents que
204 n'importe quel technicien. Ils pouvaient faire un bien meilleur travail. Et
205 une fois qu'ils avaient démonté les circuits défectueux, il leur suffisait
206 de les mettre de côté et d'appeler le technicien : « Reprenez-les et
207 ramenez-nous-en des neufs. »</p>
208
209 <p>À la belle époque, nos hackers avaient également l'habitude de modifier les
210 machines qui venaient de Digital. Par exemple, ils ont construit des boîtes
211 de radiomessagerie <i>[paging]</i> pour les PDP-10. De nos jours, je pense
212 qu'il y en a certains ici [à Stockholm] qui le font aussi. Mais ce n'était
213 pas courant en ce temps-là. Et encore avant, au début des années 60, les
214 gens modifiaient les ordinateurs en ajoutant toutes sortes de nouvelles
215 instructions et de nouvelles fonctionnalités sophistiquées en temps
216 partagé. De sorte que le PDP-1 du MIT, avant qu'il ne parte à la retraite
217 dans les années 70, avait quelque chose comme deux fois plus d'instructions
218 qu'il n'en avait lors de sa livraison par Digital au début des années 60. Il
219 avait des fonctionnalités spéciales complétant l'ordonnanceur
220 <i>[scheduler]</i> matériel, d'étranges fonctionnalités de mappage de la
221 mémoire qui permettaient d'affecter individuellement chaque périphérique
222 matériel à une tâche en temps partagé, et des tas d'autres trucs dont j'ai à
223 peine entendu parler. Je pense qu'ils ont également rajouté une sorte de
224 mode d'adressage étendu, des registres d'indexation ainsi que l'adressage
225 indirect ; en somme ils ont transformé une toute petite machine en une
226 machine à peu près correcte.</p>
227
228 <p>Je suppose que c'est l'un des inconvénients de la <abbr title="Very Large
229 Scale Integration">VLSI</abbr> (intégration à très grande échelle) : il
230 n'est plus vraiment pratique d'ajouter des instructions sur vos machines.</p>
231
232 <p>Le PDP-1 avait une caractéristique très intéressante : il était possible
233 d'écrire des programmes intéressants avec un très petit nombre
234 d'instructions, moins qu'aucune autre machine construite depuis. Je crois
235 par exemple que le célèbre hack d'affichage <i>munching squares</i> (lit. :
236 grignotage de carrés) – qui traçait des carrés qui grandissaient puis se
237 brisaient en une multitude de petits carrés qui devenaient plus grands et se
238 brisaient en petits carrés – cela a été écrit en quelque chose comme cinq
239 instructions sur le PDP-1. Et beaucoup d'autres beaux programmes d'affichage
240 ont pu être écrits ainsi avec un très petit nombre d'instructions.</p>
241
242 <p>Voilà donc ce qu'était le labo d'IA. Mais c'était quoi la culture des
243 hackers, hormis leur anarchisme ? Au temps du PDP-1, la machine ne pouvait
244 être utilisée que par une personne à la fois, du moins au début. Plusieurs
245 années après, ils ont écrit un système fonctionnant en temps partagé et ils
246 ont rajouté pas mal de matériel pour ça. Mais au début, on pouvait seulement
247 s'inscrire pour une période donnée. Naturellement les professeurs et les
248 étudiants qui travaillaient sur des projets officiels venaient toujours
249 pendant la journée. Alors, les gens qui voulaient avoir plus de temps
250 s'inscrivaient pour la nuit quand il y avait moins d'affluence. Voilà
251 l'origine de la coutume hacker de travailler la nuit. Même lorsqu'il y eut
252 le temps partagé, il était toujours plus facile d'avoir du temps la nuit, on
253 pouvait avoir plus de cycles parce qu'il y avait peu d'utilisateurs. Aussi
254 ceux qui voulaient abattre beaucoup de travail continuaient à venir la
255 nuit. Mais ça a commencé à changer parce qu'on n'était pas seul, il y avait
256 là quelques autres hackers ; ainsi c'est devenu un phénomène social. Si vous
257 entriez pendant la journée, vous pouviez vous attendre à trouver des
258 professeurs et des étudiants qui n'étaient pas des fans de la machine, alors
259 que si vous veniez la nuit vous trouviez des hackers. Par conséquent, les
260 hackers sont venus la nuit pour partager leur culture. Et ils ont développé
261 d'autres traditions, comme d'aller se ravitailler au Chinois à trois heures
262 du matin. Je me rappelle avoir vu beaucoup de levers de soleil alors que je
263 revenais en voiture de Chinatown. C'était tellement beau de voir le lever de
264 soleil, c'est une heure tellement calme de la journée. C'est une heure
265 merveilleuse pour se préparer à aller dormir. Il est si agréable de rentrer
266 à pied chez soi dans une lumière qui commence juste à poindre avec les
267 oiseaux qui se mettent à gazouiller. On a une sensation de douce
268 satisfaction, de tranquillité, en pensant au travail accompli pendant la
269 nuit.</p>
270
271 <p>Une autre tradition que nous avons initiée était celle d'avoir des endroits
272 pour dormir au labo. Depuis le jour où j'y suis entré, il y a toujours eu au
273 moins un lit. Et j'ai probablement habité au labo un peu plus longtemps que
274 la plupart des autres car, tous les ans ou tous les deux ans, pour une
275 raison ou une autre, je n'avais pas d'appartement et j'y habitais quelques
276 mois. Et j'ai toujours trouvé que c'était très confortable, sans compter que
277 c'était sympa et frais en été. Mais il n'était pas rare du tout de tomber
278 sur des gens qui s'étaient endormis au labo, toujours à cause de leur
279 enthousiasme : vous restez le plus longtemps possible à hacker parce que
280 vous ne voulez pas vous arrêter, et une fois que vous êtes complètement
281 épuisé, vous escaladez la surface horizontale souple la plus proche. Une
282 ambiance vraiment sans cérémonie.</p>
283
284 <p>Mais quand les hackers sont tous partis du labo, ça a causé un changement
285 démographique parce que les professeurs et les étudiants qui n'étaient pas
286 vraiment des fans de la machine étaient aussi nombreux qu'auparavant ;
287 maintenant ils représentaient la majorité. Et ils ont vraiment eu peur. Sans
288 hacker pour entretenir le système, ils se sont dit : « Ça va être un
289 désastre, il nous faut du logiciel commercial. Comme ça, nous pourrons
290 compter sur la maintenance de l'entreprise. » La suite prouva qu'ils avaient
291 absolument tort, mais c'est ce qu'ils ont fait.</p>
292
293 <p>C'était exactement au moment où ils devaient recevoir un nouvel ordinateur,
294 le KL-10, et la question s'est alors posée : faut-il qu'il fonctionne avec
295 ITS ou bien Twenex, le système de Digital ? Une fois les hackers partis
296 – ils auraient sans doute poussé à utiliser le leur – les universitaires ont
297 choisi d'utiliser le logiciel commercial et cela eut plusieurs effets
298 immédiats. Certains n'ont pas été vraiment immédiats, mais ils en ont
299 découlé inévitablement comme l'aurait prévu n'importe qui avec un peu de
300 réflexion.</p>
301
302 <p>Le premier problème était que ce logiciel était beaucoup plus mal écrit et
303 plus difficile à comprendre qu'ITS, rendant donc plus difficiles les
304 modifications nécessaires. L'autre était que le logiciel était sécurisé, ce
305 qui eut pour effet inévitable de diminuer la collaboration entre les uns et
306 les autres. Dans le passé, sur ITS, nous trouvions souhaitable d'avoir accès
307 à tous les fichiers et de pouvoir modifier n'importe lequel, parce que nous
308 avions des raisons pour cela. Je me rappelle un scandale intéressant où
309 quelqu'un a envoyé une demande d'assistance en utilisant Macsyma. Macsyma
310 est un programme d'algèbre symbolique qui a été développé au MIT. Il a
311 envoyé une demande d'assistance à l'une des personnes qui travaillait dessus
312 et a obtenu une réponse quelques heures plus tard de la part de quelqu'un
313 d'autre. Il était horrifié. Il a envoyé le message suivant : « Untel doit
314 lire votre courrier, les fichiers de courrier ne sont peut-être pas
315 correctement protégés sur votre système ? » – « Naturellement, aucun dossier
316 n'est protégé sur notre système. Où est le problème ? Vous avez obtenu votre
317 réponse plus tôt, de quoi vous plaignez-vous ? Évidemment nous lisons le
318 courrier de tout le monde, comme ça nous pouvons tomber sur des personnes
319 comme vous et les aider. » Certains ne connaissent pas leur bonheur.</p>
320
321 <p>Bien sûr, Twenex n'est pas seulement muni d'une sécurité – et par défaut la
322 sécurité est activée – mais il est également conçu en partant de l'hypothèse
323 que la sécurité est active. Or il y a un bon nombre de trucs très faciles à
324 faire qui peuvent causer pas mal de dégâts et la seule chose qui vous
325 empêche de les faire par accident, c'est la sécurité. Sur ITS, nous avions
326 développé d'autres moyens d'éviter que les gens fassent ces trucs par
327 accident, mais sur Twenex on ne les avait pas, étant donné que des mesures
328 de sécurité strictes étaient censées être opérationnelles et que les chefs
329 étaient les seuls à avoir la possibilité de faire des erreurs. Donc, ils
330 n'avaient mis aucun autre mécanisme de sécurité pour éviter les
331 accidents. Le résultat, c'est qu'on ne pouvait plus se contenter de
332 désactiver la sécurité de Twenex pour avoir ce qu'on voulait. Et il n'y
333 avait plus les hackers pour faire les changements nécessaires à
334 l'introduction de ces autres mécanismes. Aussi les gens ont-ils été obligés
335 de travailler avec la sécurité. Et la machine était là depuis six mois à peu
336 près, quand il a commencé à y avoir quelques « coups d'État ». Au début nous
337 avons supposé que tous ceux qui travaillaient pour le labo allaient avoir le
338 <i>wheel bit</i><a id="TransNote3-rev" href="#TransNote3"><sup>3</sup></a>
339 qui leur donnerait les pleins pouvoirs pour désactiver la sécurité, mais
340 certains jours vous veniez dans l'après-midi pour découvrir que les <i>wheel
341 bits</i> d'à peu près tout le monde avaient été supprimés.</p>
342
343 <p>Quand je m'en suis rendu compte, j'ai rectifié la situation. La première
344 fois, il se trouve que je connaissais le mot de passe d'un des membres de
345 l'élite et que j'ai pu l'utiliser pour redonner à chacun ses privilèges. La
346 deuxième fois, il avait changé son mot de passe, il avait changé de
347 relations sociales, il appartenait désormais au parti aristocrate. Alors
348 j'ai dû arrêter la machine et utiliser le système DDT<a id="TransNote4-rev"
349 href="#TransNote4"><sup>4</sup></a> en temps non partagé pour fouiller un
350 peu partout. J'ai fouillé dans le moniteur pendant un moment et j'ai compris
351 à la fin comment faire pour qu'il se charge et que je puisse le patcher. De
352 sorte que j'ai pu bloquer le contrôle des mots de passe et ainsi redonner
353 leur <i>wheel bit</i> à plein de gens. Puis j'ai laissé un message
354 système. Le nom de cette machine était OZ et le message disait : « Il y a eu
355 une nouvelle tentative de prise du pouvoir, jusqu'ici les forces
356 aristocratiques sont battues – <i>Radio Free OZ</i> (la radio libre d'Oz). »
357 Plus tard j'ai découvert que <i>Radio Free OZ</i> est l'une des expressions
358 utilisées par le <i>Firesign Theater</i>. Je ne le savais pas à ce
359 moment-là.</p>
360
361 <p>Mais petit à petit les choses ont empiré – c'est juste la façon dont le
362 système avait été construit qui forçait les gens à exiger de plus en plus de
363 sécurité – jusqu'à ce que, finalement, je sois obligé d'arrêter d'utiliser
364 la machine parce que je refusais d'avoir un mot de passe secret. Depuis que
365 les mots de passe étaient apparus pour la première fois au labo d'IA du MIT,
366 j'en étais venu à la conclusion que pour respecter mes convictions, pour
367 agir en accord avec mes convictions, il ne devait y avoir aucun mot de
368 passe. Je dois toujours veiller à avoir un mot de passe aussi évident que
369 possible et le dire à tout le monde. Puisque je ne crois pas qu'il soit
370 vraiment souhaitable d'avoir une sécurité sur un ordinateur, je ne dois pas
371 aider au maintien du régime de sécurité. Sur les systèmes qui le permettent,
372 j'utilise un « mot de passe vide » et sur des systèmes où cela n'est pas
373 permis (où cela signifie que vous ne pouvez pas ouvrir de session de
374 l'extérieur, des choses comme ça), j'utilise mon nom d'utilisateur comme mot
375 de passe. C'est aussi évident que possible. Et quand les gens me font
376 remarquer que de cette manière on peut ouvrir une session sous mon nom, je
377 réponds : « Oui, c'est ça l'idée, quelqu'un pourrait avoir besoin de
378 certaines données sur cette machine. Je veux m'assurer qu'elles ne se feront
379 pas avoir par la sécurité. »</p>
380
381 <p>Et une autre chose que je fais toujours, c'est de désactiver la protection
382 sur mon répertoire et mes dossiers. Parce que de temps en temps j'y stocke
383 des programmes utiles et s'il y a un bogue je veux que les gens puissent le
384 corriger.</p>
385
386 <p>Mais cette machine n'avait pas non plus été conçue pour gérer un phénomène
387 appelé « tourisme ». Le tourisme était une très vieille tradition du labo
388 d'IA qui allait avec nos autres conceptions de l'anarchie. Elle disait que
389 nous devions laisser les gens de l'extérieur utiliser la machine. À l'époque
390 où n'importe qui pouvait venir se connecter à ce qui lui plaisait, c'était
391 automatique : comme visiteur, vous pouviez ouvrir une session pour
392 travailler. Plus tard nous avons plus ou moins formalisé ça comme une
393 tradition établie, particulièrement quand l'Arpanet s'est mis en place et
394 que les gens ont commencé à se connecter à nos machines à partir de
395 n'importe quel coin du pays. Ce que nous espérions, c'était que ces
396 personnes apprendraient vraiment à programmer et qu'elles commenceraient à
397 modifier le système d'exploitation. Si vous disiez ça à un administrateur
398 système n'importe où ailleurs, il serait horrifié. Si vous lui proposiez
399 l'idée que n'importe quel étranger puisse utiliser la machine, il
400 répondrait : « Et s'il commence à modifier nos programmes ? » Mais pour
401 nous, si un étranger commençait à modifier les programmes, cela signifiait
402 qu'il montrait un intérêt réel à devenir un membre contributif de la
403 communauté. Nous encouragions toujours les gens à le faire ; à commencer,
404 naturellement, par écrire de nouveaux utilitaires, des petits. Nous jetions
405 un œil sur ce qu'ils avaient fait et nous le corrigions. Ils en arrivaient
406 alors à ajouter des fonctionnalités à de grands utilitaires existants. Et ce
407 sont des programmes qui existent depuis une dizaine ou peut-être une
408 quinzaine d'années, et grandissent petit à petit à mesure que les artisans,
409 l'un après l'autre, ajoutent de nouvelles fonctionnalités.</p>
410
411 <p>C'est pour ainsi dire comme certaines villes de France, où l'on peut voir
412 des bâtiments extrêmement anciens avec des rajouts construits des centaines
413 d'années plus tard, jusqu'à aujourd'hui. Dans le domaine de l'informatique,
414 un programme qui a été commencé en 1965, c'est à peu près ça. Ainsi nous
415 espérions toujours que des touristes deviendraient mainteneurs du système ;
416 et peut-être qu'ensuite ils allaient être embauchés, après avoir commencé à
417 travailler sur les programmes du système et nous avoir montré qu'ils étaient
418 capables de faire du bon travail.</p>
419
420 <p>Mais il y avait sur les machines ITS certains autres dispositifs qui
421 aidaient à éviter que ça nous échappe. L'un d'entre eux était un dispositif
422 « espion » où tout le monde pouvait observer ce que chacun faisait. Et
423 naturellement les touristes adoraient espionner. Ils pensaient que c'était
424 super. C'était un peu méchant, voyez-vous, mais le résultat, c'était que si
425 un touriste commençait à faire un truc à problème, il y avait toujours
426 quelqu'un pour le voir. Donc assez vite ses amis étaient furieux parce
427 qu'ils savaient que pour que le tourisme continue à exister, il fallait des
428 touristes responsables. Aussi y avait-il forcément quelqu'un qui savait qui
429 c'était et nous pouvions lui dire de nous laisser tranquilles. Et si nous ne
430 pouvions pas, alors ce que nous faisions, c'était d'interdire les connexions
431 provenant de certains endroits pendant un moment, et quand nous les
432 autorisions à nouveau il était parti et nous avait oubliés. Et cela a
433 continué comme ça pendant des années, des années&hellip; et des années.</p>
434
435 <p>Mais le système Twenex n'avait pas été conçu pour ce genre de chose et par
436 la suite ils ne m'ont plus toléré, moi et mon mot de passe que tout le monde
437 connaissait. Les touristes n'arrêtaient pas d'ouvrir des sessions sous mon
438 nom, à deux ou trois à la fois, et ont commencé à vider mon compte. À ce
439 moment-là de toute façon, je travaillais le plus souvent sur d'autres
440 machines ; si bien que finalement je l'ai abandonné et cessé à tout jamais
441 de le réactiver. C'est tout. Je ne me suis pas connecté sur cette machine
442 sous mon nom pendant&hellip; <span>[À ce moment-là, RMS est interrompu par
443 un tonnerre d'applaudissements.]</span></p>
444
445 <p>Quand ils ont installé le système Twenex, ils avaient à l'esprit d'y faire
446 plusieurs changements, des changements dans le fonctionnement de la
447 sécurité. Ils voulaient aussi mettre la machine sur le réseau <abbr
448 title="Advanced Research Projects Agency">ARPA</abbr> ainsi que sur le
449 réseau Chaos du MIT. Et il se trouve qu'ils n'ont pas pu le faire, qu'il n'y
450 avait personne d'assez compétent pour ça. Il n'y avait plus de talent
451 disponible et il était trop difficile de changer ça. Ce système était
452 beaucoup plus difficile à comprendre qu'ITS parce qu'il était trop mal
453 écrit, et naturellement Digital ne voulait pas faire ce genre de
454 chose. Ainsi l'idée d'un système commercial qui se maintenait tout seul
455 s'est révélée erronée. Ils avaient absolument besoin de hackers mais
456 n'avaient plus les moyens de les attirer. Et de nos jours au MIT, il y a
457 davantage de gens que ça intéresse de hacker ITS que Twenex.</p>
458
459 <p>La dernière raison de cet état de fait, c'est que Twenex ne pouvait pas être
460 partagé. Twenex est un programme propriétaire : vous n'avez le droit d'avoir
461 les sources que si vous les gardez secrètes par des moyens très
462 déplaisants. Et ça leur donne mauvais goût, à moins d'être inconscient comme
463 le sont certains en informatique (il y en a qui feront n'importe quoi si
464 c'est amusant pour eux et ne penseront pas une minute à coopérer avec qui
465 que ce soit ; mais il faut être franchement ailleurs pour ne pas remarquer à
466 quel point c'est triste de travailler comme ça sur un programme, comme c'est
467 décourageant). Et comme si ce n'était pas suffisant, chaque année ils vous
468 donnent une nouvelle version remplie d'une cinquantaine de milliers de
469 lignes de code supplémentaires, toutes écrites par des singes. Parce qu'ils
470 suivent généralement une école de programmation système du genre « un
471 million de singes tapant sur une machine à écrire finiront bien un jour par
472 sortir quelque chose d'utile ».</p>
473
474 <p>Il était clair pour moi, après avoir vu ce qui arrivait à ces systèmes
475 propriétaires, que la seule façon de conserver l'esprit du vieux labo d'IA
476 était d'avoir un système d'exploitation libre ; d'avoir un système fait de
477 logiciel libre pouvant être partagé avec n'importe qui, de façon à pouvoir
478 inviter tout le monde à collaborer à son amélioration. Et c'est ce qui a
479 conduit au projet GNU. Ainsi j'estime que nous sommes arrivés à la deuxième
480 partie de la conférence.</p>
481
482 <p>Il y a environ trois ans et demi, il m'est apparu comme une évidence que je
483 devais commencer à développer un système constitué de <a
484 href="/philosophy/free-sw.html">logiciel libre</a>. J'envisageais deux types
485 de systèmes : le premier, pratiquement identique au système de machine Lisp
486 du MIT, mais libre et fonctionnant sur tout type de matériel, pas seulement
487 sur les machines Lisp spécialisées, et l'autre, un logiciel d'exploitation
488 plus conventionnel. Et il était clair pour moi que si je faisais un logiciel
489 d'exploitation conventionnel, je devais le rendre compatible avec Unix parce
490 que ça rendait la migration plus facile aux gens de tous horizons. Après
491 quelque temps, j'ai choisi la deuxième solution. Et la raison, c'était qu'il
492 n'était pas possible d'obtenir quelque chose de vraiment comparable au
493 système de machine Lisp sur du matériel polyvalent. Le système de machine
494 Lisp utilise du matériel spécial, avec un microcode spécial réinscriptible,
495 pour obtenir à la fois une bonne vitesse d'exécution et une détection
496 robuste des erreurs pendant le temps d'exécution, en particulier les erreurs
497 sur le type des données. Pour qu'un système Lisp puisse fonctionner assez
498 rapidement sur du matériel ordinaire, on doit commencer par faire des
499 suppositions, supposer que tel argument est du type voulu ; ensuite, si ce
500 n'est pas le cas, le système se plante.</p>
501
502 <p>Naturellement on peut mettre des contrôles explicites, on peut écrire un
503 programme robuste si on veut, mais le fait est qu'on va obtenir des trucs
504 comme des erreurs d'adressage de mémoire si l'on fournit à une fonction un
505 argument de type inapproprié sans RIEN prévoir pour faire la vérification.</p>
506
507 <p>Le résultat, c'est qu'il fallait que quelque chose fonctionne en dessous du
508 système Lisp pour détecter ces erreurs et permettre à l'utilisateur de
509 garder le système en état de marche et de déboguer les problèmes
510 éventuels. J'en suis arrivé à la conclusion que si je devais avoir un
511 système d'exploitation de bas niveau, je pouvais tout aussi bien faire un
512 bon système d'exploitation – le choix était entre un système d'exploitation
513 plus le Lisp, et juste un système d'exploitation ; donc je devais faire le
514 système d'exploitation d'abord et le rendre compatible avec Unix. Enfin,
515 quand j'ai réalisé que je pouvais utiliser le plus drôle des mots anglais
516 pour nommer ce système, le choix était clair. Et ce mot est bien sûr GNU,
517 qui signifie <i>GNU's Not Unix</i> (GNU N'est pas Unix). L'acronyme récursif
518 est une très vieille tradition dans la communauté de hackers qui gravite
519 autour du MIT. Il a commencé je crois, avec un éditeur appelé TINT, ce qui
520 signifie <i>Tint Is Not <abbr title="Text Editor and
521 COrrector">Teco</abbr></i>, et plus tard c'est passé par des noms comme SINE
522 pour <i>Sine Is Not Emacs</i>, et FINE pour <i>Fine Is Not Emacs</i>, et
523 EINE pour <i>Eine Is Not Emacs</i>, et ZWEI pour <i>Zwei Was Eine
524 Initially</i>, et finalement on est arrivé à GNU.</p>
525
526 <p>Je dirais que depuis le moment, il y a environ deux ans et demi, où j'ai
527 commencé à travailler vraiment sur GNU, j'ai déjà fait plus de la moitié du
528 travail. Au moment où j'étais prêt à démarrer le projet, j'ai d'abord
529 regardé autour de moi ce qu'il y avait de libre déjà disponible. J'ai
530 découvert un système de compilation portable appelé <i>the Free University
531 Compiler Kit</i>, qui était intéressant, et j'ai pensé qu'avec un nom pareil
532 je pourrais peut-être l'avoir.<a id="TransNote5-rev"
533 href="#TransNote5"><sup>5</sup></a> Alors j'ai envoyé un message à son
534 développeur en lui demandant s'il acceptait de le donner au projet GNU. Et
535 il a dit « Non, l'université est peut-être libre, mais le logiciel qu'elle
536 développe ne l'est pas », mais il a ajouté qu'il voulait aussi avoir un
537 système compatible avec Unix et qu'il voulait écrire une sorte de noyau pour
538 lui, alors pourquoi est-ce que je n'écrirais pas les utilitaires, comme ça
539 les deux pourraient être distribués avec son compilateur propriétaire ? Ça
540 encouragerait les gens à l'acheter. J'ai pensé que c'était ignoble, alors je
541 lui ai dit que mon premier projet serait de faire un compilateur.</p>
542
543 <p>Je ne savais pas vraiment grand-chose au sujet de l'optimisation des
544 compilateurs à cette époque parce que je n'avais jamais travaillé
545 dessus. Mais j'ai mis la main sur un compilateur dont on m'avait dit qu'il
546 était libre. C'était un compilateur appelé Pastel dont les auteurs disaient
547 que c'était du « Pascal mal fichu ».</p>
548
549 <p>Le Pastel est un langage très compliqué comprenant des fonctionnalités comme
550 des types paramétrés et des paramètres de types explicites et beaucoup de
551 choses compliquées. Le compilateur naturellement était écrit dans ce langage
552 et comportait nombre de fonctionnalités compliquées pour optimiser
553 l'utilisation de ces éléments. Par exemple : le type <i>string</i> dans ce
554 langage était un type paramétré ; vous pouviez dire <code>string(n)</code>
555 si vous vouliez une chaîne d'une longueur particulière ; vous pouviez
556 également juste dire <code>string</code>, et le paramètre était déterminé à
557 partir du contexte. Cela dit, les chaînes sont très importantes et sont
558 nécessaires à beaucoup de constructions qui les utilisent pour fonctionner
559 rapidement. Et ça veut dire qu'on avait besoin de beaucoup de
560 fonctionnalités pour détecter des choses comme : lorsque la longueur
561 déclarée d'une chaîne est un argument dont on sait qu'il est constant dans
562 toute la fonction, sauvegarder la valeur et optimiser le code qu'elle va
563 produire ; beaucoup de choses compliquées. Mais j'ai pu voir dans ce
564 compilateur comment procéder à l'allocation automatique de registre et
565 glaner quelques idées sur la façon de gérer différents types de machines.</p>
566
567 <p>Bon, puisque ce compilateur avait déjà compilé Pastel, tout ce que j'avais à
568 faire était de rajouter une interface pour le C, ce que je fis, puis
569 d'ajouter une sortie pour le 68000 qui devait être ma première cible. Mais
570 j'allais vers un sérieux problème. Puisque le langage Pastel était conçu de
571 manière à ne pas avoir besoin de déclarer quoi que ce soit avant de
572 l'utiliser, la déclaration d'une variable et son usage pouvaient se faire
573 dans n'importe quel ordre ; en d'autres termes, la déclaration
574 <code>forward</code> du Pascal était obsolète. Pour cette raison il fallait
575 lire le programme dans son intégralité, le garder en mémoire centrale
576 <i>[core]</i> et le compiler d'une traite. Le résultat, c'était que le
577 stockage intermédiaire utilisé par le compilateur, ou plutôt la taille de la
578 mémoire requise, était proportionnel à la taille de votre fichier. Et il
579 fallait aussi compter avec l'espace de pile ; vous aviez besoin d'une
580 quantité gigantesque d'espace de pile. J'en ai conclu que le système 68000
581 dont je disposais ne pouvait pas faire fonctionner ce compilateur. Car
582 c'était une horrible version d'Unix qui vous limitait à quelque chose comme
583 16 000 mots de pile, ceci en dépit de l'existence de six mégaoctets dans la
584 machine. Et naturellement, pour générer la matrice des conflits afin de voir
585 quelles valeurs temporaires étaient en conflit ou quel groupe de valeurs
586 étaient actives en même temps, il était nécessaire d'avoir une matrice
587 quadratique de bits. Et pour les grandes fonctions cela pouvait prendre des
588 centaines de milliers d'octets. Ainsi je suis parvenu à déboguer la première
589 des quelque dix passes du compilateur en compilation croisée sur cette
590 machine et j'ai constaté alors que la seconde ne pourrait jamais
591 fonctionner.</p>
592
593 <p>Pendant que je réfléchissais à ces problèmes en me demandant si je devais
594 essayer de les corriger ou bien écrire entièrement un nouveau compilateur,
595 j'ai commencé de manière indirecte à travailler sur GNU Emacs. GNU Emacs est
596 la partie principale de la distribution du système GNU. C'est un éditeur de
597 texte extensible qui ressemble de près à l'Emacs original que j'ai développé
598 il y a dix ans, sauf que celui-ci emploie le véritable Lisp comme langage
599 d'extension. L'éditeur lui-même est implémenté en C, de même que
600 l'interpréteur Lisp. Ainsi l'interpréteur Lisp est entièrement portable et
601 vous n'avez pas besoin de système Lisp externe à l'éditeur. L'éditeur
602 contient son propre système Lisp et toutes les commandes d'édition sont
603 écrites en Lisp de manière à pouvoir vous donner des exemples sur la façon
604 d'écrire vos propres commandes et des éléments à utiliser comme point de
605 départ. Il vous suffit de les modifier pour obtenir les commandes que vous
606 voulez.</p>
607
608 <p>L'été de cette année-là, il y a environ deux ans maintenant, un ami m'a dit
609 qu'en raison de son travail au tout début du développement de l'Emacs de
610 Gosling, il avait la permission écrite de Gosling de distribuer sa propre
611 version. Gosling, à l'origine, avait créé son Emacs. Il l'avait distribué
612 librement et beaucoup de gens aidèrent à son développement, avec l'espoir
613 – selon les propres mots de Gosling dans son manuel – qu'il avait suivi le
614 même état d'esprit que celui que j'avais donné à l'Emacs original. Ensuite
615 il a poignardé tout le monde dans le dos en prenant des copyrights dessus,
616 en faisant promettre aux gens de ne pas le redistribuer puis en le vendant à
617 une maison d'édition de logiciels. Les relations d'affaires que j'ai eues
618 avec lui par la suite m'ont personnellement prouvé qu'il était aussi lâche
619 et méprisable que vous pouvez le voir dans cette histoire.</p>
620
621 <p>Mais de toute façon, mon ami m'avait donné le programme et j'avais
622 l'intention de modifier les commandes d'édition du niveau supérieur pour les
623 rendre compatibles avec l'Emacs original dont j'avais l'habitude. Ceci pour
624 qu'elles puissent manipuler toutes les combinaisons d'arguments numériques,
625 etc., tout ce que l'on pouvait s'attendre à ce qu'elles manipulent, en étant
626 pourvues de toutes les fonctionnalités que je voulais. Mais peu après, j'ai
627 découvert que le langage d'extension de cet éditeur, appelé Mocklisp, ne
628 suffisait pas à la tâche. J'ai compris que je devais le remplacer
629 immédiatement pour pouvoir réaliser mon projet. J'avais déjà pensé
630 auparavant à remplacer éventuellement Mocklisp par le vrai Lisp, mais ce que
631 j'ai découvert, c'est qu'il fallait le faire dès le début. Maintenant, la
632 raison pour laquelle Mocklisp s'appelle <i>mock</i> (faux), c'est qu'il n'a
633 aucune sorte de structure pour les types de données : il n'y a pas les
634 listes Lisp ; il n'y a aucune sorte de tableau ; il n'y a pas non plus les
635 symboles Lisp, qui sont des objets nommés (à chaque nom particulier
636 correspond un seul objet de manière que la saisie du nom se rapporte
637 toujours au même objet, sinon ça entrave considérablement l'écriture de pas
638 mal de sortes de programmes en vous obligeant à passer par des manipulations
639 de chaînes compliquées qui ne font pas vraiment avancer les choses).</p>
640
641 <p>Alors j'ai écrit un interpréteur Lisp pour le mettre à la place de
642 Mocklisp. Et ce faisant j'ai constaté que je devais réécrire un certain
643 nombre de structures de données internes à l'éditeur parce que je voulais
644 qu'il s'agisse d'objets Lisp. Je voulais que l'interface entre Lisp et
645 l'éditeur soit propre, c'est-à-dire que des objets comme les tampons
646 d'édition, les sous-processus, les fenêtres et les emplacements des tampons
647 soient tous des objets Lisp, afin que les processus primaires de l'éditeur
648 qui s'en servaient puissent vraiment être appelés en tant que fonctions Lisp
649 avec des données Lisp. Cela voulait dire qu'il fallait recréer entièrement
650 les formats de données de tous les objets et réécrire toutes les fonctions
651 qui s'en servaient. Et cela a eu pour résultat, pendant environ six mois, de
652 me faire réécrire à peu près tout ce qu'il y avait dans l'éditeur.</p>
653
654 <p>En outre, du fait qu'il est vraiment difficile d'écrire en Mocklisp, rien
655 n'était écrit proprement. Et en le réécrivant, je pouvais tirer profit de la
656 puissance du vrai Lisp ; je pouvais rendre tout ça beaucoup plus puissant,
657 beaucoup plus simple et rapide. C'est ce que j'ai fait. Et quand j'ai
658 commencé à distribuer le programme, il ne restait qu'une petite partie de ce
659 que j'avais reçu.</p>
660
661 <p>À ce moment-là, la société à qui Gosling pensait avoir vendu le programme a
662 contesté à mon ami le droit de le distribuer. Le message avait été
663 sauvegardé sur une bande que mon ami n'arrivait plus à retrouver et Gosling
664 a nié lui avoir donné cette permission. Une chose étrange s'est alors
665 produite. Il était en pourparlers avec cette société qui semblait surtout
666 vouloir éviter qu'il ne distribue quelque chose d'analogue à ce qu'elle-même
667 distribuait. Voyez-vous, Gosling continuait à distribuer ce qu'il m'avait
668 donné et la société pour laquelle il travaillait, Megatest, également ; il
669 s'agissait en réalité d'une ancienne version de l'Emacs de Gosling, avec ses
670 modifications. Il allait donc faire un accord avec eux dans lequel il
671 cesserait de le distribuer, et passer ensuite à GNU Emacs. Ils
672 reconnaîtraient alors qu'après tout Gosling avait leur permission, et donc
673 théoriquement tout le monde serait content. De plus cette société m'a
674 entretenu au sujet de leur désir de distribuer GNU Emacs, gratuitement bien
675 sûr, mais aussi de vendre divers services d'assistance. Ils voulaient même
676 m'embaucher pour aider à faire ce travail. Aussi est-il un peu étrange
677 qu'ils aient soudain changé d'avis et refusé de signer cet accord, puis mis
678 une annonce sur le réseau comme quoi je n'avais pas le droit de distribuer
679 le programme. Ils n'ont pas vraiment dit qu'ils feraient quoi que ce
680 soit. Ils ont juste dit qu'il n'était pas improbable qu'ils fassent quelque
681 chose un jour. Cela faisait suffisamment peur aux gens pour que plus
682 personne ne l'utilise. C'est triste.</p>
683
684 <p>(Parfois je me dis que peut-être une des meilleures choses que je pourrais
685 faire dans la vie serait de trouver une pile colossale de logiciels
686 propriétaires couverts par le secret industriel et de commencer à en
687 distribuer des copies à tous les coins de rue, ce qui les ferait sortir du
688 secret. Peut-être que ce serait une manière beaucoup plus efficace de
689 fournir aux gens de nouveaux logiciels libres, que de les écrire
690 effectivement moi-même ; mais tout le monde serait trop lâche pour ne
691 serait-ce qu'y toucher.)</p>
692
693 <p>Donc ça m'a obligé à réécrire tout ce qui restait qui n'était pas de moi, ce
694 que j'ai fait. Il m'a fallu environ une semaine et demie. Quelle victoire
695 pour eux ! Il était certain qu'après ça ils n'obtiendraient jamais plus
696 aucune collaboration de ma part.</p>
697
698 <p>Une fois que GNU Emacs a été raisonnablement stable – ce qui m'a pris
699 environ un an et demi tout compris – j'ai commencé à revenir sur d'autres
700 parties du système. J'ai développé un programme de débogage que j'ai appelé
701 GDB. C'est un débogueur symbolique pour le code C dont la distribution vient
702 de commencer, réalisé en grande partie dans l'esprit de DBX, le débogueur de
703 l'Unix de Berkeley. Les commandes se composent d'un mot indiquant ce que
704 vous voulez faire, suivi des arguments. Dans ce programme, toutes les
705 commandes peuvent être abrégées. Les commandes courantes ont des
706 abréviations d'un seul caractère, mais toute abréviation d'un seul caractère
707 est permise. La fonction « aide » est très fournie : vous pouvez taper
708 <code>help</code> suivi de n'importe quelle commande, y compris des
709 commandes secondaires, et vous obtenez une description complète de la façon
710 de l'utiliser. Naturellement vous pouvez taper n'importe quelle expression
711 en C et sa valeur s'affichera.</p>
712
713 <p>Vous pouvez également faire des choses inhabituelles pour un débogueur C
714 symbolique. Par exemple, vous pouvez vous référer à n'importe quel type de
715 donnée C à n'importe quelle adresse de mémoire pour en examiner la valeur ou
716 pour lui affecter une valeur. Supposons que vous vouliez stocker un nombre
717 en virgule flottante dans un mot à une certaine adresse. Vous devez juste
718 dire : « Donne-moi l'objet de type <i>float</i> ou <i>double</i> à cette
719 adresse et ensuite affecte-lui cette valeur. » Une autre chose que vous
720 pouvez faire est d'examiner toutes les valeurs qui ont été examinées
721 auparavant. Chaque valeur examinée se place sur la pile de l'« historique
722 des valeurs ». Vous pouvez vous référer à n'importe quel élément par sa
723 position dans l'historique, ou bien vous pouvez facilement vous référer au
724 dernier élément, juste avec le signe dollar. Ça facilite le suivi de la
725 structure des listes. Si une structure C quelconque contient un pointeur
726 vers une autre structure, vous pouvez faire quelque chose comme
727 <code>print*$.next</code> qui veut dire : « Prends le champ suivant dans la
728 dernière chose que tu m'as montrée, puis affiche la structure sur laquelle
729 il pointe ». En répétant cette commande, on voit l'une après l'autre les
730 structures sur lesquelles pointe la liste, alors qu'avec chacun des autres
731 débogueurs C que j'ai vus, la seule manière de faire ça est de taper une
732 commande de plus en plus longue. Et quand c'est combiné à une fonctionnalité
733 qui fait qu'« Entrée » rappelle la dernière commande, ça devient très
734 pratique. Vous avez juste à taper « Entrée » pour chaque élément de la liste
735 que vous voulez voir.</p>
736
737 <p>Vous pouvez aussi définir des variables de façon explicite dans le
738 débogueur, en nombre illimité. Vous posez le signe dollar suivi d'un nom et
739 c'est une variable. Vous pouvez lui affecter une valeur de n'importe quel
740 type C et vous pourrez l'examiner plus tard. Parmi les choses pour
741 lesquelles c'est utile, s'il y a une valeur particulière que vous voulez
742 examiner, sachant que vous allez vous y référer souvent, plutôt que de vous
743 souvenir de son numéro dans l'historique vous pouvez lui donner un nom. Vous
744 pouvez aussi utiliser ces variables quand vous placez des paliers
745 <i>[breakpoints]</i> conditionnels. Les paliers conditionnels sont une
746 fonctionnalité qui existe dans beaucoup de débogueurs symboliques. Vous
747 dites : « Fais une pause quand tu seras arrivé à cet endroit du programme,
748 mais seulement si une certaine expression est vraie. » Les variables du
749 débogueur vous permettent de comparer une variable du programme à sa
750 précédente valeur sauvegardée dans la variable du débogueur. Une autre chose
751 à laquelle elles peuvent servir, c'est à compter. Parce qu'après tout, les
752 valeurs affectées à ces variables sont des expressions en C, donc on peut
753 faire <code>$foo+=5</code> pour incrémenter la valeur <code>$foo</code>
754 de 5, ou juste <code>$foo++</code>. Vous pouvez également le faire lors d'un
755 palier conditionnel. Une manière économe de faire une pause dans le
756 programme la dixième fois que le palier est atteint, serait de faire
757 <code>$foo--==0</code>. Est-ce que tout le monde suit ? Faire décroître foo
758 et une fois qu'il est à zéro, pause. Vous faites démarrer <code>$foo</code>
759 au nombre de boucles que vous voulez qu'il saute et vous le lâchez. Vous
760 pouvez aussi utiliser ça pour examiner les éléments d'un tableau. Supposez
761 que vous ayez un tableau de pointeurs, vous pouvez faire :</p>
762
763 <pre><code>PRINT X[$foo++]</code></pre>
764
765 <p>Mais d'abord vous faites</p>
766
767 <pre><code>SET $foo=0</code></pre>
768
769 <p>OK, quand vous faites ça [il montre l'expression PRINT], vous obtenez
770 l'élément zéro de X et quand vous le faites à nouveau, il atteint le premier
771 élément. Supposez que ce soient des pointeurs vers des structures, alors
772 vous mettez probablement un astérisque là [avant le X dans l'expression
773 PRINT] et à chaque fois, il affiche la structure sur laquelle pointe
774 l'élément suivant du tableau. Et bien sûr vous pouvez répéter cette commande
775 en tapant « Entrée ». Si ce n'est pas suffisant de répéter une seule chose,
776 vous pouvez créer une « commande utilisateur ». Vous pouvez dire
777 <code>define mumble</code>, vous mettez quelques lignes de commandes puis
778 <code>end</code>. Vous venez ainsi de définir une commande
779 <code>mumble</code> qui exécutera ces lignes. Et il est très utile de mettre
780 ces définitions dans un fichier de commandes. Vous pouvez avoir un fichier
781 de commandes dans chaque répertoire qui sera chargé automatiquement en tant
782 que répertoire actif lorsque vous lancerez le débogueur. Ainsi pour chaque
783 programme, vous pouvez définir un ensemble de commandes utilisateur pour
784 accéder efficacement aux structures. Vous pouvez même fournir de la
785 documentation pour vos commandes, de façon qu'elles soient traitées par la
786 fonction <code>help</code> comme des commandes intégrées.</p>
787
788 <p>Une autre chose peu habituelle dans ce débogueur, c'est la capacité
789 d'écarter des cadres <i>[frames]</i> de la pile ; parce que je crois que
790 c'est important, non seulement pour pouvoir examiner ce qui se produit dans
791 le programme que vous déboguez, mais aussi pour le modifier de toutes les
792 façons possibles. De sorte qu'après avoir trouvé un problème et avoir
793 compris ce qui n'allait pas, vous pouvez faire comme si le code était
794 correct et trouver le prochain bogue sans avoir d'abord à recompiler le
795 programme. Cela signifie non seulement pouvoir changer en souplesse les
796 zones de données de votre programme, mais également changer le flux de
797 contrôle. Dans ce débogueur, vous pouvez changer le flux de contrôle très
798 directement en disant :</p>
799
800 <pre><code>SET $PC=&lt;un certain nombre&gt;</code></pre>
801
802 <p>Ainsi vous pouvez positionner le compteur ordinal <i>[program
803 counter]</i>. Vous pouvez également positionner le pointeur de pile
804 <i>[stack pointer]</i>, ou bien vous pouvez dire</p>
805
806 <pre><code>SET $SP+=&lt;quelque_chose&gt;</code></pre>
807
808 <p>si vous voulez incrémenter le pointeur de pile d'une certaine quantité. Mais
809 en outre, vous pouvez également lui dire de démarrer sur une ligne
810 particulière du programme ; vous pouvez placer le compteur ordinal à une
811 ligne particulière du code source. Mais que se passe-t-il si vous constatez
812 que vous avez appelé une fonction par erreur et que vous ne vouliez pas
813 appeler cette fonction du tout ? Vous vous dites que cette fonction est trop
814 merdique, que vous voulez vraiment en sortir et faire à la main ce qu'elle
815 devait faire. Pour cela, vous pouvez utiliser la commande
816 <code>RETURN</code>. Vous sélectionnez un cadre de la pile et vous dites
817 <code>RETURN</code>. Et ça va faire que ce cadre, et tous ceux qui sont à
818 l'intérieur, seront abandonnés comme si cette fonction renvoyait
819 instantanément sa valeur. Vous pouvez aussi spécifier la valeur qu'elle doit
820 renvoyer. Ça ne poursuit pas l'exécution ; ça fait comme si la valeur était
821 renvoyée et le programme s'arrête à nouveau ; vous pouvez ainsi continuer de
822 modifier autre chose.</p>
823
824 <p>Et si vous combinez tout ça, vous avez pas mal de contrôle sur ce qui se
825 passe dans un programme.</p>
826
827 <p>Une autre chose assez amusante : C a des constantes qui sont des chaînes de
828 caractères <i>[string constants]</i> ; que se passe-t-il si vous utilisez
829 une constante de ce type dans une expression que vous calculez dans le
830 débogueur ? Il faut qu'il crée une chaîne dans le programme que vous
831 déboguez. Eh bien, c'est ce qu'il fait. Il crée un appel à
832 <code>malloc</code> dans le programme débogué, laisse tourner
833 <code>malloc</code>, puis reprend la main. Ainsi il trouve de façon
834 transparente un endroit où placer la chaîne constante.</p>
835
836 <p>Quand ce débogueur tournera enfin sur le vrai système GNU, j'ai l'intention
837 d'y installer des fonctionnalités pour examiner l'ensemble des états
838 internes du processus tournant en dessous de lui. Par exemple pour examiner
839 l'état de la topographie mémoire, pour savoir quelles pages existent, si
840 elles sont lisibles, si elles sont inscriptibles, et pour examiner l'état du
841 terminal pour le programme inférieur. Il y a déjà l'ébauche d'une commande ;
842 ce débogueur, à la différence des débogueurs sous Unix, garde l'état du
843 terminal du débogueur et celui du programme que vous déboguez complètement
844 séparés. De sorte que ça marche avec les programmes qui tournent en mode
845 brut et avec ceux qui font des interruptions d'entrées dynamiques
846 <i>[interrupt driven input]</i> ; et il y a également une commande qui vous
847 permet d'apprendre quelque chose sur les réglages des terminaux que le
848 programme que vous déboguez utilise réellement. Je crois qu'en général un
849 débogueur doit vous permettre de découvrir tout qui se passe dans le
850 processus inférieur.</p>
851
852 <p>Deux autres parties centrales du système GNU existent déjà. L'un est le
853 nouveau compilateur C et l'autre le noyau Trix.</p>
854
855 <p>J'ai commencé à écrire le nouveau compilateur C cette année, au printemps
856 dernier. J'ai finalement décidé que je devais me passer de Pastel. Ce
857 compilateur utilise quelques idées de Pastel et quelques idées de
858 « l'optimiseur portable de l'université d'Arizona » <i>[University of
859 Arizona Portable Optimizer]</i>. Ce que ce dernier a d'intéressant, c'est de
860 gérer plusieurs types différents de machines par des instructions simples et
861 d'ensuite combiner plusieurs instructions simples dans une seule instruction
862 compliquée quand la machine cible le permet. Pour que cela reste uniforme,
863 ils représentent les instructions en notation algébrique. Par exemple,
864 l'instruction <code>add</code> peut être représentée comme ceci :</p>
865
866 <pre>
867 <code>r[3]=r[2]+4</code>
868 </pre>
869
870 <p>C'est une représentation interne au compilateur de l'instruction « prendre
871 le contenu du registre n&deg;2, y ajouter 4 et le stocker dans le registre
872 n&deg;3 ». De cette façon vous pouvez représenter n'importe quelle
873 instruction pour n'importe quelle machine. C'est donc comme ça qu'ils
874 représentent toutes les instructions. Quand vient le moment d'essayer de les
875 combiner, ils le font en substituant une expression dans une autre, ce qui
876 donne pour l'instruction combinée une expression algébrique plus compliquée.</p>
877
878 <p>Quelquefois, suivant que le résultat de la première instruction est utile
879 par la suite, ou pas, il peut être nécessaire de faire une instruction
880 combinée avec deux opérateurs d'affectation <i>[assignment]</i> : un pour
881 cette valeur [il montre un endroit de l'écran] et un autre pour cette valeur
882 [il montre un autre endroit] à l'intérieur de laquelle est substitué ce qui
883 provient de la deuxième instruction. Si cette valeur n'est utilisée qu'une
884 fois, vous pouvez l'éliminer après l'avoir substituée ; elle n'a pas à
885 entrer dans d'autres calculs. Donc c'est vraiment assez compliqué de faire
886 ces substitutions correctement, en vérifiant bien que les instructions
887 intermédiaires ne vont changer aucune de ces valeurs, ni rien d'autre du
888 même genre. Quand vous gérez des choses comme l'adressage auto-incrémenté et
889 auto-décrémenté, ce que je fais maintenant, vous avez aussi diverses
890 vérifications à faire pour détecter les situations où l'objectif n'est pas
891 de conserver la valeur de la variable.</p>
892
893 <p>Mais après avoir vérifié tout ça, vous prenez l'expression combinée
894 substituée et vous la passez à travers un filtre de motif <i>[pattern
895 matcher]</i>, qui reconnaît toutes les instructions valides de la machine
896 cible que vous avez choisie. Si le motif est reconnu, vous remplacez les
897 deux instructions par leur instruction combinée, sinon vous les laissez
898 tranquilles. Leur technique est de combiner de cette manière deux ou trois
899 instructions reliées par le flux de données.</p>
900
901 <p>Dans le compilateur d'Arizona, les choses sont en fait représentées par des
902 chaînes de caractères comme ceci, et le compilateur est terriblement
903 lent. Au début j'avais l'idée de l'utiliser et d'y apporter des
904 modifications, mais j'ai compris que je devais le réécrire entièrement pour
905 obtenir la rapidité que je voulais. En le réécrivant, j'ai fait en sorte de
906 pouvoir utiliser des représentations de structure de liste pour toutes ces
907 expressions ; des choses comme ceci :</p>
908
909 <pre>
910 <code>(set (reg 2)</code>
911 <code>(+ (reg 2)</code>
912 <code>(int 4)))</code>
913 </pre>
914
915 <p>Ça ressemble un peu à du Lisp mais la sémantique n'est pas tout à fait la
916 même, parce que chaque symbole est ici identifié individuellement. Un
917 ensemble fixe, particulier de ces symboles est défini, tous ceux dont vous
918 avez besoin, chacun ayant une combinaison particulière de types
919 d'arguments. Pour <code>reg</code> par exemple, c'est toujours un nombre
920 entier, parce que les registres sont numérotés, mais <code>+</code> prend
921 deux sous-expressions, et ainsi de suite. Et chacune de ces expressions a
922 aussi un type de données qui, en gros, indique s'il est fixe ou flottant et
923 combien d'octets il occupe. Ça peut être étendu pour manipuler d'autres
924 choses si vous en avez besoin.</p>
925
926 <p>Voilà comment je fais l'allocation automatique de registre : au moment où je
927 génère initialement le code, et quand je fais la combinaison et le reste,
928 pour toute variable qui entre théoriquement dans un registre j'alloue ce que
929 j'appelle un pseudo-numéro de registre. C'est un nombre qui commence à
930 seize, ou autre nombre trop élevé pour désigner un vrai registre de la
931 machine cible. Les vrais registres sont numérotés de zéro à quinze (ou
932 autre), et après viennent les pseudo-registres. Et là, une des dernières
933 opérations consiste à examiner tous les pseudo-registres et à les changer en
934 vrais registres. À nouveau, le compilateur fait un schéma des conflits, il
935 voit quels pseudo-registres sont actifs en même temps – ils ne peuvent
936 naturellement pas entrer dans le même vrai registre – et essaie de regrouper
937 les pseudo-registres dans de vrais registres autant que possible, en les
938 rangeant par ordre d'importance.</p>
939
940 <p>Et à la fin, il doit corriger le code pour différents problèmes, tels qu'il
941 peut s'en produire si des pseudo-registres ne trouvent pas place dans les
942 vrais registres et doivent être mis à la place dans des <i>slots</i> de la
943 pile. Sur certaines machines, des instructions peuvent devenir invalides
944 quand ça arrive. Par exemple sur le 68000, on peut ajouter depuis un
945 registre dans la mémoire et ajouter depuis la mémoire dans un registre mais
946 pas ajouter depuis une adresse mémoire vers une autre. Par exemple, si lors
947 d'une instruction ADD vous sortez vers un 68000 et que les deux éléments se
948 retrouvent dans la mémoire, ce n'est pas valide. Donc ce dernier passage
949 examine le tout et copie au besoin des éléments dans les registres ou en
950 dehors des registres, pour corriger ce genre de problème.</p>
951
952 <p>Des problèmes peuvent également survenir avec les registres d'index. Si vous
953 essayez d'indexer par quelque chose, la plupart du temps le code deviendra
954 invalide si cette quantité est en mémoire, sauf dans quelques cas, sur
955 certaines machines où vous pouvez le faire avec un adressage
956 indirect. Lorsque vous procédez à une autoincrémentation sur un registre
957 d'index, vous pouvez avoir à copier la valeur dans un registre, effectuer
958 l'instruction et ensuite recopier la valeur incrémentée dans le <i>slot</i>
959 de mémoire où elle vit vraiment.</p>
960
961 <p>Il y a encore de la marge pour pas mal de prises de tête, et je n'ai pas
962 fini d'implémenter tout ce qui est nécessaire pour le rendre vraiment
963 pleinement efficace.</p>
964
965 <p>Ce compilateur fonctionne actuellement avec un analyseur syntaxique qui
966 transforme efficacement le code C en arbre syntaxique, annoté d'informations
967 sur le type de données C. Après ça, un autre passage examine cet arbre et
968 produit du code comme celui-là [comme du Lisp]. Ensuite viennent plusieurs
969 passages d'optimisation : un pour traiter par exemple les sauts à travers
970 des sauts, les sauts aboutissant à des sauts, les sauts à <code>.+1</code>
971 et tout ce qui peut être immédiatement simplifié ; puis la reconnaissance
972 des sous-expressions communes ; puis la recherche des blocs de base et
973 l'analyse du flux de données, afin de pouvoir indiquer pour chaque
974 instruction quelles valeurs sont utilisées dans l'instruction et nulle part
975 ailleurs ; et aussi la liaison entre chaque instruction et les endroits où
976 les valeurs utilisées ont été créées. Ainsi, quand j'ai une instruction qui
977 crée un pseudo-registre R[28] et une autre instruction plus tard qui utilise
978 R[28], sachant que c'est le premier endroit qui utilise R[28], je fais
979 pointer la seconde en arrière sur la première et ce pointeur est celui qui
980 servira pour contrôler les essais de combinaison des instructions. Vous ne
981 combinez pas des instructions adjacentes, vous combinez une instruction qui
982 utilise une valeur avec l'instruction qui a produit cette valeur. Même s'il
983 y a d'autres instructions au milieu, elles ne sont pas concernées ; vous
984 avez juste à vous assurer qu'elles n'interviennent pas. Et après le
985 combinateur vient l'allocateur dynamique de registres, et enfin quelque
986 chose pour faire la conversion en code assembleur.</p>
987
988 <p>Dans le compilateur d'Arizona, le système de reconnaissance d'instructions a
989 été créé avec Lex. La description de votre machine est simplement un
990 programme Lex, que Lex transforme en une fonction C pour identifier les
991 instructions valides sous forme de chaînes. À la place, j'ai un arbre de
992 décision particulier, créé à partir d'une description de la machine écrite
993 dans cette syntaxe qui ressemble au Lisp. Et ce système de reconnaissance
994 est utilisé comme sous-programme dans plusieurs parties différentes du
995 compilateur.</p>
996
997 <p>Actuellement ce compilateur fonctionne à peu près aussi rapidement que le
998 <abbr title="Portable C Compiler">PCC</abbr>. Il fonctionne sensiblement
999 plus rapidement si vous lui dites de ne pas faire d'allocation de registre
1000 limite. Dans ce cas il alloue les registres de la même manière que le
1001 PCC. Dans son mode super-limite, il fait un travail d'allocation de
1002 registres bien meilleur que le PCC et je constate que pour le VAX, il
1003 produit le meilleur code que j'aie vu de tous les compilateurs C sur VAX.</p>
1004
1005 <p>Pour le 68000, le code n'est pas encore idéal. Je peux voir par endroits,
1006 aux étapes précoces, se passer des choses qui ne sont pas forcément
1007 optimales parce qu'il ne peut pas vraiment anticiper. Il a un choix à faire
1008 à une étape précoce et il fait ce qu'il pense être le mieux. Or s'il avait
1009 fait un autre choix, une étape ultérieure aurait été assez intelligente pour
1010 faire encore mieux. Mais l'étape précoce ne sait pas ce que l'étape
1011 ultérieure va faire, donc je dois retravailler certaines choses.</p>
1012
1013 <p>Parfois ça lui fait libérer des registres inutilement : quand des choses
1014 atterrissent dans la mémoire et qu'il a besoin de les copier dans des
1015 registres, il faut qu'il trouve des registres. Cela veut dire prendre des
1016 registres déjà alloués et virer les données temporaires des <i>slots</i> de
1017 la pile. Évidemment, maintenant que ces choses sont dans la mémoire plutôt
1018 que dans les registres, ça peut invalider certaines instructions, donc il
1019 lui faut tout le temps vérifier. Parfois il pense à tort qu'il devrait
1020 copier des choses dans les registres, alors il arrive qu'il en libère trop
1021 et n'utilise pas tous les registres qu'il pourrait.</p>
1022
1023 <p><span>[Question : Avez-vous un générateur de code pour le 32000 ?]</span>Pas
1024 encore, mais je le répète, ce n'est pas un générateur de code dont vous avez
1025 besoin, juste une description de machine, une liste de toutes les
1026 instructions de la machine décrites sous cette forme [comme du Lisp]. En
1027 fait, hormis le travail d'implémenter l'idée des contraintes qui déterminent
1028 quels arguments peuvent aller dans les registres et dans quelles sortes de
1029 registres ils iront – travail nécessaire pour le 68000, mais pas pour le
1030 VAX – le portage de ce compilateur du VAX au 68000 a juste pris quelques
1031 jours. Donc il est très facile à porter.</p>
1032
1033 <p>Le compilateur produit actuellement du code assembleur et il peut produire
1034 de l'information de débogage, soit dans le format voulu par DBX, soit dans
1035 le format interne spécial à GDB. Je dirais que le seul travail qui reste à
1036 faire sur ce compilateur se situe à trois niveaux. Un : Je dois ajouter un
1037 dispositif de « profilage » comme celui des compilateurs d'Unix. Deux : Je
1038 dois rendre les allocations de registre plus intelligentes pour ne plus voir
1039 de choses stupides apparaître en sortie. Trois : Il y a divers bogues, des
1040 choses qu'il ne traite pas encore correctement bien qu'il se soit compilé
1041 correctement. Je pense que ça ne prendra que quelques mois, ensuite je le
1042 publierai.</p>
1043
1044 <p>L'autre partie importante du système existant, c'est le
1045 noyau. <span>[Question : Une pause ?]</span> Ah, ouais, je suppose que nous
1046 avons oublié les coupures. Pourquoi est-ce que je ne finirais pas de parler
1047 du noyau, ce qui ne devrait pas prendre plus de cinq minutes ? Ensuite nous
1048 pourrons faire une coupure.</p>
1049
1050 <p>Donc, pour le noyau je projette d'utiliser un système appelé TRIX (cela ne
1051 signifie rien de spécial, que je sache) qui a été développé comme projet de
1052 recherche au MIT. Ce système est basé sur l'appel de procédure à distance
1053 <i>[Remote Procedure Call]</i>. Les programmes sont appelés domaines. Chaque
1054 domaine est un espace d'adressage et a diverses capacités, une capacité
1055 n'étant rien d'autre que l'aptitude à appeler un domaine. Tout domaine peut
1056 créer des « ports de capacité » <i>[capability ports]</i> pour l'appeler et
1057 peut passer ces ports aux autres domaines. Et il n'y a aucune différence
1058 entre appeler le système et appeler un autre domaine utilisateur. En fait
1059 vous ne pouvez pas dire lequel vous avez. Ainsi il est très facile de faire
1060 implémenter des dispositifs par d'autres programmes utilisateur. Un système
1061 de fichiers pourrait être implémenté de façon transparente par ce moyen. Il
1062 est également transparent de communiquer à travers des réseaux. Vous pensez
1063 que vous appelez directement un autre domaine, mais en réalité vous appelez
1064 le domaine du serveur réseau. Il prend l'information que vous avez donnée
1065 dans l'appel et la passe par le réseau à un autre programme serveur qui
1066 appelle alors le domaine auquel vous essayez de parler. Mais pour vous et
1067 cet autre domaine, cela se passe de manière transparente.</p>
1068
1069 <p>Le noyau TRIX fonctionne et il a une compatibilité limitée avec Unix, mais
1070 il lui en faut beaucoup plus. Actuellement son système de fichiers utilise
1071 la même structure sur disque que l'ancien système de fichiers d'Unix. Ça
1072 rendait plus facile le débogage parce qu'ils pouvaient installer les
1073 fichiers avec Unix et donc faire fonctionner TRIX, mais ce système de
1074 fichiers n'a aucune des fonctionnalités que je trouve nécessaires.</p>
1075
1076 <p>Voilà les fonctionnalités qui, je pense, devraient être rajoutées : des
1077 numéros de version, la restauration des fichiers effacés, les informations
1078 sur quand, comment et où le dossier a été sauvegardé sur bande, le
1079 remplacement nucléaire des fichiers. Ce qui est bien dans Unix, d'après moi,
1080 c'est que lorsqu'un fichier est en cours d'écriture, on peut déjà regarder
1081 ce qui se passe. Ainsi par exemple, vous pouvez utiliser <code>tail</code>
1082 pour voir où ça en est ; c'est vraiment sympa. Et si le programme se plante
1083 après avoir écrit le fichier partiellement, vous pouvez voir ce qu'il a
1084 fait. Tout ça c'est très bien, mais le résultat partiellement écrit ne doit
1085 jamais être considéré comme le résultat final escompté. La version
1086 précédente doit continuer d'être visible et utilisée par tous ceux qui
1087 tentent de l'utiliser jusqu'à ce qu'une nouvelle version soit entièrement et
1088 correctement réalisée. Cela signifie que la nouvelle version devra être
1089 visible dans le système de fichiers, mais pas sous le nom qu'elle est censée
1090 avoir. Elle devra être renommée quand c'est fini. C'est d'ailleurs ce qui se
1091 passe avec ITS, bien que chaque programme utilisateur doive le faire de
1092 façon explicite. Pour la compatibilité d'Unix avec les programmes
1093 utilisateur, ça doit se passer de façon transparente.</p>
1094
1095 <p>J'ai un plan bizarre et plutôt coton pour essayer de faire coller les
1096 numéros de version avec les programmes utilisateur existant sous Unix. Il
1097 s'agit de spécifier le nom de fichier, en laissant implicite le numéro de
1098 version si vous le spécifiez normalement. Et si vous souhaitez le faire de
1099 façon explicite – soit parce que vous voulez déclarer explicitement quelle
1100 version utiliser, soit parce que vous ne voulez pas de version du tout –
1101 vous mettez un point à son extrémité. Ainsi, si vous donnez le nom de
1102 fichier <code>FOO</code> cela signifie « cherche les versions qui existent
1103 pour FOO et prends la dernière ». Mais si vous dites <code>FOO.</code> cela
1104 signifie « utilise exactement le nom FOO et aucun autre ». Si vous dites
1105 <code>FOO.3. » cela veut dire « utilise exactement le nom FOO.3</code>, qui
1106 naturellement est la version trois de FOO et aucune autre. En sortie, si
1107 vous dites juste <code>FOO</code>, ça va créer une nouvelle version de FOO,
1108 mais si vous dites <code>FOO.</code>, ça va écrire un fichier nommé
1109 exactement « FOO ».</p>
1110
1111 <p>Maintenant c'est un défi de mettre au point tous ces détails et de voir s'il
1112 persiste des problèmes, si vraiment certains logiciels Unix se plantent bien
1113 qu'on leur ait fourni des noms avec des points et ainsi de suite, pour
1114 tenter de leur faire garder le même comportement.</p>
1115
1116 <p>Je m'attends à ce que, si on ouvre un fichier dont le nom finit par un
1117 point, on ouvre en fait immédiatement un fichier avec ce nom-là ; on obtient
1118 ainsi le même comportement qu'Unix : le résultat partiellement écrit est
1119 immédiatement visible. Tandis que, si on l'ouvre avec un nom qui ne finit
1120 pas par un point, la nouvelle version ne doit apparaître qu'à la fermeture
1121 du fichier, et seulement si on le ferme explicitement. S'il a été fermé
1122 parce que la tâche a échoué ou à cause du plantage du système ou de
1123 n'importe quoi du genre, il doit être sous un nom différent.</p>
1124
1125 <p>Et cette idée peut être rapprochée de l'utilisation de l'astérisque comme
1126 joker <i>[star matching]</i> : un nom qui ne finit pas par un point équivaut
1127 à tous les noms sans leur numéro de version. Supposons qu'un certain
1128 répertoire ait des fichiers comme ceci :</p>
1129
1130 <pre>
1131 <code>foo.1 foo.2 bar.8</code>
1132 </pre>
1133
1134 <p>Si je dis <code>*</code>, ça équivaut à</p>
1135 <pre>
1136 <code>foo bar</code>
1137 </pre>
1138
1139 <p>parce que ça prend tous les noms, les débarrasse de leurs versions et
1140 conserve tous ceux qui sont distincts. Mais si je dis <code>*.</code>, alors
1141 ça prend tous les noms exacts, met un point après chaque nom et cherche les
1142 équivalences. Ça me donne tous les noms avec toutes les différentes versions
1143 qui existent. Et de la même façon, vous pouvez voir la différence entre
1144 <code>*.c</code> et <code>*.c.</code>. Ceci [le premier] vous donnera
1145 essentiellement les références sans version de tous les fichiers
1146 <code>.c</code>, tandis que cela [le second] vous donnera toutes les
1147 versions&hellip; Bon, pas vraiment, vous devriez dire <code>*.c.*.</code>,
1148 mais ici je ne tiens pas compte des détails.</p>
1149
1150 <p>Une autre chose qu'on pourrait ajouter, qui est transparente pour
1151 l'utilisateur et est certainement compatible, c'est la tolérance du système
1152 de fichiers aux défaillances de la machine. À savoir, écrire toutes les
1153 informations sur le disque dans l'ordre approprié, en s'arrangeant pour
1154 qu'on puisse presser le bouton <kbd>Arrêt</kbd> à tout moment sans
1155 endommager le système de fichiers du disque. C'est tellement connu que je ne
1156 peux pas imaginer qu'on puisse le négliger. Une autre idée, c'est
1157 d'augmenter la redondance de l'information. Je ne sais pas si je le ferai,
1158 mais j'ai des idées sur la façon de stocker dans chaque fichier tous ses
1159 noms, ce qui permettrait, si l'un des répertoires du disque est perdu, de le
1160 reconstruire à partir du reste du contenu du disque.</p>
1161
1162 <p>En outre, je pense savoir comment rendre possible la mise à jour nucléaire
1163 de n'importe quelle partie d'un fichier – c'est-à-dire pouvoir remplacer un
1164 sous-bloc particulier d'un fichier par de nouvelles données de manière que
1165 si on essaie de le lire, on voie, ou bien les nouvelles données, ou bien les
1166 anciennes. Je crois que je peux faire ça, sans même de verrouillage.</p>
1167
1168 <p>Pour la gestion du réseau, j'ai l'intention par la suite d'implémenter
1169 TCP/IP pour ce système. Je pense également qu'il est possible d'utiliser
1170 KERMIT pour obtenir quelque chose de pratiquement équivalent à UUCP.</p>
1171
1172 <p>Un <i>shell</i> a déjà été écrit, je crois. Il a deux modes, l'un imitant le
1173 <i>Bourne shell</i> et l'autre imitant le <i>C-shell</i>,<a
1174 id="TransNote6-rev" href="#TransNote6"><sup>6</sup></a> dans le même
1175 programme. Je n'en ai pas reçu de copie et je ne sais pas combien de travail
1176 j'aurai à faire dessus. Il y a encore beaucoup d'autres utilitaires. Un MAKE
1177 existe, LS également ; il y a BISON qui remplace YACC et qui est déjà
1178 distribué. Il existe quelque chose d'assez proche de LEX, mais qui n'est pas
1179 totalement compatible et a besoin d'être retravaillé. Et en général, ce qui
1180 reste à faire est beaucoup moins important que ce qui a été fait mais on a
1181 toujours besoin de beaucoup de gens pour aider.</p>
1182
1183 <p>Les gens me demandent toujours « Quand est-ce que ça sera fini ? »
1184 Naturellement je ne peux pas le savoir, mais c'est une mauvaise question. Si
1185 vous comptiez payer pour ça, je comprendrais que vous vouliez savoir
1186 exactement ce que vous allez obtenir, et quand. Mais puisque vous n'allez
1187 pas payer, la bonne question à vous poser est : « Comment peut-on aider pour
1188 que ça soit fini plus tôt ? » J'ai une liste de projets dans un dossier au
1189 MIT. Les gens qui souhaitent apporter leur aide peuvent m'envoyer un
1190 courrier à cette adresse internet et je leur enverrai en retour une liste de
1191 projets (je me demande si ça va marcher [en regardant la craie]). Est-ce que
1192 c'est lisible ? C'est « RMS@GNU.ORG » (suivez juste la balle magique<a
1193 id="TransNote7-rev" href="#TransNote7"><sup>7</sup></a>). Et maintenant
1194 faisons une pause, et après la pause, je vais dire des choses vraiment
1195 controversées, alors ne partez pas maintenant. Si vous partez maintenant,
1196 vous allez rater le clou de la conférence.</p>
1197
1198 <p><strong>[Ici, nous avons eu 15 minutes de pause]</strong></p>
1199
1200 <p>On m'a demandé de faire connaître le moyen d'obtenir des copies des
1201 logiciels GNU. Eh bien, un des moyens est évidemment de connaître un ami qui
1202 en a un exemplaire. Mais si ce n'est pas le cas et que vous n'êtes pas sur
1203 Internet pour le télécharger, alors vous pouvez toujours commander une
1204 distribution sur bande et envoyer une certaine somme à la <i>Free Software
1205 Foundation</i> (Fondation pour le logiciel libre). Naturellement les
1206 programmes libres <i>[free programs]</i>, ce n'est pas la même chose que la
1207 distribution gratuite <i>[free distribution]</i>. Je l'expliquerai en détail
1208 plus tard.</p>
1209
1210 <p>J'ai ici un manuel d'Emacs, du genre bien imprimé. Il a été phototypé puis
1211 imprimé en offset. Bien que vous puissiez également l'imprimer vous-même à
1212 partir des sources de la distribution d'Emacs, vous pouvez en obtenir des
1213 copies de la <i>Free Software Foundation</i>. Vous pouvez venir après pour
1214 le regarder. Il contient également un bulletin de commande dont vous pouvez
1215 copier les renseignements, de même que ce dessin [de la page de garde] qui a
1216 quelquefois du succès : [montrant du doigt un personnage chassé par RMS à
1217 cheval sur un gnou] c'est un accapareur de logiciel effrayé, je parlerai de
1218 lui dans un moment.</p>
1219
1220 <p>Le logiciel est un phénomène relativement nouveau. Les gens ont commencé à
1221 distribuer du logiciel il y a peut-être trente ans. Il y a seulement vingt
1222 ans à peu près que quelqu'un a eu l'idée de faire du commerce avec
1223 ça. C'était un secteur sans a-priori sur la façon de faire ou sur les droits
1224 que l'on pouvait avoir, mais on avait quelques idées sur les autres domaines
1225 de la vie auxquels on pouvait emprunter leurs traditions, par analogie.</p>
1226
1227 <p>Une analogie appréciée par un bon nombre de professeurs en Europe est celle
1228 des mathématiques. Un programme est une sorte de grande formule. Par
1229 tradition, personne ne peut posséder une formule mathématique. N'importe qui
1230 peut la copier et s'en servir.</p>
1231
1232 <p>L'analogie qui a le plus de sens pour les gens ordinaires, c'est celle des
1233 recettes. Si vous y réfléchissez, ce qui ressemble le plus à un programme
1234 dans la vie ordinaire, c'est une recette – des instructions pour faire
1235 quelque chose. La différence, c'est qu'une recette est suivie par une
1236 personne, pas par une machine de façon automatisée. Il est vrai que pour la
1237 recette il n'y a pas de différence entre le code source et le code objet,
1238 mais cela reste ce qu'il y a de plus proche. Et personne n'est autorisé à
1239 posséder une recette.</p>
1240
1241 <p>Mais l'analogie qui a été choisie fut celle des livres, sur lesquels
1242 s'applique le copyright. Pourquoi ce choix a-t-il été fait ? Parce que les
1243 gens qui avaient le plus à gagner à faire ce choix particulier ont été
1244 autorisés à prendre la décision. Les gens qui écrivaient les programmes ont
1245 eu le droit de décider, pas ceux qui les utilisaient. Cela a été fait d'une
1246 façon totalement égoïste, en transformant le domaine de la programmation en
1247 quelque chose de sinistre.</p>
1248
1249 <p>Quand je suis entré dans ce secteur d'activité, quand j'ai commencé à
1250 travailler au MIT en 1971, l'idée que les programmes que nous développions
1251 pourraient ne pas être partagés n'était même pas discutée. Même chose à
1252 Stanford et à <abbr title="Carnegie Mellon University">CMU</abbr>, et
1253 partout ailleurs y compris chez Digital. À cette époque-là, le système
1254 d'exploitation de Digital était libre. J'en ai de temps en temps récupéré
1255 des morceaux, comme un assembleur multi-compatible pour PDP-11 que j'ai
1256 porté sur ITS et auquel j'ai ajouté de nombreuses fonctionnalités. Il n'y
1257 avait aucun copyright sur ce programme.</p>
1258
1259 <p>C'est seulement vers la fin des années 70 que ça a commencé à
1260 changer. J'étais extrêmement marqué par l'esprit de partage que nous avions
1261 jusque-là. Nous espérions faire quelque chose d'utile et nous étions heureux
1262 si les gens pouvaient s'en servir. Ainsi, quand j'ai développé le premier
1263 Emacs et que les gens ont commencé à vouloir l'utiliser en dehors du MIT,
1264 j'ai dit qu'il appartenait à la « communauté » Emacs. Pour utiliser Emacs
1265 vous deviez être membre de la communauté et ça voulait dire que vous deviez
1266 lui apporter en contribution toutes les améliorations que vous aviez
1267 faites. Toutes les améliorations de l'Emacs original devaient m'être
1268 renvoyées pour que je puisse les incorporer à de nouvelles versions d'Emacs,
1269 de manière que chacun dans la communauté puisse en bénéficier.</p>
1270
1271 <p>Mais ça a commencé à se dégrader quand Scribe a été développé à CMU, puis
1272 vendu à une entreprise. Cela a dérouté beaucoup d'entre nous, dans de
1273 nombreuses universités, parce que nous avons vu quelle tentation c'était
1274 pour chacun et à quel point il était profitable d'être peu coopératif. Et
1275 ceux d'entre nous qui y croyaient toujours n'avaient aucune arme pour tenter
1276 de convaincre les autres de coopérer avec nous. Sans aucun doute, les uns
1277 après les autres, ils allaient déserter et cesser de coopérer avec le reste
1278 de la société, jusqu'à ce qu'il ne reste plus que ceux d'entre nous qui
1279 avaient des consciences très fortes. Et c'est ce qui s'est passé.</p>
1280
1281 <p>La programmation est maintenant devenue un domaine sinistre, où chacun pense
1282 de façon cynique à combien il va gagner à ne pas être sympa avec les autres
1283 programmeurs, ni avec les utilisateurs.</p>
1284
1285 <p>Je veux montrer que la pratique de posséder le logiciel est à la fois
1286 matériellement inutile, moralement nuisible à la société, et malfaisante,
1287 ces trois choses étant interdépendantes. C'est moralement nocif parce que ça
1288 engage chaque membre de la société qui entre en contact avec l'informatique
1289 dans une pratique qui est manifestement du gaspillage pour les autres. Et
1290 chaque fois que vous faites pour votre bien personnel une chose dont savez
1291 qu'elle fait plus de mal aux autres qu'elle ne vous aide, vous êtes obligé
1292 de devenir cynique pour pouvoir en supporter la pensée. Et c'est malfaisant
1293 parce que ça gaspille délibérément le travail effectué sur la société, en
1294 affaiblissant le lien social.</p>
1295
1296 <p>D'abord je veux expliquer les différentes nuisances causées par les
1297 tentatives de posséder le logiciel ou, plus généralement, toute autre
1298 information utile, puis je m'appliquerai à réfuter les arguments des
1299 défenseurs de cette pratique, ensuite je voudrais parler de la façon de
1300 combattre ce phénomène et dire comment je m'y prends moi-même.</p>
1301
1302 <p>L'idée de posséder l'information est nocive à trois niveaux
1303 différents. Matériellement nocive à trois niveaux différents. Et à chaque
1304 type de nocivité matérielle correspond une nocivité morale.</p>
1305
1306 <p>Au premier niveau, c'est juste que ça décourage l'utilisation du
1307 programme. Il y a moins de gens qui utilisent le programme, mais ça ne
1308 demande pas moins de travail pour l'élaborer. Quand on met un prix sur
1309 l'utilisation d'un programme en tant qu'« incitation », c'est le mot que ces
1310 accapareurs de logiciel aiment à employer, c'est une incitation pour les
1311 gens à ne pas l'utiliser et c'est du gâchis. Si par exemple il y a deux fois
1312 moins de gens qui utilisent le programme à cause de son prix, le programme a
1313 été à moitié gaspillé. La même quantité de travail a produit moitié moins de
1314 richesse.</p>
1315
1316 <p>En fait, vous n'avez rien de spécial à faire pour qu'un programme soit
1317 diffusé vers tous ceux qui veulent l'utiliser, parce qu'ils peuvent
1318 parfaitement le copier eux-mêmes et qu'il finit par atteindre tout le
1319 monde. Tout ce que vous avez à faire, après avoir écrit le programme, c'est
1320 de vous asseoir tranquillement et de laisser les gens faire ce qu'ils
1321 veulent. Mais ce n'est pas ce qu'il se passe. Au lieu de ça, quelqu'un
1322 essaye délibérément d'entraver le partage du programme. Mais il ne tente pas
1323 simplement de l'entraver, il essaie de pousser les autres à l'aider. Toutes
1324 les fois qu'un utilisateur signe un accord de confidentialité, c'est comme
1325 s'il trahissait ses camarades utilisateurs. Au lieu de suivre la règle d'or
1326 et de dire « J'apprécie ce programme, mon voisin le voudrait aussi, je veux
1327 que nous l'ayons tous les deux », il dit « Ouais, donnez-le-moi. Au diable
1328 mon voisin ! Je vous aiderai à le maintenir hors de sa portée. Ne le donnez
1329 qu'à moi ! » C'est cet état d'esprit qui est source de nuisance morale,
1330 cette attitude qui consiste à dire : « Au diable mes voisins, donnez-m'en, à
1331 MOI, une copie. »</p>
1332
1333 <p>Après être tombé sur des gens qui disaient qu'ils ne me laisseraient pas
1334 avoir de copies parce qu'ils avaient signé un accord de confidentialité,
1335 quand quelqu'un me demandait de signer un truc comme ça je savais que
1336 c'était mal. Je ne pouvais pas faire à quelqu'un d'autre ce qui m'avait tant
1337 exaspéré quand on me l'avait fait à moi.</p>
1338
1339 <p>Mais ce n'est que le premier niveau de nocivité. Le deuxième niveau se
1340 manifeste quand les gens veulent modifier le programme, parce qu'un
1341 programme ne satisfait jamais vraiment tous ceux qui voudraient
1342 l'utiliser. Tout comme ils aiment varier les recettes, disons, en mettant
1343 moins de sel – ou peut-être aiment-ils rajouter des poivrons verts – les
1344 gens doivent également pouvoir modifier les programmes pour obtenir les
1345 résultats dont ils ont besoin.</p>
1346
1347 <p>Les propriétaires de logiciel ne s'inquiètent pas vraiment de savoir si les
1348 gens peuvent modifier le programme ou non, mais les en empêcher leur est
1349 utile pour parvenir à leurs fins. Généralement, quand un logiciel est
1350 propriétaire, vous ne pouvez pas obtenir les sources ; vous ne pouvez pas le
1351 modifier et c'est un grand gaspillage de travail pour les programmeurs,
1352 aussi bien qu'une grande frustration pour les utilisateurs. Par exemple, une
1353 amie m'a dit qu'elle avait travaillé pendant de nombreux mois dans une
1354 banque où elle était programmeuse pour écrire un nouveau programme. Or il y
1355 avait un programme disponible dans le commerce qui était presque bon, mais
1356 qui n'était pas tout à fait ce dont ils avaient besoin. Et tel quel, il leur
1357 était inutile. Cela ne demandait probablement qu'un changement minime, mais
1358 comme les sources de ce programme n'étaient pas disponibles c'était
1359 impossible. Elle a dû repartir de zéro et perdre beaucoup de temps. Et nous
1360 ne pouvons que spéculer sur la fraction de l'ensemble des programmeurs,
1361 partout dans le monde, qui perdent leur temps de cette façon.</p>
1362
1363 <p>Il y a aussi le cas où un programme est adéquat, mais peu pratique. Par
1364 exemple, la première fois que nous avons eu une imprimante graphique au MIT,
1365 nous avons écrit le logiciel nous-mêmes et nous avons installé un bon nombre
1366 d'utilitaires sympathiques. Par exemple, il vous envoyait un message quand
1367 votre tâche d'impression était finie, ou quand l'imprimante manquait de
1368 papier et que vous aviez une tâche en file d'attente, et pas mal d'autres
1369 choses qui correspondaient à ce que nous voulions. Puis on nous a donné une
1370 imprimante graphique beaucoup plus intéressante, une des premières
1371 imprimantes laser, mais le logiciel était fourni par Xerox et nous ne
1372 pouvions pas le modifier. Ils n'acceptaient pas d'intégrer ces
1373 fonctionnalités et nous ne pouvions pas le faire nous-même. Aussi avons-nous
1374 dû nous contenter de choses qui ne « fonctionnaient qu'à moitié ». Et
1375 c'était très frustrant de savoir que nous étions prêts à arranger ça,
1376 désireux et capables de le faire, mais que nous n'en avions pas le droit. On
1377 sabotait notre travail.</p>
1378
1379 <p>Et il y a tous les gens qui utilisent des ordinateurs et qui disent que les
1380 ordinateurs sont un mystère pour eux. Ils ne savent pas comment ça
1381 fonctionne. Mais comment pourraient-ils le savoir ? Ils ne peuvent pas lire
1382 les programmes qu'ils utilisent. La seule manière pour les gens d'apprendre
1383 comment les programmes doivent être écrits ou comment ils font ce qu'ils
1384 font, c'est de lire le code source.</p>
1385
1386 <p>Aussi peut-on se demander si l'idée que l'utilisateur voit l'ordinateur
1387 comme un simple outil ne serait pas une prophétie autoréalisatrice, une
1388 conséquence de la pratique de garder secret le code source.</p>
1389
1390 <p>La nocivité morale qui correspond à ce type de nocivité matérielle affecte
1391 le sentiment d'autosuffisance. Quand une personne passe une bonne partie de
1392 son temps à utiliser un système informatique, la configuration de ce système
1393 devient la cité dans laquelle elle vit. L'aménagement de nos maisons et la
1394 disposition des meubles déterminent comment nous y vivons, il en est de même
1395 pour le système informatique que nous utilisons. Si nous ne pouvons pas le
1396 modifier pour qu'il nous convienne, nos vies sont alors vraiment sous le
1397 contrôle des autres, et d'une certaine manière la personne qui le constate
1398 en est démoralisée : « Ça ne sert à rien d'essayer de changer ça, ce ne sera
1399 jamais bien. Ce n'est pas la peine de s'embêter. Je vais juste faire mes
1400 heures et&hellip; quand j'aurai fini, je m'en irai en tâchant de ne plus y
1401 penser. » Ce genre d'état d'esprit, ce manque d'enthousiasme, est le
1402 résultat obtenu quand on n'est pas autorisé à améliorer les choses alors
1403 qu'on serait prêt à montrer de l'esprit civique.</p>
1404
1405 <p>Le troisième niveau de nocivité se situe dans l'interaction entre les
1406 développeurs de logiciel eux-mêmes, car tout domaine de connaissance avance
1407 davantage quand les gens peuvent construire à partir du travail des
1408 autres. Mais l'appropriation de l'information par une personne est
1409 explicitement conçue pour empêcher toutes les autres de faire cela. Si les
1410 gens pouvaient construire à partir du travail des autres, alors la propriété
1411 deviendrait difficile à cerner, c'est pourquoi ils s'assurent que chaque
1412 nouveau venu dans le domaine commence au début, ce qui ralentit
1413 considérablement le progrès.</p>
1414
1415 <p>C'est ce que nous pouvons constater : combien y a-t-il de tableurs créés par
1416 des entreprises différentes sans qu'aucune ait profité de ce qui avait été
1417 fait auparavant ? Oui, c'est vrai, le premier tableur qui a été écrit
1418 n'était pas parfait. Il ne fonctionnait probablement que sur certains types
1419 d'ordinateurs et il ne faisait pas les choses de la meilleure manière
1420 possible. Donc il y avait diverses raisons pour lesquelles certaines
1421 personnes voulaient en réécrire des morceaux. Mais si elles avaient
1422 seulement dû réécrire les morceaux qu'elles voulaient vraiment améliorer, ça
1423 leur aurait donné beaucoup moins de travail. Vous pouvez très bien voir
1424 comment améliorer un des aspects d'un système, mais ne pas voir comment en
1425 améliorer un autre ; en fait cela pourrait vous être très difficile de le
1426 faire aussi bien. Si vous pouviez prendre la partie que vous trouvez bien et
1427 refaire seulement le morceau pour lequel vous avez des idées, vous pourriez
1428 avoir un système en tout point meilleur, avec beaucoup moins de travail que
1429 cela n'en prendrait de le réécrire entièrement. Nous savons tous qu'il peut
1430 être avantageux de réécrire un système complètement, mais à condition de
1431 pouvoir lire l'ancien d'abord.</p>
1432
1433 <p>Ainsi, dans le domaine de la programmation, les gens ont développé une
1434 manière de perdre une bonne partie de leur temps, créant de ce fait un
1435 apparent besoin en programmeurs, plus important qu'en réalité. Pourquoi y
1436 a-t-il un manque de programmeurs ? Parce qu'avec la propriété intellectuelle
1437 ils se sont organisés pour gaspiller la moitié de leur travail ; il semble
1438 ainsi que nous en ayons besoin de deux fois plus. Quand les gens se tournent
1439 vers le système de la propriété intellectuelle en disant « Regardez les
1440 belles statistiques de l'emploi, regardez l'ampleur de cette industrie »,
1441 cela ne prouve qu'une chose : l'ampleur du gaspillage de temps et
1442 d'argent. Quand ils parlent de chercher des moyens d'améliorer la
1443 productivité du programmeur, ils sont ravis de le faire si cela implique des
1444 outils plus évolués, mais si cela implique de se débarrasser de choses
1445 précises qui sont faites pour la réduire, ils sont contre – puisque cela
1446 réduirait le nombre d'emplois en programmation. Il y a comme une
1447 contradiction interne là-dedans.</p>
1448
1449 <p>Et la nocivité morale qui correspond à ce niveau de nocivité matérielle
1450 affecte l'esprit de coopération scientifique, qui autrefois était si fort
1451 que même les scientifiques de pays en guerre continuaient de coopérer, parce
1452 qu'ils savaient que ce qu'ils faisaient n'avait rien à voir avec la
1453 guerre. C'était uniquement pour le bénéfice à long terme de l'humanité. De
1454 nos jours, personne ne se préoccupe plus de ça.</p>
1455
1456 <p>Pour vous représenter ce que c'est que de faire obstacle à l'utilisation
1457 d'un programme, imaginez un sandwich que vous pourriez manger mais qui ne
1458 serait pas consommé. Vous pourriez le manger, une autre personne pourrait le
1459 manger, le même sandwich, autant de fois qu'elle voudrait, et il resterait
1460 toujours aussi nourrissant qu'à l'origine.</p>
1461
1462 <p>La meilleure chose à faire, ce que nous devrions faire avec ce sandwich,
1463 serait de l'amener partout où les gens ont faim ; de l'amener à autant de
1464 bouches que possible, de sorte qu'il alimente autant de personnes que
1465 possible. Il est certain que nous ne devons pas mettre de prix sur ce
1466 sandwich, parce que sinon les gens ne pourraient pas se permettre de le
1467 manger et il serait gaspillé.</p>
1468
1469 <p>Un programme est comme ce sandwich, mais en mieux, parce qu'il peut être
1470 mangé en même temps dans de nombreux endroits différents, utilisé par des
1471 personnes différentes les unes après les autres. C'est comme si ce sandwich
1472 suffisait pour alimenter tout le monde, partout, pour toujours, mais que ça
1473 lui était interdit parce que quelqu'un croyait qu'il devait le posséder.</p>
1474
1475 <p>Les gens qui croient pouvoir posséder des programmes proposent généralement
1476 deux types d'arguments. Le premier c'est : « Je l'ai écrit, c'est l'enfant
1477 de mon esprit, mon cœur, mon âme y est. Comment peut-on me l'enlever ? Où
1478 qu'il aille, il est à moi, à moi, À MOI !! » Très bien, mais il est curieux
1479 tout de même que la plupart d'entre eux signent des accords stipulant qu'il
1480 appartient à l'entreprise pour laquelle ils travaillent.</p>
1481
1482 <p>Aussi je crois que cela fait partie des choses dont vous pouvez facilement
1483 vous persuader qu'elles sont importantes, mais tout aussi aisément, qu'elles
1484 n'ont aucune importance.</p>
1485
1486 <p>Habituellement, ces personnes usent de cet argument pour exiger le droit de
1487 contrôler jusqu'à la façon dont les gens peuvent modifier le programme. Ils
1488 disent : « Personne ne doit pouvoir gâcher mon œuvre d'art. » Bien, imaginez
1489 que l'inventeur du plat que vous projetez de cuisiner ait le droit de
1490 contrôler la façon dont vous le préparez parce que c'est son œuvre
1491 d'art. Vous voulez enlever du sel, mais il dit : « Oh, non! J'ai conçu ce
1492 plat et il doit y avoir beaucoup de sel ! » – « Mais mon médecin m'a dit
1493 qu'il n'était pas bon pour moi de manger salé. Que puis-je faire ? »</p>
1494
1495 <p>La personne qui se sert du programme est évidemment bien plus près de
1496 l'événement. L'utilisation du programme l'affecte directement tandis que
1497 l'auteur a seulement une sorte de relation abstraite avec cette
1498 utilisation. Et donc, pour donner aux gens autant de contrôle que possible
1499 sur leurs propres vies, c'est l'utilisateur qui doit décider.</p>
1500
1501 <p>Le deuxième argument est économique. « Comment les gens seront-ils payés
1502 pour programmer ? » disent-ils, et il y a un peu de vrai là-dedans. Mais une
1503 bonne part de ce qu'ils disent est confus. Et la confusion vient de ce qu'il
1504 n'est pas du tout pareil de dire « Si nous voulons avoir beaucoup de gens
1505 pour programmer, nous devons nous assurer qu'ils n'auront pas besoin de
1506 gagner leur vie d'une autre manière » d'une part, et d'autre part de dire
1507 « Nous devons conserver le système actuel, nous devons devenir riches en
1508 programmant. » Il y a une grande différence entre juste percevoir un salaire
1509 pour vivre et se faire du fric comme le font les programmeurs de nos jours,
1510 du moins aux États-Unis. Ils disent toujours : « Comment vais-je manger ? »
1511 Mais le problème n'est pas vraiment de savoir « comment il va manger » mais
1512 « comment il va manger des sushis ». Ou bien : « Comment ferai-je pour avoir
1513 un toit au-dessus de la tête ? » Mais le vrai problème est : « Comment
1514 pourra-t-il se payer un appartement dans une copropriété ? »</p>
1515
1516 <p>Le système actuel a été choisi par les gens qui investissent dans le
1517 développement logiciel parce que ça leur donne la possibilité de se faire le
1518 plus d'argent possible, et non parce que c'est le seul moyen possible de
1519 récolter des fonds pour soutenir l'effort de développement d'un système. En
1520 fait, aussi récemment qu'il y a dix ou quinze ans, il était courant de
1521 soutenir le développement logiciel autrement. Par exemple, les systèmes
1522 d'exploitation de Digital qui étaient libres, même au début des années 70,
1523 ont été développés par des personnes payées pour ce travail. Beaucoup de
1524 programmes utiles ont été développés dans les universités. De nos jours ces
1525 programmes sont souvent vendus, mais il y a quinze ans ils étaient la
1526 plupart du temps gratuits, et pourtant les gens étaient payés pour leur
1527 travail.</p>
1528
1529 <p>Lorsque vous avez quelque chose comme un programme, comme un sandwich infini
1530 ou comme une route qui ne doit être construite qu'une fois, sachant qu'une
1531 fois construite il importe assez peu de savoir combien de fois vous
1532 l'utilisez, sachant que cela ne coûte rien de l'utiliser, il est
1533 généralement bien mieux de ne pas mettre de coût sur cette utilisation. Et
1534 il y a des tas de choses comme ça que nous développons aujourd'hui, en
1535 payant des gens pour le faire. Par exemple, toutes ces rues par
1536 là-bas. Autant il est facile de trouver des gens qui programmeront sans être
1537 payés, autant il est vraiment impossible d'en trouver qui construiront des
1538 routes sans être payés. La construction des routes n'est pas un travail
1539 créatif ni amusant comme la programmation mais il y a plein de rues par
1540 là-bas. Nous arrivons parfaitement à trouver de quoi payer ces gens et c'est
1541 bien mieux comme ça que d'avoir dit : « Laissons des entreprises privées
1542 construire des routes et installer des cabines de péage, et vous paierez un
1543 péage à chaque coin de rue. Alors les entreprises qui auront sélectionné les
1544 bons endroits pour mettre leurs routes feront des profits et les autres
1545 feront faillite. »</p>
1546
1547 <p>Il se produit une chose amusante chaque fois que quelqu'un propose une
1548 manière de faire de l'argent en accaparant quelque chose. Jusque-là, vous
1549 aviez probablement un bon nombre de gens vraiment enthousiastes et désireux
1550 de travailler dans ce domaine. Et la seule question qui se posait était :
1551 « Comment peuvent-ils trouver un moyen d'existence ? » Si nous pensons aux
1552 mathématiciens par exemple, il y a beaucoup plus de gens qui veulent être
1553 des mathématiciens purs que de financement pour que tout le monde le
1554 devienne. Et même lorsqu'ils obtiennent des fonds, ils n'en obtiennent pas
1555 beaucoup. Et ces gens ne vivent pas bien. Pour les musiciens, c'est encore
1556 pire. J'ai vu des statistiques sur ce que gagne le musicien moyen, le péquin
1557 moyen qui consacre la majeure partie de son temps à tenter de devenir
1558 musicien dans le Massachusetts ; c'est quelque chose comme la moitié du
1559 revenu moyen, ou moins. C'est à peine assez pour vivre, c'est dur. Mais il y
1560 en a un bon nombre qui essaient. Et puis, d'une façon ou d'une autre, quand
1561 il devient possible d'être très bien payé pour faire quelque chose,
1562 généralement tous ces gens disparaissent. Et on commence à dire : « Personne
1563 ne le fera à moins d'être payé aussi bien. »</p>
1564
1565 <p>J'ai vu cela se produire dans le domaine de la programmation. Les mêmes qui
1566 travaillaient au labo d'IA en étant très peu payés et qui trouvaient ça très
1567 bien, aujourd'hui n'imagineraient pas travailler pour moins de cinquante
1568 mille dollars par an. Que s'est-il passé ? Quand vous faites miroiter aux
1569 gens la possibilité de faire de l'argent, quand ils en voient d'autres faire
1570 le même travail en étant payés très cher, ils estiment devoir obtenir la
1571 même chose et personne n'est alors disposé à continuer comme avant. Il est
1572 facile, une fois que cela s'est produit, de penser que la seule option est
1573 de payer les gens énormément. Mais ce n'est pas vrai. Si la possibilité de
1574 faire de l'argent n'existait pas, vous auriez des gens qui accepteraient de
1575 le faire pour pas grand-chose, surtout si c'était créatif et amusant.</p>
1576
1577 <p>J'ai donc vu ce monde unique du labo d'IA se faire détruire, et la vente du
1578 logiciel faire partie intégrante de ce qui l'a détruit. J'ai vu également,
1579 comme je l'ai expliqué, qu'on a besoin de logiciel libre pour retrouver une
1580 communauté comme celle-là. Mais en y réfléchissant davantage, j'ai compris
1581 en quoi l'accaparement du logiciel fait du mal à l'ensemble de la société
1582 – plus particulièrement en poussant les gens à trahir leurs voisins, ce qui
1583 entraîne l'affaiblissement du lien social ; ce même état d'esprit qui
1584 conduit les gens à voir quelqu'un se faire poignarder dans la rue et à
1585 n'avertir personne ; cet état d'esprit dont nous pouvons voir tant
1586 d'entreprises faire preuve autour de nous. Il m'est apparu clairement que
1587 j'avais un choix à faire. Je pouvais faire partie de ce monde et me sentir
1588 malheureux de voir ce que je faisais de ma vie, ou je pouvais décider de le
1589 combattre. Alors j'ai décidé de le combattre. J'ai consacré ma carrière à
1590 tenter de reconstruire la communauté de partage du logiciel, à tenter de
1591 mettre un terme au phénomène d'accaparement d'information utile à tous. Et
1592 le système GNU est un moyen à cet effet. C'est un moyen technique à des fins
1593 sociales. Avec le système GNU, j'espère vacciner les utilisateurs contre la
1594 menace des accapareurs de logiciel.</p>
1595
1596 <p>En ce moment, les accapareurs réclament essentiellement le pouvoir de rendre
1597 inutile l'ordinateur personnel. Il y a une cinquantaine d'années, il y avait
1598 des gens aux USA, de la Mafia, qui entraient dans les magasins et les bars,
1599 surtout les bars quand les bars étaient hors-la-loi, évidemment. Une fois
1600 entrés, ils disaient : « Pas mal d'endroits par ici ont brûlé
1601 dernièrement. Vous ne voudriez pas que le vôtre subisse le même sort ? Eh
1602 bien, nous pouvons vous protéger contre les incendies, vous avez juste à
1603 nous payer mille dollars par mois et nous ferons en sorte qu'il n'y ait pas
1604 le feu. » Et ça s'appelait « le racket de protection ». Aujourd'hui nous en
1605 sommes à quelque chose près à ce qu'une personne nous dise : « Vous avez un
1606 joli ordinateur ici et vous utilisez quelques programmes. Eh bien, si vous
1607 ne voulez pas que ces programmes disparaissent, si vous ne voulez pas que la
1608 police vous poursuive, vous feriez mieux de me payer mille dollars et je
1609 vous donnerai un exemplaire de ce programme avec une licence. » Et ça
1610 s'appelle « le racket de protection du logiciel ».</p>
1611
1612 <p>En réalité, ils ne font que mettre des bâtons dans les roues de tous ceux
1613 qui font ce qui doit être fait, mais ils se prétendent à eux-mêmes, et
1614 veulent nous faire croire, qu'ils ont une fonction utile. Bon. Ce que
1615 j'espère, c'est que le jour où ce type de la Mafia du logiciel entrera et
1616 dira « Vous voulez que ces programmes disparaissent de votre ordinateur ? »
1617 l'utilisateur puisse répondre « Je n'ai plus peur de vous. J'ai le logiciel
1618 libre GNU et il n'y a rien que vous puissiez me faire désormais. »</p>
1619
1620 <p>Quelquefois, les gens essaient de se justifier de posséder le logiciel en
1621 avançant l'idée qu'il faut donner aux gens des incitations pour produire des
1622 choses. Je suis d'accord avec la notion d'entreprise privée en général et
1623 avec l'espoir de gagner de l'argent en produisant des choses que d'autres
1624 apprécient, mais ça se détraque dans le domaine du logiciel
1625 actuellement. Produire un programme propriétaire, ce n'est pas la même
1626 contribution à la société que produire ce même programme et le laisser
1627 libre. Parce que l'écriture du programme est juste une contribution
1628 potentielle à la société. La vraie contribution à la richesse de la société
1629 se fait seulement quand le programme est utilisé. Et si vous empêchez
1630 l'utilisation du programme, la contribution ne se fait pas vraiment. La
1631 contribution dont la société a besoin ne réside pas dans ces programmes
1632 propriétaires que tout le monde est tellement incité à faire. La
1633 contribution que nous voulons vraiment est celle du logiciel libre. Notre
1634 société se détraque parce qu'elle donne aux gens des incitations pour faire
1635 ce qui n'est pas très utile et aucune pour faire ce qui est utile. Ainsi
1636 l'idée sur quoi repose l'entreprise privée n'est pas mise en application. On
1637 pourrait même dire que la société est névrotique, car après tout, quand une
1638 personne encourage dans le comportement des autres ce qui n'est pas bon pour
1639 elle, on appelle ça une névrose. C'est comme cela que se comporte notre
1640 société, en encourageant les programmeurs à faire des choses qui ne sont pas
1641 bonnes pour elle.</p>
1642
1643 <p>Je sors un peu du commun. Je préfère croire que je suis un bon membre de la
1644 société et que je contribue à quelque chose plutôt que de sentir que je
1645 l'arnaque avec succès, c'est pourquoi j'ai décidé de faire ce que j'ai
1646 fait. Mais cela tracasse chacun, au moins un petit peu, d'avoir le sentiment
1647 d'être payé pour faire ce qui n'est pas vraiment utile. Par conséquent,
1648 cessons de défendre les incitations à faire ce qui est mauvais et essayons
1649 au moins de proposer des arrangements pour inciter les gens à faire ce qui
1650 est bon, c'est-à-dire du logiciel libre.</p>
1651
1652 <p>Merci.</p>
1653
1654 <p><strong>[Après ça, RMS a répondu à des questions pendant environ une
1655 heure. Je n'en ai inclus que quelques-unes dans cette version. La bande
1656 était mauvaise et je n'ai pas eu le temps de faire le travail nécessaire sur
1657 la totalité]</strong></p>
1658
1659 <dl>
1660 <dt><b>Question :</b> Est-ce que quelqu'un a tenté de vous causer des ennuis ?</dt>
1661
1662 <dd><p><b>Réponse :</b> La seule fois où l'on a tenté de me causer des ennuis,
1663 c'était ces propriétaires, ces prétendus propriétaires, autoproclamés, de
1664 Gosling Emacs. Hormis le fait qu'ils n'avaient aucune raison de le faire,
1665 ils ne pouvaient pas faire grand-chose. D'ailleurs, je voudrais attirer
1666 l'attention de tout le monde sur la façon dont les gens se servent du
1667 langage pour vous inciter à penser d'une certaine façon et pas
1668 autrement. Une grande part de la terminologie actuelle dans ce domaine a été
1669 choisie par les propriétaires autoproclamés de logiciel pour vous inciter à
1670 assimiler le logiciel à des biens matériels et à oublier les
1671 différences. L'exemple le plus flagrant en est le terme « pirate ». Refusez
1672 s'il vous plaît d'utiliser le terme « pirate » pour décrire quelqu'un qui
1673 souhaite partager du logiciel avec son voisin comme tout bon citoyen.</p>
1674
1675 <p>J'ai oublié de vous dire ceci : La notion de copyright est apparue après
1676 l'invention de la presse à imprimer. Dans les temps anciens, les auteurs se
1677 copiaient les uns les autres librement et ceci n'était pas considéré comme
1678 un mal. Et c'était même très utile : certaines œuvres originales n'ont pu
1679 survivre, bien que de manière fragmentaire, que grâce à des citations
1680 extensives dans d'autres œuvres qui, elles, ont survécu.</p>
1681
1682 <p>C'est parce que la copie des livres se faisait à l'unité ; il était dix fois
1683 plus difficile d'en faire dix copies qu'une seule. Puis la presse à imprimer
1684 a été inventée. Ceci n'a pas empêché les gens de copier les livres à la
1685 main, mais comparée à l'impression, la copie manuelle était si pénible
1686 qu'elle aurait aussi bien pu être impossible.</p>
1687
1688 <p>Quand les livres ont pu être produits en masse, le copyright commença à
1689 avoir un sens. De plus, celui-ci ne confisquait pas la liberté des lecteurs
1690 ordinaires, puisqu'en tant que membre du public qui n'avait pas de presse,
1691 vous ne pouviez pas copier de livre de toute façon. Le copyright ne vous
1692 privait donc d'aucune liberté. Il a été inventé, et avait du sens
1693 moralement, à cause d'un changement technologique. Or aujourd'hui le
1694 changement inverse se produit. La copie individuelle d'information se fait
1695 de mieux en mieux et nous pouvons voir que la finalité du progrès
1696 technologique est de permettre de copier n'importe quel genre
1697 d'information&hellip; <span>[coupure due à l'inversion de la bande]</span>.</p>
1698
1699 <p>Ainsi nous retournons à la même situation que dans le monde antique où le
1700 copyright n'avait aucun sens.</p>
1701
1702 <p>Considérons notre concept de propriété. Il a son origine dans les objets
1703 matériels. Ces derniers satisfont la loi de conservation, à peu de choses
1704 près. Oui c'est vrai, je peux casser une craie en deux, mais ce n'est pas
1705 ça ; elle va s'user, se « consommer ». Mais fondamentalement ceci est une
1706 chaise [pointant une chaise du doigt]. Je ne peux pas simplement claquer des
1707 doigts et en avoir deux. La seule manière d'en avoir une deuxième, c'est de
1708 la construire comme l'a été la première. Ça prend plus de matières
1709 premières, plus de travail de production. Nos idées de propriété ont été
1710 développées pour que le sens moral s'accorde avec ces faits.</p>
1711
1712 <p>Pour une portion d'information que tout le monde peut copier, les faits sont
1713 différents, et donc les attitudes morales correspondantes sont
1714 différentes. Les attitudes morales proviennent de la réflexion sur le nombre
1715 de gens que cela va aider et le nombre de gens que cela va léser de faire
1716 certaines choses. Lorsqu'il s'agit d'un objet matériel, vous pouvez venir
1717 prendre cette chaise, mais vous ne pouvez pas venir la copier. Et si vous
1718 emportiez la chaise, cela ne produirait rien, vous n'auriez aucune
1719 excuse. Si quelqu'un dit « J'ai travaillé pour faire cette chaise, une seule
1720 personne peut avoir cette chaise, ça peut aussi bien être moi », nous
1721 pourrions aussi bien dire « Oui, c'est compréhensible. » Quand une personne
1722 dit « J'ai gravé les bits de ce disque, une seule personne peut l'avoir,
1723 alors n'essayez pas de me l'enlever », ça se comprend aussi. Si une seule
1724 personne peut avoir le disque, pourquoi pas celui à qui il appartient ?</p>
1725
1726 <p>Mais quand quelqu'un d'autre arrive et dit « Je ne vais pas abîmer votre
1727 disque, je vais juste en faire un autre comme lui par magie, je l'emmènerai
1728 et vous pourrez continuer à utiliser ce disque comme vous le faisiez
1729 auparavant », eh bien, c'est la même chose que si quelqu'un disait « J'ai un
1730 copieur magique de chaise. Vous pouvez continuer à profiter de votre chaise
1731 en l'ayant toujours à disposition mais j'en aurai une aussi. » C'est une
1732 bonne chose.</p>
1733
1734 <p>Si les gens n'ont pas à construire mais juste à claquer des doigts et
1735 reproduire, c'est merveilleux. Mais ce changement technologique ne convient
1736 pas à ceux qui voudraient pouvoir posséder des copies particulières et en
1737 tirer de l'argent. C'est une idée qui ne correspond qu'aux objets qui se
1738 conservent. Aussi font-ils leur possible pour transformer les programmes en
1739 objets matériels. Vous êtes-vous demandés pourquoi, quand vous allez dans un
1740 magasin de logiciel et que vous achetez un exemplaire d'un programme, cela
1741 revient à acheter quelque chose qui ressemble à un livre ? Ils veulent que
1742 les gens pensent à leur achat comme à un objet matériel, sans se rendre
1743 compte qu'il est en réalité sous forme de données numériques copiables.</p>
1744
1745 <p>Après tout, qu'est-ce qu'un ordinateur à part une machine universelle ? Vous
1746 avez probablement étudié les machines universelles de Turing, ces machines
1747 qui peuvent imiter n'importe quelle autre machine. L'avantage d'une machine
1748 universelle, c'est que vous pouvez lui faire imiter n'importe quelle autre
1749 machine et que les modes d'emploi peuvent être copiés et changés, toutes
1750 choses que vous ne pouvez pas faire avec un objet matériel. Et c'est
1751 exactement ce que les accapareurs de logiciel veulent que le public arrête
1752 de faire. Ils veulent profiter du changement technologique, en marche vers
1753 les machines universelles, mais ils ne veulent pas que le public en profite.</p>
1754
1755 <p>En gros, ils tentent de conserver « l'âge de l'objet matériel », mais
1756 celui-ci est dépassé. Notre conception du bien et du mal doit être synchrone
1757 avec les faits réels du monde dans lequel nous vivons.</p>
1758 </dd>
1759
1760 <dt><b>Question :</b> Ainsi ça se ramène à la propriété de
1761 l'information. Pensez-vous qu'il y ait des exemples où, selon vous, il soit
1762 juste de posséder l'information ?</dt>
1763
1764 <dd><p><b>Réponse :</b> Pour une information qui n'est pas utile au public ou qui a
1765 un caractère personnel, je dirais OK. En d'autres termes, l'information qui
1766 porte, non sur la manière de faire les choses mais sur ce que vous avez
1767 l'intention de faire ; l'information dont la seule valeur pour les autres
1768 est spéculative ; celle qui leur permet de vous faire perdre de l'argent
1769 mais avec laquelle ils ne peuvent véritablement rien créer. Je dirais qu'il
1770 est parfaitement raisonnable de garder ce genre de chose secrète et sous
1771 contrôle.</p>
1772
1773 <p>Mais l'information créatrice, celle que les gens peuvent utiliser ou dont
1774 ils peuvent profiter, et ce d'autant mieux que plus de gens y auront accès,
1775 nous devons toujours en encourager la copie.</p>
1776 </dd>
1777 </dl>
1778 </div>
1779
1780 <div class="translators-notes">
1781
1782 <!--TRANSLATORS: Use space (SPC) as msgstr if you don't have notes.-->
1783 <hr /><b>Notes de traduction</b><ol>
1784 <li><a id="TransNote1" href="#TransNote1-rev"
1785 class="nounderline">&#8593;</a> 
1786 ITS <i>(Incompatible Timesharing System)</i> : « Système à temps partagé
1787 incompatible », conçu par les hackers du laboratoire d'intelligence
1788 artificielle et nommé en opposition avec CTSS <i>(Compatible Time Sharing
1789 System)</i>, utilisé précédemment au MIT.</li>
1790 <li><a id="TransNote2" href="#TransNote2-rev"
1791 class="nounderline">&#8593;</a> 
1792 Nous traduisons maintenant <i>proprietary</i> par « privateur ».</li>
1793 <li><a id="TransNote3" href="#TransNote3-rev"
1794 class="nounderline">&#8593;</a> 
1795 <i>Wheel bit</i> (litt. bit de gouvernail) : il s'agit d'un bit particulier
1796 du nombre binaire définissant un utilisateur sous Twenex (ou certains autres
1797 systèmes à temps partagé des années 80), qui permet à cet utilisateur de
1798 faire certaines opérations interdites à l'utilisateur normal. Les privilèges
1799 du mode <i>wheel</i> sont analogues à ceux de <i>root</i> sous Unix.</li>
1800 <li><a id="TransNote4" href="#TransNote4-rev"
1801 class="nounderline">&#8593;</a> 
1802 DDT signifiait à l'origine <i><abbr title="Digital Equipment
1803 Corporation">DEC</abbr> Debugging Tape</i> (bande de débogage de
1804 DEC). C'était un ensemble de programmes, développé en 1961, permettant de
1805 déboguer le système d'exploitation du PDP-1 (les bandes dont il s'agissait
1806 étaient des bandes perforées). Des systèmes similaires existent pour des
1807 machines plus récentes, ils ont pour nom <i>Dynamic Debugging Technique</i>,
1808 de manière à garder le même sigle. DDT fait allusion à l'insecticide <i>[bug
1809 killer]</i> de l'époque.</li>
1810 <li><a id="TransNote5" href="#TransNote5-rev"
1811 class="nounderline">&#8593;</a> 
1812 <i>Free University Compiler Kit</i> peut s'interpréter de deux manières
1813 différentes, car on ne sait pas si l'adjectif <i>free</i> qualifie
1814 <i>compiler kit</i> ou <i>university</i>. En fait, il s'agit du « kit de
1815 compilation de l'Université Libre (d'Amsterdam) ».</li>
1816 <li><a id="TransNote6" href="#TransNote6-rev"
1817 class="nounderline">&#8593;</a> 
1818 <i>C-shell</i> se prononce de la même façon que <i>seashell</i>
1819 (coquillage). Il n'est pas impossible que ce jeu de mots soit voulu.</li>
1820 <li><a id="TransNote7" href="#TransNote7-rev"
1821 class="nounderline">&#8593;</a> 
1822 <i>Bouncing ball</i> : peut-être une allusion à la « balle bondissante » du
1823 karaoke qui rebondit sur les paroles affichées à l'écran au moment où il
1824 faut les chanter.</li>
1825 </ol></div>
1826 </div>
1827
1828 <!-- for id="content", starts in the include above -->
1829 <!--#include virtual="/server/footer.fr.html" -->
1830 <div id="footer" role="contentinfo">
1831 <div class="unprintable">
1832
1833 <p>Veuillez envoyer les requêtes concernant la FSF et GNU à &lt;<a
1834 href="mailto:gnu@gnu.org">gnu@gnu.org</a>&gt;. Il existe aussi <a
1835 href="/contact/">d'autres moyens de contacter</a> la FSF. Les liens
1836 orphelins et autres corrections ou suggestions peuvent être signalés à
1837 &lt;<a href="mailto:webmasters@gnu.org">webmasters@gnu.org</a>&gt;.</p>
1838
1839 <p>
1840 <!-- TRANSLATORS: Ignore the original text in this paragraph,
1841 replace it with the translation of these two:
1842
1843 We work hard and do our best to provide accurate, good quality
1844 translations. However, we are not exempt from imperfection.
1845 Please send your comments and general suggestions in this regard
1846 to <a href="mailto:web-translators@gnu.org">
1847
1848 &lt;web-translators@gnu.org&gt;</a>.</p>
1849
1850 <p>For information on coordinating and contributing translations of
1851 our web pages, see <a
1852 href="/server/standards/README.translations.html">Translations
1853 README</a>. -->
1854 Merci d'adresser vos commentaires sur les pages en français à &lt;<a
1855 href="mailto:trad-gnu@april.org">trad-gnu@april.org</a>&gt;, et sur les
1856 traductions en général à &lt;<a
1857 href="mailto:web-translators@gnu.org">web-translators@gnu.org</a>&gt;. Si
1858 vous souhaitez y contribuer, vous trouverez dans le <a
1859 href="/server/standards/README.translations.html">guide de traduction</a>
1860 les infos nécessaires.</p>
1861 </div>
1862
1863 <!-- Regarding copyright, in general, standalone pages (as opposed to
1864 files generated as part of manuals) on the GNU web server should
1865 be under CC BY-ND 4.0. Please do NOT change or remove this
1866 without talking with the webmasters or licensing team first.
1867 Please make sure the copyright date is consistent with the
1868 document. For web pages, it is ok to list just the latest year the
1869 document was modified, or published.
1870
1871 If you wish to list earlier years, that is ok too.
1872 Either "2001, 2002, 2003" or "2001-2003" are ok for specifying
1873 years, as long as each year in the range is in fact a copyrightable
1874 year, i.e., a year in which the document was published (including
1875 being publicly visible on the web or in a revision control system).
1876
1877 There is more detail about copyright years in the GNU Maintainers
1878 Information document, www.gnu.org/prep/maintain. -->
1879 <p>
1880 Copyright &copy; 1987 Richard Stallman et Bjrn Remseth
1881 </p>
1882 <p>
1883 La reproduction exacte et la distribution de copies intégrales de cette
1884 transcription sont permises sur n'importe quel support d'archivage, pourvu
1885 que l'avis de copyright et le présent avis de permission y figurent de
1886 manière apparente.
1887 </p>
1888
1889 <!--#include virtual="/server/bottom-notes.fr.html" -->
1890 <div class="translators-credits">
1891
1892 <!--TRANSLATORS: Use space (SPC) as msgstr if you don't want credits.-->
1893 Traduction : Miluz<br /> Révision : <a
1894 href="mailto:trad-gnu@april.org">trad-gnu@april.org</a></div>
1895
1896 <p class="unprintable"><!-- timestamp start -->
1897 Dernière mise à jour :
1898
1899 $Date: 2024/02/26 10:17:02 $
1900
1901 <!-- timestamp end -->
1902 </p>
1903 </div>
1904 </div>
1905 <!-- for class="inner", starts in the banner include -->
1906 </body>
1907 </html>

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26