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

Fatal Printer

Fear Danians bringing gifts.
– Virgil, "Aeneid"

Again the new printer jammed the paper.

An hour earlier, Richard Stallman, a programmer at the Artificial Laboratory
MIT Intelligence (AI Labs), sent a 50-page document
printed on the office printer, and plunged into work. And now Richard
I looked up from what I was doing, went to the printer and saw a most unpleasant sight:
instead of the long-awaited 50 printed pages, there were only 4 in the tray
ready sheets. And those clearly referred to some other person’s document.
Richard's 50-page file got mixed up with someone's half-printed file in
intricacies of the office network, and the printer succumbed to this problem.

Waiting for a machine to do its job is commonplace.
for a programmer, and Stallman was just right to take on this problem
stoically. But it's one thing when you give a machine a task and do it
your own affairs, and it’s completely different when you have to stand next to
machine and control it. This was not the first time Richard had to
stand in front of the printer and watch the pages come out one by one
one. Like any good technician, Stallman had a very high regard for
efficiency of devices and programs. No wonder this
another disruption to the work process aroused Richard’s burning desire
get into the inside of the printer and put it in proper order.

But alas, Stallman was a programmer, not a mechanical engineer. That's why
All that remained was to watch the pages crawling out and think about
other ways to solve a annoying problem.

But the AI ​​Laboratory employees greeted this printer with delight and
with enthusiasm! It was presented by Xerox, it was its breakthrough
development – ​​modification of a fast photocopier. The printer not only did
copies, but also turned virtual data from office network files into
excellent looking documents. This device felt daring
innovative spirit of the famous Xerox laboratory in Palo Alto, he was
a harbinger of a revolution in desktop printing that would completely revolutionize
the entire industry by the end of the decade.

Burning with impatience, the Laboratory programmers immediately turned on the new
printer into a complex office network. The results exceeded the most daring
expectations. Pages were flying out at a speed of 1 per second, documents
began to print 10 times faster. In addition, the car was extremely
pedantic in her work: the circles looked like circles, not ovals, but
straight lines no longer resemble low-amplitude sinusoids.

In every sense, the Xerox gift was an offer you couldn't refuse.
refuse.

However, over time, the enthusiasm began to wane. As soon as the printer became
load to the maximum, problems emerged. What irritated me the most
the fact that the device chewed the paper too readily. Engineering Thinking
programmers quickly identified the root of the problem. The fact is that
Photocopiers traditionally require the constant presence of a person nearby.
Including in order to correct the paper if necessary. AND
when Xerox set about turning a photocopier into a printer, engineers
companies did not pay attention to this point and focused on
solving other, more pressing problems for the printer. Engineering speaking
language, the new Xerox printer had constant human participation
originally built into the mechanism.

By turning a photocopier into a printer, Xerox engineers introduced one thing
a change that has had far-reaching consequences. Instead of,
in order to subordinate the apparatus to one single operator, it was subordinated
to all users of the office network. The user was no longer standing next to
machine, controlling its operation, now he is through an intricate office network
sent a print job, hoping that the document would be printed like this
as required. Then the user went to the printer to pick up the finished
whole document, but instead found selectively printed
sheets.

It is unlikely that Stallman was the only one in the AI ​​Lab who noticed
problem, but he also thought about its solution. A few years before
Richard had a chance to solve a similar problem with his previous printer. For
he edited this on his personal work computer PDP-11
a program that ran on a PDP-10 mainframe and controlled the printer.
Stallman was unable to solve the problem of paper chewing; instead
this he inserted a code that forced the PDP-11 from time to time
check the printer status. If the machine chewed paper, the program
I just sent a notification to the working PDP-11s like “the printer is chewing
paper, needs repair." The solution turned out to be effective - notification
went directly to users who actively used the printer, so
that his antics with paper were often stopped immediately.

Of course, this was an ad-hoc solution - what programmers call
“a crutch,” but the crutch turned out to be quite elegant. He didn't correct
there was a problem with the printer mechanism, but I did the best I could
to do - established informative feedback between the user and the machine.
A few extra lines of code saved the Laboratory workers
AI for 10-15 minutes of working time weekly, saving them from
having to constantly run to check the printer. From point of view
programmer, Stallman's decision was based on collective wisdom
Laboratories.

Recalling that story, Richard said: “When you receive such a message, you will not
had to rely on someone else to fix the printer. You need
it was easy to get up and go to the printer. A minute or two after
as the printer began to chew the paper, two or three people came to him
employees. At least one of them knew exactly what needed to be done.”

Clever solutions like these have been the hallmark of the AI ​​Lab and its
programmers. In general, the best programmers of the Laboratory are several
treated the term “programmer” with contempt, preferring it
slang for "hacker". This definition more accurately reflected the essence of the work, which
included a variety of activities, from sophisticated intellectual amusements to
painstaking improvements to programs and computers. It also felt
an old-fashioned belief in American ingenuity. Hacker
It's not enough to just write a program that works. Hacker tries
show the power of your intellect to yourself and other hackers by placing
take on much more complex and difficult tasks - for example, make
program at the same time as fast, compact, powerful and
beautiful.

Companies like Xerox intentionally donated their products to large communities
hackers. It was a calculation that hackers would start using it,
They will become attached to her and then come to work for the company. In the 60s and
at the dawn of the 70s, hackers often wrote such high-quality and useful
programs that manufacturers willingly distributed them among their
clients.

So, faced with a paper-chewing new Xerox printer,
Stallman immediately thought of doing his old trick with him - “hack”
device control program. However, an unpleasant discovery awaited him.
– the printer did not come with any software, at least not in this
form so that Stallman or another programmer can read it and
edit. Until this point, most companies considered good
provide files with source code in a tone that is human-readable,
which provided complete information about program commands and the corresponding
machine functions. But Xerox this time provided the program only in
compiled, binary form. If a programmer tried to read
these files, he would only see endless streams of zeros and ones,
understandable to a machine, but not to a person.

There are programs called "disassemblers" that translate
ones and zeros into low-level machine instructions, but figuring out what
these instructions do - a very long and difficult process called
"reverse engineering". Reverse engineering a printer program is easy
could have taken much more time than the total correction of the chewed
paper over the next 5 years. Richard wasn't desperate enough
to decide to take such a step, and therefore he simply put the problem aside
long box.

Xerox's hostile policy was in stark contrast to normal practice
hacker communities. For example, to develop for personal
computer PDP-11 programs for controlling an old printer and
terminals, the AI ​​Lab needed a cross assembler that would assemble
programs for the PDP-11 on the PDP-10 mainframe. Lab hackers could
write a cross-assembler yourself, but Stallman, being a student at Harvard,
I found a similar program in the university computer laboratory. She
was written for the same mainframe, PDP-10, but for a different one
operating system. Richard had no idea who wrote this program,
because the source code didn't say anything about it. He just brought it
a copy of the source code to the Laboratory, edited it, and launched it on
PDP-10. Without unnecessary hassle and worries, the Laboratory received the program,
which was necessary for the operation of the office infrastructure. Stallman even
made the program more powerful by adding several functions that were not
was in the original. "We've been using this program for years,"
– he says not without pride.

In the eyes of a 70s programmer, this distribution model
program code was no different from good neighborly relations when
one shares a cup of sugar with another or lends a drill. But if you
when you borrow a drill, you deprive the owner of the opportunity to use it, then
In the case of copying programs, nothing like this happens. Neither
the author of the program, nor its other users, lose anything from
copying. But other people gain from this, as in the case of
hackers of the Laboratory that received a program with new functions, which
didn't even exist before. And these new functions can be just as many
you want to copy and distribute to other people. Stallman
remembers one programmer from the private company Bolt, Beranek &
Newman, who also received the program and edited it to run
under Twenex - another operating system for the PDP-10. He also
added a number of great features to the program, and Stallman copied them
to your version of the program in the Laboratory. After this they decided together
develop a program that has already inadvertently grown into a powerful product,
running on different operating systems.

Recalling the AI ​​Lab's software infrastructure, Stallman says:
“The programs evolved like a city. Some parts have changed
little by little, some - immediately and completely. New areas appeared. And you
could always look at the code and say, judging by the style, this part
written in the early 60s, and this one in the mid 70s.”

Thanks to this simple mental cooperation, hackers have created many
powerful and reliable systems in the Laboratory and outside it. Not every programmer
who shares this culture would call himself a hacker, but most of them
completely shared Richard Stallman's sentiments. If the program or
the corrected code solves your problem well, they will solve it just as well
this problem for anyone. Why not share this then?
decision, at least for moral reasons?

This concept of free cooperation was undermined by a combination of greed
and trade secrets, giving rise to a bizarre combination of secrecy and
cooperation. A good example is the early life of BSD. It's powerful
operating system created by scientists and engineers at the Californian
University at Berkeley based on Unix, purchased from AT&T. Price
copying BSD was equal to the cost of film, but with one condition -
schools could only obtain a film with a copy of BSD if they had an AT&T license,
which cost $50,000. It turned out that the Berkeley hackers were sharing
programs only to the extent that the company allowed them to do so
AT&T. And they didn't see anything strange in it.

Stallman wasn't angry at Xerox either, although he was disappointed. He never
I didn't think about asking the company for a copy of the source code. "They and
so they gave us a laser printer,” he said, “I couldn’t say
that they still owe us something. In addition, the sources were clearly missing
it is no coincidence that this was an internal decision of the company, and asking to change it
it was useless."

In the end, good news came: it turned out that a copy of the source
A University researcher has programs for a Xerox printer
Carnegie Mellon.

Communication with Carnegie Mellon did not bode well. In 1979
doctoral student Brian Reed shocked the community by refusing to share his
a text formatting program similar to Scribe. She was the first
a program of this type that used semantic commands
like “highlight this word” or “this paragraph is a quotation” instead
low-level “write this word in italics” or “increase the indentation for
this paragraph." Reed sold Scribe to a Pittsburgh-based company
Unilogic. According to Reed, at the end of his doctoral studies he was simply looking for a team
developers, onto whose shoulders it would be possible to shift the responsibility for
so that the source code of the program does not fall into public use (until now
it is unclear why Reed considered this unacceptable). To sweeten the pill
Reed agreed to add a set of time-based functions to the code, so
called "time bombs" - they turned a free copy of the program into
non-working after the 90-day trial period. To make
program to work again, users needed to pay the company and
receive a "disable" time bomb.

For Stallman, this was pure and blatant betrayal.
programmer ethics. Instead of following the principle of “share and
give it away,” Reed took the path of charging programmers for access to
information. But he didn't think much about it because he didn't often
I used Scribe.

Unilogic gave AI Lab a free copy of Scribe, but did not remove it
time bomb and didn't even mention it. For the time being the program
It worked, but one day it stopped. System hacker Howard Cannon
spent many hours debugging the program binary file, until finally
did not detect the time bomb and did not delete it. This really pissed him off
story, and he did not hesitate to tell other hackers about it, and convey
all my thoughts and emotions about the intentional “mistake” of Unilogic.

For reasons related to his work at the Laboratory, Stallman went to
Carnegie Mellon campus a couple of months later. He tried to find a man
who, according to the news he heard, had the source code for the program
printer. Fortunately, this man was in his office.

The conversation turned out to be frank and sharp, in the typical style of engineers.
After introducing himself, Stallman asked for a copy of the program's source code for
control of a Xerox laser printer. To his great amazement and
Unfortunately, the researcher refused.

“He said he promised the manufacturer not to give me a copy,” he says
Richard.

Memory is a funny thing. 20 years after this incident, memory
Stallman is full of blank spots. He forgot not only the reason why
came to Carnegie Mellon, but also about who was his counterpart in this
unpleasant conversation. According to Reed, this person was most likely
Robert Sproll, former Xerox Research and Development Center employee
Palo Alto, who later became director of the research
Sun Microsystems divisions. In the 70s Sproll was the host
developer of programs for Xerox laser printers. Sometime in 1980
Sproll accepted a position as a research fellow at Carnegie Mellon, where
continued to work on laser printers.

But when Sprall is asked questions about this conversation, he only deceives
hands. This is what he replies by email: “I can’t say
nothing definite, I don’t remember anything at all about this incident.”

"The code Stallman wanted was groundbreaking,
a true embodiment of art. Sproll wrote it a year before
came to Carnegie Mellon or something like that,” Reed says. If this
indeed so, there is a misunderstanding: Stallman needed
a program that MIT has been using for a long time, not some new one
her version. But in that brief conversation not a word was said about
any versions.

When interacting with audiences, Stallman regularly recalls the incident in
Carnegie Mellon emphasizes that the reluctance to
person to share source codes is just a consequence of the agreement on
non-disclosure, which was provided for in the contract between him and
by Xerox. Nowadays it is common practice for companies to require
maintain secrecy in exchange for access to the latest developments, but at the same time
NDAs were something new back then. It reflected the importance to Xerox of both
laser printers, and the information that was needed for their operation.
“Xerox tried to make laser printers a commercial product,”
recalls Reed, “it would be crazy for them to give away the source code to everyone
contract".

Stallman perceived the NDA completely differently. For him it was a refusal
Carnegie Mellon participate in the creative life of society, contrary to hitherto
encouraged to view programs as community resources. As if
would a peasant suddenly discover that centuries-old irrigation canals
dried out, and in an attempt to find the cause of the problem he would reach the sparkling
the novelty of a hydroelectric power plant with the Xerox logo.

It took Stallman some time to understand the true reason for the refusal -
a new format of interaction between the programmer and
companies. At first, he saw only personal refusal. "It's like that for me
I was angry that I couldn’t even find anything to say. I just turned around and
“I walked out silently,” Richard recalls, “maybe I even slammed the door, didn’t
I know. I remember only a burning desire to get out of there as quickly as possible. After all, I was walking
to them, expecting cooperation, and didn’t even think what I would do if I
they will refuse. And when this happened, I was literally speechless -
It stunned and upset me so much.”

Even 20 years later, he still feels the echo of that anger and
disappointments. The incident at Carnegie Mellon was a turning point in life
Richard, bringing him face to face with a new ethical problem. IN
the following months around Stallman and other AI Lab hackers
a lot of events will happen, compared to which those 30 seconds of anger and
disappointments at Carnegie Mellon will seem like nothing. Nevertheless,
Stallman pays particular attention to this incident. He was the first and
the most important point in the series of events that turned Richard from
a lone hacker, an intuitive opponent of centralized power, in
radical evangelist of freedom, equality and fraternity in
programming.

“This was my first encounter with a non-disclosure agreement, and I
I soon realized that people become victims of such agreements, - confidently
says Stallman, “My colleagues and I were such victims.
Laboratories."

Richard later explained: “If he had turned me down for personal reasons, it would have been
it would be difficult to call it a problem. I could count it in return
an asshole, and that's all. But his refusal was impersonal, he made me understand
that he will not cooperate not only with me, but with anyone at all
was. And this not only created a problem, but also made it really
huge."

Although there had been problems in previous years that made Stallman angry,
According to him, it was only after the incident at Carnegie Mellon that he realized that
the programming culture he considered sacred begins
change. “I was already convinced that programs should be publicly available
for everyone, but could not formulate it clearly. My thoughts on this matter
were too vague and chaotic to express them all
to the world. After the incident, I began to realize that the problem already existed, and
that it needs to be addressed right now.”

Being a top-notch programmer in one of the strongest institutes
peace, Richard did not pay much attention to the agreements and transactions of others
programmers - as long as they do not interfere with his main work. While in
The Xerox laser printer did not arrive at the laboratory, Stallman had everything
opportunities to look down on the machines and programs they suffered from
other users. After all, he could change these programs as he thought
necessary.

But the advent of a new printer threatened this freedom. Apparatus
worked well, even though he periodically chewed paper, but there was no
opportunities to change his behavior to suit the needs of the team. From point of view
software industry, closing the printer program was
a necessary step in business. Programs have become such a valuable asset that
companies could no longer afford to publish source codes,
especially when the programs embodied some breakthrough technologies. After all
then competitors could copy these practically for free
technologies for their products. But from Stallman's point of view, the printer was
Trojan Horse. After ten years of failed distribution attempts
"proprietary" programs for which free distribution is prohibited and
modification of the code, this is exactly the program that infiltrated the abode of hackers
in the most insidious way - under the guise of a gift.

That Xerox gave some programmers access to code in exchange for
maintaining secrecy was no less annoying, but Stallman was pained
admitted that at a younger age, he most likely would have agreed to
Xerox offer. The incident at Carnegie Mellon strengthened his moral
position, not only charging him with suspicion and anger towards
similar proposals in the future, but also by posing the question: what,
if one day a hacker comes up with a similar request, and now to him,
Richard will have to refuse to copy the sources, following the requirements
employer?

“When I am offered to betray my colleagues in the same way,
I remember my anger and disappointment when they did the same to me and
other members of the Laboratory, says Stallman, so
thank you very much, your program is wonderful, but I can't agree
on the terms of its use, so I’ll do without it.”

Richard will firmly retain the memory of this lesson in the turbulent 80s, when
many of his Laboratory colleagues will go to work in other companies,
bound by non-disclosure agreements. They probably told themselves
that this is a necessary evil on the way to working on the most interesting and
tempting projects. However, for Stallman, the very existence of the NDA
questions the moral value of the project. What could be good
in a project, even if it is technically exciting, if it does not serve the general
goals?

Very soon Stallman realized that disagreement with such proposals
has a significantly higher value than personal professional interests. Such
his uncompromising stance separates him from other hackers who, although
abhor secrecy, but are ready to go to moral lengths
compromises. Richard's opinion is clear: refusal to share source code
this is a betrayal of not only the research role
programming, but also the Golden Rule of morality, which states that your
your attitude towards others should be the same as you want to see
attitude towards yourself.

This is the importance of the laser printer story and the incident in
Carnegie Mellon. Without all this, as Stallman admits, his fate went
would take a completely different path, balancing between material wealth
commercial programmer and final disappointment in life,
spent writing program code invisible to anyone. Did not have
there would be no point in thinking about this problem, in which the rest even
didn't see the problem. And most importantly, there wouldn’t be that life-giving portion
anger, which gave Richard the energy and confidence to move forward.

“That day I decided that I would never agree to participate in
this,” says Stallman, referring to NDAs and the whole culture in general,
which promotes the exchange of personal freedom for some benefits and
Benefits.

“I decided that I would never make another person the victim I became.
one day myself."

Source: linux.org.ru

Add a comment