Кеннет Томсон: Всё, что я делаю, можно назвать личным увлечением

Кеннет Томсон: Всё, что я делаю, можно назвать личным увлечением

Кеннет Томпсон. Материалы Виртуального Компьютерного Музея

Кеннет Томпсон

Кеннет Томпсон – это имя я слышал с молодых лет, и оно было связано в основном с разработанной им операционной системой Unix, но оказалось, что его биография гораздо богаче и насыщеннее событиями.

Кеннет Томпсон (Kenneth Lane Thompson), или, как его чаще называют, «Кен», родился в Новом Орлеане, штат Луизиана, 4 февраля 1943 года. Отец его был военным моряком и часто менял места своей службы. Кен жил в Сан-Диего, Сиэтле, Сан-Франциско, Индианаполисе и Кингсвилле. [6]

О школе сам Кен рассказывал в интервью: «Мы переезжали каждый год, я учился в очень, очень плохих школах, а потом в хороших. Так что мне иногда приходилось за год проходить двухлетнюю программу, а потом я год ничего не делал. На математике я просто бездельничал, так что начальное математическое образование у меня просто ужасное. И вот в седьмом классе как раз рассказывали про двоичную арифметику. Я заинтересовался, расширил её до любого базиса и стал с ней играть. Вот так всё и началось. Меня всегда завораживала логика, и даже в школе я предпочитал решать арифметические примеры в двоичном исчислении и тому подобное. Мне это просто нравилось. Я разработал таким образом алгоритмы для сложения в разных базисах, узнал, что значит перенос, что обозначает каждый столбец и так далее. И у меня было небольшое десятичное арифметическое устройство, вроде счетов. Вместо каждого разряда там был ползунок от нуля до девяти. Вычитать надо было с помощью нижней колонки, а добавлять - с помощью верхней. Берешь стилус и сдвигаешь им ползунок на четыре, например, деления, при переполнении разряда переходя в соседнюю колонку. Позже, основываясь на этом варианте, я сделал двоичное устройство. Позже, где-то в выпускном классе, я сильно увлекся электроникой – собирал радио, усилители, осцилляторы и терменвоксы. И очень заинтересовался аналоговыми вычислениями. Это и впрямь было потрясающе. Всё это время электроника была моей страстью. Я поступил на соответствующий факультет в Беркли и только там на первом курсе впервые увидел настоящие цифровые компьютеры.» [9]

В 1965 году он получил степень бакалавра, а затем на следующий год – магистра в области электротехники и информатики в Калифорнийском университете в Беркли (UCB, University of California, Berkeley). Руководителем магистерской диссертации был Элвин Берлекэмп (Elwyn Berlekamp).

Во время учебы Кеннет работал в компьютерном центре программистом. В графе профессия он потом всегда писал «программист».

После окончания университета Кеннет Томпсон пошёл работать в Bell Telephone Laboratories (знаменитая Bell Labs), где сначала работал над проектом операционной системы MULTICS (The Multiplexed Information and Computing Service). Историю своего появления в Bell Labs Томпсон рассказывает так: «Один из моих преподавателей - собственно, мой хороший друг - прямо-таки натравил на меня рекрутёра из Bell Labs. Но я не искал работу. У меня не было абсолютно никаких амбиций. Он назначил мне встречу на его маленьком рекрутёрском стенде, а я то ли проспал, то ли сказал ему, что мне неинтересно. Но он не сдавался. В какой-то момент он позвонил мне и сказал, что хотел бы зайти. И пришёл ко мне домой. И сказал, что хотел бы, чтобы я прошёл собеседование в Bell Labs. Я отказался. Но он сказал: “Поездка бесплатная. Ты можешь делать всё что угодно”. А я ему: “Ладно, тогда вот что я тебе скажу. Работа мне не нужна. Но бесплатная поездка – это прикольно, у меня есть друзья на Восточном побережье. К ним и поеду”. А он мне: “Отлично”. Вот так я и попал на собеседование. Я приехал, два дня потратил на Bell Labs, а потом взял напрокат машину и поехал по Восточному побережью повидать школьных друзей, которые разъехались кто куда. Bell Labs занималась проектом MULTICS, и меня брали работать над MULTICS.» [9]

