Кен Томпсон внёс огромный вклад в компьютерные шахматы, его программа Belle победила на ЧМ 1980 г.
Кен Томпсон внёс огромный вклад в компьютерные шахматы, его программа Belle победила на ЧМ 1980 г.

Кен Томпсон с Деннисом Ритчи являются соавторами Unix — операционной системы, которая лежит в фундаменте современной ИТ-индустрии. Важно заметить, что он начал работать над Unix раньше Ритчи. По словам Томпсона, он в одиночку написал первые версии Unix и делал в Bell Labs предшественников Unix и С — ОС Multics, языки Bon и B — ещё до того, как туда пришёл юный аспирант Деннис, помог всё улучшить и разработал язык С. Но вообще их карьера очень похожа: обоих после вуза направили в Bell Labs, где они трудились почти всю жизнь.

Томпсон неоднократно входил в топ-10 программистов всех времён и тому подобные рейтинги. Кроме Unix, в его послужном списке операционная система Plan 9, язык программирования Go и несколько выдающихся программ.


Биография

Кен Томпсон родился 4 февраля 1943 года в Нью-Орлеане, сейчас ему 83 года.

Получил степени бакалавра (1965) и магистра (1966) по электротехнике и информатике. После выпуска из университета пошёл в Bell Labs, где сначала работал над Multics. Это была экспериментальная и инновационная для своего времени система с разделением времени, финансируемая Агентством передовых исследовательских проектов (ARPA). Её совместно разрабатывали исследователи из Массачусетского технологического института (MIT), Bell Labs и General Electric Co. Но затем AT&T (материнская компания Bell Labs) вышла из проекта в 1969 году.

После этого Кен Томпсон сконцентрировался на разработке новой операционной системы — Unix. В 1975 году ушёл в саббатикал и отправился в родной университет, где портировал Unix 6 на PDP-11. Эта версия впоследствии будет поддерживаться отдельно и станет известна как Berkeley Software Distribution (BSD).

Почти всю карьеру Томпсон проработал в Bell Labs, уволился только в декабре 2000-го, в возрасте 57 лет. Однако и в почтенном возрасте продолжил карьеру: сначала научным сотрудником в Entrisphere до 2006 года, затем в Google, где помогал в разработке Go.

Кен Томпсон до сих пор живёт полной жизнью, вырастил сына. Раньше использовал компьютеры Apple, но недавно отказался от них в пользу Raspberry Pi OS.

Проекты

  • Соавтор ОС Multics (1969). Это ранняя ОС с разделением времени исполнения программ, основанная на концепции одноуровневой памяти. Разработку начали в 1964 году на основе проекта ОС BESYS, руководителем которого был американский математик Виктор Высотский. Он же возглавил проект Multics.

    Математик Виктор Высотский, видео из архивов AT&T от 1982 года
    Математик Виктор Высотский, видео из архивов AT&T от 1982 года
  • Язык программирования Bon для Multics (1969).

  • Видеоигра Space Travel для Multics (1969). Симуляция путешествий по Солнечной системе.

    Геймплей Space Travel
    Геймплей Space Travel

    Кен хотел играть в неё на мини-компьютере DEC PDP-7, поэтому начал разрабатывать более гибкую операционную систему для PDP-7. Так появился Unix.

PDP-7
PDP-7

То есть разработка игры привела в итоге к созданию операционной системы Unix. Более подробно история описана здесь:

Первоначальная версия Space Travel для GECOS была трудна в управлении, к тому же игра в неё на GECOS была недешёвым занятием — в 1960-х годах процессорное время большого к��мпьютера строго распределялось между всеми желающими. Томпсону удалось найти менее производительный и менее популярный PDP-7, обладающий, помимо этого, хорошим графическим терминалом. Процесс портирования оказался неожиданно сложным — у программистов не было никаких утилит для написания программы. Томпсону и Ричи специально для игры пришлось с нуля написать библиотеку для работы с числами с плавающей точкой на ассемблере, а также графическую подсистему и систему отладки кода. Именно в процессе портирования игры на PDP-7 на ассемблере, Томпсон и Ритчи написали исходный код, который в конечном итоге превратился в операционную систему UNICS/Unix.

В процессе портирования игры на PDP-7 были разработаны следующие технологии: иерархическая файловая система, концепция компьютерных процессов и файлов устройств, интерпретатор командной строки, каналы для лёгкого межпроцессного взаимодействия и несколько небольших утилит.

