Безплатно като в Свобода на руски: Глава 1. Фаталният принтер

Фатален принтер

Страхувайте се от данайците, които носят дарове.
– Върджил, "Енеида"

Новият принтер отново задръсти хартията.

Час по-рано Ричард Столман, програмист в Изкуствената лаборатория
MIT Intelligence (AI Labs), изпрати документ от 50 страници
отпечатани на офис принтера и се потопихте в работа. А сега Ричард
Вдигнах поглед от това, което правех, отидох до принтера и видях една много неприятна гледка:
вместо дългоочакваните 50 разпечатани страници, в тавата имаше само 4
готови листове. И те ясно се отнасят до документ на друго лице.
Досието на Ричард от 50 страници се смеси с нечий наполовина отпечатан файл
тънкостите на офисната мрежа и принтерът се поддаде на този проблем.

Чакането машината да си свърши работата е нещо обичайно.
за програмист, а Столман беше подходящ да се заеме с този проблем
стоически. Но едно е, когато дадеш на машината задача и я изпълниш
вашите собствени дела и е съвсем различно, когато трябва да стоите до вас
машина и да я контролирате. Това не беше първият път, когато Ричард трябваше да го направи
застанете пред принтера и гледайте как страниците излизат една по една
един. Като всеки добър техник, Столман имаше голямо уважение към
ефективност на устройствата и програмите. Нищо чудно това
още едно прекъсване на работния процес събуди горещото желание на Ричард
влезте във вътрешността на принтера и го подредете правилно.

Но уви, Столман беше програмист, а не машинен инженер. Ето защо
Всичко, което оставаше, беше да гледам как изпълзяват страниците и да мисля за тях
други начини за решаване на досаден проблем.

Но служителите на AI ​​Laboratory посрещнаха този принтер с наслада и
с ентусиазъм! Той беше представен от Xerox, това беше неговият пробив
разработка – модификация на бърза копирна машина. Принтерът не само го направи
копира, но също така превърна виртуални данни от файлове на офис мрежа в
отлично изглеждащи документи. Това устройство изглеждаше смело
иновативен дух на известната лаборатория Xerox в Пало Алто, той беше
предвестник на революция в настолния печат, която ще революционизира напълно
цялата индустрия до края на десетилетието.

Изгарящи от нетърпение програмистите на Лабораторията веднага включиха новото
принтер в сложна офис мрежа. Резултатите надминаха и най-смелите
очаквания. Страниците изхвърчаха със скорост 1 в секунда, документи
започна да печата 10 пъти по-бързо. Освен това колата беше изключително
педантична в работата си: кръговете изглеждаха като кръгове, а не като овали, а
правите линии вече не приличат на синусоиди с ниска амплитуда.

Във всеки смисъл подаръкът от Xerox беше предложение, на което не можехте да откажете.
отказвам.

С течение на времето обаче ентусиазмът започна да намалява. Веднага след като принтерът стана
натоварване до максимум, появиха се проблеми. Което ме подразни най-много
фактът, че устройството дъвче хартията твърде лесно. Инженерно мислене
програмистите бързо идентифицираха корена на проблема. Факт е, че
Копирните машини традиционно изискват постоянно присъствие на човек наблизо.
Включително, за да коригирате хартията, ако е необходимо. И
когато Xerox се зае да превърне фотокопирната машина в принтер, инженерите
компаниите не обърнаха внимание на този момент и се съсредоточиха върху
решаване на други, по-належащи проблеми за принтера. Инженерно говорене
език, новият принтер Xerox имаше постоянно човешко участие
първоначално вграден в механизма.

Като превърнаха фотокопирната машина в принтер, инженерите на Xerox представиха едно нещо
промяна, която има далечни последици. Вместо,
за да се подчини апаратът на един единствен оператор, той беше подчинен
до всички потребители на офис мрежата. Потребителят вече не стоеше до него
машина, контролираща нейната работа, сега той е през сложна офисна мрежа
изпрати задание за печат, надявайки се, че документът ще бъде отпечатан по този начин
както се изисква. След това потребителят отиде до принтера, за да вземе готовото
целият документ, но вместо това е намерен избирателно отпечатан
листи.

