stringtranslate.com

Кен Томпсон

Кеннет Лейн Томпсон (родился 4 февраля 1943 года) — американский пионер компьютерной науки . Большую часть своей карьеры Томпсон работал в Bell Labs , где разработал и внедрил оригинальную операционную систему Unix . Он также изобрел язык программирования B , прямого предшественника языка C , и был одним из создателей и первых разработчиков операционной системы Plan 9. С 2006 года Томпсон работает в Google , где он был одним из разработчиков языка Go .

Другие заметные вклады включают его работу над регулярными выражениями и ранними компьютерными текстовыми редакторами QED и ed , определение кодировки UTF-8 и его работу над компьютерными шахматами, которая включала создание баз эндшпильных таблиц и шахматной машины Belle . Он выиграл премию Тьюринга в 1983 году вместе со своим давним коллегой Деннисом Ритчи .

Ранняя жизнь и образование

Томпсон родился в Новом Орлеане, штат Луизиана . Когда его спросили, как он научился программировать, Томпсон ответил: «Меня всегда увлекала логика, и даже в начальной школе я решал арифметические задачи в двоичной системе счисления и тому подобное. Просто потому, что меня это увлекало». [3]

DEC PDP-7 , использовавшийся для первоначальной работы над Unix

Томпсон получил степень бакалавра наук в 1965 году и степень магистра в 1966 году, как по электротехнике, так и по компьютерным наукам , в Калифорнийском университете в Беркли , где его научным руководителем по магистерской диссертации был Элвин Берлекамп . [4]

Карьера и исследования

Томпсон был нанят Bell Labs в 1966 году. [5] В 1960-х годах в Bell Labs Томпсон и Деннис Ритчи работали над операционной системой Multics . Во время написания Multics Томпсон создал язык программирования Bon. [6] [7] Он также создал видеоигру под названием Space Travel . Позже Bell Labs вышла из проекта MULTICS. [8] Чтобы продолжить играть в игру, Томпсон нашел старую машину PDP-7 и переписал Space Travel на ней. [9] В конечном итоге инструменты, разработанные Томпсоном, стали операционной системой Unix : работая над PDP-7 , группа исследователей Bell Labs во главе с Томпсоном и Ритчи, включая Радда Канадая , разработала иерархическую файловую систему , концепции компьютерных процессов и файлов устройств , интерпретатор командной строки , каналы для легкого межпроцессного взаимодействия и несколько небольших служебных программ. В 1970 году Брайан Керниган предложил название «Unix», играя каламбуром на название «Multics». [10] После первоначальной работы над Unix Томпсон решил, что для Unix нужен язык системного программирования, и создал B , предшественника C Ричи . [11]

В 1960-х годах Томпсон также начал работу над регулярными выражениями . Томпсон разработал версию CTSS редактора QED , которая включала регулярные выражения для поиска текста. QED и более поздний редактор Томпсона ed (стандартный текстовый редактор в Unix) внесли большой вклад в конечную популярность регулярных выражений, и регулярные выражения стали широко распространены в программах обработки текста Unix. Почти все программы, которые сегодня работают с регулярными выражениями, используют какой-либо вариант нотации Томпсона. Он также изобрел алгоритм построения Томпсона, используемый для преобразования регулярных выражений в недетерминированные конечные автоматы , чтобы ускорить сопоставление выражений. [12]

1970-е

Версия 6 Unix, работающая на симуляторе SIMH PDP-11 , где все еще присутствует "/usr/ken"

На протяжении 1970-х годов Томпсон и Ритчи сотрудничали над операционной системой Unix; они были настолько плодотворны в Research Unix , что Дуг Макилрой позже написал: «Имена Ритчи и Томпсона можно смело отнести почти ко всему, что не упоминается иным образом». [13] В интервью 2011 года Томпсон заявил, что первые версии Unix были написаны им, и что Ритчи начал выступать за эту систему и помогал ее разрабатывать: [14]

Я сделал первую из двух или трех версий UNIX в одиночку. А Деннис стал евангелистом. Затем была переписывание на языке более высокого уровня, который впоследствии стал называться C. Он работал в основном над языком и системой ввода-вывода, а я работал над всей остальной операционной системой. Это было для PDP-11 , что было удачей, потому что это был компьютер, который захватил академическое сообщество.

Обратная связь от разработки Томпсона Unix также сыграла важную роль в разработке языка программирования C. Томпсон позже скажет, что язык C «вырос с одной из переписываний системы и, как таковой, он стал идеальным для написания систем ». [14]

В 1975 году Томпсон взял академический отпуск в Bell Labs и отправился в свою alma mater, Калифорнийский университет в Беркли. Там он помог установить версию 6 Unix на PDP-11/70 . Unix в Беркли позже стал поддерживаться как отдельная система, известная как Berkeley Software Distribution (BSD). [15]

В начале 1976 года Томпсон написал первоначальную версию Berkeley Pascal на кафедре компьютерных наук кафедры электротехники и компьютерных наук Калифорнийского университета в Беркли (с существенными изменениями и дополнениями, внесенными позднее в том же году Уильямом Джоем , Чарльзом Б. Хейли [16] [17] [18] и научным руководителем факультета Сьюзан Грэм ).

Томпсон написал шахматную программу под названием «шахматы» для первой версии Unix (1971). [19] Позже, вместе с Джозефом Кондоном , Томпсон создал аппаратно-управляемую программу Belle , чемпионский шахматный компьютер . [20] Он также написал программы для генерации полного перечисления шахматных окончаний, известных как endgame tablebases , для всех 4-, 5- и 6-фигурных окончаний, что позволяет шахматным компьютерным программам делать «идеальные» ходы, как только достигается позиция, сохраненная в них. Позже, с помощью эксперта по шахматным эндшпилям Джона Ройкрофта , Томпсон распространил свои первые результаты на CD-ROM . В 2001 году журнал ICGA Journal посвятил почти целый выпуск различным вкладам Томпсона в компьютерные шахматы. [19]

1980-е

Plan 9 от Bell Labs , работающий с текстовым редактором acme и оболочкой rc

В 1983 году Томпсон и Ритчи совместно получили премию Тьюринга «за разработку теории общих операционных систем и, в частности, за реализацию операционной системы UNIX». В своей благодарственной речи «Размышления о доверии к доверию» он представил атаку на постоянный бэкдор компилятора , теперь известную как взлом Томпсона или атака на доверие к доверию, и широко считается основополагающей работой в области компьютерной безопасности сама по себе. [21] В 2023 году аннотированный исходный код бэкдора был опубликован в сети. [22] В конце благодарственной речи он раскритиковал положительное освещение журналистами хакеров , таких как 414 .

В течение 1980-х годов Томпсон и Ритчи продолжали пересматривать Research Unix, которая приняла кодовую базу BSD для 8-го, 9-го и 10-го изданий. В середине 1980-х годов в Bell Labs началась работа над новой операционной системой в качестве замены Unix. Томпсон сыграл важную роль в разработке и внедрении Plan 9 от Bell Labs , новой операционной системы, использующей принципы Unix, но применяющей их более широко ко всем основным системным средствам. Некоторые программы, которые были частью более поздних версий Research Unix, такие как mk и rc , также были включены в Plan 9.

Томпсон тестировал ранние версии языка программирования C++ для Бьярна Страуструпа , написав на нем программы, но позже отказался работать на C++ из-за частой несовместимости между версиями. В интервью 2009 года Томпсон выразил негативное мнение о C++, заявив: «Он делает много вещей наполовину хорошо, и это просто куча мусора из взаимоисключающих идей». [23]

1990-е

В 1992 году Томпсон совместно с Робом Пайком разработал схему кодировки UTF-8 . [24] С тех пор UTF-8 стала доминирующей формой кодировки Unicode для Всемирной паутины , на долю которой в 2019 году пришлось более 90% всех веб-страниц. [25]

В 1990-х годах началась работа над операционной системой Inferno , еще одной исследовательской операционной системой, которая была основана на портативной виртуальной машине . Томпсон и Ритчи продолжили свое сотрудничество с Inferno вместе с другими исследователями из Bell Labs. [26]

В 1995 году Томпсон сотрудничал с Шоном Дорвардом в области компрессии музыки, основываясь на оригинальной исследовательской работе Джима Джонстона под руководством Джо Холла и Джонта Аллена. [27] [28]

2000-е

В конце 2000 года Томпсон ушел из Bell Labs.

В 2004 году он помог реализовать Turochamp , шахматную программу, которую Алан Тьюринг разработал в 1948 году, еще до того, как появились компьютеры, способные ее выполнить. [29]

Он работал в Entrisphere, Inc. в качестве стипендиата до 2006 года. С 2024 года он работает в Google , сначала как выдающийся инженер, а затем как консультант Google. [30] Недавняя работа включала совместную разработку языка программирования Go . Ссылаясь на себя и других первоначальных авторов Go, он заявляет: [14]

Когда мы трое [Томпсон, Роб Пайк и Роберт Гриземер ] начали, это было чистое исследование. Мы трое собрались вместе и решили, что ненавидим C++. [смех] ... [Возвращаясь к Go] мы начали с идеи, что все трое должны быть вовлечены в каждую функцию языка, чтобы в язык не попадал никакой посторонний мусор по какой-либо причине.

Награды

Национальные академии

В 1980 году Томпсон был избран в Национальную академию инженерии за «разработку UNIX — операционной системы, эффективность, широта, мощь и стиль которой стали руководством для целого поколения при эксплуатации мини-компьютеров ». [31] В 1985 году он был избран членом Национальной академии наук . [2]

Премия Тьюринга

В 1983 году Томпсон и Ритчи совместно получили премию Тьюринга «за разработку теории общих операционных систем и, в частности, за реализацию операционной системы UNIX». В своей благодарственной речи «Размышления о доверии к доверию» Томпсон описал атаку в виде бэкдора компилятора , которая была названа хаком Томпсона или атакой доверия к доверию , и широко считается основополагающей работой по компьютерной безопасности сама по себе. [32]

Медаль Ричарда В. Хэмминга от IEEE

В 1990 году Томпсон и Деннис Ритчи получили медаль IEEE Ричарда В. Хэмминга от Института инженеров по электротехнике и электронике (IEEE) «за создание операционной системы UNIX и языка программирования C». [33]

Член Музея истории компьютеров

В 1997 году Томпсон и Ритчи были избраны членами Музея компьютерной истории за «совместную разработку операционной системы UNIX и разработку языка программирования C». [34]

Национальная медаль в области технологий

27 апреля 1999 года Томпсон и Ритчи совместно получили Национальную медаль за технологии 1998 года от президента Билла Клинтона за совместное изобретение операционной системы UNIX и языка программирования C, которые вместе «привели к колоссальному прогрессу в области компьютерного оборудования, программного обеспечения и сетевых систем и стимулировали рост целой отрасли, тем самым укрепив лидерство Америки в информационную эпоху». [35]

Премия Цутому Канаи

В 1999 году Институт инженеров электротехники и электроники выбрал Томпсона для получения первой премии Цутому Канаи «за его роль в создании операционной системы UNIX, которая на протяжении десятилетий была ключевой платформой для работы распределенных систем». [36]

Премия Японии

В 2011 году Томпсон вместе с Деннисом Ритчи был удостоен Премии Японии в области информации и коммуникаций за новаторскую работу в разработке операционной системы Unix. [37]

Личная жизнь

Кен Томпсон женат и имеет сына. [38] [19]

Смотрите также