Примечание от автора. Говорят, что технологический прогресс ускоряется благодаря космонавтике и войнам. Ну а в информатике роль таких «ускорителей» могут выполнять видеоигры и порно.

  • Unix (1969−1992): первые версии Кен Томпсон написал в одиночку, без участия Ритчи, который больше концентрировался на разработке С.

    Аккаунт Кена в Unix 6 на PDP-11
    Аккаунт Кена в Unix 6 на PDP-11

    Но обычно они с Деннисом Ритчи работали вместе:

    Ритчи (стоит) и Томпсон программируют на PDP-11, около 1972 г
    Ритчи (стоит) и Томпсон программируют на PDP-11, около 1972 г
  • Berkeley Pascal (1975).

  • Шахматная программа chess (1971) для первой версии Unix.

  • Шахматная программа Belle (совместно с Джозефом Кондоном), которая в 1980 году выиграла чемпионат мира по компьютерным шахматам.

  • Базы шахматных окончаний, включая KQKR, KBBKN, KQPKQ и KRPKR, покрывающие все четырёх- и пятифигурные окончания. См. научную статью Томпсона «Ретроградный анализ некоторых окончаний» и фрагмент про программы на С для генерации баз шахматных окончаний. В целом, он внёс огромный вклад в компьютерные шахматы.

  • Атака через бэкдор компилятора, также известная как «взлом Томпсона» или Trusting Trust (1983), исходный код. Начинается с написания программы, которая воспроизводит свой исходный код:

    package main func main() { print(q + "\x60" + q + "\x60") } var q = package main func main() { print(q + "\x60" + q + "\x60") } var q =

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

  • Томпсон помогал Ритчи в создании операционных систем Plan 9 (1985−1995) и Inferno (1996).

    Plan 9
    Plan 9
  • Кодировка UTF-8 (1992), в том числе упаковка битов. К настоящему времени UTF-8 стала основной кодировкой Юникода в интернете, хотя изначально была создана для Plan 9.

  • Текстовые редакторы QED и ed.

  • Регулярные выражения: математическая нотация типа /r[aeiou]+/g, соответствующая определённым шаблонам в тексте.

    Регулярное выражение /r[aeiou]+/g
    Регулярное выражение /r[aeiou]+/g

    Саму концепцию регулярных выражений изобрёл математик Стивен Клини в 1951 году, но Кен Томпсон значительно доработал её в Unix и своих текстовых редакторах. Именно он сделал regex общеизвестным инструментом.

    Он также изобрёл конструкцию Томпсона (алгоритм МакНотона — Ямады — Томпсона) для преобразования регулярных выражений в недетерминированные конечные автоматы (NFA):

    Использование NFA значительно ускоряет сопоставление (выполнение) регулярных выражений:

  • Язык программирования Go. Уже в пенсионном возрасте Кен Томпсон совместно с Робом Пайком и Робертом Гриземером спроектировал новый язык. По словам Томпсона, авторы исходили из общей нелюбви к С++ и желания избавить синтаксис от любого мусора. Каждая функция в Go строго и обязательно необходима, здесь нет ничего лишнего или противоречивого, как в С++.

  • 138 научных статей.

Plan 9 — улучшенный Unix

Plan 9 использует принципы Unix, но применяющей их более широко ко всем основным системным ком��онентам. Эта система во многом опередила своё время и по сути должна была преодолеть принципиальные недостатки Unix.

Согласно Википедии, система построена на трёх основных принципах:

  1. Все ресурсы представлены как файлы и доступны в иерархической файловой системе.

  2. Локальные и удалённые ресурсы не различаются, для доступа к ним реализован стандартный протокол 9P.

  3. Каждая группа процессов имеет собственное пространство имён, собранное из файловых иерархий, предоставленных различными ресурсами.

В отличие от современных операционных систем, в которых пользователь получает доступ к персональному компьютеру или рабочей станции, в Plan 9 пользователь получает доступ к распределённой вычислительной среде и имеет возможность конфигурировать своё рабочее пространство. Например, /dev/mouse для процесса — это мышь на компьютере, с которого этот процесс запущен, причём это может быть не тот компьютер, на котором исполняется процесс.

В Plan 9 основным языком программирования является С. Особенность компилятора заключается в полной поддержке Юникода и ряда других полезных расширений, таких как формирование структур и инициализация массивов. Реализованы кроссплатформенная компиляция и отладка, успешно портированы Perl, Python, Scheme, noweb, Haskell, Newsqueak, Go и ML.

В 2014 году разработчики изменили условия лицензирования. Весь код ОС, который распространялся под Lucent Public License, одновременно опубликован под GPLv2. Таким образом, пользователи могут распространять код системы и/или модифицировать его по своему желанию. Одновременно был открыт репозиторий на Github.

Награды

В 1980 году Кен Томпсон избран членом Национальной инженерной академии США, а спустя пять лет — Национальной академии наук США.

Лауреат премии Тьюринга 1983 года (совместно с Ритчи) «за разработку общей теории операционных систем и, в частности, реализацию Unix».

В 1999 году Томпсон и Ритчи награждены Национальной медалью США в области технологий за разработку Unix.

© 2026 ООО «МТ ФИНАНС»