Малко вероятно е Столман да е единственият в AI ​​Lab, който е забелязал
проблем, но е мислил и за неговото решение. Преди няколко години
Ричард имаше шанс да реши подобен проблем с предишния си принтер. За
той редактира това на личния си работен компютър PDP-11
програма, която работеше на мейнфрейм PDP-10 и управляваше принтера.
Вместо това Столман не успя да реши проблема с дъвченето на хартия
това той вмъкна код, който принуждаваше PDP-11 от време на време
проверете състоянието на принтера. Ако машината дъвче хартия, програмата
Току-що изпратих известие до работещите PDP-11 като „принтерът дъвче
хартия, нуждае се от ремонт." Решението се оказа ефективно - уведомяване
отиде директно към потребители, които активно използваха принтера, така че
че лудориите му с хартия често били спирани веднага.

Разбира се, това беше ad-hoc решение - това, което програмистите наричат
„патерица“, но патерицата се оказа доста елегантна. Той не коригира
имаше проблем с механизма на принтера, но направих всичко възможно
да направя - установена информативна обратна връзка между потребителя и машината.
Няколко допълнителни реда код спасиха работниците от лабораторията
AI за 10-15 минути работно време седмично, спестявайки ги от
трябва постоянно да тичам, за да проверявам принтера. От гледна точка
програмист, решението на Столман се основава на колективна мъдрост
Лаборатории.

Припомняйки си тази история, Ричард каза: „Когато получите такова съобщение, няма да го направите
трябваше да разчитам на някой друг да поправи принтера. имате нужда
беше лесно да стана и да отида до принтера. След минута-две
щом принтерът започна да дъвче хартията, двама или трима души дойдоха при него
служители. Поне един от тях знаеше точно какво трябва да се направи.

Интелигентни решения като тези са отличителният белег на AI ​​Lab и нейните
програмисти. Като цяло най-добрите програмисти на Лабораторията са няколко
третира термина „програмист“ с презрение, предпочитайки го
жаргон за "хакер". Това определение отразява по-точно същността на работата, която
включваше разнообразие от дейности, от сложни интелектуални забавления до
старателни подобрения на програми и компютри. Също така се усети
старомодна вяра в американската изобретателност. Хакер
Не е достатъчно просто да напишете програма, която работи. Хакер се опитва
покажете силата на вашия интелект на себе си и на другите хакери, като поставите
поемат много по-сложни и трудни задачи - например правят
програма в същото време като бърза, компактна, мощна и
красив.

Компании като Xerox умишлено даряват своите продукти на големи общности
хакери. Беше изчисление, че хакерите ще започнат да го използват,
Те ще се привържат към нея и след това ще дойдат на работа в компанията. През 60-те години и
в зората на 70-те години хакерите често пишат толкова висококачествени и полезни
програми, които производителите доброволно ги разпространиха сред своите
клиенти.

И така, изправен пред дъвчещ хартия нов принтер Xerox,
Столман веднага се сети да направи стария си трик с него - „хак“
програма за управление на устройството. Очакваше го обаче неприятно откритие.
– принтерът не дойде с никакъв софтуер, поне не и в този
форма, така че Столман или друг програмист да може да го прочете и
редактиране. До този момент повечето компании смятаха за добри
предоставяне на файлове с изходен код в тон, който е четим от хора,
който предоставяше пълна информация за програмните команди и съответните
функции на машината. Но Xerox този път предостави програмата само в
компилирана, двоична форма. Ако програмист се опита да прочете
тези файлове, той ще види само безкрайни потоци от нули и единици,
разбираемо за машина, но не и за човек.