Ссылки

  1. ^ "IEEE Emanuel R. Piore Award Recipients" (PDF) . IEEE . Архивировано из оригинала (PDF) 24 ноября 2010 г. . Получено 20 марта 2021 г. .
  2. ^ ab "Kenneth Thompson". www.nasonline.org . Архивировано из оригинала 21 октября 2021 г. . Получено 9 июня 2019 г. .
  3. ^ Сейбель 2009, стр. 450.
  4. ^ "Thesis Students". Домашняя страница Элвина Берлекэмпа . Калифорнийский университет, кафедра математики в Беркли. Архивировано из оригинала 21 октября 2021 г.
  5. ^ "Кен Томпсон: разработал UNIX в Bell Labs" . Получено 31 октября 2016 г.
  6. ^ Томпсон, К. Л. (1969). «Bon User's Manual» (PDF) . Проект истории Multics . Документы Multics: Лаборатория компьютерной науки и искусственного интеллекта Массачусетского технологического института. стр. 1. Архивировано из оригинала (PDF) 14 февраля 2021 г. . Получено 18 марта 2021 г. .
  7. ^ Ритчи, Деннис. «Развитие языка C». Bell Labs . Получено 31 октября 2016 г.
  8. ^ J. Stanley Warford (2009). Компьютерные системы. Jones & Bartlett Publishers. стр. 460. ISBN 978-1-4496-6043-7.
  9. ^ Ритчи, Деннис М. (2001). «Космические путешествия: исследование солнечной системы и PDP-7». Bell Labs . Архивировано из оригинала 26 декабря 2015 г. Получено 4 февраля 2016 г.
  10. ^ Ритчи, Деннис М. «Эволюция системы разделения времени Unix». Архивировано из оригинала 21 октября 2021 г. Получено 31 октября 2016 г.
  11. ^ Деннис М. Ритчи. «Развитие языка C». Bell Labs/Lucent Technologies . Получено 31 октября 2016 г.
  12. ^ Кокс, Расс. «Regular Expression Matching Can Be Simple And Fast». Архивировано из оригинала 21 октября 2021 г. Получено 30 октября 2016 г.
  13. ^ Макилрой, МД (1987). Исследовательский ридер Unix: аннотированные выдержки из Руководства программиста, 1971–1986 (PDF) (Технический отчет). CSTR. Bell Labs. 139. Архивировано из оригинала (PDF) 4 мая 2014 г.
  14. ^ abc "Dr. Dobb's: Interview with Ken Thompson". 18 мая 2011 г. Архивировано из оригинала 21 октября 2021 г. Получено 10 ноября 2014 г.
  15. ^ Салус, Питер Х. (2005). "Глава 7. BSD и CSRG". Демон, Гну и Пингвин . Гроклав .
  16. ^ "Настройка Unix – седьмое издание" (PDF) . Получено 3 января 2024 г. .
  17. ^ "BYTE.com". www.landley.net . Получено 3 января 2024 г. .
  18. ^ «Computing from the Dark Ages: My Fifty-Year Odyssey». Indico . 25 апреля 2019 г. Получено 3 января 2024 г.
  19. ^ abc Dennis Ritchie (июнь 2001 г.). "Ken, Unix and Games". Журнал ICGA . 24 (2). Архивировано из оригинала 21 октября 2021 г. Получено 5 марта 2020 г.
  20. ^ "Джо Кондон (некролог)". Physics Today . 2013. doi :10.1063/PT.4.1752.
  21. ^ Томпсон, Кен (1984). «Размышления о доверии к доверию». Сообщения ACM . 27 (8): 761–763. doi : 10.1145/358198.358210 .
  22. ^ Кокс, Расс (25 октября 2023 г.). «Запуск компилятора «Размышления о доверии к доверию»».
  23. ^ Сейбель 2009, стр. 475.
  24. Пайк, Роб (30 апреля 2003 г.). "История UTF-8". Архивировано из оригинала 21 октября 2021 г.
  25. ^ «Статистика использования и доля рынка UTF-8 для веб-сайтов, июнь 2019 г.». w3techs.com . Архивировано из оригинала 21 октября 2021 г. . Получено 9 июня 2019 г. .
  26. ^ Khamlichi, M.el. "Ken Thompson UNIX systems father". Unixmen. Архивировано из оригинала 21 октября 2021 г. Получено 31 октября 2016 г.
  27. ^ Платт, Чарльз. «Музыка по запросу». Wired . ISSN  1059-1028 . Получено 3 января 2024 г.
  28. ^ Кен Томпсон - Заключительная речь - SCaLE 20x, 13 марта 2023 г. , получено 3 января 2024 г.
  29. ^ «Реконструкция «бумажной машины» Тьюринга». 23 сентября 2017 г.
  30. ^ Школа, Стэнфордское юридическое училище. «Биографии Amici Curiae в деле Oracle America, Inc. против Google, Inc». Стэнфордское юридическое училище . Получено 27 июля 2023 г.
  31. ^ "Доктор Кен Томпсон". Национальная инженерная академия. Архивировано из оригинала 21 октября 2021 г.
  32. ^ Томпсон, Кен (1984). «Размышления о доверии к доверию». Сообщения ACM . 27 (8): 761–763. doi : 10.1145/358198.358210 .
  33. ^ "IEEE Richard W. Hamming Medal Recipients" (PDF) . IEEE . Архивировано из оригинала (PDF) 26 июля 2011 г. . Получено 29 мая 2011 г. .
  34. ^ "Кен Томпсон". Музей истории компьютеров. Архивировано из оригинала 21 октября 2021 г. Получено 29 октября 2016 г.
  35. ^ «Знатоки Bell Labs Деннис Ричи и Кен Томпсон получат Национальную медаль за технологию». ScienceDaily. 8 декабря 1998 г. Архивировано из оригинала 21 октября 2021 г.
  36. ^ "Кен Томпсон получает премию Канаи за вклад в развитие системы UNIX". Bell Labs. 25 марта 1999 г. Архивировано из оригинала 26 марта 2013 г.
  37. Евангелиста, Бенни (25 января 2011 г.). «Кен Томпсон и Деннис Ричи стали обладателями премии Японии». The San Francisco Chronicle .
  38. ^ "Кен Томпсон: Краткое введение". Linux Information Project . 24 августа 2007 г. Получено 5 марта 2020 г.

Источники

Внешние ссылки

Послушайте эту статью ( 4 минуты )
Разговорный значок Википедии
Этот аудиофайл был создан на основе редакции этой статьи от 17 июня 2006 года и не отражает последующие правки. ( 2006-06-17 )