Free as in Freedom in Russian: Chapter 7. The dilemma of absolute morality


Free as in Freedom in Russian: Chapter 7. The dilemma of absolute morality

Free as in Freedom in Russian: Chapter 1. Fatal Printer


Free as in Freedom in Russian: Chapter 2. 2001: Hacker Odyssey


Free as in Freedom in Russian: Chapter 3. Portrait of a hacker in his youth


Free as in Freedom in Russian: Chapter 4. Debunk God


Free as in Freedom in Russian: Chapter 5. Stream of Freedom


Free as in Freedom in Russian: Chapter 6. Emacs Commune

The dilemma of absolute morality

At half past midnight on September 27, 1983, an unusual message appeared in the net.unix-wizards Usenet group signed rms@mit-oz. The title of the message was short and extremely tempting: "A New Implementation of UNIX." But instead of some ready-made new version of Unix, the reader found the call:

This Thanksgiving, I'm starting to write a new fully Unix compatible operating system called GNU (GNU's Not Unix). I will freely distribute it to anyone who wants it. I really need your time, money, code, equipment - any help.

In the eyes of an experienced Unix developer, the message looked like a mixture of idealism and high conceit. The author not only undertook to recreate from scratch an entire operating system, very developed and powerful, but also to improve it. The GNU system had to contain all the necessary components, such as a text editor, a shell, a compiler, and "a number of other things." They also promised some very attractive features that were not available in existing Unix systems: a graphical interface in the Lisp programming language, a fault-tolerant file system, and network protocols based on the MIT network architecture.

"GNU will be able to run Unix programs, but it will not be identical to the Unix system," wrote the author, "we will make all the necessary improvements that are overdue over the years of work in various operating systems."

Anticipating a skeptical reaction to his message, the author supplemented it with a brief autobiographical digression under the heading: "Who am I?":

I'm Richard Stallman, creator of the original EMACS editor, one of whose clones you've probably seen. I work at the AI ​​Lab at the Massachusetts Institute of Technology. I have extensive experience in developing compilers, editors, debuggers, command interpreters, ITS and Lisp Machine operating systems. Implemented terminal-independent screen support in ITS, as well as a fault-tolerant file system and two window systems for Lisp machines.

It just so happened that Stallman's intricate project did not start on Thanksgiving Day, as promised. It wasn't until January 1984 that Richard plunged headlong into Unix-style software development. From the point of view of the ITS system architect, it was like going from building Moorish palaces to building suburban shopping malls. However, the development of the Unix system also offered advantages. ITS, for all its power, had a weak point - it worked only on the PDP-10 computer from DEC. In the early 80s, the Lab abandoned the PDP-10, and ITS, which hackers compared to a busy city, turned into a ghost town. Unix, on the other hand, was originally designed with portability in mind from one computer architecture to another, so it was not in danger of such troubles. Developed by AT&T junior scientists, Unix slipped past the corporate radar and found a quiet home in the nonprofit world of science centers. With fewer resources than their fellow hackers at MIT, the Unix developers adapted their system to run on a zoo of assorted hardware. Mainly on the 16-bit PDP-11, which the Lab's hackers considered unsuitable for serious tasks, but also on 32-bit mainframes like the VAX 11/780. By 1983, companies such as Sun Microsystems had created relatively small desktop "workstation" computers that were as powerful as the old PDP-10 mainframe. The ubiquitous Unix also settled on these workstations.

Unix portability was provided by an additional layer of abstraction between applications and hardware. Instead of writing programs in the machine code of a particular computer, as the hackers of the Lab did when developing programs for the ITS on the PDP-10, the Unix developers used a high-level programming language, C, that was not tied to a specific hardware platform. At the same time, developers focused on standardizing the interfaces through which parts of the operating system interacted with each other. The result was a system where any part could be redone without affecting all other parts and without disrupting their work. And in order to transfer the system from one hardware architecture to another, it was also enough to remake only one part of the system, and not rewrite it entirely. Experts appreciated this fantastic level of flexibility and convenience, so Unix quickly spread throughout the computing world.

Stallman decided to create the GNU system because of the demise of ITS, the favorite brainchild of AI Lab hackers. The death of ITS was a blow to them, including Richard. If the story of the Xerox laser printer opened his eyes to the injustice of proprietary licenses, then the demise of ITS pushed him from rejecting proprietary software to actively opposing it.

The reasons for the death of ITS, like its code, went far into the past. By 1980, most of the Lab's hackers were already working on the Lisp machine and its operating system.

Lisp is an elegant programming language that is great for working with data whose structure is not known in advance. It was created by the pioneer of artificial intelligence research and the creator of the term "artificial intelligence" John McCarthy, who worked at MIT in the second half of the 50s. The name of the language is short for "LISt Processing" or "list processing". After McCarthy left MIT for Stanford, Lab hackers changed Lisp somewhat, creating its parochial MACLISP dialect, where the first 3 letters stood for the MAC project, thanks to which, in fact, the AI ​​Lab at MIT appeared. Led by system architect Richard Greenblatt, the lab's hackers developed a Lisp machine, a special computer for running Lisp programs, and an operating system for that computer—also, of course, written in Lisp.