Логотип Bell Laboratories. Материалы Виртуального Компьютерного Музея

О системе Multics написано много. Multics – это совместная разработка Массачусетского технологического института (MIT), Bell Labs и General Electric (GE) по созданию ОС с разделением времени для компьютера GE-645. Приведу рассказ Леонида Черняка [11]: «Самым серьёзным шагом по направлению к современным операционным системам было создание Multics. Драматическая история этой системы начиналась в те времена, когда о стоимости создания программных продуктов не задумывались, а завершилась тогда, когда этот вид деятельности стал таким же бизнесом, как всё остальное. В итоге получился в подлинном смысле «колосс на глиняных ногах». Multics создавалась в рамках программы MAC, название которой расшифровывают как «множественный доступ к компьютерам» (Multiple Access Computers) или «Человек и компьютер» (Man and Computer). Инициатором проекта MAC был Джозеф Ликлайдер, один из руководителей оборонного агентства, которое тогда именовалось ARPA (Ликлайдер больше известен как инициатор проекта ARPAnet, предшественника Internet). Проект был рассчитан на восемь лет при годовом финансировании 2 млн. долл., но срок и затраты оказались излишне оптимистическими.

Случилось так, что IBM и DEC отказались от участия в проекте MAC, в итоге выбор пал на General Electric и её машину GE-645, это была гражданская версия компьютера GE M236, разработанного для ВВС США. По условиям ARPA проектом руководил триумвират, состав которого на протяжении лет менялся. Одно время его членом был выходец из России Виктор Высоцкий. К участию в проекте решила подключиться и Bell Labs; так в 1965 году сложился виртуальный коллектив из представителей МТИ, Bell Labs и GE. Тогда же были опубликованы первые статьи, описывающие будущую операционную систему. С самого начала проект подвергался критике за излишнюю амбициозность; многие считали его нереализуемым вообще. Проект Multics действительно отличался совершенно невероятными по своим масштабам замыслами. Показателен следующий факт: было решено писать программы на языке PL/I, но не был готов компилятор. Чтобы не терять время, написали руководство для программиста, объём которого превысил 3 тыс. страниц. Нет ничего удивительного в том, что проектный период растянулся почти на два десятилетия. В конечном итоге эта операционная система была установлена на нескольких компьютерах в США, Канаде и Франции и проработала довольно долго, последний экземпляр Multics просуществовал до 2000 года.»

Во время написания Multics Томпсон создал язык программирования Bon. [7]

Томпсон – автор редактора QED для CTSS (одной из первых операционных систем с разделением времени). Именно этот редактор обеспечил популярность регулярных выражений, которые раньше считались инструментом логиков. После этого такой стиль быстро распространился при обработке текстов в UNIX.

Когда Bell Labs решила прекратить разработку MULTICS, Томпсон в 1969 году вместе с Денисом Ричи продолжил работу над UNIX – за что его вполне могли уволить. [9] Сам же Multics продолжал свою жизнь до 2000-го года, но это уже другая история.

Работе над новой ОС предшествовало следующее:

«Кен Томпсон и Деннис Ритчи захотели продолжить работу самостоятельно. Томпсон работал над игрой Space Travel на GE-635. Её написали сначала для Multics, а потом переписали на Фортране под GECOS на GE-635. Игра моделировала тела Солнечной системы, а игроку надо было посадить корабль куда-нибудь на планету или спутник.

Ни софт, ни железо этого компьютера не годились для такой игры. Томпсон искал альтернативу, и переписал игру под бесхозный PDP-7. Память была объёмом 8К 18-битных слов, и ещё был процессор векторного дисплея для вывода красивой для того времени графики.

Томпсон и Ритчи полностью вели разработку на кросс-ассемблере на GE и переносили код на перфолентах. Томпсону это активно не нравилось, и он начал писать ОС для PDP-7, начиная с файловой системы.» [15]

Используя опыт, накопленный в рамках проекта Multics, Томпсон создаёт версию ОС для устаревшей модели миникомпьютера PDP-7, к которому он пристыковал причудливый графический терминал, взятый с мэйнфрейма.

