home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 4 / FreshFish_May-June1994.bin / bbs / gnu / emacs-18.59-bin.lha / lib / emacs / 18.59 / etc / INTERVIEW < prev    next >
Text File  |  1987-09-16  |  25KB  |  435 lines

  1.  
  2.                GNU'S NOT UNIX
  3.  
  4.          Conducted by David Betz and Jon Edwards
  5.  
  6.           Richard Stallman discusses his public-domain
  7.             UNIX-compatible software system
  8.                with BYTE editors
  9.                   (July 1986)
  10.  
  11. Copyright (C) 1986 Richard Stallman.  Permission is granted to make and
  12. distribute copies of this article as long as the copyright and this notice
  13. appear on all copies.
  14.  
  15. Richard Stallman has undertaken probably the most ambitious free software
  16. development project to date, the GNU system.  In his GNU Manifesto,
  17. published in the March 1985 issue of Dr. Dobb's Journal, Stallman described
  18. GNU as a "complete Unix-compatible software system which I am writing so
  19. that I can give it away free to everyone who can use it...  Once GNU is
  20. written, everyone will be able to obtain good system software free, just
  21. like air."  (GNU is an acronym for GNU's Not UNIX; the "G" is pronounced.)
  22.  
  23.    Stallman is widely known as the author of EMACS, a powerful text editor
  24. that he developed at the MIT Artificial Intelligence Laboratory.  It is no
  25. coincidence that the first piece of software produced as part of the GNU
  26. project was a new implementation of EMACS.  GNU EMACS has already achieved a
  27. reputation as one of the best implementations of EMACS currently available
  28. at any price.
  29.  
  30. BYTE: We read your GNU Manifesto in the March 1985 issue of Dr. Dobb's.
  31. What has happened since?  Was that really the beginning, and how have you
  32. progressed since then?
  33.  
  34. Stallman: The publication in Dr. Dobb's wasn't the beginning of the
  35. project.  I wrote the GNU Manifesto when I was getting ready to start the
  36. project, as a proposal to ask computer manufacturers for funding.  They
  37. didn't want to get involved, and I decided that rather than spend my time
  38. trying to pursue funds, I ought to spend it writing code.  The manifesto was
  39. published about a year and a half after I had written it, when I had barely
  40. begun distributing the GNU EMACS.  Since that time, in addition to making
  41. GNU EMACS more complete and making it run on many more computers, I have
  42. nearly finished the optimizing C compiler and all the other software that
  43. is needed for running C programs.  This includes a source-level debugger
  44. that has many features that the other source-level debuggers on UNIX don't
  45. have.  For example, it has convenience variables within the debugger so you
  46. can save values, and it also has a history of all the values that you have
  47. printed out, making it tremendously easier to chase around list structures.
  48.  
  49. BYTE: You have finished an editor that is now widely distributed and you
  50. are about to finish the compiler.
  51.  
  52. Stallman: I expect that it will be finished this October.
  53.  
  54. BYTE: What about the kernel?
  55.  
  56. Stallman: I'm currently planning to start with the kernel that was written
  57. at MIT and was released to the public recently with the idea that I would
  58. use it.  This kernel is called TRIX; it's based on remote procedure call.  I
  59. still need to add compatibility for a lot of the features of UNIX which it
  60. doesn't have currently.  I haven't started to work on that yet.  I'm
  61. finishing the compiler before I go to work on the kernel.  I am also going
  62. to have to rewrite the file system.  I intend to make it failsafe just by
  63. having it write blocks in the proper order so that the disk structure is
  64. always consistent.  Then I want to add version numbers.  I have a complicated
  65. scheme to reconcile version numbers with the way people usually use UNIX.
  66. You have to be able to specify filenames without version numbers, but you
  67. also have to be able to specify them with explicit version numbers, and
  68. these both need to work with ordinary UNIX programs that have not been
  69. modified in any way to deal with the existence of this feature.  I think I
  70. have a scheme for doing this, and only trying it will show me whether it
  71. really does the job.
  72.  
  73. BYTE: Do you have a brief description you can give us as to how GNU as a
  74. system will be superior to other systems?  We know that one of your goals is
  75. to produce something that is compatible with UNIX.  But at least in the area
  76. of file systems you have already said that you are going to go beyond UNIX
  77. and produce something that is better.
  78.  
  79. Stallman: The C compiler will produce better code and run faster.  The
  80. debugger is better.  With each piece I may or may not find a way to improve
  81. it.  But there is no one answer to this question.  To some extent I am
  82. getting the benefit of reimplementation, which makes many systems much
  83. better.  To some extent it's because I have been in the field a long time
  84. and worked on many other systems.  I therefore have many ideas to bring to
  85. bear.  One way in which it will be better is that practically everything in
  86. the system will work on files of any size, on lines of any size, with any
  87. characters appearing in them.  The UNIX system is very bad in that regard.
  88. It's not anything new as a principle of software engineering that you
  89. shouldn't have arbitrary limits.  But it just was the standard practice in
  90. writing UNIX to put those in all the time, possibly just because they were
  91. writing it for a very small computer.  The only limit in the GNU system is
  92. when your program runs out of memory because it tried to work on too much
  93. data and there is no place to keep it all.
  94.  
  95. BYTE: And that isn't likely to be hit if you've got virtual memory.  You may
  96. just take forever to come up with the solution.
  97.  
  98. Stallman: Actually these limits tend to hit in a time long before you take
  99. forever to come up with the solution.
  100.  
  101. BYTE: Can you say something about what types of machines and environments
  102. GNU EMACS in particular has been made to run under?  It's now running on
  103. VAXes; has it migrated in any form to personal computers?
  104.  
  105. Stallman: I'm not sure what you mean by personal computers.  For example, is
  106. a Sun a personal computer?  GNU EMACS requires at least a megabyte of
  107. available memory and preferably more.  It is normally used on machines that
  108. have virtual memory.  Except for various technical problems in a few C
  109. compilers, almost any machine with virtual memory and running a fairly
  110. recent version of UNIX will run GNU EMACS, and most of them currently do.
  111.  
  112. BYTE: Has anyone tried to port it to Ataris or Macintoshes?
  113.  
  114. Stallman: The Atari 1040ST still doesn't have quite enough memory.  The next
  115. Atari machine, I expect, will run it.  I also think that future Ataris will
  116. have some forms of memory mapping.  Of course, I am not designing the
  117. software to run on the kinds of computers that are prevalent today.  I knew
  118. when I started this project it was going to take a few years.  I therefore
  119. decided that I didn't want to make a worse system by taking on the
  120. additional challenge of making it run in the currently constrained
  121. environment.  So instead I decided I'm going to write it in the way that
  122. seems the most natural and best.  I am confident that in a couple of years
  123. machines of sufficient size will be prevalent.  In fact, increases in memory
  124. size are happening so fast it surprises me how slow most of the people are
  125. to put in virtual memory; I think it is totally essential.
  126.  
  127. BYTE: I think people don't really view it as being necessary for
  128. single-user machines.
  129.  
  130. Stallman: They don't understand that single user doesn't mean single
  131. program.  Certainly for any UNIX-like system it's important to be able to
  132. run lots of different processes at the same time even if there is only one
  133. of you.  You could run GNU EMACS on a nonvirtual-memory machine with enough
  134. memory, but you couldn't run the rest of the GNU system very well or a UNIX
  135. system very well.
  136.  
  137. BYTE: How much of LISP is present in GNU EMACS?  It occurred to me that it
  138. may be useful to use that as a tool for learning LISP.
  139.  
  140. Stallman: You can certainly do that.  GNU EMACS contains a complete,
  141. although not very powerful, LISP system.  It's powerful enough for writing
  142. editor commands.  It's not comparable with, say, a Common LISP System,
  143. something you could really use for system programming, but it has all the
  144. things that LISP needs to have.
  145.  
  146. BYTE: Do you have any predictions about when you would be likely to
  147. distribute a workable environment in which, if we put it on our machines or
  148. workstations, we could actually get reasonable work done without using
  149. anyt