Кен Томпсон вспоминает историю хулиганства и взлома замков Unix

У 82-летнего Кена Томпсона остались удивительные воспоминания о первых днях существования операционной системы Unix и о шумной комнате, полной компьютерных фанатов, которые ее создали.

В этом месяце Музей компьютерной истории Кремниевой долины в сотрудничестве с Ассоциацией вычислительной техники опубликовал специальную устную историю продолжительностью четыре с половиной часа, записанную 18 месяцев назад историком технологий Дэвидом К. Броком. И Томпсон послушно вспомнил многие моменты своей карьеры — от работы над языком программирования C и Unix до операционной системы «Plan 9 от Bell Labs» и языка программирования Go.

Но что проявляется, так это его благодарность людям, с которыми он работал, и возможность им всем вместе экспериментировать в открытой среде, чтобы исследовать пределы новых и появляющихся технологий. Это история о любопытстве, игривом чувстве счастливой случайности и непреходящей ценности сообщества.

Попутно Томпсон также рассказывает историю о воспитании детеныша аллигатора, которого друг отправил в его офис в Bell Labs. («Оно только что пришло по почте… Они не самые милые домашние животные».)

Случайное рождение Unix

Путешествуйте во времени в 1966 год, когда первым проектом 23-летнего Томпсона в Bell Labs был злополучный Multics, результат сотрудничества с Массачусетским технологическим институтом и General Electric, который Томпсон вспоминает как «ужасный… большой, медленный, уродливый и очень дорогой», требующий гигантского специально созданного компьютера только для работы и «просто обреченный умереть еще до того, как он запустится».

Но когда проект Multics умер, «компьютер стал полностью доступен — этот единственный в своем роде компьютер-монстр… и я этим воспользовался».

Томпсон хотел работать с CRAM, устройством хранения данных с высокоскоростной барабанной памятью, но, как и дисковое хранилище того времени, оно медленно считывало данные из памяти.

Магнитное устройство хранения данных «барабанная память».

Томпсон думал, что улучшит ситуацию одновременным (и перекрывающимся) чтением памяти, но, конечно, для этого требовались программы для тестирования, а также способ их загрузки и запуска.

«И вдруг, сам того не зная — я имею в виду, это подкрадывается ко мне… Вдруг это операционная система!» Первой работой Томпсона по чтению памяти стала «дисковая часть» файловой системы Unix. Ему по-прежнему требовался текстовый редактор и уровень мультиплексирования с переключением пользователей (плюс компилятор и ассемблер для программ), но у него уже была файловая система, драйвер диска и периферийные устройства ввода-вывода.

Томпсон задавался вопросом, не потому ли, что ему потребовалось так много времени, чтобы осознать его потенциал, потому что ему было специально сказано не работать над операционными системами. Ему сказали, что Multics «был неудачным опытом» для Bell Labs. «Мы потратили на это кучу денег и ничего от этого не получили!»

«На самом деле я получил выговоры, в которых говорилось: «Не работайте над операционными системами. В Bell Labs нет операционных систем!»

Однозначные идентификаторы пользователей

Но теперь у Unix появилось первое сообщество пользователей — будущие легенды, такие как Деннис Ритчи, Дуг Макилрой, Роберт Моррис и иногда Брайан Керниган. («Все идентификаторы пользователей были однозначными. Это определенно налагало на них ограничения».) Томпсон вспоминает, как проектировал файловую систему Unix на доске в офисе вместе с Раддом Канадэем — используя специальный номер телефона Bell Labs, который диктовал и на следующий день доставлял напечатанный стенограмму. А Джо Оссанна «добился цели», обладая особым талантом управлять бюрократией Bell Labs, что в конечном итоге обеспечило критически важный PDP-11 для работы команды Unix.

«Нам сказали «нет», потому что мы не занимаемся операционными системами». Но Оссанна знал, что патентный отдел оценивает стороннюю систему для подготовки документов, и Оссанна предложил собственную альтернативу. «Итак, у нас появился первый PDP-11 для обработки текста».

Кен Томпсон (сидит) и Деннис Ритчи на PDP-11

И история показывает, что это произошло отчасти потому, что у платящего за это ведомства «были лишние деньги, и если бы они их не потратили, то потеряли бы их в следующем году…»

Таким образом, молодое сообщество Unix приобрело где-то от пяти до восьми новых пользователей, вспоминает Томпсон, «секретарей Патентного департамента, которые пишут патенты на нашу систему!»

Братство комнаты Unix

Этот PDP-11 оказался «в месте на шестом этаже, где мы вычистили торговый автомат и пару клеток с хламом 1920 года», вспоминал Томпсон. В конце концов они установили второй PDP-11, который превратил комнату в «рассадник вещей» с дискуссиями о сетевых технологиях и будущем наборщике документов. Томпсон называет это комнатой Unix, и большинство из них со временем подключили к этой комнате расширения для своих телефонов. (У него даже была собственная АТС с коммутацией вызовов…)

Была дружеская атмосфера и немного смеха. Позже он добавляет, почти в стороне, что «в комнате Unix мы часто взламывали замки и крали вещи». (Когда одна из секретарш обнаружила, что охрана прикрепила «парковочный багажник» к ее машине, припаркованной в неправильной зоне, «мы спустились туда, взломали замок и украли багажник. А после этого, медленно, мы подобрали все четыре ботинка и спрятали их под фальшполом комнаты Unix…»)

Изюминка? «Начальник службы безопасности подошел к нам и умолял нас: «Мы не будем приставать к вашим секретарям, если вы вернете нам наши ботинки».

