In the late 1970s, Richard Stallman had an issue with a new printer installed in the MIT AI Lab, where he worked at the time, which ran
proprietary firmware. Richard Stallman was frustrated that he could not receive a copy of the printer software and edit the code to solve his problem. This early experience made him realize limits of non-free software was a social issue. Richard Stallman announced his intent to start coding the GNU Project in a
Usenet message in September 1983. Despite never having used Unix prior, Stallman felt that it was the most appropriate system design to use as a basis for the GNU Project, as it was portable and "fairly clean". When the GNU Project first started it had an
Emacs text editor with
Lisp for writing editor commands, a source level
debugger, a
yacc-compatible
parser generator, and a
linker. The GNU system required its own
C compiler and tools to be free software, so these also had to be developed. By June 1987, the project had accumulated and developed free software for an
assembler, an almost finished portable optimizing C compiler (
GCC), an editor (
GNU Emacs), and various Unix utilities (such as
ls,
grep,
awk,
make and
ld). Richard Stallman also mentioned in the
GNU manifesto that an initial kernel exists for the GNU operating system. That kernel was soon revealed to be the
TRIX kernel. Developers attempted to use TRIX as the base of the GNU kernel, but abandoned the effort in favour of
GNU Mach. Once the
kernel and the compiler were finished, GNU was able to be used for
program development. The main goal was to create many other applications to be like the Unix system. GNU was able to run Unix programs, but was not identical to it. GNU incorporated longer file names, file version numbers, and a crash-proof file system. The GNU Manifesto was written to gain support and participation from others for the project. Programmers were encouraged to take part in any aspect of the project that interested them. People could donate funds, computer parts, or even their own time to write code and programs for the project. The origins and development of most aspects of the GNU Project (and free software in general) are shared in a detailed narrative in the Emacs help system. (C-h g runs the Emacs editor command describe-gnu-project.) It is the same detailed history as at their web site. == GNU Manifesto ==