Rebel Code: Linus Torvalds, Open Source, and the War for the Soul of Software by Glyn Moody (IV)

One such person was Richard Stallman, who laboured for years to create a Unix - like system, written from scratch, what would be free. He worked alone at first; then he gradually received contributions form others, including - though neither of them knew it in 1991 - Linus whose Linux program would provide the last major piece still missing from Stallman's huge software jigsaw puzzle.

Richard Matthew Stallman was born in New York in 1953, an only child. His father owned a printing company and his mother was a teacher. He grew up on New York's West Side, and he thrived on the stimulation of living in a big city.

Evidence of Stallman's self-assurance in computing matter and f his broad intellectual skills was evident from his view when he went to Harvard in 1970 that it would have been "redundant" to study computing there. "I could learn programming by doing it, and so I decided I would use my classes to learn something else. I wanted to learn as much as possible, "he says, and he chose mathematics and physics and his subjects. "I loved math," he notes, "I used to tell people 'Math You' is my middle name."

But "the joy that I had from being able to do programming and actually produce something" soon became too strong, he says. "In physics and math I could only learn things, so the pleasure of accomplishing something with the computer gradually won my interest away." Despite this, Stallman graduated magna cum laude in physics in 1974.

Stallman was tremendously proud that the programs he wrote were "useful to dome people, much more than I could feel pride in merely learning something." This desire to do something that helped others, perhaps deriving in part from his mother's strongly held liberal convictions, soon became one of the driving forces of his life; it would have unexpected knock - on effects in the world of software that he was only just entering.

One of the key events during his time at Harvard occurred in1971, at the end of his freshman year, when he wandered over to a famous AI Lab. The AI Lab had become one of the world's greatest centres for research into Artificial Intelligence (AI), which endowed computers with human - like capabilities. Dealing with the magnitude of this task required the most advanced computer technology of the time, and the AI Lab attracted some of the world's best programmers.

Although the visit in 1971 to one of the Meccas of computing appears surprisingly delayed, Stallman didn't find out about its existence until then. Moreover, he says, "I was sort of timid, I didn't know anybody there, I didn't know how they would respond to somebody like me. But eventually I summoned up the courage to go there and see what there was."

It all proved pleasantly easy. "I went around to people, said I'd like some documentation [about their computer], and someone suggested to me, 'Well, maybe you'd like a summer job, too.' And they brought me over to somebody else who was a manager, who talked with me, and said, 'OK, we'll hire you.'" Little did he suspect it at the time, but Stallman was about to enter a kind of hacker's paradise.

The hot-house environment created by a tightly knit bunch of great programmers inventing and exploring the new worlds opened up by computing is vividly evoked in Steven Levy's 1984 book Hackers. Levy describes the classic hacker life: feats of virtuoso coding that ignored minor irritations like times of the day or night; sleeping on the floor of the AI Lab when exhaustion finally won out over inspiration; the countless Chinese meals, the heated conversations, the love of the word-play, the pranks. "FUN" was central to what might be considered the golden age of hacking; "We had fun writing programs, we had fun playing hacks on each other," Stallman says. He defines the hacker spirit as "playful cleverness."

This haven of playful cleverness lasted nearly ten years after Stallman took his summer job at the AI Lab. His work consisted of adding capabilities to the operating system for the AI Lab's Digital PDP-10 mini-computer. The software was called ITS, the Incompatible Time - Sharing System - a conscious dig at the earlier Compatible Time-Sharing System, CTSS, which had been used to develop Multics, the progenitor of Unix. Although there was no real plan to his work - "I was just going along doing my usual 'think up a feature and add it' type stuff," Stallman says - the result was one of the most famous and powerful pieces of software ever written. Even if today it is little known outside programming circles. It is an editor program called Emacs, which stands for Editing MACroS.

In the text-based pre-graphical world that existed before the Apple Macintosh and Microsoft Windows, the editor was a fundamental program for creating and manipulating text, as central to the way people worked hen as the Web browser is for the Internet age.

The previous editor on ITS was Called TECO, which stood for Text Editor and Corrector, and also referred to a language of the same name. "People no longer edited by typing TECO commands, " Stallman explains. "Instead, people wrote large collections of TECO programs called macros, and users invoked the, across." The move to macros provided users with more immediate onscreen feedback. "Emacs was designed to synthesize the best ideas of the other editors written in TECO, and make one that would replace them and have all the best characteristics and features of them all."

The first Emacs was created in 1975. Initially, it was used only at MIT - "not just within the AI Lab; there were a couple of neighbouring labs that used ITS also" - and Emacs ran only on ITS. A year or two later, however, "somebody ported TECO so it would work on another time-sharing system," Stallman recalls.

"Porting" refers to the process of translating a program to work on new hardware; once TECO could run elsewhere, so could Emacs.

As well as starting the spread of Emacs throughout the wider world, this move later had other important consequences. When he sent out copies, Stallman established an "informal rule that anyone making improvements had to send them back" to him. This "informal rule," once crystallized, would become the basis of the entire free software movement and one of the crucial factors for its success.

The reason for the informal requirement was that Stallman was sending copies to those outside the immediate hacker community at the AI Lab who "didn't have experience of it at all; so I didn't take for granted that they would want to share, " he says. And it had become increasingly obvious to him how important this sharing was to the very existence of the world he was so happy to be a part of. "I'd though about a way of life," Stallman recalls. "I wasn't the only one to think about it, but I thought more about this aspect of it than other people."