И сделка была принята.

Деннис Ритчи (слева) позже сказал, что их мотивацией было создание системы, «вокруг которой могло бы сформироваться сообщество», но Томпсон говорит, что это скорее описание того, что произошло, чем реальная цель проекта.

Томпсон вспоминает такие вещи, как регулярный «ланч Unix» в столовой Bell Labs, который «вызвал симбиоз мыслей и вещей. Это было здорово». Хотя казалось, что это всегда происходило через несколько минут после того, как в столовой прекращали подавать еду. «Если я опаздывал, я покупал «Макдоналдс» и садился в столовой со своим «Макдональдсом». На меня за это злились…»

Рост из сообщества

Оглядываясь назад, Томпсон приписывает успех C и Unix Bell Labs и ее среде без давления и отсутствия пользователей. «По сути, это была атмосфера «делай все, что хочешь» и «для всех, для кого ты хотел это сделать»… Bell Labs внесла наибольший вклад во весь этот тип программирования».

Bell Labs представляла собой эклектичную смесь, но это сообщество принесло неожиданные дивиденды. Хотя Ли МакМэхон изначально был нанят в качестве исследователя-лингвиста, в конечном итоге именно он обеспечил машиночитаемые словари для команды Unix, а также машиночитаемую версию «Федералистских документов». (Когда весь текст не помещался в их текстовый редактор, Томпсон, как известно, создал инструмент построчного сканирования шаблонов grep.)

И, в конце концов, Томпсон говорит, что Unix выросла оттуда по одному простому факту: людям она нравилась. Он распространился в Bell Labs, сначала для «административных дел, набора заявок на устранение неполадок…» Но это была телефонная компания, «потом она начала фактически переключаться и тому подобное. Она все глубже и глубже проникала в недра системы Bell и становилась очень популярной».

Открытый исходный код раньше открытого

Томпсон благодарит Ричарда Столлмана за разработку гораздо большей философии открытого исходного кода. «Но в Unix было что-то из этого». Возможно, это возникло из того, что помнил Деннис Ритчи, из того сообщества, которое сформировалось вокруг Unix. «По какой-то причине, и я думаю, что это только из-за меня и Денниса, все было открыто…»

Просто так они действовали. «У нас была защита файлов — если вы не хотели, чтобы кто-то их читал, вы могли установить некоторые биты, и тогда никто не мог их прочитать, верно? Но никто не устанавливал эти разрешения ни на что… Весь исходный код был доступен для записи, кому угодно! Он был просто открыт…

«Если бы у вас была идея редактора, вы бы вытащили редактор, написали бы на нем и положили обратно… Вокруг этого ходила мантра: «Ты прикасаешься к нему, ты владеешь им».

Томпсон приводит пример: сотрудник Bell Labs П. Дж. Плаугер, вместе с которым он позже написал в 1974 году книгу «Элементы стиля программирования». Плаугер также был профессиональным писателем-фантастом, вспоминает Томпсон: «И все, о чем он писал, было в его каталоге, верно? Итак, мы все заходили туда и читали это, пока он это пишет… и мы все писали в ответ: «Вам следует убить этого парня, переместить его сюда и сделать его зеленым!» или что-то в этом роде.

«И он не возражал против этого, потому что в те дни это была всего лишь теория Unix…

«Я думаю, это породило общение. Сам факт, что это было похоже на письмо на доске — все это прочитали».

И еще больше их экспериментов Bell Labs нашли свое применение в мире, когда некоторые работы над более поздней операционной системой Plan 9 нашли отражение в стандарте UTF-8, который лежит в основе большинства сегодняшних веб-соединений.

После Bell Labs

Томпсон покинул Bell Labs в 2000 году, после распада системы Bell. («Все изменилось; все было по-настоящему по-другому… Тебе нужно было оправдать то, что ты делал, а это намного выше моей зарплаты».) Но три десятилетия, проведенные там, казалось, оказали влияние на всю оставшуюся жизнь.

Сначала Томпсон перешел в компанию по производству сетевого оборудования под названием Entrisphere, где проработал шесть лет, и переход в Google стал естественным следующим шагом. Глава Entrisphere уже перешел в Google и убеждал Томпсона последовать за ним — и оказалось, что генеральный директор Google Эрик Шмидт был старым другом, который на самом деле работал в Bell Labs в 1975 году. (Томпсон говорит, что Google сделала ему «чрезвычайно хорошее предложение»…)

В Google Томпсон «немного» работал над безопасностью Android. («Я нашел пару конкретных проблем, но в целом все было сделано очень хорошо».) Но в конце концов Томпсон присоединился к команде из трех человек, которая должна была создать язык программирования Go.

И он работал вместе с Робом Пайком, который был одним из его старых товарищей по Bell Labs почти 30 лет назад!

ТЕНДЕНЦИОННЫЕ ИСТОРИИ YOUTUBE.COM/THENEWSTACK Технологии развиваются быстро, не пропустите ни одной серии. Подпишитесь на наш канал YouTube, чтобы смотреть все наши подкасты, интервью, демонстрации и многое другое. ПОДПИСАТЬСЯ Группа, созданная в Sketch. Дэвид Кассель — гордый житель района залива Сан-Франциско, где он освещает новости технологий уже более двух десятилетий. На протяжении многих лет его статьи появлялись повсюду на каналах CNN, MSNBC и Wall Street Journal Interactive… Читать далее Дэвида Касселя

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *