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


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 та 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 роках мене перестали кликати. Вони не тільки не запрошували мене, а й, як зізналася мені потім одна людина, тиснули на інших, щоб ніхто не говорив мені про заплановані поїзди на обід».

Джерело: linux.org.ru

Додати коментар або відгук