LINUX.ORG.RU

Перевод


7

0

Всего сообщений: 124

См. также:

 , , , , , , , ,

Free as in Freedom на русском: Глава 7. Дилемма абсолютной морали

Группа Документация

Free as in Freedom на русском: Глава 1. Роковой принтер

Free as in Freedom на русском: Глава 2. 2001: Хакерская одиссея

Free as in Freedom на русском: Глава 3. Портрет хакера в юности

Free as in Freedom на русском: Глава 4. Развенчай бога

Free as in Freedom на русском: Глава 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, устойчивая к сбоям файловая система, сетевые протоколы на основе сетевой архитектуры МТИ.

«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 использовали высокоуровневый язык программирования С, который не был привязан к конкретной аппаратной платформе. При этом разработчики сосредоточили внимание на стандартизации интерфейсов, через которые части операционной системы взаимодействовали друг с другом. В итоге получилась система, где любую часть можно было переделать, не затрагивая все остальные части и не нарушая их работу. И чтобы перенести систему с одной аппаратной архитектуры на другую, тоже достаточно было переделать только одну часть системы, а не переписывать её всю целиком. Специалисты по достоинству оценили такой фантастический уровень гибкости и удобства, поэтому 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. «Системе было далеко до топовых решений, так что называть её официальным именем язык не поворачивался, – вспоминает Столлман, – поэтому я вставил в ‘Tenex’ букву ‘w’, чтобы получилось ‘Twenex’». (Это название обыгрывает слово «twenty», т.е. «двадцать»)

Компьютер, на котором работал Twenex/TOPS-20, иронично называли «Оз». Дело в том, что DECSYSTEM 20 требовал маленькую машину PDP-11 для работы терминала. Один хакер, впервые увидев подключение PDP-11 к этому компьютеру, сравнил это с пафосным представлением Волшебника из страны Оз. «Я великий и ужасный Оз! – продекламировал он. – Только не смотрите на мелюзгу, от которой я работаю».

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

Хакеры подумали, что обойти ограничения безопасности можно, выдав всем пользователям «рулевые привилегии» – повышенные права, дающие возможность делать многое из того, что обычному пользователю запрещено. Но в этом случае любой пользователь мог отобрать «рулевые привилегии» у любого другого пользователя, и тот не мог вернуть их себе за неимением прав доступа. Поэтому хакеры решили получить контроль над системой, отобрав «рулевые привилегии» у всех, кроме себя.

Подбор паролей и запуск отладчика во время загрузки системы ничего не дали. Потерпев неудачу в «государственном перевороте», Столлман разослал сообщение всем работникам Лаборатории.

«До сих пор аристократы были повержены, – писал он, – но теперь они взяли верх, и попытка захватить власть не увенчалась успехом». Ричард подписал сообщение: «Radio Free OZ», чтобы никто не догадался, что это он. Отличная маскировка, если учесть, что все в Лаборатории знали об отношении Столлмана к системам безопасности и его издевательствах над паролями. Впрочем, отвращение Ричарда к паролям было известно далеко за пределами МТИ. На компьютеры Лаборатории под учётной записью Столлмана ходил чуть ли не весь ARPAnet – прообраз интернета тех времён. Таким «туристом» был, например, Дон Хопкинс, программист из Калифорнии, который через хакерское сарафанное радио узнал, что войти в прославленную систему ITS в МТИ можно просто введя 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-машины задел его за живое.

Отчаянную решимость Столлмана можно понять, если учесть, как происходящее выглядело для него – «разрушением» его «дома», то есть хакерского сообщества и культуры Лаборатории ИИ. Позднее Леви брал у Столлмана интервью по электронной почте, и Ричард там сравнивал себя с Иши – последним известным представителем индейской народности Яхи, которую истребили в индейских войнах 1860-1870-х годов. Эта аналогия придаёт излагаемым событиям эпический, почти мифологический размах. Хакеры, что работали на Symbolics, видели это в несколько другом свете: их компания не разрушала и не истребляла, а только делала то, что давно нужно было сделать. Переместив Lisp-машину в поле коммерции, Symbolics сменила подход к проектированию программ – вместо кройки их по твердолобым лекалам хакеров стали использоваться более мягкие и человечные нормы менеджеров. И Столлмана они расценивали не как противника-бойца на страже правого дела, а как носителя устаревшего мышления.

Масла в огонь подлили и личные раздоры. Ещё до появления Symbolics многие хакеры сторонились Столлмана, а теперь ситуация ухудшилась многократно. «Меня больше не звали в поездки до Чайна-тауна, – вспоминает Ричард, – Гринблатт дал начало обычаю: когда ты хочешь пообедать, ты обходишь коллег и зовёшь их с собой, или же шлёшь им сообщение. Где-то в 1980-1981 году меня перестали звать. Они не только не приглашали меня, но и, как признался мне потом один человек, давили на остальных, чтобы никто не говорил мне о планируемых поездах на обед».

>>> Подробности

 , , ,

jollheef ()

Еще новости

Июль 2019

Июнь 2019

Сентябрь 2018

2018

2016

2015

2014

2013

2012

2010

Опросы

Галерея

Форум

Июнь 2019

Апрель 2019

Февраль 2019

Январь 2019

Ноябрь 2018

Август 2018

2018

2017