Логотип Bell Laboratories. Материалы Виртуального Компьютерного Музея

PDP-7

Им пришлось использовать кросс-ассемблер PDP-7, который Томпсон написал для мэйнфрейма компании GE. [8] Для того чтобы написать все основные компоненты системы, Томпсону понадобился всего лишь один месяц. «По одной неделе ушло на проектирование ядра, файловой системы, редактора и компилятора, — пишет Салус со слов Томпсона. — К концу месяца у нас уже была вполне работоспособная операционная система».[6] Это может казаться удивительным сейчас, но в те времена операционные системы были очень компактными – ядро системы занимало всего несколько килобайт, у ОС не было графического интерфейса пользователя, которое съедает так много оперативной памяти, общение с пользователем осуществлялось посредством командной строки.

История разработки первой версии Unix в рассказе самого Томпсона выглядит так: «В первых версиях я по существу экспериментировал с некоторыми концепциями Multics на PDP-7 после того, как проект был закрыт. Я работал с такой маленькой командой, какую вы только можете себе представить. Затем я выбрал двоих пользователей, Дуга Макилроя и Денниса Ритчи, которых интересовали языки. Выслушав их замечания, очень профессиональные и точные, я был вынужден разработать ещё пару вариантов на ассемблере PDP-7.» [10]

В это время он разработал язык программирования B (Би), который не получил распространения, но стал предшественником более удачливого языка Си. Это тоже примечательная история. Языком, на котором Томпсон начал писать ОС UNIX был FORTRAN. Но затем сложилась ситуация, о которой Томпсон говорит следующее: «Когда при написании системных программ выяснилось, что FORTRAN накладывает различные ограничения, я нисколько не ослаблял их, и в конце концов стало очевидным, что это уже не FORTRAN. Я назвал B. (Есть версия, что он назвал его так в честь своей жены Bonnie (Бонни). Э.П.) Это был по сути интерпретатор.» [6]

Более точной мне представляется другая версия этого, изложенная Томпсоном: «В какой-то момент я получил от Мартина Ричардса из Массачусетского технологического института BCPL и преобразовал его в то, что считал довольно прямым переводом, но на самом деле получился иной язык, который я назвал Би. Затем Деннис добавил к нему типы [данных] и назвал его Си.» [10] (Как и в случае с языком В, есть версия, что Кен назвал его так в честь своего сына Corey (Кори). Э.П.)

Дальнейшая история разработки, рассказанная Томпсоном, выглядела так:
«Мы [Bell Labs] купили PDP-11 – одну из самых первых машин – и я переписал Unix на ассемблере PDP-11, получив работоспособную версию. Она использовалась для некоторых внутренних телефонных приложений корпорации Bell, для сбора отчётов о неисправностях и контроля различных вещей, в частности кабелей, размещение которых менялось. Эти приложения так или иначе требовали поддержки со стороны операционной системы. Их необходимо было обслуживать, поэтому в Bell Labs была создана специальная группа Unix Support Group (USL). Она должна была служить своего рода интерфейсом, связывать наши версии с приложениями в предметной области, которым была необходима более стабильная среда. Они не казались чем-то неожиданным. Со временем они были преобразованы в коммерческую версию компании AT&T и более автономную версию от USL.» [10]

Тут следует уточнить. Ритчи с Томпсоном не могли предложить Bell Labs, чтобы она купила им PDP-11 для разработки операционной системы, потому что всё ещё была жива память о неудаче с Multics, поэтому они предложили руководству сделать систему автоматизации делопроизводства для патентного отдела. Это предложение было принято. [8]

Затем в 1973 году Деннис Ритчи вместе с Кеном Томпсоном переписали ядро UNIX вместе с программами-утилитами на языке программирования Си, созданном с целью обеспечения гибкости и мобильности программ, и UNIX стала по-настоящему мобильной, легко портируемой ОС, способной работать на разных аппаратных платформах. Сам язык Си, благодаря его простоте получил широкое распространение и используется до сих пор, особенно для встраиваемых систем и системного программирования. Это сейчас Си называют примитивным языком высокого уровня (ЯВУ), а в те времена он считался самым что ни есть настоящим ЯВУ. Об этом периоде Томпсон рассказывает следующее:

