⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 the-gnu-project

📁 windows版本的emacs
💻
📖 第 1 页 / 共 4 页
字号:
   their own distribution terms, or even turned the work into a   proprietary software package.  I had no intention of doing a large   amount of work only to see it become useless for its intended purpose:   creating a new software-sharing community.   However, Professor Winston, then the head of the MIT AI Lab, kindly   invited me to keep using the lab's facilities.  The first steps   Shortly before beginning the GNU project, I heard about the Free   University Compiler Kit, also known as VUCK.  (The Dutch word for   "free" is written with a V.)  This was a compiler designed to handle   multiple languages, including C and Pascal, and to support multiple   target machines.  I wrote to its author asking if GNU could use it.   He responded derisively, stating that the university was free but the   compiler was not.  I therefore decided that my first program for the   GNU project would be a multi-language, multi-platform compiler.   Hoping to avoid the need to write the whole compiler myself, I   obtained the source code for the Pastel compiler, which was a   multi-platform compiler developed at Lawrence Livermore Lab.  It   supported, and was written in, an extended version of Pascal, designed   to be a system-programming language.  I added a C front end, and began   porting it to the Motorola 68000 computer.  But I had to give that up   when I discovered that the compiler needed many megabytes of stack   space, and the available 68000 Unix system would only allow 64k.   I then realized that the Pastel compiler functioned by parsing the   entire input file into a syntax tree, converting the whole syntax tree   into a chain of "instructions", and then generating the whole output   file, without ever freeing any storage.  At this point, I concluded I   would have to write a new compiler from scratch.  That new compiler is   now known as GCC; none of the Pastel compiler is used in it, but I   managed to adapt and use the C front end that I had written.  But that   was some years later; first, I worked on GNU Emacs.  GNU Emacs   I began work on GNU Emacs in September 1984, and in early 1985 it was   beginning to be usable.  This enabled me to begin using Unix systems to   do editing; having no interest in learning to use vi or ed, I had done   my editing on other kinds of machines until then.   At this point, people began wanting to use GNU Emacs, which raised the   question of how to distribute it.  Of course, I put it on the anonymous   ftp server on the MIT computer that I used.  (This computer,   prep.ai.mit.edu, thus became the principal GNU ftp distribution site;   when it was decommissioned a few years later, we transferred the name   to our new ftp server.)  But at that time, many of the interested   people were not on the Internet and could not get a copy by ftp.  So   the question was, what would I say to them?   I could have said, "Find a friend who is on the net and who will make   a copy for you."  Or I could have done what I did with the original   PDP-10 Emacs: tell them, "Mail me a tape and a SASE, and I will mail   it back with Emacs on it."  But I had no job, and I was looking for   ways to make money from free software.  So I announced that I would   mail a tape to whoever wanted one, for a fee of $150.  In this way, I   started a free software distribution business, the precursor of the   companies that today distribute entire Linux-based GNU systems.  Is a program free for every user?   If a program is free software when it leaves the hands of its author,   this does not necessarily mean it will be free software for everyone   who has a copy of it.  For example, public domain software (software   that is not copyrighted) is free software; but anyone can make a   proprietary modified version of it.  Likewise, many free programs are   copyrighted but distributed under simple permissive licenses which   allow proprietary modified versions.   The paradigmatic example of this problem is the X Window System.   Developed at MIT, and released as free software with a permissive   license, it was soon adopted by various computer companies.  They added   X to their proprietary Unix systems, in binary form only, and covered   by the same nondisclosure agreement.  These copies of X were no more   free software than Unix was.   The developers of the X Window System did not consider this a   problem--they expected and intended this to happen.  Their goal was not   freedom, just "success", defined as "having many users."  They did not   care whether these users had freedom, only that they should be   numerous.   This lead to a paradoxical situation where two different ways of   counting the amount of freedom gave different answers to the question,   "Is this program free?" If you judged based on the freedom provided by   the distribution terms of the MIT release, you would say that X was   free software.  But if you measured the freedom of the average user of   X, you would have to say it was proprietary software.  Most X users   were running the proprietary versions that came with Unix systems, not   the free version.  Copyleft and the GNU GPL   The goal of GNU was to give users freedom, not just to be popular.  So   we needed to use distribution terms that would prevent GNU software   from being turned into proprietary software.  The method we use is   called "copyleft".(1)   Copyleft uses copyright law, but flips it over to serve the opposite   of its usual purpose: instead of a means of privatizing software, it   becomes a means of keeping software free.   The central idea of copyleft is that we give everyone permission to   run the program, copy the program, modify the program, and distribute   modified versions--but not permission to add restrictions of their   own.  Thus, the crucial freedoms that define "free software" are   guaranteed to everyone who has a copy; they become inalienable rights.   For an effective copyleft, modified versions must also be free.  This   ensures that work based on ours becomes available to our community if   it is published.  When programmers who have jobs as programmers   volunteer to improve GNU software, it is copyleft that prevents their   employers from saying, "You can't share those changes, because we are   going to use them to make our proprietary version of the program."   The requirement that changes must be free is essential if we want to   ensure freedom for every user of the program.  The companies that   privatized the X Window System usually made some changes to port it to   their systems and hardware.  These changes were small compared with the   great extent of X, but they were not trivial.  If making changes were   an excuse to deny the users freedom, it would be easy for anyone to   take advantage of the excuse.   A related issue concerns combining a free program with non-free code.   Such a combination would inevitably be non-free; whichever freedoms   are lacking for the non-free part would be lacking for the whole as   well.  To permit such combinations would open a hole big enough to sink   a ship.  Therefore, a crucial requirement for copyleft is to plug this   hole: anything added to or combined with a copylefted program must be   such that the larger combined version is also free and copylefted.   The specific implementation of copyleft that we use for most GNU   software is the GNU General Public License, or GNU GPL for short.  We   have other kinds of copyleft that are used in specific circumstances.   GNU manuals are copylefted also, but use a much simpler kind of   copyleft, because the complexity of the GNU GPL is not necessary for   manuals.   (1) In 1984 or 1985, Don Hopkins (a very imaginative fellow) mailed me   a letter.  On the envelope he had written several amusing sayings,   including this one: "Copyleft--all rights reversed." I used the word   "copyleft" to name the distribution concept I was developing at the   time.  The Free Software Foundation   As interest in using Emacs was growing, other people became involved   in the GNU project, and we decided that it was time to seek funding   once again.  So in 1985 we created the Free Software Foundation, a   tax-exempt charity for free software development.  The FSF also took   over the Emacs tape distribution business; later it extended this by   adding other free software (both GNU and non-GNU) to the tape, and by   selling free manuals as well.   The FSF accepts donations, but most of its income has always come from   sales--of copies of free software, and of other related services.   Today it sells CD-ROMs of source code, CD-ROMs with binaries, nicely   printed manuals (all with freedom to redistribute and modify), and   Deluxe Distributions (where we build the whole collection of software   for your choice of platform).   Free Software Foundation employees have written and maintained a   number of GNU software packages.  Two notable ones are the C library   and the shell.  The GNU C library is what every program running on a   GNU/Linux system uses to communicate with Linux.  It was developed by a   member of the Free Software Foundation staff, Roland McGrath.  The   shell used on most GNU/Linux systems is BASH, the Bourne Again   Shell(1), which was developed by FSF employee Brian Fox.   We funded development of these programs because the GNU project was   not just about tools or a development environment.  Our goal was a   complete operating system, and these programs were needed for that   goal.   (1) "Bourne again Shell" is a joke on the name ``Bourne Shell'', which   was the usual shell on Unix.  Free software support   The free software philosophy rejects a specific widespread business   practice, but it is not against business.  When businesses respect the   users' freedom, we wish them success.   Selling copies of Emacs demonstrates one kind of free software   business.  When the FSF took over that business, I needed another way   to make a living.  I found it in selling services relating to the free   software I had developed.  This included teaching, for subjects such as   how to program GNU Emacs and how to customize GCC, and software   development, mostly porting GCC to new platforms.   Today each of these kinds of free software business is practiced by a   number of corporations.  Some distribute free software collections on   CD-ROM; others sell support at levels ranging from answering user   questions, to fixing bugs, to adding major new features.  We are even   beginning to see free software companies based on launching new free   software products.   Watch out, though--a number of companies that associate themselves   with the term "open source" actually base their business on non-free   software that works with free software.  These are not free software   companies, they are proprietary software companies whose products   tempt users away from freedom.  They call these "value added", which   reflects the values they would like us to adopt: convenience above   freedom.  If we value freedom more, we should call them "freedom   subtracted" products.  Technical goals   The principal goal of GNU was to be free software.  Even if GNU had no   technical advantage over Unix, it would have a social advantage,   allowing users to cooperate, and an ethical advantage, respecting the   user's freedom.   But it was natural to apply the known standards of good practice to   the work--for example, dynamically allocating data structures to avoid   arbitrary fixed size limits, and handling all the possible 8-bit codes   wherever that made sense.   In addition, we rejected the Unix focus on small memory size, by   deciding not to support 16-bit machines (it was clear that 32-bit   machines would be the norm by the time the GNU system was finished),   and to make no effort to reduce memory usage unless it exceeded a

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -