1
0
Fork 0

Chapter 1 translation

primary
dump_stack() 2019-06-15 00:50:08 +00:00
parent ab27bc5e58
commit 2fe70449fa
Signed by: dump_stack
GPG Key ID: BE44DA8C062D87DC
1 changed files with 52 additions and 50 deletions

View File

@ -7,108 +7,110 @@
%% no Back-Cover Texts. A copy of the license is included in the
%% file called ``gfdl.tex''.
\chapter{For Want of a Printer}
\chapter{Роковой принтер}
\begin{quotation}
\begin{flushright}
I fear the Greeks. Even when they bring gifts.\\
-- Virgil, \textit{The Aeneid}
Бойтесь данайцев, дары приносящих.\\
-- Вергилий, \textit{«Энеида»}
\end{flushright}
\end{quotation}
The new printer was jammed, again.
Опять новый принтер зажевал бумагу.
Richard M. Stallman, a staff software programmer at the Massachusetts Institute of Technology's Artificial Intelligence Laboratory (AI Lab), discovered the malfunction the hard way. An hour after sending off a 50-page file to the office laser printer, Stallman, 27, broke off a productive work session to retrieve his documents. Upon arrival, he found only four pages in the printer's tray. To make matters even more frustrating, the four pages belonged to another user, meaning that Stallman's print job and the unfinished portion of somebody else's print job were still trapped somewhere within the electrical plumbing of the lab's computer network.
Часом ранее Ричард Столлман, программист Лаборатории Искусственного Интеллекта МТИ (Лаборатории ИИ), отправил 50-страничный документ печататься на офисном принтере, и погрузился в работу. А сейчас Ричард оторвался от дела, подошёл к принтеру и увидел пренеприятнейшее зрелище: вместо долгожданных 50 отпечатанных страниц в лотке лежали только 4 готовых листа. Да и те явно относились к какому-то чужому документу. Файл Ричарда на 50 страниц спутался с чьим-то недопечатанным файлом в хитросплетениях офисной сети, и принтер пасовал перед этой проблемой.
Waiting for machines is an occupational hazard when you're a software programmer, so Stallman took his frustration with a grain of salt. Still, the difference between waiting for a machine and waiting on a machine is a sizable one. It wasn't the first time he'd been forced to stand over the printer, watching pages print out one by one. As a person who spent the bulk of his days and nights improving the efficiency of machines and the software programs that controlled them, Stallman felt a natural urge to open up the machine, look at the guts, and seek out the root of the problem.
Ждать, пока машина выполнит возложенную на неё работу -- обычное дело для программиста, и Столлману впору было отнестись к этой проблеме стоически. Но одно дело, когда вы даёте машине задачу и занимаетесь своими делами, и совсем другое — когда вам приходится стоять рядом с машиной и контролировать её. Далеко не в первый раз Ричарду приходилось стоять перед принтером и следить за тем, как страницы вылезают одна за одной. Как всякий хороший технарь, Столлман очень высоко ценил эффективность работы устройств и программ. Неудивительно, что этот очередной срыв рабочего процесса возбудил у Ричарда горячее желание залезть во внутренности принтера и навести там должный порядок.
Unfortunately, Stallman's skills as a computer programmer did not extend to the mechanical-engineering realm. As freshly printed documents poured out of the machine, Stallman had a chance to reflect on other ways to circumvent the printing jam problem.
Но увы -- Столлман был программистом, а не инженером-механиком. Поэтому оставалось лишь наблюдать за вылезающими страницами и раздумывать о других путях решения надоевшей проблемы.
How long ago had it been that the staff members at the AI Lab had welcomed the new printer with open arms? Stallman wondered. The machine had been a donation from the Xerox Corporation. A cutting edge prototype, it was a modified version of a fast Xerox photocopier. Only instead of making copies, it relied on software data piped in over a computer network to turn that data into professional-looking documents. Created by engineers at the world-famous Xerox Palo Alto Research Facility, it was, quite simply, an early taste of the desktop-printing revolution that would seize the rest of the computing industry by the end of the decade.
А ведь этот принтер сотрудники Лаборатории ИИ встречали с восторгом и воодушевлением! Его подарила компания Xerox, это была её прорывная разработка -- модификация быстрого светокопира. Принтер не только делал копии, но и превращал виртуальные данные из файлов офисной сети в превосходно выглядящие документы. В этом аппарате чувствовался дерзкий инновационных дух знаменитой лаборатории Xerox в Пало-Альто, он был предвестником революции в настольной печати, что полностью перевернула всю индустрию к исходу десятилетия.
Driven by an instinctual urge to play with the best new equipment, programmers at the AI Lab promptly integrated the new machine into the lab's sophisticated computing infrastructure. The results had been immediately pleasing. Unlike the lab's old printer, the new Xerox machine was fast. Pages came flying out at a rate of one per second, turning a 20-minute print job into a 2-minute print job. The new machine was also more precise. Circles came out looking like circles, not ovals. Straight lines came out looking like straight lines, not low-amplitude sine waves.
Сгорая от нетерпения, программисты Лаборатории тут же включили новый принтер в сложнейшую офисную сеть. Результаты превзошли самые смелые ожидания. Страницы вылетали со скоростью 1 штука в секунду, документы стали печататься в 10 раз быстрее. Кроме того, машина была предельно педантична в своей работе: круги выглядели кругами, а не овалами, а прямые линии перестали напоминать низкоамплитудные синусоиды.
It was, for all intents and purposes, a gift too good to refuse.
Во всех смыслах, подарок Xerox был предложением, от которого невозможно отказаться.
Once the machine was in use, its flaws began to surface. Chief among the drawbacks was the machine's susceptibility to paper jams. Engineering-minded programmers quickly understood the reason behind the flaw. As a photocopier, the machine generally required the direct oversight of a human operator. Figuring that these human operators would always be on hand to fix a paper jam, if it occurred, Xerox engineers had devoted their time and energies to eliminating other pesky problems. In engineering terms, user diligence was built into the system.
Однако со временем восторги пошли на убыль. Как только принтер стали нагружать по максимуму, обнаружились проблемы. Сильнее всего раздражало то, что аппарат чересчур охотно зажёвывал бумагу. Инженерное мышление программистов быстро выявило корень проблемы. Дело в том, что светокопиры традиционно требуют постоянного присутствия человека рядом. В том числе и для того, чтобы поправлять бумагу в случае надобности. И когда Xerox взялся за превращение светокопира в принтер, инженеры компании не обратили внимания на этот момент и сосредоточились на решении других, более насущных для принтера проблем. Говоря инженерным языком, у нового принтера Xerox постоянное участие человека оказалось изначально встроено в механизм.
In modifying the machine for printer use, Xerox engineers had changed the user-machine relationship in a subtle but profound way. Instead of making the machine subservient to an individual human operator, they made it subservient to an entire networked population of human operators. Instead of standing directly over the machine, a human user on one end of the network sent his print command through an extended bucket brigade of machines, expecting the desired content to arrive at the targeted destination and in proper form. It wasn't until he finally went to check up on the final output that he realized how little of it had really been printed.
Превращая светокопир в принтер, инженеры Xerox внесли в него одно изменение, которое породило далеко идущие последствия. Вместо того, чтобы подчинить аппарат одному-единственному оператору, его подчинили всем пользователям офисной сети. Пользователь теперь не стоял рядом с машиной, контролируя её работу, теперь он через запутанную офисную сеть высылал задание на печать, надеясь, что документ будет напечатан так, как требуется. Потом пользователь шёл к принтеру, чтобы забрать готовый цельный документ, но вместо него обнаруживал выборочно напечатанные листы.
Stallman was hardly the only AI Lab denizen to notice the problem, but he also thought of a remedy. Years before, for the lab's previous printer, Stallman had solved a similar problem by modifying the software program that regulated the printer, on a small PDP-11 machine, as well as the Incompatible Timesharing System that ran on the main PDP-10 computer. Stallman couldn't eliminate paper jams, but he could insert software code that made the PDP-11 check the printer periodically, and report jams back to the PDP-10. Stallman also inserted code on the PDP-10 to notify every user with a waiting print job that the printer was jammed. The notice was simple, something along the lines of ``The printer is jammed, please fix it,'' and because it went out to the people with the most pressing need to fix the problem, chances were that one of them would fix it forthwith.
Вряд ли Столлман был единственным в Лаборатории ИИ, кто заметил проблему, но он ещё и размышлял над её решением. За несколько лет до этого Ричарду довелось решить похожую проблему с прежним принтером. Для этого он на персональном рабочем компьютере PDP-11 отредактировал программу, которая работала на мейнфрейме PDP-10 и управляла принтером. Саму проблему зажёвывания бумаги Столлману решить не удалось, вместо этого он вставил код, который заставлял PDP-11 время от времени проверять состояние принтера. Если аппарат зажёвывал бумагу, программа просто рассылала на рабочие PDP-11 оповещение вроде ``принтер жуёт бумагу, требуется починка''. Решение оказалось эффективным -- оповещение шло напрямую пользователям, которые активно пользовались принтером, так что его выходки с бумагой зачастую пресекались немедленно.
As fixes go, Stallman's was oblique but elegant. It didn't fix the mechanical side of the problem, but it did the next best thing by closing the information loop between user and machine. Thanks to a few additional lines of software code, AI Lab employees could eliminate the 10 or 15 minutes wasted each week in running back and forth to check on the printer. In programming terms, Stallman's fix took advantage of the amplified intelligence of the overall network.
Конечно, это было решение ad-hoc -- то, что программисты называют ``костылём'', но костыль получился довольно изящный. Он не исправлял проблему в механизме принтера, но делал лучшее из того что можно было сделать -- налаживал информативную обратную связь пользователя и машины. Несколько дополнительных строчек кода экономили работникам Лаборатории ИИ по 10-15 минут рабочего времени еженедельно, избавив их от необходимости постоянно бегать проверять принтер. С точки зрения программиста, решение Столлмана держалось на коллективном разуме Лаборатории.
``If you got that message, you couldn't assume somebody else would fix it,'' says Stallman, recalling the logic. ``You had to go to the printer. A minute or two after the printer got in trouble, the two or three people who got messages arrive to fix the machine. Of those two or three people, one of them, at least, would usually know how to fix the problem.''
Вспоминая ту историю, Ричард говорил: ``Получив такое сообщение, вы не должны были уповать на то, что принтер исправит кто-то ещё. Вам нужно было просто встать и пойти к принтеру. Спустя минуту или две после того, как принтер начинал жевать бумагу, к нему приходили двое-трое сотрудников. Хоть кто-то из них точно знал, что нужно делать''.
Such clever fixes were a trademark of the AI Lab and its indigenous population of programmers. Indeed, the best programmers at the AI Lab disdained the term programmer, preferring the more slangy occupational title of hacker instead. The job title covered a host of activities -- everything from creative mirth making to the improvement of existing software and computer systems. Implicit within the title, however, was the old-fashioned notion of Yankee ingenuity. For a hacker, writing a software program that worked was only the beginning. A hacker would try to display his cleverness (and impress other hackers) by tackling an additional challenge: to make the program particularly fast, small, powerful, elegant, or somehow impressive in a clever way.\endnote{For more on the term ``hacker,'' see \nameref{Appendix A}.}
Подобные ловкие решения были визитной карточкой Лаборатории ИИ и её программистов. Вообще, лучшие программисты Лаборатории несколько презрительно относились к термину ``программист'', предпочитая ему сленговое ``хакер''. Это определение точнее отражало суть работы, которая включала самые разные занятия, от изощрённых интеллектуальных забав до кропотливых улучшений программ и компьютеров. Также в нём чувствовалось старомодное убеждение об американской изобретательности. Хакеру недостаточно просто написать работающую программу. Хакер пытается проявить мощь своего интеллекта перед собой и другими хакерами, возложив на себя куда более сложные и тяжёлые задачи -- например, сделать программу одновременно максимально быстрой, компактной, мощной и красивой.\endnote{Для более точного понимания термина ``хакер'' посмотрите \nameref{Приложение А}.}
Companies like Xerox made it a policy to donate their products (and software) to places where hackers typically congregated. If hackers used these products, they might go to work for the company later on. In the 60s and early 70s, they also sometimes developed programs that were useful for the manufacturer to distribute to other customers.
Компании вроде Xerox намеренно дарили свою продукцию крупным сообществам хакеров. Это был расчёт на то, что хакеры начнут ею пользоваться, привяжутся к ней, и потом придут работать в компанию. В 60-е годы и на заре 70-х хакеры часто писали настолько качественные и полезные программы, что производители охотно распространяли их среди своих клиентов.
When Stallman noticed the jamming tendency in the Xerox laser printer, he thought of applying the old fix or ``hack'' to this printer. In the course of looking up the Xerox laser-printer software, however, Stallman made a troubling discovery. The printer didn't have any software, at least nothing Stallman or a fellow programmer could read. Until then, most companies had made it a form of courtesy to publish source-code files--readable text files that documented the individual software commands that told a machine what to do. Xerox, in this instance, had provided software files only in compiled, or binary, form. If programmers looked at the files, all they would see was an endless stream of ones and zeroes -- gibberish.
Таким образом, столкнувшись с жующим бумагу новым принтером Xerox, Столлман сразу подумал провернуть с ним свой старый трюк -- ``хакнуть'' программу управления аппаратом. Однако его поджидало неприятное открытие -- к принтеру не прилагалось никакой программы, по крайней мере, в такой форме, чтобы Столлман или другой программист мог её прочитать и отредактировать. До этого момента большинство компаний считали хорошим тоном давать файлы с исходным кодом -- понятным для человека текстом, который давал полную информацию о программных командах и соответствующих функциях машины. Но Xerox в этот раз предоставил программу только в скомпилированном, бинарном виде. Если программист попытался бы прочитать эти файлы, он увидел бы только нескончаемые потоки нулей и единиц, понятные машине, но не человеку.
There are programs, called ``disassemblers,'' to convert the ones and zeroes into low-level machine instructions, but figuring out what those instructions actually ``do'' is a long and hard task, known as ``reverse engineering.'' To reverse engineer this program could have taken more time than five years' worth of jammed printouts. Stallman wasn't desperate enough for that, so he put the problem aside.
Есть программы, которые называются ``дизассемблеры'', они переводят единицы и нули в низкоуровневые машинные инструкции, но разобраться, что эти инструкции делают -- очень долгий и трудный процесс, называемый ``обратной разработкой''. На обратную разработку программы принтера легко могло уйти куда больше времени, чем на суммарное исправление зажёванной бумаги в течение ближайших 5 лет. Ричард был недостаточно отчаянным, чтобы решиться на такой шаг, и потому он просто отложил проблему в долгий ящик.
Xerox's unfriendly policy contrasted blatantly with the usual practices of the hacker community. For instance, to develop the program for the PDP-11 that ran the old printer, and the program for another PDP-11 that handled display terminals, the AI Lab needed a cross-assembler program to build PDP-11 programs on the PDP-10 main computer. The lab's hackers could have written one, but Stallman, a Harvard student, found such a program at Harvard's computer lab. That program was written to run on the same kind of computer, the PDP-10, albeit with a different operating system. Stallman never knew who had written the program, since the source code did not say. But he brought a copy back to the AI Lab. He then altered the source code to make it run on the AI Lab's Incompatible Timesharing System (ITS). With no muss and little fuss, the AI Lab got the program it needed for its software infrastructure. Stallman even added a few features not found in the original version, making the program more powerful. ``We wound up using it for several years,'' Stallman says.
Недружелюбная политика Xerox резко противоречила обычной практике хакерских сообществ. Например, чтобы разработать для персонального компьютера PDP-11 программы для управления старым принтером и терминалами, Лаборатории ИИ нужен был кросс-ассемблер, который собирал бы программы для PDP-11 на мейнфрейме PDP-10. Хакеры Лаборатории могли написать кросс-ассемблер сами, но Столлман, будучи студентом Гарварда, нашёл похожую программу в компьютерной лаборатории университета. Она была написана для такого же мейнфрейма, PDP-10, но под другую операционную систему. Ричард понятия не имел, кто написал эту программу, поскольку в исходном коде об этом ничего не говорилось. Он просто принёс в Лабораторию копию исходного кода, отредактировал её, и запустил на PDP-10. Без лишних хлопот и забот Лаборатория получила программу, которая была необходима для работы офисной инфраструктуры. Столлман даже сделал программу мощнее, добавив в неё несколько функций, которых не было в оригинале. ``Мы вовсю использовали эту программу несколько лет'', -- не без гордости сообщает он.
From the perspective of a 1970s-era programmer, the transaction was the software equivalent of a neighbor stopping by to borrow a power tool or a cup of sugar from a neighbor. The only difference was that in borrowing a copy of the software for the AI Lab, Stallman had done nothing to deprive anyone else of the use of the program. If anything, other hackers gained in the process, because Stallman had introduced additional features that other hackers were welcome to borrow back. For instance, Stallman recalls a programmer at the private engineering firm, Bolt, Beranek \& Newman, borrowing the program. He made it run on Twenex and added a few additional features, which Stallman eventually reintegrated into the AI Lab's own source-code archive. The two programmers decided to maintain a common version together, which had the code to run either on ITS or on Twenex at the user's choice.
В глазах программиста 70-х годов такая модель распространения программного кода ничем не отличалась от добрососедских отношений, когда один делится с другим чашкой сахара или даёт на время дрель. Но если вы, когда одалживаете дрель, лишаете хозяина возможности ею пользоваться, то в случае с копированием программ ничего подобного не происходит. Ни автор программы, ни её другие пользователи ничего не лишаются от копирования. Зато другие люди от этого приобретают, как в случае с хакерами Лаборатории, что получили программу с новыми функциями, которых раньше даже не было на свете. И эти новые функции можно так же сколько угодно копировать и распространять среди других людей. Столлман вспоминает об одном программисте из частной компании Bolt, Beranek \& Newman, который тоже получил программу и отредактировал её для запуска под Twenex -- ещё одной операционной системы для PDP-10. Также он добавил в программу ряд замечательных функций, и Столлман скопировал их в свою версию программы в Лаборатории. После этого они решили сообща развивать программу, которая уже ненароком выросла в мощный продукт, работающий на разных операционных системах.
``A program would develop the way a city develops,'' says Stallman, recalling the software infrastructure of the AI Lab. ``Parts would get replaced and rebuilt. New things would get added on. But you could always look at a certain part and say, `Hmm, by the style, I see this part was written back in the early 60s and this part was written in the mid-1970s.'\hspace{0.01in}''
Вспоминая программную инфраструктуру Лаборатории ИИ, Столлман говорит: ``Программы развивались подобно городу. Какие-то части менялись понемногу, какие-то -- сразу и полностью. Появлялись новые участки. И вы всегда могли взглянуть на код и сказать, мол, судя по стилю, эту часть написали в начале 60-х, а эту -- в середине 70-х\hspace{0.01in}''.
Through this simple system of intellectual accretion, hackers at the AI Lab and other places built up robust creations. Not every programmer participating in this culture described himself as a hacker, but most shared the sentiments of Richard M. Stallman. If a program or software fix was good enough to solve your problems, it was good enough to solve somebody else's problems. Why not share it out of a simple desire for good karma?
Благодаря такой простой умственной кооперации, хакеры создали множество мощных и надёжных систем в Лаборатории и вне её. Не каждый программист, разделяющий эту культуру, назвал бы себя хакером, но большинство из них вполне разделяли настрой Ричарда Столлмана. Если программа или исправленный код хорошо решают вашу проблему, они так же хорошо решат эту проблему для кого угодно. Почему бы тогда не поделиться этим решением, хотя бы из моральных соображений?
This system of cooperation was being undermined by commercial secrecy and greed, leading to peculiar combinations of secrecy and cooperation. For instance, computer scientists at UC Berkeley had built up a powerful operating system called BSD, based on the Unix system they had obtained from AT\&T. Berkeley made BSD available for the cost of copying a tape, but would only give these tapes to schools that could present a \$50,000 source license obtained from AT\&T. The Berkeley hackers continued to share as much as AT\&T let them, but they had not perceived a conflict between the two practices.
Эту концепцию безвозмедного сотрудничества подорвало сочетание жадности и коммерческой тайны, породив причудливое сочетание секретности и кооперации. Хороший пример -- начальный период жизни BSD. Это мощная операционная система, которую создали учёные и инженеры Калифорнийского Университета в Беркли на основе Unix, купленного в AT\&T. Стоимость копирования BSD была равна стоимости плёнки, но с одним условием -- плёнку с копией BSD школы могли получить только имея лицензию AT\&T, которая стоила \$50,000. Получалось, что хакеры Беркли делились программами только в той мере, в какой им позволяла это делать компания AT\&T. И они не видели в этом ничего странного.
Likewise, Stallman was annoyed that Xerox had not provided the source-code files, but not yet angry. He never thought of asking Xerox for a copy. ``They had already given us the laser printer,'' Stallman says. ``I could not say they owed us something more. Besides, I took for granted that the absence of source code reflected an intentional decision, and that asking them to change it would be futile.''
Столлман тоже не сердился на Xerox, хотя и был разочарован. Он никогда не думал о том, чтобы попросить у компании копию исходного кода. ``Они и так подарили нам лазерный принтер, -- говорил он, -- я не мог сказать, что они нам ещё что-то должны. К тому же, исходники отсутствовали явно неслучайно, это было внутреннее решение компании, и просить изменить его было бесполезно''.
Good news eventually arrived: word had it that a scientist at the computer-science department at Carnegie Mellon University had a copy of the laser printer source code.
В конце концов, пришла хорошая новость: оказалось, что копия исходника программы для принтера Xerox есть у научного сотрудника Университета Карнеги-Меллон.
The association with Carnegie Mellon did not augur well. In 1979, Brian Reid, a doctoral student there, had shocked the community by refusing to share his text-formatting program, dubbed Scribe. This text formatter was the first to have mark-up commands oriented towards the desired semantics (such as ``emphasize this word'' or ``this paragraph is a quotation'') rather than low-level formatting details (``put this word in italics'' or ``narrow the margins for this paragraph''). Instead Reid sold Scribe to a Pittsburgh-area software company called Unilogic. His graduate-student career ending, Reid says he simply was looking for a way to unload the program on a set of developers that would take pains to keep it from slipping into the public domain. (Why one would consider such an outcome particularly undesirable is not clear.) To sweeten the deal, Reid also agreed to insert a set of time-dependent functions -- ``time bombs'' in software-programmer parlance -- that deactivated freely copied versions of the program after a 90-day expiration date. To avoid deactivation, users paid the software company, which then issued a code that defused the internal time-bomb anti-feature.
Общение с Карнеги-Меллон не сулило ничего хорошего. В 1979 году докторант Брайан Рид шокировал сообщество отказом поделиться своей программой для форматирования текста, прообразом Scribe. Она была первой программой такого типа, в которой использовались семантические команды вроде ``выдели это слово'' или ``этот параграф -- цитата'' вместо низкоуровневых ``напиши это слово курсивом'' или ``увеличь отступы для этого параграфа''. Рид продал Scribe расположенной в Питтсбурге компании Unilogic. По словам Рида, в конце докторантуры он просто искал команду разработчиков, на плечи которых можно было бы перевалить заботу о том, чтобы исходники программы не попали в общее пользование (до сих пор неясно, почему Рид считал это недопустимым). Чтобы подсластить пилюлю, Рид согласился добавить в код набор привязанных ко времени функций, так называемых ``тайм-бомб'' -- они превращали бесплатную копию программу в нерабочую по истечении 90-дневного пробного периода. Чтобы заставить программу снова работать, пользователям нужно было заплатить компании и получить ``отключалку'' тайм-бомбы.
For Stallman, this was a betrayal of the programmer ethos, pure and simple. Instead of honoring the notion of share-and-share alike, Reid had inserted a way for companies to compel programmers to pay for information access. But he didn't think deeply about the question, since he didn't use Scribe much.
Для Столлмана это было чистейшим и откровенным предательством программистской этики. Вместо того, чтобы следовать принципу ``делись и раздавай'', Рид встал на путь взимания платы с программистов за доступ к информации. Но он не особенно задумывался об этом, потому что нечасто использовал Scribe.
Unilogic gave the AI Lab a gratis copy to use, but did not remove or mention the time bomb. It worked, for a while; then one day a user reported that Scribe had stopped working. System hacker Howard Cannon spent hours debugging the binary until he found the time-bomb and patched it out. Cannon was incensed, and wasn't shy about telling the other hackers how mad he was that Unilogic had wasted his time with an intentional bug.
Unilogic дали Лаборатории ИИ бесплатную копию Scribe, но не удалили тайм-бомбу и даже не упомянули о ней. До поры до времени программа работала, но однажды всё-таки перестала. Системный хакер Говард Кэннон провёл многие часы за отладкой бинарного файла программы, пока, наконец, не обнаружил тайм-бомбу и не удалил её. Его по-настоящему взбесила эта история, и он не постеснялся рассказать о ней другим хакерам, и передать все свои мысли и эмоции насчёт преднамеренной ``ошибки'' Unilogic.
Stallman had a Lab-related reason, a few months later, to visit the Carnegie Mellon campus. During that visit, he made a point of looking for the person reported to have the printer software source code. By good fortune, the man was in his office.
По причинам, связанным с работой в Лаборатории, Столлман отправился в кампус Карнеги-Меллон спустя пару месяцев. Он постарался найти человека, у которого, согласно услышанной новости, были исходники программы для принтера. К счастью, этот человек был у себя в кабинете.
In true engineer-to-engineer fashion, the conversation was cordial but blunt. After briefly introducing himself as a visitor from MIT, Stallman requested a copy of the laser-printer source code that he wanted to modify. To his chagrin, the researcher refused.
Разговор получился откровенным и резким, в типичном для инженеров стиле. Представившись, Столлман попросил копию исходного кода программы для управления лазерным принтером Xerox. К его великому изумлению и огорчению, научный сотрудник отказал.
``He told me that he had promised not to give me a copy,'' Stallman says.
``Он сказал, что пообещал производителю не давать мне копию'', -- говорит Ричард.
Memory is a funny thing. Twenty years after the fact, Stallman's mental history tape is blank in places. Not only does he not remember the motivating reason for the trip or even the time of year during which he took it, he also has no recollection of who was on the other end of the conversation. According to Reid, the person most likely to have fielded Stallman's request is Robert Sproull, a former Xerox PARC researcher and current director of Sun Laboratories, a research division of the computer-technology conglomerate Sun Microsystems. During the 1970s, Sproull had been the primary developer of the laser-printer software in question while at Xerox PARC. Around 1980, Sproull took a faculty research position at Carnegie Mellon where he continued his laser-printer work amid other projects.
Память -- забавная штука. Спустя 20 лет после этого инцидента память Столлмана полна белых пятен. Он забыл не только о причине, по которой приехал в Карнеги-Меллон, но и о том, кто был его визави в этом неприятном разговоре. По словам Рида, этим человеком, скорее всего, был Роберт Спролл, бывший сотрудник научно-исследовательского центра Xerox в Пало-Альто, который впоследствии стал директором исследовательного отделения Sun Microsystems. В 70-х годах Спролл был ведущим разработчиком программ для лазерных принтеров Xerox. Где-то в 1980 году Спролл получил должность научного сотрудника в Карнеги-Меллон, где продолжал работать в том числе и над лазерными принтерами.
When asked directly about the request, however, Sproull draws a blank. ``I can't make a factual comment,'' writes Sproull via email. ``I have absolutely no recollection of the incident.''
Но когда Спроллу задают вопросы об этом разговоре, он лишь разводит руками. Вот что отвечает он по электронной почте: ``Не могу сказать ничего определённого, я совершенно ничего не помню об этом случае''.
``The code that Stallman was asking for was leading-edge, state-of-the-art code that Sproull had written in the year or so before going to Carnegie Mellon,'' recalls Reid. If so, that might indicate a misunderstanding that occurred, since Stallman wanted the source for the program that MIT had used for quite some time, not some newer version. But the question of which version never arose in the brief conversation.
``Код, который Столлман хотел получить, был новаторской разработкой, настоящим воплощением искусства. Спролл написал его за год до того, как пришёл в Карнеги-Меллон, или около того'', -- рассказывает Рид. Если это действительно так, то налицо недоразумение: Столлману нужна была программа, которую МТИ использовал уже долгое время, а не какая-та новая её версия. Но в том кратком разговоре ни слова не говорилось о каких-либо версиях.
In talking to audiences, Stallman has made repeated reference to the incident, noting that the man's unwillingness to hand over the source code stemmed from a nondisclosure agreement, a contractual agreement between him and the Xerox Corporation giving the signatory access to the software source code in exchange for a promise of secrecy. Now a standard item of business in the software industry, the nondisclosure agreement, or NDA, was a novel development at the time, a reflection of both the commercial value of the laser printer to Xerox and the information needed to run it. ``Xerox was at the time trying to make a commercial product out of the laser printer,'' recalls Reid. ``They would have been insane to give away the source code.''
Общаясь с аудиторией, Столлман регулярно вспоминает инцидент в Карнеги-Меллон и акцентирует внимание на том, что нежелание того человека делиться исходниками -- всего лишь следствие соглашения о неразглашении, которое было предусмотрено контрактом между ним и компанией Xerox. Сейчас для компаний в порядке вещей требование соблюдать секретность в обмен на доступ к новейшим разработками, но в ту пору NDA было чем-то новым. Оно отражало важность для Xerox как самих лазерных принтеров, так и той информации, что была нужна для их работы. ``Xerox пытался превратить лазерные принтеры в коммерческий продукт, -- вспоминает Рид, -- для них безумием было бы раздавать исходный код всем подряд''.
For Stallman, however, the NDA was something else entirely. It was a refusal on the part of some CMU researcher to participate in a society that, until then, had encouraged software programmers to regard programs as communal resources. Like a peasant whose centuries-old irrigation ditch had grown suddenly dry, Stallman had followed the ditch to its source only to find a brand-spanking-new hydroelectric dam bearing the Xerox logo.
Столлман же воспринимал NDA совершенно иначе. Для него это был отказ Карнеги-Меллон участвовать в творческой жизни общества, наперекор доселе поощряемому взгляду на программы, как на общественные ресурсы. Как если бы крестьянин внезапно обнаружил, что многовековые ирригационные каналы пересохли, и в попытке найти причину проблемы он бы дошёл до сверкающей новизной гидроэлектростанции с логотипом Xerox.
For Stallman, the realization that Xerox had compelled a fellow programmer to participate in this newfangled system of compelled secrecy took a while to sink in. In the first moment, he could only see the refusal in a personal context. ``I was so angry I couldn't think of a way to express it. So I just turned away and walked out without another word,'' Stallman recalls. ``I might have slammed the door. Who knows? All I remember is wanting to get out of there. I went to his office expecting him to cooperate, so I had not thought about how I would respond if he refused. When he did, I was stunned speechless as well as disappointed and angry.''
Столлману потребовалось время, чтобы понять истинную причину отказа -- новый, преисполненный секретности формат взаимодействия программиста и компании. Поначалу же он видел только личный отказ. ``Меня это так разозлило, что я даже не нашёлся что сказать. Я просто развернулся и молча вышел, -- вспоминает Ричард, -- может, я даже хлопнул дверью, не знаю. Я помню только жгучее желание поскорее убраться оттуда. Ведь я шёл к ним, ожидая сотрудничества, и даже не думал, что буду делать, если мне откажут. И когда это произошло, я буквально потерял дар речи -- настолько это ошеломило и расстроило меня''.
Twenty years after the fact, the anger still lingers, and Stallman presents the event as one that made him confront an ethical issue, though not the only such event on his path. Within the next few months, a series of events would befall both Stallman and the AI Lab hacker community that would make 30 seconds worth of tension in a remote Carnegie Mellon office seem trivial by comparison. Nevertheless, when it comes time to sort out the events that would transform Stallman from a lone hacker, instinctively suspicious of centralized authority, to a crusading activist applying traditional notions of liberty, equality, and fraternity to the world of software development, Stallman singles out the Carnegie Mellon encounter for special attention.
Даже через 20 лет спустя он всё ещё чувствует отголосок того гнева и разочарования. Инцидент в Карнеги-Меллон стал поворотным пунктом в жизни Ричарда, столкнув его лицом к лицу с новой этической проблемой. В следующие месяцы вокруг Столлмана и прочих хакеров Лаборатории ИИ произойдёт масса событий, по сравнению с которыми те 30 секунд гнева и разочарования в Карнеги-Меллон покажутся сущими пустяками. Тем не менее, Столлман уделяет особое внимание этому инциденту. Он был первым и наболее важным пунктом в той череде событий, что превратили Ричарда из одинокого хакера, интуитивного противника централизованной власти, в радикального евангелиста свободы, равенства и братства в программировании.
``It was my first encounter with a nondisclosure agreement, and it immediately taught me that nondisclosure agreements have victims,'' says Stallman, firmly. ``In this case I was the victim. [My lab and I] were victims.''
``Это было моё первое столкновение с соглашением о неразглашении, и я скоро понял, что люди становятся жертвами таких соглашений, -- уверенно говорит Столлман, -- Такими жертвами стали я и мои коллеги из Лаборатории''.
Stallman later explained, ``If he had refused me his cooperation for personal reasons, it would not have raised any larger issue. I might have considered him a jerk, but no more. The fact that his refusal was impersonal, that he had promised in advance to be uncooperative, not just to me but to anyone whatsoever, made this a larger issue.''
Позже Ричард пояснил: ``Если бы он отказал мне по личным мотивам, это трудно было бы назвать проблемой. Я бы мог в ответ посчитать его придурком, и на этом всё. Но его отказ был безличным, он дал мне понять, что не будет сотрудничать не только со мной, но и вообще с кем бы то ни было. И это не только создавало проблему, но и делало её по-настоящему огромной''.
Although previous events had raised Stallman's ire, he says it wasn't until his Carnegie Mellon encounter that he realized the events were beginning to intrude on a culture he had long considered sacrosanct. He said, ``I already had an idea that software should be shared, but I wasn't sure how to think about that. My thoughts weren't clear and organized to the point where I could express them in a concise fashion to the rest of the world. After this experience, I started to recognize what the issue was, and how big it was.''
Хотя и в предыдущие годы случались проблемы, которые сердили Столлмана, по его словам, только после инцидента в Карнеги-Меллон он осознал, что культура программирования, которую он считал священной, начинает меняться. ``Я уже был убеждён, что программы должны быть общедоступными для всех, но не мог это отчётливо сформулировать. Мои мысли на этот счёт были слишком смутными и хаотичными для того, чтобы выразить их всему миру. После инцидента я начал понимать, что проблема уже существует, и что её нужно решать прямо сейчас''.
As an elite programmer at one of the world's elite institutions, Stallman had been perfectly willing to ignore the compromises and bargains of his fellow programmers just so long as they didn't interfere with his own work. Until the arrival of the Xerox laser printer, Stallman had been content to look down on the machines and programs other computer users grimly tolerated.
Будучи высококлассным программистом в одном из сильнейших институтов мира, Ричард не обращал особого внимания на соглашения и сделки других программистов -- только бы они не мешали его основной работе. Пока в Лабораторию не прибыл лазерный принтер Xerox, Столлман имел все возможности смотреть свысока на машины и программы, от которых страдали другие пользователи. Ведь он мог изменить эти программы как считал нужным.
Now that the laser printer had insinuated itself within the AI Lab's network, however, something had changed. The machine worked fine, barring the paper jams, but the ability to modify software according to personal taste or community need had been taken away. From the viewpoint of the software industry, the printer software represented a change in business tactics. Software had become such a valuable asset that companies no longer accepted the need to publicize source code, especially when publication meant giving potential competitors a chance to duplicate something cheaply. From Stallman's viewpoint, the printer was a Trojan Horse. After a decade of failure, software that users could not change and redistribute -- future hackers would use the term ``proprietary'' software -- had gained a foothold inside the AI Lab through the sneakiest of methods. It had come disguised as a gift.
Но появление нового принтера поставило под угрозу эту свободу. Аппарат работал хорошо, даром что периодически жевал бумагу, но не было никакой возможности изменить его поведение под нужды коллектива. С точки зрения индустрии программного обеспечения, закрытие программы принтера было необходимым шагом в бизнесе. Программы стали таким ценным активом, что компании больше не могли себе позволить публиковать исходные коды, особенно когда в программах воплощались некие прорывные технологии. Ведь тогда конкуренты могли бы практически бесплатно скопировать эти технологии для своих продуктов. Но с точки зрения Столлмана, принтер был Троянским Конём. После десятка лет неудачных попыток распространения ``проприетарных'' программ, для которых запрещена свободная раздача и модификация кода, именно такая программа внедрилась в обитель хакеров самым коварным способом -- под личиной подарка.
That Xerox had offered some programmers access to additional gifts in exchange for secrecy was also galling, but Stallman takes pains to note that, if presented with such a quid pro quo bargain at a younger age, he just might have taken the Xerox Corporation up on its offer. The anger of the Carnegie Mellon encounter, however, had a firming effect on Stallman's own moral lassitude. Not only did it give him the necessary anger to view such future offers with suspicion, it also forced him to turn the situation around: what if a fellow hacker dropped into Stallman's office someday and it suddenly became Stallman's job to refuse the hacker's request for source code?
То, что Xerox давал некоторым программистам доступ к коду в обмен на соблюдение секретности, раздражало не меньше, но Столлман с болью признавал, что в более молодом возрасте, скорее всего, согласился бы на предложение Xerox. Инцидент в Карнеги-Меллон укрепил его моральную позицию, не только зарядив его подозрительностью и гневом в отношении подобных предложений в будущем, но и поставив перед ним вопрос: что, если однажды заявится хакер с аналогичной просьбой, и теперь уже ему, Ричарду придётся отказывать в копировании исходников, следуя требованиям работодателя?
``When somebody invited me to betray all my colleagues in that way, I remembered how angry I was when somebody else had done that to me and my whole lab,'' Stallman says. ``So I said, `Thank you very much for offering me this nice software package, but I can't accept it on the conditions that you're asking for, so I'm going to do without it.'\hspace{0.01in}''
``Когда мне предлагают аналогичным образом предать своих коллег по цеху, я вспоминаю свой гнев и разочарование, когда так же поступили со мной и другими сотрудниками Лаборатории, -- говорит Столлман, -- так что большое спасибо, ваша программа замечательна, но я не могу согласиться на условия её использования, так что обойдусь без неё'\hspace{0.01in}''.
It was a lesson Stallman would carry with him through the tumultuous years of the 1980s, a decade during which many of his MIT colleagues would depart the AI Lab and sign nondisclosure agreements of their own. They may have told themselves that this was a necessary evil so they could work on the best projects. For Stallman, however, the NDA called the the moral legitimacy of the project into question. What good is a technically exciting project if it is meant to be withheld from the community?
Память об этом уроке Ричард твёрдо сохранит и в беспокойные 80-е, когда многие из его коллег по Лаборатории уйдут работать в другие компании, связав себя соглашениями о неразглашении. Наверное они говорили себе, что это неизбежное зло на пути к работе над самыми интересными и заманчивыми проектами. Однако для Столлмана само существование NDA ставит под сомнение моральную ценность проекта. Что может быть хорошего в проекте, пусть даже технически увлекательном, если он не служит общим целям?
As Stallman would quickly learn, refusing such offers involved more than personal sacrifice. It involved segregating himself from fellow hackers who, though sharing a similar distaste for secrecy, tended to express that distaste in a more morally flexible fashion. Refusing another's request for source code, Stallman decided, was not only a betrayal of the scientific mission that had nurtured software development since the end of World War II, it was a violation of the Golden Rule, the baseline moral dictate to do unto others as you would have them do unto you.
Очень скоро Столлман понял, что несогласие с подобными предложениями имеет ощутимо большую цену, чем личные профессиональные интересы. Такая бескомпромиссная позиция отделяет его от других хакеров, которые хоть и питают отвращение к секретности, но готовы идти на моральные компромиссы. Мнение Ричарда же однозначно: отказ делиться исходным кодом это предательство не только научно-исследовательской роли программирования, но и Золотого Правила морали, которое гласит, что ваше отношение к другим должно быть таким же, каким вы хотите видеть отношение к себе.
Hence the importance of the laser printer and the encounter that resulted from it. Without it, Stallman says, his life might have followed a more ordinary path, one balancing the material comforts of a commercial programmer with the ultimate frustration of a life spent writing invisible software code. There would have been no sense of clarity, no urgency to address a problem others weren't addressing. Most importantly, there would have been no righteous anger, an emotion that, as we soon shall see, has propelled Stallman's career as surely as any political ideology or ethical belief.
Вот в чём важность истории с лазерным принтером и инцидента в Карнеги-Меллон. Без всего этого, как признаёт Столлман, его судьба пошла бы по совсем другому пути, балансируя между материальным достатком коммерческого программиста и окончательным разочарованием в жизни, проведённой за написанием никому не видимого программного кода. Не было бы никакого смысла размышлять об этой проблеме, в которой остальные даже не видели проблему. И самое главное, не было бы той живительной порции гнева, что придала Ричарду энергию и уверенность для движения вперёд.
``From that day forward, I decided this was something I could never participate in,'' says Stallman, alluding to the practice of trading personal liberty for the sake of convenience -- Stallman's description of the NDA bargain -- as well as the overall culture that encouraged such ethically suspect deal-making in the first place. ``I decided never to make other people victims as I had been a victim.''
``В тот день я решил, что никогда и ни за что не соглашусь участвовать в этом'', -- говорит Столлман, имея в виду NDA и вообще всю культуру, которая способствует обмену личной свободы на какие-то блага и преимущества.
``Я решил, что никогда не сделаю ни одного человека жертвой, которой стал однажды сам''.
\theendnotes
\setcounter{endnote}{0}