«Независимо ни от чего мы пытались переписать Unix на языке более высокого уровня, который развивался одновременно. Трудно сказать, что чью эволюцию стимулировало, операционная система язык, или наоборот. За полгода эти переписанные версии дважды пришлось переделывать, как мне кажется, из-за проблем с языком. Пришлось внести в язык серьёзные изменения и переписать Unix.

Третья версия (я занимался основой ОС, ядром, а Деннис – блочным вводом/выводом и диском) оказалась удачной; она и стала версией UNIX 5, которая использовалась в лаборатории, а версия 6 была передана в университеты. Затем была создана версия 7, где было сделано перераспределение системы для подготовки первого переноса на Interdata 832, который осуществили Стив Джонсон и Деннис Ричи. Независимо от нас аналогичный перенос был сделан в Австралии.

Что касается версии 6, агентство ARPA (Advanced Research Projects Agency) приняло её в качестве стандарта для сообщества Arpanet. Университет Беркли получил контракт на поддержку и распространение этой системы. Их основной вклад состоял в адаптации стека TCP/IP, разработанного в Университете штата Иллинойс, и добавлении виртуальной памяти к версии, которую Bell Labs переносила на VAX.» [10]

О своём сотрудничестве с Ритчи Кеннет Томпсон сказал: «Наше сотрудничество было прекрасным. За те десять лет, что мы работали вместе, я не могу вспомнить не одного случая несогласованности в работе. В одном случае я обнаружил, что мы написали одинаковые 20-строчные ассемблерные программы. Я сравнил исходники и был поражен, найдя, что они соответствуют друг другу символ в символ. Результат нашей совместной работы был много больше, чем вклад каждого по отдельности.» Деннис Ритчи умер 12 октября 2011 года.

Следует отметить важные моменты, которые способствовали распространению Unix. «После того как в 1973 году систему с открытым кодом представили публике, она, неожиданно для управленцев Bell Labs, начала стремительно захватывать академический рынок. Этому способствовала доступность системы. Антимонопольное законодательство особым образом регулировало деятельность Bell Labs, которая являлась дочерним предприятием гигантов телекоммуникации AT&T и Western Electric. В 1956 году эти фирмы заключили сделку с правительством, условия которой ограничивали их коммерческую деятельность за пределами основного бизнеса. В частности, продажа продуктов, не имеющих непосредственного отношения к телекоммуникациям, должна была осуществляться за «номинальную цену». Это условие распространялось и на UNIX.
Простота. Большие монолитные программы тяжело писать и ещё тяжелее модифицировать. UNIX состоял из небольших модулей, каждый из которых отвечал за отдельную функцию и легко изменялся. Более того начиная с версии 4, операционная система практически целиком была написана на высокоуровневом языке C (а не на низкоуровневом ассемблере). В итоге студентам университетов было проще разобраться в том, как устроена ОС.»[12]

С момента своего создания UNIX оказала громадное влияние на развитие ОС во всём мире, в частности потому, что была доступно бесплатно всем университетам, можно сказать, что это был первый успешный проект с открытыми исходными текстами (open source). Широко распространяться UNIX начала в 80-х годах. К работам по развитию UNIX причастно громадное количество людей. Появилось множество клонов этой системы, среди которых по распространённости следует отметить Linux и UNIX BSD. Различные UNIX-подобные ОС работают на таких разных устройствах, как суперкомпьютеры, ПК, ноутбуки, планшеты и смартфоны, обеспечивают облачные вычисления и работу с Большими данными.

Кеннет Томпсон о Unix: «Я думаю, что самое важное и замечательное качество в Unix состоит в том, что в ней реализован ясный и простой интерфейс: открыть, закрыть, прочитать и записать. Такой подход позволил реализовать shell (интерпретатор команд пользователя. Э.П.), а также обеспечить переносимость Unix. В ранних системах ввод/вывод имел различные точки ввода, но с помощью Unix вы можете от них абстрагироваться. Вы открываете файл, и, если он оказался на ленте, можете в него писать. Каналы дали возможность использовать инструментальные средства и фильтры, которые позволили адаптировать классические громоздкие программы, такие как сортировка.