Има програми, наречени "дизасемблери", които превеждат
единици и нули в машинни инструкции на ниско ниво, но да разбера какво
тези инструкции правят - много дълъг и труден процес, наречен
"обратно инженерство". Обратното инженерство на програма за принтер е лесно
можеше да отнеме много повече време от пълната корекция на дъвканото
хартия през следващите 5 години. Ричард не беше достатъчно отчаян
да реши да предприеме такава стъпка и затова той просто остави проблема настрана
дълга кутия.

Враждебната политика на Xerox беше в рязък контраст с нормалната практика
хакерски общности. Например, да се развива за лични
компютърни програми PDP-11 за управление на стар принтер и
терминали, AI ​​Lab имаше нужда от кръстосано асемблер, който да сглобява
програми за PDP-11 на мейнфрейм PDP-10. Лабораторните хакери биха могли
напишете сами кръстосано асемблер, но Столман, като студент в Харвард,
Намерих подобна програма в компютърната лаборатория на университета. Тя
е написан за същия мейнфрейм, PDP-10, но за различен
операционна система. Ричард нямаше представа кой е написал тази програма,
тъй като изходният код не казва нищо за това. Той просто го донесе
копие на изходния код в лабораторията, редактира го и го стартира
PDP-10. Без излишни грижи и притеснения Лабораторията получи програмата,
което беше необходимо за функционирането на офис инфраструктурата. Дори Столман
направи програмата по-мощна, като добави няколко функции, които не бяха
беше в оригинала. „Използваме тази програма от години,“
– казва той не без гордост.

В очите на програмист от 70-те години този модел на разпространение
програмният код не се различаваше от добросъседските отношения, когато
един споделя чаша захар с друг или дава бормашина назаем. Но ако ти
когато вземете бормашина, вие лишавате собственика от възможността да я използва, тогава
В случай на копиране на програми, нищо подобно не се случва. Нито едно
авторът на програмата, нито другите й потребители губят нещо от
копиране. Но други хора печелят от това, както в случая с
хакери на Лабораторията, която получи програма с нови функции, която
дори не е съществувал преди. И тези нови функции могат да бъдат също толкова много
искате да копирате и разпространявате на други хора. Столман
си спомня един програмист от частната компания Bolt, Beranek &
Нюман, който също получи програмата и я редактира, за да работи
под Twenex - друга операционна система за PDP-10. Той също
добави редица страхотни функции към програмата и Столман ги копира
към вашата версия на програмата в Лабораторията. След това решиха заедно
разработете програма, която вече неволно се е превърнала в мощен продукт,
работещи на различни операционни системи.

Припомняйки софтуерната инфраструктура на AI ​​Lab, Столман казва:
„Програмите се развиха като град. Някои части са променени
малко по малко, някои - веднага и напълно. Появиха се нови области. А ти
винаги може да погледне кода и да каже, съдейки по стила, тази част
написана в началото на 60-те, а тази в средата на 70-те.

Благодарение на това просто умствено сътрудничество, хакерите са създали много
мощни и надеждни системи в Лабораторията и извън нея. Не всеки програмист
който споделя тази култура, би се нарекъл хакер, но повечето от тях
напълно споделя чувствата на Ричард Столман. Ако програмата или
коригираният код решава проблема ви добре, те ще го решат също толкова добре
този проблем за всеки. Защо не споделите това тогава?
решение, поне от морални съображения?

Тази концепция за свободно сътрудничество беше подкопана от комбинация от алчност
и търговски тайни, пораждайки странна комбинация от секретност и
сътрудничество. Добър пример е ранният живот на BSD. Това е мощно
операционна система, създадена от учени и инженери в Californian
Университет в Бъркли, базиран на Unix, закупен от AT&T. Цена
копирането на BSD беше равно на цената на филма, но с едно условие -
училищата могат да получат филм с копие на BSD само ако имат лиценз на AT&T,
която струва 50,000 XNUMX долара. Оказа се, че хакерите от Бъркли споделят
програми само доколкото компанията им е позволила да го направят
AT&T. И не видяха нищо странно в това.

Столман също не беше ядосан на Xerox, въпреки че беше разочарован. Той никога
Не се сетих да помоля компанията за копие от изходния код. „Те и
така че ни дадоха лазерен принтер“, каза той, „не мога да кажа
че все още ни дължат нещо. Освен това източниците очевидно липсваха
неслучайно това беше вътрешно решение на фирмата и молбата да се промени
беше безполезно."

В крайна сметка дойде добра новина: оказа се, че е копие на източника
Университетски изследовател има програми за принтер Xerox
Карнеги Мелън.

Комуникацията с Карнеги Мелън не предвещаваше нищо добро. През 1979г
докторантът Брайън Рийд шокира общността, като отказа да сподели своя
програма за форматиране на текст, подобна на Scribe. Тя беше първата
програма от този тип, която използва семантични команди
като „маркирайте тази дума“ или „този параграф е цитат“ вместо това
ниско ниво „напишете тази дума в курсив“ или „увеличете отстъпа за
този параграф." Рийд продаде Scribe на базирана в Питсбърг компания
Унилогично. Според Рийд в края на докторантурата си той просто е търсил екип
разработчици, върху чиито плещи би било възможно да се прехвърли отговорността
така че изходният код на програмата да не попадне в обществена употреба (до сега
не е ясно защо Рийд смята това за неприемливо). За подслаждане на хапчето
Рийд се съгласи да добави набор от базирани на времето функции към кода, така че
наречени "бомби със закъснител" - те превърнаха безплатно копие на програмата
неработещи след 90-дневния пробен период. Да направиш
програмата да работи отново, потребителите трябва да платят на компанията и
получавате бомба със закъснител за "деактивиране".

За Столман това беше чисто и крещящо предателство.
етика на програмиста. Вместо да следвате принципа „споделете и
раздайте го“, Рийд пое пътя на таксуване на програмистите за достъп до
информация. Но той не мислеше много за това, защото не го правеше често
Използвах Scribe.

Unilogic даде на AI Lab безплатно копие на Scribe, но не го премахна
бомба със закъснител и дори не го спомена. За момента програмата
Подейства, но един ден спря. Системен хакер Хауърд Кенън
прекара много часове в отстраняване на грешки в двоичния файл на програмата, докато накрая
не откри бомбата със закъснител и не я изтри. Това наистина го вбеси
история и той не се поколеба да разкаже на други хакери за нея и да я предаде
всичките ми мисли и емоции относно умишлената „грешка“ на Unilogic.

Поради причини, свързани с работата му в лабораторията, Столман отиде при
Кампусът на Карнеги Мелън няколко месеца по-късно. Опита се да намери мъж
който според новините, които е чул, е имал изходния код на програмата
принтер. За щастие този човек беше в кабинета си.

Разговорът се оказа откровен и остър, в типичния инженерен стил.
След като се представи, Столман поиска копие от изходния код на програмата за
управление на лазерен принтер Xerox. За негово голямо учудване и
За съжаление, изследователят отказа.

„Той каза, че е обещал на производителя да не ми дава копие“, казва той
Ричард.

Паметта е смешно нещо. 20 години след този инцидент, памет
Столман е пълен с празни петна. Той забрави не само причината
дойде в Карнеги Мелън, но и за това кой е неговият двойник в това
неприятен разговор. Според Рийд този човек е най-вероятен
Робърт Спрол, бивш служител на Центъра за изследване и развитие на Xerox
Пало Алто, който по-късно става директор на изследването
Подразделения на Sun Microsystems. През 70-те Sproll беше домакин
разработчик на програми за лазерни принтери Xerox. Някъде през 1980г
Спрол прие позиция като научен сътрудник в Карнеги Мелън, където
продължи да работи върху лазерни принтери.

Но когато на Спрал му задават въпроси за този разговор, той само заблуждава
ръце. Ето какво отговаря той по имейл: „Не мога да кажа
нищо определено, не си спомням нищо за този инцидент.

