Добавить в корзинуПозвонить
Найти в Дзене
Синдром Утёнка | IT

UNIX: операционная система, которую написал один разозлённый хакер, пока его начальник уехал в отпуск

Лето 1969 года. Bell Labs, Нью-Джерси. Молодой программист Кен Томпсон сидит в полупустом офисе и злится. Его большой проект — амбициозная операционная система Multics — только что закрыт руководством. Денег больше нет. Команда распущена. Начальник уехал в отпуск. Впереди — четыре недели тишины и доступ к компьютеру PDP-7, который никому не нужен. И Томпсон решает сделать то, что сделал бы любой уважающий себя гик: он садится писать игру. А в итоге за месяц создаёт операционную систему, которая через 50 лет будет стоять в каждом втором устройстве на планете. Добро пожаловать в историю UNIX. Сначала был Multics. В середине 60-х Bell Labs, General Electric и MIT объединились, чтобы создать идеальную ОС для мейнфреймов. Она должна была быть многозадачной, многопользовательской, сверхнадёжной и вообще последним словом в компьютинге. Проект продолжался пять лет, сожрал миллионы долларов и... провалился. Multics работал, но был чудовищно сложным, медленным и дорогим. В 1969 году Bell Labs вы
Оглавление

Лето 1969 года. Bell Labs, Нью-Джерси. Молодой программист Кен Томпсон сидит в полупустом офисе и злится. Его большой проект — амбициозная операционная система Multics — только что закрыт руководством. Денег больше нет. Команда распущена. Начальник уехал в отпуск. Впереди — четыре недели тишины и доступ к компьютеру PDP-7, который никому не нужен. И Томпсон решает сделать то, что сделал бы любой уважающий себя гик: он садится писать игру. А в итоге за месяц создаёт операционную систему, которая через 50 лет будет стоять в каждом втором устройстве на планете. Добро пожаловать в историю UNIX.

Multics, который сломался, но не сломал их

Сначала был Multics. В середине 60-х Bell Labs, General Electric и MIT объединились, чтобы создать идеальную ОС для мейнфреймов. Она должна была быть многозадачной, многопользовательской, сверхнадёжной и вообще последним словом в компьютинге. Проект продолжался пять лет, сожрал миллионы долларов и... провалился. Multics работал, но был чудовищно сложным, медленным и дорогим.

В 1969 году Bell Labs вышла из проекта. Кен Томпсон, один из ведущих разработчиков Multics, остался без дела. Но в его голове уже крутились идеи, как можно сделать ту же концепцию — многозадачность, разделение доступа, файловую систему — но проще. Гораздо проще.

Байка из серверной
Говорят, что руководство Bell Labs формально запретило Томпсону тратить рабочее время на новую ОС. Но PDP-7, который стоял в лаборатории, никто не использовал. Это был слабый, почти игрушечный компьютер с памятью 8 килобайт и дисплеем, способным рисовать только точки. Томпсон попросил у начальства разрешение «попрактиковаться в программировании» и получил устное добро — при условии, что он не будет тратить на это деньги компании. Когда же начальник Дуг Макилрой уехал в отпуск, Кен вздохнул с облегчением: «Ну наконец-то тишина».

Космическая война и рождение файловой системы

Всё началось с игры. Томпсон обожал Space Travel — примитивный космический симулятор, который он написал ещё для Multics. На PDP-7 эта игра работала отвратительно. Чтобы её запустить, Кену пришлось написать:

  • Ассемблер (программу, которая переводит код в машинные инструкции)
  • Файловую систему (чтобы было куда сохранять результаты)
  • Шедулер задач (чтобы процессы не мешали друг другу)

Короче говоря, чтобы играть в игрушку, он написал ядро операционной системы. Через месяц присоединился его коллега Деннис Ритчи, и они вдвоём начали шлифовать то, что позже назвали UNIX (игра слов: от Multics — «много», к UNIX — «один», «унифицированный»).