Вероятно, самая серьёзная наша ошибка была в том, что мы недооценили концепцию удалённости. Интерфейс типа открыть-закрыть-прочитать-записать должен был быть инкапсулирован воедино, как нечто, ориентированное на удалённость; нечто, что связывало бы в одно целое группу интерфейсов – удалённую файловую систему, а не локальную файловую систему. В Unix этой концепции нет.» [10]

Жизнь после Unix

Жизнь Кеннета Томпсона всегда была весьма разнообразной. Он преподавал, разрабатывал шахматные программы, участвовал в новых проектах.

О своём опыте преподавания в университете Томпсон рассказывал: «Мне приходилось преподавать в своей жизни дважды. Один раз я взял отпуск на год и преподавал в Беркли в 1975/76 гг., а ещё год я читал лекции в Сиднее в 1988 г. Это очень интересно. Я занимался лабораторными исследованиями, а потом поехал в Беркли преподавать и сам изучал те предметы, которые преподавал, поскольку у меня ведь не было образования в области компьютерных наук. Обычно внештатный преподаватель ведёт один предмет. У меня их было пять. Некоторые курсы я читал по два раза, и они, думаю, были наилучшими, потому что в первый год я учился, а на второй уже понял, как преподавать, и организовал свои занятия более успешно, опережая на два шага студентов в этом предмете. На третий год курс становился просто унылым. Я взялся вести один предмет третий раз подряд, и это было ошибкой. Я никогда не смог бы стать педагогом, потому что там нужно преподавать каждый раз одно и то же. Это не по мне. Но я люблю преподавание: сперва тяжело, потом весело и интересно. И затем унылый третий раз.» [9]

Шахматы были его любимой игрой. Он разработал шахматный компьютер Belle, который выиграл чемпионаты ACM по компьютерным шахматам в Северной Америке в 1978, 1980, 1981, 1982 и 1986 годов. Он также выиграл чемпионат мира по компьютерным шахматам в 1980 году в австрийском Линце. Это был первый шахматный компьютер, игравший в силу мастера (1983). Чемпион мира по шахматам Г. Каспаров пишет: «На 12-м ежегодном Северо-Американском чемпионате по шахматам среди компьютерных программ (Лос-Анджелес, 1982) сильнейшие в мире машины боролись друг с другом за чемпионский титул. Компьютер Belle, детище Кена Томпсона и Джозефа Кондона (Joseph Condon), вновь подтвердил своё превосходство над остальными, доказав преимущества специализированной аппаратной архитектуры и шахматных процессоров, впоследствии реализованные в Deep Blue». [1] 

Шахматный компьютер Кена Томпсона. Материалы Виртуального Компьютерного Музея

Кен и Джо использовали плоттер для управления инструментом для обмотки проводов, который соединял чипы на плате печатной платы.

Позже этот компьютер был пожертвован Смитсоновскому институту (Smithsonian Institution).

Томпсон  также написал программу для генерации полного списка эндшпилей для 4, 5 и 6 фигур, позволяющую делать хорошие ходы, когда достигается сохранённая позиция. Позже, при помощи шахматного специалиста Джона Ройкрофта (John Roycroft), Томпсон распространил свои первые результаты на CD. [7]

Шахматный компьютер Кена Томпсона. Материалы Виртуального Компьютерного Музея Шахматный компьютер Кена Томпсона. Материалы Виртуального Компьютерного Музея

Платы были вставлены в корпус, с управлением PDP-11/23. Конфигурация опередила большинство мэйнфреймов за миллион долларов и выиграла чемпионат мира по компьютерным шахматам в 1980 году.

Гораздо менее К. Томпсон известен как один из трёх авторов языка программирования Go, и уж совсем мало известно об его участии в проектах Bell Labs по разработке ОС Plan 9 и Inferno.

Работая над операционной системой Plan 9 (распределённая ОС, создаваемая в Bell Labs с середины 80-х до конца 90-х), он вместе с Робом Пайком (Rob Pike) в 1992 г. предложил ныне повсеместно используемую схему кодирования символов UTF-8 – 8-разрядный вариант кодовой таблицы Юникод.

