
У 82-летнего Кена Томпсона сохранились потрясающие воспоминания о первых днях операционной системы Unix и о буйной команде её разработчиков-гиков.
В этом месяце Музей компьютерной истории Кремниевой долины в партнёрстве с Ассоциацией вычислительной техники выпустил специальный выпуск на четыре с половиной часа, записанный полтора года назад историком технологий Дэвидом Броком. В этом выпуске Томпсон подробно перечислил многие из важных моментов своей карьеры — от работы над языком программирования C и Unix до операционной системы «Plan 9 from Bell Labs» и языка программирования Go.
Весь его рассказ был пронизан благодарностью людям, с которыми он работал, за предоставленную ими возможность экспериментировать совместно в открытой среде и исследовать пределы новых и зарождающихся технологий. Это история о любопытстве, прозорливости и непреходящей ценности сообщества.
Также по ходу дела Томпсон рассказывает историю о маленьком аллигаторе, которого друг отправил его в офис в Bell Labs. («Его просто принесли, как почту… Не самый лучший из питомцев»).
Случайное рождение Unix
Вернёмся назад в 1966 год, когда первым проектом в Bell Labs 23-летнего Томпсона стала злополучная Multics — плод совместной работы с MIT и General Electric. Томпсон вспоминает её так: «она была ужасна... большая, медленная, некрасивая и очень дорогая»; для одного лишь запуска ей требовался огромный специализированный компьютер, «она была обречена на смерть ещё до начала проекта».
Но когда проект Multics умер, «машина осталась совершенно свободной... а это был уникальный компьютер-монстр... поэтому я решил этим воспользоваться».
Томпсон хотел поработать с CRAM — устройством для хранения данных с высокоскоростной барабанной памятью, однако, как и во всех дисковых накопителях того времени, чтение из памяти в нём выполнялось медленно.

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

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

Томпсон вспоминает, как они регулярно собирались в столовой Bell Labs на «Unix-обед», «создававший симбиоз мысли и творчества. Это было замечательно». Но почему-то он происходил всего за несколько минут до того, как столовая переставала подавать пищу. «Если я опаздывал, то покупал McDonald’s и сидел в столовой с ним. Они сердились на меня за это…»
Рост благодаря сообществу
Оглядываясь назад, Томпсон связывает успех C и Unix с Bell Labs и со средой, не создававшей никакого давления и не имевшей пользователей. «По сути, в группе витала атмосфера "твори, что хочешь и для кого хочешь"… Bell Labs больше всех остальных компаний способствовала подобному типу программирования».
Bell Labs была эклектичным местом, но это сообщество обеспечило неожиданные дивиденды. Ли Макмэхона изначально наняли в качестве исследователя-лингвиста, но в конечном итоге именно он создал машиночитаемые словари для команды Unix, а также машиночитаемую версию сборника статей «Федералист». (Хорошо известный факт: когда текст целиком перестал помещаться в их текстовый редактор ed, Томпсон создал инструмент построчного сканирования паттернов grep.)
В конце Томпсон сказал, что Unix вырос из одного простого факта: людям он понравился. Он распространился внутри Bell Labs, сначала для «административных задач, например, ввода тикетов...» Но это была телефонная компания, поэтому «потом он начал управлять коммутированием и тому подобным. Unix всё глубже и глубже распространялся во внутренностях Bell System и становился очень популярным».
Открытый код ещё до появления опенсорса
Томпсон отдаёт должное Ричарду Столлмену как создателю философии опенсорса. «Но в Unix она тоже частично присутствовала». Возможно, она выросла из того братства, которое образовалось вокруг Unix. «По какой-то причине, и я думаю, из-за меня и Денниса, всё было открытым…»
Так у них всё и работало. «У нас была защита файлов — если ты не хотел, чтобы кто-то их читал, то можно было задать биты, и они становились недоступными. Но никто не устанавливал эти разрешения ни на что… Все исходники можно было править кому угодно! Они попросту были открыты…»
«Если у кого-то появлялась идея для редактора, то он открывал редактор, писал код и сохранял… У нас родилась такая мантра: "Если ты к чему-то прикоснулся, то теперь отвечаешь за это"».
Томпсон привёл такой пример: у него был в Bell Labs коллега Филип Плоджер, с которым они написали в 1974 году книгу «Elements of Programming Style». В то же время Плоджер был профессиональным писателем, сочинявшим научную фантастику. «Всё написанное им он сохранял в свою директорию. Мы тоже заходили туда и читали тексты в процессе написания... и оставляли комментарии: "Тебе нужно убить этого персонажа, перетащить его сюда и сделать его зелёным!"»
«И он не возражал, потому что именно такой была тогда теория Unix…»
«Думаю, это создало братство. Мы как будто писали на чёрной доске — все могли прочитать всё».
Другие их эксперименты в Bell Labs тоже выбрались в мир, например, часть работы над последующей операционной системой Plan 9 перебралась в стандарт UTF-8, лежащий в основе большинства современных веб-соединений.
После Bell Labs
Томпсон ушёл из Bell Labs в 2000 году, после разрыва с системой Bell. («Она поменялась и стала сильно другой… Теперь приходилось отчитываться за каждый шаг, а этого мой уровень зарплаты не оправдывал»). Но эти три десятилетия, похоже, существенно повлияли на всю оставшуюся часть его жизни.
Сначала Томпсон перешёл в компанию по производству сетевого оборудования Entrisphere, в которой проработал шесть лет. И естественным следующим шагом стал переход в Google. Это начальник в Entrisphere уже перешёл в Google и подталкивал Томпсона присоединиться к нему. К тому же оказалось, что CEO Google был старый друг Кена Эрик Шмидт, с которым они работали в Bell Labs в 1975 году. (Томпсон сообщил, что Google сделала ему «чрезвычайно щедрое предложение»…)
В Google Томпсон «немного» поработал над безопасностью Android. («Я обнаружил пару специфичных проблем, но по большому счёту система оказалась очень качественной».) Однако позже Томпсон перешёл в команду из трёх человек, которая занималась разработкой языка программирования Go.
И там он работал с Робом Пайком — одним из участников братства Bell Labs почти за тридцать лет до этого!
Комментарии (3)

janatem
29.10.2025 13:58стандарт UTF-8, лежащий в основе большинства современных веб-соединений
Здесь какая-то нескладушка.
victor_1212
на самом деле OS была доведена до ума другими (Honeywell), и использовалась до начала 90х, работала на порядка сотни систем, более точно Bell решила, что ей не выгодно участвовать в проекте, по мнению участников этого проекта, Unix в Bell начался с min сборки частей Multics необходимых для работы одного пользователя, основные сложности Multics были связаны именно с защитой, в итоге это была единственная OS сертифицированная по уровню защиты информации
autoanswerzzz
не лезь в рассказ 82-летнего - вдруг ещё чего-нибудь придумает ... до unix-ужина ещё есть время