Свободен как в свободе на български: Глава 1. Смъртоносният принтер
Свободно как в свободе на български: Глава 2. 2001: Хакерска одисея
Free as in Freedom на български: Глава 3. Портрет на хакера в юношеството
Свободен като в свободата на български: Глава 4. Разрушаване на бога
Свободни като свобода на руски: Глава 5. Ручей на свободата
Free as in Freedom на български: Глава 6. Комуната Emacs
Дилема на абсолютната моралност
В половината на първия час през нощта на 27 септември 1983 година в Usenet групата net.unix-wizards се появи необичайно съобщение, подписано от rms@mit-oz. Съобщението имаше кратко и изключително примамливо заглавие: „Нова реализация на UNIX“. Но вместо готова нова версия на Unix, читателят откри призив:
В този Ден на благодарността започвам да пиша нова, напълно съвместима с Unix операционна система, която ще се нарича GNU (GNU’s Not Unix). Ще я раздавам свободно на всички, които я желаят. Много ми трябват вашето време, пари, код, хардуер – всяка помощ.
В очите на опитен Unix разработчик, съобщението изглеждаше като смесица от идеализъм и високо самочувствие. Авторът не просто се захващаше да пресъздаде от нулата цяла операционна система, изключително развита и мощна, но и да я подобри. Системата GNU трябваше да включва всички необходимите компоненти като текстов редактор, команден интерфейс, компилатор, и „няколко други неща“. Обещаваха се също така изключително атрактивни възможности, които не присъстваха в съществуващите Unix системи: графичен интерфейс на езика за програмиране Lisp, стабилна при сривове файлова система, мрежови протоколи, базирани на мрежовата архитектура на MIT.
„GNU ще може да стартира Unix програми, но няма да бъде идентичен на системата Unix“, пише автора, „ще направим всички нужни подобрения, които са назрели през годините труд в различни операционни системи.“
Предвиждайки скептичната реакция на своето съобщение, авторът добави кратко автобиографично отклонение с заглавие: „Кой съм аз?“:
Аз съм Ричард Столлман, създателят на оригиналния редактор EMACS, един от клоновете на който сигурно сте срещали. Работя в Лабораторията по ИИ на Масачузетския технологичен институт. Имам богат опит в разработката на компилатори, редактори, отладчици, командни интерпретатори, операционни системи ITS и Lisp Machine. Реализирах независима от терминалите поддръжка на екрана в ITS, както и отказоустойчива файлова система и две графични системи за Lisp машини.
Случайно се случи така, че сложният проект на Столмана не стартира на Деня на благодарността, както бе обещано. Само през януари 1984 година Ричард се потопи в разработката на софтуер в стил Unix. От гледна точка на системния архитект на ITS, това беше все едно да преминеш от изграждането на мавритански дворове към строителството на предградски търговски центрове. Въпреки това, разработката на Unix системата предлагаше и предимства. ITS, с всичките си мощи, имаше слабо място – работеше само на компютъра PDP-10 на DEC. В началото на 80-те години лабораторията се отказа от PDP-10 и ITS, която хакерите сравняваха с оживен град, се преобрази в град-призрак. Unix обаче бе разработен с цел преносимост от една компютърна архитектура на друга, така че подобни неприятности не го заплашваха. Разработен от младши научни сътрудници на AT&T, Unix премина незабелязано покрай корпоративните雷дарите и намери спокойно убежище в неправителствения свят на научните центрове. Имайки по-малко ресурси от своите колеги хакери в МТИ, разработчиците на Unix адаптираха системата си за работа на зоопарка от разнообразно оборудване. Главно - на 16-битовия PDP-11, който хакерите от лабораторията смятаха за неподходящ за сериозни задачи, но и на 32-битовите мейнфреймове като VAX 11/780. До 1983 година такива компании като Sun Microsystems създадоха сравнително компакти настолни компютри – „работни станции“, сравними по мощ с древния мейнфрейм PDP-10. На тези работни станции също обитаваше всеприсъстващият Unix.
Unix преносимостта беше осигурена чрез допълнителен слой абстракция между приложенията и оборудването. Вместо да пишат програми на машинни кодове на конкретен компютър, както правеха хакерите в лабораторията, разработвайки програми за ITS на PDP-10, разработчиците на Unix използваха езика за програмиране C, който не беше привързан към конкретна хардуерна платформа. В този процес разработчиците се съсредоточиха върху стандартизацията на интерфейсите, чрез които различните части на операционната система взаимодействат помежду си. В крайна сметка се получи система, в която всяка част можеше да бъде променяна, без да се засягат останалите части и без да се нарушава тяхната работа. И за да прехвърлите системата от една хардуерна архитектура на друга, беше достатъчно да преработите само една част от системата, а не да я презаписвате изцяло. Специалистите оцениха този фантастичен ниво на гъвкавост и удобство, затова Unix бързо се разпространи в компютърния свят.
Столман реши да създаде система GNU заради кончината на ITS, любимият проект на хакерите от лабораторията по изкуствен интелект. Смертта на ITS беше удар за тях, включително и за Ричард. Ако историята с лазерния принтер Xerox му отвори очите за несправедливостта на собственическите лицензи, смъртта на ITS го подтикна от отхвърляне на затворен софтуер към активно противопоставяне на него.
Причините за гибелта на ITS, подобно на нейния код, имат дълбоки корени в миналото. До 1980 година повечето хакери в лабораторията вече работеха по Lisp машина и операционната система за нея.
Lisp е елегантен програмен език, отлично подходящ за работа с данни, чиято структура е предварително неизвестна. Той е създаден от пионера на изследванията в изкуствения интелект и създателя на самия термин „изкуствен интелект“ Джон Маккарти, който работеше в МТИ през втората половина на 50-те години. Името на езика е съкращение от „LISt Processing“ или „обработка на списъци“. След като Маккарти напусна МТИ и отиде в Станфорд, хакерите от лабораторията малко промениха Lisp, създавайки неговия местен диалект MACLISP, където първите 3 букви обозначават проекта MAC, благодарение на който всъщност се появи лабораторията по ИИ в МТИ. Под ръководството на системния архитект Ричард Гринблат хакерите от лабораторията разработиха Lisp-машина – специален компютър за изпълнение на програми на езика Lisp, и операционна система за този компютър – разбира се, написана също на Lisp.
Към началото на 80-те години конкурентни групи хакери основаха две компании за производство и продажба на Lisp-машини. Компанията на Гринблат се наричаше Lisp Machines Incorporated или просто LMI. Той се надяваше да се справи без външни инвестиции и да създаде напълно „хакерска компания“. Но повечето хакери се присъединиха към Symbolics, обикновен търговски стартъп. През 1982 година те вече бяха напълно напуснали МТИ.
Тези, които останаха, можеха да бъдат преброени на пръстите на едната ръка, така че програмите и машините се оправяха все по-дълго или изобщо не се оправяха. И най-лошото, според Столмана – в лабораторията започнаха „демографски промени“. Хакерите, които и преди бяха в малцинство, почти изчезнаха, оставяйки лабораторията изцяло в ръцете на преподавателите и студентите, чийто отношение към PDP-10 беше откровено нехармонично.
През 1982 година Лабораторията по ИИ получи заместник на 12-годишния си PDP-10 – DECSYSTEM 20. Приложенията, написани за PDP-10, работеха без проблем на новия компютър, тъй като DECSYSTEM 20 всъщност беше обновена версия на PDP-10, но предишната операционна система изобщо не подхождаше – ITS трябваше да бъде портирована на новия компютър, а това значеше почти пълно пренаписване. А именно в това време почти всички хакери, способни да се заемат, напуснаха Лабораторията. Така че на новия компютър бързо наложиха търговската операционна система Twenex. Малцината останали хакери в МТИ можеха само да се примирят с това.
„Без хакерите, които да се ангажират с разработката и поддръжката на операционната система, сме обречени“, казваха служителите от факултета и студенти, „нужна ни е търговска система, която да се поддържа от някоя компания, за да може тя сама да решава проблемите с тази система“. Столман споменава, че този аргумент се оказал жестока грешка, но в момента звучал убедително.
Първоначално хакерите виждаха в Twenex поредното проявление на авторитарната корпорация, която само искаха да разрушат. Дори в името се отразяваше неприязънта на хакерите – всъщност, системата се наричаше TOPS-20, указвайки на наследството от TOPS-10, също търговска система на DEC за PDP-10. Но архитектурно TOPS-20 нямаше нищо общо с TOPS-10. Тя беше създадена на базата на системата Tenex, разработена от компанията Bolt, Beranek and Newman за PDP-10. Столман започна да нарича системата „Twenex“, просто за да не я нарича TOPS-20. „Системата беше далеч от топовите решения, така че не можех да я нарека с официалното име“, спомня си Столман, „заради това добавих буквата 'w' в 'Tenex', за да стане 'Twenex'." (Това име играе с думата „twenty”, т.е. „двадесет“)
Компютърът, на който работеше Twenex/TOPS-20, иронично беше наречен „Оз“. Работата е там, че DECSYSTEM 20 изискваше малка машина PDP-11 за работа на терминала. Един хакер, видял за първи път свързването на PDP-11 с този компютър, го сравни с помпозното представяне на Вълшебникът от страната Оз. „Аз съм великият и ужасен Оз! – декламира той. – Само не гледайте на мизерията, от която работя.“
На новата операционна система на компютъра вече нямаше нищо смешно. Сигурността и контролът на достъпа бяха вградени в Twenex на базово ниво, а приложенията и инструментите й също бяха разработени с оглед на безопасността. Снизходителните шеги относно системите за безопасност на Лабораторията се превърнаха в сериозна битка за контрол над компютъра. Администраторите твърдяха, че без системите за безопасност Twenex ще бъде нестабилна и податлива на грешки. Хакерите уверяваха, че стабилността и надеждността могат да се постигнат много по-бързо чрез редактиране на оригиналния код на системата. Но техният брой в Лабораторията беше толкова малък, че никой не ги слушаше.
Хакерите помислиха, че могат да заобиколят ограниченията за безопасност, давайки на всички потребители "управляващи привилегии" – повишени права, които позволяват много от нещата, забранени за обикновения потребител. Но в този случай всеки потребител можеше да отнеме "управляващите привилегии" на всеки друг потребител, а той не можеше да си ги върне поради липса на права за достъп. Затова хакерите решиха да получат контрол над системата, отнемайки "управляващите привилегии" от всички, с изключение на себе си.
Подборът на пароли и стартирането на отладчика по време на зареждането на системата не доведоха до нищо. След като не успяха в "държавният преврат", Столлман разпрати съобщение до всички служители на Лабораторията.
"Досега аристократите бяха победени, – пишеше той, – но сега те взеха връх, и опитът за завземане на властта не успя." Ричард подписа съобщението: "Radio Free OZ", за да не може никой да се досети, че е той. Отлична маскировка, като се има предвид, че всички в Лабораторията знаеха за отношението на Столлман към системите за безопасност и неговото подигравателно отношение към паролите. Въпреки това, отвращението на Ричард към паролите беше известно далеч извън MIT. На компютрите на Лабораторията под акаунта на Столлман влизаше почти целият ARPAnet – предшественикът на интернет от онези времена. Такъв „турист“ беше, например, Дон Хопкинс, програмист от Калифорния, който чрез хакерската мълва научи, че може да влезе в прославената система ITS в MIT, просто като въведе 3 букви от инициалите на Столлман за логин и парола.
„Благодаря МТИ, много хора, включително и аз, можехме свободно да използваме техните компютри“, казва Хопкинс, „Това означаваше много за всички нас.“
Тази „туристическа“ политика продължи много години, докато системата ITS съществуваше, и ръководството на МТИ я гледаше с снизхождение. Но когато машината Оз стана основният мост от Лабораторията към ARPAnet, всичко се промени. Столман все още предоставяше достъп до своя акаунт с известния логин и парола, но администраторите му поискаха да промени паролата и да не я дава на никого повече. Ричард, позовавайки се на своята етика, отказа да работи на машината Оз.
„Когато паролите започнаха да се появяват на компютрите на Лабораторията по изкуствен интелект, реших да се придържам към убеждението си, че паролите не трябва да съществуват“, каза по-късно Столман, „а тъй като смятах, че компютрите не се нуждаят от системи за сигурност, не трябваше да подкрепям внедряването им.“
Отказът на Столман да се поклони пред великия и ужасен машина Оз показваше, че между хакерите и ръководството на Лабораторията нарастваше напрежение. Но това напрежение беше само бледа сянка на конфликта, бушуващ в самата хакерска общност, която се раздели на 2 лагера: LMI (Lisp Machines Incorporated) и Symbolics.
Symbolics получи значителни външни инвестиции, привличайки много хакери от Лабораторията. Те работеха върху системата на Lisp машината както в МТИ, така и извън него. До края на 1980 година компанията нае 14 служители от Лабораторията като консултанти за разработка на собствена версия на Lisp машината. Останалите хакери, с изключение на Столман, работеха за LMI. Ричард реши да не заема ничия страна и, както винаги, беше сам по себе си.
Първоначално хакерите, наети от Symbolics, продължаваха да работят и в МТИ, усъвършенствайки системата на Lisp машината. Те, точно като хакерите от LMI, използваха MIT лиценза за своя код. Той изискваше измененията да бъдат върнати в МТИ, но не изискваше от МТИ да разпространява тези изменения. Въпреки това, през 1981 година хакерите спазваха джентълменско споразумение, по силата на което всички техни подобрения бяха внасяни в Lisp машината от МТИ и разпространявани сред всички потребители на тези машини. Такова положение на вещите все пак запазваше известна стабилност в хакерската общност.
Но на 16 март 1982 година – Столман добре помни този ден, защото това е бил неговият рожден ден – джентълменското споразумение приключи. Това се случи по воля на ръководството на Symbolics, което по този начин искаше да задуши своя конкурент – компанията LMI, на която работеха значително по-малко хакери. Ръководителите на Symbolics решиха, че ако LMI има многократно по-малко служители, то значи, че общата работа по Lisp-машината е изгодна именно на тях, и ако спрат този обмен на разработки, то LMI ще бъде унищожена. С тази цел те решили да злоупотребят с буквата на лиценза. Вместо да внесат промени в МТИ-версията на системата, от която LMI можеше да се възползва, те започнали да доставят в МТИ Symbolics-версия на системата, която можели да редактират по какъвто и да е начин. Излизаше, че всяко тестване и редактиране на кода на Lisp-машината в МТИ било само в полза на Symbolics.
Като човек, отговорен за поддръжката на лабораторната Lisp-машина (първите няколко месеца – с помощта на Гринблат), Столман беше в ярост. Хакерите от Symbolics предоставили код с хиляди промени, които предизвиквали грешки. Приел това като ултиматум, Столман прекъснал връзката на Лабораторията с Symbolics, заклнал се никога повече да не работи на машините на тази компания и обявил присъединяването си към работата по Lisp-машината на МТИ за подкрепа на LMI. „В моите очи Лабораторията беше неутрална страна, като Белгия по време на Втората световна война,” разказва Столман, „и ако Германия нахлуе в Белгия, тя обявява война на Германия и се присъединява към Британия и Франция.”
Когато ръководителите на Symbolics забелязаха, че последните им нововъведения все още се появяват и в МТИ версията на Lisp машината, те се разгневиха и започнаха да обвиняват хакерите от Лабораторията в кражба на код. Но Столман не нарушаваше закона за авторското право. Той изучи кода, предоставен от Symbolics, и направи логични предположения относно бъдещите корекции и усъвършенствания, които започна да реализира от нулата за Lisp машината на МТИ. Ръководителите на Symbolics не вярваха в това. Те инсталираха шпионска програма на терминала на Столман, която записваше всичко, което Ричард правеше. Така те се надяваха да съберат доказателства за кражба на код и да ги покажат на администрацията на МТИ, но дори в началото на 1983 година почти нямаше какво да покажат. Всичко, което имаха, бяха няколко дузини места, където кодовете на двете системи изглеждаха малко подобни.
Когато администраторите на Лабораторията показаха доказателства на Symbolics на Столман, той ги опроверга, казвайки, че кодът е именно подобен, но не идентичен. И обърна логиката на ръководството на Symbolics срещу тях самите: ако тези дребни подобия на код са всичко, което могат да съберат, то това само доказва, че Столман всъщност не е крадял код. Това беше достатъчно, за да одобрят управителите на Лабораторията работата на Столман и той я продължи до края на 1983 година.
Но подходът на Столман се измени. За да се предпази максимално от претенции на Symbolics, той напълно спря да гледа техните изходни кодове. Той започна да пише код изключително по документация. Най-големите нововъведения Ричард не очакваше от Symbolics, а ги реализираше сам, след което само добавяше интерфейси за съвместимост с реализацията на Symbolics, опирайки се на тяхната документация. Освен това, той чете списъка с промени в кода на Symbolics, за да разбере какви грешки те коригираха и ги коригираше самостално, по друг начин.
Събитията укрепиха решимостта на Столман. Създавайки аналози на новите функции на Symbolics, той склоняваше служителите на Лабораторията към МТИ версията на Lisp машината, което осигури добър уровень на тестване и откриване на грешки. А МТИ версията беше напълно отворена за LMI. „Исках да накажа Symbolics на всяка цена“, разказва Столман. Това изказване говори не само за това, че характерът на Ричард е далеч от пацифизма, но и за това, че конфликтът около Lisp машината го е засегнал дълбоко.
Отчаянието на Столлман може да бъде разбранo, ако се вземе предвид какво представляваше за него всичко това – «разрушение» на неговия «дом», тоест хакерската общност и културата на Лабораторията за изкуствен интелект. По-късно Леви интервюира Столлман по електронна поща, и там Ричард сравняваше себе си с Иши – последния известен представител на индианския народ Яхи, който бе унищожен по времето на индианските войни от 1860-1870-те години. Тази аналогия придава епичен, почти митологичен размах на изложените събития. Хакерите, които работеха за Symbolics, виждаха ситуацията по малко по-различен начин: тяхната компания не унищожаваше и не изтребваше, а просто правеше това, което отдавна трябваше да се направи. Премествайки Lisp машината в сферата на търговията, Symbolics промени подхода към проектирането на софтуер – вместо да ги шият по твърди шаблони на хакерите, започнаха да се използват по-меките и човечни стандарти на мениджърите. А Столлман те го възприемаха не като противник-борец в защита на правото, а като носител на остарели разбирания.
Личните раздори също подправиха ситуацията. Още преди появата на Symbolics много хакери се дистанцираха от Столлман, а сега ситуацията се влоши многократно. «Вече не ме канеха на пътувания до Чайна-таун», спомня си Ричард, «Гринблатт постави началото на обичая: когато искаш да обядваш, обикаляш колегите и ги каниш с теб, или изпращаш съобщение. Някъде около 1980-1981 година престанаха да ме канят. Те не само не ме канеха, но и, както ми призна по-късно един човек, натискаха останалите да не ми говорят за предстоящи обеди на пътувания».
Източник: linux.org.ru