«В 1995 году компания Lucent Technologies, новый владелец исследовательских лабораторий Bell Labs, перевела многих разработчиков Plan 9 в другую команду, которая занялась созданием операционной системы Inferno, построенной на базе Plan 9.

В Inferno входил язык прикладного программирования Limbo, который был разработан с нуля специально для Inferno. Его синтаксис во многом заимствовал синтаксис Си, но имел вкрапления из множества других языков.» [15]

О своём стиле мышления и работы Томпсон рассказал в одном из интервью: «Я сторонник «восходящего» мышления. Если вы дадите мне детский конструктор нужного размера, я могут представить себе здание. Я могу, глядя на простейшие детали, оценить возможность создания из них структур высотой в полмили, если только у меня будет возможность дополнить их функциональность.

И наоборот, я не могу, рассматривая здание, представить себе детали конструктора, из которых оно построено. Когда мне попадается «нисходящее» описание системы или языка, которое содержит бесконечные библиотеки, описывающие один уровень за другим, у меня возникает ощущение какой-то трясины. Представить себе это я не могу. Мне трудно понять, как все эти компоненты связаны друг с другом; я не в состоянии разобраться, когда мне предлагают некую сложную конструкцию. Возможно, простота моих решений объясняется тем, что я не могу создать ничего более сложного. На самом деле я обязательно должен разбить систему на более мелкие составные части…

Трудно давать советы производителям компьютерных продуктов, поскольку все, что я делаю, как мне кажется, можно назвать своего рода компьютерным дарвинизмом: пробую, и если что-то не получается, выбрасываю и начинаю заново. Такого нельзя себе позволить в организации, которая занимает разработкой продуктов.» [10]

В интервью 1999 г. Кен Томпсон рассказывал: «Я вхожу в состав Computing Sciences Research Center, который представляет собой союз творческих индивидуальностей – никаких групп, никаких руководителей. Эта модель исследований давно принята в Bell Labs. Как таковых проектов в Computing Sciences Research Center нет. Вокруг них существуют разного рода проекты, которые будут продвигать наши исследования как ресурсы. Но они должны выполняться в нашем стиле. Если другие компании что-то заинтересовало, они обращаются к нам, но обычно их абсолютно не интересует стиль управления (то, что это не имеет значения – выяснится по ходу работы).» [10]

В конце 2000 года Томпсон ушёл из Bell Labs. До 2006 года он работал в фирме Entrisphere, затем работал в корпорации работал в Google, где участвовал в создании языка программирования Go. В Google Томпсон оказался вместе с Робертом Пайком, с которым работал над ОС Plan 9 в Bell Labs. Не заю, кто кого привёл в Google. К ним примкнул ещё Роберт Гриземер (Robert Griesemer), разрабатывавший в Google сверхбыструю версию JavaScript. Там эта троица поняла, что они разочарованы в C ++ и Java, с которыми с годами работать становилось всё более некомфортно, они «захотели вернуть в программирование удовольствие и продуктивность», а потому решили создать новый язык, который назвали Go.

Как пишет о Томпсоне Сейбел Питер, «На протяжении своей карьеры он занимался всем, что только казалось ему интересным, в том числе - в разное время - аналоговыми вычислениями, системным программированием, регулярными выражениями и компьютерными шахматами». [9]

Его последнее большое увлечение – коллекционирование музыкальных записей. Томпсон рассказывает: «Это «проект», в котором я реализую свои личные пристрастия, исследовательский интерес и увлечение музыкой. Я попытаюсь объяснить всё с внешней точки зрения. У меня большая коллекция музыкальных записей. Из различных источников я получаю списки типа «Лучшая десятка», «Лучшие 50 записей», и пытаюсь составить музыкальную коллекцию.

Сейчас в моем списке около 35 тыс. песен, из которых у меня есть порядка 20 тысяч. Я сжал эти записи с помощью созданного в Bell Labs алгоритма, получившего название PAC (Perceptual Audio Coding), и храню их в системе типа «музыкального ящика». Я начал составлять свою коллекцию еще до появления MP3 в Сети. PAC во многом превосходит MP3.