The question of sharing, apparently incidental to the business of writing computer programmes, proved central to events that occurred in the early 1980s. These events not only ended the unique community that had flourished for so long at the AI Lab but drove Stallman to feats of programming probably never matched before of since. They also lead directly to Stallman's resolve to write a free Unix clone from scratch - single-handedly if need be.

At the centre of these events was something called the Lisp Machine. The programming language Lisp (short for List Processing) is, like Emacs, little known today outside programming circles; as with Stallman's editor, Lisp enjoys a near-mythical status within that group. Stallman describes Lisp simply as "a more powerful and elegant language than any of the others." If Emacs was the editor of the hackers, Lisp was their language.

Because Lisp was so central to the computing research at the AI Lab, one of they key projects there had been the design of the Lisp Machine, a hardware system that was optimised for running Lisp programs. By allying the power of Lisp with the speed of dedicated hardware, a new generation of computing tasks could be tackled.

The person who had designed the Lisp machine, Richard Greenblatt - described by Levy as "the hacker's hacker" - wanted to found a new venture. Stallman recalls that "he wanted to make what he called a 'hacker company,' which would mean that it would be less controlled by management which was unfriendly to hackers and most companies, and it would have nicer policies in some way.

"One of the ideas was they wouldn't get outside investors," Stallman continues, "because outside investors would insist on imposing all the usual ways of doing things that would make it ugly. And another idea was that they wouldn't just hire away the hacker's from the [AI] Lab, but would hire them part-time, so the lab would still have its hacker coacher, and the community that we belong to wouldn't be wiped out." But this vision was never realized.

"The other people [in the AI Lab] said that they didn't trust Greenblatt to run a business," Stallman says. As a result a company called Symbolics was formed without Greenblatt, who, undaunted, went on to set up his own, called Lisp Machine Incorporated (LMI). But as Stallman recalls, "Symbolics had more money and hired several of the best hackers away from the Lab and a year later they hired the rest of the hackers except for me and Greenblatt. And the result was that my community was wiped out."

Stallman is still moved when he recalls these events. His beloved Lab "felt like a ghost town," he says. "It was desolate, and I was grief - stricken."

Not only were his friends and colleagues leaving but he was loosing ITS as a result. "At that time, the AI Lab was buying a new computer," he says, "and there were no hackers to port ITS to it" because all the hackers had been hired away. "Everything was dying."

This turn of events might have left Stallman in despair, but he channelled his pain into an anger that would spur him on to undertake a crusade that continues to this day. He decided to fight back in the only way he knew how: by coding. As the Symbolics development team - largely the former hackers of the AI Lab - made additions to their version of the software for the Lisp Machine, Stallman set about reproducing those same features in the version of the software that the AI Lab used.

"I had myself taken off all mailing lists, because I wanted nothing to distract me. I knew I had to compete with a much larger army and that I would have to do the work of several people; I'd have to work in the most focused way I possibly could," he says.

Because LMI and Symbolics both had the right to use features form the AI Lab's software for the Lisp machine - and Symbolics already had the new features - Stallman enabled LMI to match every move of Symbolics, and so denied Symbolics any advantage from its larger team of developers.

Looking back Stallman says that this period beginning March 1982 saw "absolutely" the most intense coding he had ever done; it probably represents one of the most sustained bouts of one-person programming in history.

"In some ways it was very comfortable because I was doing almost nothing else," he says, "and I would go to sleep whenever I felt sleepy; when I woke up I would go back to coding; and when I felt sleepy again I'd go to sleep again. I had nothing like a daily schedule. I'd sleep probably for a few hours one and half times a day, and it was wonderful; I felt more awake than I've ever felt. And I got a tremendous amount of work done [and] I did it tremendously efficiently." Although "it was exhilarating sometimes, sometimes it was terribly wearying. It was in some ways terribly lonesome, but I kept doing it [and] I wouldn't let anything stop me," he says.

Stallman kept up this unprecedented feat for nearly two years. But by 1983, the situation was beginning to change. On the plus side, "LMI was getting bigger and was able to hire some programmers," he remembers, "so I could see that LMI was going to be able to do this work for itself." But more negatively, Symbolics had designed a new kind of Lisp machine, so "there was no hope and not much point, either, in making the MIT version of the system [software] run on those machines," he acknowledges.

In hindsight, this situation provided an important demonstration of one of the key factors of the new way of developing programs that free software in general and Linux in particular would build on in the coming years. As Stallman explains, "I could write code, but I couldn't test everything myself. Users had to find the bugs." Consequently, "as the AI Lab switched over to [Symbolics' new] machines, I would lose my ability to do the job" of producing good code for the LMI machine because nobody could test it at the Lab. 1 would have been unable to continue," he says.

This development proved a blessing in disguise. "I decided I didn't want to just continue punishing Symbolics forever. They destroyed my community; now I [wanted] to build something to replace it," he says. "I decided I would develop a free operating system, and in this way lay the foundation for a new community like the one that had been wiped out."

Another important consideration in all this, he recalls, was that "the MIT Lisp Machine system was proprietary software. It was licensed by MIT to Symbolics and LMI, and I wasn't happy with that" because the essence of proprietary software is that it cannot be shared; this stifled the formation of the kind of software community that Stallman now wished to create. Working on the MIT Lisp Machine software had in some ways revealed itself to have been a wrong turn.