Персона: Денніс Рітчі — творець мови З ОС UNIX



Денніс Рітчі – творець мови програмування Сі. Він разом з Кеном Томпсоном розробив Сі для створення операційної системи UNIX. «У Ньютона є фраза про що стоять на плечах гігантів», – говорить Брайан Керниган. «Ми всі стоїмо на плечах Денніса».

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

«Недаремно ж Windows, коли-то написали на Сі, – додає він. А 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-х років. Вони також вирішили, що таким комп'ютерів необхідний механізм, що забезпечує керування апаратними засобами комп'ютера, що організує роботу з файлами і виконання прикладних програм, здійснює введення і виведення даних.

Так розробники прийшли до ідеї операційної системи. Винахід мови Сі та роль Рітчі в розробці UNIX разом з Кеном Томпсоном зробили його піонером сучасної обчислювальної техніки, як пишуть в мережі.

UNIX і Сі
Все почалося в 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. Уейт, С. Прата, Д. Мартін

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

Перша версія мови Сі не сильно відрізнялася від версії, яку ми знаємо сьогодні. Хоча вона була трохи простіше. Вона пропонувала структури даних і «типи» змінних. І це те, що Рітчі і Томпсон використовували для створення їх нового ядра UNIX. «Вони створили C для того, щоб написати програму», – говорить Пайк, який приєднався до Bell Labs через 10 років. «А програму, яку вони хотіли написати, називалася ядро UNIX».

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



«Написати ядро без структури даних, з таким же будовою і досконалістю, як ядро UNIX – було б набагато складніше. Їм потрібен був спосіб групування всіх даних, а реалізувати це в Fortran було не можливо».

У той час це був незвичайний спосіб написання операційної системи, і саме це дозволило Рітчі і Томпсону, в кінцевому рахунку, перенести операційну систему на інші платформи, що вони і зробили в кінці 70-х. «Це відкрило шлюзи для роботи UNIX на будь-якій платформі», – говорить Пайк. «Все це стало можливим завдяки Сі».

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

Як вже зазначалося Пайком, структури даних, які Рітчі вмонтував в Сі, в кінцевому підсумку, призвели до об'єктно-орієнтованої парадигми, використовуваної такими сучасними мовами, як C++ і Java.

Революція почалася у 1973 році, коли Рітчі опублікував свою наукову роботу про мову, а через п'ять років, разом зі своїм колегою Брайаном Керниганом випустив книгу: «Мова програмування Сі». Раніше Керниган вже писав підручники з мови, і в якийсь момент, він переконав Денніса написати книгу з ним.

Пайк прочитав книгу, будучи студентом Торонтського університету. Він узяв книгу, коли повертався додому з-за хвороби. «Цей довідник – зразок ясності і чіткості викладу порівняно з нещодавно вийшли довідниками. Він по праву є класикою», – говорить він. «Я прочитав його, коли лежав хворий у ліжку, та він примусив мене забути про хвороби».

Як і багато студентів університету, Пайк вже програмував на цій мові. Сі поширився по всьому кампусів коледжу, оскільки в 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 року Рітчі був знайдений мертвим у себе вдома в Нью-Джерсі, де проживав на самоті. Перші новини про смерті повідомив його колишній колега Роб Пайк: «Денніс Рітчі помер у ці вихідні у себе вдома». Причина і точний час смерті залишилися невідомими. Незадовго до цього він лікував рак простати, також у нього було хворе серце. Рітчі помер через тиждень зі смерті Стіва Джобса, але на відміну від Джобса, смерть Рітчі була мало висвітлена в ЗМІ.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.