By the early 80s, rival groups of hackers had founded two companies to make and sell Lisp machines. Greenblatt's company was called Lisp Machines Incorporated, or simply LMI. He hoped to do without outside investment and create a purely "hacker company". But most of the hackers have joined Symbolics, an ordinary commercial startup. In 1982, they had already completely left MIT.

Those who remained could be counted on the fingers of one hand, so programs and machines took longer and longer to repair, or not at all. And worst of all, according to Stallman, “demographic changes” began in the Laboratory. Hackers, who used to be in the minority, have almost disappeared, leaving the Laboratory at the complete disposal of teachers and students, whose attitude towards the PDP-10 was openly hostile.

In 1982, the AI ​​Lab received a replacement for their 12-year-old PDP-10, the DECSYSTEM 20. Applications written for the PDP-10 ran without problems on the new computer because the DECSYSTEM 20 was essentially an updated PDP-10, but here's the old one. the operating system did not fit at all - ITS had to be ported to a new computer, which means almost completely rewritten. And this is at a time when almost all the hackers who could do this have left the Laboratory. So the Twenex commercial operating system quickly took over on the new computer. The few hackers that stayed at MIT could only put up with it.

“Without hackers to pull the creation and maintenance of the operating system, we are doomed,” said faculty members and students, “we need a commercial system that is supported by some company so that it solves problems with this system itself.” Stallman recalls that this argument turned out to be a cruel mistake, but at the time it sounded convincing.

At first, hackers saw Twenex as another embodiment of an authoritarian corpocracy that they wanted to break. Even the name reflected the hostility of the hackers - in fact, the system was called TOPS-20, indicating continuity with TOPS-10, also a commercial DEC system for the PDP-10. But architecturally TOPS-20 had nothing to do with TOPS-10. It was based on the Tenex system that Bolt, Beranek and Newman developed for the PDP-10. . Stallman started calling the system "Twenex" just to avoid calling it TOPS-20. “The system was nowhere near the top of the line, so it didn't feel right to give it an official name,” recalls Stallman, “so I inserted a 'w' into 'Tenex' to make 'Twenex'.” (This name plays on the word "twenty", i.e. "twenty")

The computer running the Twenex/TOPS-20 was ironically called "Oz". The fact is that DECSYSTEM 20 required a small PDP-11 machine to operate the terminal. One hacker, seeing the PDP-11 connected to this computer for the first time, compared it to a pretentious performance of the Wizard of Oz. “I am the great and terrible Oz! he declared. “Just don’t look at the small fry I work from.”

But in the operating system of the new computer there was nothing funny anymore. Security and access control have been built into Twenex at a basic level, and its application utilities have also been designed with security in mind. The condescending jokes about the Lab's security systems turned into a serious battle for computer control. Administrators argued that without security systems, Twenex would be unstable and susceptible to errors. Hackers claimed that stability and reliability could be achieved much faster by editing the source code of the system. But there were already so few of them in the Laboratory that no one listened to them.

The hackers thought they could get around the security restrictions by giving all users “steering privileges”—elevated rights that give them the ability to do many things that a regular user is not allowed to do. But in this case, any user could take away "steering privileges" from any other user, and he could not return them to himself for lack of access rights. So the hackers decided to take control of the system by taking away "steering privileges" from everyone but themselves.

Guessing passwords and launching the debugger at system boot time did nothing. Having failed incoup d'état”, Stallman sent a message to all Lab employees.

“So far the aristocrats have been defeated,” he wrote, “but now they have taken over, and the attempt to seize power has not been successful.” Richard signed the message: "Radio Free OZ" so no one would guess it was him. An excellent disguise, considering that everyone in the Lab knew about Stallman's attitude to security systems and his mockery of passwords. However, Richard's aversion to passwords was known far beyond MIT. Almost the entire ARPAnet, the prototype of the Internet of those times, went to the Laboratory computers under Stallman's account. Such a "tourist" was, for example, Don Hopkins, a programmer from California, who learned through a hacker word of mouth that one could enter the famous ITS system at MIT simply by entering Stallman's 3 initials as a username and password.

“I am eternally grateful to MIT that I and many other people were able to freely use their computers,” says Hopkins, “it meant a lot to all of us.”

This "tourist" policy lasted for many years, while the ITS system lived, and the MIT management looked at it condescendingly. . But when Oz's machine became the main bridge from the Lab to the ARPAnet, everything changed. Stallman still provided access to his account under a known username and password, but the administrators demanded that he change the password and not give it to anyone else. Richard, citing his ethics, refused to work on Oz's car at all.

“When passwords began to appear on the computers of the AI ​​Lab, I decided to follow my conviction that passwords should not exist,” Stallman later said, “and since I believed that computers did not need security systems, I should not have supported these measures to implement them. ".

Stallman's refusal to kneel before Oz's great and terrible machine showed that tensions were growing between the hackers and the Lab's superiors. But this tension was only a pale shadow of the conflict that raged in the hacker collective itself, which was divided into 2 camps: LMI (Lisp Machines Incorporated) and Symbolics.

Symbolics received a lot of investment from outside, which attracted many Lab hackers. They worked on the Lisp machine system at MIT and beyond. By the end of 1980, the company had hired 14 Lab staff as consultants to develop its own version of the Lisp machine. The rest of the hackers, not counting Stallman, worked for LMI. Richard decided not to take sides, and out of habit was on his own.

At first, hackers hired by Symbolics continued to work at MIT, improving the Lisp machine system. They, like the LMI hackers, used the MIT license for their code. It required that the changes be returned to MIT, but did not require MIT to distribute the changes. However, during 1981, the hackers adhered to a gentleman's agreement that all their improvements were made to the MIT Lisp machine and distributed to all users of those machines. This state of affairs still retained some stability of the hacker team.

But on March 16, 1982 - Stallman remembers this day well because it was his birthday - the gentlemen's agreement came to an end. This happened at the behest of the Symbolics management, in this way they wanted to strangle their competitor - the LMI company, which had far fewer hackers working for it. Symbolics executives reasoned as follows: if LMI has many times fewer employees, then it turns out that the general work on the Lisp machine is beneficial for it, and if this exchange of developments is stopped, then LMI will be destroyed. To this end, they decided to abuse the letter of the license. Instead of making changes to the MIT version of the system that LMI could use, they began shipping Symbolics to MIT with a version of the system that they could tweak as they pleased. It appeared that any testing and editing of the Lisp machine code at MIT was in favor of Symbolics.

As the person in charge of maintaining the Lisp lab machine (with the help of Greenblatt for the first few months), Stallman was furious. The Symbolics hackers provided the code with hundreds of changes that caused errors. Taking this as an ultimatum, Stallman cut off the Lab's line of communication with Symbolics, vowed never to work on that company's machines again, and announced he was joining the MIT Lisp engine to support LMI. “In my eyes, the Lab was a neutral country, like Belgium in World War II,” says Stallman, “and if Germany invades Belgium, it declares war on Germany and joins Britain and France.”

When the Symbolics executives noticed that their latest innovations were still appearing on the MIT version of the Lisp machine, they got angry and accused the Lab's hackers of stealing the code. But Stallman did not violate copyright law in the slightest. He studied the code provided by Symbolics and made logical suggestions for future fixes and improvements, which he began to implement from scratch for the MIT Lisp machine. The Symbolics executives didn't believe it. They installed spyware on Stallman's terminal that recorded everything Richard did. So they hoped to collect evidence of code theft and show it to the MIT administration, but even by early 1983 there was almost nothing to show. All they had was a dozen or so places where the code of the two systems looked a little similar.

When the Lab administrators showed the Symbolics evidence to Stallman, he denied it, saying that the code was exactly similar, but not the same. And he turned the logic of the Symbolics management against himself: if these grains of similar code are all that they could dig up on him, then this only proves that Stallman did not actually steal the code. This was enough for Stallman's work to be approved by the Laboratory's managers, and he continued it until the end of 1983. .

But Stallman changed his approach. In order to protect himself and the project as much as possible from the claims of Symbolics, he completely stopped looking at their source codes. He began to write code exclusively from documentation. Richard did not expect the biggest innovations from Symbolics, but implemented it himself, then only added interfaces for compatibility with the Symbolics implementation, based on their documentation. He also read the Symbolics changelog to see what bugs they were fixing, and fixed those bugs on his own, in other ways.

The incident strengthened Stallman's resolve. By creating analogues of the new Symbolics functions, he persuaded the Lab staff to use the MIT version of the Lisp machine, which provided a good level of testing and bug-finding. And the MIT version was completely open to LMI. “I wanted to punish Symbolics at all costs,” says Stallman. This statement not only shows that Richard's character is far from pacifist, but also that the conflict over the Lisp machine hit him to the quick.

Stallman's desperation is understandable given what it looked like to him as the "destruction" of his "home", i.e. the hacker community and AI Lab culture. Levi later interviewed Stallman by e-mail, and Richard compared himself to Ishi, the last known member of the Yahi Indians who were exterminated in the Indian Wars of the 1860s and 1870s. This analogy gives the described events an epic, almost mythological scope. The hackers who worked for Symbolics saw it in a slightly different light: their company did not destroy or exterminate, but only did what should have been done long ago. By moving the Lisp-machine into the field of commerce, Symbolics changed the approach to designing programs - instead of cutting them according to the die-hard patterns of hackers, softer and more human norms of managers began to be used. And they regarded Stallman not as an adversary-fighter on guard of a just cause, but as a bearer of outdated thinking.

Oil was added to the fire and personal strife. Even before the advent of Symbolics, many hackers shunned Stallman, and now the situation has worsened many times over. “I was no longer invited on trips to Chinatown,” recalls Richard. “Greenblatt started the custom: when you want to have lunch, you go around your colleagues and invite them with you, or send them a message. Somewhere in 1980-1981 they stopped calling me. Not only did they not invite me, but, as one person later admitted to me, they pressured the others so that no one would tell me about the planned lunch trains.

Source: linux.org.ru

Add a comment