Свободен като свобода на български: Глава 1. Фаталният принтер
Free as in Freedom на руски: Глава 2. 2001: Хакерска одисея
Свободен като свобода на български: Глава 3. Портрет на хакера в юношеството
Свобода като свобода на български: Глава 4. Развенчаване на бога
Свободно като свобода на руски: Глава 5. Ручеёк свободи
Free as in Freedom на руски: Глава 6. Коммуна Emacs
Дилема на абсолютната моралност
В 12:30 на 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 – елегантен език за програмиране, който е прекрасно подходящ за работа с данни, чиято структура не е известна предварително. Той е създаден от пионера в изследванията на изкуствения интелект и създателя на термина «изкуствен интелект» Джон Маккарти, който е работил в MIT през втората половина на 50-те години. Името на езика е съкращение от «LISt Processing» или «обработка на списъци». След като Маккарти напуска MIT и влиза в Станфорд, хакерите от Лабораторията променят малко Lisp, създавайки местния диалект MACLISP, където първите 3 букви обозначават проекта MAC, благодарение на който всъщност е основана Лабораторията по ИИ в MIT. Под ръководството на системния архитект Ричард Гринблат хакерите на Лабораторията разработват Lisp машина – специален компютър за изпълнение на програми на езика Lisp, а също и операционна система за този компютър – също, разбира се, написана на Lisp.
Към началото на 80-те години конкуриращите групи хакери основават две компании за производство и продажба на Lisp машини. Компанията на Гринблат се нарича Lisp Machines Incorporated или просто LMI. Той е имал намерение да се справи без външни инвестиции и да създаде чисто «хакерска компания». Но повечето хакери се присъединяват към Symbolics, обикновен търговски стартъп. През 1982 година те вече напълно напускат MIT.
Тези, които останали, могат да бъдат преброени на пръстите на едната ръка, така че програмите и машините се поправят все по-дълго и по-дълго, или не се поправят изобщо. И най-лошото от всичко, по думите на Столлмън – в Лабораторията започнаха «демографски промени». Хакерите, които преди това бяха малцинство, почти изчезнаха, оставяйки Лабораторията изцяло на разположение на преподавателите и студентите, чието отношение към 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 букви от инициалите на Столлман като логин и парола.
«Вечно съм благодарен на MТИ, че аз и много други хора можехме свободно да ползваме техните компютри», казва Хопкинс, «това означаваше много за всички нас».
Тази «туристическа» политика продължи много години, докато съществуваше системата ITS, и ръководството на MТИ гледаше на нея снизходително. Но когато машината Оз стана основен мост от Лабораторията към ARPAnet, всичко се промени. Столман все още предоставяше достъп до своя акаунт с известното потребителско име и парола, но администраторите му поискаха да смени паролата и да не я дава на никого. Ричард, позовавайки се на своята етика, изобщо отказа да работи на машината Оз.
«Когато паролите започнаха да се появяват на компютрите на Лабораторията по ИИ, реших да следвам убеждението си, че пароли не трябва да има», каза по-късно Столман, «и тъй като смятах, че компютрите не се нуждаят от системи за сигурност, нямам право да подкрепям тези мерки за тяхното внедряване».
Отказът на Столман да се поклони пред великата и ужасна машина Оз показваше, че между хакерите и ръководството на Лабораторията нарастваше напрежение. Но това напрежение беше само бледа сянка на конфликта, бушуващ в самия хакерски колектив, който се раздели на 2 лагера: LMI (Lisp Machines Incorporated) и Symbolics.
Symbolics получи значителни инвестиции от външни източници, което привлече много хакери от Лабораторията. Те работеха върху системата на Lisp машините както в MТИ, така и извън него. До края на 1980 г. компанията нае 14 служители от Лабораторията като консултанти за разработването на собствена версия на Lisp машината. Останалите хакери, с изключение на Столман, работеха за LMI. Ричард реши да не заема ничия страна и, както обикновено, беше сам по себе си.
Първоначално хакерите, наети от Symbolics, продължиха да работят и в MТИ, усъвършенствайки системата на Lisp машината. Те, както и хакерите от LMI, ползваха лиценза на MIT за своя код. Той изискваше върнати изменения в MТИ, но не изискваше от MТИ да разпространява тези изменения. Въпреки това, през 1981 г. хакерите спазваха джентълменско споразумение, според което всички техни подобрения се внасяха в Lisp машината на MТИ и се разпространяваха сред всички потребители на тези машини. Такава ситуация все още запазваше някаква стабилност в хакерския колектив.
Но на 16 март 1982 година – Столлман добре помни този ден, защото е бил негов рожден ден – джентълменското споразумение приключи. Това се случи по волята на ръководството на Symbolics, което искаше да задуши конкурента си – компания LMI, в която работеха значително по-малко хакери. Ръководителите на Symbolics решиха, че щом LMI има значително по-малко служители, значи общата работа над Lisp-машината е изгодна именно за тях, и ако спрат размяната на разработки, LMI ще бъде унищожена. С тази цел те решиха да злоупотребят с условията на лиценза. Вместо да правят промени в версията на системата на MIT, от която LMI можеше да се възползва, те започнаха да предлагат версията на Symbolics за MIT, която можеха да редактират, както им е угодно. Оказваше се, че всяко тестване и редактиране на кода на Lisp-машината в MIT беше в полза само на Symbolics.
Като човек, отговорен за поддръжката на лабораторната Lisp-машина (първите няколко месеца – с помощта на Гринблатта), Столлман изпадна в ярост. Хакерите на Symbolics предоставиха код със стотици промени, които причиняваха грешки. Възприемайки това като ултиматум, Столлман прекъсна връзката на Лабораторията с Symbolics, закле се никога повече да не работи на машините на тази компания и обяви присъединяването си към работата по Lisp-машината на MIT за поддръжка на LMI. „В моите очи Лабораторията беше неутрална страна, като Белгия по време на Втората световна война – разказва Столлман, – и ако Германия нахлуе в Белгия, тя обявява война на Германия и се присъединява към Великобритания и Франция“.
Когато ръководителите на Symbolics забелязаха, че последните им иновации все още се появяват и в MIT версията на Lisp машината, те се разгневиха и започнаха да обвиняват хакерите от Лабораторията в кражба на код. Но Столмън нито за момент не нарушаваше закона за авторското право. Той проучи кода, предоставен от Symbolics, и направи логични предположения за бъдещите поправки и подобрения, които започна да реализира от нулата за Lisp машината на MIT. Ръководителите на Symbolics не вярваха на това. Те инсталираха шпионска програма на терминала на Столмън, която записваше всичко, което Ричард правеше. Така те се надяваха да съберат доказателства за кражба на код и да ги представят на администрацията на MIT, но дори и в началото на 1983 година, почти нямаше какво да покажат. Всичко, което имаха, бяха няколко случая, където кодовете на двете системи изглеждаха леко подобни.
Когато администраторите на Лабораторията показаха доказателства на Symbolics на Столмън, той ги опроверга, казвайки, че кодът е наистина подобен, но не и идентичен. И обърна логиката на ръководството на Symbolics срещу тях самите: ако тези малки парчета подобен код са всичко, което са успели да намерят, то това само доказва, че Столмън всъщност не е крал код. Това беше достатъчно, за да одобрят работата на Столмън в Лабораторията, и той я продължи до края на 1983 година.
Но Столмън промени подхода си. За да се предпази максимално от претенции от страна на Symbolics, той напълно спря да гледа техните изходни кодове. Започна да пише код изключително по документация. Най-големите иновации Ричард не очакваше от Symbolics, а ги реализираше сам, след това само добавяше интерфейси за съвместимост с реализацията на Symbolics, опирайки се на тяхната документация. Той също така четеше списъка с промени в кода на Symbolics, за да разбере какви грешки са поправяли, и ги коригираше самостоятелно, с други методи.
Събитията укрепиха решимостта на Столмън. Създавайки аналози на новите функции на Symbolics, той наклони служителите от Лабораторията към MIT версията на Lisp машината, което осигури добро ниво на тестване и откриване на грешки. А MIT версията беше напълно отворена за LMI. „Исках да накажа Symbolics на всяка цена“, споделя Столмън. Това изказване не само говори за факта, че характерът на Ричард е далеч от пацифизма, но и че конфликтът около Lisp машината го е засегнал дълбоко.
Отчаяната решимост на Столман може да се разбере, ако вземем предвид какво е означавало всичко за него – "разрушаването" на неговия "дом", тоест хакерската общност и култура на Лабораторията по изкуствен интелект. По-късно Леви е взел интервю от Столман по електронната поща, където Ричард е сравнил себе си с Иши – последния известен представител на индианския народ Яхи, който е изтребен през индианските войни от 1860-1870-те години. Тази аналогия придава на събитията епичен, почти митологичен масштаб. Хакерите, които работят за Symbolics, са виждали нещата в съвсем различна светлина: тяхната компания не е разрушавала и не е унищожавала, а е правила само това, което скоро е трябвало да бъде направено. Премествайки Lisp машината в сферата на търговията, Symbolics е променила подхода към проектирането на софтуер – вместо да се шият по твърдите шаблони на хакерите, са започнали да се използват по-меките и човечни норми на мениджърите. И Столман не е бил оценен като противник-боец за правото дело, а като носител на остаряла мисъл.
Личните конфликти също добавили масло в огъня. Още преди появата на Symbolics много хакери се предпазвали от Столман, а ситуацията сега e значително влошена. "Все по-малко ме канеха на пътувания до Чайна-таун, – спомня си Ричард, – Гринблатт е започнал обичая: когато искаш да обядваш, обикаляш колегите и ги каниш с теб, или им изпращаш съобщение. Някъде през 1980-1981 година вече не ме канеха. Те не само че не ме канеха, но и, както ми призна по-късно един човек, оказваха натиск върху другите, за да не ми говорят за планираните пътувания на обяд."
Източник: linux.org.ru

