O'Reilly logo

Learning GNU Emacs, Second Edition by Eric S. Raymond, Bill Rosenblatt, Debra Cameron

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

GNU Emacs and the Free Software Foundation

You don’t need to know its history to use GNU Emacs, but its sources are an interesting part of recent computer history. The Free Software Foundation (FSF), which maintains and distributes GNU Emacs, has become an important part of computer culture.

A long time ago (1975), Richard Stallman at MIT wrote the first Emacs editor. According to the folklore, the original Emacs editor was a set of macros for TECO, an almost incomprehensible and now obsolete line editor. The name Emacs stands for “Editing Macros.” Tradition also has it that Emacs is a play on the name of a favorite ice cream store. Much has happened since 1975. TECO has slipped into deserved obscurity, and Emacs has been rewritten as an independent program. Several commercial versions of Emacs have appeared, of which Unipress Emacs and CCA Emacs were the most important. For several years, these commercial implementations were the Emacs editors you were most likely to run across outside of the academic world.

Stallman’s Emacs became prominent with the birth of the FSF and the GNU Project. GNU stands for “GNU’s Not UNIX” and refers to a complete UNIX-like operating system that Stallman and his associates are building. Stallman founded the FSF to guarantee that some software would always remain free. Free does not necessarily mean cheap (you may have to pay a fee to cover the cost of distribution); it most definitely means liberated from restrictions about how it can be used.

To understand what free means, we have to look at how software is typically distributed. Most commercial software comes with a highly restrictive license. You have to pay to use the program; you probably have to pay separately for each computer that runs the program; you may have to pay more money every year to continue using the program; in some cases, you even have to pay by the minute. You are most definitely not allowed to give the program to your friends, and you will probably never (unless you are very wealthy) see the program’s source code. If a commercial program is broken or doesn’t have some feature you need, you are completely at the mercy of the company you bought it from, and they may well decide to ignore you.

GNU Emacs has none of these limitations. If you can find someone to give it to you (and you usually can), you can get it for free. It is available from many public archives, including several anonymous FTP sites (we’ll discuss this subject in Appendix A). It is always distributed with the source code, so if you’re a programmer, you can add your own features and fix your own bugs. [2]You can give copies to your friends. You will never be asked to pay for the right to use it. About the only thing you cannot do is impose further restrictions on how GNU Emacs is used—that is, if you give a copy of it away or make some improvements to it, you cannot suddenly start charging licensing fees. GNU Emacs is free and will remain free. Your rights and responsibilities as a user are described fully in the General Public License, which appears in Preface

The FSF was created precisely to distribute programs under terms that encourage you to share, rather than hoard, software. The General Public License is designed to prevent an unfortunately common practice—namely, a company taking public domain code, making a few modifications and bug fixes, and then copyrighting the modified version. Once a company does this, the program has essentially become private property and disappears from the public domain. Stallman formed the foundation because he finds this practice abhorrent. As he explains in the GNU Manifesto, “I cannot in good conscience sign a nondisclosure agreement or a software license agreement.... So that I can continue to use computers without dishonor, I have decided to put together a sufficient body of free software so that I will be able to get along without any software that is not free.” Elsewhere in the manifesto, Stallman calls sharing software the “fundamental act of friendship among programmers.” Their software is free because it can be shared and will always be shareable—without restriction. FSF software is not under restrictive copyright laws, which Stallman objects to in principle. In fact, he coined the term copyleft to describe the FSF’s sharable software base. [3]

Since GNU Emacs was first released, many other pieces of the GNU operating environment have fallen into place: C and C++ compilers (gcc and g++), a very powerful debugger (gdb), substitutes for lex and yacc (called flex and bison, respectively), a UNIX shell (bash, which stands for “Bourne-Again Shell”), and many other programs and libraries. Many preexisting facilities, like the RCS source code control system, have been placed under the FSF’s copyleft. The foundation also distributes a version of Linux (Debian Linux). With Linux and GNU tools, it’s possible to have a complete operating environment consistent with the values set forth by the FSF.



[2] Fortunately, there are very few bugs: indeed, the FSF produces much better code than most for-profit companies, and they are very responsive to bug reports. But if you do find a bug and can’t wait for them to fix it, you can do it yourself.

[3] FSF programs, like Emacs, are often distributed with commercial systems. Even in these cases, the General Public License guarantees your right to use and give away their programs without restriction. Of course, the license does not apply to other proprietary software with which GNU tools have been shipped.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required