Свободен като свобода на руски: Глава 7. Дилемата на абсолютния морал


Свободен като свобода на руски: Глава 7. Дилемата на абсолютния морал

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


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


Безплатно като в Свобода на руски: Глава 3. Портрет на хакер в младостта си


Безплатно като в Свобода на руски: Глава 4. Развенчайте Бог


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


Безплатно като Свобода на руски: Глава 6. Emacs Commune

Дилемата на абсолютния морал

В дванадесет и половина през нощта на 27 септември 1983 г. в групата net.unix-wizards на Usenet се появи необичайно съобщение, подписано rms@mit-oz. Заглавието на съобщението беше кратко и изключително примамливо: „Нова реализация на UNIX“. Но вместо някаква готова нова версия на Unix, читателят намери обаждане:

Този Ден на благодарността започвам да пиша нова, напълно съвместима с Unix операционна система, наречена GNU (GNU's Not Unix). Ще го раздавам безплатно на всички. Наистина имам нужда от вашето време, пари, код, оборудване - всякаква помощ.

За един опитен разработчик на Unix посланието беше смесица от идеализъм и его. Авторът не само се ангажира да пресъздаде от нулата цяла операционна система, много напреднала и мощна, но и да я подобри. Системата GNU трябваше да съдържа всички необходими компоненти като текстов редактор, командна обвивка, компилатор, както и „редица други неща“. Те също обещаха изключително атрактивни функции, които не бяха налични в съществуващите Unix системи: графичен интерфейс на езика за програмиране Lisp, устойчива на грешки файлова система, мрежови протоколи, базирани на мрежовата архитектура на MIT.

„GNU ще може да изпълнява Unix програми, но няма да бъде идентичен с Unix системата“, пише авторът, „Ще направим всички необходими подобрения, които са узрели през годините на работа върху различни операционни системи.“

Предусещайки скептична реакция към посланието си, авторът го допълва с кратко автобиографично отклонение под заглавието: „Кой съм аз?“:

Аз съм Ричард Столман, създател на оригиналния редактор на EMACS, един от клонингите на който вероятно сте срещали. Работя в MIT AI Lab. Имам богат опит в разработването на компилатори, редактори, дебъгери, командни интерпретатори, 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, който хакерите от Lab сметнаха за неподходящ за сериозни задачи, но също и на 32-битови мейнфрейми като VAX 11/780. До 1983 г. компании като Sun Microsystems са създали сравнително компактни настолни компютри - "работни станции" - сравними по мощност със стария мейнфрейм PDP-10. Вездесъщият Unix също се настани на тези работни станции.

Преносимостта на Unix беше осигурена от допълнителен слой на абстракция между приложения и хардуер. Вместо да пишат програми в машинния код на конкретен компютър, както направиха хакерите от Lab при разработването на програми за ITS на PDP-10, разработчиците на Unix използваха езика за програмиране на високо ниво C, който не беше обвързан с конкретна хардуерна платформа. В същото време разработчиците се фокусираха върху стандартизирането на интерфейсите, чрез които части от операционната система взаимодействат помежду си. Резултатът беше система, в която всяка част можеше да бъде преработена, без да се засягат всички останали части и без да се прекъсва работата им. И за да се прехвърли система от една хардуерна архитектура на друга, също беше достатъчно да се преработи само една част от системата, а не да се пренапише изцяло. Експертите оцениха това фантастично ниво на гъвкавост и удобство, така че Unix бързо се разпространи в целия компютърен свят.

Столман реши да създаде системата GNU поради отпадането на ITS, любимата идея на хакерите от AI Lab. Смъртта на ITS беше удар за тях, включително за Ричард. Ако историята с лазерния принтер Xerox му отвори очите за несправедливостта на патентованите лицензи, то смъртта на ITS го тласна от отвращение към затворения софтуер към активно противопоставяне срещу него.

Причините за смъртта на ITS, както и кодът му, отиват далеч в миналото. До 1980 г. повечето от хакерите на Лабораторията вече работеха върху Lisp машина и операционна система за нея.

Lisp е елегантен език за програмиране, който е идеален за работа с данни, чиято структура е предварително неизвестна. Създаден е от пионера в изследванията на изкуствения интелект и създателя на термина „изкуствен интелект” Джон Маккарти, който работи в MIT през втората половина на 50-те години. Името на езика е съкращение от “LIST Processing” или “list processing”. След като Маккарти напусна Масачузетския технологичен институт за Станфорд, хакерите на лабораторията промениха донякъде Lisp, създавайки неговия местен диалект MACLISP, където първите 3 букви означаваха проекта MAC, благодарение на който всъщност се появи AI ​​Laboratory в MIT. Под ръководството на системния архитект Ричард Грийнблат, хакерите на лабораторията разработиха Lisp машина - специален компютър за изпълнение на програми на Lisp, както и операционна система за този компютър - също, разбира се, написана на Lisp.

До началото на 80-те години на миналия век, конкуриращи се групи хакери са основали две компании, произвеждащи и продаващи Lisp машини. Компанията на Грийнблат се нарича Lisp Machines Incorporated или просто LMI. Той се надяваше да се справи без външни инвестиции и да създаде чисто „хакерска компания“. Но повечето от хакерите се присъединиха към Symbolics, типичен търговски стартъп. През 1982 г. те напълно напускат MIT.

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

През 1982 г. AI ​​Lab получава заместител на своя 12-годишен PDP-10 - DECSYSTEM 20. Приложенията, написани за PDP-10, работят без проблеми на новия компютър, тъй като DECSYSTEM 20 по същество е актуализиран PDP -10, но при старата операционната система изобщо не беше подходяща - ITS трябваше да бъде пренесена на нов компютър, което означава почти напълно пренаписана. И това е в момент, когато почти всички хакери, които биха могли да направят това, са напуснали Лабораторията. Така търговската операционна система Twenex бързо превзе новия компютър. Малцината хакери, които останаха в MIT, можеха само да приемат това.

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

Първоначално хакерите видяха Twenex като друго въплъщение на авторитарна корпоратокрация, която искаха да разбият. Дори името отразява враждебността на хакерите - всъщност системата се нарича TOPS-20, което показва приемственост с TOPS-10, също комерсиална DEC система за PDP-10. Но в архитектурно отношение TOPS-20 нямаше нищо общо с TOPS-10. Той е направен въз основа на системата Tenex, която Bolt, Beranek и Newman разработиха за PDP-10. . Столман започнал да нарича системата „Twenex“, само за да не я нарича TOPS-20. „Системата беше далеч от решения от най-висок клас, така че не можех да се осмеля да я нарека с официалното й име“, спомня си Столман, „така че вмъкнах буквата „w“ в „Tenex“, за да стане „Twenex“.“ (Това име играе на думата „двайсет“, т.е. „двадесет“)

Компютърът, който работеше с Twenex/TOPS-20, беше иронично наречен "Oz". Факт е, че DECSYSTEM 20 изисква малка машина PDP-11, за да управлява терминала. Един хакер, когато за първи път видя PDP-11, свързан към този компютър, го сравни с претенциозно изпълнение на Магьосника от Оз. „Аз съм великият и ужасен Оз! – рецитира той. „Само не гледайте дребните неща, върху които работя.“

Но в операционната система на новия компютър нямаше нищо смешно. Сигурността и контролът на достъпа са вградени в Twenex на базово ниво, а неговите помощни програми за приложения също са проектирани с мисъл за сигурността. Снизходителни шеги за системите за сигурност на Лабораторията се превърнаха в сериозна битка за компютърен контрол. Администраторите твърдяха, че без системи за сигурност Twenex би бил нестабилен и податлив на грешки. Хакерите увериха, че стабилността и надеждността могат да бъдат постигнати много по-бързо чрез редактиране на изходния код на системата. Но в Лабораторията вече бяха толкова малко от тях, че никой не ги слушаше.

Хакерите смятаха, че могат да заобиколят ограниченията за сигурност, като дадат на всички потребители "привилегии за управление" - повишени права, които им дават възможност да правят много неща, които обикновеният потребител е забранен да прави. Но в този случай всеки потребител може да отнеме „привилегии за управление“ от всеки друг потребител и той не може да ги върне на себе си поради липса на права за достъп. Затова хакерите решиха да получат контрол над системата, като отнемат „привилегиите за управление“ на всички, освен на себе си.

Отгатването на пароли и стартирането на дебъгера, докато системата се зарежда, не направи нищо. След като се провали в "държавен преврат“, изпрати Столман съобщение до всички служители на лабораторията.

„Досега аристократите бяха победени“, пише той, „но сега те взеха надмощие и опитът за завземане на властта се провали.“ Ричард подписа съобщението: „Radio Free OZ“, така че никой да не познае, че това е той. Отлична маскировка, като се има предвид, че всички в Лабораторията знаеха за отношението на Столман към системите за сигурност и подигравката му с паролите. Отвращението на Ричард към паролите обаче беше известно далеч отвъд MIT. Почти цялата ARPAnet, прототипът на интернет от онези времена, има достъп до компютрите на Лабораторията под акаунта на Столман. Такъв „турист“ беше например Дон Хопкинс, програмист от Калифорния, който чрез хакерска дума научи, че можете да влезете в известната ITS система в MIT, просто като въведете 3 букви от инициалите на Столман като логин и парола.

„Завинаги съм благодарен, че Масачузетският технологичен институт даде на мен и на толкова много други хора свободата да използват своите компютри“, казва Хопкинс, „Това означаваше много за всички нас.“

Тази "туристическа" политика продължи много години, докато системата ITS живееше, а ръководството на MIT гледаше на това снизходително. . Но когато машината на Оз се превърна в главния мост от Лабораторията към ARPAnet, всичко се промени. Столман все още предоставя достъп до акаунта си, като използва известни потребителско име и парола, но администраторите изискват той да промени паролата и да не я дава на никой друг. Ричард, позовавайки се на своята етика, изобщо отказа да работи върху машината на Оз.

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

Отказът на Столман да коленичи пред великата и ужасна машина Оз показва, че напрежението расте между хакерите и началниците на Лабораторията. Но това напрежение беше само бледа сянка на конфликта, който бушува в самата хакерска общност, която беше разделена на 2 лагера: LMI (Lisp Machines Incorporated) и Symbolics.

Symbolics получи много инвестиции отвън, което привлече много от хакерите на Lab. Те са работили върху машинната система Lisp както в MIT, така и извън него. До края на 1980 г. компанията наема 14 служители на лабораторията като консултанти, за да разработят своя собствена версия на машината Lisp. Останалите хакери, без да броим Столман, работеха за LMI. Ричард реши да не взима страна и по навик остана сам.

Първоначално хакерите, наети от Symbolics, продължиха да работят в MIT, подобрявайки машинната система Lisp. Те, подобно на хакерите на LMI, използваха лиценза на MIT за своя код. Изискваше промените да бъдат върнати на MIT, но не изискваше MIT да разпространява промените. Въпреки това през 1981 г. хакерите се придържаха към джентълменско споразумение, в което всички техни подобрения бяха записани в Lisp машината на MIT и разпространени на всички потребители на тези машини. Това състояние на нещата все пак запази известна стабилност на хакерския колектив.

Но на 16 март 1982 г. - Столман си спомня добре този ден, защото беше неговият рожден ден - споразумението на джентълмена приключи. Това се случи по заповед на ръководството на Symbolics; по този начин те искаха да удушат своя конкурент, компанията LMI, за която работеха много по-малко хакери. Ръководителите на Symbolics разсъждаваха по следния начин: ако LMI има в пъти по-малко служители, тогава се оказва, че цялостната работа върху Lisp машината е от полза за него и ако този обмен на разработки бъде спрян, тогава LMI ще бъде унищожен. За тази цел те решиха да злоупотребят с буквата на лиценза. Вместо да направят промени във версията на MIT на системата, която LMI може да използва, те започнаха да доставят на MIT версията на системата Symbolics, която можеха да редактират, както пожелаят. Оказа се, че всяко тестване и редактиране на машинния код на Lisp в MIT върви само в полза на Symbolics.

Като човек, отговорен за поддръжката на Лисп машината на лабораторията (с помощта на Грийнблат през първите няколко месеца), Столман беше бесен. Хакерите на Symbolics предоставиха код със стотици промени, които причиниха грешки. Считайки това за ултиматум, Столман прекъсна комуникациите на лабораторията със Symbolics, закле се никога повече да не работи върху машините на тази компания и обяви, че ще се присъедини към работата по машината MIT Lisp, за да поддържа LMI. „В моите очи Лабораторията беше неутрална страна, като Белгия през Втората световна война“, казва Столман, „и ако Германия нахлуе в Белгия, Белгия обяви война на Германия и се присъедини към Великобритания и Франция.“

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

Когато администраторите на лабораторията показаха доказателствата на Symbolics на Столман, той ги опроверга, като каза, че кодът е подобен, но не е същият. И той обърна логиката на ръководството на Symbolics срещу себе си: ако тези зрънца подобен код са всичко, което те могат да изровят върху него, то това само доказва, че Столман всъщност не е откраднал кода. Това е достатъчно за ръководителите на лабораторията да одобрят работата на Столман и той я продължава до края на 1983 г. .

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

Случилото се засили решимостта на Столман. След като създаде аналози на новите функции на Symbolics, той убеди персонала на лабораторията да използва версията на машината Lisp от MIT, която гарантира добро ниво на тестване и откриване на грешки. И версията на MIT беше напълно отворена за LMI. „Исках да накажа Symbolics на всяка цена“, казва Столман. Това твърдение показва не само, че характерът на Ричард далеч не е пацифистичен, но също така, че конфликтът около машината Lisp го докосна бързо.

Отчаяната решителност на Столман може да бъде разбрана, когато вземете предвид как изглеждаше за него - "унищожаването" на неговия "дом", тоест хакерската общност и културата на AI ​​Lab. По-късно Леви интервюира Столман по имейл и Ричард се сравнява с Иши, последният известен член на индианския народ Яхи, който е бил унищожен в Индийските войни от 1860-те и 1870-те години. Тази аналогия придава на описаните събития епичен, почти митологичен обхват. Хакерите, които работеха за Symbolics, видяха това в малко по-различна светлина: тяхната компания не унищожи или унищожи, а само направи това, което трябваше да бъде направено отдавна. След като преместиха Lisp машината в комерсиалното поле, Symbolics промени подхода си към програмния дизайн - вместо да ги режат според упоритите модели на хакерите, те започнаха да използват по-меки и по-хуманни стандарти на мениджърите. И те гледаха на Столман не като на противников борец в защита на справедлива кауза, а като на носител на остаряло мислене.

Личните раздори също наляха масло в огъня. Още преди появата на Symbolics много хакери избягваха Stallman, а сега ситуацията се влоши многократно. „Вече не ме канеха да ходя на екскурзии до китайския квартал“, спомня си Ричард, „Грийнблат започна обичая: когато искате да обядвате, обикаляте колегите си и ги каните с вас или им изпращате съобщение. Някъде 1980-1981 г. спряха да ми се обаждат. Не само, че не ме поканиха, но, както един човек по-късно ми призна, те оказваха натиск върху останалите, така че никой да не ми каже за планираните влакове за обяд.

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

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