www-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

www copyleft/copyleft.last graphics/agnuhead.ht...


From: John Sullivan
Subject: www copyleft/copyleft.last graphics/agnuhead.ht...
Date: Fri, 13 Oct 2006 19:24:27 +0000

CVSROOT:        /web/www
Module name:    www
Changes by:     John Sullivan <johnsu01>        06/10/13 19:24:27

Modified files:
        copyleft       : copyleft.last 
        graphics       : agnuhead.html ahurdlogo.html anfsflogo.html 
                         anlpflogo.html anothertypinggnu.html 
                         atypinggnu.html babygnu.html bokma-gnu.html 
                         bwcartoon.html fromagnulinux.html fsf-logo.html 
                         gleesons.html gnu-alternative.html 
                         gnu-jacket.html gnubanner.html gnupascal.html 
                         gnusvgart.html graphics.html 
                         graphics.htmlLastAllImagesDisplayed 
                         groff-head.html heckert_gnu.html 
                         httptunnel-logo.html listen.html meditate.html 
                         philosophicalgnu.html reiss-gnuhead.html 
                         slickgnu.html spiritoffreedom.html usegnu.html 
                         whatsgnu.html 
        philosophy     : basic-freedoms.es.html greve-clown.de.html 
                         greve-clown.en.html netscape-npl-old.html 
                         stallman-kth.ja.html 
        prep/maintain  : index.html 
        prep/standards : index.html 
        software/barcode: barcode.html 
        software/bc/manual: bc.html 
        software/bc/manual/dc-1.05: dc.html 
        software/cvs/manual: cvs.html 
        software/dr_geo: dr_geo.html 
        software/finger/manual: finger.html 
        software/flex/manual: flex.html 
        software/gawk/manual: index.html 
        software/gawk/manual/gawkinet: index.html 
        software/gettext/manual: gettext.html 
        software/gmp/manual: gmp.html index.html 
        software/gperf/manual: gperf.html 
        software/gzip/manual: gzip.html 
        software/nana/manual: nana.html 
        software/pipo/bot-AI: bot.html 
        software/plotutils/manual: plotutils.html 
        software/queue : queue.html 
        software/sed/manual: sed.html 
        software/sxml  : sxml.html 
        software/termutils/manual/termcap-1.3: termcap.html 
        software/termutils/manual/termutils-2.0: tput.html 
        software/wget/manual/wget-1.8.1: wget.html 
        wwwin/graphics : agnuhead.html 

Log message:
        Removed complaint about GIFs, since it's not a problem anymore.

CVSWeb URLs:
http://web.cvs.savannah.gnu.org/viewcvs/www/copyleft/copyleft.last?cvsroot=www&r1=1.2&r2=1.3
http://web.cvs.savannah.gnu.org/viewcvs/www/graphics/agnuhead.html?cvsroot=www&r1=1.23&r2=1.24
http://web.cvs.savannah.gnu.org/viewcvs/www/graphics/ahurdlogo.html?cvsroot=www&r1=1.10&r2=1.11
http://web.cvs.savannah.gnu.org/viewcvs/www/graphics/anfsflogo.html?cvsroot=www&r1=1.10&r2=1.11
http://web.cvs.savannah.gnu.org/viewcvs/www/graphics/anlpflogo.html?cvsroot=www&r1=1.7&r2=1.8
http://web.cvs.savannah.gnu.org/viewcvs/www/graphics/anothertypinggnu.html?cvsroot=www&r1=1.8&r2=1.9
http://web.cvs.savannah.gnu.org/viewcvs/www/graphics/atypinggnu.html?cvsroot=www&r1=1.10&r2=1.11
http://web.cvs.savannah.gnu.org/viewcvs/www/graphics/babygnu.html?cvsroot=www&r1=1.12&r2=1.13
http://web.cvs.savannah.gnu.org/viewcvs/www/graphics/bokma-gnu.html?cvsroot=www&r1=1.10&r2=1.11
http://web.cvs.savannah.gnu.org/viewcvs/www/graphics/bwcartoon.html?cvsroot=www&r1=1.7&r2=1.8
http://web.cvs.savannah.gnu.org/viewcvs/www/graphics/fromagnulinux.html?cvsroot=www&r1=1.6&r2=1.7
http://web.cvs.savannah.gnu.org/viewcvs/www/graphics/fsf-logo.html?cvsroot=www&r1=1.8&r2=1.9
http://web.cvs.savannah.gnu.org/viewcvs/www/graphics/gleesons.html?cvsroot=www&r1=1.8&r2=1.9
http://web.cvs.savannah.gnu.org/viewcvs/www/graphics/gnu-alternative.html?cvsroot=www&r1=1.9&r2=1.10
http://web.cvs.savannah.gnu.org/viewcvs/www/graphics/gnu-jacket.html?cvsroot=www&r1=1.6&r2=1.7
http://web.cvs.savannah.gnu.org/viewcvs/www/graphics/gnubanner.html?cvsroot=www&r1=1.9&r2=1.10
http://web.cvs.savannah.gnu.org/viewcvs/www/graphics/gnupascal.html?cvsroot=www&r1=1.9&r2=1.10
http://web.cvs.savannah.gnu.org/viewcvs/www/graphics/gnusvgart.html?cvsroot=www&r1=1.5&r2=1.6
http://web.cvs.savannah.gnu.org/viewcvs/www/graphics/graphics.html?cvsroot=www&r1=1.39&r2=1.40
http://web.cvs.savannah.gnu.org/viewcvs/www/graphics/graphics.htmlLastAllImagesDisplayed?cvsroot=www&r1=1.2&r2=1.3
http://web.cvs.savannah.gnu.org/viewcvs/www/graphics/groff-head.html?cvsroot=www&r1=1.2&r2=1.3
http://web.cvs.savannah.gnu.org/viewcvs/www/graphics/heckert_gnu.html?cvsroot=www&r1=1.7&r2=1.8
http://web.cvs.savannah.gnu.org/viewcvs/www/graphics/httptunnel-logo.html?cvsroot=www&r1=1.9&r2=1.10
http://web.cvs.savannah.gnu.org/viewcvs/www/graphics/listen.html?cvsroot=www&r1=1.10&r2=1.11
http://web.cvs.savannah.gnu.org/viewcvs/www/graphics/meditate.html?cvsroot=www&r1=1.21&r2=1.22
http://web.cvs.savannah.gnu.org/viewcvs/www/graphics/philosophicalgnu.html?cvsroot=www&r1=1.13&r2=1.14
http://web.cvs.savannah.gnu.org/viewcvs/www/graphics/reiss-gnuhead.html?cvsroot=www&r1=1.9&r2=1.10
http://web.cvs.savannah.gnu.org/viewcvs/www/graphics/slickgnu.html?cvsroot=www&r1=1.7&r2=1.8
http://web.cvs.savannah.gnu.org/viewcvs/www/graphics/spiritoffreedom.html?cvsroot=www&r1=1.6&r2=1.7
http://web.cvs.savannah.gnu.org/viewcvs/www/graphics/usegnu.html?cvsroot=www&r1=1.6&r2=1.7
http://web.cvs.savannah.gnu.org/viewcvs/www/graphics/whatsgnu.html?cvsroot=www&r1=1.11&r2=1.12
http://web.cvs.savannah.gnu.org/viewcvs/www/philosophy/basic-freedoms.es.html?cvsroot=www&r1=1.2&r2=1.3
http://web.cvs.savannah.gnu.org/viewcvs/www/philosophy/greve-clown.de.html?cvsroot=www&r1=1.2&r2=1.3
http://web.cvs.savannah.gnu.org/viewcvs/www/philosophy/greve-clown.en.html?cvsroot=www&r1=1.1&r2=1.2
http://web.cvs.savannah.gnu.org/viewcvs/www/philosophy/netscape-npl-old.html?cvsroot=www&r1=1.2&r2=1.3
http://web.cvs.savannah.gnu.org/viewcvs/www/philosophy/stallman-kth.ja.html?cvsroot=www&r1=1.1&r2=1.2
http://web.cvs.savannah.gnu.org/viewcvs/www/prep/maintain/index.html?cvsroot=www&r1=1.17&r2=1.18
http://web.cvs.savannah.gnu.org/viewcvs/www/prep/standards/index.html?cvsroot=www&r1=1.16&r2=1.17
http://web.cvs.savannah.gnu.org/viewcvs/www/software/barcode/barcode.html?cvsroot=www&r1=1.2&r2=1.3
http://web.cvs.savannah.gnu.org/viewcvs/www/software/bc/manual/bc.html?cvsroot=www&r1=1.1&r2=1.2
http://web.cvs.savannah.gnu.org/viewcvs/www/software/bc/manual/dc-1.05/dc.html?cvsroot=www&r1=1.1&r2=1.2
http://web.cvs.savannah.gnu.org/viewcvs/www/software/cvs/manual/cvs.html?cvsroot=www&r1=1.1&r2=1.2
http://web.cvs.savannah.gnu.org/viewcvs/www/software/dr_geo/dr_geo.html?cvsroot=www&r1=1.3&r2=1.4
http://web.cvs.savannah.gnu.org/viewcvs/www/software/finger/manual/finger.html?cvsroot=www&r1=1.1&r2=1.2
http://web.cvs.savannah.gnu.org/viewcvs/www/software/flex/manual/flex.html?cvsroot=www&r1=1.1&r2=1.2
http://web.cvs.savannah.gnu.org/viewcvs/www/software/gawk/manual/index.html?cvsroot=www&r1=1.1&r2=1.2
http://web.cvs.savannah.gnu.org/viewcvs/www/software/gawk/manual/gawkinet/index.html?cvsroot=www&r1=1.1&r2=1.2
http://web.cvs.savannah.gnu.org/viewcvs/www/software/gettext/manual/gettext.html?cvsroot=www&r1=1.1&r2=1.2
http://web.cvs.savannah.gnu.org/viewcvs/www/software/gmp/manual/gmp.html?cvsroot=www&r1=1.1&r2=1.2
http://web.cvs.savannah.gnu.org/viewcvs/www/software/gmp/manual/index.html?cvsroot=www&r1=1.1&r2=1.2
http://web.cvs.savannah.gnu.org/viewcvs/www/software/gperf/manual/gperf.html?cvsroot=www&r1=1.1&r2=1.2
http://web.cvs.savannah.gnu.org/viewcvs/www/software/gzip/manual/gzip.html?cvsroot=www&r1=1.1&r2=1.2
http://web.cvs.savannah.gnu.org/viewcvs/www/software/nana/manual/nana.html?cvsroot=www&r1=1.1&r2=1.2
http://web.cvs.savannah.gnu.org/viewcvs/www/software/pipo/bot-AI/bot.html?cvsroot=www&r1=1.1&r2=1.2
http://web.cvs.savannah.gnu.org/viewcvs/www/software/plotutils/manual/plotutils.html?cvsroot=www&r1=1.1&r2=1.2
http://web.cvs.savannah.gnu.org/viewcvs/www/software/queue/queue.html?cvsroot=www&r1=1.6&r2=1.7
http://web.cvs.savannah.gnu.org/viewcvs/www/software/sed/manual/sed.html?cvsroot=www&r1=1.1&r2=1.2
http://web.cvs.savannah.gnu.org/viewcvs/www/software/sxml/sxml.html?cvsroot=www&r1=1.2&r2=1.3
http://web.cvs.savannah.gnu.org/viewcvs/www/software/termutils/manual/termcap-1.3/termcap.html?cvsroot=www&r1=1.1&r2=1.2
http://web.cvs.savannah.gnu.org/viewcvs/www/software/termutils/manual/termutils-2.0/tput.html?cvsroot=www&r1=1.1&r2=1.2
http://web.cvs.savannah.gnu.org/viewcvs/www/software/wget/manual/wget-1.8.1/wget.html?cvsroot=www&r1=1.1&r2=1.2
http://web.cvs.savannah.gnu.org/viewcvs/www/wwwin/graphics/agnuhead.html?cvsroot=www&r1=1.2&r2=1.3

Patches:
Index: copyleft/copyleft.last
===================================================================
RCS file: /web/www/www/copyleft/copyleft.last,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- copyleft/copyleft.last      5 May 2005 19:37:05 -0000       1.2
+++ copyleft/copyleft.last      13 Oct 2006 19:23:24 -0000      1.3
@@ -16,7 +16,7 @@
    ALT=" [image of a Philosophical Gnu] "
    WIDTH="160" HEIGHT="200">&#32;(jpeg 7k)</A>
 <A HREF="/graphics/philosophical-gnu.jpg">(jpeg 141k)</A>
-<A HREF="/philosophy/gif.html">no gifs due to patent problems</A>
+
 
 <P>
 

Index: graphics/agnuhead.html
===================================================================
RCS file: /web/www/www/graphics/agnuhead.html,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -b -r1.23 -r1.24
--- graphics/agnuhead.html      20 May 2006 11:31:38 -0000      1.23
+++ graphics/agnuhead.html      13 Oct 2006 19:23:26 -0000      1.24
@@ -91,7 +91,6 @@
 in the GNU Art Gallery.
 </p>
 
-<p><strong><a href="/philosophy/gif.html">No gifs due to patent 
problems.</a></strong></p>
 
 <hr />
 
@@ -164,7 +163,7 @@
 <p>
 Updated:
 <!-- timestamp start -->
-$Date: 2006/05/20 11:31:38 $ $Author: hicham $
+$Date: 2006/10/13 19:23:26 $ $Author: johnsu01 $
 <!-- timestamp end -->
 </p>
 </div>

Index: graphics/ahurdlogo.html
===================================================================
RCS file: /web/www/www/graphics/ahurdlogo.html,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- graphics/ahurdlogo.html     10 Feb 2006 15:26:45 -0000      1.10
+++ graphics/ahurdlogo.html     13 Oct 2006 19:23:26 -0000      1.11
@@ -96,7 +96,6 @@
 in the GNU Art Gallery.
 </p>
 
-<p><strong><a href="/philosophy/gif.html">No gifs due to patent 
problems.</a></strong></p>
 
 <hr />
 
@@ -151,7 +150,7 @@
 <p>
 Updated:
 <!-- timestamp start -->
-$Date: 2006/02/10 15:26:45 $ $Author: puigpe $
+$Date: 2006/10/13 19:23:26 $ $Author: johnsu01 $
 <!-- timestamp end -->
 </p>
 </div>

Index: graphics/anfsflogo.html
===================================================================
RCS file: /web/www/www/graphics/anfsflogo.html,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- graphics/anfsflogo.html     10 Feb 2006 15:26:45 -0000      1.10
+++ graphics/anfsflogo.html     13 Oct 2006 19:23:26 -0000      1.11
@@ -54,7 +54,6 @@
 in the GNU Art Gallery.
 </p>
 
-<p><strong><a href="/philosophy/gif.html">No gifs due to patent 
problems.</a></strong></p>
 
 <hr />
 
@@ -118,7 +117,7 @@
 <p>
 Updated:
 <!-- timestamp start -->
-$Date: 2006/02/10 15:26:45 $ $Author: puigpe $
+$Date: 2006/10/13 19:23:26 $ $Author: johnsu01 $
 <!-- timestamp end -->
 </p>
 </div>

Index: graphics/anlpflogo.html
===================================================================
RCS file: /web/www/www/graphics/anlpflogo.html,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- graphics/anlpflogo.html     10 Feb 2006 15:26:45 -0000      1.7
+++ graphics/anlpflogo.html     13 Oct 2006 19:23:26 -0000      1.8
@@ -85,7 +85,6 @@
 in the GNU Art Gallery.
 </p>
 
-<p><strong><a href="/philosophy/gif.html">No gifs due to patent 
problems.</a></strong></p>
 
 <hr />
 
@@ -140,7 +139,7 @@
 <p>
 Updated:
 <!-- timestamp start -->
-$Date: 2006/02/10 15:26:45 $ $Author: puigpe $
+$Date: 2006/10/13 19:23:26 $ $Author: johnsu01 $
 <!-- timestamp end -->
 </p>
 </div>

Index: graphics/anothertypinggnu.html
===================================================================
RCS file: /web/www/www/graphics/anothertypinggnu.html,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- graphics/anothertypinggnu.html      22 Mar 2006 09:44:43 -0000      1.8
+++ graphics/anothertypinggnu.html      13 Oct 2006 19:23:26 -0000      1.9
@@ -42,7 +42,6 @@
 <a href="/graphics/graphics.html">Other art</a> in the GNU Art Gallery.
 </p>
 
-<p><strong><a href="/philosophy/gif.html">No gifs due to patent 
problems.</a></strong></p>
 
 <hr />
 
@@ -105,7 +104,7 @@
 <p>
 Updated:
 <!-- timestamp start -->
-$Date: 2006/03/22 09:44:43 $ $Author: xavi_ $
+$Date: 2006/10/13 19:23:26 $ $Author: johnsu01 $
 <!-- timestamp end -->
 </p>
 </div>

Index: graphics/atypinggnu.html
===================================================================
RCS file: /web/www/www/graphics/atypinggnu.html,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- graphics/atypinggnu.html    6 Feb 2006 18:27:25 -0000       1.10
+++ graphics/atypinggnu.html    13 Oct 2006 19:23:26 -0000      1.11
@@ -68,7 +68,6 @@
 <a href="/graphics/graphics.html">Other art</a> in the GNU Art Gallery.
 </p>
 
-<p><strong><a href="/philosophy/gif.html">No gifs due to patent 
problems.</a></strong></p>
 
 <hr />
 
@@ -131,7 +130,7 @@
 <p>
 Updated:
 <!-- timestamp start -->
-$Date: 2006/02/06 18:27:25 $ $Author: puigpe $
+$Date: 2006/10/13 19:23:26 $ $Author: johnsu01 $
 <!-- timestamp end -->
 </p>
 </div>

Index: graphics/babygnu.html
===================================================================
RCS file: /web/www/www/graphics/babygnu.html,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -b -r1.12 -r1.13
--- graphics/babygnu.html       6 Feb 2006 18:37:33 -0000       1.12
+++ graphics/babygnu.html       13 Oct 2006 19:23:26 -0000      1.13
@@ -57,7 +57,6 @@
 in the GNU Art Gallery.
 </p>
 
-<p><strong><a href="/philosophy/gif.html">No gifs due to patent 
problems.</a></strong></p>
 
 <hr />
 
@@ -120,7 +119,7 @@
 <p>
 Updated:
 <!-- timestamp start -->
-$Date: 2006/02/06 18:37:33 $ $Author: puigpe $
+$Date: 2006/10/13 19:23:26 $ $Author: johnsu01 $
 <!-- timestamp end -->
 </p>
 </div>

Index: graphics/bokma-gnu.html
===================================================================
RCS file: /web/www/www/graphics/bokma-gnu.html,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- graphics/bokma-gnu.html     10 Feb 2006 15:27:16 -0000      1.10
+++ graphics/bokma-gnu.html     13 Oct 2006 19:23:26 -0000      1.11
@@ -65,7 +65,6 @@
 in the GNU Art Gallery.
 </p>
 
-<p><strong><a href="/philosophy/gif.html">No gifs due to patent 
problems.</a></strong></p>
 
 <hr />
 
@@ -128,7 +127,7 @@
 <p>
 Updated:
 <!-- timestamp start -->
-$Date: 2006/02/10 15:27:16 $ $Author: puigpe $
+$Date: 2006/10/13 19:23:26 $ $Author: johnsu01 $
 <!-- timestamp end -->
 </p>
 </div>

Index: graphics/bwcartoon.html
===================================================================
RCS file: /web/www/www/graphics/bwcartoon.html,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- graphics/bwcartoon.html     10 Feb 2006 18:31:31 -0000      1.7
+++ graphics/bwcartoon.html     13 Oct 2006 19:23:26 -0000      1.8
@@ -57,7 +57,6 @@
 in the GNU Art Gallery.
 </p>
 
-<h3><a href="/philosophy/gif.html">No gifs due to patent problems.</a></h3>
 
 <p>The images linked to from this page are:<br />
 Copyright (C) 1999, Free Software Foundation, Inc.<br />
@@ -151,7 +150,7 @@
 <p>
 Updated:
 <!-- timestamp start -->
-$Date: 2006/02/10 18:31:31 $ $Author: puigpe $
+$Date: 2006/10/13 19:23:26 $ $Author: johnsu01 $
 <!-- timestamp end -->
 </p>
 </div>

Index: graphics/fromagnulinux.html
===================================================================
RCS file: /web/www/www/graphics/fromagnulinux.html,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- graphics/fromagnulinux.html 19 Sep 2006 12:04:14 -0000      1.6
+++ graphics/fromagnulinux.html 13 Oct 2006 19:23:26 -0000      1.7
@@ -50,7 +50,6 @@
 in the GNU Art Gallery.
 </p>
 
-<p><strong><a href="/philosophy/gif.html">No gifs due to patent 
problems.</a></strong></p>
 
 <hr />
 
@@ -105,7 +104,7 @@
 <p>
 Updated:
 <!-- timestamp start -->
-$Date: 2006/09/19 12:04:14 $ $Author: wkotwica $
+$Date: 2006/10/13 19:23:26 $ $Author: johnsu01 $
 <!-- timestamp end -->
 </p>
 </div>

Index: graphics/fsf-logo.html
===================================================================
RCS file: /web/www/www/graphics/fsf-logo.html,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- graphics/fsf-logo.html      4 Apr 2006 15:21:07 -0000       1.8
+++ graphics/fsf-logo.html      13 Oct 2006 19:23:26 -0000      1.9
@@ -45,7 +45,6 @@
 in the GNU Art Gallery.
 <P>
 
-<H3><A HREF="/philosophy/gif.html">No gifs due to patent problems.</A></H3>
 <P>
 
 The images linked to from this page are:
@@ -102,7 +101,7 @@
 <P>
 Updated:
 <!-- timestamp start -->
-$Date: 2006/04/04 15:21:07 $ $Author: ghoseb $
+$Date: 2006/10/13 19:23:26 $ $Author: johnsu01 $
 <!-- timestamp end -->
 <HR>
 </BODY>

Index: graphics/gleesons.html
===================================================================
RCS file: /web/www/www/graphics/gleesons.html,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- graphics/gleesons.html      28 May 2006 07:55:26 -0000      1.8
+++ graphics/gleesons.html      13 Oct 2006 19:23:26 -0000      1.9
@@ -44,7 +44,6 @@
 in the GNU Art Gallery.
 </p>
 
-<p><strong><a href="/philosophy/gif.html">No gifs due to patent 
problems.</a></strong></p>
 
 <hr />
 
@@ -107,7 +106,7 @@
 <p>
 Updated:
 <!-- timestamp start -->
-$Date: 2006/05/28 07:55:26 $ $Author: hicham $
+$Date: 2006/10/13 19:23:26 $ $Author: johnsu01 $
 <!-- timestamp end -->
 </p>
 </div>

Index: graphics/gnu-alternative.html
===================================================================
RCS file: /web/www/www/graphics/gnu-alternative.html,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- graphics/gnu-alternative.html       10 Feb 2006 15:27:56 -0000      1.9
+++ graphics/gnu-alternative.html       13 Oct 2006 19:23:26 -0000      1.10
@@ -48,7 +48,6 @@
 in the GNU Art Gallery.
 </p>
 
-<p><strong><a href="/philosophy/gif.html">No gifs due to patent 
problems.</a></strong></p>
 
 <hr />
 
@@ -110,7 +109,7 @@
 <p>
 Updated:
 <!-- timestamp start -->
-$Date: 2006/02/10 15:27:56 $ $Author: puigpe $
+$Date: 2006/10/13 19:23:26 $ $Author: johnsu01 $
 <!-- timestamp end -->
 </p>
 </div>

Index: graphics/gnu-jacket.html
===================================================================
RCS file: /web/www/www/graphics/gnu-jacket.html,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- graphics/gnu-jacket.html    10 Feb 2006 15:37:06 -0000      1.6
+++ graphics/gnu-jacket.html    13 Oct 2006 19:23:26 -0000      1.7
@@ -51,7 +51,6 @@
 in the GNU Art Gallery.
 </p>
 
-<h3><a href="/philosophy/gif.html">No gifs due to patent problems</a>.</h3>
 
 <p>
 The images linked to from this page are:
@@ -140,7 +139,7 @@
 <p>
 Updated:
 <!-- timestamp start -->
-$Date: 2006/02/10 15:37:06 $ $Author: puigpe $
+$Date: 2006/10/13 19:23:26 $ $Author: johnsu01 $
 <!-- timestamp end -->
 </p>
 </div>

Index: graphics/gnubanner.html
===================================================================
RCS file: /web/www/www/graphics/gnubanner.html,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- graphics/gnubanner.html     10 Feb 2006 15:32:08 -0000      1.9
+++ graphics/gnubanner.html     13 Oct 2006 19:23:26 -0000      1.10
@@ -69,7 +69,6 @@
 in the GNU Art Gallery.
 </p>
 
-<p><strong><a href="/philosophy/gif.html">No gifs due to patent 
problems.</a></strong></p>
 
 <hr />
 
@@ -131,7 +130,7 @@
 <p>
 Updated:
 <!-- timestamp start -->
-$Date: 2006/02/10 15:32:08 $ $Author: puigpe $
+$Date: 2006/10/13 19:23:26 $ $Author: johnsu01 $
 <!-- timestamp end -->
 </p>
 </div>

Index: graphics/gnupascal.html
===================================================================
RCS file: /web/www/www/graphics/gnupascal.html,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- graphics/gnupascal.html     6 Feb 2006 18:45:04 -0000       1.9
+++ graphics/gnupascal.html     13 Oct 2006 19:23:26 -0000      1.10
@@ -54,7 +54,6 @@
 in the GNU Art Gallery.
 </p>
 
-<p><strong><a href="/philosophy/gif.html">No gifs due to patent 
problems.</a></strong></p>
 
 <hr />
 
@@ -118,7 +117,7 @@
 <p>
 Updated:
 <!-- timestamp start -->
-$Date: 2006/02/06 18:45:04 $ $Author: puigpe $
+$Date: 2006/10/13 19:23:26 $ $Author: johnsu01 $
 <!-- timestamp end -->
 </p>
 </div>

Index: graphics/gnusvgart.html
===================================================================
RCS file: /web/www/www/graphics/gnusvgart.html,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- graphics/gnusvgart.html     10 Feb 2006 18:32:52 -0000      1.5
+++ graphics/gnusvgart.html     13 Oct 2006 19:23:26 -0000      1.6
@@ -61,9 +61,7 @@
 <P>
 <A HREF="/graphics/graphics.html">Other art</A>
 in the GNU Art Gallery.
-<P>
 
-<H3><A HREF="/philosophy/gif.html">No gifs due to patent problems.</A></H3>
 <P>
 
 <HR>
@@ -87,7 +85,7 @@
 
 Updated:
 <!-- timestamp start -->
-$Date: 2006/02/10 18:32:52 $ $Author: puigpe $
+$Date: 2006/10/13 19:23:26 $ $Author: johnsu01 $
 <!-- timestamp end -->
 <HR>
 </BODY>

Index: graphics/graphics.html
===================================================================
RCS file: /web/www/www/graphics/graphics.html,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -b -r1.39 -r1.40
--- graphics/graphics.html      28 May 2006 07:52:54 -0000      1.39
+++ graphics/graphics.html      13 Oct 2006 19:23:26 -0000      1.40
@@ -27,7 +27,6 @@
        width="123" height="99" /></a>
 </p>
 
-<h3><a href="/philosophy/gif.html">No gifs due to patent problems.</a></h3>
 
 <p>
 Beside the art on these GNU Web pages, we at the GNU Project have the art:</p>
@@ -99,7 +98,6 @@
     </ul>
 
 
-<h3><a href="/philosophy/gif.html">No gifs due to patent problems.</a></h3>
 
 <hr />
 
@@ -183,7 +181,7 @@
 <p>
 Updated:
 <!-- timestamp start -->
-$Date: 2006/05/28 07:52:54 $ $Author: hicham $
+$Date: 2006/10/13 19:23:26 $ $Author: johnsu01 $
 <!-- timestamp end -->
 </p>
 </div>

Index: graphics/graphics.htmlLastAllImagesDisplayed
===================================================================
RCS file: /web/www/www/graphics/graphics.htmlLastAllImagesDisplayed,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- graphics/graphics.htmlLastAllImagesDisplayed        5 May 2005 19:37:10 
-0000       1.2
+++ graphics/graphics.htmlLastAllImagesDisplayed        13 Oct 2006 19:23:26 
-0000      1.3
@@ -10,7 +10,6 @@
    ALT=" [small image of a Gnu and Blaise Pascal] "
    WIDTH="123" HEIGHT="99">&#32;(jpeg 4k)</A>
 <A HREF="/graphics/Gnu+Pascal.jpg">(jpeg 59k)</A>
-<A HREF="/philosophy/gif.html">no gifs due to patent problems.</A>
 <P>
 Beside the
 <A HREF="#GNUGraphicsOnThisSite"
@@ -49,8 +48,7 @@
 <P>
 
 <H4>Table of Contents</H4>
-<UL>
-  <LI><A HREF="/philosophy/gif.html">no gifs due to patent problems.</A>
+
        <UL>
         <LI><A HREF="#AGNUhead"
              NAME="TOCAGNUhead">A GNU Head</A>
@@ -77,8 +75,6 @@
         <LI><A HREF="#GNUPageBackgrounds"
              NAME="TOCGNUPageBackgrounds">GNU Web Page Backgrounds</A>
        </UL>
-  <LI><A HREF="/philosophy/gif.html">no gifs due to patent problems.</A>
-</UL>
 
 <P>
 
@@ -451,7 +447,6 @@
 <!-- we have grouped these side by side so the user can see -->
 <!-- more of the Art on one screen. -->
 
-<H3><A HREF="/philosophy/gif.html">No gifs due to patent problems.</A></H3>
 <P>
 
 <HR>

Index: graphics/groff-head.html
===================================================================
RCS file: /web/www/www/graphics/groff-head.html,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- graphics/groff-head.html    2 Oct 2006 03:52:48 -0000       1.2
+++ graphics/groff-head.html    13 Oct 2006 19:23:26 -0000      1.3
@@ -50,10 +50,6 @@
 in the GNU Art Gallery.
 </P>
 
-<P>
-<STRONG><A href="/philosophy/gif.html">No gifs due to patent
-problems.</A></STRONG>
-</P>
 
 <DIV class="copyright"> 
 <P>
@@ -86,7 +82,7 @@
 <P>
 Updated:
 <!-- timestamp start -->
-$Date: 2006/10/02 03:52:48 $ $Author: sinuhe $
+$Date: 2006/10/13 19:23:26 $ $Author: johnsu01 $
 <!-- timestamp end -->
 </P>
 </DIV>

Index: graphics/heckert_gnu.html
===================================================================
RCS file: /web/www/www/graphics/heckert_gnu.html,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- graphics/heckert_gnu.html   10 Feb 2006 18:33:08 -0000      1.7
+++ graphics/heckert_gnu.html   13 Oct 2006 19:23:26 -0000      1.8
@@ -60,8 +60,6 @@
       in the GNU Art Gallery.
     </p>
 
-    <h3><a href="/philosophy/gif.html">No gifs due to patent
-       problems.</a></h3>
 
 <hr />
 
@@ -112,7 +110,7 @@
 <p>
 Updated:
 <!-- timestamp start -->
-$Date: 2006/02/10 18:33:08 $ $Author: puigpe $
+$Date: 2006/10/13 19:23:26 $ $Author: johnsu01 $
 <!-- timestamp end -->
 </p>
 </div>

Index: graphics/httptunnel-logo.html
===================================================================
RCS file: /web/www/www/graphics/httptunnel-logo.html,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- graphics/httptunnel-logo.html       10 Feb 2006 15:32:26 -0000      1.9
+++ graphics/httptunnel-logo.html       13 Oct 2006 19:23:26 -0000      1.10
@@ -46,7 +46,6 @@
 in the GNU Art Gallery.
 </p>
 
-<p><strong><a href="/philosophy/gif.html">No gifs due to patent 
problems.</a></strong></p>
 
 <hr />
 
@@ -108,7 +107,7 @@
 <p>
 Updated:
 <!-- timestamp start -->
-$Date: 2006/02/10 15:32:26 $ $Author: puigpe $
+$Date: 2006/10/13 19:23:26 $ $Author: johnsu01 $
 <!-- timestamp end -->
 </p>
 </div>

Index: graphics/listen.html
===================================================================
RCS file: /web/www/www/graphics/listen.html,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- graphics/listen.html        10 Feb 2006 15:32:55 -0000      1.10
+++ graphics/listen.html        13 Oct 2006 19:23:26 -0000      1.11
@@ -56,7 +56,6 @@
 </p>
 
 
-<h3><a href="/philosophy/gif.html">No gifs due to patent problems.</a></h3>
 
 
 <p>
@@ -160,7 +159,7 @@
 <p>
 Updated:
 <!-- timestamp start -->
-$Date: 2006/02/10 15:32:55 $ $Author: puigpe $
+$Date: 2006/10/13 19:23:26 $ $Author: johnsu01 $
 <!-- timestamp end -->
 </p>
 </div>

Index: graphics/meditate.html
===================================================================
RCS file: /web/www/www/graphics/meditate.html,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -b -r1.21 -r1.22
--- graphics/meditate.html      19 Sep 2006 12:14:22 -0000      1.21
+++ graphics/meditate.html      13 Oct 2006 19:23:26 -0000      1.22
@@ -88,7 +88,6 @@
 in the GNU Art Gallery.
 </p>
 
-<p><strong><a href="/philosophy/gif.html">No gifs due to patent 
problems.</a></strong></p>
 
 <hr />
 
@@ -177,7 +176,7 @@
 <p>
 Updated:
 <!-- timestamp start -->
-$Date: 2006/09/19 12:14:22 $ $Author: wkotwica $
+$Date: 2006/10/13 19:23:26 $ $Author: johnsu01 $
 <!-- timestamp end -->
 </p>
 </div>

Index: graphics/philosophicalgnu.html
===================================================================
RCS file: /web/www/www/graphics/philosophicalgnu.html,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -b -r1.13 -r1.14
--- graphics/philosophicalgnu.html      6 Feb 2006 17:37:42 -0000       1.13
+++ graphics/philosophicalgnu.html      13 Oct 2006 19:23:26 -0000      1.14
@@ -59,7 +59,6 @@
 in the GNU Art Gallery.
 </p>
 
-<p><strong><a href="/philosophy/gif.html">No gifs due to patent 
problems.</a></strong></p>
 
 <hr />
 
@@ -130,7 +129,7 @@
 <p>
 Updated:
 <!-- timestamp start -->
-$Date: 2006/02/06 17:37:42 $ $Author: puigpe $
+$Date: 2006/10/13 19:23:26 $ $Author: johnsu01 $
 <!-- timestamp end -->
 </p>
 </div>

Index: graphics/reiss-gnuhead.html
===================================================================
RCS file: /web/www/www/graphics/reiss-gnuhead.html,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- graphics/reiss-gnuhead.html 10 Feb 2006 18:39:00 -0000      1.9
+++ graphics/reiss-gnuhead.html 13 Oct 2006 19:23:26 -0000      1.10
@@ -37,7 +37,6 @@
 in the GNU Art Gallery.
 </p>
 
-<p><strong><a href="/philosophy/gif.html">No gifs due to patent 
problems.</a></strong></p>
 
 <hr />
 
@@ -99,7 +98,7 @@
 <p>
 Updated:
 <!-- timestamp start -->
-$Date: 2006/02/10 18:39:00 $ $Author: puigpe $
+$Date: 2006/10/13 19:23:26 $ $Author: johnsu01 $
 <!-- timestamp end -->
 </p>
 </div>

Index: graphics/slickgnu.html
===================================================================
RCS file: /web/www/www/graphics/slickgnu.html,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- graphics/slickgnu.html      19 Sep 2006 12:20:52 -0000      1.7
+++ graphics/slickgnu.html      13 Oct 2006 19:23:26 -0000      1.8
@@ -47,7 +47,6 @@
 in the GNU Art Gallery.
 </p>
 
-<p><strong><a href="/philosophy/gif.html">No gifs due to patent 
problems.</a></strong></p>
 
 <hr />
 
@@ -129,7 +128,7 @@
 <p>
 Updated:
 <!-- timestamp start -->
-$Date: 2006/09/19 12:20:52 $ $Author: wkotwica $
+$Date: 2006/10/13 19:23:26 $ $Author: johnsu01 $
 <!-- timestamp end -->
 </p>
 </div>

Index: graphics/spiritoffreedom.html
===================================================================
RCS file: /web/www/www/graphics/spiritoffreedom.html,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- graphics/spiritoffreedom.html       10 Feb 2006 18:39:00 -0000      1.6
+++ graphics/spiritoffreedom.html       13 Oct 2006 19:23:26 -0000      1.7
@@ -41,7 +41,7 @@
 in the GNU Art Gallery.
 <P>
 
-<H3><A HREF="/philosophy/gif.html">No gifs due to patent problems.</A></H3>
+
 <P>
 
 The images linked to from this page are:
@@ -99,7 +99,7 @@
 <p>
 Updated:
 <!-- timestamp start -->
-$Date: 2006/02/10 18:39:00 $ $Author: puigpe $
+$Date: 2006/10/13 19:23:26 $ $Author: johnsu01 $
 <!-- timestamp end -->
 </p>
 </div>

Index: graphics/usegnu.html
===================================================================
RCS file: /web/www/www/graphics/usegnu.html,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- graphics/usegnu.html        5 May 2005 19:37:11 -0000       1.6
+++ graphics/usegnu.html        13 Oct 2006 19:23:26 -0000      1.7
@@ -61,7 +61,6 @@
 in the GNU Art Gallery.
 </p>
 
-<p><strong><a href="/philosophy/gif.html">No gifs due to patent 
problems.</a></strong></p>
 
 <hr />
 
@@ -122,7 +121,7 @@
 <p>
 Updated:
 <!-- timestamp start -->
-$Date: 2005/05/05 19:37:11 $ $Author: novalis $
+$Date: 2006/10/13 19:23:26 $ $Author: johnsu01 $
 <!-- timestamp end -->
 </p>
 </div>

Index: graphics/whatsgnu.html
===================================================================
RCS file: /web/www/www/graphics/whatsgnu.html,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- graphics/whatsgnu.html      6 Feb 2006 18:57:34 -0000       1.11
+++ graphics/whatsgnu.html      13 Oct 2006 19:23:26 -0000      1.12
@@ -61,7 +61,6 @@
 in the GNU Art Gallery.
 </p>
 
-<p><strong><a href="/philosophy/gif.html">No gifs due to patent 
problems.</a></strong></p>
 
 <hr />
 
@@ -129,7 +128,7 @@
 <p>
 Updated:
 <!-- timestamp start -->
-$Date: 2006/02/06 18:57:34 $ $Author: puigpe $
+$Date: 2006/10/13 19:23:26 $ $Author: johnsu01 $
 <!-- timestamp end -->
 </p>
 </div>

Index: philosophy/basic-freedoms.es.html
===================================================================
RCS file: /web/www/www/philosophy/basic-freedoms.es.html,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- philosophy/basic-freedoms.es.html   5 May 2005 19:37:13 -0000       1.2
+++ philosophy/basic-freedoms.es.html   13 Oct 2006 19:23:28 -0000      1.3
@@ -12,7 +12,6 @@
 <A HREF="/graphics/philosophical-gnu-sm.jpg"><IMG 
SRC="/graphics/philosophical-gnu-sm.jpg"
 ALT=" [image of a Philosophical Gnu] " WIDTH="160" HEIGHT="200">&#32;(jpeg 
7k)</A>
 <A HREF="/graphics/philosophical-gnu.jpg">(jpeg 141k)</A>
-<A HREF="/philosophy/gif.html">no gifs debido a problemas de patente</A>
 <P>
 La Fundación para el Software Libre apoya las libertades de expresión, prensa 
 y asociación en internet. Por favor tenga a consideración:

Index: philosophy/greve-clown.de.html
===================================================================
RCS file: /web/www/www/philosophy/greve-clown.de.html,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- philosophy/greve-clown.de.html      6 Feb 2003 22:33:08 -0000       1.2
+++ philosophy/greve-clown.de.html      13 Oct 2006 19:23:28 -0000      1.3
@@ -14,7 +14,6 @@
    ALT=" [image of a Philosophical Gnu] "
    WIDTH="160" HEIGHT="200"></A>
 <A HREF="/graphics/philosophical-gnu.jpg">(jpeg 141k)</A>
-<A HREF="/philosophy/gif.de.html">no gifs due to patent problems</A>
 
 <P>
 

Index: philosophy/greve-clown.en.html
===================================================================
RCS file: /web/www/www/philosophy/greve-clown.en.html,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- philosophy/greve-clown.en.html      13 Feb 2001 01:26:06 -0000      1.1
+++ philosophy/greve-clown.en.html      13 Oct 2006 19:23:28 -0000      1.2
@@ -14,7 +14,6 @@
    ALT=" [image of a Philosophical Gnu] "
    WIDTH="160" HEIGHT="200"></A>
 <A HREF="/graphics/philosophical-gnu.jpg">(jpeg 141k)</A>
-<A HREF="/philosophy/gif.html">no gifs due to patent problems</A>
 
 <P>
 

Index: philosophy/netscape-npl-old.html
===================================================================
RCS file: /web/www/www/philosophy/netscape-npl-old.html,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- philosophy/netscape-npl-old.html    5 May 2005 19:37:15 -0000       1.2
+++ philosophy/netscape-npl-old.html    13 Oct 2006 19:23:28 -0000      1.3
@@ -14,7 +14,6 @@
    ALT=" [image of the Head of a GNU] "
    WIDTH="129" HEIGHT="122"></A>
 <A HREF="/graphics/gnu-head.jpg">(jpeg 21k)</A>
-<A HREF="/philosophy/gif.html">no gifs due to patent problems</A>
 
 <P>
 <center>This article was written March 10-12 1998, about the draft of

Index: philosophy/stallman-kth.ja.html
===================================================================
RCS file: /web/www/www/philosophy/stallman-kth.ja.html,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- philosophy/stallman-kth.ja.html     13 Feb 2001 01:26:06 -0000      1.1
+++ philosophy/stallman-kth.ja.html     13 Oct 2006 19:23:28 -0000      1.2
@@ -11,7 +11,6 @@
    ALT=" [image of the Head of a GNU] "
    WIDTH="129" HEIGHT="122"></A>
 <A HREF="/graphics/gnu-head.jpg">(jpeg 21k)</A>
-<A HREF="/philosophy/gif.html">no gifs due to patent problems</A>
 
 <P>
 <small>
@@ -19,422 +18,422 @@
   Permission statement <A HREF="#Permission" NAME="TOCPermission">below</A><br>
 </small>
 <p>
-<h1>$B%j%A%c!<%I!&(BM$B!&%9%H!<%k%^%s!!%9%&%'!<%G%s2&N)9)2JBg3X9V1i(B RMS 
Lecture at KTH (Kungliga Tekniska Hogskolan)</h1>
+<h1>リチャード・M・ストールマン スウェーデン王立工科大学講演
 RMS Lecture at KTH (Kungliga Tekniska Hogskolan)</h1>
 
 <p>
-$B5-O?!'(BBjorn Remseth  $BK]Lu!';37A9@@8(B
+記録:Bjorn Remseth  翻訳:山形浩生
 <p>
-(c) 1987 Richard M. Stallman and Bjorn Remseth, (c) 1998 $B;37A9@@8(B<p>
-$B!!$3$NF|K\8lLu$O=q<0$H%U%!%$%k7A<00J30$N2~JQ$r2C$($:$3$NHG8"I=<($r;D$98B$j$K$*$$$F<+M3$K:FG[I[$,G'$a$i$l$k!#(B<br>
-$B!!$J$*!"$3$NF|K\8lLu$OLu<address@hidden>e$K$d$C$?<+?.$O$"$k$b$N$N!"address@hidden@53N$5$K$D$$$F$O!"1Q8l86J8$NHG8"=jM-<T$b(B
 FSF $B$b!"$J$s$iJ]>Z$O$7$J$$$7!"address@hidden&$b$N$G$b$J$$!#(B
+(c) 1987 Richard M. Stallman and Bjorn Remseth, (c) 1998 山形浩生<p>
+ この日本語訳は書式とファイル形式以外の改変を加
えずこの版権表示を残す限りにおいて自由に再é…
å¸ƒãŒèªã‚ã‚‰ã‚Œã‚‹ã€‚<br>
+ なお、この日本語訳は訳者
としては正確無比以上にやった自信はあるものの、その正しさや正確さについては、英語原文の版権所有è€
…ã‚‚ FSF も、なんら保証はしないし、また責任を負
うものでもない。
 <p>
-$B9V1iF|!'(B30 October 1986$B!"(B1998 $BG/(B 8 $B7nLu(B
+講演日:30 October 1986、1998 年 8 月訳
 <p>
-$B86J8:G?7HG!'(B<a 
href="/philosophy/stallman-kth.html">http://www.gnu.org/philosophy/stallman-kth.html</a><br>
-$BK]Lu:G?7HG!'(B<a 
href="http://www.post1.com/~hiyori13/freeware/rmslecture.html";>http://www.post1.com/~hiyori13/freeware/rmslecture.html</a><br>
-$BF1(Bps$BHG(B (tar&gzipped)$B!'(B<a 
href="http://www.post1.com/~hiyori13/freeware/rmslecture.tgz";>http://www.post1.com/~hiyori13/freeware/rmslecture.tgz</a>
+原文最新版:<a 
href="/philosophy/stallman-kth.html">http://www.gnu.org/philosophy/stallman-kth.html</a><br>
+翻訳最新版:<a 
href="http://www.post1.com/~hiyori13/freeware/rmslecture.html";>http://www.post1.com/~hiyori13/freeware/rmslecture.html</a><br>
+同ps版 (tar&gzipped):<a 
href="http://www.post1.com/~hiyori13/freeware/rmslecture.tgz";>http://www.post1.com/~hiyori13/freeware/rmslecture.tgz</a>
 <hr>
 
-<h2>$B35MW(B</h2>
-$B!!(B1986 $BG/(B 10 $B7n(B 30 
$BF|$K!"%j%A%c!<%I!&(BM$B!&%9%H!<%k%^%s$,%9%&%'!<%G%s$N%9%H%C%/%[%k%`;T$K$"$k2&N)9)2JBg3X$G9T$C$?9V1i$N9V1iO?!#Bh0lIt$G$O!"(B1970
 $BG/Be$N(B MIT 
AI$B8&$K$*$1$k%O%C%+!<J82=!">&6H<g5A$K$h$k$=$NGK2u$H!"$=$l$KBP93$7$F%O%C%+!<J82=$r:F6=$5$;$k$Y$/%U%j!<%=%U%H$N(B
 GNU 
$B%W%m%8%'%/%H3+;O$r%9%H!<%k%^%s$,7h0U$9$k$^$G$N2aDx$,=R$Y$i$l$F$$$k!#BhFsIt$G$O(B
 GNU EMACS $B$r$O$8$a$H$9$k(B GNU 
$B%W%m%8%'%/%H$=$N$b$N$K$D$$$F!"Nr;address@hidden"FbIt$G$N=hM}7O$K4X$9$k9M$(address@hidden;0It$G$O!"%9%H!<%k%^%s$N>pJsCx:n8"$d=jM-8"$K$D$$$F$N9M$(J}$r$O$8$a!"(B
 GNU $B%W%m%8%'%/%H$d(B FSF 
$B$NGX8e$K$"$k;WA[$,=R$Y$i$l$k!#>pJs$d%=%U%H$O<R2q8zMQ$+$i$_$F$b6&M-$5$l$k$Y$-$G$"$j!"$=$l$rK8$2$kCx:n8"$d%=%U%H1#F?$O$^$A$,$C$F$$$k!"$H<gD%$5$l$F$$$k!#(B
+<h2>概要</h2>
+ 1986 年 10 月 30 
日に、リチャード・M・ストールマンがスウェーデンのストックホルãƒ
 
市にある王立工科大学で行った講演の講演録。第一部では、1970
 年代の MIT AIç 
”におけるハッカー文化、商業主義によるそのç 
´å£Šã¨ã€ãã‚Œã«å¯¾æŠ—してハッカー文化を再興させるべくフリーソフトの
 GNU 
プロジェクト開始をストールマンが決意するまでの過程が述べられている。第二部では
 GNU EMACS をはじめとする GNU 
プロジェクトそのものについて、歴史的な解説とともに、å†
…
部での処理系に関する考え方の解説も含めて語られている。第三部では、ストールマンのæƒ
…報著作権や所有権についての考え方をはじめ、 GNU 
プロジェクトや FSF の背後にある思想が述べられる。情å 
±ã‚„ソフトは社会効用からみてもå…
±æœ‰ã•ã‚Œã‚‹ã¹ãã§ã‚り、それを妨げる著作権やソフト隠
匿はまちがっている、と主張されている。
 <p>
-$B$J$*!"address@hidden"$j!">OJ,$1$H$=$NL?L>$*$h$S35MW$NDI2C$OLu<T$NH=CG$G$d$C$?!#(B
+なお、原文は切れ目のない講演録であり、章
分けとその命名および概要の追加は訳者の判断でやった。
 <p>
 <hr>
-<h2>$BL\<!(B</h2>
+<h2>目次</h2>
 <p>
-<h3><a href="#1">1 $B%$%s%H%m(B</a></h3>
-<h3><a href="#2">2  GNU $BA0;K!'(BMIT AI$B8&(B</a></h3>
-<h4>$B!!!!(B<a href="#21">2.1 MIT AI$B8&$N%O%C%+!<J82=$H$=$NJx2u(B</a></h4>
-<h4>$B!!!!(B<a href="#22">2.2 
$B%O%C%+!<J82=$N:address@hidden;X$7$F(B</a></h4>
-<p>
-<h3><a href="#3">3  GNU $B%W%m%8%'%/%H(B</a></h3>
-<h4>$B!!!!(B<a href="#31">3.1 $B$O$8$a$N0lJb(B</a></h4>
-<h4>$B!!!!(B<a href="#32">3.2  GNU   EMACS </a></h4>
-<h4>$B!!!!(B<a href="#33">3.3 GDB$B%G%P%C%,(B</a></h4>
-<h4>$B!!!!(B<a href="#34">3.4 gcc $B%3%s%Q%$%i(B</a></h4>
-<h4>$B!!!!(B<a href="#35">3.5 TRIX$B%+!<%M%k(B</a></h4>
-<p>
-<h3><a href="#4">4 $B>pJs!"%=%U%H$HCx:n8"(B</a></h3>
-<h4>$B!!!!(B<a href="#41">4.1 $B%=%U%H$N=jM-$H$=$N32(B</a></h4>
-<h4>$B!!!!(B<a href="#42">4.2 address@hidden(B</a></h4>
-<h4>$B!!!!(B<a href="#43">4.3 $B%=%U%H1#F?$H$NF.$$(B</a></h4>
+<h3><a href="#1">1 イントロ</a></h3>
+<h3><a href="#2">2  GNU 前史:MIT AI研</a></h3>
+<h4>  <a href="#21">2.1 MIT AIç 
”のハッカー文化とその崩壊</a></h4>
+<h4>  <a href="#22">2.2 ハッカー文化の再生を目指して</a></h4>
+<p>
+<h3><a href="#3">3  GNU プロジェクト</a></h3>
+<h4>  <a href="#31">3.1 はじめの一歩</a></h4>
+<h4>  <a href="#32">3.2  GNU   EMACS </a></h4>
+<h4>  <a href="#33">3.3 GDBデバッガ</a></h4>
+<h4>  <a href="#34">3.4 gcc コンパイラ</a></h4>
+<h4>  <a href="#35">3.5 TRIXカーネル</a></h4>
+<p>
+<h3><a href="#4">4 情報、ソフトと著作権</a></h3>
+<h4>  <a href="#41">4.1 ソフトの所有とその害</a></h4>
+<h4>  <a href="#42">4.2 ソフト所有肯定論への反駁</a></h4>
+<h4>  <a href="#43">4.3 ソフト隠匿との闘い</a></h4>
 <p>
-<h3><a href="#5">5$B!!<A5?1~Ez(B</a></h3>
+<h3><a href="#5">5 質疑応答</a></h3>
 <p>
 <hr>
-[$B%3%a%s%H!'$3$l$O(B1986$BG/(B10$B7n(B30$BF|$K!"%j%A%c!<%I!&(BM$B!&%9%H!<%k%^%s$,!"address@hidden(BDatorforeningen
 
Stacken$B!W$N>7$-$G%9%&%'!<%G%s$N%9%H%C%/%[%k%`;T$K$"$k2&N)9)2JBg3X$G9T$C$?9V1i$N%F!<%W5/$3$7$K!"$A$g$C$H<address@hidden@$+$iJQ$J;O$^$j$+$?$d!"8}8l$G$O<address@hidden;z$K$9$k$H$X$s$F$3$J8lK!$bF~$C$F$k!#$3$l$r!V$b$H$N9V1i$r$f$,$a$k$3$H$J$/!WJ88l$K$9$k$K$O$I$&$9$l$P$$$$$+!"$h$/address@hidden(B]<p>
+[コメント:これは1986年10月30日に、リチャード・M・ストールマンが、学生会「Datorforeningen
 Stacken」の招きでスウェーデンのストックホルム
市にある王立工科大学で行った講演のテープ起こしに、ちょっと手をå
…¥ã‚ŒãŸã‚‚のだ。だから変な始まりかたや、口語では自然だ
けれど字にするとへんてこな語法もå…
¥ã£ã¦ã‚‹ã€‚これを「もとの講演をゆがめることなく」文語にするにはどうすればいいか、よくわかんないのã
 ã€‚]<p>
 
-$B!JLuCm!'F|K\8l$K$7$A$c$(address@hidden"address@hidden<A$rB:=E$7$F!"$3$3$G$O$J$k$Y$/%P%j%P%j$N8}8lJ8BN$r:address@hidden|K\8l$b$?$/$5$s$"$k$1$l$I!"86J8$NJQ$J$H$3$r;D$7$?$;address@hidden,$,address@hidden"MH$2B-$r$H$i$J$$$h!<$K!#!K(B
+(訳注:日本語にしちゃえば同じことだ
けど、講演としての性質を尊重して、ここではなるべくバリバリの口語文体を採用してる。文法的に不正確な日本語もたくさんあるけれど、原文の変なとこを残したせいで生じてる部分がほとんどã
 ã‹ã‚‰ã€æšã’足をとらないよーに。)
 <hr>
 
-<h2><a name="1">1. $B%$%s%H%m(B</a></h2>
+<h2><a name="1">1. イントロ</a></h2>
 <p>
-$B!!$_$s$J$,$\$/$KOC$7$F$[$7$$OCBj$O;0$D$"address@hidden:!"$3$N%O%C%+!<=8CD$KOC$9$N$K$$$A$P$s$$$$$N$O!"@N$N(B
 MIT 
$B$C$F$N$,address@hidden"$H;W$C$?!#?M9)CNG=8&5f=j$N$I$3$,address@hidden":#F|$-$F$k?M$O7nMK$H2PMK$K2q5D$K$-$?$N$H$<$s$<$s$A$,$&address@hidden"(B
 GNU 
$B%W%m%8%'%/%H$,$I$&$J$C$F$k$+$H$+!"%=%U%H%&%'%"$d>pJs$,$J$<address@hidden"address@hidden&$3$H$O$D$^$jA4It$G;0$D$NOC$C$F$3$H$G!"$3$N$&$AFs$D$,$=$l$>$l0l;address@hidden"$_$s$J$+$J$jD9;address@hidden;address@hidden"A4BN$r;0$D$K$o$1$F!"$_$s$J<+J,$N6=L#$,$J$$ItJ,$O30$K=P$i$l$k$h$&$K$7$F!"$=$l$G3FItJ,$N=*$o$j$K$-$?$i!"address@hidden@$&$+$i!"$_$s$J30$K$G$F!"$=$l$G$\$/$O%d%s!&%i%$%K%s%0$K$*4j$$$7$F$[$+$N?M$r8F$s$G$-$F$b$i$&$h$&$K$9$k$C$F$N$O$I$&address@hidden&address@hidden,(B
 $B!V(BJanne, han trenger ingen mike$B!W(B 
($B!V(BJanne$B!"$3$N?M%^%$%/$J$s$+$$$i$J$$$h!W(B)address@hidden&!K%d%s!"$R$H$CAv$j$7$F?M$r8F$s$G$-$F$b$i$C$F$b$$$$!)(B
+ みんながぼくに話してほしい話題は三つあるみたいだ
ね。一つはまず、このハッカー集団に話すのにいちばんいいのは、昔の
 MIT ってのがどんなとこだ
ったのかってことかな、と思った。人工知能ç 
”究所のどこがそんなに特別だ
ったのか。でも、今日きてる人は月曜と火曜に会議にきたのとぜんぜんちがう人ã
 ã‹ã‚‰ã€ GNU 
プロジェクトがどうなってるかとか、ソフトウェアや情å 
±ãŒãªãœæ‰€æœ‰ã§ããªã„かとかについて話すべきだ
、とも言われた。ということはつまりå…
¨éƒ¨ã§ä¸‰ã¤ã®è©±ã£ã¦ã“とで、このうち二つがそれぞれ一時間かかったんã
 ã‹ã‚‰ã€ã¿ã‚“なかなり長時間ここにいることになるわけだ
。それで思ったんだけれど、å…
¨ä½“を三つにわけて、みんな自分の興味がない部分は外に出られるようにして、それで各部分の終わりにきたら、終わりã
 
って言うから、みんな外にでて、それでぼくはヤン・ライニングにお願いしてほかの人を呼んできてもらうようにするってのはどうã
 ã‚ã†ã€‚(だれかが 「Janne, han trenger ingen mike」 
(「Janne、この人マイクなんかいらないよ」)と言う)ヤン、ひとっ走りして人を呼んできてもらってもいい?
 <p>
-Jmr: 
$B%^%$%/$rC5$7$F$k$s$G$9$1$I!"$J$s$+$3$N80$N$+$+$C$?H"$NCf$K$"$k$C$F$$$&$s$G$9$h!#(B
+Jmr: 
マイクを探してるんですけど、なんかこの鍵のかかった箱の中にあるっていうんですよ。
 <p>
-Rms: $B$&$s!"@N$N(B AI 
$B8&$G$J$i!"$G$C$+$$%O%s%^!<$r;address@hidden&$M!#$=$N2u$l$?%I%"$r8+$F!"$_$s$J$,I,MW$H$9$k$b$N$r80$+$1$F$7$^$$$3$b$&$H$9$k$h$&$J%d%D$b>/$7$OJY6/$K$J$C$?$m$&!#$G$b1?$N$$$$$3$H$K!"$\$/address@hidden,%j%"2N>'K!$rJY6/$7$?$3$H$,$"$C$F!"address@hidden/$J$7$G$bA4A3LdBj$J$$$h!#(B
+Rms: うん、昔の AI ç 
”でなら、でっかいハンマーを持ってきてそいつをぶち開けてたã
 ã‚ã†ã­ã€‚その壊れたドアを見て、みんなが必
要とするものを鍵かけてしまいこもうとするようなヤツも少しは勉強になったろう。でも運のいいことに、ぼくは昔ブルガリア歌唱法を勉強したことがあって、ã
 ã‹ã‚‰ãƒžã‚¤ã‚¯ãªã—でも全然問題ないよ。
 
-$B$H$K$+$/!"OC$,$I$NItJ,$+CN$i$;$k%7%9%F%`$C$FMW$k!)!!$=$l$H$b$:$C$H$9$o$C$FA4It$-$$$F$?$$!)!JEz!'$=$&address@hidden&address@hidden(B)
+とにかく、話がどの部分か知らせるシステム
って要る? それともずっとすわってå…
¨éƒ¨ãã„てたい?(答:そうだそうだ)
 <p>
 <hr>
-<h2><a name="2">2.  GNU $BA0;K!'(BMIT AI $B8&(B</a></h2>
+<h2><a name="2">2.  GNU 前史:MIT AI 研</a></h2>
 
-<h3><a name="21">2.1 MIT AI $B8&$N%O%C%+!<J82=$H$=$NJx2u(B</a></h3>
+<h3><a name="21">2.1 MIT AI 研のハッカー文化とその崩壊</a></h3>
 <p>
-$B!!$\$/$,%W%m%0%i%_%s%0$r$O$8$a$?$N$O(B 1969 
$BG/$N$3$H$G!"%K%e!<%h!<%/$N(B IBM 
$B8&address@hidden"$H!"%3%s%T%e!<%?2J3X$N3XIt$,$"$k3X9;$,$"$C$F!"$^$"$3$3$O$[$+$H;w$?$j$h$C$?$j!#2?$r$9$Y$-$+7h$a$k65<x$?$A$,$$$F!"address@hidden,2?$r;H$C$F$$$$$+7h$a$kO"Cf$,$$$F!#$[$H$s$I$N?M$K$OC<Kv$,address@hidden"65<address@hidden<Kv$r;}$C$F$F!"$3$l$O;q8;address@hidden"O"Cf$N;address@hidden"$"$j$,address@hidden(B
+ ぼくがプログラミングをはじめたのは 1969 
年のことで、ニューヨークの IBM 研究所でのことだ
った。そのあと、コンピュータ科学の学部がある学æ 
¡ãŒã‚って、まあここはほかと似たりよったり。何をすべきか決める教授たちがいて、ã
 
れが何を使っていいか決める連中がいて。ほとんどの人には端末が不足してたんã
 
けれど、教授たちはほとんどみんなオフィスの中に専用端末を持ってて、これは資源の無駄なんã
 ã‘れど、連中の姿勢からすればまあありがちなことだ
よね。
 <p>
-$B!!(BMIT 
$B$N?M9)CNG=8&$KM7$S$K$$$C$?$i!"$=$&$$$&$N$H$OAV2w$J$/$i$$$K$A$,$C$?@:address@hidden,$"address@hidden($P!"$=$3$G$NC<address@hidden;address@hidden<+J,$N%*%U%#%9$K80$r$+$1$k$h$&$J65<x$O!"%I%"$,$V$AGK$i$l$k$H$$$&$D$i$$L\$K$"$&$o$1!#$"$k65<x$N%*%U%#%9$N%I%"$r$V$AGK$k$N$K;H$C$?!"$G$C$+$$E4$N$+$?$^$j$,:\$C$?Bf<V$r%[%s%H$K$_$;$F$b$i$C$?$h!#$=$N:"$OC<Kv$O$[$s$H$K>/$J$/$F!"%7%9%F%`A4It$K%G%#%9%W%l%$C<Kv(B
 5 $B$D$/$i$$$+$J!"address@hidden&$A(B 1 
$BBf$,$7$^$$9~$^$l$F$k$H!"$b$N$9$4$$B;address@hidden(B
+ MIT の人工知能ç 
”に遊びにいったら、そういうのとは爽快なくらいにちがった精神があったんã
 ã€‚たとえば、そこでの端末はみんなのものだ
と思われてた。だ
から自分のオフィスに鍵をかけるような教授は、ドアがぶちç
 
´ã‚‰ã‚Œã‚‹ã¨ã„うつらい目にあうわけ。ある教授のオフィスのドアをぶちç
 
´ã‚‹ã®ã«ä½¿ã£ãŸã€ã§ã£ã‹ã„鉄のかたまりが載った台車をホントにみせてもらったよ。そのé
 ƒã¯ç«¯æœ«ã¯ã»ã‚“とに少なくて、システムå…
¨éƒ¨ã«ãƒ‡ã‚£ã‚¹ãƒ—レイ端末 5 つくらいかな、だからそのうち 1 
台がしまい込まれてると、ものすごい損害だったわけ。
 <p>
-$B!!$=$N8e$N?tG/!"$\$/$O$=$N9M$(J}$K;I7c$r<u$1$F!"2?EY$bE70f$r$N$j$3$($?$j>22<$rGg$C$?$j$7$F!"$_$s$J$,;H$$$?$$%^%7%s$N$"$kIt20$N80$r3+$1$F$-$?!#$=$7$FDL>o$O!"%I%"$K80$r$+$1$k$h$&$J?H>!<j$J$^$M$O$7$J$5$s$J!"$H$$$&%a%b$r$*$$$F$C$?!#%I%"$K80$r$+$1$k$h$&$J?M$O!"4pK\E*$K$O<+J,$N$3$H$7$+$+$s$,$(address@hidden"address@hidden&!#2?$+Ep$^$l$=$&$J$b$N$,$"$C$F$=$l$K80$r$+$1$H$-$?$$$H$+!#$G$bF1$8It20$K$"$kJL$N$b$N$,$7$^$$$3$^$l$A$c$&$H!"$[$+$N?M$K1F6A$,address@hidden,5/$-$kEY$KI,$:$$$(address@hidden"$=$l$G0l2s$O$\$/$b;XE&address@hidden"JL$N2r7h:v$O$"address@hidden&$+$C$F$N$O$+$l$i$N>!<address@hidden/>l=j$O$[$+$K$b$"$k$7!"%G%9%/address@hidden"$_$s$J$=$s$J$3$H$r$o$6$o$69M$($h$&address@hidden@!"80$r$+$1$k$N$b$*$l$N>!<j!"$[$+$NO"Cf%/%=?)$i$(!W$H;W$C$F$k!#$=$7$F$3$l$>$^$5$K!";}$C$F$O$$$1$J$$@:address@hidden@$C$F$3$H$O65$(9~$`I,MW$,$"$k!#(B
+ その後の数年、ぼくはその考え方に刺激を受けて、何度も天井をのりこえたり床下を這ったりして、みんなが使いたいマシンのある部屋の鍵を開けてきた。そして通常は、ドアに鍵をかけるような身勝手なまねはしなさんな、というメモをおいてった。ドアに鍵をかけるような人は、基本的には自分のことしかかんがえてないんã
 ã€‚もちろんその人たちにもそれなりの理由はあるだ
ろう。何か盗まれそうなものがあってそれに鍵をかけときたいとか。でも同じ部屋にある別のものがしまいこまれちゃうと、ほかの人に影響が出るってことは気にもしなかったんã
 ã€‚これが起きる度に必ずいえることだ
けど、それで一回はぼくも指摘したんだ
けど、別の解決策はあるんだ
。鍵をかけるかどうかってのはかれらの勝手じゃないんだ
。心配なものをしまっとくå 
´æ‰€ã¯ã»ã‹ã«ã‚‚あるし、デスクに鍵をかけることだ
ってできる。でも要するに、みんなそんなことをわざわざ考えようとはしないんã
 ã‚ˆã­ã€‚「この部屋はおれのだ
、鍵をかけるのもおれの勝手、ほかの連中クソ食らえ」と思ってる。そしてこれぞまさに、持ってはいけない精神なんã
 ã£ã¦ã“とは教え込む必要がある。
 <p>
-$B!!$G$b!"$3$N80$r$+$1$J$$@:address@hidden"8IN)$7$?$b$N$8$c$J$/$F!"@address@hidden@!#(BAI
 
$B8&$N%O%C%+!<$?$A$O$$$$%W%m%0%i%`!"$*$b$7$m$$%W%m%0%i%`$r$+$/$3$H$K$9$4$/address@hidden:n6H$7$?$/$F$?$^$s$J$+$C$?$N$G!"C<Kv$K80$,address@hidden"$k$$$O$=$NB>!"Lr$KN)$D;E;v$r$8$c$^$7$h$&$H$7$F?M$,$d$k$$$m$s$J$3$H$H$+$b!#$=$N$A$,$$$C$F$N$O!"9b$$%b%i%k$r$b$C$F$F!"<+J,$,2?$r$7$h$&$H$7$F$k$N$+K\Ev$K5$$K$+$1$F$k?M$H!"address@hidden;E;v$G$d$C$F$k?M$H$N:address@hidden@$N;E;v$J$i!"8[$$<g$,GO</$G!"$3$C$A$,$:$C$H2?$b$7$J$$$G$9$o$C$F$J$-$c$J$s$J$/$?$C$F!"address@hidden,5$$K$9$k$b$s$+!#O"Cf$N;address@hidden"O"address@hidden"Bg$7$?;E;v$O$G$-$J$$$7!"$=$s$J$H$3$K$$$?$C$F$*$b$7$m$/$b$J$s$H$b$J$$!#(B
+ でも、この鍵をかけない精神は、孤立したものじゃなくて、生き様å
…¨ä½“の一部だったんだ。AI ç 
”のハッカーたちはいいプログラム、おもしろいプログラム
をかくことにすごく熱心だ
った。そしてもっともっと作業したくてたまんなかったので、端末に鍵がかかってるなんて黙ってられなかったんã
 
。あるいはその他、役に立つ仕事をじゃましようとして人がやるいろんなこととかも。そのちがいってのは、高いモラルをもってて、自分が何をしようとしてるのか本当に気にかけてる人と、たã
 ã®ä»•äº‹ã§ã‚„ってる人との差だ。ただ
の仕事なら、雇い主が馬鹿で、こっちがずっと何もしないですわってなきゃなんなくたって、ã
 ã‚ŒãŒæ°—にするもんか。連中の時間だし、連中の金だ
し。でもそんなとこでは、大した仕事はできないし、そんなとこにいたっておもしろくもなんともない。
 <p>
-$B!!$"$H!"(BAI 
$B8&$K$J$+$C$?$b$N$H$$$($P!"%U%!%$%kJ]8n!#%3%s%T%e!<%?$K$O%;%-%e%j%F%#$O$^$C$?$/$J$+$C$?!#$=$7$F$3$l$O$-$o$a$F0U<address@hidden;address@hidden(BIncompatible
 Timesharing System (ITS) 
$B$r=q$$$?%O%C%+!<$?$A$O!"%U%!%$%kJ]8n$J$s$F$b$N$O?H>!<j$J%7%9%F%`4IM}<T$,!"$[$+$N$_$s$J$K8"NO$r9T;H$9$k$?$a$K;H$&address@hidden;W$C$F$?!#%O%C%+!<$?$A$O!"$=$s$J8"NO$r9T;address@hidden"$=$N<j$N5!G=$O<BAu$7$J$+$C$?!#7k2L$H$7$F!"%7%9%F%`$N$I$3$+$,$3$o$l$?$i!"$$$D$b<+J,$G$J$*$;$?!#$$$i$$$i$7$J$,address@hidden;$J$$$h$M!"$3$C$A$O$I$3$,$*$+$7$$$+$:$P$j$o$+$C$F$F!"address@hidden,!"<+J,$r?.MQ$7$F$J$$$+$i$=$l$r$5$;$J$$$H7h$a$F$k$J$s$F!#$"$-$i$a$F2H$K5"$C$F!"address@hidden,$-$F%7%9%F%`$r$J$*$7$F$/$l$k$N$rBT$D$J$s$F!"$7$J$/$F$$$$$8$c$J$$!#2?$r$7$J$-$c$$$1$J$$$N$+!"<+J,$K$O$=$N?M$N(B10$BG\$b$h$/$o$+$C$F$k$C$F$N$K!#(B
+ あと、AI ç 
”になかったものといえば、ファイル保護。コンピュータにはセキュリティはまったくなかった。そしてこれはきわめて意識的に選んã
 é“だった。Incompatible Timesharing System (ITS) 
を書いたハッカーたちは、ファイル保護なんてものは身勝手なシステãƒ
 ç®¡ç†è€…
が、ほかのみんなに権力を行使するために使うもんだ
って思ってた。ハッカーたちは、そんな権力を行使されるのはまっぴらã
 ã£ãŸã‹ã‚‰ã€ãã®æ‰‹ã®æ©Ÿèƒ½ã¯å®Ÿè£…
しなかった。結果として、システム
のどこかがこわれたら、いつも自分でなおせた。いらいらしながらじっとすわってなきゃならないなんてことは絶対許せないよね、こっちはどこがおかしいかずばりわかってて、それなのにã
 
れかが、自分を信用してないからそれをさせないと決めてるなんて。あきらめて家に帰って、朝にã
 ã‚Œã‹ãŒãã¦ã‚·ã‚¹ãƒ†ãƒ ã‚’なおしてくれるのを待
つなんて、しなくていいじゃない。何をしなきゃいけないのか、自分にはその人の10倍もよくわかってるってのに。
 <p>
-$B!!$"$H!"$I$s$J:n6H$r$d$k$N$+$K$D$$$F$b!"65<address@hidden>e;address@hidden;address@hidden/$?$A$N;E;address@hidden@$b$s!*!!$b$A$m$sMxMQ<address@hidden&$7$J$$$H2?$,I,MW$+$o$+$i$J$$$+$i$M!#$G$b$=$l$,address@hidden"$I$s$J2~A1$,<B8=2DG=$+$$$A$P$s$h$/H=CG$G$-$k$N$O$\$/address@hidden@!#$=$7$F$\$/$A$O$$$D$b!"%7%9%F%`$r$3$&JQ$(address@hidden&$J!"$H$+$[$+$N%7%9%F%`$G!"$3$s$J$$$+$7$?%"%$%G%"$r8+$?$h!"$H$+!"$=$l$r;H$($J$$$b$N$+$J!"address@hidden"$=$3$K$O$J$a$i$+$K5!G=$9$k%"%J!<%-!<$,$"$C$?!#$=$7$F$=$3$G$N<+J,$N7P83$+$i!"$\$/$O$=$l$3$=?M$,@8$-$k:address@hidden(B
+ あと、どんな作業をやるのかについても、教授だ
の上司だのには決めさせなかった。だ
ってぼくたちの仕事はシステムの改善だったんだ
もん! もちろん利用者とは話をした。だ
ってそうしないと何が必
要かわからないからね。でもそれがすんだ
ら、どんな改善が実現可能かいちばんよく判断できるのはぼくたちã
 ã£ãŸã‚“だ。そしてぼくちはいつも、システム
をこう変えたらいいだろうな、とかほかのシステム
で、こんないかしたアイデアを見たよ、とか、それを使えないものかな、とか話してた。ã
 
から結果として、そこにはなめらかに機能するアナーキーがあった。そしてそこでの自分の経験から、ぼくはそれこそ人が生きる最高のやりかたã
 ã¨ç¢ºä¿¡ã—てる。
 <p>
-$B!!;DG0$J$,$i!"$=$&$$$&7A$N(B AI 
$B8&address@hidden/$b$N$"address@hidden"(BAI $B8&$O(B MIT 
$B$NJL$N8&5f=j!"%3%s%T%e!<%?2J3X8&$KGK2u$5$l$k$s$8$c$J$$$+!"$H$$$&$N$,$\$/address@hidden<address@hidden<T%?%$%W$G!"<+J,$NAH?%$r$G$+$/$7$F(B
 MIT $B$NCf$G>:?J$9$k$?$a$J$i$J$s$G$b$d$k$h$&$J?M4V$G!"$$$D$b(B AI 
$B8&$r<+J,$N8&5f=j$K5[<}$7$h$&address@hidden@$l$b$=$$$D$NN.57$G$J$s$+:n6H$7$?$/$J$+$C$?!#$=$$$D$O!"?M$O;X<($K=>$&address@hidden"$=$N<j$N$3$H$r?.$8$F$?$+$i$M!#(B
+ 残念ながら、そういう形の AI 研は破壊されちゃったんだ
。何年ものあいだ、AI 研は MIT の別のç 
”究所、コンピュータ科学研にç 
´å£Šã•ã‚Œã‚‹ã‚“じゃないか、というのがぼくたちのおそれていたことã
 ã£ãŸã€‚そこの所長は一種の帝国建設者
タイプで、自分の組織をでかくして MIT 
の中で昇進するためならなんでもやるような人間で、いつも
 AI 研を自分の研究所に吸収しようとしてたんだ。だ
れもそいつの流儀でなんか作業したくなかった。そいつは、人は指示に従うべきã
 ã¨ã‹ãªã‚“とか、その手のことを信じてたからね。
 <p>
-$B!!$G$b$=$N4m81$KBP$7$F$O$J$s$H$+KI1R$G$-$?$N$K!"$^$C$?$/M=A[$7$F$J$+$C$?$b$N$K$h$C$F$\$/$?$A$OGK2u$5$l$F$7$^$C$?!#$=$l$,>&6H<address@hidden(B1980
 
$BG/Be=i4|$K$J$C$F!"%O%C%+!<$?$A$,%O%C$H5$$,$D$/$H!"<+J,$?$A$N$d$C$F$$$k$3$H$K$O>&Gd>e$N4X?4$,$b$?$l$F$$$?$o$1!#L14V4k6H$GF/$$$F6b;}$A$K$J$k$3$H$,address@hidden,MW$J$N$O!"<+J,$N;E;address@hidden&$H6&M-$9$k$N$r$d$a$F!"(BMIT
 AI 
$B8&$r$V$A$3$o$;address@hidden/$O<j$r?T$/$7$F$=$l$r;_$a$h$&$H$7$?$1$I!"address@hidden(B
+ でもその危険に対してはなんとか防衛できたのに、まったく予想してなかったものによってぼくたちはç
 ´å£Šã•ã‚Œã¦ã—まった。それが商業主義だった。1980 
年代初期になって、ハッカーたちがハッと気がつくと、自分たちのやっていることには商売上の関心がもたれていたわけ。民間企業で働いて金持ちになることが可能になったんã
 ã€‚必要なのは、自分の仕事をほかの世界とå…
±æœ‰ã™ã‚‹ã®ã‚’やめて、MIT AI 研をぶちこわせばいいだ
け。そしてぼくは手を尽くしてそれを止めようとしたけど、でもみんなそれをやっちゃったんã
 ã€‚
 <p>
-$B!!MW$9$k$K!"(BAI 
$B8&$K$$$?$\$/0J30$NM-G=$J%W%m%0%i%^$O!"$_$s$J8[$o$l$F$d$a$A$c$C$F!"$*$+$2$G$=$l$O0l;~E*$JJQ2=$8$c$9$^$J$/$J$C$F$?!#1JB3E*$JJQ2=$,@8$8$?!#%O%C%+!<J82=$NO"address@hidden,address@hidden<address@hidden;2%O%C%+!<$K<address@hidden<%?$,$"$C$F!"$$$A$P$s$*$b$7$m$$$3$H$7$F$k?M$?$A$,$$$F!"$=$7$F;22C$7$?$i:G9b$K$*$b$7$m$$%9%T%j%C%H$b$"address@hidden,$J$/$J$C$?$i!"$=$3$r?7?M$K?dA&$9$k$Y$-M}M3$b$J$/$J$C$A$c$C$F!"address@hidden/$J$C$?!#$R$i$a$-$r<u$1$k$h$&$J?M$b$J$$$7!"EAE}$r3X$Y$k?M$b$$$J$$$7!#$D$$$G$K!"$$$$%W%m%0%i%_%s%0$r3X$V?M$b$$$J$$!#$$$k$N$O!";H$($k%W%m%0%i%`$r=q$/J}K!$J$s$+<B$OCN$i$J$$65<address@hidden,$&$8$c$&address@hidden@$+$i!";H$($k%W%m%0%i%`$N=q$-J}$J$s$+=,$($k$o$1$,address@hidden/$N0&$7$?(B
 MIT AI 
$B8&$O$b$&$J$/$J$C$?!#$=$7$F2?G/$+!"$=$l$r$d$C$??M$?$A$HF.$C$FO"Cf$KH3$rM?$($h$&$H$7$F$+$i!"$\$/$O$=$N@:address@hidden/$j$K@:$r=P$=$&address@hidden(B
+ 要するに、AI ç 
”にいたぼく以外の有能なプログラマは、みんな雇われてやめちゃって、おかげでそれは一時的な変化じゃすまなくなってた。永続的な変化が生じた。ハッカー文化の連続性がとぎれちゃったんã
 ã‚ˆã€‚新人ハッカーはいつだ
って古参ハッカーに惹かれる。だ
っていちばんおもしろいコンピュータがあって、いちばんおもしろいことしてる人たちがいて、そして参åŠ
 ã—たら最高におもしろいスピリットもあったんだ
から。それがなくなったら、そこを新人に推薦するべき理由もなくなっちゃって、ã
 
から新人もこなくなった。ひらめきを受けるような人もないし、伝統を学べる人もいないし。ついでに、いいプログラミングを学ぶ人もいない。いるのは、使えるプログラãƒ
 
を書く方法なんか実は知らない教授や院生がうじゃうじゃいるã
 ã‘だから、使えるプログラム
の書き方なんか習えるわけがない。だからぼくの愛した MIT 
AI ç 
”はもうなくなった。そして何年か、それをやった人たちと闘って連中に罰を与えようとしてから、ぼくはその精神をもった新しいコミュニティづくりに精を出そうと決めたんã
 ã€‚
 <p>
-$B!!$G$b!"D>LL$;address@hidden,!"address@hidden(Bproprietary 
address@hidden($P%O%C%+!<$?$A$,5n$C$F$+$i8&5f=j$G5/$3$C$?$3$H$N0l$D$O!"$\$/$?$A$,3+H/$7$?%^%7%s$d%=%U%H$,$b$&address@hidden"address@hidden($J$1$l$P$:$C$HF0$$$F$?$1$I!"$G$b%^%7%s$O$=$&$O$$$+$J$$!#%^%7%s$O2u$l$k$7!"address@hidden;$k$d$D$,$$$J$$$+$i!"$d$,$F<address@hidden"$($(3N$+$KJ]<address@hidden"$C$?$1$I!"$G$b$^$"0-$$>address@hidden"(BAI
 
$B8&$N%(%-%9%Q!<%H!&%O%C%+!<$?$A$,LdBj$r2r7h$7$F$+$i!"%Q!<%D$rF~<j$9$k$?$a$N<address@hidden<T$K$J$*$5$;$?$i!"2?F|$+$+$k$d$i$o$+$s$J$/$F!"$=$s$J$N$d$C$F$i$l$J$$$h$M!"$9$0F0$/$h$&$K$7$F$/address@hidden"$d$j$+$?$N$o$+$C$F$k?M4V$,address@hidden"$=$l$;$=$$$D$i$O$I$s$J=$M}C4Ev<T$h$j(B
 10 
address@hidden"$:$C$H$^$7$J;E;address@hidden&$9$k$H!"$3$o$l$?4pHW$H$+$,=P$k$+$i!"$=$l$r$=$3$K$*$$$H$$$F!"=$M}C4Ev<T$K$O!V$3$$$D$r;}$C$F5"$C$F!"?7$7$$$N$r$A$g$C$H$b$C$F$-$F$/address@hidden@$&$o$1!#(B
+ でも、直面せざるを得なかった問題の一つが、独占
ソフト(proprietary software)の問題だ
った。たとえばハッカーたちが去ってからç 
”究所で起こったことの一つは、ぼくたちが開発したマシンやソフトがもうメンテされないってことã
 ã£ãŸã€‚ソフトはもちろん動いたし、だ
れもそれを変えなければずっと動いてたけど、でもマシンはそうはいかない。マシンは壊れるし、ã
 
れもなおせるやつがいないから、やがて捨てられる。昔は、ええ確かに保守契約なんてものはあったけど、でもまあ悪い冗談みたいなもんã
 ã£ãŸã€‚それって単に、AI ç 
”のエキスパート・ハッカーたちが問題を解決してから、パーツをå
…¥æ‰‹ã™ã‚‹ãŸã‚ã®æ‰‹æ®µã§ã—かなかった。だって修理担当者
になおさせたら、何日かかるやらわかんなくて、そんなのやってられないよね、すぐ動くようにしてくれないと。ã
 ã‹ã‚‰ã€ã‚„りかたのわかってる人間がだ
まって行ってさっさとなおして、それせそいつらはどんな修理æ‹
…当者より 10 倍も有能だ
ったから、ずっとましな仕事をしたんだ
。それでそうすると、こわれた基盤とかが出るから、それをそこにおいといて、修理æ‹
…当者
には「こいつを持って帰って、新しいのをちょっともってきてくã
 ã•ã„ね」と言うわけ。
 <p>
address@hidden:"address@hidden"%O%C%+!<$?$A$O(B Digital 
$B$+$i$-$?%^%7%s$N$[$&$bJQ99$7$?!#$?$H$($P!"(BPDP-10 
$B$N$F$C$Z$s$K$N$;$k8F$S=P$7MQ%\%C%/%9$b$D$/address@hidden:address@hidden"$3$3!J%9%H%C%/%[%k%`!K$G$b$=$&$$$&$3$H$r$9$k?M$O$$$k$H;W$&$1$I!"Ev;address@hidden&!<address@hidden"(B1960
 
$BG/address@hidden"$_$s$J%3%s%T%e!<%?$rJQ99$7$F!"$$$m$s$J?7$7$$L?Na$rB-$7$?$j!"$9$C$4$$(B
 TSS $B5!G=$rB-$7$?$j$7$F!"address@hidden(B MIT $B$N(B PDP-1 
$B$O!"0zB`$9$k$3$H$K$O(B 60 $BG/Be$O$8$a$K(B Digital $B$,FO$1$?$H$-$N(B 2 
$BG\$/$i$$$NL?Na$r;}$C$F$?$7!"FCJL$J%O!<%I%&%'%"!&%9%1%8%e!<%iJd=u5!G=$dJQ$J%a%b%j%^%C%T%s%05!G=$J$s$+$b$"$C$F!"8DJL%O!<%IAuCV$rFCDj$N(B
 TSS 
$B%8%g%V$K3d$jEv$F$?$j!"$=$NB>$\$/$G$b$[$H$s$ICN$i$J$$$h$&$J$$$m$s$J$3$H$K$J$C$F$?!#$=$l$H3N$+!"0l<o$N3HD%%"%I%l%C%7%s%0%b!<%I$bAH$_9~$s$G!"%$%s%G%C%/%9%l%8%9%?=$>address@hidden>~$H$+DI2C$7$F!"MW$9$k$KFp<address@hidden;H$($k$b$N$K$^$G;EN)address@hidden(B
+ すごい昔の頃だと、ハッカーたちは Digital 
からきたマシンのほうも変更した。たとえば、PDP-10 
のてっぺんにのせる呼び出し用ボックスもつくったんだ
よ。最近だと、ここ(ストックホルム
)でもそういうことをする人はいると思うけど、当時はかなり異例なことã
 ã£ãŸã€‚それにうーんと昔、1960 年代初めとかだ
と、みんなコンピュータを変更して、いろんな新しい命令を足したり、すっごい
 TSS 機能を足したりして、だから MIT の PDP-1 
は、引退することには 60 年代はじめに Digital 
が届けたときの 2 
倍くらいの命令を持ってたし、特別なハードウェア・スケジューラ補助機能や変なメモリマッピング機能なんかもあって、個別ハードè£
…置を特定の TSS 
ジョブに割り当てたり、その他ぼくでもほとんど知らないようないろんなことになってた。それと確か、一種の拡張アドレッシングモードも組み込んで、インデックスレジスタ修飾とか間接修飾とか追åŠ
 ã—て、要するに軟弱なマシンだ
ったのをそこそこ使えるものにまで仕立てたんだ。
 <p>
-$B!!(BVLSI 
address@hidden"%^%7%s$NL?Na$rDI2C$9$k$N$,$b$&$G$-$J$/address@hidden&$M!#(B
+ VLSI の欠点の一つは、マシンの命令を追加
するのがもうできなくなっちゃったことだろうね。
 <p>
-$B!!(BPDP-1 
$B$K$O$^$?$9$4$/$*$b$7$m$$FCD'$,$"$C$F!"$*$b$7$m$$%W%m%0%i%`$r$[$s$N?tL?Na$G=q$1$A$c$&$C$F$3$H!#$=$l0J9_$N$I$s$J%^%7%s$h$j$b>/$J$$L?Na?t$G$M!#3N$+$?$H$($PM-L>$J%G%#%9%W%l%$$N%O%C%/!V%^%s%A%s%0!&%9%/%&%'%"!W$C$F$N$,$"$C$F!";M3Q$,$I$s$I$s$G$+$/$J$C$F!"$=$l$,$?$/$5$s$N>.$5$$;M3Q$KJ,Nv$7$F!"$=$l$,$^$?Bg$-$/$J$C$F$=$l$,$^$?>.$5$$$N$KJ,address@hidden(B
 PDP-1 $B$G$O$J$s$+(B 5 
$BL?Na$/$i$$$G=q$+$l$F$?!#$=$l$H$+$$$m$s$JH~$7$$%G%#%9%W%l%$%W%m%0%i%`$,!"$[$s$N?tL?Na$G=q$1$k!#(B
+ PDP-1 
にはまたすごくおもしろい特徴があって、おもしろいプログラãƒ
 
をほんの数命令で書けちゃうってこと。それ以降のどんなマシンよりも少ない命令数でね。確かたとえば有名なディスプレイのハック「マンチング・スクウェア」ってのがあって、四角がどんどんでかくなって、それがたくさんの小さい四角に分裂して、それがまた大きくなってそれがまた小さいのに分裂するんã
 ã‘ど。これって PDP-1 ではなんか 5 
命令くらいで書かれてた。それとかいろんな美しいディスプレイプログラãƒ
 ãŒã€ã»ã‚“の数命令で書ける。
 <p>
-$B!!$H$$$&$o$1$G!"$3$l$,(BAI$B8&$NMM;address@hidden<$?$A$NJ82=$O!"%"%J%-%:address@hidden)!!(BPDP-1
 
$B$N:"$K$O!"%^%7%s$O0lEY$K(B1$B?M$N%f!<%6$7$+;H$($J$+$C$?!#>/$J$/$H$b:G=i$O$M!#2?G/$+$7$F(B
 TSS 
$B$r=q$$$F!"$=$lMQ$K$?$/$5$s%O!<%I$rDI2C$7$?!#$G$b=i$a$N:"$O!";~4VOH$rM=Ls$7$J$-$c$J$i$J$+$C$?!#$5$F$b$A$m$s!"8x<0%W%m%8%'%/%H$N;E;v$r$7$F$k65<address@hidden"$$$D$bCk4V$K$d$C$F$/address@hidden;~4V$,$?$/$5$s$[$7$$?M$?$A$O!"6%Ah$N>/$J$$Lk$rM=Ls$9$k!#$3$l$G%O%C%+!<$?$A$OLk$KF/$/=,47$,$G$-$?!#(BTSS
 $B$,F~$C$F$+$i$b!"%f!<%6$,>/$J$+$C$?$+$iLk$N$[$&$,;~4V$r$H$j$d$9$$!"(BCPU 
$B%5%$%/%k$OLk$N$[$&$,;H$(address@hidden:n6H$r$$$C$Q$$$7$?$$?M$O!"AjJQ$o$i$:Lk$K$d$C$F$-$?!#$G$b$=$N:"$K$J$k$H!"address@hidden/$J$C$F$F!"$=$l$O<+J,$,$b$&(B
 1 
$B?M$8$c$J$/$F!"$[$+$K$b2??M$+%O%C%+!<$?$A$,$$$?$+$i$G!"address@hidden<R2qE*$J8=>]$K$J$C$?$N$M!#Ck4V$K$-$?$i!"$?$V$s$$$k$N$O65<address@hidden"%^%7%s$r$[$s$H$O0&$7$F$J$$O"address@hidden"Lk$J$i$P$=$3$K$O%O%C%+!<$,address@hidden<$?$A$O!"<+J,$NJ82=$K2C$o$k$?$a$KLk$K$d$C$F$-$?!#$=$7$F%O%C%+!<$?$A$O$[$+$NEAE}$b3+;O$7$?!#D+$N(B
 3 
$B;~$K%F%$%/%"%&%H$NCf2ZNAM}$rGc$C$F$/address@hidden/$O!"%A%c%$%J%?%&%s$+$iLa$C$F$/$k<V$NCf$+$i8+$?F|$N=P$,$$$/$D$b5-21$K;D$C$F$$$k!#F|$N=P$r8+$k$C$F$N$O!"$9$4$/H~$7$$$b$N$G!"address@hidden|$NCf$G$9$4$/2:$d$+$J;address@hidden;address@hidden&$I6u$,Gr$s$G$-$F!"D;$,LD$-=P$9:"$K2H$KJb$$$F$/$H!"2:$d$+$JK~B-46$,<B46$H$7$F$"address@hidden"$=$NHU$K$d$C$?;E;address@hidden;}$A$C$F$N$,!#(B
+ というわけで、これがAI研の様子だ
った。でもハッカーたちの文化は、アナキズム
以外にはどんなものだったのか? PDP-1 のé 
ƒã«ã¯ã€ãƒžã‚·ãƒ³ã¯ä¸€åº¦ã«1人のユーザしか使えなかった。少なくとも最初はね。何年かして
 TSS を書いて、それ用にたくさんハードを追加
した。でも初めの頃は、時間枠
を予約しなきゃならなかった。さてもちろん、å…
¬å¼ãƒ—ロジェクトの仕事をしてる教授や学生は、いつも昼間にやってくる。ã
 
から時間がたくさんほしい人たちは、競争の少ない夜を予約する。これでハッカーたちは夜に働く習æ
…£ãŒã§ããŸã€‚TSS がå…
¥ã£ã¦ã‹ã‚‰ã‚‚、ユーザが少なかったから夜のほうが時間をとりやすい、CPU
 サイクルは夜のほうが使えたわけ。だ
から作業をいっぱいしたい人は、相変わらず夜にやってきた。でもそのé
 ƒã«ãªã‚‹ã¨ã€ãã‚Œã 
けじゃなくなってて、それは自分がもう 1 
人じゃなくて、ほかにも何人かハッカーたちがいたからで、ã
 
から社会的な現象になったのね。昼間にきたら、たぶんいるのは教授や学生とか、マシンをほんとは愛してない連中ã
 ã‘ど、夜ならばそこにはハッカーがいる。だ
からハッカーたちは、自分の文化に加
わるために夜にやってきた。そしてハッカーたちはほかの伝統も開始した。朝の
 3 時にテイクアウトの中華料理を買ってくるとか。だ
からぼくは、チャイナタウンから戻ってくる車の中から見た日の出がいくつも記憶に残っている。日の出を見るってのは、すごく美しいもので、ã
 ã£ã¦ä¸€æ—¥ã®ä¸­ã§ã™ã”く穏やかな時間だ
からね。寝る準備をするにはすばらしい時間帯だ
。ちょうど空が白んできて、鳥が鳴き出すé 
ƒã«å®¶ã«æ­©ã„てくと、穏やかな満足感が実感としてあるんだ
、その晩にやった仕事に対する静謐な気持ちってのが。
 <p>
-$B!!$[$+$K$b$\$/$?$A$N$O$8$a$?EAE}$O!"8&5f<<$KGq$^$k$3$H!#$\$/$,$O$8$a$F$=$3$K9T$C$?$H$-$+$i!"8&5f<<$K$O>/$J$/$H$b0l$D%Y%C%I$,$"$C$?!#$=$7$F$\$/$O!"$[$+$N?M$h$j$A$g$C$H$P$+$78&5f<<$GJk$i$94|4V$,D9$+$C$?!#(B1
 $BG/$+(B 2 
$BG/$*$-$/$i$$$K!"$"$l$d$3$l$d$G%"%Q!<%H$,$J$/$F!"address@hidden&address@hidden/2wE,$G!"$7$+$b2F$K$O$9$4$/$9$:$7$/address@hidden"8&5f=j$G?2$A$c$&?M$r8+$+$1$k$N$O$<$s$<$s$7$g$C$A$e$&$G!"$3$l$b$^$?G.0U$N$;address@hidden/<j$r$H$a$?$/address@hidden,$$$3$H5/$-$F$F%O%C%-%s%0$9$k!#$=$7$F40A4$KHh$l$-$C$?$i!":G4s$j$N$d$o$i$+$$?eJ?LL$K$h$8$N$\$k!#$9$4$/7A<0D%$i$J$$J70O5$!#(B
+ ほかにもぼくたちのはじめた伝統は、ç 
”究室に泊まること。ぼくがはじめてそこに行ったときから、ç
 
”究室には少なくとも一つベッドがあった。そしてぼくは、ほかの人よりちょっとばかしç
 ”究室で暮らす期間が長かった。1 年か 2 
年おきくらいに、あれやこれやでアパートがなくて、だ
から研究所で数ヶ月暮らしたりしたんだ
。いつでもすごく快適で、しかも夏にはすごくすずしくていいんã
 ã€‚でも、ç 
”究所で寝ちゃう人を見かけるのはぜんぜんしょっちゅ
うで、これもまた熱意のせいだ
よね。とにかく手をとめたくないからできるだ
けながいこと起きててハッキングする。そして完å…
¨ã«ç–²ã‚Œãã£ãŸã‚‰ã€æœ€å¯„りのやわらかい水平面によじのぼる。すごく形式張らない雰囲気。
 <p>
-$B!!$G$b%O%C%+!<$?$A$,$_$s$J8&5f=j$rN%$l$?$i!"address@hidden>7$$$?!#%^%7%s$r$[$s$H$O0&$7$F$J$$65<address@hidden"@N$HF1$8$K$&$8$c$&$8$c$$$?$+$i!"O"Cf$,$$$^$d6/address@hidden"$_$s$JI]$,$C$F$?!#%7%9%F%`4IM}$r$7$F$/$l$k%O%C%+!<$,$$$J$/$J$C$?$N$G!"O"Cf$O$3$&address@hidden@!#!V$3$N$^$^$8$cBgJQ$J$3$H$K$J$k!">&6H%=%U%H$rF~$l$J$-$c!W$=$7$F!V$=$7$?$i%a!<%+!<$,%a%s%F$b$7$F$/address@hidden,$FO"Cf$,$^$C$?$/$^$A$,$C$F$?$3$H$,>address@hidden"$G$bO"address@hidden(B
+ でもハッカーたちがみんなç 
”究所を離れたら、これは人口構成の変化を招いた。マシンをほんとは愛してない教授や学生どもは、昔と同じにうじゃうじゃいたから、連中がいまや強い勢力になったわけで、みんな怖がってた。システãƒ
 
管理をしてくれるハッカーがいなくなったので、連中はこう言ったんã
 ã€‚「このままじゃ大変なことになる、商業ソフトをå…
¥ã‚Œãªãã‚ƒã€ãã—て「そしたらメーカーがメンテもしてくれるよ」ã
 
って。やがて連中がまったくまちがってたことが証明されたけど、でも連中はそれをやったんã
 ã€‚
 <p>
-<h3><a name="22">2.2 $B%O%C%+!<J82=$N:address@hidden(B</a></h3>
+<h3><a name="22">2.2 ハッカー文化の再生をめざして</a></h3>
 
-$B!!$^$5$K$=$N;~$K!"?7$7$$(B KL-10 
$B%7%9%F%`$,$/$k$O$:$K$J$C$F$F!"$=$3$G$NLdBj$O!"$=$l$G(B Incompatible 
Timesharing System $B$rF0$+$9$+!"(BDigital $B$N(B Twenex 
address@hidden<$?$A$O$?$V$s(B ITS 
$B$r;H$&$N$r;Y;}$7$?$m$&$1$I!"$=$l$,$$$J$/$J$C$F$?$+$i!"3X<T%?%$%W$NO"Cf$O>&6H%=%U%H$r;H$&A*Br$r$7$F!"$3$l$O$9$0$KL\$K8+$($F1F6A$,=P$F$-$?!#$J$+$K$O$=$s$J$9$0$K$O=P$F$3$J$+$C$?$b$N$b$"$C$?$1$I!"$G$b$3$NLdBj$r9M$($F$_$??M$J$i$o$+$k$h$&$K!"address@hidden(B
+ まさにその時に、新しい KL-10 システム
がくるはずになってて、そこでの問題は、それで Incompatible 
Timesharing System を動かすか、Digital の Twenex システム
を動かすかってことだった。ハッカーたちはたぶん ITS 
を使うのを支持したろうけど、それがいなくなってたから、学è€
…
タイプの連中は商業ソフトを使う選択をして、これはすぐに目に見えて影響が出てきた。なかにはそんなすぐには出てこなかったものもあったけど、でもこの問題を考えてみた人ならわかるように、é
…かれ早かれ出てきたんだ。
 <p>
-$B!!0l$D$K$O!"$=$N%=%U%H$O$:$C$H<A$,0-$/$F!"$o$+$j$K$/$/$F!"address@hidden,MW$JJQ99$r$9$k$N$,$`$:$+$7$+$C$?$C$F$3$H!#$b$&0l$D$N1F6A$O!"$3$N%=%U%H$K$O%;%-%e%j%F%#$,$"$C$F!"$*$+$2$G$_$s$J$,$*8_$$$K6(NO$9$k5!2q$O$I$&$7$F$b8:$C$F$-$?!#(BITS$B$N;~Be$K$O!"address@hidden,$I$s$J%U%!%$%k$G$b8+$FJQ$(address@hidden($i$l$F$?!#$=$l$J$j$NM}M3$,$"$C$?$+$i$M!#$=$l$G;W$$=P$7$?$1$I!"address@hidden,(B
 Macsyma 
$B$N;H$$J}$K$D$$$F=u$1$F$/address@hidden"address@hidden,$b$A$"$,address@hidden(BMacsyma
 $B$C$F$N$O(B MIT 
$B$G3+H/$7$?%7%s%\%j%C%/?t3X%W%m%0%i%`!#$=$N?M$O!"(BMacsyma 
$B$N:n6H$r$7$F$k$"$k?M$K!"=u$1$F$/$l$C$F%a!<%k$r=P$7$?$i!"?t;~4V$?$C$FJL$N?M$+$iJV;v$,$-$?!#$=$N?M$O$S$C$/$j$7$A$c$C$F!"address@hidden"$J$?$N%a!<%k$rFI$s$G$k$_$?$$$G$9$h!"$R$g$C$H$7$F%a!<%k$N%U%!%$%k$NJ]8n$,$A$c$s$H$7$F$J$$$s$8$c$J$$$G$9$+!)!W!VEvA3$G$7$g$&!"$\$/$?$A$N%7%9%F%`$G$OJ]8n$5$l$F$k%U%!%$%k$J$s$+$J$$!#$J$s$+$$$1$^$;$s$+!)!!$"$J$?$O$9$0$KEz$,$b$i$($?$7!"2?$,ITK~$J$N!)!!$\$/$?$A$O$*8_$$$N%a!<%k$rFI$`!#$"$?$j$^$($8$c$s!"$=$&$d$C$F$"$J$?$_$?$$$J?M$r8+$D$1$F=u$1$F$"address@hidden/!"<+J,$,address@hidden@$+$i$J$!!#(B
+ 一つには、そのソフトはずっと質が悪くて、わかりにくくて、ã
 ã‹ã‚‰æœ¬å½“に必
要な変更をするのがむずかしかったってこと。もう一つの影響は、このソフトにはセキュリティがあって、おかげでみんながお互いに協力する機会はどうしても減ってきた。ITSの時代には、ã
 
れもがどんなファイルでも見て変えられるってのはいいことã
 
と考えられてた。それなりの理由があったからね。それで思い出したけど、ã
 ã‚Œã‹ãŒ Macsyma 
の使い方について助けてくれって言ってきたときに、おもしろいスキャンダルがもちあがったんã
 ã€‚Macsyma ってのは MIT 
で開発したシンボリック数学プログラム。その人は、Macsyma 
の作業をしてるある人に、助けてくれってメールを出したら、数時間たって別の人から返事がきた。その人はびっくりしちゃって、「ã
 
れそれはあなたのメールを読んでるみたいですよ、ひょっとしてメールのファイルの保護がちゃんとしてないんじゃないですか?」「当然でしょう、ぼくたちのシステãƒ
 
では保護されてるファイルなんかない。なんかいけませんか? あなたはすぐに答がもらえたし、何が不満なの? ぼくたちはお互いのメールを読む。あたりまえじゃん、そうやってあなたみたいな人を見つけて助けてあげるんã
 
から」まったく、自分が得してるのにわかんない人ってのもいるんã
 ã‹ã‚‰ãªãã€‚
 <p>
-$B!!$G$b$b$A$m$s!"(BTwenex 
$B$K$O%;%-%e%j%F%#$,$"address@hidden/!"$=$l$r%G%U%)%k%H$G5!G=$5$;$k$7!"$5$i$K%;%-%e%j%F%#$,;H$o$l$F$k$H$$$&address@hidden@$+$i!"address@hidden<%8$rM?$($k$h$&$J$3$H$C$F$N$,$?$/$5$s$"$C$F!"$&$C$+$j$=$&$$$&$3$H$r$7$J$$$h$&$K$7$F$/$l$kM#0l$N<jCJ$,%;address@hidden(BITS
 
$B$G$O!"$=$&$$$&$3$H$r$&$C$+$j$d$C$A$c$o$J$$$h$&$K$9$k$[$+$N$$$m$s$JJ}K!$,9M0F$5$l$F$?!#$G$b(B
 Twenex 
$B$K$O$=$s$J$b$N$O$J$$!#873J$J%;%-%e%j%F%#$,5!G=$7$F$F!"$=$&$$$&$3$H$r$9$k8"8B$r;address@hidden@!"address@hidden@$+$i!"$=$&$$$&$&$C$+$j%_%9$rFq$7$/$9$k%a%+%K%:%`$O$[$+$K$<$s$<$s$D$1$F$J$+$C$?!#$=$N7k2L$H$7$F!"C1$K(B
 Twenex 
$B$r$b$C$F$-$F%;%-%e%j%F%#$r%*%U$K$9$k$H$[$7$$$b$N$,<j$KF~$k$o$1$8$c$J$/$J$C$F$F!"$=$7$F$=$NB>$N%a%+%K%:%`$rF~$l9~$`%O%C%+!<$?$A$b$$$J$+$C$?$+$i!"$_$s$J%;%-%e%j%F%#$r;H$&$7$+$J$/$J$C$F$?!#$=$7$F%^%7%s$,$d$C$F$-$F(B6$B%v7n$[$I$7$?$i!"O"Cf$O%/!<%G%?!<$r$O$8$a$?!#$D$^$j!":G=i$O(B
 AI 
$B8&$GF/$$$F$k?M$O$_$s$J!"A4%;%-%e%j%F%#5!G=$r%*!<%P!<%i%$%I$9$kA48"$rM?$($k%[%$!<%k%S%C%H$r%*%s$K$7$F$b$i$(address@hidden"$H$$$&A[Dj$r$7$F$?!#$G$b$"$kF|$N$"$k8a8e$K$d$C$F$-$F$_$k$H!"$[$H$s$IA40w$N%[%$!<%k%S%C%H$,%*%U$K$5$l$F$?!#(B
+ でももちろん、Twenex にはセキュリティがあっただ
けでなく、それをデフォルトで機能させるし、さらにセキュリティが使われてるという前提で設計されてる。ã
 
から、簡単にできちゃってすごいダメージを与えるようなことってのがたくさんあって、うっかりそういうことをしないようにしてくれる唯一の手段がセキュリティなんã
 ã€‚ITS 
では、そういうことをうっかりやっちゃわないようにするほかのいろんな方法が考案されてた。でも
 Twenex にはそんなものはない。厳æ 
¼ãªã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ãŒæ©Ÿèƒ½ã—てて、そういうことをする権限を持つのはボスたちã
 ã‘だ、と想定してたからだ。だ
から、そういううっかりミスを難しくするメカニズム
はほかにぜんぜんつけてなかった。その結果として、単に 
Twenex 
をもってきてセキュリティをオフにするとほしいものが手にå
…¥ã‚‹ã‚ã‘じゃなくなってて、そしてその他のメカニズムをå…
¥ã‚Œè¾¼ã‚€ãƒãƒƒã‚«ãƒ¼ãŸã¡ã‚‚いなかったから、みんなセキュリティを使うしかなくなってた。そしてマシンがやってきて6ヶ月ほどしたら、連中はクーデターをはじめた。つまり、最初は
 AI 研で働いてる人はみんな、å…
¨ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£æ©Ÿèƒ½ã‚’オーバーライドするå…
¨æ¨©ã‚’与えるホイールビットをオンにしてもらえるもんだ
、という想定をしてた。でもある日のある午後にやってきてみると、ほとんどå
…¨å“¡ã®ãƒ›ã‚¤ãƒ¼ãƒ«ãƒ“ットがオフにされてた。
 <p>
-$B!!$3$s$J$N$,$o$+$C$?$H$-!"$\$/$O$=$l$rBGE]$7$?!#:G=i$O!"$?$^$?$^%(%j!<%HAX$KB0$7$F$k$"$k?M$N%Q%9%o!<%I$rCN$C$F$?$N$G!"$=$l$r;H$C$F$_$s$J$N%S%C%H$rLa$;$?!#Fs2sL\$K$O!"$=$$$D$O%Q%9%o!<%I$rJQ$($F$F!"address@hidden<1$bJQ$o$C$F$F!"$$$^$d$b$&5.B2<address@hidden/$O%^%7%s$rDd;_$5$;$F!"(BTSS
 $B$G$J$$(B DDT 
$B$r;H$C$F$D$D$-$^$o$5$J$-$c$J$s$J$+$C$?!#%b%K%?$NCf$G$D$D$-$^$o$7$F!"$d$,$F(B
 OS 
$B$r%m!<%I$5$;$F%Q%C%A$,$"$F$i$l$k$h$&$K$9$k$K$O$I$&$7$?$i$$$$$+$D$-$H$a$F!"$=$l$G%Q%9%o!<%I$N%A%'%C%/$r%*%U$K$7$F!"$=$l$+$i$$$m$s$J?M$N%[%$!<%k%S%C%H$rLa$7$F!"%7%9%F%`%a%C%;!<address@hidden@$7$H$/$H$3$N%^%7%s$NL>A0$O(B
 OZ 
$B$G!"address@hidden;!<%8$r%]%9%H$7$?!#!V$^$?$b$d8"NO$rC%<h$;$s$H$9$k;n$_$,9T$o$l$?!#$$$^$N$H$3$m!"5.B23,address@hidden(B
 $B!=!=(B 
$B%i%8%*!&%U%j!<!&(BOZ$B!W$"address@hidden"!V%i%8%*!&%U%j!<!&(BOZ$B!W$H$$$&$N$O%U%!%$%"%5%$%s7`>l$G;address@hidden:"$OCN$i$J$+$C$?!#(B
+ こんなのがわかったとき、ぼくはそれを打倒した。最初は、たまたまエリート層に属してるある人のパスワードを知ってたので、それを使ってみんなのビットを戻せた。二回目には、そいつはパスワードを変えてて、ã
 ã‹ã‚‰æ‰€å±žæ„è­˜ã‚‚変わってて、いまやもう貴族社会の一員だ
った。そこでぼくはマシンを停止させて、TSS でない DDT 
を使ってつつきまわさなきゃなんなかった。モニタの中でつつきまわして、やがて
 OS 
をロードさせてパッチがあてられるようにするにはどうしたらいいかつきとめて、それでパスワードのチェックをオフにして、それからいろんな人のホイールビットを戻して、システãƒ
 
メッセージをポストした。説明しとくとこのマシンの名前は
 OZ で、だからこんなシステム
メッセージをポストした。「またもや権力を奪取せんとする試みが行われた。いまのところ、貴族階級の勢力は打倒された
 ―― ラジオ・フリー・OZ」あとで知ったんだ
けど、「ラジオ・フリー・OZ」というのはファイアサイン劇å
 ´ã§ä½¿ã£ã¦ã‚‹ã‚‚のの一つなんだね。その頃は知らなかった。
 <p>
-$B!!$G$b>address@hidden@$s$H!"$I$s$I$s0-$$$[$&$K8~$+$C$F$C$?$M!#MW$O$=$N%7%9%F%`$N$D$/$i$l$+$?$N$;$$$G!"$=$l$,$_$s$J$b$C$H$b$C$H%;%-%e%j%F%#$rMW5a$9$k$h$&address@hidden<address@hidden,$F!"$\$/$O$=$N%^%7%s$r;H$&$N$r$d$a$J$-$c$J$s$J$/$J$C$F$-$?!#(BMIT
 AI 
$B8&$K%Q%9%o!<%I$,=i$a$FEP>l$7$F0JMh!"$\$/$O<+J,$N?.G0$N$?$a$KN)$A>e$,$m$&!"%Q%9%o!<%I$J$s$+$"$C$F$O$J$i$J$$$H$$$&?.G0$K$7$?$,$*$&!"@address@hidden<%I$K$7$F!"$=$l$r$_$s$J$K$P$i$9$h$&$K$7$h$&address@hidden/$O%3%s%T%e!<%?$K%;%-%e%j%F%#$r$D$1$k$N$O$$$$$H$H$O;W$o$J$$$+$i!"%;%-%e%j%F%#;YG[$,B3$/$N$r=u$1$k$h$&$J$3$H$b$9$Y$-$8$c$J$$!#!V6u$N%Q%9%o!<%I!W$r;H$($k%7%9%F%`$G$O;H$&$7!"$=$l$,5v$5$l$J$$%7%9%F%`$H$+!"address@hidden>address@hidden"$=$N<address@hidden"$\$/$O%m%0%$%sL>$r%Q%9%o!<%I$K$9$k!#$3$l0J>e$O$J$$$C$F$/$i$$<address@hidden@$l$+$,!"address@hidden>?M$,$-$_$K$J$C$F%m%0%$%s$G$-$A$c$&$8$c$J$$$+!"$H;XE&$9$k$H!"$\$/$O$3$&address@hidden&!#!V$&$s!"$^$5$K$=$l$,address@hidden,$3$N%^%7%s$N%G!<%?$rI,MW$H$9$k$+$b$7$l$J$$!#$=$N$H$-$K!"$=$N?M$,%;%-%e%j%F%#$N$*$+$2$G%P%+$r8+$?$j$9$k$3$H$,@dBP$J$$$h$&$K$7$H$-$?$$$N$h!W(B
+ でも状況はだんだ
んと、どんどん悪いほうに向かってったね。要はそのシステãƒ
 
のつくられかたのせいで、それがみんなもっともっとセキュリティを要求するような性質もものã
 
ったってこと。しまいにやがて、ぼくはそのマシンを使うのをやめなきゃなんなくなってきた。MIT
 AI 研にパスワードが初めて登å 
´ã—て以来、ぼくは自分の信念のために立ち上がろう、パスワードなんかあってはならないという信念にしたがおう、絶対にできるã
 
けわかりやすいパスワードにして、それをみんなにばらすようにしようと決心したんã
 
。ぼくはコンピュータにセキュリティをつけるのはいいととは思わないから、セキュリティ支é
…
ãŒç¶šãã®ã‚’助けるようなこともすべきじゃない。「空のパスワード」を使えるシステãƒ
 ã§ã¯ä½¿ã†ã—、それが許されないシステムとか、それだ
とほかのå 
´æ‰€ã‹ã‚‰ã¯ä¸€åˆ‡ãƒ­ã‚°ã‚¤ãƒ³ã§ããªã„とか、その手のシステム
とかだ
と、ぼくはログイン名をパスワードにする。これ以上はないってくらい自明でしょ。そしてã
 ã‚Œã‹ãŒã€ãã‚“なことだ
と他人がきみになってログインできちゃうじゃないか、と指摘すると、ぼくはこう言う。「うん、まさにそれがねらい。ã
 ã‚Œã‹ãŒã“のマシンのデータを必
要とするかもしれない。そのときに、その人がセキュリティのおかげでバカを見たりすることが絶対ないようにしときたいのよ」
 <p>
-$B!!$=$l$H$b$&0l$D$d$k$N$,!"<+J,$N%G%#%l%/%H%j$d%U%!%$%k$NJ]8n$OA4It$O$:address@hidden/$OLr$KN)$D%=%U%H$r$=$3$K;}$C$F$$$F!"$b$7%P%0$,$"$C$?$i!"$_$s$J$,$J$*$;$k$h$&$K$7$H$-$?$$$+$i!#(B
+ それともう一つやるのが、自分のディレクトリやファイルの保護はå
…¨éƒ¨ã¯ãšã™ã€‚だ
ってちばしばぼくは役に立つソフトをそこに持っていて、もしバグがあったら、みんながなおせるようにしときたいから。
 <p>
-$B!!$G$b$3$N%^%7%s$O$^$?!"!V4Q8w!W$H8F$P$l$k8=>]$r%5%]!<%H$9$k$h$&$K$O$G$-$F$$$J$+$C$?!#$5$F!"!V4Q8w!W$C$F$N$O(B
 AI 
$B8&$G$O$9$4$/8E$$EAE}$G!"$[$+$N7A$N%"%J!<%-!<$H$$$C$7$g$KB3$$$F$-$F$F!"$3$l$O$D$^$j!"It30<T$K$b<+M3$K%^%7%s$r;H$o$;address@hidden"address@hidden/$F!">!<j$JL>A0$G%m%0%$%s$7$G$-$?:"$K$O!"$3$l$O$b$&<+F0E*$K$=$&$J$C$F$?!#$b$7(B
 MIT 
$B$KM7$S$K$-$F$?$i!"%m%0%$%s$7$F:n6H$,$G$-$k!#8e$K$3$l$r$A$g$C$H$O7A<02=$7$?!#$3$l$OFC$K(B
 ARPAnet 
$B$,$O$8$^$C$F!"$_$s$JA49q$+$i$&$A$N%^%7%s$K$D$J$0$h$&$K$J$C$?$H$-$K$=$&$G!"$_$s$J$,G'$a$kEAE}$H$7$F$C$F$3$H!#$5$F!"$\$/$?$A$,4|BT$7$F$?$N$O!"$=$&$$$&It30<T$,%W%m%0%i%_%s%0$r<B:]$K3X$s$G!"(BOS
 
$B$rJQ$(address@hidden<T$K$7$F$b!"$_$s$JHt$S>e$,$k$h!#$I$s$JIt30<T$G$b%^%7%s$,;H$($k$J$s$FFw$o$;$h$&$b$N$J$i!"address@hidden&address@hidden&!#!V$G$b$=$$$D$,%7%9%F%`%W%m%0%i%`$rJQ$($A$c$C$?$i$I$&$9$s$N!)!W$G$b$\$/$?$A$K$H$C$F$O!"It30<T$,%7%9%F%`%W%m%0%i%`$rJQ$($O$8$a$k$C$F$3$H$O!"$=$l$O$D$^$j$=$N?M$,%3%_%e%K%F%#$K9W8%$9$k%a%s%P!<$K$J$m$&$HK\5$$G6=L#$r<(address@hidden/$?$A$O$$$D$b!"$=$&$9$k$h$&>)Ne$7$F$k!#:G=i$O$b$A$m$s!"?7$7$$%7%9%F%`%f!<%F%#%j%F%#$r=q$/$H$3$m$+$i!"$=$l$b>.$5$$%d%D$M!"$=$7$F$=$$$D$,address@hidden"$G$b$=$7$?$i$=$l$+$i4{B8$NBg$-$J%f!<%F%#%F%#$K5!G=$rDI2C$9$k$[$&$K8~$+$&!#$=$7$F$=$&$$$&%W%m%0%i%`$O$b$&(B
 10 $BG/$H$+(B 15 
$BG/$H$+B8:_$7$F$$$F!"0lIt0lIt$4$H$K!"?&?M$,<address@hidden(B
+ でもこのマシンはまた、「観å…
‰ã€ã¨å‘¼ã°ã‚Œã‚‹ç¾è±¡ã‚’サポートするようにはできていなかった。さて、「観å
…‰ã€ã£ã¦ã®ã¯ AI ç 
”ではすごく古い伝統で、ほかの形のアナーキーといっしょに続いてきてて、これはつまり、部外è€
…にも自由にマシンを使わせるってこと。さて昔々、だ
れでもマシンにやってくて、勝手な名前でログインしできたé
 ƒã«ã¯ã€ã“れはもう自動的にそうなってた。もし MIT 
に遊びにきてたら、ログインして作業ができる。後にこれをちょっとは形式化した。これは特に
 ARPAnet がはじまって、みんなå…
¨å›½ã‹ã‚‰ã†ã¡ã®ãƒžã‚·ãƒ³ã«ã¤ãªãã‚ˆã†ã«ãªã£ãŸã¨ãã«ãã†ã§ã€ã¿ã‚“なが認める伝統としてってこと。さて、ぼくたちが期å¾
…してたのは、そういう部外者
がプログラミングを実際に学んで、OS 
を変えはじめることだ
った。この話をほかのどこのシステム管理者
にしても、みんな飛び上がるよ。どんな部外者
でもマシンが使えるなんて匂わせようものなら、その人は言うã
 ã‚ã†ã€‚「でもそいつがシステムプログラム
を変えちゃったらどうすんの?」でもぼくたちにとっては、部外è€
…がシステムプログラム
を変えはじめるってことは、それはつまりその人がコミュニティに貢献するメンバーになろうと本気で興味を示してるってことなんã
 
。ぼくたちはいつも、そうするよう奨励してる。最初はもちろん、新しいシステãƒ
 
ユーティリティを書くところから、それも小さいヤツね、そしてそいつが何をやったか監督して訂正するけど、でもそしたらそれから既存の大きなユーティティに機能を追åŠ
 ã™ã‚‹ã»ã†ã«å‘かう。そしてそういうプログラムはもう 10 
年とか 15 
年とか存在していて、一部一部ごとに、職人が次々
と新しい機能を足してったものなんだ。
 <p>
-$B!!%U%i%s%9$NET;address@hidden@$C$F$b$$$$$+$J!#$b$N$9$4$/8E$$7zJ*$K!"?tI4G/8e$KA}C[$,$5$l$F!"$=$l$,$:$C$H$$$^$^$GB3$$$F$k$h$&$J!#%3%s%T%e!<address@hidden&address@hidden"(B1965
 
$BG/$K=q$-$O$8$a$i$l$?%=%U%H$C$F$N$,$=$l$K$"address@hidden/$?$A$O$$$D$b!"4Q8w5R$,%7%9%F%`4IM}<T$K$J$C$F!"$=$7$?$i8[$o$l$k$+$b$7$l$J$$!#$b$A$m$s%7%9%F%`%W%m%0%i%`$N:n6H$r=i$a$F!"$^$H$b$J;E;v$,$G$-$k$3$H$r>address@hidden/address@hidden(B
+ フランスの都市みたいなもんだ
と言ってもいいかな。ものすごく古い建物に、数百年後に増築がされて、それがずっといままで続いてるような。コンピュータの世界ã
 ã¨ã€1965 
年に書きはじめられたソフトってのがそれにあたる。だ
からぼくたちはいつも、観光客がシステム管理者
になって、そしたら雇われるかもしれない。もちろんシステãƒ
 ãƒ—ログラム
の作業を初めて、まともな仕事ができることを証明してくれればã
 ã‘ど。
 <p>
-$B!!$G$b(B ITS 
$B$N%^%7%s$K$O!"$3$l$,<j$KIi$($J$/$J$k$N$rKI$0$?$a$N5!G=$,$[$+$K$$$/$D$+$"$C$?!#$=$N0l$D$,!V%9%Q%$!W5!G=$G!"address@hidden,2?$r$7$F$k$+!"address@hidden;address@hidden"4Q8w5R$O%9%Q%$$9$k$N$,Bg9%$-$G!"$_$s$J$=$l$,address@hidden;W$C$F!"address@hidden"$I$C$+$N4Q8w5R$,2?$+LLE]$r5/$3$9$h$&$J$^$M$r$7$F$b!"I,$:address@hidden,$=$l$r8+$F$k$o$1!#$=$l$G$d$,$F$=$$$D$NM'address@hidden/address@hidden,B3$$$F$/$l$k$?$a$K$O!"4Q8w5R$,@UG$$"$k9TF0$r$9$k$+$I$&$+$K$+$+$C$F$k$N$rCN$C$F$k$+$i!#$=$l$G$?$$$,$$$O!"$=$$$D$,address@hidden@$+CN$C$F$k$d$D$,$$$F!"$=$l$G$=$&$$$&$3$H$r$7$J$$$h$&address@hidden@$7$F$b$i$(address@hidden,$G$-$J$+$C$?$i!"$I$&$9$k$+$C$F$$$&$H!"FCDj$N>l=j$+$i$N%"%/%;%9$r$7$P$i$/address@hidden:"$K$O!"$=$$$D$O$I$C$+$h$=$X9T$C$F!"$\$/$?$A$N$3$H$OK:$l$A$c$&address@hidden,2?G/$b2?G/$b2?G/address@hidden(B
+ でも ITS のマシンには、これが手に負
えなくなるのを防ぐための機能がほかにいくつかあった。その一つが「スパイ」機能で、ã
 ã‚ŒãŒä½•ã‚’してるか、だれでも観察できる機能だ
った。そしてもちろん、観å…
‰å®¢ã¯ã‚¹ãƒ‘イするのが大好きで、みんなそれがいかしたことã
 ã¨æ€ã£ã¦ã€ã¤ã¾ã‚Šã¡ã‚‡ã£ã¨ã‚¤ã‚±ãƒŠã‚¤æ„Ÿã˜ã 
けれどでも結果として、どっかの観å…
‰å®¢ãŒä½•ã‹é¢å€’を起こすようなまねをしても、必ずだ
れかがそれを見てるわけ。それでやがてそいつの友だ
ちはすごく怒りだす。観光が続いてくれるためには、観å…
‰å®¢ãŒè²¬ä»»ã‚る行動をするかどうかにかかってるのを知ってるから。それでたいがいは、そいつがã
 ã‚Œã 
か知ってるやつがいて、それでそういうことをしないように説明してもらえるんã
 
。それができなかったら、どうするかっていうと、特定のå 
´æ‰€ã‹ã‚‰ã®ã‚¢ã‚¯ã‚»ã‚¹ã‚’しばらく完å…
¨ã«åˆ‡ã‚‹ã€‚そしてそれを戻すé 
ƒã«ã¯ã€ãã„つはどっかよそへ行って、ぼくたちのことは忘れちゃう。ã
 ã‹ã‚‰ã“れが何年も何年も何年も続いたんだ。
 <p>
-$B!!$G$b(B Twenex 
$B%7%9%F%`$O!"$3$N<address@hidden/$F!"$d$,$FO"Cf$O$_$s$J$K%Q%9%o!<%I$rCN$i$l$F$k$\$/$r5v$7$F$/$l$J$/$J$C$?!#4Q8w5R$,$$$D$b$\$/$NL>A0$GF1;~$KFs?M$b;address@hidden"Cf$O$\$/$N%"%+%&%s%H$r>C$9$h$&$K$J$C$?!#$=$7$F$=$N$3$H$K$O!"$\$/$O$I$&$;JL$N%^%7%s$G:n6H$7$F$k$[$&$,B?$/$F!"address@hidden,$F$"$-$i$a$F!"$b$&$=$C$A$N%9%$%C%A$OF~$l$J$/$J$C$?!#$=$l$G$=$l$O$*$7$^$$!#$b$&$"$N5!3#$K$O$:$$$V$s%m%0%$%s$7$F$J$$$J!"<+J,$N%"%+%&%s%H$G$O$b$&!D!D!J$3$N;address@hidden"(BRMS$B$O$9$5$^$8$$Go<j$K$5$($.$i$l$k!KG/$b!#(B
+ でも Twenex システム
は、この手のこと用には設計されてなくて、やがて連中はみんなにパスワードを知られてるぼくを許してくれなくなった。観å
…
‰å®¢ãŒã„つもぼくの名前で同時に二人も三人もログインしてたわけ。ã
 
から連中はぼくのアカウントを消すようになった。そしてそのことには、ぼくはどうせ別のマシンで作業してるほうが多くて、ã
 ã‹ã‚‰ã‚„がてあきらめて、もうそっちのスイッチはå…
¥ã‚Œãªããªã£ãŸã€‚それでそれはおしまい。もうあの機械にはずいぶんログインしてないな、自分のアカウントではもう……(この時点で、RMSはすさまじい拍手にさえぎられる)年も。
 <p>
-$B!!$G$bO"Cf$,:G=i$K$3$N(B Twenex 
$B%7%9%F%`$r<j$KF~$l$?$i!"$^$:$$$/$D$+JQ99$r$7$?$,$C$?!#%;%-%e%j%F%#$N;EAH$_$rJQ$($?$,$C$?!#$=$l$H$=$N%^%7%s$r(B
 ARPAnet $B$H(B MIT-CHAOS 
$B%M%C%H%o!<%/$KN>J}$K$D$J$.$?$,address@hidden"$G$b7k6I$O$=$l$,$G$-$J$/$F!"$=$&$$$&address@hidden,address@hidden@$1$N:MG=$,$b$&$J$/$J$C$F$?$7!"$=$b$=$b%7%9%F%`$NJQ99$,$`$:$+$7$+$C$?!#$3$N%7%9%F%`$O$:$C$H$o$+$j$K$/$/$F!"address@hidden"$b$A$m$s(B
 Digital 
$B$O$=$s$J$3$H$7$F$/$l$J$/$F!"address@hidden>&6H%7%9%F%`$J$i4pK\E*$K$O%7%9%F%`4IM}$r2q<R$,$d$C$F$/$l$k$H$$$&9M$(J}$O!"7k6I$^$A$,$C$F$k$3$H$,>address@hidden<$KBP$9$k%K!<%:$OA0$HJQ$o$i$J$+$C$?$N$K!"$G$b%7%9%F%`%O%C%+!<$r$*$S$-$h$;$k<jCJ$,$b$&$J$/$J$C$F$?!#$=$7$F:G6a$N(B
 MIT $B$K$O!"(BTwenex $B>e$G%O%C%-%s%0$7$?$,$k?M$h$j(B ITS 
$B$G%O%C%-%s%0$7$?$,$k?M$N$[$&$,address@hidden(B
+ でも連中が最初にこの Twenex システムを手にå…
¥ã‚ŒãŸã‚‰ã€ã¾ãšã„くつか変更をしたがった。セキュリティの仕組みを変えたがった。それとそのマシンを
 ARPAnet と MIT-CHAOS ネットワークに両方につなぎたがったんだ
けど、でも結局はそれができなくて、そういう変更をするã
 ã‘の能力をもった人が見つけられなかったんだ
。それをするだ
けの才能がもうなくなってたし、そもそもシステム
の変更がむずかしかった。このシステム
はずっとわかりにくくて、それはダメな書かれかたをしてたからで、もちろん
 Digital はそんなことしてくれなくて、だから商業システム
なら基本的にはシステム
管理を会社がやってくれるという考え方は、結局まちがってることが証明されたわけ。システãƒ
 
ハッカーに対するニーズは前と変わらなかったのに、でもシステãƒ
 
ハッカーをおびきよせる手段がもうなくなってた。そして最近の
 MIT には、Twenex 上でハッキングしたがる人より ITS 
でハッキングしたがる人のほうが多いんだ。
 <p>
-$B!!$=$7$F$=$&$J$k:G=*E*$JM}M3$C$F$N$O!"(BTwenex 
$B$O6&address@hidden(BTwenex 
address@hidden"%=!<%9%3!<%I$r<j$KF~$l$k$K$O!"$"$k7y$i$7$$J}K!$G$=$l$rHkL)$K$7$H$+$J$-$c$J$i$J$/$F!"$3$l$,0u>]$r0-$/$7$F$k!#$=$N?M$,L54X?4$G$J$1$l$P!J$=$7$F%3%s%T%e!<%?6H3&$K$O$=$&$$$&?M$b$$$F!"<+J,address@hidden,3Z$7$1$l$P$J$s$G$b$d$C$F!"$[$+$N?M$?$A$H6(NO$7$F$k$+$J$s$F0l=V$?$j$H$b9M$($J$$$h$&address@hidden"$G$b$=$s$J%=%U%H$N:n6H$r$9$k$N$,$I$s$J$KHa$7$$$3$H$+$o$+$s$J$$$J$s$F!"AjEvL54X?4$8$c$J$$$H%"%l$G!"$3$l$,address@hidden@$a2!$7$G$/$k$N$,!"KhG/$+$=$3$i!"?7$7$$%j%j!<%9$C$F$N$,=P$F$-$F!"$=$l$,(B
 50,000 
$B9T$/$i$$$NDI2C$N%3!<address@hidden"$=$l$,A4It%5%k$,=q$$$?$_$?$$$JBeJ*!#$=$l$OO"Cf$,!V%5%k(B
 100 
$BK|I$$K%?%$%W$5$;$l$P!"$$$:$l$J$s$+;H$($k$b$N$,=P$F$/$k!W<0%7%9%F%`3+H/$K$7$?$,$C$F$k$+$i!#(B
+ そしてそうなる最終的な理由ってのは、Twenex はå…
±æœ‰ã§ããªã„ってことなんだ。Twenex は独占プログラム
で、ソースコードを手にå…
¥ã‚Œã‚‹ã«ã¯ã€ã‚る嫌らしい方法でそれを秘密にしとかなきゃならなくて、これが印象を悪くしてる。その人が無関心でなければ(そしてコンピュータ業界にはそういう人もいて、自分たちã
 
けが楽しければなんでもやって、ほかの人たちと協力してるかなんて一瞬たりとも考えないような人たちã
 
けれど、でもそんなソフトの作業をするのがどんなに悲しいことかわかんないなんて、相当無関心じゃないとアレで、これがさらにマイナス要å›
 ã ã‚ˆã­ï¼‰ã€‚そしてさらにだ
め押しでくるのが、毎年かそこら、新しいリリースってのが出てきて、それが
 50,000 行くらいの追加のコードだらけで、それがå…
¨éƒ¨ã‚µãƒ«ãŒæ›¸ã„たみたいな代物。それは連中が「サル 100 
万匹にタイプさせれば、いずれなんか使えるものが出てくる」式システãƒ
 é–‹ç™ºã«ã—たがってるから。
 <p>
-$B!!$3$&$$$&address@hidden,5/$-$F$k$+8+$?$H$-!"$\$/$K$O$O$C$-$j$o$+$C$?!#$+$D$F$N(BAI$B8&$N%9%T%j%C%H$r$\$/$i$,;}$DM#0l$NJ}K!$O!"%U%j!<$N(B
 OS 
$B$r$D$/address@hidden,!#%U%j!<address@hidden/$C$?%7%9%F%`$,$G$-$F!"$=$l$,$_$s$J$G6&M-$G$-$k$h$&address@hidden&$9$l$P$_$s$J$K!"$=$N2~A1$K;22C$7$h$&$H8F$S$+$1$i$l$k!#$=$7$F$=$3$+$i(B
 GNU $B%W%m%8%'%/%H$,address@hidden&$o$1$G!"address@hidden(B<p>
-$B!!(B
+ こういう独占システム
で何が起きてるか見たとき、ぼくにははっきりわかった。かつてのAIç
 ”のスピリットをぼくらが持つ唯一の方法は、フリーの OS 
をつくることだってのが。フリーソフトだ
けでつくったシステムができて、それがみんなでå…
±æœ‰ã§ãã‚‹ã‚ˆã†ã«ãªã‚‹ã“とだ
って。そうすればみんなに、その改善に参加
しようと呼びかけられる。そしてそこから GNU 
プロジェクトが出てきたんだ
。というわけで、この話の第二部にやってきたってことだ
ね。<p>
+ 
 <hr>
-<h2><a name="3">3  GNU $B%W%m%8%'%/%H(B</a></h2>
+<h2><a name="3">3  GNU プロジェクト</a></h2>
 
-<h3><a name="31">3.1$B!!$O$8$a$N0lJb(B</a></h3>
+<h3><a name="31">3.1 はじめの一歩</a></h3>
 <p>
address@hidden(B 3 
$BG/H>$/$i$$A0$K!"%U%j!<%=%U%H%7%9%F%`3+H/$K<address@hidden<+J,$G$O$C$-$j$7$F$-$?!#3+H/$9$Y$-%7%9%F%`$H$7$F$OFs<address@hidden,(B
 LISP $B%^%7%s$_$?$$$J%7%9%F%`$G!"$A$g$&$I3+H/$5$l$?$P$+$j$N(B MIT LISP 
$B%7%9%F%`$H$^$C$?$/address@hidden"$G$b%U%j!<$G!"$7$+$bFCJL$J(B LISP 
$B%^%7%s$8$c$J$/$F!"$U$D$&$N%O!<%I$GF0$/%d%D!#$=$7$F$b$&address@hidden,!"$b$C$HEAE}E*$J(B
 OS $B$r$D$/$k$C$F$3$H$G!"$=$N;~$K$O$C$-$j$7$F$?$N$O!"$b$7EAE}E*$J(B OS 
$B$r$D$/$k$J$i!"$=$l$O(B UNIX 
address@hidden;address@hidden&$9$l$P$$$m$s$J$H$3$N?M$?$A$,>h$j49$($d$9$$$+$i!#$7$P$i$/$7$F!"8e<address@hidden@$1$I!"$=$NM}M3$O!"$[$s$H$N(B
 LISP 
$B%^%7%s$_$?$$$J$b$N$rIaDL$N%O!<%I$G$O$G$-$J$$$C$F$N$,8+$(address@hidden(BLISP 
$B%^%7%s$O!"<B9TB.EY$r3NJ]$7$F!"F1;~$K%i%s%?%$%`$G7xO4$J%(%i!<C5CN$r$9$k$?$a$K!"FC<l$J%O!<%I$HFCJL$J=q$-9~$_2DG=$J%^%$%/%m%3!<%I$r;address@hidden(%i!<$C$F!"FC$K%G!<%?%?%$%W$N%(%i!<!#$U$D$&$N%7%9%F%`$G(B
 LISP 
$B%7%9%F%`$r==J,$K$O$d$/Av$i$;$k$K$O!"$$$m$$$m2>Dj$r$*$/$h$&$K$7$J$-$c$J$s$J$$!#$"$k0z$-?t$,@address@hidden>Dj$7$F!"$G!"$=$&$G$J$1$l$P%7%9%F%`$O$"$C$5$j%/%i%C%7%e!#(B
+ だいたい 3 年半くらい前に、フリーソフトシステム
開発に手をつけるべきだ
ってのは自分ではっきりしてきた。開発すべきシステム
としては二種類の可能性が LISP マシンみたいなシステム
で、ちょうど開発されたばかりの MIT LISP システム
とまったく同じだけれど、でもフリーで、しかも特別な 
LISP 
マシンじゃなくて、ふつうのハードで動くヤツ。そしてもう一つの可能性が、もっと伝統的な
 OS 
をつくるってことで、その時にはっきりしてたのは、もし伝統的な
 OS をつくるなら、それは UNIX と互換性をもたせるべきだ
ってこと。そうすればいろんなとこの人たちが乗り換えやすいから。しばらくして、後è€
…をやるべきだと決めたんだけど、その理由は、ほんとの 
LISP 
マシンみたいなものを普通のハードではできないってのが見えてきたからã
 ã£ãŸã®ã­ã€‚LISP 
マシンは、実行速度を確保して、同時にランタイムで堅
牢なエラー探知をするために、特殊なハードと特別な書き込み可能なマイクロコードを使ってるんã
 
。エラーって、特にデータタイプのエラー。ふつうのシステãƒ
 ã§ LISP システム
を十分にはやく走らせるには、いろいろ仮定をおくようにしなきゃなんない。ある引き数が正しいタイプã
 ã£ã¦ä»®å®šã—て、で、そうでなければシステム
はあっさりクラッシュ。
 <p>
-$B!!(B
-$B$b$A$m$s30E*$J%A%'%C%/$rF~$l$k$3$H$O$G$-$k$7!"$d$j$?$-$c7xO4$J%W%m%0%i%`$b=q$1$k$1$I!"7k6I$N$H$3$m$O!"$=$N%A%'%C%/$rF~$l$J$1$l$P!"4X?t$K$^$A$,$C$?%?%$%W$N0z$-?t$r6t$o$;$?$i!"%a%b%j%"%I%l%C%7%s%0$N%(%i!<$H$+$,5/$-$A$c$&address@hidden(B
+ 
+もちろん外的なチェックをå…
¥ã‚Œã‚‹ã“とはできるし、やりたきゃ堅牢なプログラム
も書けるけど、結局のところは、そのチェックをå…
¥ã‚Œãªã‘れば、関数にまちがったタイプの引き数を喰わせたら、メモリアドレッシングのエラーとかが起きちゃうってことã
 ã€‚
 <p>
address@hidden"(BLISP 
$B%7%9%F%`$N2<$G2?$+$,Av$C$F$F!"$=$&$$$&%(%i!<$r=&$C$F$/$l$J$-$c$J$s$J$$!#$=$7$F%f!<%6$,%7%9%F%`$rF0$+$7B3$1$F!"5/$-$?$3$H$r%G%P%C%0$G$-$k$h$&$K$7$J$$$H!#:G8e$K!"$b$72<$N(B
 OS $B$r$D$/$k$s$J$i!"$=$l$O$$$$(B OS $B$K$7$h$&$H$b7h?4$7$?(B $B!=!=(B 
$B$D$^$j$3$l$O!"(BOS $B$H(BLISP $B$+!"$"$k$$$O(B OS 
address@hidden"$H$$$&address@hidden@$+$i!"$^$:$O(B OS 
address@hidden&!"$=$7$F$=$l$O(B UNIX 
address@hidden:G8e$K$3$N%7%9%F%`$NL>A0$H$7$F1Q8l$G$$$A$P$s$*$b$7$m$$L>A0$r;H$(address@hidden,$D$$$?$i!"$\$/$NA*$V$Y$-F;$O$O$C$-$j$7$?!#$=$N$3$H$P$O$b$A$m$s(B
 GNU $B$G!"$3$l$O!V(B GNU 's Not Unix$B!W$NN,!#$3$N:F5"E*$JN,>N$O!"(BMIT 
$B<~JU$N%O%C%+!<<R2q$G$O$9$4$/8E$$EAE}$K$J$C$F$k!#$\$/$NCN$k8B$j!"$3$l$O(B 
TINT $B$H$$$&%(%G%#%?$G$O$8$^$C$?$O$:!#$3$l$O!V(BTint Is Not 
Teco$B!W$NN,$G!"$=$l$O$d$,$F!V(BSINE Is Not  EMACS $B!W$NN,$G(B SINE 
$B$H$+!"!V(BFine Is Not  EMACS $B!W$G(B FINE $B$H$+!"!V(BEine Is Not  
EMACS $B!W$G(B EINE $B$H$+!"!V(BZwei Was Eine Initially$B!J(BZwei 
$B$O$b$H$b$H(B Eine $B$G$7$?!K!W$N(B ZWEI $B$H$+!J(Bont 
size=-1>$BLuCm!'%I%$%D8l$G$O(B Eine $B$O(B1$B$G!"(BZwei 
$B$,(address@hidden&$N$O$b$A$m$s$4>5CN$N$3$H$H$O;W$$$^$9$,!D!D!K(B</font>$B!"$=$7$F$$$^$O$=$l$,(B
 GNU $B$^$G$-$?$o$1!#(B
+ だから結果としては、LISP システム
の下で何かが走ってて、そういうエラーを拾ってくれなきゃなんない。そしてユーザがシステãƒ
 
を動かし続けて、起きたことをデバッグできるようにしないと。最後に、もし下の
 OS をつくるんなら、それはいい OS にしようとも決心した 
―― つまりこれは、OS とLISP か、あるいは OS だ
けか、という選択だった。だから、まずは OS をやるべきだ
ろう、そしてそれは UNIX 互換にすべきだ
。最後にこのシステム
の名前として英語でいちばんおもしろい名前を使えるんだ
と気がついたら、ぼくの選ぶべき道ははっきりした。そのことばはもちろん
 GNU で、これは「 GNU 's Not 
Unix」の略。この再帰的な略称は、MIT 
周辺のハッカー社会ではすごく古い伝統になってる。ぼくの知る限り、これは
 TINT というエディタではじまったはず。これは「Tint Is Not 
Teco」の略で、それはやがて「SINE Is Not  EMACS 」の略で SINE 
とか、「Fine Is Not  EMACS 」で FINE とか、「Eine Is Not  EMACS 
」で EINE とか、「Zwei Was Eine Initially(Zwei はもともと Eine 
でした)」の ZWEI とか(ont size=-1>訳注:ドイツ語では Eine 
は1で、Zwei が2だ
というのはもちろんご承知のこととは思いますが……)</font>、そしていまはそれが
 GNU まできたわけ。
 <p>
address@hidden(B2$BG/H>$[$IA0$K<B:]$K(B GNU 
$B$N;E;v$r$O$8$a$F$+$i!"$b$&:n6H$NH>J,$/$i$$$O=*$(address@hidden'%/%H$K$H$j$+$+$m$&$H$7$F$?$H$-!"$^$:$O$9$G$K%U%j!<$G=P2s$C$F$k$b$N$O2?$,$"$k$+$rC5$9$H$3$+$i$O$8$a$?!#$=$3$G8+$D$1$?$N$,!"$*$b$7$m$$%]!<%?%V%k$J%3%s%Q%$%i%7%9%F%`$G!"$3$l$O!V(BThe
 Free University Compiler 
Kit$B!W$H$$$&L>A0!#$3$s$JL>A0$J$i!"$b$i$($k$N$+$J!"$H;address@hidden/$7$??M$K%a!<%k$rAw$C$F!"(B
 GNU $B%W%m%8%'%/%H$K$/$l$J$$$+!"$H$-$$$F$_$?$i!"$=$N?M$O!V$$$d!"(Bfree 
$B$OBg3X$K$+$+$k$3$H$P$G!"$=$3$G3+H/$7$F$k%=%U%H$O%U%j!<$8$c$J$$$s$G$9!W$H9T$C$F!"address@hidden&$K$O!"$+$l$b(B
 UNIX 
$B8_49%7%9%F%`$,$[$7$/$F!"$=$lMQ$N%+!<%M%k$_$?$$$J$b$N$b=q$$$F$_$?$$$+$i!"$=$7$?$i$\$/$,$=$lMQ$K%f!<%F%#%j%F%#$r=q$$$F!"$=$7$F$?$i$=$NN>address@hidden"$=$7$?$i$_$s$J$,$=$N%3%s%Q%$%i$rGc$$$?$,$k$h$&address@hidden&!"address@hidden/$O!"$U$6$1$s$8$c$J$$$h$H;W$C$F!"address@hidden"$\$/$N:G=i$N%W%m%8%'%/%H$O%3%s%Q%$%i$N3+H/address@hidden"address@hidden(B
+ だいたい2年半ほど前に実際に GNU 
の仕事をはじめてから、もう作業の半分くらいは終えたと言っていいかな。このプロジェクトにとりかかろうとしてたとき、まずはすでにフリーで出回ってるものは何があるかを探すとこからはじめた。そこで見つけたのが、おもしろいポータブルなコンパイラシステãƒ
 ã§ã€ã“れは「The Free University Compiler 
Kit」という名前。こんな名前なら、もらえるのかな、と思った。ã
 ã‹ã‚‰é–‹ç™ºã—た人にメールを送って、 GNU 
プロジェクトにくれないか、ときいてみたら、その人は「いや、free
 
は大学にかかることばで、そこで開発してるソフトはフリーじゃないんです」と行って、でもそれから言うには、かれも
 UNIX 互換システム
がほしくて、それ用のカーネルみたいなものも書いてみたいから、そしたらぼくがそれ用にユーティリティを書いて、そしてたらその両方ともかれの独å
 ã‚³ãƒ³ãƒ‘イラといっしょにé…
å¸ƒã§ãã¦ã€ãã—たらみんながそのコンパイラを買いたがるようになるã
 ã‚ã†ã€ã 
って。それでぼくは、ふざけんじゃないよと思って、だ
からそいつに、ぼくの最初のプロジェクトはコンパイラの開発ã
 ã€ã¨è¨€ã£ã¦ã‚„った。
 <p>
-$B!!$=$N:"$O!"%3%s%Q%$%i$N:GE,2=$K$D$$$F<B$OBg$7$FCN$i$J$+$C$?!#0lEY$b$$$8$C$?$3$H$,$J$+$C$?$+$i!#$G$b!"$=$N:"%U%j!<address@hidden@$o$l$?%3%s%Q%$%i$r<j$KF~$l$i$l$?!#$=$l$,(B
 
PASTEL$B$C$F$$$&%3%s%Q%$%i$G!":n<address@hidden;$k$H!V?'$NGv$$(BPASCAL$B!W$H$$$&address@hidden(B
+ そのé 
ƒã¯ã€ã‚³ãƒ³ãƒ‘イラの最適化について実は大して知らなかった。一度もいじったことがなかったから。でも、そのé
 ƒãƒ•ãƒªãƒ¼ã ã¨è¨€ã‚ã‚ŒãŸã‚³ãƒ³ãƒ‘イラを手にå…
¥ã‚Œã‚‰ã‚ŒãŸã€‚それが PASTELっていうコンパイラで、作者
たちに言わせると「色の薄いPASCAL」という意味なんだ
って。
 <p>
-$B!!(BPastel$B$O$9$4$/J#;(address@hidden"%Q%i%a!<%?2=$5$l$?7?$dL@<(%?%$%W%Q%i%a!<%?!J(Bexplicit
 type 
parameter$B!K$H$+!"$$$m$$$mJ#;($J$b$N$r4^$s$G$?!#%3%s%Q%$%i<address@hidden"$3$&$$$&5!G=$NMxMQ$r:GE,2=$9$k$N$K!"$$$m$$$mJ#;($J5!G=$r;address@hidden(address@hidden(B
 string 
$B7?$O%Q%i%a!<%?2=$5$l$F$$$?!#FCDj$ND9$5$NJ8;zNs$,$[$7$1$l$P!V(Bstring(n)$B!W$H=q$1$k!#C1$K!V(Bstring$B!W$H=q$1$P!"%Q%i%a!<%?$OJ8L.$+$i7h$^$C$F$/$k!#$G!"J8;zNs$C$F$9$4$/Bg;v$G!"$=$l$r;H$&$$$m$s$J9=B$BN$r9bB.$KAv$i$;$k$?$a$K$bI,MW$G!"$H$$$&$3$H$O$D$^$j!"3F<o$N$3$H$r8!=P$9$k$h$&$J$$$m$s$J5!G=$,I,address@hidden"$?$H$($P!"@address@hidden,0z?t$G!"$=$l$,4X?t$NCf$G$O$:$C$HDj?t$G$"$k$3$H$r8!=P$9$k$H$+!"CM$rJ]B8$7$F$=$l$,@8$_=P$9%3!<%I$r:GE,2=$9$k$H$+!"$$$m$$$m$d$d$3$7$$$3$H!#$G$b$3$N%3%s%Q%$%i$NCf$G$O!">/$J$/$H$b%l%8%9%?<+F03d$jEv$F$r$I$&$9$k$+$H$+!"$=$&$$$&$3$H$OFI$_$H$l$?$7!"$$$m$$$m$A$,$C$?%^%7%s$N07$$J}$N9M$(J}$b$o$+$C$?!#(B
+ Pastelはすごく複雑な言語で、パラメータ化された型や明示タイプパラメータ(explicit
 type 
parameter)とか、いろいろ複雑なものを含んでた。コンパイラ自身ももちろんこの言語で書かれてて、こういう機能の利用を最適化するのに、いろいろ複雑な機能を持っていたんã
 ã€‚たとえばこの言語では string 
型はパラメータ化されていた。特定の長さの文字列がほしければ「string(n)」と書ける。単に「string」と書けば、パラメータは文脈から決まってくる。で、文字列ってすごく大事で、それを使ういろんな構é€
 ä½“を高速に走らせるためにも必
要で、ということはつまり、各種のことを検出するようないろんな機能がå¿
…要ってことだ
よね、たとえば、宣言されたストリング長が引数で、それが関数の中ではずっと定数であることを検出するとか、値を保存してそれが生み出すコードを最適化するとか、いろいろややこしいこと。でもこのコンパイラの中では、少なくともレジスタ自動割り当てをどうするかとか、そういうことは読みとれたし、いろいろちがったマシンの扱い方の考え方もわかった。
 <p>
-$B!!$5$F$3$N%3%s%Q%$%i$O$9$G$K(B PASTEL 
$B$r%3%s%Q%$%k$G$-$k$N$G!"I,MW$J$N$O(B C 
$B$N%U%m%s%H%(%s%I$r$D$1$k$3$H$G!"$3$l$r$d$C$F!"$=$l$+$i(B 68000 
$BMQ$N%P%C%/%(address@hidden(B68000 
$B$,$\$/$N:G=i$N%?!<%2%C%H%^%7%s$K$J$k$b$N$H;W$C$F$?$+$i!#$G$b$3$3$G?<9o$JLdBj$K$V$A$"$?$C$?!#(BPASTEL
 
address@hidden;H$&address@hidden@$7$J$/$F$$$$$h$&$K$J$C$F$?$N$G!"address@hidden@address@hidden;HMQ$,$I$s$J=g=x$G$b$h$/$F!"$D$^$j$O!"(BPascal
 
$B$N!V(address@hidden@$O;H$$$b$N$K$J$i$J$/$F!"$*$+$2$G%W%m%0%i%`$r$^$k$4$HFI$_9~$s$G!"$=$l$r%3%"$K$$$l$H$$$F!"0l5s$K=hM}$9$k$7$+$J$+$C$?!#7k2L$H$7$F%3%s%Q%$%iFbIt$G;H$o$l$kCf4V5-21!"$D$^$jI,MW%a%b%jNL$O!"%U%!%$%k$NBg$-$5$KHfNc$7$FBg$-$/$J$k$o$1!#$=$7$F$3$3$K$O%9%?%C%/NN0h$b4^$^$l$F$F!"$b$N$9$4$$%9%?%C%/NN0h$,I,MW$G!"address@hidden'$\$/$N<j$b$H$N(B
 68000 $B%7%9%F%`$G$O$3$N%3%s%Q%$%i$OAv$i$J$$!#$=$l$O$=$N%7%9%F%`$,:G0-$N(B 
UNIX $B$G!"%9%?%C%/$K(B 16K 
$B%o!<%I$H$+$N>e8B$,$"$C$F!"$3$l$C$F%^%7%s<+BN$K$O%a%b%j$,(B 6 
$B%a%,%P%$%H$b$"address@hidden"%9%?%C%/$O(B 16Kw 
$B$+$=$3$i$7$+$H$l$J$$$C$F$N!#$=$7$F$b$A$m$s!"0l;~E*$JJQ?tCM$,$+$A$"$C$F$J$$$+$H$+!"$"$k$$$OF1;address@hidden,$I$l$+$H$+$r8+$k$N$K!"%3%s%U%j%/address@hidden@address@hidden"$3$l$O%S%C%HC10L$G(B4$B<!859TNs$H$+$,I,MW$G!"Bg$-$J4X?t$K$J$k$H$=$l$,address@hidden@$+$i%3%s%Q%$%i$O(B
 10 
$B%Q%9$/$i$$$+$=$3$i$"address@hidden"$=$N:G=i$N%Q%9$O$J$s$H$+%G%P%C%0$7$F!"$=$l$r$=$N%^%7%sMQ$K%/%m%9%3%s%Q%$%k$7$F!"$=$7$F$U$?$r3+$1$F$_$?$i!"FsHVL\$N$d$D$O$=$b$=$bAv$i$J$$!#(B
+ さてこのコンパイラはすでに PASTEL 
をコンパイルできるので、必要なのは C 
のフロントエンドをつけることで、これをやって、それから
 68000 用のバックエンドをつけることだった。68000 
がぼくの最初のターゲットマシンになるものと思ってたから。でもここで深刻な問題にぶちあたった。PASTEL
 
言語は何かを使う前に宣言しなくていいようになってたので、ã
 ã‹ã‚‰å®£è¨€ã¨ä½¿ç”¨ãŒã©ã‚“な順序でもよくて、つまりは、Pascal 
の「forward」宣言は使いものにならなくて、おかげでプログラãƒ
 
をまるごと読み込んで、それをコアにいれといて、一挙に処理するしかなかった。結果としてコンパイラå†
…部で使われる中間記憶、つまり必
要メモリ量は、ファイルの大きさに比例して大きくなるわけ。そしてここにはスタックé
 ˜åŸŸã‚‚含まれてて、ものすごいスタック領域が必要で、だ
から結果としてわかったこと:ぼくの手もとの 68000 
システム
ではこのコンパイラは走らない。それはそのシステム
が最悪の UNIX で、スタックに 16K 
ワードとかの上限があって、これってマシン自体にはメモリが
 6 メガバイトもあるのにだよ、スタックは 16Kw 
かそこらしかとれないっての。そしてもちろん、一時的な変数値がかちあってないかとか、あるいは同時に生きてるのがどれかとかを見るのに、コンフリクト行列を生成するんã
 ã‘ど、これはビット単位で4次元行列とかが必
要で、大きな関数になるとそれが何百バイトとか何千バイトにもなる。ã
 ã‹ã‚‰ã‚³ãƒ³ãƒ‘イラは 10 パスくらいかそこらあったんだ
けど、その最初のパスはなんとかデバッグして、それをそのマシン用にクロスコンパイルして、そしてふたを開けてみたら、二番目のやつはそもそも走らない。
 <p>
-<h3><a name="32">3.2$B!!(B GNU EMACS </a></h3>
+<h3><a name="32">3.2  GNU EMACS </a></h3>
 <p>
-$B!!$3$&$$$&LdBj$r$I$&$7$h$&$+9M$($F!"$3$l$r$J$*$=$&$H$9$k$N$+!"$=$l$H$b$^$C$?$/?7$7$$%3%s%Q%$%i$r=q$3$&$+9M$($F$$$k$&$A$K!"$J$s$d$+$s$d$G(B
 GNU EMACS $B$N:n6H$K$H$j$+$+$C$?!#(B GNU EMACS $B$O(B GNU 
$B%7%9%F%`$NG[I[J,$N<gMWItJ,!#3HD%$G$-$k%F%-%9%H%(%G%#%?$G!"$\$/$,(B10$BG/A0$K3+H/$7$?%*%j%8%J%k$N(B
 EMACS $B$H$+$J$j;w$F$k$1$I!"address@hidden(B LISP 
$B$r;H$&address@hidden(%G%#%?<+?H$O(B C $B$G<BAu$5$l$F$F!"(BLISP 
$B%$%s%?!<%W%j%?$bF1$8$/(B C $B$G<BAu$5$l$F$k$+$i!"(BLISP 
$B%$%s%?!<address@hidden,$"$C$F!"%(%G%#%?$N30It$K(B LISP 
$B%7%9%F%`$r;}$?$J$/$F$$$$!#%(%G%#%?<+?H$,<+A0$N(B LISP 
$B%7%9%F%`$r;}$C$F$F!"$9$Y$F$NJT=8%3%^%s%I$O(B LISP 
$B$G=q$$$F$"$k$+$i!"$=$l$r$*<jK\$H$7$F8+$F<+A0$NJT=8%3%^%s%I$r=q$$$?$j!"2?$+$i$O$8$a$k$+$H$+!"$=$&$$$&$N$rJQ$($F!"<+J,$,K\Ev$K$[$7$$JT=8%3%^%s%I$KJQ$(address@hidden(B
+ こういう問題をどうしようか考えて、これをなおそうとするのか、それともまったく新しいコンパイラを書こうか考えているうちに、なんやかんやで
 GNU EMACS の作業にとりかかった。 GNU EMACS は GNU システムのé…
å¸ƒåˆ†ã®ä¸»è¦éƒ¨åˆ†ã€‚拡張できるテキストエディタで、ぼくが10年前に開発したオリジナルの
 EMACS 
とかなり似てるけど、こいつは拡張用言語として本物の 
LISP を使うんだ。エディタ自身は C で実装されてて、LISP 
インタープリタも同じく C で実装されてるから、LISP 
インタープリタは完å…
¨ã«å¯æ¬æ€§ãŒã‚って、エディタの外部に LISP システム
を持たなくていい。エディタ自身が自前の LISP システム
を持ってて、すべての編集コマンドは LISP 
で書いてあるから、それをお手本として見て自前の編集コマンドを書いたり、何からはじめるかとか、そういうのを変えて、自分が本当にほしい編集コマンドに変えられるんã
 ã‚ˆã€‚
 <p>
-$B!!$=$NG/$N2F!"$$$^$+$i(B2$BG/$[$IA0!"$\$/$NM'address@hidden,%4%9%j%s%0(B 
EMACS 
$B$N3+H/=i4|$K<jEA$C$?$N$G!"%4%9%j%s%0$+$i$+$l$N%P!<%8%g%s$N%4%9%j%s%0(B 
EMACS 
$B$rG[I[$7$F$$$$$h!"$H$$$&5vBz$r%a!<%k$G<u$1<h$C$?$HOC$7$F$/$l$?!#%4%9%j%s%0$O$b$H$b$H(B
 EMACS 
$B$r=q$->e$2$F!"$=$l$r%U%j!<$GG[I[$7$F!"$?$/$5$s$N?M$,3+H/$K6(NO$7$F!"$=$l$O%4%9%j%s%0<+?H$,%^%K%e%"%k$NCf$G=q$$$?$h$&$J!"$\$/$,$b$H$N(B
 EMACS 
$B$r3+;O$7$?$N$HF1$8@:address@hidden,$&$H$$$&$+$l<+?H$N$;$j$U$K4p$E$$$?4|BT$,$"address@hidden:n8"$r$D$1$F!"$_$s$J$K$=$l$r:FG[I[$7$J$$$HLsB+$5$;$F!"$"$2$/$K$=$l$r%=%U%H%O%&%9$KGd$C$F!"$_$s$J$r8e$m$+$i;I$7$FN"@address@hidden"$3$NNr;address@hidden,$N68$$$b$J$$$/$i$$!"address@hidden(B
+ その年の夏、いまから2年ほど前、ぼくの友だ
ちがゴスリング EMACS 
の開発初期に手伝ったので、ゴスリングからかれのバージョンのゴスリング
 EMACS をé…
å¸ƒã—ていいよ、という許諾をメールで受け取ったと話してくれた。ゴスリングはもともと
 EMACS を書き上げて、それをフリーでé…
å¸ƒã—て、たくさんの人が開発に協力して、それはゴスリング自身がマニュアルの中で書いたような、ぼくがもとの
 EMACS 
を開始したのと同じ精神にしたがうというかれ自身のせりふに基づいた期å¾
…があったからなんだ
。そしたらゴスリングはそいつに著作権をつけて、みんなにそれを再é
…
å¸ƒã—ないと約束させて、あげくにそれをソフトハウスに売って、みんなを後ろから刺して裏切ったんã
 
。その後ゴスリングと個人的にやりとりしたけど、この歴史を見て予想されるのと寸分の狂いもないくらい、臆ç—
…でふざけたやつだったよ。
 <p>
-$B!!$^$"$H$K$+$/!"$=$NM'$?$A$,$3$N%W%m%0%i%`$r$/$l$F!"$=$l$G$\$/$H$7$F$O%H%C%W%l%Y%k$NJT=8%3%^%s%I$rJQ$($F!"$\$/$N47$l?F$7$s$G$k%*%j%8%J%k$N(B
 EMACS 
address@hidden;}$?$;$?$+$C$?!#$=$l$H?tCM0z$-?t$NAH$_9g$o$;$H$+$$$m$$$m07$($k$h$&$K$7$F!"$\$/$N$[$7$$$h$&$J5!G=$rA4It07$($k$H4|BT$G$-$k$h$&$K$9$k$H$+!#$G$b$7$P$i$/$d$C$F$k$&$A$K!"$3$N%(address@hidden"(BMOCKLISP
 
$B$C$F$$$&address@hidden"$=$l$,$3$N:address@hidden,$o$+$C$F$-$?!#7W2h$7$F$k$3$H$r$d$k$?$a$K$O!"$3$$$D$r$9$0$K$G$b$9$2$+$($kI,MW$,$"$k$C$F$o$+$C$?!#A0$K$b$$$D$+$O(B
 MOCKLISP $B$rK\J*$N(B LISP 
$B$KCV$-49$($h$&$H;address@hidden"address@hidden&$N$,$o$+$C$F$-$?!#$=$l$G!"(BMOCKLISP
 
$B$,$J$<!V(BMOCK$B!J$K$;!K!W$C$F$D$$$F$k$+$H$$$&$H!"$=$3$K9=B$BN%G!<%?%?%$%W$,$J$$$+$i$J$N!#(BLISP
 $B%j%9%H$b$J$$!#G[Ns$b$<$s$<$s$J$$!#(BLISP 
$B%7%s%\%k$b$J$$!#$3$l$OL>A0$D$-%*%V%8%'%/%H$M!#(BMOCKLISP 
$B$G$O$"$kL>A0$KBP$7$F%*%V%8%'%/%H$O0l$D$7$+$J$/$F!"address@hidden>A0$r%?%$%W$9$k$H!"$$$D$bF1$8%*%V%8%'%/%H$7$+La$C$F$3$J$$$N!#$3$$$D$N$*$+$2$G$$$m$s$J%W%m%0%i%`$r=q$/$N$,$($C$i$/$d$C$+$$$G!"%[%s%H$O$=$s$J$U$&$K;H$&$s$8$c$J$$$h$&$J$d$d$3$7$$%9%H%j%s%0A`:n$G!"$"$l$d$3$l$d$r=hM}$7$J$-$c$J$s$J$+$C$?$o$1!#(B
+ まあとにかく、その友たちがこのプログラム
をくれて、それでぼくとしてはトップレベルの編集コマンドを変えて、ぼくのæ
…£ã‚Œè¦ªã—んでるオリジナルの EMACS 
と互換性を持たせたかった。それと数値引き数の組み合わせとかいろいろ扱えるようにして、ぼくのほしいような機能をå
…¨éƒ¨æ‰±ãˆã‚‹ã¨æœŸå¾…
できるようにするとか。でもしばらくやってるうちに、このエディタの拡張用言語、MOCKLISP
 っていうんだけど、それがこの作業用には力不足だ
ってのがわかってきた。計画してることをやるためには、こいつをすぐにでもすげかえるå¿
…要があるってわかった。前にもいつかは MOCKLISP を本物の 
LISP に置き換えようと思ってたんだけど、でも真っå…
ˆã«ãã‚Œã‚’やんなきゃっていうのがわかってきた。それで、MOCKLISP
 
がなぜ「MOCK(にせ)」ってついてるかというと、そこに構é€
 ä½“データタイプがないからなの。LISP リストもない。é…
åˆ—もぜんぜんない。LISP 
シンボルもない。これは名前つきオブジェクトね。MOCKLISP 
ではある名前に対してオブジェクトは一つしかなくて、だ
から名前をタイプすると、いつも同じオブジェクトしか戻ってこないの。こいつのおかげでいろんなプログラãƒ
 
を書くのがえっらくやっかいで、ホントはそんなふうに使うんじゃないようなややこしいストリング操作で、あれやこれやを処理しなきゃなんなかったわけ。
 <p>
-$B!!$=$l$G(B LISP $B%$%s%?!<%W%j%?$r=q$$$F!"(BMOCKLISP 
$B$r$9$2$+$($F!"$=$N2aDx$G!"%(%G%#%?$NFbIt%G!<%?9=B$$r=q$-D>$5$J$-$c$J$i$J$$$3$H$b$o$+$C$?!#$\$/$O$=$&$$$&$N$,(B
 LISP $B%*%V%8%'%/%H$K$J$C$F$F$[$7$+$C$?$+$i!#(BLISP 
$B$H%(%G%#%?$N%$%s%?!<%U%'!<%9$,%/%j!<%s$G$"$C$F$[$7$/$F!"$=$l$O$D$^$j!"%(%G%#%?$N%P%C%U%!$d%5%V%W%m%;%9$d%&%#%s%I%&$d%P%C%U%!0LCV$_$?$$$J%*%V%8%'%/%H$,!"$_$s$J(B
 LISP 
$B%*%V%8%'%/address@hidden@$C$F$3$H!#$=$&$8$c$J$$$H$=$l$K:nMQ$9$k%(%G%#%?$N%W%j%_%F%#%V$O(B
 LISP $B%G!<%?$N(B LISP 
$B4X?t$H$7$F%3!<%k$G$-$k$h$&$K$J$i$J$$!#$H$$$&$3$H$O!"$3$&$$$&%*%V%8%'%/%H$9$Y$F$N%G!<%?7A<address@hidden"$=$l$K:nMQ$9$k4X?t$b$_$s$J=q$-D>$7$F!"7k2L$H$7$F(B
 6 $B%v7n8e$K$O!"$\$/$O%(%G%#%?$N$[$H$s$I$9$Y$F$r=q$-D>$7$F$?$C$F$o$1!#(B
+ それで LISP インタープリタを書いて、MOCKLISP 
をすげかえて、その過程で、エディタの内部データ構造
を書き直さなきゃならないこともわかった。ぼくはそういうのが
 LISP オブジェクトになっててほしかったから。LISP 
とエディタのインターフェースがクリーンであってほしくて、それはつまり、エディタのバッファやサブプロセスやウィンドウやバッファ位置みたいなオブジェクトが、みんな
 LISP オブジェクトでなきゃだめだ
ってこと。そうじゃないとそれに作用するエディタのプリミティブは
 LISP データの LISP 
関数としてコールできるようにならない。ということは、こういうオブジェクトすべてのデータ形式を設計しなおして、それに作用する関数もみんな書き直して、結果として
 6 
ヶ月後には、ぼくはエディタのほとんどすべてを書き直してたってわけ。
 <p>
-$B!!2C$($F!"(BMOCKLISP $B$G$J$s$+=q$/$N$O$9$4$/Fq$7$$$N$G!"(BMOCKLISP 
$B$G=q$+$l$?$b$N$O$_$s$J$-$?$J$/$F!"address@hidden(B LISP 
$B$NNO$r;H$($k$h$&$K$=$l$r=q$-$J$*$;$P!"$=$l$r$_$s$J$b$C$H6(address@hidden@$+$i$=$l$r$d$C$F!"7k2L$H$7$F$\$/$,$=$l$rG[I[$7$O$8$a$H$-$K$O!"<u$1<h$C$?$b$N$G$=$N$^$^;H$o$l$F$kItJ,$O$[$H$s$I$J$+$C$?!#(B
+ 加えて、MOCKLISP 
でなんか書くのはすごく難しいので、MOCKLISP 
で書かれたものはみんなきたなくて、だから本物の LISP 
の力を使えるようにそれを書きなおせば、それをみんなもっと協力でもっと単純でもっと高速にできたんã
 ã€‚だからそれをやって、結果としてぼくがそれをé…
å¸ƒã—はじめときには、受け取ったものでそのまま使われてる部分はほとんどなかった。
 <p>
-$B!!$3$N;address@hidden"%4%9%j%s%0$,%W%m%0%i%`$rGd$C$?$H;W$C$F$kAj<j$N2q<R$,!"$\$/$NM'address@hidden,$=$l$rG[I[$9$k8"Mx$K%1%A$r$D$1$O$8$a$F!"%a!<%k$O%P%C%/%"%C%W$N%F!<%W$KF~$C$F$F8+$D$+$i$J$+$C$?!#$=$7$F%4%9%j%s%0$O!"$=$s$J5v2D$OM?$($F$J$$$HH]Dj$9$k!#$=$3$G$*$+$7$J$3$H$,5/$-$?!#$+$l$O$3$N2q<R$H8r>address@hidden"$3$N2q<R$,$$$A$P$s5$$K$7$F$k$N$O!"<+J,$?$A$,G[I[$7$F$k$N$H;w$?$h$&$J$b$N$,=P2s$C$A$c:address@hidden&address@hidden"$+$l$N?&>l(B
 $B!=!=(B Megatest $B<R$M(B $B!=!=(B 
$B$b!"$+$l$,$\$/$K$/$l$?$N$HF1$8$b$N$rG[I[$7$F$F!"$=$l$O$+$l$NJQ99$NF~$C$?%4%9%j%s%0(B
 EMACS $B$G!"address@hidden"Cf$H$=$l$rG[I[$9$k$N$r$d$a$k$H$$$&9g0U$r$7$F!"(B 
GNU EMACS 
$B$r;H$&address@hidden($F!"$=$l$G$=$7$?$iO"Cf$O!"$+$l$,<address@hidden@$C$F$3$H$rG'$a$F!"$=$&$9$l$P$*$=$i$/$_$s$JK~B-$C$F$3$H$K$J$k$O$:address@hidden<R$O$\$/$KAjCL$r$b$A$+$1$F$F!"(B
 GNU EMACS 
$B$rG[I[$5$;$m!"$b$A$m$s$=$l$O%U%j!<address@hidden"$G$b$$$m$s$J%5%]!<%H$dJd=u$rGd$j$?$$$+$i!"$=$N:n6H$N<jEA$$$K$\$/address@hidden&address@hidden"O"Cf$N5$$,address@hidden"%M%C%H%o!<%/$K!"%9%H!<%k%^%s$O%W%m%0%i%`$rG[I[$9$k8"Mx$O$J$$$H$$$&%a%C%;!<%8$r%]%9%H$7$?$C$F$N$O!"address@hidden"address@hidden/$F!"C1$K$$$:$l$$$D$NF|$+2?$+<j$r$&$?$J$$$+$I$&address@hidden@address@hidden"$b$&address@hidden;H$o$J$/$J$C$F!"address@hidden(B
+ この時点で、ゴスリングがプログラム
を売ったと思ってる相手の会社が、ぼくの友だちがそれをé…
å¸ƒã™ã‚‹æ¨©åˆ©ã«ã‚±ãƒã‚’つけはじめて、メールはバックアップのテープにå
…
¥ã£ã¦ã¦è¦‹ã¤ã‹ã‚‰ãªã‹ã£ãŸã€‚そしてゴスリングは、そんな許可は与えてないと否定する。そこでおかしなことが起きた。かれはこの会社と交渉してたんã
 ã‘ど、この会社がいちばん気にしてるのは、自分たちがé…
å¸ƒã—てるのと似たようなものが出回っちゃ困るってことだ
ったようなの。かれもはまだ配布してたし、かれの職場 
―― Megatest 社ね ―― 
も、かれがぼくにくれたのと同じものをé…
å¸ƒã—てて、それはかれの変更の入ったゴスリング EMACS 
で、だからかれは連中とそれをé…
å¸ƒã™ã‚‹ã®ã‚’やめるという合意をして、 GNU EMACS 
を使うのに切り替えて、それでそしたら連中は、かれが実はやっぱり許諾を得てたんã
 
ってことを認めて、そうすればおそらくみんな満足ってことになるはずã
 ã£ãŸã€‚そしてこの会社はぼくに相談をもちかけてて、 GNU 
EMACS を配布させろ、もちろんそれはフリーだ
けど、でもいろんなサポートや補助を売りたいから、その作業の手伝いにぼくを雇いたいって言う。ã
 
からその後、連中の気が変わってその契約にサインするのを拒否して、ネットワークに、ストールマンはプログラãƒ
 ã‚’é…
å¸ƒã™ã‚‹æ¨©åˆ©ã¯ãªã„というメッセージをポストしたってのは、ちょっと変なんã
 
よね。別に連中は何かするとか言ったわけじゃなくて、単にいずれいつの日か何か手をうたないかどうかははっきりしないとか言ったã
 ã‘。そしてそれだけでみんなびびっちゃって、もうだ
れも使わなくなって、これは悲しいことだ。
 <p>
-$B!!!J$H$-$I$-!"address@hidden;E;v$C$F$N$O!"$I$C$+$G>&Gd>e$N5!L)address@hidden;3$r$_$D$1$F!"$=$l$r393Q$GG[$C$FJb$$$F!"$b$&5!L)$G$b$J$s$G$b$J$/$7$F$7$^$&$3$H$8$c$J$$$+$H;W$C$F!"$_$s$J$N<j$K?7$7$$%U%j!<%=%U%H$r$o$?$7$?$$$J$i$=$N$[$&$,<+J,$G?7$7$$%=%U%H$J$s$+$r=q$/$h$j$b!"$\$/$H$7$F$O$:$C$H8zN($N$$$$$d$j$+$?$8$c$J$$$+$H;W$&address@hidden"$_$s$J$=$l$r<u$1<h$k$N$5$(I]$,address@hidden(B
+ (ときどき、一生かけてやるのに一番いい仕事ってのは、どっかで商売上の機密になってる独å
 ã‚½ãƒ•ãƒˆã®ã§ã‹ã„山をみつけて、それを街角でé…
ã£ã¦æ­©ã„て、もう機密でもなんでもなくしてしまうことじゃないかと思って、みんなの手に新しいフリーソフトをわたしたいならそのほうが自分で新しいソフトなんかを書くよりも、ぼくとしてはずっと効率のいいやりかたじゃないかと思うんã
 ã‘れど、みんなそれを受け取るのさえ怖がるほど臆病
なんだもんな)
 <p>
-$B!!$H$$$&$o$1$G!";D$jA4It$r<+J,$G=q$-D>$9$7$+$J$/$F!"address@hidden"$=$l$K0l=54VH>$/$i$$$+$+$C$?!#$H$$$&$o$1$G!"$d$D$i$OBg>!Mx$r$*$5$a$F$5$>address@hidden&$h!#$=$7$F$\$/$O!"$=$l0J9_$O$I$s$J7A$G$"$C$F$b$d$D$i$H$O6(NO$J$s$+$9$k$b$s$+!#(B
+ というわけで、残りå…
¨éƒ¨ã‚’自分で書き直すしかなくて、だ
からそれをやって、それに一週間半くらいかかった。というわけで、やつらは大勝利をおさめてさぞ満足ã
 
ろうよ。そしてぼくは、それ以降はどんな形であってもやつらとは協力なんかするもんか。
 <p>
-<h3><a name="33">3.3$B!!(BGDB $B%G%P%C%,(B</a></h3>
+<h3><a name="33">3.3 GDB デバッガ</a></h3>
 <p>
-$B!!$G!"(B GNU EMACS 
$B$,$=$3$=$30BDj$7$F$+$i!"$H$$$&address@hidden@$G(B1$BG/H>address@hidden"$=$l$+$i%7%9%F%`$N$[$+$NItJ,$KLa$C$?!#(BGDB
 
$B$C$F$$$&%G%P%C%,$r3+H/$7$F!"$3$l$O(BC$B%3!<%IMQ$N%7%s%\%j%C%/!&%G%P%C%,$G!":G6aG[I[$KF~$l$k$h$&$K$7$?!#$3$N%G%P%C%,$O!"$+$J$j$NItJ,$,(B
 DBX $B$N@:address@hidden"$3$l$O%P!<%/%l!<(B UNIX 
$B$K$D$$$F$/$k%G%P%C%,$M!#%3%^%s%I$O!"2?$r$7$?$$$+$r<($9$3$H$P$H!"$=$l$KB3$/address@hidden,$G$O!"%3%^%s%I$O$_$s$JC;=L7A$,;H$($F!"$h$/;H$&%3%^%s%I$O(B1
 $BJ8;z$NC;address@hidden"FH<+$NC;=L7A$b9%$-$J$h$&$K;H$($k!#=<<B$7$?(B HELP 
$B5!G=$b$"$C$F!"(BHELP 
$B$N$"$H$K$J$s$G$b$$$$$1$I%3%^%s%I$d%5%V%3%^%s%I$^$G%?%$%W$9$k$H!"$=$N%3%^%s%I$N;H$$J}$,>\$7$/@address@hidden(B
 C $B$NI=8=$r%?%$%W$9$l$P!"$I$l$G$b$=$NCM$rJV$7$F$/$l$k!#(B
+ で、 GNU EMACS 
がそこそこ安定してから、というのはなんだかんだ
で1年半ほどかかったんだけど、それからシステム
のほかの部分に戻った。GDB 
っていうデバッガを開発して、これはCコード用のシンボリック・デバッガで、最近é
…å¸ƒã«å…
¥ã‚Œã‚‹ã‚ˆã†ã«ã—た。このデバッガは、かなりの部分が DBX 
の精神にのっとったもので、これはバークレー UNIX 
についてくるデバッガね。コマンドは、何をしたいかを示すことばと、それに続く引き数で構成される。このデバッガでは、コマンドはみんな短縮形が使えて、よく使うコマンドは1
 文字の短縮形になってるんだ
けど、独自の短縮形も好きなように使える。充実した HELP 
機能もあって、HELP 
のあとになんでもいいけどコマンドやサブコマンドまでタイプすると、そのコマンドの使い方が詳しく説明される。もちろん
 C 
の表現をタイプすれば、どれでもその値を返してくれる。
 <p>
-$B!!$[$+$K$b!"%7%s%\%j%C%/(B C 
$B%G%P%C%,$G$ODA$7$$$3$H$,$G$-$?$j$9$k!#$?$H$($P!"$I$N%a%b%j%"%I%l%9$K$"$k$I$N(B
 C 
$B%G!<%?7?$b;2>address@hidden"address@hidden($P$"$k%"%I%l%9$N%o!<%I$KIbF0>address@hidden"!V$3$l$3$l$N%"%I%l%9$K$"$k(B
 FLOAT $B7?$+(B DOUBLE 
$B7?$N%*%V%8%'%/%H$r$h$3$;!W$H$$$C$F!"$=$l$K3d$jEv$F$l$P$$$$!#$b$&0l$D$G$-$k$N$,!"$3$l$^$GD4$Y$F$_$?CM$rA4ItD4$Y$i$l$s$N!#D4$Y$?CM$OA4It!VCM%R%9%H%j!<!W$K$N$C$+$k!#$3$N%R%9%H%j!<$N$I$NMWAG$G$b!"$=$NHV9f$G;2>H$G$-$k$7!"address@hidden(B$$B!K$r;H$($P:G8e$NMWAG$r4JC1$K8F$S=P$;$k!#$3$&$9$k$H!"%j%9%H9=B$$r%H%l!<%9$9$k$N$,$9$4$/3Z$K$J$k!#JL$N9=B$BN$r;X$9%]%$%s%?$r4^$`$h$&$J(B
 C $B9=B$BN$,$"$C$?$H$9$k$G$7$g!"$=$7$?$i$?$H$($P(B<tt> PRINT *$.next 
</tt>$B$_$?$$$J$3$H$,$G$-$F!"$3$l$O$D$^$j!V$5$C$-$_$;$F$/$l$?$b$N$N<!$N%U%#!<%k%I$r$H$C$F$-$F!"$=$l$,;X$7$F$k9=B$BN$rI=<(address@hidden;$F!"$=$N$?$S$4$H$K%j%9%H$N<!$N9=B$BN$,8+$i$l$k!#$G$b!"$\$/$,$3$l$^$G8+$?(B
 C $B%G%P%C%,address@hidden"address@hidden"C1$K(B CR 
$B$r2!$7$?$iD>A0$N%3%^%s%I$r7+$jJV$9!"$H$$$&5!G=$HAH$_9g$o$;$k$H!"$3$l$O$9$4$/JXMx!#%j%9%H$NCf$G<+J,$,8+$?$$MWAG$K$D$$$F!"$I$s$I$s(B
 CR $B$r2!$7$F$1$P$$$$!#(B
+ ほかにも、シンボリック C 
デバッガでは珍しいことができたりする。たとえば、どのメモリアドレスにあるどの
 C データ型も参照できるんだよ。値を調べたり、値をå…
¥ã‚ŒãŸã‚Šã§ãã‚‹ã€‚だ
からたとえばあるアドレスのワードに浮動小数点の値をå…
¥ã‚ŒãŸã‘れば、「これこれのアドレスにある FLOAT 型か DOUBLE 
型のオブジェクトをよこせ」といって、それに割り当てればいい。もう一つできるのが、これまで調べてみた値をå
…¨éƒ¨èª¿ã¹ã‚‰ã‚Œã‚“の。調べた値はå…
¨éƒ¨ã€Œå€¤ãƒ’ストリー」にのっかる。このヒストリーのどの要ç´
 ã§ã‚‚、その番号で参照できるし、ただ
のドル記号($)を使えば最後の要素
を簡単に呼び出せる。こうすると、リスト構造
をトレースするのがすごく楽になる。別の構造
体を指すポインタを含むような C 構造
体があったとするでしょ、そしたらたとえば<tt> PRINT *$.next 
</tt>みたいなことができて、これはつまり「さっきみせてくれたものの次のフィールドをとってきて、それが指してる構é€
 ä½“を表示しろ」ってことだ
。そしてこのコマンドは繰り返せて、そのたびごとにリストの次の構é€
 ä½“が見られる。でも、ぼくがこれまで見た C デバッガだ
と、毎回もっと長いコマンドをタイプしなきゃなんないんã
 ã‚ˆã­ã€‚そしてこの機能と、単に CR 
を押したら直前のコマンドを繰り返す、という機能と組み合わせると、これはすごく便利。リストの中で自分が見たい要ç´
 ã«ã¤ã„て、どんどん CR を押してけばいい。
 <p>
-$B!!$"$H%G%P%C%,address@hidden"$k!#$$$/$i$G$b!#%I%k5-9f$N$"$H$KL>A0$r$D$1$l$P!"$=$l$GJQ?t!#$3$&$$$&JQ?tCM$r$I$s$J(B
 C 
$B%G!<%?7?$K$G$b%"%5%$%s$7$F!"$"$H$G8!F$$G$-$k!#$3$l$,$J$s$NLr$K$?$D$+$H$$$&$H!"$?$H$($P!'$b$7D4$Y$?$$CM$,$J$s$+$"$C$?$H$7$F!"$=$l$r$?$/$5$s;2>H$9$k$N$,$o$+$F$?$i!"%R%9%H%j!<$NCf$G$=$NCM$r3P$($FCV$/$h$j!"L>A0$r$D$1$A$c$C$?$[$&$,$$$$$+$b$7$l$J$$!#$"$k$$$O!">r7o%V%l!<%/$r%;%C%H$9$k$H$-$K$b;H$($k$+$b!#>r7o$D$-%V%l!<%/$O!"%7%s%\%j%C%/%G%P%C%,$K$O$h$/$"$k5!G=$G!"!V%W%m%0%i%`$N$3$3$^$G$-$?$i;_$^$l!"address@hidden>r7o<0$,??$N>address@hidden@$&$o$1!#%G%P%C%,$NJQ?t$O!"%W%m%0%i%`Fb$NJQ?t$H!"%G%P%C%,JQ?tFb$KJ]B8$7$?JQ?tCM$H$r$/$i$Y$5$;$F$/$l$k!#$3$l$O$[$+$K$b!"?t$($k$N$K;H$(address@hidden(BC$B$N<0$G$7$g!"address@hidden(B<tt>
 $hoge </tt>$B$r(B 5 $BA}$d$9$K$O(B<tt> $hoge+=5 
</tt>$B$G$b$$$$$7!"$"$k$$$OC1$K(B<tt> $hoge++ 
</tt>$B$G$d$C$F$b$$$$!#$3$l$r>r7oIU$-%V%l!<%/$G$b$G$-$k$+$i!"$3$N%V%l!<%/%]%$%s%H$K(B
 10 $B2sL\$K$-$?$i%V%l!<%/$H$+$9$k$N$K$O$*<j7Z$G$7$g!"(B<tt> $hoge--==0 
</tt>address@hidden"$D$$$F$-$F$k!)!!(Bhoge 
$B$r8:$i$7$F$C$F!"$=$l$,%<%m$K$J$C$F$?$i%V%l!<%/$7$m$C$F$3$H!#$=$7$F$=$l$+$i(B
 <tt>$hoge</tt> 
$B$r!"%9%-%C%W$7$?$$2s?t$K%;%C%H$7$F!"$=$l$G9T$1$k!#$3$l$rG[Ns$NCf$NMWAG$r8+$k$N$K$b;H$($k!#$?$H$($P%]%$%s%?$NG[Ns$,$"$C$F!"$=$7$?$i$3$s$J$3$H$9$k!'(B<p>
+ あとデバッガの中で外部設定できる変数もある。いくらでも。ドル記号のあとに名前をつければ、それで変数。こういう変数値をどんな
 C 
データ型にでもアサインして、あとで検討できる。これがなんの役にたつかというと、たとえば:もし調べたい値がなんかあったとして、それをたくさん参ç
…
§ã™ã‚‹ã®ãŒã‚ã‹ã¦ãŸã‚‰ã€ãƒ’ストリーの中でその値を覚えて置くより、名前をつけちゃったほうがいいかもしれない。あるいは、条件ブレークをセットするときにも使えるかも。条件つきブレークは、シンボリックデバッガにはよくある機能で、「プログラãƒ
 ã®ã“こまできたら止まれ、ただしこの条件式が真の場合だ
けね」と言うわけ。デバッガの変数は、プログラム内
の変数と、デバッガ変数内
に保存した変数値とをくらべさせてくれる。これはほかにも、数えるのに使える。ã
 ã£ã¦å€¤ã®å‰²ä»˜ã¯è¦ã™ã‚‹ã«Cの式でしょ、だから<tt> $hoge 
</tt>を 5 増やすには<tt> $hoge+=5 
</tt>でもいいし、あるいは単に<tt> $hoge++ 
</tt>でやってもいい。これを条件付きブレークでもできるから、このブレークポイントに
 10 
回目にきたらブレークとかするのにはお手軽でしょ、<tt> 
$hoge--==0 </tt>をするんだ
よね。みんな、ついてきてる? hoge 
を減らしてって、それがゼロになってたらブレークしろってこと。そしてそれから
 <tt>$hoge</tt> 
を、スキップしたい回数にセットして、それで行ける。これをé
…åˆ—の中の要素を見るのにも使える。たとえばポインタのé…
åˆ—があって、そしたらこんなことする:<p>
 <pre>
        PRINT X[$hoge++]
 </pre>
-<p>$B$G$b$=$NA0$K$^$:$3$l!'(B<p>
+<p>でもその前にまずこれ:<p>
 <pre>
        SET $hoge=0
 </pre>
 <p>
-$B!!%*%C%1!<!"$G!"$3$&$7$?$i!J$H!V(BPrint$B!W<0$r$5$9!K!"(BX$B$N%<%mHVL\$NMWAG$,=P$F$/$k!#$G!"$b$&0l2s$d$C$?$i$=$l$O0lHVL\$NMWAG$G!"$=$l$G$3$l$,$b$79=B$BN$X$N%]%$%s%?$J$i!"$?$V$s$3$3!J(BPRINT
 $B<0$N(B X 
$B$NA0!K$K%"%9%F%j%9%/!J(B*$B!K$rF~$l$F!"$=$7$?$iKh2s$3$l$O$3$NG[Ns$NMWAG$,$5$7$F$k<address@hidden/$k!#$=$7$F$b$A$m$s!"address@hidden;address@hidden,$J$i!"%f!<%6Dj5A%3%^%s%I$r$D$/$l$P$$$$!#!V(BDefine
 
$B$`$K$c$`$K$c!W$H$d$C$F!"$=$l$+$i%3%^%s%I$r2?9T$+F~$l$F!"!V(Bend$B!W$H$d$k!#$3$l$G$b$&!V$`$K$c$`$K$c!W%3%^%s%I$,Dj5A$5$l$F!"$=$l$,F~$l$?9T$r<B9T$9$k!#$G!"$3$&$$$&Dj5A$r%3%^%s%I%U%!%$%k$KF~$l$F$*$/$H$9$4$/JXMx$J$N!#%G%#%l%/%H%j$4$H$K%3%^%s%I%U%!%$%k$r;}$C$F!"$=$3$r:n6H%G%#%l%/%H%j$K$7$F%G%P%C%,$r5/F0$9$k$H!"$=$l$,>!<j$K%m!<%I$5$l$k$h$&address@hidden"%f!<%6Dj5A%3%^%s%I$r$$$m$$$mDj5A$7$F$*$$$F!"JXMx$J7A$G$=$N%W%m%0%i%`$N%G!<%?9=B$$K%"%/%;%9$G$-$k$h$&$K$7$H$1$k!#$=$&$$$&%f!<%6Dj5A%3%^%s%IMQ$K%I%-%e%a%s%F!<address@hidden/address@hidden&$9$k$H$b$H$+$i$N%3%^%s%I$H$^$C$?$/F1$8$h$&$K!"!V(address@hidden(B
+ オッケー、で、こうしたら(と「Print」式をさす)、Xのゼロ番目の要ç´
 ãŒå‡ºã¦ãã‚‹ã€‚で、もう一回やったらそれは一番目の要素
で、それでこれがもし構造
体へのポインタなら、たぶんここ(PRINT 式の X 
の前)にアステリスク(*)をå…
¥ã‚Œã¦ã€ãã—たら毎回これはこの配列の要素
がさしてる次の構造体をだ
してくる。そしてもちろん、改行をおすだ
けでこれを繰り返せる。これ一つだ
け繰り返すんじゃ不十分なら、ユーザ定義コマンドをつくればいい。「Define
 むにゃむにゃ」とやって、それからコマンドを何行かå…
¥ã‚Œã¦ã€ã€Œend」とやる。これでもう「むにゃむにゃ」コマンドが定義されて、それがå
…
¥ã‚ŒãŸè¡Œã‚’実行する。で、こういう定義をコマンドファイルにå
…
¥ã‚Œã¦ãŠãã¨ã™ã”く便利なの。ディレクトリごとにコマンドファイルを持って、そこを作業ディレクトリにしてデバッガを起動すると、それが勝手にロードされるようにしておける。ã
 ã‹ã‚‰å„プログラム
ごとに、ユーザ定義コマンドをいろいろ定義しておいて、便利な形でそのプログラãƒ
 ã®ãƒ‡ãƒ¼ã‚¿æ§‹é€ 
にアクセスできるようにしとける。そういうユーザ定義コマンド用にドキュメンテーションã
 ã£ã¦ã¤ãã‚Œã‚‹ã‚“だ
よ。そうするともとからのコマンドとまったく同じように、「help」機能で処理されるんã
 ã€‚
 <p>
-$B!!$3$N%G%P%C%,$G$b$&0l$DDA$7$$$N$,!"%9%?%C%/$+$i%U%l!<%`$r<N$F$i$l$k$C$F$3$H!#%G%P%C%0$7$F$k%W%m%0%i%`$G2?$,5/address@hidden/$F!"$=$l$r9%$-J|BjJQ$($i$l$k$C$F$N$,Bg;address@hidden;W$&address@hidden@$+$iLdBj$r0l$D8+$D$1$F2?$,address@hidden"$=$N%3!<%I$,@5$7$+$C$?$+$N$h$&$K$"$A$3$A$J$*$7$F$+$i!"%3%s%Q%$%k$7$J$*$5$J$/$F$b<address@hidden&$3$H$O!"%W%m%0%i%`$N%G!<%?NN0h$r;W$$DL$j$KD>$;address@hidden/$F!"%3%s%H%m!<%k$N%U%m!<$r9%$-$KJQ$($i$l$J$-$c$J$i$J$$!#$3$N%G%P%C%,$G$O!"$3$s$J$U$&$K$7$F%3%s%H%m!<%k$N%U%m!<$r$9$4$/D>@\E*$KJQ$($i$l$k!'(B<p>
+ このデバッガでもう一つ珍しいのが、スタックからフレーãƒ
 ã‚’捨てられるってこと。デバッグしてるプログラム
で何が起きてるか見られるだ
けじゃなくて、それを好き放題変えられるってのが大事だ
と思うんだ。だ
から問題を一つ見つけて何がダメかわかったら、そのコードが正しかったかのようにあちこちなおしてから、コンパイルしなおさなくても次のバグを見つけにいけるわけã
 ã‚ˆã€‚ということは、プログラムのデータé 
˜åŸŸã‚’思い通りに直せるだ
けじゃなくて、コントロールのフローを好きに変えられなきゃならない。このデバッガでは、こんなふうにしてコントロールのフローをすごく直接的に変えられる:<p>
 <pre>
-       SET $PC=&lt;$B$J$s$+?t;z(B&gt
+       SET $PC=&lt;なんか数字&gt
 </pre>
 <p>
-$B!!$3$&$d$C$F%W%m%0%i%`%+%&%s%?$rJQ$($k$N!#$=$l$H%9%?%C%/%]%$%s%?$b%;%C%H$G$-$k$7!"$"$k$$$O$3$&$$$&$U$&$K$G$b!'(B<p>
+ こうやってプログラム
カウンタを変えるの。それとスタックポインタもセットできるし、あるいはこういうふうにでも:<p>
 <pre>
-       SET $SP+=&lt;$B$J$s$H$+(B&gt
+       SET $SP+=&lt;なんとか&gt
 </pre>
 <p>
-$B!!%9%?%C%/%]%$%s%?$r$A$g$C$HA}$d$7$?$$$J$H;W$&$G$7$g!#$G$b$D$$$G$K!"%W%m%0%i%`$N$I$3$+ESCf$+$i$O$8$a$?$$$H$7$F!"address@hidden&%s%?$r$=$N%=!<%99T$K$"$o$;$k$h$M!#$G$b$=$l$G!"address@hidden,$^$A$,$$$G!"$=$N4X?t8F$S$?$/$J$+$C$?!*!!$H$7$?$i!)!!$?$H$($P$=$N4X?t$,$I$&$7$h$&$b$J$/$$$+$l$F$F!"<B$O$=$3$+$iLa$C$F$-$F!"address@hidden<j$G$d$j$?$$$H$7$?$i!)!!$=$l$K$O(B
 $B!V(BRETURN$B!W(B $BL?Na$r;H$&!#%9%?%C%/%U%l!<%`$rA*$s$G(B 
$B!V(BRETURN$B!W$H$d$k$H!"$=$N%9%?%C%/%U%l!<%`$d!"$=$NCf$K$"$k$d$DA4It$,<N$F$i$l$F!"$=$N4X?t$+$i$9$0$KLa$C$F$-$?$h$&$J46$8$K$J$C$F!"$7$+$b$=$3$+$iJV$C$F$/$k$O$:$NCM$b;XDj$G$-$k!#<B9T$OB3$+$J$$$h!#JV$C$F$-$?$h$&$J$U$j$r$7$F!"$=$3$G$^$?%W%m%0%i%`$r;_$a$k$+$i!"$[$+$N$b$N$b$I$s$I$sJQ$($i$l$k!#(B
+ スタックポインタをちょっと増やしたいなと思うでしょ。でもついでに、プログラãƒ
 ã®ã©ã“か途中からはじめたいとして、だからプログラム
カウンタをそのソース行にあわせるよね。でもそれで、その関数を呼んã
 
のがまちがいで、その関数呼びたくなかった! としたら? たとえばその関数がどうしようもなくいかれてて、実はそこから戻ってきて、その関数のやるべきã
 ã£ãŸã“とを手でやりたいとしたら? それには 「RETURN」 
命令を使う。スタックフレームを選んで 
「RETURN」とやると、そのスタックフレーム
や、その中にあるやつå…
¨éƒ¨ãŒæ¨ã¦ã‚‰ã‚Œã¦ã€ãã®é–¢æ•°ã‹ã‚‰ã™ãã«æˆ»ã£ã¦ããŸã‚ˆã†ãªæ„Ÿã˜ã«ãªã£ã¦ã€ã—かもそこから返ってくるはずの値も指定できる。実行は続かないよ。返ってきたようなふりをして、そこでまたプログラãƒ
 ã‚’止めるから、ほかのものもどんどん変えられる。
 <p>
-$B!!$3$N$/$i$$$$$m$$$m$^$H$^$C$F$k$H!"%W%m%0%i%`$NCf$G2?$,5/$-$F$k$+!"$+$J$j:Y$+$/%3%s%H%m!<%k$,$-$/$o$1$h!#(B
+ このくらいいろいろまとまってると、プログラム
の中で何が起きてるか、かなり細かくコントロールがきくわけよ。
 <p>
-$B!!$3$l$K2C$($F!"$b$&0l$D$A$g$C$H$*$b$7$m$$$3$H!#(BC 
$B$K$O%9%H%j%s%0Dj?t$,$"$C$F!"%G%P%C%,Fb$G7W;;$7$F$k?t<0$K%9%H%j%s%0Dj?t$r;H$C$?$i$I$&$J$k$+!)!!%G%P%C%0$7$F$k%W%m%0%i%`Fb$K%9%H%j%s%0$r$D$/address@hidden/$C$F$/$l$k!#%G%P%C%0Cf$N%W%m%0%i%`Fb$G(B
 MALLOC $B$X$N%3!<%k$r$d$C$F$/$l$F!"(BMALLOC 
$B$rAv$i$;$F!"$=$l$+$i%3%s%H%m!<%k$r<h$jLa$9!#$3$&$d$C$F!"CN$i$J$$$&$A$K%9%H%j%s%0Dj?t$rCV$/>l=j$r8+$D$1$F$/$l$k$N!#(B
+ これに加えて、もう一つちょっとおもしろいこと。C 
にはストリング定数があって、デバッガ内
で計算してる数式にストリング定数を使ったらどうなるか? デバッグしてるプログラãƒ
 å†…にストリングをつくらなきゃなんない。だ
からつくってくれる。デバッグ中のプログラム内で MALLOC 
へのコールをやってくれて、MALLOC 
を走らせて、それからコントロールを取り戻す。こうやって、知らないうちにストリング定数を置くå
 ´æ‰€ã‚’見つけてくれるの。
 <p>
-$B!!$$$:$l$3$N%G%P%C%,$,K\J*$N(B GNU 
$B%7%9%F%`>e$GF0$/$h$&$K$J$k$H$-$K$O!"$=$N2<$GF0$$$F$kA4%W%m%;%9$NFbIt>uBV$rD4$Y$i$l$k$h$&$J5!G=$r$D$1$k$D$b$j!#$?$H$($P%a%b%j%^%C%W$N>uBV$r8+$h$&$H$+$M!"$I$N%Z!<%8$,B8:_$7$F!"$I$l$,FI$a$F!"$I$l$,=q$-9~$a$k$+8+$F!"$"$H2<It%W%m%0%i%`$N=*N;>uBV!J(Bterminal
 status$B!K$r8+$k$H$+!#$b$&$+$J$j%3%^%s%I$O$"address@hidden,$O!"(BUNIX 
$B$N%G%P%C%,$H$O$A$,$C$F!"=*N;>uBV$r%G%P%C%,address@hidden@$+$i$=$N$^$^$N%b!<%I!J(Braw
 
mode$B!K$GF0$/%W%m%0%i%`$b8+$i$l$k$7!"3d$j9~$_6nF0F~NO$r$9$k%W%m%0%i%`$G$bF0$/$7!"$=$l$K%G%P%C%0Cf$N%W%m%0%i%`$,<B:]$K;H$C$F$k$b$N$N=*N;>uBV$K$D$$$F$bD4$Y$F$/$l$k%3%^%s%I$,$"$k!#0lHL$K%G%P%C%,$H$$$&$N$O!"2<It%W%m%;%9$G5/$3$C$F$k$3$H$O$9$Y$F$o$+$k$h$&address@hidden;W$&$J!#(B
+ いずれこのデバッガが本物の GNU システム
上で動くようになるときには、その下で動いてるå…
¨ãƒ—ロセスの内部状æ…
‹ã‚’調べられるような機能をつけるつもり。たとえばメモリマップの状æ
…
‹ã‚’見ようとかね、どのページが存在して、どれが読めて、どれが書き込めるか見て、あと下部プログラãƒ
 ã®çµ‚了状態(terminal 
status)を見るとか。もうかなりコマンドはあるんだ
。このデバッガは、UNIX のデバッガとはちがって、終了状æ…
‹ã‚’デバッガやデバッグ中のプログラムと完å…
¨ã«åˆ‡ã‚Šé›¢ã—てる。だからそのままのモード(raw 
mode)で動くプログラムも見られるし、割り込み駆動å…
¥åŠ›ã‚’するプログラム
でも動くし、それにデバッグ中のプログラム
が実際に使ってるものの終了状æ…
‹ã«ã¤ã„ても調べてくれるコマンドがある。一般にデバッガというのは、下部プロセスで起こってることはすべてわかるようにすべきã
 ã¨æ€ã†ãªã€‚
 <p>
-$B!!(B<h3><a name="34">3.4 gcc$B%3%s%Q%$%i(B</a></h3>
+ <h3><a name="34">3.4 gccコンパイラ</a></h3>
 <p>
-$B!!(B GNU 
$B%7%9%F%`$N$&$A$9$G$KB8:_$9$k<gMWItJ,$OFs$D$"$k!#0l$D$O?7$7$$(B C 
$B%3%s%Q%$%i(B<font size=-1>$B!JLuCm!'$b$A$m$s$3$N;address@hidden@(B gcc 
$B$H$$$&L>A0$O$J$+$C$?!#!K(B</font>$B$G!"$b$&0l$D$O(BTRIX$B%+!<address@hidden(B
+  GNU システム
のうちすでに存在する主要部分は二つある。一つは新しい 
C コンパイラ<font size=-1>(訳注:もちろんこの時点ではまだ 
gcc 
という名前はなかった。)</font>で、もう一つはTRIXカーネルã
 ã€‚
 <p>
-$B!!?7$7$$(B C 
$B%3%s%Q%$%i$O!"$3$N=U$+$i:#G/$$$C$Q$$=q$$$F$?$b$N!#$D$$$K(B PASTEL 
$B$O<N$F$h$&address@hidden(B C $B%3%s%Q%$%i$O(B PASTEL 
$B$+$i$N%"%$%G%"$r$b$i$C$F$F!"%"%j%>%JBg3X%]!<%?%V%k!&%*%W%A%^%$%6$+$i$N%"%$%G%"$b$b$i$C$F$k!#O"Cf$N$*$b$7$m$$%"%$%G%"$O!"$$$m$s$J<address@hidden@.$G07$&$3$H$G!"%?!<%2%C%H$N%^%7%s$,5v$;$P$=$l$r$$$/$D$+AH$_9g$o$;$FJ#;(address@hidden"L?Na$,?t3X<0$N5-K!$G=q$+$l$F$k!#$?$H$($P(B
 ADD $BL?Na$O$3$s$J46$8$G=q$+$l$k!'(B<p>
+ 新しい C 
コンパイラは、この春から今年いっぱい書いてたもの。ついに
 PASTEL は捨てようと決めたんだ。この C コンパイラは PASTEL 
からのアイデアをもらってて、アリゾナ大学ポータブル・オプチマイザからのアイデアももらってる。連中のおもしろいアイデアは、いろんな種類のマシンを単純な命令の生成で扱うことで、ターゲットのマシンが許せばそれをいくつか組み合わせて複雑な命令にするんã
 
。これを総合的にやるために、命令が数学式の記法で書かれてる。たとえば
 ADD 命令はこんな感じで書かれる:<p>
 <pre>
        r[3]=r[2]+4
 </pre>
 <p>
- $B$3$l$O%3%s%Q%$%iFbIt$G$NL?Na$NI=8=7A!#(B2 
$BHV%l%8%9%?$NCf?H$r$H$C$F!"$=$l$K(B4$B$rB-$7$F(B 3 
$BHV%l%8%9%?$KF~$l$m$H$$$&L?Na!#$3$&$$$&$U$&$K$9$l$P!"$"$i$f$k%^%7%sMQ$K$"$i$f$kL?Na$rI=8=$G$-$k!#$=$l$G$+$l$i$O<B:]$K!"$9$Y$F$NL?Na$r$3$N7A<0$GI=8=$7$F!"$=$l$rAH$_9g$o$;$kCJ3,$K$J$C$?$i!"$"$kI=8=<0$r$Y$D$N$GCV$-49$($F!"$b$C$HJ#;($J<0$r$D$/$C$FAH$_9g$o$;$FL?Na$K$9$k$o$1!#(B
+ これはコンパイラ内部での命令の表現形。2 
番レジスタの中身をとって、それに4を足して 3 
番レジスタにå…
¥ã‚Œã‚ã¨ã„う命令。こういうふうにすれば、あらゆるマシン用にあらゆる命令を表現できる。それでかれらは実際に、すべての命令をこの形式で表現して、それを組み合わせる段階になったら、ある表現式をべつので置き換えて、もっと複雑な式をつくって組み合わせて命令にするわけ。
 <p>
-$B!!$H$-$I$-!":G=i$NL?Na$N7k2L$,$=$l0J>e;H$o$l$k$+$I$&$+$K1~$8$F!"3d$j$D$11i;;;R$rFs$D;}$D$h$&$JAH$_9g$o$;L?Na$r$D$/$s$J$-$c$J$i$J$$!#$3$NCM!J$H2?$+$r;X$5$9!KMQ$K0l$D$H!"$3$C$A$NCM!J$H2?$+$r;X$5$9!KMQ$K0l$D!"$3$C$A$OFsHVL\$NL?Na$+$i$-$?CM$H:9$7BX$($k$N$M!#$G$b$3$NCM$r0l2s$7$+;H$o$J$$$J$i!":9$7BX$($?$"$H$O<N$F$A$c$($k!#$b$&$=$l$G7W;;$9$kI,address@hidden@$+$i!#ESCf$GF~$C$F$/$kL?Na$H$+$,$3$&$$$&CM$rJQ$($?$j$7$J$$$+$H$+!"$=$&$$$&$N$r$A$c$s$H%A%'%C%/$7$F!":9$7BX$($r$-$A$s$H$d$k$N$O$J$+$J$+$d$d$3$7$$!#<+F0%$%s%/%j%a%s%H$d<+F0%G%/%j%a%s%H!&%"%I%l%C%7%s%0$_$?$$$J$b$N$r%5%]!<%H$9$k$J$i!J$\$/$O$7$F$k$1$I!K!"CM$rJ]B8$9$k$s$8$c$J$$$h$&$J>u67$K$D$$$F%A%'%C%/$9$k$N$K!"$$$m$$$m%A%'%C%/$b$7$J$-$c$J$i$J$$!#(B
+ ときどき、最初の命令の結果がそれ以上使われるかどうかに応じて、割りつけ演算子を二つ持つような組み合わせ命令をつくんなきゃならない。この値(と何かを指さす)用に一つと、こっちの値(と何かを指さす)用に一つ、こっちは二番目の命令からきた値と差し替えるのね。でもこの値を一回しか使わないなら、差し替えたあとは捨てちゃえる。もうそれで計算するå¿
…要はないんだから。だから。途中でå…
¥ã£ã¦ãã‚‹å‘½ä»¤ã¨ã‹ãŒã“ういう値を変えたりしないかとか、そういうのをちゃんとチェックして、差し替えをきちんとやるのはなかなかややこしい。自動インクリメントや自動デクリメント・アドレッシングみたいなものをサポートするなら(ぼくはしてるけど)、値を保存するんじゃないような状況についてチェックするのに、いろいろチェックもしなきゃならない。
 <p>
-$B!!$G$b$3$&$$$&$NA4It%A%'%C%/$7$?$i!":9$7BX$($?AH$_9g$o$;<0$r%Q%?!<%s!&%^%C%A%c!<$KDL$7$F!"$=$l$,address@hidden<%2%C%H%^%7%s$GM-8z$JL?Na$rA4ItG'<1$7$F$/$l$k!#$=$l$GG'<1$5$l$?$i!"$=$NFs$D$NL?Na$rAH$_9g$o$;L?Na$HCV$-49$($F!"$=$&$G$J$-$c$=$N$^$^$K$9$k!#$=$7$FO"Cf$N5;K!$C$F$N$O!"%G!<%?%U%m!<$G4XO"$E$1$?L?Na(B
 2 $B$D(B 3 $B$D$r$3$&$d$C$FAH$_9g$o$;address@hidden(B
+ でもこういうのå…
¨éƒ¨ãƒã‚§ãƒƒã‚¯ã—たら、差し替えた組み合わせ式をパターン・マッチャーに通して、それが選んã
 ã‚¿ãƒ¼ã‚²ãƒƒãƒˆãƒžã‚·ãƒ³ã§æœ‰åŠ¹ãªå‘½ä»¤ã‚’å…
¨éƒ¨èªè­˜ã—てくれる。それで認識されたら、その二つの命令を組み合わせ命令と置き換えて、そうでなきゃそのままにする。そして連中の技法ってのは、データフローで関連づけた命令
 2 つ 3 つをこうやって組み合わせることなんだ。
 <p>
-$B!!%"%j%>%J%3%s%Q%$%i$G$O!"$$$m$s$J$b$N$r$3$&$$$&J8;zNs$GI=8=$7$F$F!"address@hidden"Cf$N%3%s%Q%$%i$O$H$F$D$b$J$/CY$$!#:G=i$O$3$N%3%s%Q%$%i$r$=$N$^$^;H$C$F$A$g$C$HJQ$(address@hidden&$+$H;W$C$?$1$l$I!"$G$b$\$/$N5a$a$k%9%T!<%I$r=P$9$K$O40A4$K=q$-49$(address@hidden@$C$?$N$G!"$3$&$$$&<0$9$Y$F$K%j%9%H9=B$$N5-K!$r;H$&$h$&$K=q$-D>$7$?!#$?$H$($P$3$&$$$&$N!'(B<p>
+ アリゾナコンパイラでは、いろんなものをこういう文字列で表現してて、ã
 ã‹ã‚‰é€£ä¸­ã®ã‚³ãƒ³ãƒ‘イラはとてつもなく遅
い。最初はこのコンパイラをそのまま使ってちょっと変えるã
 
けにしようかと思ったけれど、でもぼくの求めるスピードを出すには完å
…¨ã«æ›¸ãæ›ãˆã‚‹ã—かないのは明らかだ
ったので、こういう式すべてにリスト構造
の記法を使うように書き直した。たとえばこういうの:<p>
 <pre>
             (set (reg 2)      (+ (reg 2)    (int 4)))
 </pre>
 <p>
-$B!!$J$s$+(B LISP $B$C$]$$$1$I!"$G$b$3$$$D$N0UL#$O$=$s$J$K(B LISP 
$B$7$F$J$$!#$3$3$N3F%7%s%\%k$OFCJL$KG'<address@hidden&$$$&%7%s%\%k$N=89g$,FCJL$KDj5A$5$l$F$$$F!"I,MW$J$N$OA4It$=$3$K$"$k!#$=$7$F$=$l$>$l$,FCDj$N0z?t$N%Q%?!<%s$r;}$C$F$k!#$?$H$($P!'!V(Breg$B!W$OI,$:(B
 integer 
$B$G!"$=$l$O%l%8%9%?$KHV9f$,address@hidden"!V(B+$B!W$OI,$:%5%V$N<0$rFs$D;}$C$F$F!"$H$+$M!#$=$7$F$=$l$>$l$N<0$K$O%G!<%?7?$,$"$C$F!"$=$l$,4pK\E*$K!"$=$l$,8GDj$+IbF0$+!"address@hidden"$J$s$F$3$H$r;X<($9$k!#I,MW$J$i!"$[$+$NJ*$r07$($k$h$&$K3HD%$9$k$3$H$b$G$-$k!#(B
+ なんか LISP っぽいけど、でもこいつの意味はそんなに 
LISP してない。ここの各シンボルは特別に認識されるものだ
から。こういうシンボルの集合が特別に定義されていて、å¿
…要なのはå…
¨éƒ¨ãã“にある。そしてそれぞれが特定の引数のパターンを持ってる。たとえば:「reg」はå¿
…ず integer で、それはレジスタに番号がついてるからだ
けど、「+」は必
ずサブの式を二つ持ってて、とかね。そしてそれぞれの式にはデータ型があって、それが基本的に、それが固定か浮動か、バイト長はどんã
 ã‘か、なんてことを指示する。必
要なら、ほかの物を扱えるように拡張することもできる。
 <p>
-$B!!$=$l$G$\$/$,<+F0%l%8%9%?3d$jEv$F$r$d$kJ}K!$C$F$N$O!"$\$/$,:G=i$K%3!<address@hidden@.$9$k$H$-!"AH$_9g$o$;address@hidden"%l%8%9%?$KF~$j$=$&$JJQ?t$K$O$9$Y$F!"<+>N5?;w%l%8%9%?HV9f$C$F$N$r3d$j?6$C$F!"$3$l$O(B
 16 
$B$H$+$J$s$H$+!"$=$N%?!<%2%C%H$N%^%7%s$G<B:]$N%l%8%9%?$K$J$k$K$OBg$-$9$.$kHV9f$+$i$O$8$^$k?t;address@hidden@$+$iK\J*$N%l%8%9%?$O(B
 0 $B$+$i(B 15 
$B$^$G$H$+$J$s$H$+$K3d$jEv$F$i$l$F$F!"$=$N$"$H$K5?;w%l%8%9%?$,$/$k!#$=$l$G!"%3%s%Q%$%i$N:G8e$N$H$3$m$G2?$r$d$k$+$H$$$&$H!"$:$C$H8+$F$C$F!"5?;w%l%8%9%?$rK\J*$N%l%8%9%?$KJQ$($F$/address@hidden/%H%0%i%U$r$D$/$C$F!"$I$N5?;w%l%8%9%?F1;N$,F1$8;address@hidden@8$-$F$k$+$r8+$F!"$b$A$m$s$=$l$rK\J*$N%l%8%9%?$NF1$8$H$3$m$KF~$l$k$o$1$K$O$$$+$J$$$N$G!"address@hidden/5?;w%l%8%9%?$r8G$a$F$J$k$Y$/K\J*$N%l%8%9%?$KF~$l$k$h$&$K$7$F!"$7$+$b$=$N=EMWEY$K1~$8$FJB$Y$k$o$1!#(B
+ それでぼくが自動レジスタ割り当てをやる方法ってのは、ぼくが最初にコードを生成するとき、組み合わせとかいろいろやるときã
 ã‘ど、レジスタにå…
¥ã‚Šãã†ãªå¤‰æ•°ã«ã¯ã™ã¹ã¦ã€è‡ªç§°ç–‘似レジスタ番号ってのを割り振って、これは
 16 
とかなんとか、そのターゲットのマシンで実際のレジスタになるには大きすぎる番号からはじまる数字ã
 ã€‚だから本物のレジスタは 0 から 15 
までとかなんとかに割り当てられてて、そのあとに疑似レジスタがくる。それで、コンパイラの最後のところで何をやるかというと、ずっと見てって、疑似レジスタを本物のレジスタに変えてくんã
 
。またもやここでコンフリクトグラフをつくって、どの疑似レジスタ同士が同じ時点で生きてるかを見て、もちろんそれを本物のレジスタの同じところにå
…¥ã‚Œã‚‹ã‚ã‘にはいかないので、だ
からなるべく疑似レジスタを固めてなるべく本物のレジスタにå
…¥ã‚Œã‚‹ã‚ˆã†ã«ã—て、しかもその重要度に応じて並べるわけ。
 <p>
-$B!!$=$7$F:G8e$K!"$$$m$s$JLdBj$KBP1~$7$F%3!<address@hidden($PK\J*$N%l%8%9%?$K$*$5$^$j$-$i$J$$5?;w%l%8%9%?$,$"$C$F!"$=$l$r$+$o$j$K%9%?%C%/address@hidden"$3$l$,5/$-$k$HL?Na$N0lIt$OL58z$K$J$C$A$c$&$+$b$7$l$J$$!#$?$H$($P(B
 68000 
address@hidden"%l%8%9%?$NFbMF$r%a%b$j$K2C;;$7$?$j!"%a%b%j$NFbMF$r%l%8%9%?$K2C;;$7$?$j$O$G$-$k$1$l$I!"%a%b%j$NFbMFF1;N$N2C;;address@hidden(B
 ADD $BL?Na$,$"$C$F!"(B68000 
$B$rAj<j$K$7$F$FN>J}$NCM$,%a%b%j$K$*$5$^$C$A$c$C$?$i!"address@hidden:G8e$N%Q%9$G$O!"$:$C$H8+$F$C$F!"I,MW$K1~$8$F$$$m$s$J$b$N$r%l%8%9%?$K%3%T!<$7$?$j!"La$7$?$j$7$F!"$3$&$$$&LdBj$rJR$E$1$k!#(B
+ そして最後に、いろんな問題に対応してコードを訂正しなきゃならない。たとえば本物のレジスタにおさまりきらない疑似レジスタがあって、それをかわりにスタックのスロットにå
…¥ã‚Œãªãã‚ƒãªã‚‰ãªã„とする。一部のマシンだ
と、これが起きると命令の一部は無効になっちゃうかもしれない。たとえば
 68000 だと、レジスタの内容をメモりに加
算したり、メモリの内容をレジスタに加
算したりはできるけれど、メモリの内容同士の加
算はできない。だから ADD 命令があって、68000 
を相手にしてて両方の値がメモリにおさまっちゃったら、この命令は無効になる。ã
 ã‹ã‚‰æœ€å¾Œã®ãƒ‘スでは、ずっと見てって、必
要に応じていろんなものをレジスタにコピーしたり、戻したりして、こういう問題を片づける。
 <p>
-$B!!%$%s%G%C%/%9%l%8%9%?$bLdBj$K$J$k!#2?$+$r%$%s%G%C%/%9$K$7$F%"%I%l%9$r7h$a$k$H$-!"$=$N%$%s%G%C%/%9CM$,%a%b%j$KF~$C$F$?$i!"$=$N%3!<%I$O$[$H$s$I$N>l9gLr$K$?$?$J$/address@hidden"address@hidden"%I%l%C%7%s%0$G$=$l$,address@hidden/%9%l%8%9%?$K<+F0%$%s%/%j%a%s%H$H$+$+$1$F$k$H$-$K$O!"$=$NCM$r%l%8%9%?$KF~$l$F!"L?Na$r$d$C$F!"%$%s%/%j%a%s%H$7$?CM$r$[$s$H$K$"$k$Y$-%a%b%j$N%9%m%C%H$KLa$7$F$d$i$J$-$c$J$i$J$$$+$b$7$l$J$$!#(B
+ インデックスレジスタも問題になる。何かをインデックスにしてアドレスを決めるとき、そのインデックス値がメモリにå
…¥ã£ã¦ãŸã‚‰ã€ãã®ã‚³ãƒ¼ãƒ‰ã¯ã»ã¨ã‚“どのå 
´åˆå½¹ã«ãŸãŸãªããªã‚‹ã€‚ただ
し、間接アドレッシングでそれができるマシンは別だ
けど。インデックスレジスタに自動インクリメントとかかけてるときには、その値をレジスタにå
…
¥ã‚Œã¦ã€å‘½ä»¤ã‚’やって、インクリメントした値をほんとにあるべきメモリのスロットに戻してやらなきゃならないかもしれない。
 <p>
address@hidden@$$$m$$$m>.:Y9)$NM>CO$O$"$C$F!"$\$/address@hidden,$K8zN($h$/$J$k$[$I$N:Y9)$O<BAu$7$-$C$F$J$$!#(B
+ まだまだいろいろ小細工の余地はあって、ぼくもまだ
十分に効率よくなるほどの細工は実装しきってない。
 <p>
-$B!!$3$N%3%s%Q%$%i$O!"(BC 
$B$N%3!<%I$r$H$C$F!"$=$l$r<B<AE*$K$O(BC$B%G!<%?7?$NCm<a$,$D$$$?9=J8%D%j!<$KJQ$($k%Q!<%5!<$r;}$D$3$H$G$$$^$OF0$$$F$k!#$=$l$+$i<!$N%Q%9$G$O$=$N%D%j!<$r$J$,$a$F!"$3$s$J!J(B
 LISP 
$B>u$N!K%3!<address@hidden@.$9$k!#$=$l$+$i:GE,2=%Q%9$,$$$/$D$+$"$k!#0l$D$K$O!"%8%c%s%W$+$i%8%c%s%W!"%8%c%s%W$X$N%8%c%s%W!"(B.+1
 
$B$X$N%8%c%s%W$J$s$+$r07$&$b$N$G!"$3$s$J$N$O$_$s$J$9$0$K4JAG2=$G$-$k!#$=$l$+$i$h$/$"$kI{<!<0$NG'<1!"$5$i$K4pK\%V%m%C%/C5$7!"$=$l$+$i%G!<%?%U%m!<J,@O$r$7$F!"$I$NL?Na$K$I$NCM$,;H$o$l$F!"$=$N8e$^$C$?$/;H$o$l$J$$$N$O$I$l$+$,$o$+$k!#$=$7$F$=$l$>$l$NL?Na$r!"$=$l$,;H$&address@hidden@.>l=j$H%j%s%/$5$;$F!"address@hidden;w%l%8%9%?(B
 R[28] 
address@hidden@.$9$k$"$kL?Na$,$"$C$F!"JL$NL?Na$,$"$H$G(BR[28]$B$r;H$C$F!"$=$l$,(B
 R[28] 
$B$r;H$&:G=i$N>address@hidden"FsHVL\$N$d$D$,:G=i$N$d$D$rLa$C$F;X$9$h$&$K$7$F!"$3$N%]%$%s%?$,!"L?Na$rAH$_9g$o$;$h$&$H$9$k$H$-$N@)8f$K;H$o$l$k!#NY$j9g$C$?L?Na$rAH$_9g$o$;$k$s$8$c$J$/$F!"$"$kCM$r;H$&L?Na$H!"address@hidden@.$9$kL?Na$H$rAH$_9g$o$;$k$N!#4V$K$[$+$NL?Na$,$O$5$^$C$F$$$F$b!"$3$3$G$O4X78$J$/$F!"C1$K2pF~$7$F$-$?$j$7$J$$$+$I$&$+%A%'%C%/address@hidden;5!G=$,F0E*%l%8%9%?3d$jEv$F$r$d$C$F!"$=$7$F:G8e$K!"%"%;%s%V%j%3!<%I$K$9$kItJ,$,$/$k!#(B
+ このコンパイラは、C 
のコードをとって、それを実質的にはCデータ型の注釈がついた構文ツリーに変えるパーサーを持つことでいまは動いてる。それから次のパスではそのツリーをながめて、こんな(
 LISP 
状の)コードを生成する。それから最適化パスがいくつかある。一つには、ジャンプからジャンプ、ジャンプへのジャンプ、.+1
 
へのジャンプなんかを扱うもので、こんなのはみんなすぐに簡ç´
 
化できる。それからよくある副次式の認識、さらに基本ブロック探し、それからデータフロー分析をして、どの命令にどの値が使われて、その後まったく使われないのはどれかがわかる。そしてそれぞれの命令を、それが使う値の生成å
 ´æ‰€ã¨ãƒªãƒ³ã‚¯ã•ã›ã¦ã€ã ã‹ã‚‰ç–‘似レジスタ R[28] 
を生成するある命令があって、別の命令があとでR[28]を使って、それが
 R[28] を使う最初の場所だ
ったら、二番目のやつが最初のやつを戻って指すようにして、このポインタが、命令を組み合わせようとするときの制御に使われる。隣り合った命令を組み合わせるんじゃなくて、ある値を使う命令と、それを生成する命令とを組み合わせるの。間にほかの命令がはさまっていても、ここでは関係なくて、単に介å
…¥ã—てきたりしないかどうかチェックしなきゃならないだ
け。それで組み合わせ機能が動的レジスタ割り当てをやって、そして最後に、アセンブリコードにする部分がくる。
 <p>
-$B!!%"%j%>%J%3%s%Q%$%i$G$O!"L?NaG'<1ItJ,$O(B LEX 
address@hidden@address@hidden(B LEX $B%W%m%0%i%`$G!"(BLEX $B$O$=$l$r(B C 
$B4X?t$K$7$F!"M-8z$JL?Na$rJ8;zNs$H$7$FG'<1$9$k!#$\$/$,$+$o$j$K$D$1$?$N$O!"address@hidden&%D%j!<$G!"$^$k$G(B
 LISP 
address@hidden@.$5$l$k!#$=$7$F$3$NG'<1ItJ,$O!"%3%s%Q%$%iFb$N$$$m$s$JItJ,$N$?$a$N%5%V%k!<%A%s$H$7$F;H$o$l$F$k!#(B
+ アリゾナコンパイラでは、命令認識部分は LEX 
で生成されてた。マシン記述はただの LEX プログラム
で、LEX はそれを C 
関数にして、有効な命令を文字列として認識する。ぼくがかわりにつけたのは、特別な専用デシジョン・ツリーで、まるで
 LISP 
みたいなこの構文で書かれたマシン記述から生成される。そしてこの認識部分は、コンパイラå†
…のいろんな部分のためのサブルーチンとして使われてる。
 <p>
-$B!!$$$^$s$H$3!"$3$N%3%s%Q%$%i$O(B PCC 
$B$/$i$$$NB.EY$GAv$k!#%l%8%9%?3d$jEv$F$N>.:Y9)$r$9$k$J$H$$$($P!"L\$K8+$($FB.$/$O$J$C$F!"address@hidden(B
 PCC $B$H%l%8%9%?$N3d$jEv$F$OF1$8!#D6>.:Y9)%b!<address@hidden"(BPCC 
$B$h$j$:$C$H>e<j$K%l%8%9%?3d$jEv$F$r$d$C$F!"$\$/$N8+N)$F$G$O(B VAX 
address@hidden(B VAX $BMQ$N$I$N(B C 
$B%3%s%Q%$%i$h$j$b$$$$%3!<address@hidden@.$7$F$/$l$k$M!#(B
+ いまんとこ、このコンパイラは PCC 
くらいの速度で走る。レジスタ割り当ての小細工をするなといえば、目に見えて速くはなって、それã
 ã¨ PCC とレジスタの割り当ては同じ。超小細工モードだ
と、PCC 
よりずっと上手にレジスタ割り当てをやって、ぼくの見立てでは
 VAX だと VAX 用のどの C 
コンパイラよりもいいコードを生成してくれるね。
 <p>
-$B!!(B68000 
address@hidden<address@hidden($J$$!#A0CJ$G!"==J,address@hidden":G9b$H$O$$$($J$$$h$&$J$3$H$r$7$F$kItJ,$,8+$($k!#A0CJ$G$OA*Br$NM>CO$,$"$C$F!"address@hidden,0lHV$$$$$H;W$&address@hidden"$G$bJL$N$d$j$+$?$r$7$F$/$l$?$i8eCJ$N$[$&$,F,$,$$$$$+$i!"$b$C$H$$$$=hM}$r$7$F$/$l$?$O$:address@hidden"8eCJ$,$=$s$J$3$H$7$F$/$l$k$H$OCN$i$J$$$N$G!"address@hidden&$$$&$N$G$b$C$H<j$rF~$l$J$$$H!#(B
+ 68000 だとコードはまだ
理想的とはいえない。前段で、十分にå…
ˆã‚’見通してないから、最高とはいえないようなことをしてる部分が見える。前段では選択の余地があって、ã
 ã‹ã‚‰ãã„つが一番いいと思うことをやるんだ
けれど、でも別のやりかたをしてくれたら後段のほうがé 
­ãŒã„いから、もっといい処理をしてくれたはず。だ
けど前段は、後段がそんなことしてくれるとは知らないので、ã
 ã‹ã‚‰ãã†ã„うのでもっと手を入れないと。
 <p>
-$B!!$H$-$I$-$3$N$;$$$G!"%l%8%9%?$,L5MQ$K2rJ|$5$l$A$c$&address@hidden"2?$+$,%a%b%j$N$[$&$K$*$5$^$C$F!"$=$l$r%l%8%9%?$K%3%T!<$7$J$-$c$J$i$J$+$C$?$i!"$^$:$O$=$l$r%3%T!<$9$k$?$a$N%l%8%9%?$,I,MW$K$J$k!#$3$l$O$D$^$j!"$9$G$K3d$jEv$F$?%l%8%9%?$r;}$C$F$-$F!"0l;~E*$JCM$r%9%?%C%/address@hidden&$$$&$N$,%l%8%9%?$+$i%a%b%j$K$$$C$A$c$&$H!"$5$i$K$[$+$NL?Na$,L58z$K$J$k$+$b$7$l$J$/$F!"address@hidden'%C%/$,I,MW$K$J$k!#$H$-$I$-$3$$$D$O!"2?$+$r%l%8%9%?$K%3%T!<$7$J$-$c$H;W$&address@hidden"$G$b$=$s$JI,MW$,$J$+$C$?$j$7$F!"$9$k$HI,MW0J>e$N%l%8%9%?$r2rJ|$7$A$c$C$F!";H$($k%l%8%9%?$r;address@hidden@!#(B
+ ときどきこのせいで、レジスタが無用に解放されちゃう。ã
 
って、何かがメモリのほうにおさまって、それをレジスタにコピーしなきゃならなかったら、まずはそれをコピーするためのレジスタがå¿
…
要になる。これはつまり、すでに割り当てたレジスタを持ってきて、一時的な値をスタックのスロットに蹴り出すってことã
 
。もちろんそういうのがレジスタからメモリにいっちゃうと、さらにほかの命令が無効になるかもしれなくて、ã
 ã‹ã‚‰ä½•åº¦ã‚‚何度もチェックが必
要になる。ときどきこいつは、何かをレジスタにコピーしなきゃと思うんã
 ã‘ど、でもそんな必要がなかったりして、すると必
要以上のレジスタを解放しちゃって、使えるレジスタを使い切らなかったりするんã
 ã€‚
 <p>
-$B!!!J<ALd(B: 32000 
$BMQ$N%3!<%I%8%'%M%l!<%?$O$"$j$^$9$+!)address@hidden@$1$I!"address@hidden/$H!"MW$k$N$O%3!<%I%8%'%M%l!<%?$8$c$J$/$F!"address@hidden@$1$M!#$=$N%^%7%s$NL?Na$,A4It$3$s$J$U$&$K!J(BLISP
 
$B$C$]$$7A<0$G!K%j%9%H$7$F$"address@hidden<B:]LdBj$H$7$F!"$I$N0z?t$,%l%8%9%?$KF~$l$F$H$+$I$N%l%8%9%?$K$H$+$$$&@)Ls>r7o$N9M$(J}$r<BAu$9$k$H$3$m$OJL$K$7$F!"$3$l$O(B
 68000 $B$K$OI,address@hidden(B VAX 
address@hidden@$1$I!"$G$b$=$l$rJL$K$9$l$P!"$3$N%3%s%Q%$%i$r(B VAX $B$+$i(B 
68000 $B$K0\?"$9$k$N$O$[$s$N?tF|address@hidden"$9$4$/4JC1$K0\?"address@hidden(B
+ (質問: 32000 
用のコードジェネレータはありますか?)まだだ
けど、でも言っとくと、要るのはコードジェネレータじゃなくて、たã
 ã®ãƒžã‚·ãƒ³ã®è¨˜è¿°ã ã‘ね。そのマシンの命令がå…
¨éƒ¨ã“んなふうに(LISP 
っぽい形式で)リストしてあればいい。だ
から実際問題として、どの引数がレジスタにå…
¥ã‚Œã¦ã¨ã‹ã©ã®ãƒ¬ã‚¸ã‚¹ã‚¿ã«ã¨ã‹ã„う制約条件の考え方を実装
するところは別にして、これは 68000 には必要だけど VAX 
では不要だった話なんだ
けど、でもそれを別にすれば、このコンパイラを VAX から 
68000 に移植するのはほんの数日しかかからなかった。だ
から、すごく簡単に移植できるんだ。
 <p>
-$B!!%3%s%Q%$%i$O$$$^$O%"%;%s%V%i!&%3!<address@hidden@.$7$F!"%G%P%C%0>pJs$r(BDBX$B$N5a$a$k7A<0$G$b=P$;$k$7!"(BGDB
 
$B$NFCJL$JFbIt7A<0$G$b=P$;$k!#$\$/address@hidden;$l$P!"$3$N%3%s%Q%$%i$G<j$r$$$l$J$-$c$$$1$J$$$N$O!"$"$H$?$C$?(B3$BJ,address@hidden(B
+ コンパイラはいまはアセンブラ・コードを生成して、デバッグæƒ
…報をDBXの求める形式でも出せるし、GDB の特別な内
部形式でも出せる。ぼくに言わせれば、このコンパイラで手をいれなきゃいけないのは、あとたった3分野ã
 ã‘。
 <ul>
-<li>$B!V%W%m%U%!%$%j%s%0!W5!G=$r$D$1$J$-$c$J$i$J$$!#(BUNIX 
$B$N%3%s%Q%$%i$K$"$k$d$D!#(B</li>
-<li>$B%l%8%9%?3d$jEv$F$r$b$&>/$78-$/address@hidden,=P$F$3$J$$$h$&$K$9$k!#(B</li>
-<li>$B:G8e$K!"$$$m$s$J%P%0$,$"$k$7!"$A$c$s$H07$($F$J$$$b$N$,$"$k!#<+J,<address@hidden(B</li>
+<li>「プロファイリング」機能をつけなきゃならない。UNIX 
のコンパイラにあるやつ。</li>
+<li>レジスタ割り当てをもう少し賢くしないとダメ。出力にバカな代物が出てこないようにする。</li>
+<li>最後に、いろんなバグがあるし、ちゃんと扱えてないものがある。自分自身はコンパイルはできてるんã
 ã‘どね。</li>
 </ul>
address@hidden"$^$"?t%v7n$b$"$l$P$C$F$H$3$G!"$=$7$?$i%3%s%Q%$%i$r%j%j!<%9$9$k!#(B
+ これだ
けやるのに、まあ数ヶ月もあればってとこで、そしたらコンパイラをリリースする。
 <p>
-<h3><a name="35">3.5 TRIX$B%+!<%M%k(B</a></h3>
+<h3><a name="35">3.5 TRIXカーネル</a></h3>
 <p>
-$B!!%7%9%F%`$NCf$G$9$G$KB8:_$9$kBg$-$JItJ,$,%+!<%M%k!#(B($B<ALd!'5Y$_$O!)(B)
 
$B$"$"!"$&$s!"$=$&$$$d5Y7F$rK:$l$F$?$M!#$H$j$"$($:%+!<address@hidden;$F$h!#(B5
 $BJ,$[$I$G$9$`$+$i!#$=$7$?$i5Y7F$K$7$h$&!#(B
+ システム
の中ですでに存在する大きな部分がカーネル。(質問:休みは?)
 
ああ、うん、そういや休憩を忘れてたね。とりあえずカーネルの話ã
 ã‘終わらせてよ。5 
分ほどですむから。そしたら休憩にしよう。
 <p>
-$B!!$G!"%+!<%M%k$K$O(B TRIX 
$B!J$\$/$NCN$k8B$j$G$O!"2?$NN,$G$b$J$$$_$?$$!K$C$F$$$&%7%9%F%`$r;H$&M=Dj(B<font
 size=-1>$B!JLuCm!'IT>\!#$-$$$?$3$H$J$$!#$G$b!"$9$G$K%^%k%A%5!<%P<0$N(B OS 
$B$i$7$-$b$N$O9=A[$5$l$F$$$k$N$,$o$+$k!#$J$*$3$3$G$O!"$3$N(B 1986 
$BG/$N;address@hidden<%M%k$,$^$b$J$/$G$-$=$&address@hidden,!"<B:]$K(B GNU 
$B$N%+!<%M%k$G$"$k(B HURD $B$,$^$,$j$J$j$K$b%j%j!<%9$5$l$?$N$O!"(B1997 
$BG/address@hidden(B</font>$B!#$3$l$O(B MIT 
$B$N8&5f%W%m%8%'%/%H$G3+H/$5$l$?$b$N$G!"%j%b!<%H!&%W%m%7!<%8%c!&%3!<address@hidden"%I%l%96u4V$H$$$m$s$J5!G=!J(Bcapability$B!K$G!"5!G=!J(Bcapability$B!K$C$F$N$O$^$5$K!"address@hidden(Bcapability
 
ports$B!W!J5!G=%]!<%H!K$,$D$/$l$F!"$=$7$F%7%9%F%`%3!<%k$H$[$+$N%f!<%6%I%a%$%s$r%3!<%k$9$k$N$H$,$^$C$?$/address@hidden<%6%W%m%0%i%`$G%G%P%$%9$r4JC1$K<BAu$G$-$k!#%U%!%$%k%7%9%F%`$b!"F)2aE*$K%f!<%6%W%m%0%i%`$G<BAu$G$-$k!#$5$i$K%M%C%H%o!<%/$4$7$KDL?.$9$k$N$bF)2aE*!#$[$+$N%I%a%$%s$rD>@\8F$s$G$k$D$b$j$G$b!"<B$O%M%C%H%o!<%/%5!<%P$N%I%a%$%s$r8F$s$G$k$+$b$7$l$J$$!#%3!<%k$GM?$($?>pJs$r$H$C$F!"$=$l$r%M%C%H%o!<%/1[$7$KJL$N%5!<%P%W%m%0%i%`$KEO$7$F!"$=$l$,$3$s$I$O$"$J$?$NOC$=$&$H$7$F$k%I%a%$%s$r8F$S=P$9!#$G$b!"$"$J$?$H$=$NAj<j$N%I%a%$%s$K$O!"$=$&$$$&F0$-$O$^$C$?$/8+$($:$K5/$3$k!#(B
+ で、カーネルには TRIX 
(ぼくの知る限りでは、何の略でもないみたい)っていうシステãƒ
 ã‚’使う予定<font 
size=-1>(訳注:不詳。きいたことない。でも、すでにマルチサーバ式の
 OS 
らしきものは構想されているのがわかる。なおここでは、この
 1986 年の時点でカーネルがまもなくできそうな雰囲気だ
が、実際に GNU のカーネルである HURD 
がまがりなりにもリリースされたのは、1997 
年になってからのことだった。)</font>。これは MIT のç 
”究プロジェクトで開発されたもので、リモート・プロシージャ・コールに基づいてる。ã
 ã‹ã‚‰ãƒ—ログラム
はドメインと呼ばれてる。各ドメインはアドレス空間といろんな機能(capability)で、機能(capability)ってのはまさに、ドメインを呼び出す能力なんã
 ã€‚どのドメインもそれを呼び出す「capability 
ports」(機能ポート)がつくれて、そしてシステム
コールとほかのユーザドメインをコールするのとがまったく同じ。どっちをしてるのかすら区別できない。ã
 ã‹ã‚‰ã»ã‹ã®ãƒ¦ãƒ¼ã‚¶ãƒ—ログラムでデバイスを簡単に実装
できる。ファイルシステムも、透過的にユーザプログラム
で実装
できる。さらにネットワークごしに通信するのも透過的。ほかのドメインを直接呼んでるつもりでも、実はネットワークサーバのドメインを呼んでるかもしれない。コールで与えたæƒ
…å 
±ã‚’とって、それをネットワーク越しに別のサーバプログラãƒ
 
に渡して、それがこんどはあなたの話そうとしてるドメインを呼び出す。でも、あなたとその相手のドメインには、そういう動きはまったく見えずに起こる。
 <p>
-$B!!(BTRIX $B%+!<%M%k$OF0$/$7!"$4$/8B$i$l$?$+$?$A$G(B UNIX 
address@hidden"address@hidden"address@hidden@address@hidden"%G%#%9%/>e$G$O8E$/$5$$(B
 UNIX 
$B%U%!%$%k%7%9%F%`$,;H$C$F$k$N$HF1$89=B$$r;H$C$?%U%!%$%k%7%9%F%`$r;}$C$F$k!#$*$+$2$G%G%P%C%0$O$d$5$7$$$h!#%U%!%$%k$r(B
 UNIX 
$B$G%;%C%H$7$F!"$=$l$r(BTRIX$B$GAv$i$;$?$j$G$-$k$+$i!#$G$b$3$N%U%!%$%k%7%9%F%`$O!"$\$/$,I,address@hidden;W$&5!G=$r$<$s$<$s;}$C$F$J$$!#(B
+ TRIX カーネルは動くし、ごく限られたかたちで UNIX 
と互換性もあるんだけれど、でもまだまだだ
ね。いまのところ、ディスク上では古くさい UNIX 
ファイルシステムが使ってるのと同じ構造
を使ったファイルシステム
を持ってる。おかげでデバッグはやさしいよ。ファイルを 
UNIX 
でセットして、それをTRIXで走らせたりできるから。でもこのファイルシステãƒ
 ã¯ã€ã¼ããŒå¿…要だと思う機能をぜんぜん持ってない。
 <p>
-$B!!$I$&address@hidden;W$&5!G=$H$7$F$O!"%P!<%8%g%sHV9f!":o=|%U%!%$%k$NI|3h!"%U%!%$%k$,$$$D$I$3$G%F!<%W$K%P%C%/%"%C%W$5$l$?$+$N>pJs!"%U%!%$%k$N>\:Y99?7!J(Batomic
 superseding of files$B!K!#(BUNIX 
$B$G$$$$$H;W$&$N$O!"%U%!%$%k$,=q$-9~$^$l$F$$$k$H$-$K$O!"$$$D$G$b$I$&$J$C$F$k$+8+$i$l$k$C$F$3$H$M!#$?$H$($P!V(Btail$B!W$r;address@hidden"$"$l$C$F$$$$$h$M!#$=$l$G%W%m%0%i%`$,!"%U%!%$%k=q$-$+$1$G;address@hidden"$I$3$^$G9T$C$?$+$b8+$i$l$k!#$3$&$$$&address@hidden"$G$b$3$N=q$-$+$1$N=PNO$,!"$$$:$l4|BT$7$F$?40A4$J=PNO$K$^$A$,$($i$l$k$h$&$J$3$H$O!"@dBP$K$"$C$F$O$J$i$J$$!#$=$NA0$N%P!<%8%g%s$b$A$c$s$H8+$i$l$F!"?7$7$$%P!<%8%g%s$,address@hidden/$G$-$k$^$G$O!"$=$l$r;H$*$&$H$9$k?M$_$s$J$K;H$o$l$k$Y$-$G$7$g!#$H$$$&$3$H$O$D$^$j!"?7$7$$%P!<%8%g%s$O%U%!%$%k%7%9%F%`$NCf$G8+$(address@hidden@$1$l$I!"$G$bL>A0$OM=Dj$5$l$F$?L>address@hidden:n6H$,40N;$7$F$O$8$a$F%j%M!<%`$5$l$k$h$&$K$7$J$$$H!#$3$l$O$^$5$K(BITS$B$,$=$&$G!"address@hidden"3F%f!<%6%W%m%0%i%`$,$=$l$rL@<(E*$K$d$kI,MW$,$"$C$?!#%f!<%6%W%m%0%i%`$K(B
 UNIX address@hidden;}$?$;$k$K$O!"$3$l$rL\$K8+$($J$$7A$G$d$kI,MW$,$"$k!#(B
+ どうしても追加するべきだ
と思う機能としては、バージョン番号、削除ファイルの復活、ファイルがいつどこでテープにバックアップされたかのæƒ
…報、ファイルの詳細更新(atomic superseding of files)。UNIX 
でいいと思うのは、ファイルが書き込まれているときには、いつでもどうなってるか見られるってことね。たとえば「tail」を使ってどこまで進んã
 ã‹è¦‹ã‚‹ã¨ã‹ã€ã‚れっていいよね。それでプログラム
が、ファイル書きかけで死んだ
りしたら、どこまで行ったかも見られる。こういうのっていいんã
 ã‘ど、でもこの書きかけの出力が、いずれ期待してた完å…
¨ãªå‡ºåŠ›ã«ã¾ã¡ãŒãˆã‚‰ã‚Œã‚‹ã‚ˆã†ãªã“とは、絶対にあってはならない。その前のバージョンもちゃんと見られて、新しいバージョンが完å
…
¨ã«æ­£ã—くできるまでは、それを使おうとする人みんなに使われるべきでしょ。ということはつまり、新しいバージョンはファイルシステãƒ
 ã®ä¸­ã§è¦‹ãˆãªãã‚ƒãƒ€ãƒ¡ã 
けれど、でも名前は予定されてた名前じゃいけないってことã
 ã€‚作業が完了してはじめてリネーム
されるようにしないと。これはまさにITSがそうで、だ
けどここでは、各ユーザプログラム
がそれを明示的にやる必要があった。ユーザプログラムに 
UNIX 
と互換性を持たせるには、これを目に見えない形でやる必
要がある。
 <p>
-$B!!%P!<%8%g%sHV9f$r!"$$$^$N(B UNIX 
$B$N%f!<%6%W%m%0%i%`$K%U%#%C%H$5$;$k$?$a$N!"$9$4$$>.:Y9)$C$]$$J}<0$r9M$($F$"$k!#$=$l$G$3$l$C$F!"%U%!%$%kL>$r$=$N$^$^;XDj$7$F%P!<%8%g%sHV9f$rN,$9$H!"$U$D$&$N7A$GL>A0$r;XDj$9$k$C$F$3$H!#$G$b%U%!%$%kL>$r$O$C$-$j;XDj$7$?$1$l$P!"$?$H$($P$O$C$-$j$I$N%P!<%8%g%s$r;H$$$?$$$+;XDj$9$k$H$+!"$"$k$$$O$<$s$<$s%P!<%8%g%s$r;H$$$?$/$J$1$l$P!"%U%!%$%kL>$N:address@hidden(BHOGE$B!W$C$F$$$&%U%!%$%kL>$rM?$($?$i!"$3$l$O$D$^$j!V(BHOGE
 
$B$N%P!<%8%g%s$rA4It8+$F!":G?7$N%d%D$r$b$C$H$$$G!W$H$$$&0UL#!#$G$b!V(BHOGE.$B!W$H$$$($P!"!V=c?h$K(BHOGE$B$H$$$&L>address@hidden;}$C$H$$$G!"$=$l0J30$O$$$i$J$$$h!W$C$F$3$H!#!V(BHOGE.3.$B!W$C$F$N$O!V$:$P$j(B
 HOGE.3 $B$C$FL>A0$N%U%!%$%k!W$G!"$3$l$O$b$A$m$s(B HOGE 
$B$N%P!<%8%g%s(B3$B$=$N$b$N!#=PNO$G$O!"C1$K!V(BHOGE$B!W$H$$$C$?$i!"$3$l$O$$$:$l!V(BHOGE$B!W$N?7$7$$%P!<%8%g%s$r$D$/$k$1$l$I!"$G$b!V(BHOGE.$B!W$H;XDj$9$l$P!"=c?h$K!V(BHOGE$B!W$H$$$&L>A0$N%U%!%$%k$K=q$-9~$`!#(B
+ バージョン番号を、いまの UNIX のユーザプログラム
にフィットさせるための、すごい小細工っぽい方式を考えてある。それでこれって、ファイル名をそのまま指定してバージョン番号を略すと、ふつうの形で名前を指定するってこと。でもファイル名をはっきり指定したければ、たとえばはっきりどのバージョンを使いたいか指定するとか、あるいはぜんぜんバージョンを使いたくなければ、ファイル名の最後にピリオドをつける。ã
 
からもし「HOGE」っていうファイル名を与えたら、これはつまり「HOGE
 のバージョンをå…
¨éƒ¨è¦‹ã¦ã€æœ€æ–°ã®ãƒ¤ãƒ„をもっといで」という意味。でも「HOGE.」といえば、「純粋にHOGEという名前ã
 
けのファイルを持っといで、それ以外はいらないよ」ってこと。「HOGE.3.」ってのは「ずばり
 HOGE.3 って名前のファイル」で、これはもちろん HOGE 
のバージョン3そのもの。出力では、単に「HOGE」といったら、これはいずれ「HOGE」の新しいバージョンをつくるけれど、でも「HOGE.」と指定すれば、純粋に「HOGE」という名前のファイルに書き込む。
 <p>
-$B!!$5$F!":Y$+$$$H$3$m$rA4It$D$a$F!"LdBj$,;D$C$F$J$$$+$H$+!"(BUNIX 
$B$,%U%!%$%kL>$K%T%j%*%I$r$D$1$?$i$$$+$l$k$+$+$J$s$H$+!"F1$89TF0$r$5$;$k$h$&$K$9$k$K$O!"address@hidden<%I%k$,;D$C$F$O$$$k!#(B
+ さて、細かいところをå…
¨éƒ¨ã¤ã‚ã¦ã€å•é¡ŒãŒæ®‹ã£ã¦ãªã„かとか、UNIX 
がファイル名にピリオドをつけたらいかれるかかなんとか、同じ行動をさせるようにするには、いろいろまã
 ãƒãƒ¼ãƒ‰ãƒ«ãŒæ®‹ã£ã¦ã¯ã„る。
 <p>
-$B!!=PNOMQ$K!"L>A0$,%T%j%*%I$G=*$o$k%U%!%$%k$r3+$$$?$i!"$=$NL>A0$r$9$0$K3+$$$F!"address@hidden(B
 UNIX 
$B$N?6$kIq$$$,address@hidden&$K$7$?$$!#=q$-$+$1$N=PNO$,$=$N$^$^8+$($k$h$&$K$J$C$F!"$G$b%T%j%*%I$G=*$o$i$J$$L>A0$K=PNO$7$?$i!"JD$8$?$H$-$K$O?7$7$$%P!<%8%g%s$,$"$i$o$l$F!"$7$+$b$=$l$rL@<(E*$KJD$8$J$$$H?7$7$$%P!<%8%g%s$K$J$i$J$$!#%7%9%F%`$,%/%i%C%7%e$7$?$H$+$J$s$H$+$G!"%8%g%V$,;address@hidden,JD$8$?$i!"$=$l$OL>A0$,JQ$o$k!#(B
+ 出力用に、名前がピリオドで終わるファイルを開いたら、その名前をすぐに開いて、ã
 ã‹ã‚‰åŒã˜ UNIX 
の振る舞いが得られるようにしたい。書きかけの出力がそのまま見えるようになって、でもピリオドで終わらない名前に出力したら、閉じたときには新しいバージョンがあらわれて、しかもそれを明示的に閉じないと新しいバージョンにならない。システãƒ
 ãŒã‚¯ãƒ©ãƒƒã‚·ãƒ¥ã—たとかなんとかで、ジョブが死んだ
ためにファイルが閉じたら、それは名前が変わる。
 <p>
-$B!!$=$7$F$3$N%"%$%G%"$O!"!V%9%?!<!&%^%C%A%s%0!W$K7k$S$D$1$i$l$k!#$D$^$j!"%T%j%*%I$G=*$o$i$J$$L>A0$O%P!<%8%g%sHV9f$N$D$$$F$J$$L>A0$H%^%C%A$9$k$h$&address@hidden"$k%G%#%l%/%H%j$K$3$s$J%U%!%$%k$,$"$C$?$H$7$h$&!'(B<p>
+ そしてこのアイデアは、「スター・マッチング」に結びつけられる。つまり、ピリオドで終わらない名前はバージョン番号のついてない名前とマッチするようになるってわけ。ã
 
からあるディレクトリにこんなファイルがあったとしよう:<p>
 <pre>
-         ho.1 $B!!(Bho.2 $B!!(Bge.8
+         ho.1  ho.2  ge.8
 </pre>
 <p>
-$B!!$3$3$G!V(address@hidden"$=$l$O!'(B<p>
+ ここで「*」と言ったら、それは:<p>
 <pre>
-         ho $B!!(Bge
+         ho  ge
 </pre>
 <p>
-$B$KAjEv$9$k!#L>A0$r$H$C$F!"%P!<%8%g%sHV9f$r$=$3$+$i=|$$$F!"$=$l$G6hJL$,$D$/$b$N$rA*$V$+$i!#$G$b!V(B*.$B!W$H$$$($P!"@dBPL>$rA4It$H$C$F$-$F!"$=$l$K%T%j%*%I$r$D$1$F!"$=$l$KBP$7$F%^%C%A$7$?$N$r$5$,address@hidden:_$9$k8DJL%P!<%8%g%s$,$9$Y$F$"$F$O$^$k!#F1$8$h$&$K$7$F!V(B*.c$B!W$H!V(B*.c.$B!W$N$A$,$$$b$o$+$k$h$M!#$3$$$D!J:G=i$N!K$O4pK\E*$K%P!<%8%g%s$J$7$N!V(address@hidden"$3$$$D!JFsHVL\!K$OA4%P!<%8%g%s$r$5$9!&!&!&$o$1$8$c$J$$$J!"address@hidden(B*.c.*.$B!W$H$d$s$J$-$c$$$1$J$$$N$+!#$^$@:address@hidden(B
+に相当する。名前をとって、バージョン番号をそこから除いて、それで区別がつくものを選ぶから。でも「*.」といえば、絶対名をå
…
¨éƒ¨ã¨ã£ã¦ãã¦ã€ãã‚Œã«ãƒ”リオドをつけて、それに対してマッチしたのをさがす。ã
 
から存在する個別バージョンがすべてあてはまる。同じようにして「*.c」と「*.c.」のちがいもわかるよね。こいつ(最初の)は基本的にバージョンなしの「.c」ファイルすべてをさすんã
 ã‘ど、こいつ(二番目)はå…
¨ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’さす・・・わけじゃないな、それだ
と「*.c.*.」とやんなきゃいけないのか。まだ
細かいところはつめきってないんだ。
 <p>
-$B!!$b$&0l$D!"%f!<%6$+$i$O8+$($J$$5!G=$G$7$+$b3N<address@hidden,$"$k$N$,!"%U%!%$%k%7%9%F%`$N%U%'%$%k%;!<%U$5$C$F$3$H!#$D$^$j!"A4>pJs$r%G%#%9%/$K$A$c$s$H$7$?=g=x$G=q$1$P!"$&$^$/$=$l$,$G$-$l$P!VDd;_!W%\%?%s$r$$$D2!$7$F$b!"$=$l$G%G%#%9%/>e$N%U%!%$%k%7%9%F%`$,$$$+$l$k$h$&address@hidden&$K$G$-$k!#$3$l$N$d$j$+$?$O$h$/CN$i$l$F$k!#$J$s$G$_$s$J$=$l$rL5;k$9$k$N$+!"A[A|$b$D$+$J$$$h!#$b$&0l$D$N%"%$%G%"$O!"$5$i$K>pJs$N>address@hidden;$k!#$3$l$r$d$k$+$I$&$+$O$h$/$o$+$i$J$$$1$I!"$G$b3F%U%!%$%k$KL>A0$rA4ItF~$l$F!"address@hidden/>e$N%G%#%l%/%H%j$,2u$l$F$b!"$=$l$r%G%#%9%/$N$[$+$NCf?H$+$i:F9=C[$9$k$3$H$,2DG=$K$J$k$h$&$K$9$kJ}K!$K$D$$$F!"$A$g$C$H9M$($,$"address@hidden(B
+ もう一つ、ユーザからは見えない機能でしかも確実に互換性があるのが、ファイルシステãƒ
 ã®ãƒ•ã‚§ã‚¤ãƒ«ã‚»ãƒ¼ãƒ•ã•ã£ã¦ã“と。つまり、全情å 
±ã‚’ディスクにちゃんとしたé 
†åºã§æ›¸ã‘ば、うまくそれができれば「停止」ボタンをいつ押しても、それでディスク上のファイルシステãƒ
 
がいかれるようなことは絶対ないふうにできる。これのやりかたはよく知られてる。なんでみんなそれを無視するのか、想像もつかないよ。もう一つのアイデアは、さらにæƒ
…å 
±ã®å†—長性をもたせる。これをやるかどうかはよくわからないけど、でも各ファイルに名前をå
…¨éƒ¨å…¥ã‚Œã¦ã€ã 
からディスク上のディレクトリが壊れても、それをディスクのほかの中身から再構築することが可能になるようにする方法について、ちょっと考えがあるんã
 ã€‚
 <p>
-$B!!$"$H!"%U%!%$%k$NG$0U$N0lIt$r:Y$+$/!J(Batomically$B!K99?7$G$-$k$h$&$K$9$k$K$O$I$&$7$?$i$$$$$+!"$\$/address@hidden,$r?7$7$$%G!<%?$G99?7$7$FCV$-49$($k$H$-$K!"address@hidden&$H$9$l$P!"8+$($k$N$O8E$$%G!<address@hidden<address@hidden;W$&!#$7$+$b%U%!%$%k$r%m%C%/$7$?$j$H$+$b$7$J$/$F$M!"$<$s$<$s!#(B
+ あと、ファイルの任意の一部を細かく(atomically)更新できるようにするにはどうしたらいいか、ぼくはわかってるつもりã
 
。つまりファイルの一部分を新しいデータで更新して置き換えるときに、それã
 ã¨ãƒ•ã‚¡ã‚¤ãƒ«ã‚’読もうとすれば、見えるのは古いデータだ
けとか新しいデータだ
けとかね。できると思う。しかもファイルをロックしたりとかもしなくてね、ぜんぜん。
 <p>
-$B!!%M%C%H%o!<%/$N%5%]!<%H$H$7$F$O!"$$$:$l$3$N%7%9%F%`MQ$K(B TCP/IP 
$B$r<BAu$9$k$D$b$j!#$=$l$H<B<AE*$K(B UUCP $B$KAjEv$9$k$b$N$H$7$F!"(BKERMIT 
$B$,$D$+$($k$H;W$&!#(B
+ ネットワークのサポートとしては、いずれこのシステム
用に TCP/IP を実装するつもり。それと実質的に UUCP 
に相当するものとして、KERMIT がつかえると思う。
 <p>
-$B!!%7%'%k$O3N$+$b$&=q$->e$,$C$F$k$O$:!#Fs$D$N%b!<%I$,$"$C$F!"0l$D$O(B 
BOURNE $B%7%'%kIw$G!"F1$8%W%m%0%i%`$,JL$N%b!<%I$G$O(BC 
$B%7%'address@hidden/$N<j85$K$OFO$$$F$J$$$+$i!"$I$N$/$i$$<j$r$+$1$J$-$c$J$s$J$$$+$b$o$+$s$J$$$d!#$=$l0J30$K$b$?$/$5$s%f!<%F%#%j%F%#$,$"$k!#(BMAKE
 $B$O$"$k$7!"(BLS $B$b!"$"$H(B BISON $B$C$F$$$&(B YACC 
$B$K$+$o$k$b$N$b$"$C$F!"G[I[$5$l$F$k!#(BLEX 
address@hidden"address@hidden"$A$g$C$H:n6H$,I,MW!#$=$7$FA4BN$H$7$F!"$3$l$+$i$d$s$J$-$c$J$i$J$$$3$H$O!"$b$&:address@hidden:$C$H>/address@hidden"address@hidden@$?$/$5$s<jEA$$$,address@hidden(B
+ シェルは確かもう書き上がってるはず。二つのモードがあって、一つは
 BOURNE シェル風で、同じプログラムが別のモードではC 
シェル風になる。まだこいつはぼくの手å…
ƒã«ã¯å±Šã„てないから、どのくらい手をかけなきゃなんないかもわかんないや。それ以外にもたくさんユーティリティがある。MAKE
 はあるし、LS も、あと BISON っていう YACC 
にかわるものもあって、配布されてる。LEX 
にかなり近いものもできてるんだけど、完å…
¨ã«äº’換性はないので、ちょっと作業が必要。そしてå…
¨ä½“として、これからやんなきゃならないことは、もう済んã
 ã“とよりはずっと少ないんだけれど、でもまだまだ
たくさん手伝いがいるんだ。
 <p>
-$B!!$_$s$J$,$7$g$C$A$e$&$-$/$N$,address@hidden/address@hidden"$$$D$G$-$s$N$+$J$s$F$o$+$j$c$7$J$$$1$I!"$3$l$O$\$/address@hidden<ALd$8$c$J$$!#$b$7$=$N?M$,$=$l$K$*6b$rJ'$&5$$J$i!"$=$j$c$:$P$j$I$s$J$b$N$r$$$D<j$KF~$l$i$l$k$+CN$j$?$,address@hidden"$*6b$rJ'$&address@hidden"$-$_$?$A$,$-$/address@hidden<ALd$O!V$b$C$H$O$d$/address@hidden;$k$?$a$K!"$I$s$J<address@hidden'%/%H$N%j%9%H$,$"$C$F!"(BMIT
 
$B$N%U%!%$%k$K$*$$$F$"address@hidden"<jEA$$$?$$?M$O$3$N%$%s%?!<%M%C%H%"%I%l%9$K%a!<%k$r$/$l$l$P!"%W%m%8%'%/%H$N%j%9%H$rAw$C$F$"$2$k!#!J$3$$$D!"$&$^$/F0$/$+$J!J$H%A%g!<%/address@hidden&!K!#$3$l!"FI$a$k!)(B
 <tt>address@hidden</tt> 
address@hidden'$,JQ$o$kDL$j!K!#$G!"$3$3$G$A$g$C$H5Y7F$H$$$3$&$+!#$=$7$F5Y7F$,=*$o$C$?$i!"$\$/$O$9$4$$LdBjH/address@hidden"address@hidden@$h!#$$$^5"$C$?$i!"%[%s%H$N;3>l$r$_$N$,$9$+$i$M!#(B
+ みんながしょっちゅ
うきくのが「いつになったら完成するの」ってこと。もちろんぼくã
 
って、いつできんのかなんてわかりゃしないけど、これはぼくにすべき正しい質問じゃない。もしその人がそれにお金を払う気なら、そりゃずばりどんなものをいつ手にå
…¥ã‚Œã‚‰ã‚Œã‚‹ã‹çŸ¥ã‚ŠãŸãŒã‚‹ã®ã¯å½“然だ
。でも、お金を払うことにはならないんだ
から、きみたちがきくべき正しい質問は「もっとはやく完成させるために、どんな手伝いをしたらいいですか」なんã
 ã€‚プロジェクトのリストがあって、MIT 
のファイルにおいてあるんだ
けど、手伝いたい人はこのインターネットアドレスにメールをくれれば、プロジェクトのリストを送ってあげる。(こいつ、うまく動くかな(とチョークを見つめて言う)。これ、読める?
 <tt>address@hidden</tt> だ
よ(カラオケ風に色が変わる通り)。で、ここでちょっと休憩といこうか。そして休憩が終わったら、ぼくはすごい問題発言をいろいろするからね。いま帰っちゃã
 ã‚ã ã‚ˆã€‚いま帰ったら、ホントの山場をみのがすからね。
 <p>
-$B!!(B[$B$3$3$G(B15$BJ,5Y7F(B]
+ [ここで15分休憩]
 
 <hr>
-<h2><a name="4">4  $B>pJs!"%=%U%H$HCx:n8"(B</a></h2>
+<h2><a name="4">4  情報、ソフトと著作権</a></h2>
 <p>
-$B!!(B GNU 
$B%=%U%H$NF~<address@hidden/$h$&address@hidden"0l$D$NJ}K!$O$b$A$m$s!"$b$7$=$l$r;}$C$F$kM'address@hidden,$$$?$i!"$=$l$r%3%T!<$9$l$P$$$$$1$I!"$G$b$=$&$$$&M'address@hidden,$$$J$+$C$?$i!"$=$7$F%$%s%?!<%M%C%H$K$b$D$J$,$C$F$J$+$/$F!"address@hidden(B
 FTP 
$B$b;H$($J$$$J$i!"G[I[%F!<%W$rCmJ8$7$F%U%j!<%=%U%H%&%'%":bCD!J(BFSF$B!K$K$*6b$rAw$C$F$/$l$l$P$$$$!#$b$A$m$s!"%U%j!<address@hidden"$H$G>\$7$/$d$k!#(B
+  GNU ソフトのå…
¥æ‰‹æ³•ã‚’言っとくようにと言われた。で、一つの方法はもちろん、もしそれを持ってる友ã
 
ちがいたら、それをコピーすればいいけど、でもそういう友ã
 
ちがいなかったら、そしてインターネットにもつながってなかくて、ã
 ã‹ã‚‰ FTP も使えないなら、é…
å¸ƒãƒ†ãƒ¼ãƒ—を注文してフリーソフトウェア財団(FSF)にお金を送ってくれればいい。もちろん、フリーソフトは無料é
…å¸ƒã£ã¦ã®ã¨ã¯åˆ¥ç‰©ãªã‚“だ
よ。この話はまたあとで詳しくやる。
 <p>
-$B!!$3$3$K<h$j=P$7$^$7$?$k$O(B EMACS 
$B$N%^%K%e%"address@hidden"$-$l$$$K0u:address@hidden<address@hidden;%C%H0u:~$7$F$"$k!#(BEMACS
 
$B$NG[I[%Q%C%1!<%8$KF~$C$F$k%=!<%9$+$i<+J,$G0u:~$7$F$b$$$$$7!"$3$C$A$N$d$D$r(B
 FSF 
$B$+$iGc$C$F$/$l$F$b$$$$!#$"$H$G$3$3$K$-$F!"$3$$$D$r8+$F$_$F!"$=$l$H$3$l$K$OCmJ8=q$b$"$C$F$"$H$G$=$l$r<L$7$?$j$H$+!"$"$H$3$N!JI=;f$N!K3($b$*$b$7$m$,$C$F$b$i$($?$j$9$k!#$3$$$D!J$H!"3($NCf$G%L!<$K$^$?$,$C$?(BRMS$B$KDI$$$+$1$i$l$F$k?MJ*$r;X$5$9!K$O!"$S$S$C$F$k%=%U%H1#F?<T!#$"$H$G$3$$$D$NOC$b$7$h$&!#(B
+ ここに取り出しましたるは EMACS のマニュアルだ
けど、きれいに印刷製本したやつ。写真製版してオフセット印刷してある。EMACS
 の配布パッケージにå…
¥ã£ã¦ã‚‹ã‚½ãƒ¼ã‚¹ã‹ã‚‰è‡ªåˆ†ã§å°åˆ·ã—てもいいし、こっちのやつを
 FSF 
から買ってくれてもいい。あとでここにきて、こいつを見てみて、それとこれには注文書もあってあとでそれを写したりとか、あとこの(表紙の)絵もおもしろがってもらえたりする。こいつ(と、絵の中でヌーにまたがったRMSに追いかけられてる人物を指さす)は、びびってるソフトéš
 åŒ¿è€…。あとでこいつの話もしよう。
 <p>
-$B!!%=%U%H%&%'%"$C$F$N$OHf3SE*?7$7$$8=>address@hidden,%=%U%H$rG[I[$7=P$7$?$N$O!"$;$$$<$$(B
 30 $BG/address@hidden,$=$l$r>&Gd$K$7$h$&$H;W$$$D$$$?$N$O!"$?$C$?(B 20 
$BG/address@hidden@!#?M$,$I$&$9$k$+$K$D$$$F!"$J$s$NA0Nc$b$J$$$7!"address@hidden,2?$N8"Mx$r;address@hidden&address@hidden"%"%J%m%8!<$G$[$+$NJ,Ln$NEAE}$r;address@hidden"$=$N:]$N%"%$%G%"$,$$$/$D$+$"$C$?!#(B
+ ソフトウェアってのは比較的新しい現象だ
。人がソフトを配布し出したのは、せいぜい 30 
年前かな。だ
れかがそれを商売にしようと思いついたのは、たった 20 
年ほど昔だ
。人がどうするかについて、なんの前例もないし、だ
れが何の権利を持ってるかもわからない世界だ
った。そして、アナロジーでほかの分野の伝統を持ち込めたんã
 ã‘ど、その際のアイデアがいくつかあった。
 <p>
-$B!!%h!<%m%C%Q$N65<x$?$A$,$*5$$KF~$j$N%"%J%m%8!<$O!"%W%m%0%i%`$H?t3X$H$N%"%J%m%8!<!#%W%m%0%i%`$C$F$N$O0l<o$NBg$-$J?t<address@hidden"address@hidden<address@hidden<L$7$F;H$($k!#(B
+ ヨーロッパの教授たちがお気にå…
¥ã‚Šã®ã‚¢ãƒŠãƒ­ã‚¸ãƒ¼ã¯ã€ãƒ—ログラム
と数学とのアナロジー。プログラム
ってのは一種の大きな数式みたいなもんだ
。さて伝統的には、だ
れも数式を所有したりはできない。だ
れでもそれを写して使える。
 <p>
-$B!!0lHL$N?M$K$$$A$P$s0UL#$,$"$k%"%J%m%8!<$O!"address@hidden&!#9M$($F$_$l$P!"F|>address@hidden(address@hidden,$$$H$$$($P!"%l%7%T$O?M$,=>$&$b$N$G!"5!3#$,<+F0E*$K$d$k$3$H$8$c$J$$$C$F$3$H!#3N$+$K%l%7%T$K$O%=!<%9%3!<%I$H%*%V%8%'%/%H%3!<%I$N:9$O$J$$$1$l$I!"$G$b$$$A$P$s6a$$$N$O;v<address@hidden'$a$i$l$F$$$J$$!#(B
+ 一般の人にいちばん意味があるアナロジーは、料理のレシピã
 ã‚ã†ã€‚考えてみれば、日常生活でプログラム
にいちばん近いものっていえばレシピなんだ
よ。ちがいといえば、レシピは人が従うもので、機械が自動的にやることじゃないってこと。確かにレシピにはソースコードとオブジェクトコードの差はないけれど、でもいちばん近いのは事実。そしてã
 ã‚Œã‚‚レシピを所有することは認められていない。
 <p>
-$B!!$G$bA*$P$l$?%"%J%m%8!<$O!"K\$H$N%"%J%m%8!<$G!"K\$K$OCx:n8"$,$"$k!#$=$7$F!"$J$<$=$l$,A*$P$l$?$N$+!)!!$=$l$O!"$3$NA*Br$r$9$k$3$H$G$$$A$P$sMx1W$rHo$k?M$,A*Br8"$rM?$(address@hidden;H$&?M$8$c$J$/$F!"=q$/?M$,7hDj$rG'$a$i$l$F!"$=$7$F$_$s$J$O$^$C$?$/$NMx8JE*$J7hCG$r$/address@hidden"address@hidden&$O=9$$$H$3$m$KJQ$o$C$F$7$^$C$?!#(B
+ でも選ばれたアナロジーは、本とのアナロジーで、本には著作権がある。そして、なぜそれが選ばれたのか? それは、この選択をすることでいちばん利益を被る人が選択権を与えられたからã
 ã€‚プログラム
を使う人じゃなくて、書く人が決定を認められて、そしてみんなはまったくの利己的な決断をくã
 
して、おかげでプログラミングの世界は醜いところに変わってしまった。
 <p>
-$B!!$\$/$,address@hidden&$KF~$C$F$-$?$H$-!"(B1971 $BG/$K(B MIT 
$B$GF/address@hidden"$\$/$?$A$N3+H/$7$?%W%m%0%i%`$,6&M-$5$l$J$$$+$b$J$s$F9M$($O!"address@hidden)!<%I$b(B
 CMU $B$b$_$s$J!"(BDIGITAL $B$G$5$($=$&address@hidden;~$N(B DIGITAL 
$B$+$i$N(B OS address@hidden/$b!"(BPDP-11 
$B%/%m%9%"%;%s%V%i$H$+$"$l$3$l%W%m%0%i%`$r$b$i$&$3$H$,$h$/$"$C$F!"$=$l$r%]!<%H$7$F(B
 ITS 
$B$GF0$/$h$&$K$7$F!"$$$m$s$J5!G=$b2C$($?!#$=$N%W%m%0%i%`$K$OHG8"address@hidden(B
+ ぼくがこの世界に入ってきたとき、1971 年に MIT で働きだ
したとき、ぼくたちの開発したプログラムがå…
±æœ‰ã•ã‚Œãªã„かもなんて考えは、議論すらされなかった。そしてスタンフォードも
 CMU もみんな、DIGITAL でさえそうだった。当時の DIGITAL 
からの OS は無料だった。それにぼくも、PDP-11 
クロスアセンブラとかあれこれプログラム
をもらうことがよくあって、それをポートして ITS 
で動くようにして、いろんな機能も加
えた。そのプログラムには版権はなかったんだ。
 <p>
-$B!!$3$$$D$,JQ$o$j$O$8$a$?$N$O!"$d$C$H(B 1970 
$BG/Be8eH>address@hidden/$O$\$/$i$N6&M-@:address@hidden/467c$7$?!#$\$/$?$A$O!"4j$o$/$PLr$KN)$D$3$H$r$d$C$F$$$F!"?M!9$,$=$l$r;H$($l$P9,$;address@hidden@$+$i:G=i$N(B
 EMACS $B$r3+H/$7$?$H$-!"(BMIT 
$B$N30$N?M$,$=$l$r;H$$$?$$$J!"address@hidden"$\$/$O$=$l$,(B 
EMACS$B!V%3%_%e!<address@hidden"address@hidden(B EMACS 
$B$r;H$&$K$O$=$N%3%_%e!<address@hidden"$=$l$O$D$^$j!"<+J,$,2~NI$r2C$(address@hidden,$"address@hidden&address@hidden"address@hidden(B
 EMACS $B$X$N2~NI$O$9$Y$F$\$/address@hidden&$9$l$P?7$7$$%P!<%8%g%s$N(B EMACS 
$B$K$=$l$rF~$l$F!"%3%_%e%K%F%#$NA40w$,address@hidden(B
+ こいつが変わりはじめたのは、やっと 1970 年代後半にå…
¥ã£ã¦ã‹ã‚‰ã®ã“となんだよ。ぼくはぼくらのå…
±æœ‰ç²¾ç¥žã«ã¯ã™ã”く感激した。ぼくたちは、願わくば役に立つことをやっていて、人ã€
…がそれを使えれば幸せだった。だから最初の EMACS 
を開発したとき、MIT 
の外の人がそれを使いたいな、と言い出したとき、ぼくはそれが
 EMACS「コミューン」のものだ、だから EMACS 
を使うにはそのコミューンの一員じゃなきゃだ
めで、それはつまり、自分が改良を加
えたらそれを貢献する責任があるんだという意味だ
よ、と言った。オリジナルの EMACS 
への改良はすべてぼくに送らなきゃならなかったんだ
。そうすれば新しいバージョンの EMACS にそれをå…
¥ã‚Œã¦ã€ã‚³ãƒŸãƒ¥ãƒ‹ãƒ†ã‚£ã®å…¨å“¡ãŒãƒ¡ãƒªãƒƒãƒˆã‚’得られる。
 <p>
-$B!!$G$b(BCMU$B$G(BSCRIBE$B$,3+H/$5$l$F!"$=$l$,2q<R$KGd$i$l$?$H$-$K!"$3$l$,GK2u$5$l$O$8$a$?!#$3$l$O$$$m$s$JBg3X$N$\$/address@hidden,$*$+$l$F!"6(NO$r$d$a$k$N$,$9$4$/LY$+$k$h$&$K$J$C$F!"6(NO$r?.$8$F$$$k$\$/$?$A$O!"6(NO$9$k$h$&address@hidden@$9$k:`NA$,$J$K$b$J$+$C$?!#$O$C$-$j$H!"0l?M$^$?0l?M$H!"?2JV$C$F<R2q$H$N6(NO$r$d$a$F!"$\$/$?$A$NCf$G$9$4$/NI?4$N6/address@hidden,6(address@hidden@$m$&!#$=$7$F$^$5$K$=$&$J$C$?$o$1!#(B
+ でもCMUでSCRIBEが開発されて、それが会社に売られたときに、これがç
 
´å£Šã•ã‚Œã¯ã˜ã‚ãŸã€‚これはいろんな大学のぼくたちみんなにとって大問題ã
 
った。みんなの目の前に大きな誘惑がおかれて、協力をやめるのがすごく儲かるようになって、協力を信じているぼくたちは、協力するように説得する材料がなにもなかった。はっきりと、一人また一人と、寝返って社会との協力をやめて、ぼくたちの中ですごく良心の強い人ã
 ã‘が協力を続けるだけになるだ
ろう。そしてまさにそうなったわけ。
 <p>
address@hidden&$O=9$$$H$3$m$K$J$C$A$c$C$?$h$M!#$_$s$J%7%K%+%k$G!"F1$8J,Ln$N?M$?$A$d%f!<%6$K0UCO0-$K$7$?$i$$$/$iLY$+$k$+$J!"$H9M$($F$k!#(B
+ プログラミングの世界は醜いところになっちゃったよね。みんなシニカルで、同じ分野の人たちやユーザに意地悪にしたらいくら儲かるかな、と考えてる。
 <p>
-$B!!$\$/$O!"%=%U%H$r=jM-$9$k$H$$$&479T$OJ*<AE*$K$bL5BL$,B?$/!"@:address@hidden<R2qE*$KM-32$G<address@hidden@$7$?$$!#$3$N(B
 3 
$B$D$O$9$Y$FAj8_$K4X78$7$"$C$F$k!#$J$<@:address@hidden@$($P!"$=$l$O%3%s%T%e!<%?$K?($l$k$"$i$f$k<R2q?M$K$+$+$o$k$+$i$G!"address@hidden(address@hidden>?M$KBP$7$FL5BL$NB?$$7A$G$d$i$;address@hidden@!#$=$7$F<+J,address@hidden"$7$+$b$=$l$,<+J,$N=u$+$k$h$j$bB>?M$K32$rM?$($k$[$&$,Bg$-$$$3$H$rCN$C$F$d$k$?$S$K!"address@hidden"$-$_$O%7%K%+%k$K$J$k$7$+$J$$!#$=$7$F$=$l$O!"0U?^E*$K<R2q$G9T$o$l$?:n6H$rL5BL$K$9$k$b$N$G$"$j!"<R2q$NB`GQ$r>7$$$F$$$k$,$f$($K<address@hidden(B
+ ぼくは、ソフトを所有するというæ…
£è¡Œã¯ç‰©è³ªçš„にも無駄が多く、精神面でも社会的に有害で邪悪なものã
 ã¨æ–­è¨€ã—たい。この 3 
つはすべて相互に関係しあってる。なぜ精神的に有害かと言えば、それはコンピュータに触れるあらゆる社会人にかかわるからで、その接触を明らかに他人に対して無駄の多い形でやらせるæ
…£è¡Œã ã‹ã‚‰ã ã€‚そして自分だ
けの利益のために何かをして、しかもそれが自分の助かるよりも他人に害を与えるほうが大きいことを知ってやるたびに、心の中でそんなことを正当化するために、きみはシニカルになるしかない。そしてそれは、意図的に社会で行われた作業を無駄にするものであり、社会の退廃を招いているがゆえに邪悪なんã
 ã€‚
 <p>
-$B!!$^$:!"%=%U%H%&%'%"$H$+!"$=$NB>0lHLE*$KLr$KN)$D>pJs$r=jM-$7$h$&$H$9$k$3$H$G!"$I$s$J32$,@address@hidden@$7$h$&!#$=$l$+$i$=$N479T$rJ[8n$9$k$h$&address@hidden@$7$F!"$3$N8=>]$H$I$&$d$C$FF.$($P$$$$$+!"$=$7$F$\$/$,$I$&$d$C$FF.$C$F$k$+$rOC$=$&!#(B
+ まず、ソフトウェアとか、その他一般的に役に立つ情å 
±ã‚’所有しようとすることで、どんな害が生じるかを説明しよう。それからそのæ
…
£è¡Œã‚’弁護するような議論に反論して、この現象とどうやって闘えばいいか、そしてぼくがどうやって闘ってるかを話そう。
 <p>
-$B!!(B<h3><a name="41">4.1 $B%=%U%H$N=jM-$H$=$N32(B</a></h3>
+ <h3><a name="41">4.1 ソフトの所有とその害</a></h3>
 <p>
-$B!!>pJs$N=jM-$H$$$&9M$(J}$O!"(address@hidden;0$D$N%l%Y%k$GJ*<address@hidden"$=$l$>$l$NJ*<AE*$J32$O!"BP1~$9$k@:address@hidden<$&!#(B
+ 情報の所有という考え方は、3つの異なるレベルで有害だ
。三つのレベルで物質的に有害だ
し、それぞれの物質的な害は、対応する精神的な害を伴う。
 <p>
-$B!!:G=i$N%l%Y%k$G$O!"$=$l$OC1$K!"MxMQ<T$,$=$N%=%U%H$r;H$&address@hidden"<B$O;H$&?M$,>/$J$/$F$b%W%m%0%i%_%s%0$N:n6H$,8:$k$o$1$8$c$J$$!#%W%m%0%i%`$NMxMQ$K$*CMCJ$,$D$$$?$i$3$l$O$_$s$J$,%W%m%0%i%`$r;H$o$J$$%$%s%;%s%F%#%V!"$H$$$&$N$O$3$N<j$N%=%U%H1#F?<T$I$b$,address@hidden";H$o$J$$%$%s%;%s%F%#%V$K$J$C$F!"address@hidden($P$"$k%W%m%0%i%`$K$*CMCJ$,$D$$$F!"address@hidden;H$&?M4V$N?t$,H>8:$7$A$c$C$?$i!"%W%m%0%i%`$NH>J,address@hidden:n6H$,!"H>J,$NIY$7$+$D$/address@hidden@$+$i!#(B
+ 最初のレベルでは、それは単に、利用者
がそのソフトを使うのをじゃまするんだ
けど、実は使う人が少なくてもプログラミングの作業が減るわけじゃない。プログラãƒ
 ã®åˆ©ç”¨ã«ãŠå€¤æ®µãŒã¤ã„たらこれはみんながプログラム
を使わないインセンティブ、というのはこの手のソフト隠
匿者どもが大好きなことばなんだ
けど、使わないインセンティブになって、これは無駄だ
。たとえばあるプログラムにお値段がついて、だ
から使う人間の数が半減しちゃったら、プログラム
の半分は無駄になったことになる。同じだ
けの作業が、半分の富しかつくりださなかったんだから。
 <p>
-$B!!$5$F<B$O!"%W%m%0%i%`$,;H$$$?$$?M$_$s$J$K=P2s$k$h$&$K$9$k$K$O!"FCJL$J$3$H$O2?$b$7$J$/$F$$$$!#$_$s$J%3%T!<$/$i$$<+J,$G$A$c$s$H$G$-$k$7!"address@hidden:$l$O$_$s$J$N<j$KF~$k!#%W%m%0%i%`$r=q$$$?$i!"$"$H$O$9$o$C$F$F!"$_$s$J$N$7$?$$$h$&$K$5$;$l$P$$$$$N!#$G$b!"$=$&address@hidden,0U?^E*$K%W%m%0%i%`$N6&M-$rK832$7$h$&$H$9$k!#$=$7$F$=$l$I$3$m$+!"$=$$$D$,K832$7$h$&address@hidden/$F!"$[$+$N?M$r<jEA$o$;$k$h$&05NO$+$1$k!#%f!<%6$,<address@hidden"$=$N?M$OMW$9$k$K$[$+$NCg4V$N%f!<address@hidden'$K$7$?$,$C$F!V$\$/$O$3$N%=%U%H$,address@hidden"$\$/$NNY?M$b$3$N%=%U%H$,address@hidden&!"address@hidden,;}$F$k$h$&$K$7$h$&!W$H$$$&$+$o$j$K!"$=$$$D$O$3$&address@hidden@!#!V$$$$$h!"$*$l$K$/$l$h!#NY?M$J$s$+CO9v$KBD$A$m!*!!$*$l$b$=$$$D$rNY?M$N<j$KF~$i$J$$$h$&$K$9$k$N$K<j$rB_$9$+$i$5!"$H$K$+$/$*$l$K$/$l!*!W!!$=$7$F$3$N@:address@hidden,!"@:address@hidden@!#$3$N!VNY?M$J$s$+CO9v$KBD$A$m!"(B<b>$B$3$N$*$l$K(B</b>$B%3%T!<$r$h$3$;!W$H$$$&BVEY$,!#(B
+ さて実は、プログラム
が使いたい人みんなに出回るようにするには、特別なことは何もしなくていい。みんなコピーくらい自分でちゃんとできるし、ã
 ã‹ã‚‰ã„ずれはみんなの手に入る。プログラム
を書いたら、あとはすわってて、みんなのしたいようにさせればいいの。でも、そうはならない。かわりにã
 ã‚Œã‹ãŒæ„å›³çš„にプログラムのå…
±æœ‰ã‚’妨害しようとする。そしてそれどころか、そいつが妨害しようとするã
 
けじゃなくて、ほかの人を手伝わせるよう圧力かける。ユーザが守秘契約にサインしたら、その人は要するにほかの仲間のユーザたちを売り渡したってことã
 ã€‚黄金律にしたがって「ぼくはこのソフトが好きだ
、ぼくの隣人もこのソフトが気に入るだろう、だ
から二人ともそれが持てるようにしよう」というかわりに、そいつはこう言ってるんã
 ã€‚「いいよ、おれにくれよ。隣人なんか地獄にå 
•ã¡ã‚ï¼ã€€ãŠã‚Œã‚‚そいつを隣人の手にå…
¥ã‚‰ãªã„ようにするのに手を貸すからさ、とにかくおれにくれ!」 そしてこの精神が、精神的に有害なんã
 ã€‚この「隣人なんか地獄にå 
•ã¡ã‚ã€<b>このおれに</b>コピーをよこせ」という態度が。
 <p>
-$B!!<address@hidden/$K2?$+$N%3%T!<$r$/$l$J$$$h$&$J?M$K=P$/$o$7$F$+$i!"address@hidden,$\$/$K$=$N<j$N$b$N$K%5%$%s$7$m$C$F9T$C$?$H$-$K$O!"$=$s$J$N$,$^$A$,$C$F$k$N$O$o$+$C$?!#<+J,$,$d$i$l$F$"$s$J$KJ"$,$?$C$?$3$H$r!"$3$N$\$/$,?M$K$d$l$k$o$1$J$$$G$7$g!#(B
+ 守秘契約とかなんとかにサインしたからってんでぼくに何かのコピーをくれないような人に出くわしてから、ほかのã
 
れかがぼくにその手のものにサインしろって行ったときには、そんなのがまちがってるのはわかった。自分がやられてあんなにè
…¹ãŒãŸã£ãŸã“とを、このぼくが人にやれるわけないでしょ。
 <p>
-$B!!$G$b$3$l$O!"32$NCf$G:G=i$N%l%Y%k$K$9$.$J$$!#BhFs$N%l%Y%k$O!"?M$,%W%m%0%i%`$rJQ$(address@hidden@$C$F!";H$$$?$$?M$_$s$J$K40A4$K$"$C$?%W%m%0%i%`$J$s$F$J$$$b$N!#?M$ONAM}$K<j$r2C$($k$G$7$g!#1v$r8:$i$9$H$+!"$A$g$C$H%T!<%^%s$rF~$l$k$H$+$5!"F1$8$h$&$K!"address@hidden<+J,address@hidden<jD>$7$,address@hidden(B
+ でもこれは、害の中で最初のレベルにすぎない。第二のレベルは、人がプログラãƒ
 ã‚’変えたいときに生じる。だ
って、使いたい人みんなに完全にあったプログラム
なんてないもの。人は料理に手を加
えるでしょ。塩を減らすとか、ちょっとピーマンをå…
¥ã‚Œã‚‹ã¨ã‹ã•ã€åŒã˜ã‚ˆã†ã«ã€ãƒ—ログラムだ
って自分のほしい効果を得るには手直しがいるんだ。
 <p>
-$B!!$5$F!"%=%U%H=jM-<T$?$A$O!"?M$,%W%m%0%i%`$rJQ$($h$&$,$I$&$7$h$&$,!"<B$O$<$s$<address@hidden"address@hidden"Cf$NL\E*$N$?$a$K$O!"?M$K$=$s$J$3$H$r$5$;$J$$$[$&$,ET9g$,$$$$!#%=%U%H$,address@hidden@$H!"%=!<%9$O<j$KF~$i$J$$$7!"JQ$($i$l$J$$$7!"$*$+$2$G%W%m%0%i%^$K$H$C$F$O$9$4$/L5BL$J:n6H$,A}$($F!"%f!<%6$b$$$i$$$i$,$D$N$k!#$?$H$($P!"2?%v7n$b6d9T$G%W%m%0%i%^$d$C$F!"?7$7$$%W%m%0%i%`$r=q$$$F$?M'address@hidden@$1$I!"$=$l$K$O$[$H$s$IBg>fIW$J;THN%=%U%H$,$"address@hidden"$G$b$+$l$i$N5a$a$k$b$N$=$N$b$N$C$F$o$1$8$c$J$/$F!"$=$N:9$,$"$k$*$+$2$G!"$=$N;THN%=%U%H$O;address@hidden,address@hidden($kO+NO$O$[$s$N$o$:address@hidden@$m$&$M!#$G$b$=$N%W%m%0%i%`$N%=!<%9$,$J$+$C$?$+$i!"address@hidden<%m$+$i$O$8$a$k$7$+$J$/$F!"address@hidden/$5$s;E;address@hidden&$G$3$s$JIw$K;~4V$rL5BL$K$7$F$$$k%W%m%0%i%^$,!"$I$N$/address@hidden>CN$k!"address@hidden(B
+ さて、ソフト所有者たちは、人がプログラム
を変えようがどうしようが、実はぜんぜん気にしてないんã
 ã‘れど、ただ
連中の目的のためには、人にそんなことをさせないほうが都合がいい。ソフトが独å
 ã‚½ãƒ•ãƒˆã ã¨ã€ã‚½ãƒ¼ã‚¹ã¯æ‰‹ã«å…
¥ã‚‰ãªã„し、変えられないし、おかげでプログラマにとってはすごく無駄な作業が増えて、ユーザもいらいらがつのる。たとえば、何ヶ月も銀行でプログラマやって、新しいプログラãƒ
 ã‚’書いてた友だちの話なんだ
けど、それにはほとんど大丈夫な市販ソフトがあったんだ
けれど、でもかれらの求めるものそのものってわけじゃなくて、その差があるおかげで、その市販ソフトは使いものにならなかったんã
 ã€‚そこの部分だけ変える労力はほんのわずかですんだだ
ろうね。でもそのプログラム
のソースがなかったから、それは不可能だ
った。彼女はゼロからはじめるしかなくて、だ
からたくさん仕事を無駄にした。世界でこんな風に時間を無駄にしているプログラマが、どのくらいいるのかは神のみぞ知る、ã
 ã‚ˆã­ã€‚
 <p>
-$B!!$=$l$H!"$"$k%=%U%H$,$=$N>l$7$N$.$K$O;H$($k$1$l$I!"$G$b$7$C$/$j$3$J$$$3$H$,$"$k!#$?$H$($P(BMIT$B$K$O$8$a$F%0%i%U%#%C%/%W%j%s%?$,$-$?$H$-!"%=%U%H$O<+J,$G=q$$$F!"address@hidden($P<+J,$N%8%g%V$,0u:~$7=*$o$C$?$i%a%C%;!<%8$rAw$C$F$/$l$k$H$+!"<+J,$N%8%g%V$,%-%e!<$KF~$C$F$k;~$K;address@hidden($F$/$l$k$H$+!"$[$+$K$b$$$m$$$m$[$7$$$h$&$J5!G=$rF~$l$?!#$=$N8e!"$b$C$H$:$C$H$$$$%0%i%U%C%/%W%j%s%?$,F~$C$F!":G=i$N%l!<address@hidden@$1$I!"$G$b$=$N%=%U%H$O(BXerox$B$N$b$N$G!"$=$l$OJQ$($i$l$J$+$C$?!#$G!"$=$&$$$&5!G=$H$+$bF~$l$F$/$l$J$$$7!"$\$/$?$A$,B-$9$3$H$b$G$-$J$+$C$?$7!"address@hidden>l$7$N$.!W$NBeJ*$G2fK}$7$J$-$c$J$i$J$+$C$?!#<+J,$?$A$K$O!"$=$l$r$J$*$90U;V$b$d$k5$$bG=NO$b==J,$K$"$k$3$H$,$o$+$C$F$k$N$K!"$=$l$,5v$5$l$F$J$$$C$F$N$O!"$9$4$/address@hidden):address@hidden(B
+ それと、あるソフトがそのå 
´ã—のぎには使えるけれど、でもしっくりこないことがある。たとえばMITにはじめてグラフィックプリンタがきたとき、ソフトは自分で書いて、いろいろすてきな機能をつけたんã
 
。たとえば自分のジョブが印刷し終わったらメッセージを送ってくれるとか、自分のジョブがキューにå
…
¥ã£ã¦ã‚‹æ™‚に紙切れになったら教えてくれるとか、ほかにもいろいろほしいような機能をå
…¥ã‚ŒãŸã€‚その後、もっとずっといいグラフックプリンタがå…
¥ã£ã¦ã€æœ€åˆã®ãƒ¬ãƒ¼ã‚¶ãƒ—リンタだったんだ
けど、でもそのソフトはXeroxのもので、それは変えられなかった。で、そういう機能とかもå
…
¥ã‚Œã¦ãã‚Œãªã„し、ぼくたちが足すこともできなかったし、ã
 ã‹ã‚‰ã€Œãã®å ´ã—のぎ」の代物で我æ…
¢ã—なきゃならなかった。自分たちには、それをなおす意志もやる気も能力も十分にあることがわかってるのに、それが許されてないってのは、すごくいらã
 ãŸã—かったね。これって妨害工作だよ。
 <p>
-$B!!$=$l$H!"%3%s%T%e!<%?$r;H$C$F$k$N$K!"%3%s%T%e!<%?$O$o$1$o$+$i$s!";EAH$_$,address@hidden&?M$,$?$/$5$s$$$k!#$&$s!"$=$j$c$o$+$j$C$3$J$$$h$M!#<+J,$N;H$C$F$k%=%U%H$,address@hidden@5$7$$=q$-J}$r3X$VM#0l$NJ}K!!"$=$7$F%W%m%0%i%`$,$I$&F0$$$F$k$N$+$rCN$kM#0l$NJ}K!$O!"%=!<%9%3!<address@hidden(B
+ それと、コンピュータを使ってるのに、コンピュータはわけわからん、仕組みがわからんと言う人がたくさんいる。うん、そりゃわかりっこないよね。自分の使ってるソフトが読めないんã
 ã‚‚ん。プログラム
の正しい書き方を学ぶ唯一の方法、そしてプログラム
がどう動いてるのかを知る唯一の方法は、ソースコードを読むことなんã
 ã‚‚ん。
 <p>
address@hidden;W$&address@hidden"%3%s%T%e!<address@hidden;6q$H$7$F$7$+9M$($J$$MxMQ<T$C$F$N$O!"<B$O%=!<%9%3!<%I$rHkL)$K$7$H$/=,47$N$;address@hidden"%K%o%H%j$+Mq$+<0$N0-=[4D$J$N$+$b$7$l$J$$$h!#(B
+ だから思うんだけど、コンピュータをただの道å…
·ã¨ã—てしか考えない利用者
ってのは、実はソースコードを秘密にしとく習æ…
£ã®ã›ã„で生まれた、ニワトリか卵か式の悪循環なのかもしれないよ。
 <p>
-$B!!$5$F$3$N<o$NJ*<AE*32$KH<$&@:address@hidden"<+J,$5$($h$1$l$P$H$$$&@:address@hidden@!#?M$,D9;~4V%3%s%T%e!<%?%7%9%F%`$r;H$C$F$k$H!"$=$N%3%s%T%e!<address@hidden,=;$^$&ET;T$K$J$k!#$A$g$&$I<+J,$N2H$d2H6q$NG[CV$,!"$=$NCf$G$9$`$\$/address@hidden,Dj$9$k$h$&$K!"$\$/$?$A$N;H$&%3%s%T%e!<%?%7%9%F%`$b$=$&$G!"<+J,$?$A$K$"$&$h$&$K%3%s%T%e!<%?%7%9%F%`$rJQ$($i$l$J$1$l$P!"$\$/address@hidden<B$OB>?M$K;YG[$5$l$F$k$3$H$K$J$k!#$=$7$F$3$l$K5$$,$D$$$??M$O!"$"$k0UL#$G%b%i%k$,Dc2<address@hidden&$$$&$N$rJQ$($h$&address@hidden"$:$C$H$3$&address@hidden&$N$5$(address@hidden/;~4V$r$D$.9~$s$G!D!D$3$l$,address@hidden/$,$I$C$+$X9T$3$&!"$=$7$F$b$&$3$N$3$H$O9M$($J$$$h$&$K$7$h$&!W!!8xFA?4$C$F$N$b$,$"$k$N$KJ*;v$N2~A1$,5v$5$l$J$$$H!"7k2L$H$7$F$3$N<j$N@:address@hidden"$3$N<j$N$d$k5$$N$J$5$,@address@hidden(B
+ さてこの種の物質的害に伴う精神的な害は、自分さえよければという精神ã
 ã€‚人が長時間コンピュータシステム
を使ってると、そのコンピュータシステム
の設定はその人が住まう都市になる。ちょうど自分の家や家å
…·ã®é…
ç½®ãŒã€ãã®ä¸­ã§ã™ã‚€ã¼ããŸã¡ã®ç”Ÿæ´»ã‚’規定するように、ぼくたちの使うコンピュータシステãƒ
 ã‚‚そうで、自分たちにあうようにコンピュータシステム
を変えられなければ、ぼくたちの生活は実は他人に支é…
ã•ã‚Œã¦ã‚‹ã“とになる。そしてこれに気がついた人は、ある意味でモラルが低下するんã
 ã€‚「こういうのを変えようとしても無駄だ
よ、ずっとこうやってひどいままなんだ
から。不満をいうのさえ無駄だ
。とにかく時間をつぎ込んで……これがすんだ
らぼくがどっかへ行こう、そしてもうこのことは考えないようにしよう」 å
…
¬å¾³å¿ƒã£ã¦ã®ã‚‚があるのに物事の改善が許されないと、結果としてこの手の精神、この手のやる気のなさが生じるんã
 ã€‚
 <p>
-$B!!Bh;0$N%l%Y%k$N32$O!"%=%U%H%&%'%"3+H/<T<+?H$N4V$N$d$j$H$j!#$"$i$f$kCN<1J,Ln$O!"?M$,B>address@hidden>address@hidden>e$2$i$l$k$H$-$K$$$A$P$s$O$d$/?JJb$9$k!"$G$b>pJs$N=jM-8"$O!"$^$5$KB>?M$,$=$&$7$J$$$h$&$K$9$k$?$a$K$D$/$i$l$F$k!#$b$7?M$,B>address@hidden@Q$_>e$2$i$l$?$i!"$=$N=jM-8"$O$O$C$-$j$7$J$/$J$C$F!"address@hidden"$=$NJ,Ln$X$N?75,;2F~$,%<%m$+$i$O$8$a$k$7$+$J$$$h$&$K<j$rBG$C$F!"$*$+$2$G$=$NJ,Ln$N?JJb$,BgI}$K8e$l$k!#(B
+ 第三のレベルの害は、ソフトウェア開発者
自身の間のやりとり。あらゆる知識分野は、人が他人の成果の上に積み上げられるときにいちばんはやく進歩する、でもæƒ
…å 
±ã®æ‰€æœ‰æ¨©ã¯ã€ã¾ã•ã«ä»–人がそうしないようにするためにつくられてる。もし人が他人の成果に積み上げられたら、その所有権ははっきりしなくなって、ã
 ã‹ã‚‰ã¿ã‚“な、その分野への新規参å…
¥ãŒã‚¼ãƒ­ã‹ã‚‰ã¯ã˜ã‚ã‚‹ã—かないように手を打って、おかげでその分野の進歩が大å¹
…に後れる。
 <p>
address@hidden;;%=%U%H$,JL!9$N2q<R$+$i$?$/$5$s=P$F$k$1$I!"$_$s$J$=$l$,$=$l$^$G$I$&$d$C$F$-$?$N$+8+$F$_$k$H$$$&287C$J$7$K$d$C$F$k!#$=$j$c3N$+$K!":G=i$K=q$+$l$?I=7W;;%=%U%H$O40`z$8$c$J$+$C$?!#$?$V$s!"0lIt$N%3%s%T%e!<%?$G$7$+F0$+$J$/$F!"address@hidden"$=$l$rItJ,E*$K=q$-49$($?$$?M$,=P$F$/$kM}M3$O$$$m$$$m$"$C$?$m$&!#$G$b!"<+J,address@hidden>$;address@hidden":n6HNL$O$:$C$H>/$J$/$F:address@hidden"$kItJ,$r$h$/$9$kJ}K!$O8+$($k$+$b$7$l$J$$$1$l$I!"F1$8%7%9%F%`$NJL$NItJ,$J$s$+$<$s$<$s%^%7$K$G$-$J$$$+$b$7$l$J$$!#$$$d!"F1$8$/address@hidden"$($i$/6lO+$9$k$+$b$7$l$J$$!#<+J,$N9%$-$J$H$3$m$r$H$C$F!"<+J,$,$R$i$a$$$?ItJ,address@hidden;$?$i!"$"$i$f$kLL$GA0$h$jM%$l$?%7%9%F%`$,<j$KF~$C$F!"$^$C$?$/?7$7$$%7%9%F%`$r=q$/$h$j$b$:$C$H:n6H$O8:$k!#$=$j$c%7%9%F%`$r%<%m$+$i=q$-D>$9$H$$$$$3$H$b$"$k$N$O$_$s$JCN$C$F$k!#$G$b$=$l$O!"8E$$$N$r$^$:address@hidden(B
+ だからわかるでしょ。表計算ソフトが別々
の会社からたくさん出てるけど、みんなそれがそれまでどうやってきたのか見てみるという恩恵なしにやってる。そりゃ確かに、最初に書かれた表計算ソフトは完璧じゃなかった。たぶん、一部のコンピュータでしか動かなくて、なにかをするときにもいちばんいい方法ではやらなかった。ã
 
から、それを部分的に書き換えたい人が出てくる理由はいろいろあったろう。でも、自分の改善したいところã
 ã‘を書き直せばいいんだ
ったら、作業量はずっと少なくて済んだよね。システム
のある部分をよくする方法は見えるかもしれないけれど、同じシステãƒ
 
の別の部分なんかぜんぜんマシにできないかもしれない。いや、同じくらいのレベルに達するのã
 
って、えらく苦労するかもしれない。自分の好きなところをとって、自分がひらめいた部分ã
 ã‘をやりなおせたら、あらゆる面で前より優れたシステム
が手に入って、まったく新しいシステム
を書くよりもずっと作業は減る。そりゃシステム
をゼロから書き直すといいこともあるのはみんな知ってる。でもそれは、古いのをまず読んでからの話ã
 ã€‚
 <p>
address@hidden&$N?M$?$A$O!";~4V$r$?$/$5$sL5BL$K$9$kJ}K!$rJT$_=P$7$?$o$1$G!"$*$+$2$GI=LL>e$O!"K\Ev$KI,MW$J$N$h$j$b$:$C$H$?$/$5$s$N%W%m%0%i%^$,I,MW$K$J$C$?$h$&$K8+$($k!#$J$<%W%m%0%i%^ITB-$J$s$F$3$H$,address@hidden)!!CNE*=jM-8"$N$*$+$2$G!"%W%m%0%i%^$?$A$O<+J,$N$d$k;E;v$NH>J,$rL5BL$K$9$k$h$&$J;address@hidden@$+$i$_$s$J$,CNE*=jM-8"%7%9%F%`$r;X$5$7$F!V$[$i!"address@hidden";:6H$,$3$s$J$K$G$+$/address@hidden&$1$I!"$=$l$,>address@hidden"<B$O$_$s$J$,$*6b$H;~4V$r$?$/address@hidden@8;:@-$r>e$2$kOC$r$9$k$H$-$G$b!"9bEY$J%D!<%k$,$I$&$N$3$&$N$H$$$($P!"O"Cf$O4n$V$1$I!"$G$b%W%m%0%i%^$N$d$C$F$k$h$1$$$J$3$H$r:address@hidden;:@-$r$"$2$k$C$FOC$K$J$k$H!"$H$?$s$KH?BP$9$k!#$=$&$J$C$?$i8[$o$l$F$k%W%m%0%i%^$N?t$,8:$k$+$i$C$F!#$3$l$C$F$A$g$C$H!"J,Nv>address@hidden@$H;W$o$J$$!)(B
+ だ
からプログラミング業界の人たちは、時間をたくさん無駄にする方法を編み出したわけで、おかげで表面上は、本当にå¿
…要なのよりもずっとたくさんのプログラマが必
要になったように見える。なぜプログラマ不足なんてことが言われるのか? 知的所有権のおかげで、プログラマたちは自分のやる仕事の半分を無駄にするような仕組みにしちゃったからã
 ã‚ˆã€‚だからみんなが知的所有権システム
を指さして「ほら、こんなに雇用を生み出してる、産業がこんなにでかくなってるじゃないか」なんて言うけど、それが証明してるのは、実はみんながお金と時間をたくさん無駄にしてるってことなんã
 
。プログラマの生産性を上げる話をするときでも、高度なツールがどうのこうのといえば、連中は喜ぶけど、でもプログラマのやってるよけいなことを削ることで生産性をあげるって話になると、とたんに反対する。そうなったら雇われてるプログラマの数が減るからって。これってちょっと、分裂症じみた議論ã
 ã¨æ€ã‚ãªã„?
 <p>
-$B!!$=$7$F$3$N%l%Y%k$NJ*<AE*32$KBP1~$9$k@:address@hidden"2J3XE*$J6(NO@:address@hidden@address@hidden/6/$/$F!"@oAh$7$F$k9qF1;N$N2J3X<T$G$9$i6(NO$rB3$1$F$?!"<+J,$?$A$,$d$C$F$k$N$,@oAh$H$O2?$K$b4X78$J$/$F!"?MN`$ND94|address@hidden,$o$+$C$F$?$+$i!#:G6a$8$c$_$s$J!"$b$&?MN`$ND94|E*$J%a%j%C%H$N$3$H$J$s$+5$$K$b$7$J$$!#(B
+ そしてこのレベルの物質的害に対応する精神的な害は、科学的な協力精神に及ぼす害ã
 ã€‚これは昔はすごく強くて、戦争してる国同士の科学者
ですら協力を続けてた、自分たちがやってるのが戦争とは何にも関係なくて、人類の長期的なメリットのためなんã
 
ってのがわかってたから。最近じゃみんな、もう人類の長期的なメリットのことなんか気にもしない。
 <p>
-$B!!%W%m%0%i%`$NMxMQ$r$8$c$^$9$k$N$,$I$s$J$3$H$+M}2r$9$k$K$O!"2>$K$3$3$K%5%s%I%$%C%A$,$"$C$F!"?)$Y$i$l$k$1$l$I!"?)$Y$F$b$J$/$J$i$J$$$H$7$h$&!#$"$J$?$,?)$Y$F!"JL$N?M$,$=$NF1$8%5%s%I%$%C%A$r?)$Y$F!"2?EY$G$b?)$Y$F!"address@hidden,$"$k!#(B
+ プログラム
の利用をじゃまするのがどんなことか理解するには、仮にここにサンドイッチがあって、食べられるけれど、食べてもなくならないとしよう。あなたが食べて、別の人がその同じサンドイッチを食べて、何度でも食べて、それでも毎回もとのと同じã
 ã‘栄養がある。
 <p>
-$B!!$=$l$G$d$k$Y$-$$$A$P$s$$$$$3$H!"$3$N%5%s%I%$%C%A$r;H$C$F2?$r$9$Y$-$+$H$$$($P!"$*$J$+$N$9$$$??M$?$A$,$$$k$H$3$m$K$=$l$r;}$C$F$/address@hidden/B?$/$N8}$K$=$l$rM?$($F!"$J$k$Y$/B?$/$N?M$NJ"$rK~$?$9$h$&address@hidden)$Y$k$3$H$K!"address@hidden,$J$/$F?)$Y$i$l$J$$?M$,=P$F$/$k$+$i$G!"$=$&$7$?$i$=$l$OL5BL$K$J$k!#(B
+ それでやるべきいちばんいいこと、このサンドイッチを使って何をすべきかといえば、おなかのすいた人たちがいるところにそれを持ってくことã
 
。なるべく多くの口にそれを与えて、なるべく多くの人のè…
¹ã‚’満たすようにすることだ
。このサンドイッチを食べることに、値段なんか絶対つけちゃいけない。値段をつけたら金がなくて食べられない人が出てくるからで、そうしたらそれは無駄になる。
 <p>
address@hidden"$G$b$b$C$H$$$$$b$N$G!"$J$<$+$H$$$($PF1;~$K$$$m$s$J$H$3$m$K$"$C$FF1;~$K?)$Y$i$l$F!"$I$s$I$sJL$N?M$K;H$C$F$b$i$($k$+$i!#$3$N%5%s%I%$%C%A$,$_$s$J$r$"$i$f$k>l=j$G1J1s$K?)$Y$F$b$i$($k$N$K!"address@hidden,$=$l$r<+J,address@hidden;$$$G!"$=$l$,<address@hidden(B
+ プログラム
ってのはこのサンドイッチみたいなものなんだ
けれど、でももっといいもので、なぜかといえば同時にいろんなところにあって同時に食べられて、どんどん別の人に使ってもらえるから。このサンドイッチがみんなをあらゆるå
 ´æ‰€ã§æ°¸é ã«é£Ÿã¹ã¦ã‚‚らえるのに、だ
れかがそれを自分の所有物だ
と決めたせいで、それが実現できないでいるんだ。
 <p>
-$B!!(B<h3><a name="42">4.2 address@hidden(B</a></h3>
+ <h3><a name="42">4.2 ソフト所有肯定論への反駁</a></h3>
 <p>
-$B!!$5$F!"%W%m%0%i%`$r=jM-$G$-$k$H?.$8$F$k?M$?$A$O!"$U$D$&address@hidden(address@hidden;}$A=P$9!#:address@hidden"!V$*$l$,address@hidden"$*$l$N:2$N?=$7;address@hidden"$o$,?4!"$o$,:2$,$3$3$K$O$3$b$C$F$k!#$=$l$rB>?M$,C%$$<h$k$J$s$F!)address@hidden"$*$l$N$*$l$N(B<b>$B$*$l$N$)$C!*(B</b>$B!W$H$$$&$d$D!#$G$bIT;W5D$J$3$H$K!"$3$&$$$&address@hidden&?M$N$[$H$s$I$O!"address@hidden<address@hidden&address@hidden(B
+ さて、プログラム
を所有できると信じてる人たちは、ふつうはそれを正当化するのに2つの議論を持ち出す。最初の議論は、「おれが書いたんã
 ã€ãŠã‚Œã®é­‚の申し子だ
、わが心、わが魂がここにはこもってる。それを他人が奪い取るなんて? どこまでいってもこいつはおれのもんã
 
、おれのおれの<b>おれのぉっ!</b>」というやつ。でも不思議なことに、こういうこと言う人のほとんどは、そのソフトは勤めå
…ˆã®ä¼šç¤¾ã®ã‚‚のだっていう合意書にサインしてるんだよね。
 <p>
address@hidden"4JC1$K<+J,$r$4$^$+$7$F2?$+$,address@hidden;W$$$3$s$G$7$^$(address@hidden;W$&!#F1$8$/$i$$4JC1$K!"$=$s$J$N$<$s$<$sBg;v$8$c$J$$$H<+J,address@hidden@address@hidden(B
+ だからこれって、簡単に自分をごまかして何かが重要だ
と思いこんでしまえることの一つだ
と思う。同じくらい簡単に、そんなのぜんぜん大事じゃないと自分を説得することもできるんã
 ã€‚
 <p>
-$B!!$3$&$$$&address@hidden;H$C$F!"?M$,$3$N%W%m%0%i%`$rJQ$($k$d$j$+$?$^$G%3%s%H%m!<%k$9$k8"address@hidden@$l$K$b$o$?$7$N7]=Q:nIJ$r$a$A$c$/$A$c$K$5$;$F$J$k$b$N$+!W$C$F!#$8$c$"!"$3$l$+$i$D$/$m$&$H;W$C$F$kNAM}$rH/address@hidden,!"$=$l$O$=$N?M$N7]=Q:address@hidden;EJ}$r$I$&$3$&$9$k8"Mx$,$"$C$?$i$I$&$J$k$H;W$&!)!!1v$r;H$o$J$$$h$&$K$7$h$&$H;W$C$F$b!"address@hidden@%a!"$o$?$7$,address@hidden@$+$i!"address@hidden@%a!*!W!V$G$b!"$\$/$O0e<T$K1v$r$H$a$i$l$F$k$s$G$9$h!"$I$&$7$^$7$g$&!)!W(B
+ こういう人はこの論法を使って、人がこのプログラム
を変えるやりかたまでコントロールする権利を要求するんã
 ã€‚「だ
れにもわたしの芸術作品をめちゃくちゃにさせてなるものか」って。じゃあ、これからつくろうと思ってる料理を発明した人が、それはその人の芸術作品ã
 
からってきみの料理の仕方をどうこうする権利があったらどうなると思う? 塩を使わないようにしようと思っても、そいつは「ダメダメ、わたしがこの料理を設計したんã
 ã‹ã‚‰ã€ã“れはこんだ
け塩をいれなきゃダメ!」「でも、ぼくは医者
に塩をとめられてるんですよ、どうしましょう?」
 <p>
address@hidden"%W%m%0%i%`$r;H$C$F$k?M$N$[$&$,!"$=$N8=>address@hidden>@\$O$M$+$($C$F$/$k$1$I!"$=$l$r=q$$$??M$K$O!"0l<o$N$4$/Cj>]E*$J4X78$7$+$J$$!#$7$?$,$C$F!"?M!9$K<+J,<+?H$N$/$i$7$r$G$-$k8B$j9%$-$J$h$&$K$5$;$k$H$$$&<q;]$+$i$7$F!"$=$&$$$&$3$H$r7h$a$k$N$O$=$N%f!<%6$G$"address@hidden(B
+ 明らかに、プログラムを使ってる人のほうが、その現å 
´ã«è¿‘いんだ。プログラム
の利用はその人に直接はねかえってくるけど、それを書いた人には、一種のごく抽象的な関係しかない。したがって、人ã€
…
に自分自身のくらしをできる限り好きなようにさせるという趣旨からして、そういうことを決めるのはそのユーザであるべきなんã
 ã€‚
 <p>
-$B!!O"address@hidden"7P:address@hidden,address@hidden@$&$o$1$G!"$3$3$K$O3N$+$K%[%s%H$NLdBj$,$A$g$C$H$O$"$k!#$G$bO"Cf$N$$$&$3$H$N$+$J$j$NItJ,$O:.Mp$7$F$k!#$=$7$F$I$3$,:.Mp$7$F$k$+$C$F$$$&$H!"!V$?$/$5$s$N?M$,%W%m%0%i%_%s%0$9$k$h$&$K$7$?$$$J$i!"$[$+$N<address@hidden/$F$b$$$$$h$&$J;EAH$_$r$D$/$i$J$-$c!W$H$$$&$N$H!"address@hidden@!"%W%m%0%i%_%s%0$G6b;}$A$K$J$i$J$-$c!W$H$$$&$N$H$G$O!"OC$,$^$k$C$-$7$A$,$&address@hidden@address@hidden">/$J$/$H$b:G6a$N%"%a%j%+$N%W%m%0%i%^$,$b$i$C$F$k$h$&$J5kNA$r$b$i$&$C$F$N$H$G$O!"OC$,$<$s$<$s$A$,$&!#$_$s$J$,address@hidden&$N$O!V$8$c$"$*$l$O$I$&address@hidden)address@hidden"<B:]$K$O!V$3$$$D$O?)$($k$+!W$C$F$3$H$8$c$J$/$F!V$3$$$D$O<w;J(B<font
 
size=-1>$B!JLuCm!'9b$/$F9b5i$J$<$$$?$/$JHS$H$$$&0UL#!K(B</font>$B$,?)$($k$+!W$C$F$3$H$G!"!V1+$D$f$,$7$N$2$k$+!W$C$F$3$H$8$c$J$/address@hidden,Gc$(address@hidden(B
+ 連中の二番目の議論は、経済的なものだ。「プログラム
を書いても報é…
¬ãŒå¾—られないじゃないか」と言うわけで、ここには確かにホントの問題がちょっとはある。でも連中のいうことのかなりの部分は混乱してる。そしてどこが混乱してるかっていうと、「たくさんの人がプログラミングするようにしたいなら、ほかの手段で生計をたてなくてもいいような仕組みをつくらなきゃ」というのと、その一方では「いまのシステãƒ
 ã˜ã‚ƒãªãã‚ƒãƒ€ãƒ¡ã 
、プログラミングで金持ちにならなきゃ」というのとでは、話がまるっきしちがうってこと。生きてけるã
 
けの賃金を得るのと、少なくとも最近のアメリカのプログラマがもらってるような給料をもらうってのとでは、話がぜんぜんちがう。みんながいつも言うのは「じゃあおれはどうやって喰ってけばいいんã
 ï¼Ÿã€ã£ã¦ã“とだ
けれど、実際には「こいつは食えるか」ってことじゃなくて「こいつは寿司<font
 
size=-1>(訳注:高くて高級なぜいたくな飯という意味)</font>が食えるか」ってことで、「雨つゆがしのげるか」ってことじゃなくてホントに言いたいのは「高級マンションが買えるか」ってことなんã
 ã€‚
 <p>
-$B!!$$$^$NJ}<0$O!":address@hidden/$KEj;q$7$h$&$H;address@hidden/$r%5%]!<address@hidden&address@hidden<B$O!"$[$s$N(B
 10 $BG/$H$+(B 15 
$BG/$H$+A0$N$4$/:G6a$^$G$O!"%=%U%H3+H/$r$[$+$NJ}K!$G%5%]!<%H$9$k$N$,$"$?$j$^$(address@hidden@!#$?$H$($P(B
 DIGITAL $B$N(B OS $B$O(B 1970 
$BG/Be=i4|$^$G%U%j!<address@hidden"%U%j!<$N(B OS $B$C$F$N$O!"(B70 
$BG/Be=i4|$G$9$i!"$A$c$s$H5kNA$b$i$C$F$k?M$,3+H/address@hidden)$D%W%m%0%i%`$NB?$/$OBg3X$G3+H/$5$l$F$k!#:address@hidden&$$$&%W%m%0%i%`$OGd$i$l$k$3$H$,B?$$$1$I!"(B15
 $BG/A0$J$i$U$D$&$O%U%j!<$G!"$=$l$G$b$_$s$J5kNA$,$b$i$(address@hidden(B
+ いまの方式は、最大限の儲けを得るためにソフト開発に投資しようと思った人の選んã
 ã‚·ã‚¹ãƒ†ãƒ ã€‚システム
開発をサポートするための唯一の方法だ
からこうなってるわけじゃないんだ。実は、ほんの 10 
年とか 15 
年とか前のごく最近までは、ソフト開発をほかの方法でサポートするのがあたりまえã
 ã£ãŸã‚“だ。たとえば DIGITAL の OS は 1970 
年代初期までフリーだったけれど、フリーの OS 
ってのは、70 
年代初期ですら、ちゃんと給料もらってる人が開発してたんã
 ã‚ˆã€‚役に立つプログラム
の多くは大学で開発されてる。最近だ
とこういうプログラムは売られることが多いけど、15 
年前ならふつうはフリーで、それでもみんな給料がもらえてたんã
 ã€‚
 <p>
address@hidden"$3$l$OL58B%5%s%I%$%C%A$H$+!"F;$H$+$_$?$$$J$b$N$G!"0l2s$O$D$/address@hidden@$1$I!"0lEY$D$/$C$?$i$b$&$=$l$r2?2s;H$*$&$,4X78$J$/$F!";H$&$N$K%3%9%H$b$+$+$s$J$$$J$i!";H$&$N$KCMCJ$J$s$+$D$1$J$$$[$&$,0lHLE*$K$$$$!#$=$7$F!"$$$^$G$b$\$/$?$A$,$D$/$C$F!":n$C$??M$K6b$rJ'$&$h$&$J$=$&$$$&$b$N$C$F$N$O$?$/$5$s$"$k!#$?$H$($P$=$3$i$NF;$,$=$&address@hidden'$o$:$KF;$rB$$C$F$/address@hidden;$r$D$/$k$N$O%W%m%0%i%_%s%0$H$A$,$C$F%/%j%(%$%F%#%V$8$c$J$$$7!"3Z$7$/$b$J$$!#$G$b!"@$$NCf$K$O$?$/$5$sF;$,$"$C$F!"$=$l$K;YJ'$&address@hidden&$,!"$:$C$H$$$$$h$M!#$G$b$3$&$$$&address@hidden;$r$D$/$i$;$F>!<j$KNA6b=j$r$D$1$5$;$F!"393Q$r6J$,$k$?$S$KDL9TNA$r;YJ'$&$h$&$K$7$h$&!#$=$7$F$$$$>l=j$KF;$rI_$$$?4k6H$OLY$+$C$F!"$=$&$G$J$$$N$OE];:$9$k$h$&$K$7$h$&!W(B
+ プログラムみたいなものだ
と、これは無限サンドイッチとか、道とかみたいなもので、一回はつくらなきゃダメã
 
けど、一度つくったらもうそれを何回使おうが関係なくて、使うのにコストもかかんないなら、使うのに値段なんかつけないほうが一般的にいい。そして、いまでもぼくたちがつくって、作った人に金を払うようなそういうものってのはたくさんある。たとえばそこらの道がそうã
 ã‚ˆã­ã€‚お金を払わずに道を造
ってくれる人を見つけるのは無理だ
。道をつくるのはプログラミングとちがってクリエイティブじゃないし、楽しくもない。でも、世の中にはたくさん道があって、それに支払うã
 
けの金も捻出されてる。そしてそのほうが、ずっといいよね。でもこういうことã
 
ってできる。「企業に道をつくらせて勝手に料金所をつけさせて、街角を曲がるたびに通行料を支払うようにしよう。そしていいå
 
´æ‰€ã«é“を敷いた企業は儲かって、そうでないのは倒産するようにしよう」
 <p>
address@hidden,!"2?$+$r1#F?$9$k$3$H$GBg6b$rLY$1$kJ}K!$rJT$_=P$9$H!"JQ$J$3$H$,5/$-$k!#$=$l$^$G$O!"$?$V$s$=$NJ,Ln$K$9$4$/>pG.$r$b$C$F$$$F!"G.?4$KF/$/?M$?$A$,$?$/address@hidden"$=$N?M$?$A$O$=$b$=$b6t$C$F$$$1$k$N$+!"$H$$$&address@hidden($P?t3X<T$r9M$($F$_$k$H!"=c?h?t3X<T$K;Y5k$5$l$k$*6b$h$j$b!"=c?h?t3X<T;VK><T$N$[$&$,$:$C$HB?$$!#$=$7$F;YJ'$o$l$?$H$7$F$b!"Bg$7$?3[$8$c$J$$$7!"$"$^$j$$$$Jk$i$7$b$G$-$J$$!#%_%e!<%8%7%c%s$H$J$k$H$b$C$H$R$I$$!#;~4V$NBgH>$rHq$d$7$F%_%e!<%8%7%c%s$K$J$m$&$H$7$F$k?M$,!"J?6QE*$J%_%e!<%8%7%c%s$G$I$N$/$i$$2T$$$G$k$+$C$F$$$&E}7W$r8+$?$3$H$,$"$k!#%^%5%A%e!<%;%C%D$G$O!"address@hidden>J,0J2<address@hidden@$h!#$+$D$+$D$GJk$i$7$F$1$k$/$i$$$G!"$D$i$$$h$M!#$G$b!"$=$&$7$?$,$k?M$O$?$/$5$s$$$k!#$=$3$X!"2?$+$r$9$k$3$H$G$9$4$/$?$/$5$s2T$2$k$h$&$K$J$C$?$H$7$h$&!#$9$k$H$=$&$$$&?M$?$A$O>C$($F!"$_$s$J$3$&address@hidden&address@hidden/$i$$LY$+$i$J$-$c!"address@hidden(B
+ だれかが、何かを隠
匿することで大金を儲ける方法を編み出すと、変なことが起きる。それまでは、たぶんその分野にすごくæƒ
…熱をもっていて、熱心に働く人たちがたくさんいたんだ
。唯一の問題は、その人たちはそもそも喰っていけるのか、ということã
 ã‘。たとえば数学者を考えてみると、純粋数学者
に支給されるお金よりも、純粋数学者志望者
のほうがずっと多い。そして支払われたとしても、大した額じゃないし、あまりいい暮らしもできない。ミュージシャンとなるともっとひどい。時間の大半を費やしてミュージシャンになろうとしてる人が、平均的なミュージシャンでどのくらい稼いでるかっていう統計を見たことがある。マサチューセッツでは、確か州平均所得の半分以下ã
 ã£ãŸã‚“だ
よ。かつかつで暮らしてけるくらいで、つらいよね。でも、そうしたがる人はたくさんいる。そこへ、何かをすることですごくたくさん稼げるようになったとしよう。するとそういう人たちは消えて、みんなこう言うんã
 ã€‚「そのくらい儲からなきゃ、だれもやりゃしないよ」
 <p>
-$B!!$=$7$F$\$/$O!"$3$l$,%W%m%0%i%_%s%0$NJ,Ln$G$*$3$k$N$r8+$F$-$?!#(BAI$B8&$GF/$$$F$F!"Bg$7$?5kNA$b$J$+$C$?$N$K;E;v$,address@hidden,!"$$$^$G$OG/$K(B5$BK|%I%k$O$b$i$o$J$-$c$H$F$bF/$1$J$$$h!"address@hidden&!#$I$&$7$A$c$C$?$o$1!)address@hidden<$2$F$d$k$H!";w$?$h$&$J$3$H$r$7$F$k$[$+$N?M$?$A$,!"address@hidden"$_$s$J<+J,$?$A$bF1$8$/address@hidden&5$$K$J$C$F!"address@hidden@N$J$,$i$N$d$j$+$?$rB3$1$h$&$H$$$&address@hidden,5/$-$A$c$C$?$i!"?M$KBg6b$rJ'$&$7$+<j$,address@hidden;address@hidden"$G$b$=$j$c$A$,$&address@hidden,$J$+$C$?$i!"$A$g$C$H$*6b$G$=$l$r$d$m$&$C$F?M$,=P$F$/address@hidden&!#FC$K$=$l$,%/%j%(%$%F%#%V$G$*$b$7$m$$$3$H$J$i!#(B
+ そしてぼくは、これがプログラミングの分野でおこるのを見てきた。AIç
 ”で働いてて、大した給料もなかったのに仕事が大好きだ
った人たちが、いまでは年に5万ドルはもらわなきゃとても働けないよ、なんて言う。どうしちゃったわけ? 人の前に大金を儲ける可能性をぶら下げてやると、似たようなことをしてるほかの人たちが、そんã
 
けの金を稼いでるのを見ると、みんな自分たちも同じくらい稼ぐべきã
 ã¨ã„う気になって、だ
から昔ながらのやりかたを続けようという人はだ
れもいない。そしてこれが起きちゃったら、人に大金を払うしか手がないんã
 ã¨æ€ã„こむのは簡単なんだ
けれど、でもそりゃちがう。もし大金を儲ける可能性がなかったら、ちょっとお金でそれをやろうって人が出てくるã
 ã‚ã†ã€‚特にそれがクリエイティブでおもしろいことなら。
 <p>
-$B!!(B<h3><a name="43">4.3 $B%=%U%H1#F?$H$NF.$$(B</a></h3>
+ <h3><a name="43">4.3 ソフト隠匿との闘い</a></h3>
 <p>
-$B!!(BAI 
$B8&$N%f%K!<%/address@hidden&$,GK2u$5$l$k$N$r8+$F$-$F!"%=%U%H$rGd$k$N$,address@hidden"address@hidden@$7$?$h$&$K!"$"$"$$$&<R2q$r<j$KF~$l$k$K$O%U%j!<%=%U%H$,I,address@hidden($F$_$F!"%=%U%H1#F?$,$$$m$s$J7A$G<R2qA4$F$r=}$D$1$k$3$H$K;address@hidden"?M!9$KNY?M$rGd$jEO$9$h$&05NO$r$+$1$F!"$=$l$,<R2q$NB`GQ$r>7$$$F$k$C$F$3$H$K!#F;$G?M$,;I$5$l$F$k$N$r8+$F$b!"L[$C$F$h$&$H$9$k$N$HF1$8@:address@hidden@$h!#$=$3$i$8$e$&$N4k6H$,$7$g$C$A$e$&<($7$F$k$N$,$o$+$k!"$"$N@:address@hidden@$h$M!#$=$7$F!"$\$/$O<+J,$,F;$rA*$Y$k$N$,address@hidden&$N0lIt$H$J$C$F!"<+J,address@hidden,$K46$8B3$1$k$+!"$=$l$H$b$=$l$HF.$&address@hidden/$OF.$&$3$H$K$7$?!#$\$/$O%-%c%j%"$rJ{$2$F!"%=%U%H6&M-%3%_%e%K%F%#$N:F7z$KEX$a$F$-$?$7!"0lHL$K$H$C$FM-MQ$J>pJs$r0w22$9$k$H$$$&8=>]$r=*$o$i$;$h$&$HEXNO$7$F$-$?!#$=$7$F(B
 GNU 
$B%7%9%F%`$O!"address@hidden<address@hidden<R2qE*$JL\E*$N$?$a$N!"5;=QE*$J<address@hidden(B
 GNU 
$B%7%9%F%`$K$h$C$F!"$\$/$O%=%U%H1#F?<T$I$b$N6<$7$KBP$7$F%f!<%6$?$A$K%o%/%A%s$r$"address@hidden(B
+ AI 研のユニークな世界がç 
´å£Šã•ã‚Œã‚‹ã®ã‚’見てきて、ソフトを売るのがその核心なんだ
ってことも見てきたし、さらにはさっき説明したように、ああいう社会を手にå
…¥ã‚Œã‚‹ã«ã¯ãƒ•ãƒªãƒ¼ã‚½ãƒ•ãƒˆãŒå¿…要なんだ
ってことも見てきた。でもそれからいろいろ考えてみて、ソフトéš
 åŒ¿ãŒã„ろんな形で社会å…
¨ã¦ã‚’傷つけることに思い当たったんだ。特に、人々
に隣人を売り渡すよう圧力をかけて、それが社会の退廃を招いてるってことに。道で人が刺されてるのを見ても、黙ってようとするのと同じ精神ã
 ã‚ˆã€‚そこらじゅうの企業がしょっちゅ
う示してるのがわかる、あの精神だ
よね。そして、ぼくは自分が道を選べるのがはっきりしてた。その世界の一部となって、自分の送ってる人生について不幸に感じ続けるか、それともそれと闘うか。ã
 
からぼくは闘うことにした。ぼくはキャリアを捧げて、ソフトå
…
±æœ‰ã‚³ãƒŸãƒ¥ãƒ‹ãƒ†ã‚£ã®å†å»ºã«åŠªã‚ã¦ããŸã—、一般にとって有用なæƒ
…å 
±ã‚’員臆するという現象を終わらせようと努力してきた。そして
 GNU システムは、この目的達成のための手段なんだ
。社会的な目的のための、技術的な手段だ。 GNU システム
によって、ぼくはソフト隠匿者どもの脅
しに対してユーザたちにワクチンをあげたいんだ。
 <p>
-$B!!$$$^8=:_!"$3$N1#F?<T$I$b$O4pK\E*$K!"?M$N%3%s%T%e!<%?$rAFBg%4%_$K$7$F$7$^$&NO$r;}$C$F$k!#%"%a%j%+$G$O!"address@hidden(B
 50 
$BG/$/$i$$A0$K!"%^%U%#%"$H$+$G$=$&$$$&O"Cf$,$$$?!#E9$d%P!<$K9T$C$F!"FC$K$b$A$m$s0cK!$J%P!<address@hidden&address@hidden&!#!V$3$3$i$X$s$8$c$"!":G6a2P;v$,B?$$$G$9$J$"!#$"$s$?$s$H$3$b!"2P;address@hidden(!#$*$l$?$A$J$i!"$"$s$?$r2P;v$+$i<address@hidden"7n$K(B
 1,000 
$B%I%kJ'$C$F$/address@hidden"$3$3$G2P;v$,5/$-$J$$$h$&$K$7$F$d$k$h!W$3$l$,address@hidden,$3$&address@hidden&!#!V$J$+$J$+$$$$%3%s%T%e!<%?$r$*;}$A$G$9$J!"$=$l$G$$$m$$$m%=%U%H$b;H$C$F$i$C$7$c$k!#$5$F!"$=$N%=%U%H$K>C$($F$[$7$/$J$1$l$P!"7Y;!$KDI$o$l$k?H$K$J$j$?$/$J$1$l$P!"$o$?$7$K(B
 1,000 
$B%I%kJ'$$$J$5$$!#$=$7$?$i$3$N%W%m%0%i%`$r%i%$%;%s%9IU$-$GGd$C$F$"$2$h$&!W$3$l$,?M8F$s$G!V%=%U%HJ]8n623e!W!#(B
+ いま現在、この隠匿者
どもは基本的に、人のコンピュータを粗大ゴミにしてしまう力を持ってる。アメリカでは、ã
 ã„たい 50 
年くらい前に、マフィアとかでそういう連中がいた。店やバーに行って、特にもちろん違法なバーã
 
よね。それでこう言う。「ここらへんじゃあ、最近火事が多いですなあ。あんたんとこも、火事なんかになったらいやã
 
よねえ。おれたちなら、あんたを火事から守ってやれるんã
 ã‚ˆã€æœˆã« 1,000 ドル払ってくれるだ
けで、ここで火事が起きないようにしてやるよ」これがいわゆる「保護恐喝」ってやつ。さていまはã
 
れかがこう言う。「なかなかいいコンピュータをお持ちですな、それでいろいろソフトも使ってらっしゃる。さて、そのソフトに消えてほしくなければ、警察に追われる身になりたくなければ、わたしに
 1,000 ドル払いなさい。そしたらこのプログラム
をライセンス付きで売ってあげよう」これが人呼んで「ソフト保護恐喝」。
 <p>
-$B!!%[%s%H!"O"Cf$,$J$K$d$C$F$k$+$H$$$($P!"$[$+$N?M$,$d$k$Y$-$3$H$r$7$h$&address@hidden"O"Cf$O$o$l$o$l$KBP$7$F$b<+J,<+?H$KBP$7$F$b!"<+J,$?$A$,$J$K$+M-1W$J5!G=$r2L$?$7$F$k$h$&$J$U$j$r$7$F$_$;$F$k!#$G!"$\$/$N4j$$$O!"%=%U%H%&%'%"!&%^%U%#%"$NO"Cf$,$d$C$F$-$F!V$=$N%W%m%0%i%`$,%3%s%T%e!<%?$+$i>C$($F$b$$$$$N$+!)address@hidden"MxMQ<T$?$A$,!V$*$^$($J$s$+$b$&$3$o$/$J$$$>!"$\$/$K$O$3$N%U%j!<$N(B
 GNU 
$B%=%U%H$,$"address@hidden&$*$^$($?$A$O<address@hidden>address@hidden(address@hidden(B
+ ホント、連中がなにやってるかといえば、ほかの人がやるべきことをしようとすんのをじゃましてるã
 
けじゃん。なのに、連中はわれわれに対しても自分自身に対しても、自分たちがなにか有益な機能を果たしてるようなふりをしてみせてる。で、ぼくの願いは、ソフトウェア・マフィアの連中がやってきて「そのプログラãƒ
 
がコンピュータから消えてもいいのか?」と言ったら、利用è€
…
たちが「おまえなんかもうこわくないぞ、ぼくにはこのフリーの
 GNU ソフトがあるんだ
。もうおまえたちは手も足も出ないんだ
ぞ」と言えることなんだ。
 <p>
-$B!!$5$F!"address@hidden@$H$7$F=P$F$/$k$N$,!"$_$s$J$K$b$N$r$D$/$k%$%s%;%s%F%#%V$rM?$(address@hidden/$O;d4k6H$N9M$(J}$K$O0lHLE*$K;address@hidden@$7!"$[$+$N?M$,4n$s$G;H$C$F$/$l$k$b$N$r$D$/address@hidden"$H;W$&$N$K$b;address@hidden@$1$l$I!"%=%U%H$NJ,Ln$G$O$3$l$,<}=&$D$+$J$$>address@hidden/$k$N$O!"F1$8%W%m%0%i%`$r$D$/$C$F$=$l$r%U%j!<$K$9$k$N$H$G$O!"<R2q$X$N9W8%EY$,$<$s$<$s$A$,$&!#<R2q$NIY$X$N9W8%$,5/$3$k$N$O!"$=$N%W%m%0%i%`$,;address@hidden@!#%W%m%0%i%`$,;H$o$l$k$N$rK832$7$?$i!"$=$N9W8%$O5/address@hidden@$+$i<R2q$,I,MW$H$7$F$$$k9W8%$O!"$_$s$J$,$($i$/%$%s%;%s%F%#%V$r$b$C$F$D$/address@hidden/$F!"$\$/$?$A$,K\Ev$K5a$a$F$k9W8%$O%U%j!<%=%U%H$G!"$\$/$?$A$N<R2q$,<}=&$D$+$J$/$J$C$F$$$k$N$O!"$=$l$,$"$^$jLr$K$?$?$J$$$3$H$r$9$k%$%s%;%s%F%#%V$r?M$KM?$($F!"Lr$KN)$D$3$H$r$9$k%$%s%;%s%F%#%V$r$<$s$<$sM?$(address@hidden@$+$i;d4k6H$N4pK\E*$J9M$(J}$,$3$3$G$O$*$+$7$/$J$C$F$$$F!"address@hidden<R2q<+BN$,address@hidden>I5$L#$H$5$(address@hidden(address@hidden"8D?M$,B>?M$KBP$7$F!"$=$N8D?M<+?H$K$H$C$F$h$/$J$$9TF0$r?d>)$9$k$H$-!"address@hidden>address@hidden<R2q$,$=$&$$$&$U$&$K9TF0$7$F$k!#%W%m%0%i%^$K!"<R2q$K$H$C$F$h$/$J$$$3$H$r$9$k$h$&$K>)address@hidden(B
+ さて、ソフト所有を正当化する議論として出てくるのが、みんなにものをつくるインセンティブを与えるってやつã
 ã€‚ぼくは私企業の考え方には一般的に賛成だ
し、ほかの人が喜んで使ってくれるものをつくってお金を得たいな、と思うのにも賛成ã
 ã‘れど、ソフトの分野ではこれが収拾つかない状æ…
‹ã«ãªã£ã¦ãã¦ã‚‹ã€‚独占
ソフトをつくるのは、同じプログラム
をつくってそれをフリーにするのとでは、社会への貢献度がぜんぜんちがう。社会の富への貢献が起こるのは、そのプログラãƒ
 ãŒä½¿ã‚ã‚ŒãŸã¨ãã ã‘なんだ。プログラム
が使われるのを妨害したら、その貢献は起きないんだ。だ
から社会が必
要としている貢献は、みんながえらくインセンティブをもってつくってる独å
 
ソフトではなくて、ぼくたちが本当に求めてる貢献はフリーソフトで、ぼくたちの社会が収拾つかなくなっているのは、それがあまり役にたたないことをするインセンティブを人に与えて、役に立つことをするインセンティブをぜんぜん与えてないからã
 ã€‚だ
から私企業の基本的な考え方がここではおかしくなっていて、ã
 ã‹ã‚‰ç¤¾ä¼šè‡ªä½“が神経症気味とさえ言えるかもね。だ
ってさ、個人が他人に対して、その個人自身にとってよくない行動を推奨するとき、その人は神経症なんã
 
から。ここでは社会がそういうふうに行動してる。プログラマに、社会にとってよくないことをするように奨励してるんã
 ã‹ã‚‰ã€‚
 <p>
-$B!!$\$/$OJQ$o$j<address@hidden<+J,$,<R2q$N$h$-0l0w$G!"2?$+$r<address@hidden"$&$^$$$3$H<address@hidden/$O!"$$$^$N<+J,$NF;address@hidden@$l$G$b!"<+J,$,<B$OLr$K$?$C$F$J$$$3$H$G$*6b$r$b$i$C$F$k$H$$$&5$J,$O!"B?>/address@hidden@$+$i!"$3$s$J$^$A$,$C$?$3$H$r$9$k$?$a$N%$%s%;%s%F%#%V$J$s$F9M$(J}$rMJ8n$9$k$N$O$d$a$F!"address@hidden>)Ne$9$k$h$&$J;EAH$_$r9M$($D$/EXNO$/$i$$$O$7$h$&address@hidden"%U%j!<%=%U%H$r$D$/address@hidden(B
+ ぼくは変わり者なんだ
。自分が社会のよき一員で、何かを社会に貢献していると感じていたいんã
 
よ、うまいこと社会をカモにしてるなんて感じるよりはね。ã
 ã‹ã‚‰ã¼ãã¯ã€ã„まの自分の道を選んだ。でもだ
れでも、自分が実は役にたってないことでお金をもらってるという気分は、多少なりともすっきりしないものを感じてるんã
 ã€‚だ
から、こんなまちがったことをするためのインセンティブなんて考え方を擁護するのはやめて、みんなに正しいことを奨励するような仕組みを考えつく努力くらいはしようではないの。その正しいことってのは、フリーソフトをつくることなんã
 ã€‚
 <p>
address@hidden&$b!#(B<p>
+ ご静聴どうも。<p>
 <hr>
 
-<h2><a name="5">5  $B<A5?1~Ez(B</a></h2>
+<h2><a name="5">5  質疑応答</a></h2>
 <p>
-[$B$3$N$"$H!"(BRMS 
$B$O0l;~4V$P$+$j<ALd$KEz$($?!#$3$3$K$O<A5?1~Ez$N$[$s$N0lIt$7$+F~$l$F$$$J$$!#%F!<%W$,0-$+$C$?$7!"$=$N$9$Y$F$r$^$H$b$K=q$-=P$92K$,$J$+$C$?$N$G!"0-$7$+$i$:(B]
+[このあと、RMS 
は一時間ばかり質問に答えた。ここには質疑応答のほんの一部しかå
…
¥ã‚Œã¦ã„ない。テープが悪かったし、そのすべてをまともに書き出す暇がなかったので、悪しからず]
 <p>
-<b>Q$B!'(B</b><i>address@hidden"$J$?$rAJ$($?$j$H$+!"LLE]$r5/$3$=$&$H$7$?$3$H$O$"$j$^$9$+!)(B</i>
+<b>Q:</b><i>だ
れかあなたを訴えたりとか、面倒を起こそうとしたことはありますか?</i>
 <p>
-<b>A$B!'(B</b>$B$=$&$$$&$b$a$4$H$rM#0l5/$3$=$&$H$7$?$N$O!"%4%9%j%s%0(B 
EMACS 
$B$N;}$A<g!"$H$$$&$+<+>N;}$A<g!":>>N;}$A<address@hidden@$J!#$=$l$r$N$>$1$P!"$"$d$r$D$1$k<j$,$+$j$,$J$$$+$i!"Bg$7$F2?$b$7$h$&$,$J$$$h$M!#$H$3$m$G!"$"$k$3$H$r9M$($5$;$F!"$"$k$3$H$r9M$($J$/$5$;$k$?$a$K$3$H$P$,;H$o$l$F$k$3$H$K!"$_$s$J$b$C$HCm0U$7$F$[$7$$$J$H;W$&address@hidden,Ln$G$NMQ8l$O!"<+>N:>>N%=%U%H%&%'%"=jM-<T$?$A$,address@hidden"$J$k$Y$/%=%U%H%&%'%"$r!"=jM-J*$K$J$kJ*<address@hidden;W$o$;$F!"$=$N$A$,$$$r8+2a$4$9$h$&$K$7$F$"address@hidden@Gr$JNc$,!V3$B1!W$C$F$3$H$P!#$h$-;TL1$H$7$FNY?M$H%=%U%H$r6&M-$7$h$&$H$9$k?M4V$rI=8=$9$k$N$K!"!V3$B1!W$H$$$&$3$H$P$r;H$&address@hidden(B
+<b>A:</b>そういうもめごとを唯一起こそうとしたのは、ゴスリング
 EMACS の持ち主、というか自称持ち主、詐称持ち主どもだ
けだ
な。それをのぞけば、あやをつける手がかりがないから、大して何もしようがないよね。ところで、あることを考えさせて、あることを考えなくさせるためにことばが使われてることに、みんなもっと注意してほしいなと思うんã
 ã€‚いまこの分野での用語は、自称詐称ソフトウェア所有者
たちが選んだ
もので、なるべくソフトウェアを、所有物になる物質的ものと同じ物ã
 ã¨æ€ã‚ã›ã¦ã€ãã®ã¡ãŒã„を見過ごすようにしてあるんだ
。これのいちばん明白な例が「海賊」ってことば。よき市民として隣人とソフトをå
…
±æœ‰ã—ようとする人間を表現するのに、「海賊」ということばを使うのは拒否してほしいんã
 ã€‚
 <p>
-$B!!OC$7$=$3$M$F$?$1$I!"Cx:n8"$N9M$(J}$O0u:~=Q$N8e$KH/address@hidden"Cx<T$O$*$?$,$$<+M3$K%3%T!<$7$"$C$F$?$7!"$=$l$,$^$A$,$C$F$k$H$b;W$o$l$J$+$C$?$7!"$9$4$$Lr$K$?$C$?$j$b$7$J!#0lIt$NCx<T$,address@hidden($i$l$?$N$O!"CGJRE*$G$O$"$C$F$b!"$=$N0lIt$,$[$+$NCx:address@hidden(B
+ 話しそこねてたけど、著作権の考え方は印刷術の後に発明された。古代には、著è€
…
はおたがい自由にコピーしあってたし、それがまちがってるとも思われなかったし、すごい役にたったりもしな。一部の著è€
…
が後生に伝えられたのは、断片的ではあっても、その一部がほかの著作の中でまとまって引用されてたおかげなんã
 ã€‚
 <p>
-$B!!$3$l$O!"K\$H$$$&$b$N$,0lIt$:$DI.<address@hidden&$J$C$?!#(B10$BIt$D$/$k$N$O!"(B1$BIt$D$/$k$N$N(B10$BG\<j4V$,$+$+$C$?!#$=$3$X0u:~=Q$,H/address@hidden"address@hidden<L$,$G$-$J$/$J$C$?$o$1$G$O$J$$$1$l$I!"$G$b0u:~$9$k$N$KHf$Y$?$i!"I.<L$O$($i$/LLE]$G!"<B<AE*$KIT2DG=$H$$$C$F$h$/$J$C$?$o$1$M!#(B
+ これは、本というものが一部ずつ筆写するものだ
ったからそうなった。10部つくるのは、1部つくるのの10倍手間がかかった。そこへ印刷術が発明されて、ã
 
からといって人は本の筆写ができなくなったわけではないけれど、でも印刷するのに比べたら、筆写はえらく面倒で、実質的に不可能といってよくなったわけね。
 <p>
-$B!!K\$,address@hidden;:$G$7$+$D$/$l$J$/$J$C$?$i!"Cx:n8"$,0UL#$r;}$D$h$&$K$J$C$F$-$F!"$=$7$F$=$l$OFI=qBg=0$N<+M3$rC%$C$?$j$b$7$J$+$C$?!#0u:~=Q$r;}$C$F$$$J$$0lHLBg=0$N0l0w$G$"$k?M$O!"$I$N$_$AK\$r%3%T!<$G$-$J$+$C$?$+$i!"Cx:n8"$,$G$-$?$C$F!"JL$K<+M3$r<:$&address@hidden;=QE*$JJQ2=$N$?$a$KCx:n8"$,H/address@hidden"F;FAE*$K$b6Z$,DL$C$F$?$o$1!#$$$^$O$=$NH?BP$NJQ2=$,5/$-$F$k!#>pJs$N8DJL%3%T!<$,$I$s$I$s$h$/$J$C$F$-$F$F!"$d$,$F5;=Q$,5f6K$K$^$G?JJb$9$l$P!"$I$s$J>pJs$G$b%3%T!<$G$-$k$h$&$K$J$k$H$$$&$N$,8+$($F$-$?!#(B
 [$B%F!<%W$rN"JV$9$N$GCfCG(B]
+ 本が大量生産でしかつくれなくなったら、著作権が意味を持つようになってきて、そしてそれは読書大衆の自由を奪ったりもしなかった。印刷術を持っていない一般大衆の一員である人は、どのみち本をコピーできなかったから、著作権ができたって、別に自由を失うわけじゃなかった。ã
 
から技術的な変化のために著作権が発明されて、道徳的にも筋が通ってたわけ。いまはその反対の変化が起きてる。æƒ
…å 
±ã®å€‹åˆ¥ã‚³ãƒ”ーがどんどんよくなってきてて、やがて技術が究極にまで進歩すれば、どんなæƒ
…報でもコピーできるようになるというのが見えてきた。 
[テープを裏返すので中断]
 <p>
address@hidden/$?$A$O!"Cx:n8"address@hidden@$3&$HF1$8>address@hidden(B
+ だからぼくたちは、著作権なんか無意味だ
った古代世界と同じ状況に戻ってるんだ。
 <p>
-$B!!$\$/$?$A$N=jM-J*$N35G0$r9M$($F$_$k$H!"$=$l$OJ*<AE*$J$b$N$+$i$-$F$$$k!#J*<AE*$J$b$N$O!"$[$\J]B8B'$K$7$?$,$&!#$&$s!"3N$+$K%A%g!<%/$OH>J,address@hidden"@53N$K$O$A$,$&$7!"$9$j$X$k$7!">CHq$b$5$l$k!#$G$b4pK\E*$K$3$l$O!J$H0X;R$r;X$5$9!K!"0X;address@hidden;X$r%Q%A%s$H$J$i$7$F$3$l$rFs$D$K$9$k$o$1$K$O$$$+$J$$!#$3$l$r$b$&0l$D<j$KF~$l$k$K$O!":G=i$N$d$D$r$D$/$C$?$N$HF1$8$h$&$K$D$/$k$7$+$J$$!#86:`NA$,$b$C$H$$$k$7!"$b$C$HO+F/$b$$$k$7!"address@hidden/$?$A$N=jM-J*$N9M$(J}$O!"$=$&$$$&;v<B$K$"$F$O$^$k$h$&!"F;FAE*$KG<address@hidden,$$$/$+$?$A$GH/address@hidden(B
+ ぼくたちの所有物の概念を考えてみると、それは物質的なものからきている。物質的なものは、ほぼ保存則にしたがう。うん、確かにチョークは半分に折れるから、正確にはちがうし、すりへるし、消費もされる。でも基本的にこれは(とæ¤
…子を指さす)、椅子一脚だ
。指をパチンとならしてこれを二つにするわけにはいかない。これをもう一つ手にå
…
¥ã‚Œã‚‹ã«ã¯ã€æœ€åˆã®ã‚„つをつくったのと同じようにつくるしかない。原材料がもっといるし、もっと労働もいるし、ã
 
からぼくたちの所有物の考え方は、そういう事実にあてはまるよう、道徳的に納得がいくかたちで発展してきたんã
 ã€‚
 <p>
address@hidden<$G$-$k>pJs$J$i!"OC$O$A$,$C$F$/address@hidden"$F$O$^$kF;FAE*$JBVEY$b$A$,$&!#$\$/$?$A$NF;FAE*$JBVEY$H$$$&$N$O!"2?$+$r$7$?$i?M$,address@hidden"?M$,address@hidden($k$3$H$G7h$^$C$F$/address@hidden"$3$N0X;R$r$H$C$F$/$3$H$O$G$-$k$1$I!"$3$l$r%3%T!<$9$k$3$H$O$G$-$J$$!#$=$7$F$-$_$,$3$N0X;R$r$b$C$F$$$C$?$i!"$=$l$G2?$+$,@8$^$l$k$o$1$8$c$J$$$+$i!"$3$l$O$^$C$?$/@address@hidden,!V$*$l$O$3$N0X;R0l5S$r$D$/$k:address@hidden"$3$$$D$r;}$F$k$d$D$,0l?M$7$+$$$J$$$s$J$i!"address@hidden&address@hidden"3N$+$K$_$s$J!V$&$s!"$=$j$c6Z$,address@hidden&address@hidden&address@hidden,!V$*$l$O$3$N%G%#%9%/address@hidden@!"address@hidden>5CN$7$J$$$>address@hidden"$&$s!"$3$l$b3N$+$K6Z$,DL$C$F$k!#$=$N%G%#%9%/$r0l?M$7$+;}$F$J$$$s$J$i!"$8$c$"$=$l$O$=$N%G%#%9%/$N=jM-<T$G$$$$$h!#(B
+ だれでもコピーできる情報なら、話はちがってくる。だ
からそれにあてはまる道徳的なæ…
‹åº¦ã‚‚ちがう。ぼくたちの道徳的なæ…
‹åº¦ã¨ã„うのは、何かをしたら人がどれだ
け助かるか、人がどれだ
け害を被るか考えることで決まってくる。ものだ
と、この椅
子をとってくことはできるけど、これをコピーすることはできない。そしてきみがこのæ¤
…
子をもっていったら、それで何かが生まれるわけじゃないから、これはまったく正当化できない。ã
 ã‚Œã‹ãŒã€ŒãŠã‚Œã¯ã“の椅子一脚をつくる作業をしたんだ
し、こいつを持てるやつが一人しかいないんなら、それはおれã
 
ろう」と言ったとしたら、確かにみんな「うん、そりゃ筋が通ってる」と言うã
 ã‚ã†ã€‚だれかが「おれはこのディスクにビットを刻んだ
んだ、だ
からこいつおれから奪ったら承知しないぞ」と言ったら、うん、これも確かに筋が通ってる。そのディスクを一人しか持てないんなら、じゃあそれはそのディスクの所有è€
…でいいよ。
 <p>
address@hidden,$d$C$F$-$F$3$&address@hidden"$s$?$N%G%#%9%/$O$3$o$5$J$$$h!"address@hidden/F1$8$b$N$rKbK!$G:n$j=P$7$F!"$=$l$r;}$C$F$/$+$i!"$"$s$?$O$$$^$^$G$I$*$j%G%#%9%/$r;H$(address@hidden/$OKbK!$N0X;R%3%T!<5!$r;}$C$F$F!"$-$_$O$$$^$^$GDL$j0X;R$r3Z$7$s$G$9$o$C$?$j$G$-$F!"$$$D$G$b<j85$K$*$$$H$1$F!"$G$b$\$/$b$=$N0X;R$,;H$(address@hidden&$N$H$*$J$8$G!"address@hidden(B
+ でもだ
れかがやってきてこう言ったとする。「あんたのディスクはこわさないよ、たã
 
まったく同じものを魔法で作り出して、それを持ってくから、あんたはいままでどおりディスクを使えばいいんã
 ã‚ˆã€ã€€ãã—たらこれは「ぼくは魔法の椅
子コピー機を持ってて、きみはいままで通り椅
子を楽しんですわったりできて、いつでも手å…
ƒã«ãŠã„とけて、でもぼくもその椅子が使えるんだ
」というのとおなじで、これはいいことだ。
 <p>
-$B!!$D$/$s$J$/$F$$$$$s$J$i!";X$r%Q%A%s$HLD$i$;address@hidden"address@hidden;=Q$NJQ2=$O!"8DJL%3%T!<$r=jM-$7$F8DJL%3%T!<$G6b$rLY$1$h$&$H$9$k?M$K$O$*5$$K>$$5$J$$!#O"Cf$N9M$($O!"address@hidden<BBN$N$"$kJ*<A$_$?$$$K$7$h$&$H$9$k!#%=%U%H20$K$$$C$F%W%m%0%i%`$rGc$&$H!"$J$s$+K\$_$?$$$J$b$N$K$D$$$F$/$k$G$7$g$&!#IT;W5D$8$c$J$$!)!!$"$l$O$_$s$J$K!"<+J,$,Gc$C$F$k$N$,address@hidden;W$C$F$[$7$/$F!"K\Ev$O%G%8%?%k$N%3%T!<2DG=$J%G!<%?$r<address@hidden,$D$+$J$$$G$[$7$$$+$i$J$N!#(B
+ つくんなくていいんなら、指をパチンと鳴らせば複製できるんなら、すばらしいことã
 
。でもこの技術の変化は、個別コピーを所有して個別コピーで金を儲けようとする人にはお気に召さない。連中の考えは、保存する物体にしか通用しない。ã
 ã‹ã‚‰ãªã‚“とかプログラム
を実体のある物質みたいにしようとする。ソフト屋にいってプログラãƒ
 
を買うと、なんか本みたいなものについてくるでしょう。不思議じゃない? あれはみんなに、自分が買ってるのが物体なんã
 
と思ってほしくて、本当はデジタルのコピー可能なデータを手にå
…¥ã‚ŒãŸã‚“だと気がつかないでほしいからなの。
 <p>
-$B!!%3%s%T%e!<%?$C$F7k6I$N$H$3$m!"K|G=%^%7%s$G$7$g!#$?$V$s$_$s$J!"%f%K%P!<%5%k%A%e!<%j%s%0%^%7%s$K$D$$$F$OJY6/$7$F$k$h$M!#$[$+$N$I$s$J%^%7%s$G$bLOJo$G$-$k%^%7%s$M!#K|G=%^%7%s$,$9$P$i$7$$$N$O!"address@hidden/$F!"$=$N;X<($r%3%T!<$7$FJQ$(address@hidden"J*<address@hidden,$^$5$K!"%=%U%H%&%'%"1#F?<T$I$b$,$_$s$J$K$d$i$;address@hidden|G=%^%7%s$H$$$&5;=QJQ2=$N%a%j%C%H$O5}<u$7$?$,$C$F$k$/$;$K!"0lHL<R2q$K$O$=$N%a%j%C%H$r<j$KF~$l$5$;$?$/address@hidden(B
+ コンピュータって結局のところ、万能マシンでしょ。たぶんみんな、ユニバーサルチューリングマシンについては勉強してるよね。ほかのどんなマシンでも模倣できるマシンね。万能マシンがすばらしいのは、ほかのマシンを模倣できるã
 
けじゃなくて、その指示をコピーして変えられるってことã
 ã€‚これってまさに、物質ではできないことだ
。そしてこれがまさに、ソフトウェア隠匿者
どもがみんなにやらせるまいとしてることなんだ
。万能マシンという技術変化のメリットは享受したがってるくせに、一般社会にはそのメリットを手にå
…¥ã‚Œã•ã›ãŸããªã„んだよ。
 <p>
-$B!!4pK\E*$KO"Cf$O!VJ*$N;~Be!W$r29B8$7$h$&address@hidden"$G$b$=$s$J;~Be$O$b$&address@hidden/$?$A$b!"@5$7$$$H$+4V0c$C$F$k$H$+$N9M$(J}$r!"$\$/$?$A$,=;address@hidden&$N<B>u$K$"$o$;$F%7%s%/%m$5$;address@hidden(B
+ 基本的に連中は「物の時代」を温存しようとしてるんだ
けれど、でもそんな時代はもう終わってる。だ
からぼくたちも、正しいとか間違ってるとかの考え方を、ぼくたちが住む世界の実状にあわせてシンクロさせるべきなんã
 ã€‚
 <p>
-<b>Q$B!'(B</b><i>$B$D$^$j7k6I$N$H$3$m!">pJs$N=jM-8"$NLdBj$J$s$G$9$M!#>pJs$r=jM-$9$k$3$H$,@5$7$$$h$&$J>l9g$H$$$&$N$O!"$"$k$s$G$7$g$&$+!#$I$&;W$$$^$9!)(B</i>
+<b>Q:</b><i>つまり結局のところ、情å 
±ã®æ‰€æœ‰æ¨©ã®å•é¡Œãªã‚“ですね。情å 
±ã‚’所有することが正しいようなå 
´åˆã¨ã„うのは、あるんでしょうか。どう思います?</i>
 <p>
-<b>A$B!'(B</b> 
$B0lHLE*$JMxMQ2ACM$N$J$$>pJs$J$i!"$"$k$$$O8D?ME*$J>pJs$J$i!"=jM-%*%C%1!<address@hidden;W$&address@hidden($k$H!"$J$K$+$N$d$j$+$?$8$c$J$/$F!"$=$l$G$I$&$9$k$D$b$j$+$H$$$&>pJs!#B>?M$K$H$C$F$N2ACM$,5?$o$7$$$b$N!"$"$J$?$+$i$*6b$r$`$7$j<h$k$K$O;H$($F$b!"$=$l$G2?$+$r:n$j=P$7$?$j$O$G$-$J$$$h$&$J>pJs!#$\$/address@hidden;$l$P!"$=$&$$$&$b$N$rHkL)$K$7$FE}@)$9$k$N$O$^$C$?$/LdBj$J$$!#$G$bAOB$$K78$o$k>pJs!"?M$,;H$C$F3Z$7$a$k>pJs!"$=$7$F$=$l$r;}$C$F$k?M$,B?$1$l$PB?$$$[$I!"$b$C$HMxMQ$5$l$F3Z$7$^$l$k$h$&$J>pJs!"$=$&$$$&$N$OI,$:%3%T!<$r?d>)address@hidden(B
+<b>A:</b> 一般的な利用価値のない情å 
±ãªã‚‰ã€ã‚るいは個人的な情報なら、所有オッケーだ
と思う。言い換えると、なにかのやりかたじゃなくて、それでどうするつもりかというæƒ
…å 
±ã€‚他人にとっての価値が疑わしいもの、あなたからお金をむしり取るには使えても、それで何かを作り出したりはできないようなæƒ
…å 
±ã€‚ぼくに言わせれば、そういうものを秘密にして統制するのはまったく問題ない。でも創é€
 ã«ä¿‚わる情報、人が使って楽しめる情å 
±ã€ãã—てそれを持ってる人が多ければ多いほど、もっと利用されて楽しまれるようなæƒ
…報、そういうのは必ずコピーを推奨すべきなんだ。
 <br><br>
 <HR>
 
@@ -451,12 +450,12 @@
 send other questions to
 <A HREF="mailto:address@hidden";><EM>address@hidden</EM></A>.
 <P>
-Copyright (C) 1987 Richard Stallman and Bj$BS(Bn Remseth, (C) 1998 Yamagata 
Hiroo
+Copyright (C) 1987 Richard Stallman and BjSn Remseth, (C) 1998 Yamagata Hiroo
 <P>
 <A HREF="#TOCPermission" NAME="Permission">Permission</A>
  is granted to make and distribute  verbatim copies of this
 transcript as long as the copyright and this permission notice appear. <br>
-$B!!$3$NF|K\8lLu$O=q<0$H%U%!%$%k7A<00J30$N2~JQ$r2C$($:$3$NHG8"I=<($r;D$98B$j$K$*$$$F<+M3$K:FG[I[$,G'$a$i$l$k!#(B
+ この日本語訳は書式とファイル形式以外の改変を加
えずこの版権表示を残す限りにおいて自由に再é…
å¸ƒãŒèªã‚ã‚‰ã‚Œã‚‹ã€‚
 <P>
 Updated:
 <!-- hhmts start -->

Index: prep/maintain/index.html
===================================================================
RCS file: /web/www/www/prep/maintain/index.html,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -b -r1.17 -r1.18
--- prep/maintain/index.html    9 Oct 2006 21:19:15 -0000       1.17
+++ prep/maintain/index.html    13 Oct 2006 19:23:31 -0000      1.18
@@ -28,7 +28,7 @@
        alt=" [image of the head of a GNU] "
        width="129" height="122" />
 </a>
-<a href="/philosophy/gif.html">(no gifs due to patent problems)</a>
+
 </p>
 <hr />
 

Index: prep/standards/index.html
===================================================================
RCS file: /web/www/www/prep/standards/index.html,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -b -r1.16 -r1.17
--- prep/standards/index.html   19 Aug 2006 17:43:54 -0000      1.16
+++ prep/standards/index.html   13 Oct 2006 19:23:33 -0000      1.17
@@ -28,7 +28,7 @@
        alt=" [image of the head of a GNU] "
        width="129" height="122" />
 </a>
-<a href="/philosophy/gif.html">(no gifs due to patent problems)</a>
+
 </p>
 <hr />
 

Index: software/barcode/barcode.html
===================================================================
RCS file: /web/www/www/software/barcode/barcode.html,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- software/barcode/barcode.html       3 Jul 2001 22:43:23 -0000       1.2
+++ software/barcode/barcode.html       13 Oct 2006 19:23:35 -0000      1.3
@@ -11,7 +11,7 @@
 ALT=" [image of the Head of a GNU] "
 WIDTH="129" HEIGHT="122">&#32;(jpeg 7k)</A>
 <A HREF="/graphics/gnu-head.jpg">(jpeg 21k)</A>
-<A HREF="/philosophy/gif.html">no gifs due to patent problems</A>
+
 <CENTER>
   <A HREF="#introduction" NAME="TOCintroduction">Introduction</A>
 | <A HREF="#downloading" NAME="TOCdownloading">Get the Software</A>

Index: software/bc/manual/bc.html
===================================================================
RCS file: /web/www/www/software/bc/manual/bc.html,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- software/bc/manual/bc.html  7 Nov 2003 21:45:17 -0000       1.1
+++ software/bc/manual/bc.html  13 Oct 2006 19:23:37 -0000      1.2
@@ -13,7 +13,7 @@
    ALT=" [image of the Head of a GNU] "
    WIDTH="129" HEIGHT="122">&#32;(jpeg 7k)</A>
 <A HREF="/graphics/gnu-head.jpg">(jpeg 21k)</A>
-<A HREF="/philosophy/gif.html">no gifs due to patent problems</A>
+
 <P>
 <P>
 <P><HR><P>

Index: software/bc/manual/dc-1.05/dc.html
===================================================================
RCS file: /web/www/www/software/bc/manual/dc-1.05/dc.html,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- software/bc/manual/dc-1.05/dc.html  8 Nov 2003 04:41:57 -0000       1.1
+++ software/bc/manual/dc-1.05/dc.html  13 Oct 2006 19:23:39 -0000      1.2
@@ -13,7 +13,7 @@
    ALT=" [image of the Head of a GNU] "
    WIDTH="129" HEIGHT="122">&#32;(jpeg 7k)</A>
 <A HREF="/graphics/gnu-head.jpg">(jpeg 21k)</A>
-<A HREF="/philosophy/gif.html">no gifs due to patent problems</A>
+
 <P>
 <P>
 <P><HR><P>

Index: software/cvs/manual/cvs.html
===================================================================
RCS file: /web/www/www/software/cvs/manual/cvs.html,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- software/cvs/manual/cvs.html        7 Nov 2003 20:55:31 -0000       1.1
+++ software/cvs/manual/cvs.html        13 Oct 2006 19:23:42 -0000      1.2
@@ -13,7 +13,7 @@
    ALT=" [image of the Head of a GNU] "
    WIDTH="129" HEIGHT="122">&#32;(jpeg 7k)</A>
 <A HREF="/graphics/gnu-head.jpg">(jpeg 21k)</A>
-<A HREF="/philosophy/gif.html">no gifs due to patent problems</A>
+
 <P>
 <P>
 <P><HR><P>

Index: software/dr_geo/dr_geo.html
===================================================================
RCS file: /web/www/www/software/dr_geo/dr_geo.html,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- software/dr_geo/dr_geo.html 7 May 2006 09:54:34 -0000       1.3
+++ software/dr_geo/dr_geo.html 13 Oct 2006 19:23:44 -0000      1.4
@@ -11,7 +11,7 @@
 ALT=" [image of the Head of a GNU] "
 WIDTH="129" HEIGHT="122">&#32;(jpeg 7k)</A>
 <A HREF="/graphics/gnu-head.jpg">(jpeg 21k)</A>
-<A HREF="/philosophy/gif.html">no gifs due to patent problems</A>
+
 
 <P>
 <HR>

Index: software/finger/manual/finger.html
===================================================================
RCS file: /web/www/www/software/finger/manual/finger.html,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- software/finger/manual/finger.html  1 Nov 2003 22:39:17 -0000       1.1
+++ software/finger/manual/finger.html  13 Oct 2006 19:23:46 -0000      1.2
@@ -13,7 +13,7 @@
    ALT=" [image of the Head of a GNU] "
    WIDTH="129" HEIGHT="122">&#32;(jpeg 7k)</A>
 <A HREF="/graphics/gnu-head.jpg">(jpeg 21k)</A>
-<A HREF="/philosophy/gif.html">no gifs due to patent problems</A>
+
 <P>
 <P>
 <P><HR><P>

Index: software/flex/manual/flex.html
===================================================================
RCS file: /web/www/www/software/flex/manual/flex.html,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- software/flex/manual/flex.html      1 Nov 2003 22:33:53 -0000       1.1
+++ software/flex/manual/flex.html      13 Oct 2006 19:23:48 -0000      1.2
@@ -13,7 +13,7 @@
    ALT=" [image of the Head of a GNU] "
    WIDTH="129" HEIGHT="122">&#32;(jpeg 7k)</A>
 <A HREF="/graphics/gnu-head.jpg">(jpeg 21k)</A>
-<A HREF="/philosophy/gif.html">no gifs due to patent problems</A>
+
 <P>
 <P>
 <P><HR><P>

Index: software/gawk/manual/index.html
===================================================================
RCS file: /web/www/www/software/gawk/manual/index.html,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- software/gawk/manual/index.html     31 Aug 2004 22:04:09 -0000      1.1
+++ software/gawk/manual/index.html     13 Oct 2006 19:23:50 -0000      1.2
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8" ?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";>
-<!-- $Id: index.html,v 1.1 2004/08/31 22:04:09 karl Exp $ -->
+<!-- $Id: index.html,v 1.2 2006/10/13 19:23:50 johnsu01 Exp $ -->
 <html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en">
 
 <head>
@@ -29,7 +29,7 @@
        alt=" [image of the head of a GNU] "
        width="129" height="122" />
 </a>
-<a href="/philosophy/gif.html">(no gifs due to patent problems)</a>
+
 </p>
 <hr />
 
@@ -92,7 +92,7 @@
 <p>
 Updated:
 <!-- timestamp start -->
-$Date: 2004/08/31 22:04:09 $ $Author: karl $
+$Date: 2006/10/13 19:23:50 $ $Author: johnsu01 $
 <!-- timestamp end -->
 </p>
 </div>

Index: software/gawk/manual/gawkinet/index.html
===================================================================
RCS file: /web/www/www/software/gawk/manual/gawkinet/index.html,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- software/gawk/manual/gawkinet/index.html    31 Aug 2004 22:15:41 -0000      
1.1
+++ software/gawk/manual/gawkinet/index.html    13 Oct 2006 19:23:53 -0000      
1.2
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8" ?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";>
-<!-- $Id: index.html,v 1.1 2004/08/31 22:15:41 karl Exp $ -->
+<!-- $Id: index.html,v 1.2 2006/10/13 19:23:53 johnsu01 Exp $ -->
 <html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en">
 
 <head>
@@ -29,7 +29,7 @@
        alt=" [image of the head of a GNU] "
        width="129" height="122" />
 </a>
-<a href="/philosophy/gif.html">(no gifs due to patent problems)</a>
+
 </p>
 <hr />
 
@@ -92,7 +92,7 @@
 <p>
 Updated:
 <!-- timestamp start -->
-$Date: 2004/08/31 22:15:41 $ $Author: karl $
+$Date: 2006/10/13 19:23:53 $ $Author: johnsu01 $
 <!-- timestamp end -->
 </p>
 </div>

Index: software/gettext/manual/gettext.html
===================================================================
RCS file: /web/www/www/software/gettext/manual/gettext.html,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- software/gettext/manual/gettext.html        1 Nov 2003 22:23:06 -0000       
1.1
+++ software/gettext/manual/gettext.html        13 Oct 2006 19:23:55 -0000      
1.2
@@ -13,7 +13,7 @@
    ALT=" [image of the Head of a GNU] "
    WIDTH="129" HEIGHT="122">&#32;(jpeg 7k)</A>
 <A HREF="/graphics/gnu-head.jpg">(jpeg 21k)</A>
-<A HREF="/philosophy/gif.html">no gifs due to patent problems</A>
+
 <P>
 <P>
 <P><HR><P>

Index: software/gmp/manual/gmp.html
===================================================================
RCS file: /web/www/www/software/gmp/manual/gmp.html,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- software/gmp/manual/gmp.html        30 Oct 2003 19:26:48 -0000      1.1
+++ software/gmp/manual/gmp.html        13 Oct 2006 19:23:57 -0000      1.2
@@ -13,7 +13,7 @@
    ALT=" [image of the Head of a GNU] "
    WIDTH="129" HEIGHT="122">&#32;(jpeg 7k)</A>
 <A HREF="/graphics/gnu-head.jpg">(jpeg 21k)</A>
-<A HREF="/philosophy/gif.html">no gifs due to patent problems</A>
+
 <P>
 <P>
 <P><HR><P>

Index: software/gmp/manual/index.html
===================================================================
RCS file: /web/www/www/software/gmp/manual/index.html,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- software/gmp/manual/index.html      30 Oct 2003 19:26:48 -0000      1.1
+++ software/gmp/manual/index.html      13 Oct 2006 19:23:57 -0000      1.2
@@ -13,7 +13,7 @@
    ALT=" [image of the Head of a GNU] "
    WIDTH="129" HEIGHT="122">&#32;(jpeg 7k)</A>
 <A HREF="/graphics/gnu-head.jpg">(jpeg 21k)</A>
-<A HREF="/philosophy/gif.html">no gifs due to patent problems</A>
+
 <P>
 <P>
 <P><HR><P>

Index: software/gperf/manual/gperf.html
===================================================================
RCS file: /web/www/www/software/gperf/manual/gperf.html,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- software/gperf/manual/gperf.html    31 Oct 2003 14:44:31 -0000      1.1
+++ software/gperf/manual/gperf.html    13 Oct 2006 19:23:59 -0000      1.2
@@ -13,7 +13,7 @@
    ALT=" [image of the Head of a GNU] "
    WIDTH="129" HEIGHT="122">&#32;(jpeg 7k)</A>
 <A HREF="/graphics/gnu-head.jpg">(jpeg 21k)</A>
-<A HREF="/philosophy/gif.html">no gifs due to patent problems</A>
+
 <P>
 <P>
 <P><HR><P>

Index: software/gzip/manual/gzip.html
===================================================================
RCS file: /web/www/www/software/gzip/manual/gzip.html,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- software/gzip/manual/gzip.html      30 Oct 2003 00:39:34 -0000      1.1
+++ software/gzip/manual/gzip.html      13 Oct 2006 19:24:02 -0000      1.2
@@ -13,7 +13,7 @@
    ALT=" [image of the Head of a GNU] "
    WIDTH="129" HEIGHT="122">&#32;(jpeg 7k)</A>
 <A HREF="/graphics/gnu-head.jpg">(jpeg 21k)</A>
-<A HREF="/philosophy/gif.html">no gifs due to patent problems</A>
+
 <P>
 <P>
 <P><HR><P>

Index: software/nana/manual/nana.html
===================================================================
RCS file: /web/www/www/software/nana/manual/nana.html,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- software/nana/manual/nana.html      28 Oct 2003 20:27:23 -0000      1.1
+++ software/nana/manual/nana.html      13 Oct 2006 19:24:04 -0000      1.2
@@ -13,7 +13,7 @@
    ALT=" [image of the Head of a GNU] "
    WIDTH="129" HEIGHT="122">&#32;(jpeg 7k)</A>
 <A HREF="/graphics/gnu-head.jpg">(jpeg 21k)</A>
-<A HREF="/philosophy/gif.html">no gifs due to patent problems</A>
+
 <P>
 <P>
 <P><HR><P>

Index: software/pipo/bot-AI/bot.html
===================================================================
RCS file: /web/www/www/software/pipo/bot-AI/bot.html,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- software/pipo/bot-AI/bot.html       13 Feb 2001 01:07:45 -0000      1.1
+++ software/pipo/bot-AI/bot.html       13 Oct 2006 19:24:06 -0000      1.2
@@ -22,7 +22,7 @@
 <A HREF="/graphics/gnu-head-sm.jpg"><IMG SRC="/graphics/gnu-head-sm.jpg" 
    ALT=" [image of the Head of a GNU] " WIDTH="129" HEIGHT="122"> (jpeg 7k)</A>
 <A HREF="/graphics/gnu-head.jpg">(jpeg 21k)</A>
-<A HREF="/philosophy/gif.html">no gifs due to patent problems</A>
+
 
 <P>
 

Index: software/plotutils/manual/plotutils.html
===================================================================
RCS file: /web/www/www/software/plotutils/manual/plotutils.html,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- software/plotutils/manual/plotutils.html    26 Oct 2003 21:42:49 -0000      
1.1
+++ software/plotutils/manual/plotutils.html    13 Oct 2006 19:24:08 -0000      
1.2
@@ -13,7 +13,7 @@
    ALT=" [image of the Head of a GNU] "
    WIDTH="129" HEIGHT="122">&#32;(jpeg 7k)</A>
 <A HREF="/graphics/gnu-head.jpg">(jpeg 21k)</A>
-<A HREF="/philosophy/gif.html">no gifs due to patent problems</A>
+
 <P>
 <P>
 <P><HR><P>

Index: software/queue/queue.html
===================================================================
RCS file: /web/www/www/software/queue/queue.html,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- software/queue/queue.html   3 Jun 2002 15:40:30 -0000       1.6
+++ software/queue/queue.html   13 Oct 2006 19:24:10 -0000      1.7
@@ -39,7 +39,7 @@
    ALT=" [image of the Head of a GNU] " BORDER="0"
    WIDTH="129" HEIGHT="122">&#32;(jpeg 7k)</A>
 <A HREF="/graphics/gnu-head.jpg">(jpeg 21k)</A>
-<A HREF="/philosophy/gif.html">no gifs due to patent problems</A>
+
 
 <P>
 <B>Queue</B> is a load-balancing system that lets users control their remote
@@ -206,7 +206,7 @@
 <P>
 Updated:
 <!-- timestamp start -->
-$Date: 2002/06/03 15:40:30 $ $Author: mohit $
+$Date: 2006/10/13 19:24:10 $ $Author: johnsu01 $
 <!-- timestamp end -->
 <HR>
 </BODY>

Index: software/sed/manual/sed.html
===================================================================
RCS file: /web/www/www/software/sed/manual/sed.html,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- software/sed/manual/sed.html        24 Oct 2003 23:51:15 -0000      1.1
+++ software/sed/manual/sed.html        13 Oct 2006 19:24:13 -0000      1.2
@@ -13,7 +13,7 @@
    ALT=" [image of the Head of a GNU] "
    WIDTH="129" HEIGHT="122">&#32;(jpeg 7k)</A>
 <A HREF="/graphics/gnu-head.jpg">(jpeg 21k)</A>
-<A HREF="/philosophy/gif.html">no gifs due to patent problems</A>
+
 <P>
 <P>
 <P><HR><P>

Index: software/sxml/sxml.html
===================================================================
RCS file: /web/www/www/software/sxml/sxml.html,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- software/sxml/sxml.html     5 Jul 2001 20:24:28 -0000       1.2
+++ software/sxml/sxml.html     13 Oct 2006 19:24:16 -0000      1.3
@@ -11,7 +11,7 @@
 ALT=" [image of the Head of a GNU] "
 WIDTH="129" HEIGHT="122">&#32;(jpeg 7k)</A>
 <A HREF="/graphics/gnu-head.jpg">(jpeg 21k)</A>
-<A HREF="/philosophy/gif.html">no gifs due to patent problems</A>
+
 
 <P>
 SXML is a tool to define and implement at same time a markup language.

Index: software/termutils/manual/termcap-1.3/termcap.html
===================================================================
RCS file: /web/www/www/software/termutils/manual/termcap-1.3/termcap.html,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- software/termutils/manual/termcap-1.3/termcap.html  8 Nov 2003 04:07:20 
-0000       1.1
+++ software/termutils/manual/termcap-1.3/termcap.html  13 Oct 2006 19:24:18 
-0000      1.2
@@ -13,7 +13,7 @@
    ALT=" [image of the Head of a GNU] "
    WIDTH="129" HEIGHT="122">&#32;(jpeg 7k)</A>
 <A HREF="/graphics/gnu-head.jpg">(jpeg 21k)</A>
-<A HREF="/philosophy/gif.html">no gifs due to patent problems</A>
+
 <P>
 <P>
 <P><HR><P>

Index: software/termutils/manual/termutils-2.0/tput.html
===================================================================
RCS file: /web/www/www/software/termutils/manual/termutils-2.0/tput.html,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- software/termutils/manual/termutils-2.0/tput.html   22 Oct 2003 18:41:29 
-0000      1.1
+++ software/termutils/manual/termutils-2.0/tput.html   13 Oct 2006 19:24:20 
-0000      1.2
@@ -13,7 +13,7 @@
    ALT=" [image of the Head of a GNU] "
    WIDTH="129" HEIGHT="122">&#32;(jpeg 7k)</A>
 <A HREF="/graphics/gnu-head.jpg">(jpeg 21k)</A>
-<A HREF="/philosophy/gif.html">no gifs due to patent problems</A>
+
 <P>
 <P>
 <P><HR><P>

Index: software/wget/manual/wget-1.8.1/wget.html
===================================================================
RCS file: /web/www/www/software/wget/manual/wget-1.8.1/wget.html,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- software/wget/manual/wget-1.8.1/wget.html   19 Oct 2003 23:07:42 -0000      
1.1
+++ software/wget/manual/wget-1.8.1/wget.html   13 Oct 2006 19:24:22 -0000      
1.2
@@ -13,7 +13,7 @@
    ALT=" [image of the Head of a GNU] "
    WIDTH="129" HEIGHT="122">&#32;(jpeg 7k)</A>
 <A HREF="/graphics/gnu-head.jpg">(jpeg 21k)</A>
-<A HREF="/philosophy/gif.html">no gifs due to patent problems</A>
+
 <P>
 <P>
 <P><HR><P>

Index: wwwin/graphics/agnuhead.html
===================================================================
RCS file: /web/www/www/wwwin/graphics/agnuhead.html,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- wwwin/graphics/agnuhead.html        5 May 2005 19:37:21 -0000       1.2
+++ wwwin/graphics/agnuhead.html        13 Oct 2006 19:24:25 -0000      1.3
@@ -70,7 +70,6 @@
 in the GNU Art Gallery.
 <P>
 
-<H3><A HREF="/philosophy/gif.html">No gifs due to patent problems.</A></H3>
 <P>
 
 <HR>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]