Метафора из бара
Представь: ты купил Xbox, но он не читает диски. Чтобы запустить любимую игру, ты в гараже собираешь собственный процессор, пилишь операционку, паяешь жёсткий диск. А потом кто-то спрашивает: «Чем занимался в выходные?» — «Да так, в игрушки играл». Вот это Кен Томпсон.

«Всё есть файл», или философия простоты

Томпсон и Ритчи придумали гениальный принцип: всё есть файл. Документ — файл. Клавиатура — файл. Принтер — файл. Сеть — файл. Даже процесс, который крутится в памяти, можно прочитать как файл. Эта идея оказалась настолько мощной, что живёт до сих пор. Именно на UNIX построены:

  • Linux — серверы, суперкомпьютеры, Android
  • macOS — твой MacBook внутри — сертифицированный UNIX
  • iOS — да, iPhone тоже праправнук того самого PDP-7

Брайан Керниган, ещё один участник ранней команды, сказал: «UNIX был написан программистами для программистов. Никто не думал о пользователях. Но оказалось, что удобно для программиста — удобно для всех». И он был прав. Терминал, который ты открываешь на Mac или Linux — это прямой наследник того самого интерфейса 1969 года.

Язык C: побочный продукт, который захватил мир

В 1972 году Деннис Ритчи решил, что писать UNIX на ассемблере — это больно. Он взял язык B, который написал Томпсон, и переписал его. Получился язык C — простой, мощный и переносимый на любое «железо». Это был тектонический сдвиг: раньше ОС писали под конкретную машину, а теперь UNIX можно было скомпилировать под что угодно. Именно поэтому UNIX расползся по университетам, как вирус: бесплатно, открыто, с исходным кодом.

AT&T (владелец Bell Labs) поначалу не поняла, что у неё в руках. Компания продавала телефонные услуги и по юридическим причинам не могла входить в компьютерный бизнес. Поэтому лицензии на UNIX раздавали университетам почти даром. Студенты читали исходники, учились, дописывали свои модули. Через 20 лет эти студенты создали Linux, BSD, Google, Facebook и всё, на чём держится интернет.

Байка от Кена Томпсона
Однажды Кена спросили: «Если бы вы могли вернуться в 1969 год и что-то изменить в UNIX, что бы вы сделали?» Он ответил с каменным лицом: «Я бы поставил букву "e" в слове "creat"». Речь о системном вызове creat(), который создаёт файлы. Томпсон в спешке пропустил букву, и с тех пор миллионы программистов пишут неправильное «create» без «e». Синдром утёнка в чистом виде: привыкли к ошибке и живут с ней больше 50 лет.
- YouTube

Наследие, которое нельзя отменить

Сегодня на UNIX и его потомках работает 80% всех серверов мира, 100% суперкомпьютеров из списка TOP500 и все телефоны на Android и iOS. Кен Томпсон и Деннис Ритчи получили Национальную медаль технологий, премию Тьюринга и звание легенд. Ритчи ушёл из жизни в 2011 году, Томпсон жив и иногда появляется на конференциях.

Но главный урок этой истории не в технологиях. Главный урок — в том, что великие вещи рождаются не из многомиллионных планов и корпоративных стратегий. Они рождаются из любопытства, обиды на провал, желания поиграть в космический симулятор и отпуска начальника.

Барный тост
За Кена Томпсона, который хотел просто поиграть в игрушку, а написал операционку. За Денниса Ритчи, который подарил нам язык C и правильную архитектуру. За пропущенную букву «e» в слове creat, которая напоминает: даже гении косячат, но это не мешает им менять мир. И за то, что иногда отпуск начальника — лучшее, что может случиться с IT. До дна!

Зацепила история? Жми лайк и подписывайся на «Синдром Утёнка | IT» — мы тут роемся в истоках технологий и рассказываем, как всё было на самом деле. Без галстуков, зато с байками и правильным кодом.