Персона. Деннис Ритчи — создатель языка С и ОС UNIX



    Деннис Ритчи – создатель языка программирования Cи. Он вместе с Кеном Томпсоном разработал Cи для создания операционной системы UNIX. «У Ньютона есть фраза о стоящих на плечах гигантов», – говорит Брайан Керниган. «Мы все стоим на плечах Денниса».

    «Практически все в веб создано на основе – Cи и UNIX», – рассказал изданию Wired Роб Пайк (Rob Pike), легенда программирования. – «На языке Cи написаны браузеры. На ядре UNIX работает почти весь Интернет, и оно также написано на языке Си. Веб серверы – написаны на языке C. А если не на нем, то на Java или C++. А эти языки производные от Си. Python и Ruby также базируются на Cи. Я ручаюсь за то, что все сетевое оборудование работает на программах, написанных на С. Действительно трудно переоценить то, что, сколько всего в современной информационной экономике основано на работе Денниса».

    «Недаром же Windows, когда-то написали на Cи, – добавляет он. А UNIX лежит и в основе настольной операционной системе Apple, Mac OS X и IOS. Эти системы установлены в iPhone и iPad».

    Профессиональное становление


    Деннис Макалистэр Ритчи (Dennis MacAlistair Ritchie) родился 9 сентября 1941 года. Его родной город – Бронксвилль, штат Нью-Йорк. Детство Денниса проходило в Нью-Джерси. Он окончил престижный американский ВУЗ — Гарвард. Особый интерес юного инженера вызвала местная компьютерная система Univac I. Там он получил степень бакалавра по физике и прикладной математике. После окончания обучения Ритчи устроился лаборантом в компьютерную лабораторию института MIT. Там он занимался поддержкой парка машин, а также разработкой софта.

    Примерно в это же время он заинтересовался разработкой операционных систем для более компактных, настольных, компьютеров. (Тогда вычислительные машины «стандартного размера» занимали целые комнаты). MIT и General Electric поддержали его проект. Несмотря на отсутствие образования в области разработки ПО, для Денниса программирование никогда не было проблемой. Написание программ было для него подобно разгадыванию пазла.

    В 1967 году Ритчи начал работать в лаборатории Bell Labs, где и сформировалась база для всех наиболее известных на сегодняшний день компьютерных изобретений. Но на тот момент Bell Labs был ведущим телекомпровайдером в стране.


    Bell Labs

    Начав работать в Bell Labs, Ритчи не стал фокусироваться на каком-то одном проекте: «Мне просто хотелось быть среди людей с разнообразным опытом и множеством идей. Поэтому я начал работать над несколькими проектами сразу, чтобы найти свой путь в профессии».

    В компании Деннис начал работать с Кеннетом Томсоном, который присоединился к Bell Labs годом ранее, в 1966 году. Оба поняли, что «миниатюрные» настольные компьютеры будут набирать все большую популярность уже в начале 1970-х годов. Они также решили, что таким компьютерам необходим механизм, обеспечивающий управление аппаратными средствами компьютера, организующий работу с файлами и выполнение прикладных программ, осуществляющий ввод и вывод данных.

    Так разработчики пришли к идее операционной системы. Изобретение языка Cи и роль Ритчи в разработке UNIX вместе с Кеном Томпсоном сделали его пионером современной вычислительной техники, как пишут в сети.

    UNIX и Cи


    Все началось в 1963 году, задолго до того, как Ритчи пришел в Bell Labs, – с проекта МАС (Multiple Access Computer, Machine-Aided Cognition, Man and Computer) начался как чисто исследовательский проект в MIT.

    В рамках проекта МАС была разработана операционная система CTSS (Compatible Time-Sharing System). Во второй половине 60-х было создано несколько других систем с разделением времени, например, BBN, DTSS, JOSS, SDC и Multiplexed Information and Computing Service (MULTICS) в том числе.

    Multics – совместная разработка MIT, Bell Telephone Laboratories (BTL) и General Electric (GE) по созданию ОС с разделением времени для компьютера GE-645. Последний компьютер под управлением Multics выключили 31 октября 2000 года.

    Однако BTL отошел от этого проекта еще в начале 1969 года.

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

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

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

    Ядро UNIX было написано на ассемблере, но вскоре Деннис и Кен поняли, что им необходим язык «более высокого уровня», который дал бы им больше контроля над всеми данными. Примерно в 1970 году, они попытались создать вторую версию ядра на языке Fortran, но результат не оправдал ожиданий. Тогда Ритчи предложил новый язык, основанный на создании Томпсона, известный как B(Би).

    PDP-7 UNIX также положил начало высокоуровневому языку B, который создавался под влиянием языка BCPL. Деннис Ритчи сказал, что В — это Си без типов. BCPL помещался в 8 Кб памяти и был тщательно переработан Томпсоном. В постепенно вырос в С.


    Изображение из книги «Язык Си»: M. Уэйт, С. Прата, Д. Мартин

    В был интерпретируемым языком – то есть исходный код частями преобразовывался в машинный код в процессе выполнения специальной программой. Cи был компилируемым языком. Он переводился в машинный код, а затем непосредственно выполнялся в CPU. Но в те дни Cи считался языком высокого уровня. Он предоставил Ритчи и Томпсону больше гибкости, в которой они нуждались, и в то же время, выполнялся быстрее.

    Первая версия языка Си не сильно отличалась от версии, которую мы знаем сегодня. Хотя она была чуть проще. Она предлагала структуры данных и «типы» переменных. И это то, что Ритчи и Томпсон использовали для создания их нового ядра UNIX. «Они создали C для того, чтобы написать программу», – говорит Пайк, который присоединился к Bell Labs спустя 10 лет. «А программу, которую они хотели написать, называлась ядро UNIX».

    «Когда вы пишете большую программу как UNIX – вы должны управлять взаимодействиями между самыми разными компонентами: пользователями, файловой системой, дисками, выполнением программы, и для того, чтобы управлять этим эффективно, вы должны иметь хорошее представление о информации с которой работаете. Мы называем ее структурами данных», – говорит Пайк.



    «Написать ядро без структуры данных, с таким же строением и совершенством, как ядро UNIX – было бы намного сложнее. Им необходим был способ группировки всех данных, а реализовать это в Fortran было не возможно».

    В то время это был необычный способ написания операционной системы, и именно это позволило Ритчи и Томпсону, в конечном счете, перенести операционную систему на другие платформы, что они и сделали в конце 70-х. «Это открыло шлюзы для работы UNIX на любой платформе», – говорит Пайк. «Все это стало возможным благодаря Cи».

    «Незримый король»


    «Разработка языка программирования Cи стала огромным шагом вперед и правильным компромиссом … В Си нашелся правильный баланс, позволяющий писать на высоком уровне, что стало более продуктивным, а в нужный момент, можно было контролировать все что происходит», – рассказывает Билл Далли, главный научный сотрудник NVIDIA и Bell Professor of Engineering в Стэнфорде. «[Си ] задает тон в программировании в течение нескольких десятилетий».

    Как уже отмечалось Пайком, структуры данных, которые Ритчи встроил в Cи, в конечном итоге, привели к объектно-ориентированной парадигме, используемой такими современными языками, как C++ и Java.

    Революция началась в 1973 году, когда Ритчи опубликовал свою научную работу о языке, а спустя пять лет, вместе со своим коллегой Брайаном Керниганом выпустил книгу: «Язык программирования Cи». Ранее Керниган уже писал учебники по языку, и в какой-то момент, он убедил Денниса написать книгу с ним.

    Пайк прочитал книгу, будучи студентом Торонтского университета. Он взял книгу, когда возвращался домой из-за болезни. «Этот справочник – образец ясности и четкости изложения по сравнению с недавно вышедшими справочниками. Он по праву является классикой», – говорит он. «Я прочитал его, когда лежал больной в постели, и он заставил меня забыть о болезни».

    Как и многие студенты университета, Пайк уже программировал на этом языке. Си распространился по всем кампусам колледжа, поскольку в Bell Labs начали раздавать исходный код UNIX. Помимо всего операционная система дала толчок к развитию современного движения свободного программного обеспечения. Пайк не преувеличивает, когда говорит, что вклад Ритчи невозможно переоценить. И хотя Ритчи получил премию Тьюринга в 1983 году и Национальную медаль в области технологий в 1998 году, ему до сих пор не воздали должное.

    Керниган и Пайк описывают Ритчи как необычайно скрытного человека. «Более 20 лет я проработал на противоположной стороне зала, и все же, считаю, что не знал его хорошо», – говорит Пайк.



    Стив Джобс также был скрытным человеком, и его позиционирование на скрытности только усилило культ личности, окруживший его. Ритчи жил в совершенно иное время и работал в совершенно иных условиях в отличии от таких как Джобс. Возможно, поэтому Ритчи не был столь популярен.

    «Джобс был зримым королем, а Ритчи, преимущественно, незримым королем», – так сказал Мартин Ринард, профессор электротехники и компьютерных наук Массачусетского технологического института и член Computer Science and Artificial Intelligence Laboratory.

    «Гений Джобса состоит в том, что он имел вкус и создавал продукты, которыми люди хотели пользоваться. И он мог создавать вещи, которые, по-настоящему, нравились людям. Ритчи создал то, что технари смогли использовать для создания базовой инфраструктуры. Людям не обязательно ее видеть, несмотря на то, что они используют ее каждый день».

    После UNIX


    Основная проблема UNIX, с точки зрения ее же авторов, заключалась в том, что в силу своей архитектуры ОС не могла прозрачно приспособиться к значительно изменившемуся со времен ее разработки IT-миру. Проще говоря, UNIX умирала от собственных проблем, а все попытки приспособить ее к современным условиям приводили к усложнению ОС, введению множества разрозненных, сложных API, новых прослоек, сетевых протоколов, форматов данных, что сделало когда-то простую, продуманную, элегантную ОС тяжелым, неповоротливым и сложным в сопровождении комком кода.

    Вспоминая успехи UNIX, Ритчи продолжал до самой смерти исследования в области операционных систем и языков программирования. Он внес значительный вклад в разработку операционных систем Plan 9 и Inferno, а также языка программирования Limbo.

    Когда исследователи из Bell Labs поняли, что UNIX уже не исправить они решили начать с нуля и разработали новую, никак не связанную и несовместимую с UNIX, операционную систему с эксцентричным именем Plan 9.


    Главная идея Plan 9 заключалась в том, чтобы довести концепцию «все есть файл» до логического триумфа и построить из синтетических файлов всю ОС (а если говорить конкретнее – представить все ресурсы операционной системы файлами). Причем сделать это так, чтобы к файлам имели доступ не только локальные приложения и пользователи, но и любой удаленный клиент. В результате появился файловый протокол 9P.
    В 1995 году компания Lucent Technologies, новый владелец исследовательских лабораторий Bell Labs, перевела многих разработчиков Plan 9 в другую команду, которая занялась созданием операционной системы Inferno, построенной на базе Plan 9.

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

    Кроме переносимости и производительности, Inferno обладает еще одной очень важной особенностью: наличием языка прикладного программирования Limbo, который был разработан с нуля специально для Inferno и существует только в рамках этой ОС. Его синтаксис во многом повторяет синтаксис Си, но имеет вкрапления из множества других языков.

    Конец легенды


    12 октября 2011 года Ритчи был найден мёртвым у себя дома в Нью-Джерси, где проживал в одиночестве. Первые новости о смерти сообщил его бывший коллега Роб Пайк: «Деннис Ритчи скончался в эти выходные у себя дома». Причина и точное время смерти остались неизвестными. Незадолго до этого он лечил рак простаты, также у него было больное сердце. Ритчи умер спустя неделю со смерти Стива Джобса, но в отличие от Джобса, смерть Ритчи была мало освещена в СМИ.

    9 сентября Деннису Ритчи исполнилось бы 75 лет.
    Поделиться публикацией
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 28

      +8

      Я так и не понял, какое отношение к Ритчи имел Джобс.

        +2
        Это вариация [закона Годвина](https://ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%BA%D0%BE%D0%BD_%D0%93%D0%BE%D0%B4%D0%B2%D0%B8%D0%BD%D0%B0) для определенной категории граждан: в любом тексте про заметную в IT–индустрии персону должно быть сравнение с Джобсом в пользу последнего.

        Хотя, конечно, Ритчи — эпоха, культура, целый мир и гений. Кто такой Джобс на этом фоне — не очень ясно.

        +5
        Когда стало известно о смерти Д. Ритчи, мне надолго запомнился комментарий опубликованный в одной из новостных групп (usenet). Звучал он приблизительно так: «весь мир оплакивает смерть Стива Джобса, но никто не вкурсе о смерти человека, чей гений вдохнул жизнь в бесчисленное количество устройств с которыми мы ежедневно соприкасаемся». Этим же вечером, поражаясь абсурдности и сюрриализму происходящего, я наблюдал новостной сюжет о том, как в одном из престижнейших технических ВУЗов страны собираются устанавливать памятник в виде айфона.
          +1
          Помню этот сюжет и помню как было печально, когда на презентации яблофона даже словом не обмолвились о Ритчи, без которого этого яблофона не было бы в принципе, как и самой эппл. Ещё было очень печально, что гугл изменил свою главную из-за Стива, но проигнорировал двенадцатое октября.
            0
            > Ритчи, без которого этого яблофона не было бы в принципе

            был бы, только внутри чуть по другому.
            0
            Компьютерный историк Пол Е. Церуззи сказал после смерти Денниса Ритчи:

            «Ритчи остался недооценённым. Его имя никогда не было брендом, однако… если бы у вас был микроскоп, способный заглянуть в сердцевину компьютера, вы бы увидели труд Ритчи в каждой его детали».
            • НЛО прилетело и опубликовало эту надпись здесь
              +7
              Наверное я сейчас нахватаю от apple фан-боев, но все же выскажу мысль, которая неявно присутствует, но не проговорена явно.

              Я могу себе очень легко представить современный мир в котором никогда не было Джобса. Да, смартфоны и ноутбуки в нем не такие гламурные и, возможно, музыка не продается по одному треку, а целыми альбомами, что неудобно.
              Я абсолютно не могу себе представить современный мир в котором не было Ритчи. Нет С => нет Unix-а => нет Internet-а.
              Кстати, если нет Unix, то нет Unix-based MacOS, а если нет Internet-а, то непонятно зачем нужен смартфон…
              Соглашусь с предыдущими комментариями, что это очень печально, когда вся слава и деньги достаются маркетологу-шоумену (пусть и очень хорошему), а не тому, кто действительно сформировал основы большой части современного мира.
              Самое удивительное, что в массовом сознании маркетолог-шоумен еще и умудрился создать себе имидж изобретателя.
              Масштаб личности Ритчи это масштаб Теслы, Форда, Циолковского, Эдисона… не сопоставимо с Джобсом даже близко.
                +1
                Наверное я сейчас нахватаю от apple фан-боев
                Apple -фан-бои вряд ли зайдут читать статью про непонятного чувака. А те, которые «в теме», и даже знают про героя статьи — думаю вполне адекватны.
                  0
                  Я ошибся. Они не все адекватны.
                  0
                  Я бы не стал сравнивать Ритчи с Теслой. С Эдисоном — да, но не Теслой.
                    0
                    Первое, я могу себе представить мир без колеса и что?
                    Я могу себе представить мир без всего, что в нем есть ( по отдельности), и что? Это как-то умоляет достоинства Джобса?

                    Второе, зачем вы сравниваете этих двух людей с точки зрения программирования? Чего вы Ритчи с жирафом не сравниваете с точки зрения высоты? «И Ритчи еще называет себя высоким. Да он еще говорит, что выше других людей! А вот жираф на голову выше любого человека! Самое удивительное, что еще и умудрился создать себе имидж баскетболиста!»

                    Я не спорю, что он был классный программист, но Джобс таковым не являлся.

                    Третье, вот насчет масштаба личности — это вообще чушь. Джобс был прекрасным управленцем, способным мотивировать коллектив работать с продуктом до тех пор, пока к нему не захочется прикоснуться, даже если вам не нужно его использовать в данный момент. Маркетинг был только частью его работы. Почитайте о нем, именно с масштабом личности у него все в порядке.
                    Еще большой вопрос, что повлияло на развитие технологий больше — скурпулезное оттачивание продукта и внедрение в него только самого передового (даже если это менее прибыльно, чем толкать «большее разрешение») раз за разом на протяжении кучи лет во главе крупной, передовой компании, или разработки (великолепные, да) в достаточно узкой области.
                      0
                      Думаю такие люди работают не ради славы и денег.
                      –1
                      Деннис Ритчи – плечи на которых стоял Стив Джобс.
                        +1
                        эмм, я вообще не могу понять почему сравнивают Ритчи с Джобсом… Джобс ни одной строчки кода не написал, он же даже не ит-шник
                          +1
                          Если уж так хочется Apple — Возняк был (и есть) инженером, с ним и можно равнять.
                            0
                            Они умерли в один год и это пожалуй единственное, что их объединяет. Вы помните какая была истерия по поводу кончины главы Apple? А что насчет Ритчи? Никто в здравом уме их не сравнивает, как айтишников, но проблема в том, что есть много людей, которые считают покойного главу Apple изобретателем. А раз он работал в около-айтишной сфере, то у людей в головах остается «изобрел смартфон, изобрел персональный компьютер т.п.».
                            Подчеркну, что для меня они не только люди разного масштаба влияния на нашу цивилизацию, но и из разных областей. К сожалению, в массовом сознании это не так. Хабр-сообщество — исключение, естественно.
                            +1
                            Вот то-то и оно! Статья о Деннисе Ритчи, а в каждом комментарии Джобс. Грустно…
                              0
                              Астрологи объвили неделю памяти айтшников-основателей на Хабре. Мораль поклонников apple снижена вдвое :).
                              +1
                              Светлая память!
                                +1
                                Светлая память, действительно был Человек с большой буквы…
                                  0
                                  Картинка про достоинства Си напомнила анекдот советских времен: «прибор полупортативный» — снабжен одной ручкой для переноски, а «прибор портативный» — снабжен двумя ручками
                                    0
                                    Уверен, что за Деннисом Ритчи стоит еще менее известная персона, которая так же его подтолкнула, но о нем и падавно не вспомнят.
                                      0
                                      Целая цепочка учёных, уходящая в глубь веков.
                                        0
                                        Именно.
                                        Все они веками работали, чтобы появился Стив Джобс.
                                          0

                                          Печальный итог

                                      0
                                      Да-да. Несколько тысяч лет истории науки. Сотни имён — астрономы, математики, философы, религиозные деятели, языковеды, поэты. Споры о знании и религии. Костры инквизиции, сотня революций и войн и наблюдаемый итог:
                                      image

                                        0
                                        Те, кто ничего не знает о Ритчи, просто не достойны этого знать.

                                        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                        Самое читаемое