Кеннет Томпсон и Деннис Ричи Создатели операционной системы UNIX и языка С
Кеннет Томпсон и Деннис Ричи
Создатели операционной системы UNIX и языка С
Система UNIX достаточно проста, так что любой грамотный программист может полностью разобраться в том, каким образом она построена. То же самое справедливо и для языка С. Это язык, разработанный с четкими прагматическими целями.
Деннис Ричи
Кеннет Томпсон
В октябре 1983 года на ежегодной конференции ACM Деннису М. Ричи и Кеннету (Кену) Томпсону из АТ & Т Bell Laboratories была вручена премия Тьюринга за разработку и реализацию операционной системы UNIX.
Как сказано в решении Комитета по премиям Тьюринга: "Успех системы проистекает из тщательного выбора нескольких ключевых идей и их элегантной реализации. Пример системы UNIX привел поколение разработчиков программного обеспечения к переосмыслению основ программирования. Основной принцип системы UNIX заключен в ее подходе, который позволяет программистам опираться на работу других".
После первого публичного представления ОС UNIX в 1973 году потенциальные клиенты буквально засыпали авторов заявками с просьбой предоставить им копию новой операционной системы. Популярность ОС UNIX обусловлена многими ее отличительными особенностями. Она создавалась при помощи средств языка высокого уровня и имела иерархичную файловую систему. ОС UNIX была простой, но очень мощной благодаря удобству пользовательского интерфейса и возможности построения сложных программ из набора весьма компактных компонентов.
Деннис Ричи
Все началось в середине 60-х годов XX века. Bell Laboratories, General Electric и MIT приступили к реализации амбициозного проекта по созданию многопользовательской многозадачной операционной системы Multics (Multiplexed information and
Computing Service) для мэйнфреймов. В работе над этим проектом приняли участие сотрудники Bell Laboratories Кен Томпсон, Деннис Ричи, Дуг Макилрой, Джо Осана и др. Работы над Multics так и не удалось довести до логического конца, хотя и была выпущена сырая версия, реализованная на компьютере GE 645. В 1969 году руководство Bell Laboratories отказалось от дальнейшего участия в проекте. Как пишет в своей книге "Четверть века UNIX" (Quarter Century of UNIX) Питер Салус: "Участники проекта чувствовали себя несчастными неудачниками. В конце концов, Кен и Деннис с подачи Дуга попытались все же создать систему, которая принесла бы им удовлетворение". И они создали ее.
Деннис Ричи родился 9 сентября 1941 года в Маунт-Верноне, Нью-Йорк. В возрасте 9 лет он переехал в Саммит, Нью-Джерси. Его отец был директором технической лаборатории коммутационных систем Bell Laboratories. Ричи специализировался по физике в Гарварде, закончив его в 1963 году. В последующие пять лет в том же заведении он пытался получить докторскую степень по прикладной математике, закончил диссертацию по рекурсивным функциям, которая, как он говорит, была "своего рода математикой расчетов, теорий того, что, возможно, машины могут делать". Во время обучения в колледже он стал интересоваться компьютерами, но его академическая учеба вела его больше к теории, чем к практике. Будучи выпускником учебного заведения, Ричи стал заниматься ОС Multics, а также работал почасовиком по проекту MAC, системам с разделением времени, который осуществлялся в 60-е годы Массачусетским технологическим институтом. Он никогда не получил свою докторскую степень, хотя действительно закончил диссертацию. Его объяснение: "Мне это так наскучило, что я никогда не возвращался к этому". В 1968 году Ричи поступил на работу в Bell Laboratories, где и работает до сих пор.
Кен Томпсон родился в Новом Орлеане 4 февраля 1943 года. Отец его был военным моряком и часто менял место своей службы. До двухлетнего возраста Кен жил в Сан-Диего, Сиэтле, Сан-Франциско, Индианаполисе и Кингсвилле.
Кингсвилл был центром нефтяной промышленности. Там не было телефонов, только коротковолновые радиопередатчики для легковых автомобилей, на которых рабочие добирались до нефтяных вышек. Радиопередатчики и радиоприемники были любимым занятием Кена, а шахматы — его любимой игрой (в 70-х годах он создает компьютерную шахматную программу, которая трижды становилась чемпионом Америки).
Поступив в 1960 году в университет Беркли, Калифорния, Томпсон специализировался на электронике. Во время учебы он работал в компьютерном центре программистом, а по окончании университета, в 1965 году, получил степень магистра по электротехнике. На работу в Bell Laboratories он поступил в 1966 году и принял участие в проекте Multics.
Итак, в 1969 году после выхода Bell Laboratories из названного проекта Кен Томпсон и Деннис Ричи решили разработать собственную операционную систему.
Используя опыт, накопленный в рамках проекта Multics, Томпсон создает версию ОС для бесхозной устаревшей модели компьютера PDP-7, пылившейся на складе. Для того чтобы написать все основные компоненты системы, Томпсону понадобился всего лишь один месяц. "По одной неделе ушло на проектирование ядра, файловой системы, редактора и компилятора, — пишет Салус со слов Томпсона. — К концу месяца у нас уже была вполне работоспособная операционная система".
Считается, что название UNIX предложил Брайан Керниган, который позже, в 70-х годах, вместе с Ричи принимал участие в разработке языка С, причем первоначально система была названа Unics (Uniplexed Information and Computing Service), чтобы подчеркнуть ее родство с Multics. В 1970 году система UNIX по предложению Джо Осана была перенесена на более мощный компьютер PDP 11/20.
Надо сказать, что языком, на котором Томпсон начал писать ОС UNIX был FORTRAN. Но затем сложилась ситуация, о которой Томпсон говорит следующее: "Когда при написании системных программ выяснилось, что FORTRAN накладывает различные ограничения, я нисколько не ослаблял их, и в конце концов стало очевидным, что это уже не FORTRAN. Я назвал его языком В (Би). Это был по сути интерпретатор".
Вскоре после этого (1972 год) Деннис Ричи, используя промежуточный язык данного интерпретатора, создал машинный язык, а затем — компилятор для компьютера PDP 11/20. Добавив средства структурного программирования и переписав его, система получила название языка С (Си). (Теперь становится немного логичным странное название языка — вслед за "В" идет буква "С"; первую букву латинского языка, как утверждают некоторые программисты, еще ранее использовал К. Айверсон для своего языка APL — A Programming Language.) "С этого момента главным разработчиком языка стал Деннис Ричи", — говорит Кен Томпсон.
Деннис Ричи (стоит) и Кеннет Томпсон за компьютером PDP-11/20 (70-е годы)
В 1973 году ядро операционной системы UNIX вместе с программами-утилитами было переписано на С. Поскольку С относился к классу языков высокого уровня, опубликование его спецификаций значительно упростило процесс переноса UNIX на другие аппаратные платформы.
Версию операционной системы UNIX, написанную на С, Ричи и Томпсон представили в 1973 году на Symposium on Operating Systems Principles. В зале, где проходил доклад, присутствовало около 200 человек. Как пишет Питер Салус: "Это была одна из первых разработок, которую специалисты приняли на "ура". Эта версия UNIX действительно обладала очень широкими функциональными возможностями и при этом еще и работала".
Интерес со стороны пользователей вырос еще больше после публикации в 1974 году Ричи и Томпсоном статьи в "Communications of the ACM". Только за первый год заявки на приобретение UNIX подали свыше 40 организаций.
В последующие несколько лет целый ряд компаний предложили пользователям собственные версии UNIX.
В 1979 году, после того как АТ & Т Bell Laboratories — законный владелец UNIX, объявила о том, что она намеревается продать эту операционную систему, в университете Беркли (Калифорния) был разработан свой вариант UNIX — BSD.
Именно на основе BSD агентство DARPA начало разработку программ для Internet, а многочисленные разработчики программного обеспечения использовали его как основу для будущих коммерческих ОС (фирма Sun на основе BSD разработала SunOS, а затем и Solaris; DEC — Ultrix и т. д.). А позже появились первые некоммерческие реализации UNIX–LINUX и FreeBSD, которые можно получить бесплатно со всеми исходными текстами.
Но по мере развития вычислительной техники область применения UNIX все более расширялась, и теперь она охватывает почти все группы компьютерных систем — от персоналок до мэйнфреймов. Например, одна из классических UNIX-систем — Solaris — может работать как на базе Intel (Solaris х86), так и на сверхбольшом SPARC-сервере Enterprice 10000, который по вычислительной мощности приближается к мэйнфрейму.
Сегодняшний ассортимент UNIX-систем очень широк — от небольших рабочих станций и персональных компьютеров до больших серверов, сравнимых с мэйнфреймами. Благодаря изначальной ориентации этой операционной системы на построение вычислительных сетей, UNIX-системы находят применение в различных областях компьютерных технологий. Их используют как серверы Internet, приложений и баз данных. Большое распространение в последнее время UNIX-серверы получили в системах интерактивной обработки транзакций, где они не уступают по надежности мэйнфреймам. Надежность достигается с помощью так называемой "кластеризации" UNIX-серверов, т. е. объединения двух или более серверов в единую вычислительную систему. В случае же выхода из строя одного из компьютеров кластера, другой заменит его без остановки работы всей системы в целом.
Многие аналитики сходятся во мнении, что в новом тысячелетии будут доминировать платформы UNIX, Web/Java и Microsoft Windows. Богатое сетевое наследство, проверенная масштабируемость, функциональность и надежность, аппаратная независимость делают ОС UNIX совершенно идеальной системой. Индустрия делает ставку именно на эту операционную систему. Многие предприятия либо уже используют ее, либо намерены взять эту ОС на вооружение в самом ближайшем будущем. Производители UNIX-систем строят их на основе принятых стандартов, что гарантирует возможность совместной работы систем и продуктов от разных производителей.
"Ни Деннис, ни Кен не могли в свое время даже мечтать о тех результатах, которых удалось добиться 30 лет спустя", — пишет Питер Салус.
Кроме премии Алана Тьюринга, врученной Томпсону и Ричи в 1983 году, в 1994 году IEEE Computer Society удостоила их медалями "Computer Pioneer": Кена Томпсона — "For his work with UNIX"; Денниса Ричи — "In recognition of contributions to development of UNIX".