Мою коллекцию нельзя представить широкой публике по юридическим соображениями. Я обратился к юристам и рассказал, что собрал большое число звукозаписей, но, как мне показалось, они не поняли, что я понимаю под словом «большое». Они заявили, что использование записей в исследовательском проекте законно, и они меня поддерживают, но сесть за меня в тюрьму не готовы. Так что я не могу представить её вообще. Но это довольно впечатляюще. У системы есть комбинированный экран, как у браузера; и вы можете перемещаться по спискам, годам и неделям. Это личное увлечение. Как вы могли заметить, практически всё, что я делаю можно назвать личным увлечением.» [10]

Томпсон известен как пилот-любитель, который несколько раз приезжал в Москву. Один раз по приглашению Академии наук, другой – чтобы летать на Миг-29. [13, 14]

Кеннет Томпсон на фоне

Кеннет Томпсон на фоне "Миг-29". Фото — Peter Hamer — CC BY-SA.

Награды:

1983 г. К. Томпсон и Д. Ритчи совместно получили Премию Тьюринга “за развитие теории порождающих операционных систем и в особенности за внедрение операционной системы UNIX”, в 1998 г. им была вручена Национальная медаль за технологии США.

Из других его личных наград отмечу:

  • IEEE Emanuel R. Piore Award(1982)

  • IEEE Richard W. Hamming Medal (1990).

  • медаль IEEE Computer Society “Computer Pioneer” (1994).

  • Награда Музея компьютерной истории (Computer History Museum Fellow Award) (1997);

  • Награда Галереи славы ACM SIGOPS (Hall of Fame Award) (2005).

  • премия Тсутому Канаи (Tsutomu Kanai Award) (2011) за достижения в области распределенных вычислений. Премия учреждена Computer Society и корпорацией Hitachi (1999).

Литература.

  1. Г. Каспаров. Человек и компьютер: Взгляд в будущее. –М.: Альпина Паблишер. 2017.

  2. Ken Thompson. https://www.computerhistory.org/fellowawards/hall/ken-thompson/

  3. Ken Thompson UNIX systems father. https://www.unixmen.com/ken-thompson-unix-systems-father/

  4. Кен Томпсон. Критика доверчивости. Речь при получении премии Тьюринга. http://khpi-iip.mipk.kharkiv.edu/library/extent/prog/ken/ken.html

  5. KEN THOMPSON. http://www.facesofopensource.com/ken-thompson-3/
    Частиков Аркадий. Архитекторы компьютерного мира. Кеннет Томпсон и Деннис Ричи. Создатели операционной системы UNIX и языка С. https://history.wikireading.ru/387574

  6. Ken Thompson. https://en.wikipedia.org/wiki/Ken_Thompson.

  7. Ritchie & Thompson – Creators of C and Unix. https://www.i-programmer.info/history/people/547-ritchie-a-thompson.html.

  8. Сейбел Питер. Кен Томпсон. https://litresp.ru/chitat/ru/%D0%A1/sejbel-piter/koderi-za-rabotoj-razmishleniya-o-remesle-programmista/15

  9. Unix и не только. https://www.osp.ru/os/1999/04/179809/

  10. Леонид Черняк. ОС времен до Unix и Windows. https://www.osp.ru/cw/2006/15/1154759/

  11. Дмитрий Гачко. История open source, часть вторая: рождение UNIX и GNU. https://vc.ru/dev/61379-istoriya-open-source-chast-vtoraya-rozhdenie-unix-i-gnu

  12. Воспоминание: как я летал на МиГ-29. http://cs.bell-labs.co/who/ken/mig.html

  13. Introductory Go Programming Tutorial. https://www.linuxjournal.com/content/introductory-go-programming-tutorial

  14. Frederic Alois Friedel. Ken—an introduction in three syllables. https://medium.com/@frederic_38110/ken-an-introduction-in-three-syllables-daed628417e5

  15. Г. Гринштейн. Персона. Деннис Ритчи — создатель языка С и ОС UNIX. https://habr.com/ru/post/309546/.


Помещена в музей с разрешения автора 19 сентября 2017