„Кодът, който Столман искаше, беше новаторски,
истинско въплъщение на изкуството. Срол го е написал година по-рано
дойде в Карнеги Мелън или нещо подобно“, казва Рийд. Ако това
наистина е така, има недоразумение: необходим е Столман
програма, която MIT използва от дълго време, а не някаква нова
нейната версия. Но в този кратък разговор не стана дума за това
всякакви версии.

Когато общува с публиката, Столман редовно си спомня инцидента в
Карнеги Мелън подчертава, че нежеланието за
лице за споделяне на изходни кодове е просто следствие от споразумението
неразгласяване, което било предвидено в договора между него и
от Xerox. В днешно време е обичайна практика компаниите да изискват
поддържат тайна в замяна на достъп до най-новите разработки, но в същото време
NDA бяха нещо ново тогава. Това отразява важността и на двете за Xerox
лазерни принтери и информацията, необходима за работата им.
„Xerox се опита да превърне лазерните принтери в търговски продукт,“
спомня си Рийд, „би било лудост да раздадат изходния код на всички
договор".

Столман възприема NDA напълно различно. За него това беше отказ
Карнеги Мелън участва в творческия живот на обществото, противно на досега
насърчавани да гледат на програмите като на ресурси на общността. Сякаш
би ли един селянин внезапно открил, че вековните напоителни канали
изсъхна и в опит да открие причината за проблема стигаше до пенливото
новостта на водноелектрическа централа с логото на Xerox.

На Столман му отне известно време, за да разбере истинската причина за отказа -
нов формат на взаимодействие между програмиста и
компании. Отначало той видя само личен отказ. „При мен е така
Бях ядосан, че дори не можах да намеря какво да кажа. Просто се обърнах и
„Излязох безшумно“, спомня си Ричард, „може би дори затръшнах вратата, не
Знам. Помня само едно изгарящо желание да се махна оттам възможно най-бързо. Все пак вървях
към тях, очаквайки сътрудничество и дори не мислех какво бих направил, ако аз
ще откажат. И когато това се случи, аз буквално онемях -
Това ме зашемети и разстрои толкова много.

Дори 20 години по-късно той все още усеща ехото на този гняв и
разочарования. Инцидентът в Карнеги Мелън беше повратна точка в живота
Ричард, изправяйки го лице в лице с нов етичен проблем. IN
следващите месеци около Столман и други хакери от AI Lab
ще се случат много събития, в сравнение с които тези 30 секунди гняв и
разочарованията в Карнеги Мелън ще изглеждат като нищо. Въпреки това,
Столман обръща специално внимание на този инцидент. Той беше първият и
най-важният момент в поредицата от събития, които обърнаха Ричард от
самотен хакер, интуитивен противник на централизираната власт, в
радикален евангелист на свободата, равенството и братството в
програмиране.

„Това беше първата ми среща със споразумение за неразкриване на информация и аз
Скоро разбрах, че хората стават жертви на такива споразумения, - уверено
казва Столман, „Моите колеги и аз бяхме такива жертви.
Лаборатории“.

По-късно Ричард обясни: „Ако ме беше отказал по лични причини, щеше да е така
трудно би могло да се нарече проблем. Бих могъл да го преброя в замяна
задник и това е всичко. Но отказът му беше безличен, той ме разбра
че няма да сътрудничи не само на мен, но и на никого изобщо
беше. И това не само създаде проблем, но и го направи наистина
огромен."

Въпреки че през предишни години имаше проблеми, които ядосаха Столман,
По думите му едва след инцидента в Карнеги Мелън е осъзнал това
започва културата на програмиране, която той смяташе за свещена
промяна. „Вече бях убеден, че програмите трябва да са публично достъпни
за всички, но не можа да го формулира ясно. Моите мисли по този въпрос
бяха твърде неясни и хаотични, за да ги изразят всички
на света. След инцидента започнах да осъзнавам, че проблемът вече съществува и
че трябва да се обърне внимание точно сега.“

Като първокласен програмист в един от най-силните институти
мир, Ричард не обръщаше много внимание на споразуменията и сделките на другите
програмисти – стига да не му пречат на основната работа. Докато в
Лазерният принтер Xerox не пристигна в лабораторията, Stallman имаше всичко
възможности да гледат с пренебрежение на машините и програмите, от които са страдали
други потребители. В края на краищата той можеше да променя тези програми, както си мислеше
необходимо.

Но появата на нов принтер застраши тази свобода. Апарат
работеше добре, въпреки че периодично дъвчеше хартия, но нямаше
възможности да промени поведението си, за да отговаря на нуждите на екипа. От гледна точка
софтуерната индустрия, затварянето на програмата за принтер беше
необходима стъпка в бизнеса. Програмите са се превърнали в толкова ценен актив, че
компаниите вече не могат да си позволят да публикуват изходни кодове,
особено когато програмите въплъщават някои революционни технологии. След всичко
тогава конкурентите биха могли да ги копират практически безплатно
технологии за техните продукти. Но от гледна точка на Столман принтерът беше такъв
Троянски кон. След десет години неуспешни опити за разпространение
"собствени" програми, за които е забранено безплатното разпространение и
модификация на кода, това е точно програмата, която проникна в обителта на хакерите
по най-подмолния начин – под прикритието на подарък.

Че Xerox даде на някои програмисти достъп до код в замяна на
запазването на тайна беше не по-малко досадно, но Столман изпитваше болка
призна, че на по-млада възраст най-вероятно би се съгласил
Оферта на Xerox. Инцидентът в Карнеги Мелън укрепи морала му
позиция, не само го зарежда с подозрение и гняв към
подобни предложения в бъдеще, но и чрез поставяне на въпроса: какво,
ако един ден хакер излезе с подобна молба, а сега към него,
Ричард ще трябва да откаже да копира източниците, следвайки изискванията
работодател?

„Когато ми предложат да предам колегите си по същия начин,
Спомням си гнева и разочарованието си, когато направиха същото с мен и
други членове на Лабораторията, казва Столман, така че
благодаря ти много, програмата ти е чудесна, но не мога да се съглася
относно условията за неговото използване, така че ще се справя без него.

Ричард твърдо ще запази спомена за този урок през бурните 80-те години, когато
много от неговите колеги от лабораторията ще отидат да работят в други компании,
обвързани със споразумения за неразкриване. Сигурно са си казали
че това е необходимо зло по пътя към работата по най-интересното и
изкушаващи проекти. Въпреки това, за Столман, самото съществуване на NDA
поставя под въпрос моралната стойност на проекта. Какво може да бъде добро
в проект, дори ако е технически вълнуващ, ако не служи на генерала
цели?

Много скоро Столман осъзна, че не е съгласен с подобни предложения
има значително по-висока стойност от личните професионални интереси. Такива
безкомпромисната му позиция го отделя от другите хакери, които въпреки че
ненавиждат потайността, но са готови да стигнат до морални граници
компромиси. Мнението на Ричард е ясно: отказ от споделяне на изходния код
това е предателство не само към изследователската роля
програмиране, но и Златното правило на морала, което гласи, че вашият
отношението ви към другите трябва да е същото, каквото искате да видите
отношение към себе си.

Това е значението на историята с лазерния принтер и инцидента в
Карнеги Мелън. Без всичко това, както признава Столман, съдбата му отиде
би поел по съвсем различен път, балансирайки между материалното богатство
търговски програмист и последно разочарование в живота,
прекарано в писане на програмен код, невидим за никого. Не са имали
не би имало смисъл да мислим за този проблем, в който останалите дори
не видях проблема. И най-важното, нямаше да има тази животворна част
гняв, който даде на Ричард енергията и увереността да продължи напред.

„Онзи ден реших, че никога няма да се съглася да участвам
това,” казва Столман, имайки предвид NDA и цялата култура като цяло,
което насърчава размяната на личната свобода срещу някои облаги и
Ползи.

„Реших, че никога няма да направя друг човек жертвата, която станах.
един ден аз самият."

Източник: linux.org.ru

Добавяне на нов коментар