Краткая история IT: От ткацкого станка до нейросетей

Паша Вейник

EN | RU
Краткая история IT: От ткацкого станка до нейросетей

Раздел 2.1. Философия UNIX: Бунт на чердаке Bell Labs

Эпоха одиноких гениев закончилась. Наступила эра корпораций, огромных бюджетов и... огромных провалов. Именно из пепла одного такого провала родилась технология, на которой сегодня работает весь интернет, ваш iPhone и даже ваша микроволновка.

Раздел 2.1. Философия UNIX: Бунт на чердаке Bell Labs

Время действия: Лето 1969 года. Место действия: Мюррей-Хилл, Нью-Джерси. Штаб-квартира Bell Labs.

Чтобы понять суть бунта, нужно сначала понять, против чего они бунтовали.

Акт 1. Звезда Смерти по имени Multics

В 1964 году руководство Bell Labs (научное крыло AT&T) решило, что будущее за «Компьютером как коммунальной услугой». Идея была такой: в городе стоит один гигантский суперкомпьютер. В каждом доме и офисе есть просто терминал (экран и клавиатура). Вы платите за вычисления так же, как за воду или электричество — по счетчику.

Для этого нужна была идеальная операционная система. Проект назвали Multics. Это был альянс трех гигантов:

  1. Bell Labs (давали лучших ученых).
  2. MIT (давали лучших архитекторов).
  3. General Electric (строили специальный мейнфрейм GE-645 стоимостью в миллионы долларов).

Почему это провалилось?

Проект стал жертвой «Синдрома второй системы». Все хотели впихнуть в Multics все возможные функции сразу.

  • Безопасность военного уровня? Да.
  • Горячая замена процессоров? Да.
  • Поддержка тысяч пользователей? Да.

В итоге получился «Титаник». Система загружалась часами. Она была настолько сложной (сотни тысяч строк кода на PL/I), что компилятор не мог собрать сам себя. К 1969 году стало ясно: Multics пожирает бюджет, но не работает.

Бизнес-решение: Руководство Bell Labs приняло волевое решение. Они вышли из проекта. Финансирование обрезали. Инженерам сказали: «Всё, игры кончились. Забудьте об операционных системах. Займитесь полезным делом — улучшайте телефонную связь».


Акт 2. Изгнанники и Игра за 75 долларов

Среди тех, кого сняли с проекта, были два друга: Кен Томпсон и Деннис Ритчи. Они привыкли работать на мощнейшем GE-645. Это было как летать на космическом корабле. И вдруг у них отобрали ключи и выгнали на улицу.

Личная драма Кена Томпсона

Кен Томпсон был фанатом научной фантастики. В свободное от работы над Multics время он написал игру Space Travel. В ней вы управляли ракетой, летали по Солнечной системе и садились на спутники Юпитера. Игра рассчитывала гравитацию и физику движения.

Проблема была в том, что игра работала на том самом мейнфрейме GE-645.

  1. Мейнфрейм у них отобрали.
  2. Даже если бы доступ остался, запуск игры стоил $75 (около $600 в современных деньгах) за одну сессию. Компания выставляла внутренние счета отделам за машинное время.

Кену было не во что играть. И не на чем работать. Руководство запретило покупать новые компьютеры для их отдела («Вы уже потратили миллионы на Multics, хватит!»).

Тот самый «Чердак»

Томпсон начал бродить по коридорам Bell Labs, заглядывая в склады и подсобки. Он искал любой бесхозный компьютер, который никто не контролировал.

И он нашел его. На одном из этажей, в углу, пылился списанный миникомпьютер DEC PDP-7.

  • Что это было: Машина размером с два холодильника.
  • Характеристики: Память — всего 8 килобайт (да, килобайт!). Процессор был медленным даже для 1969 года.
  • Состояние: У него даже не было жесткого диска для хранения файлов. Только бумажная перфолента.

Но главное — он был ничей. Менеджеры про него забыли. Это был идеальный «сквот» для цифровых панков.


Акт 3. Три недели в августе

Летом 1969 года жена Кена Томпсона взяла их годовалого сына и уехала к родителям в Калифорнию на три недели. Кен остался один. У него был заброшенный PDP-7, много свободного времени и злость на бюрократию Multics.

Он решил: «Я напишу свою операционную систему. Только для себя. Чтобы запускать свою игру».

Рождение UNIX

Он сел за терминал.

  1. Неделя 1: Он написал ядро (Kernel). Он выкинул всю сложность Multics. Никакой многоуровневой безопасности. Только самое важное: управление памятью и процессами.
  2. Неделя 2: Он написал файловую систему.
  3. Неделя 3: Он написал оболочку (Shell), редактор и ассемблер.

К концу отпуска жены система работала. Игра Space Travel летала на старом железе, и это стоило $0.

Коллега Брайан Керниган в шутку назвал эту систему UNICS (UNiplexed Information and Computing Service).

  • Multics — это «Много всего» (Multi).
  • Unics — это «Одна вещь» (Uni). Кастрированная версия Multics. Позже написание изменилось на UNIX.

Бизнес-урок: Инновации часто рождаются из дефицита ресурсов. Если бы у Томпсона был бюджет, он бы построил еще один плохой Multics. Отсутствие ресурсов заставило его делать просто.


Акт 4. Язык C и Спасение

Система работала, но была проблема. Она была написана на Ассемблере PDP-7. Через год отдел (видя успехи бунтарей) расщедрился и купил более новый компьютер — PDP-11.

Томпсон и Ритчи хотели перенести UNIX на новую машину. Но Ассемблер PDP-7 не подходил для PDP-11. Это как если бы вы написали книгу на китайском, а вам сказали переписать её на суахили.

Деннис Ритчи и «Портативность»

Деннис Ритчи понял: мы не можем переписывать ОС каждый раз, когда меняется железо. Нам нужен язык, который будет стоять над железом.

  • До этого были языки высокого уровня (FORTRAN, COBOL), но они были слишком «жирными» и медленными для написания операционных систем.
  • Ассемблер был быстрым, но «прибитым гвоздями» к чипу.

Ритчи создал язык C (Си). Это был гениальный компромисс.

  • В нем можно писать понятные слова (if, while, function).
  • Но в нем можно управлять памятью напрямую (указатели), как в Ассемблере.

Они переписали UNIX на C. И произошло чудо. Теперь, чтобы запустить UNIX на любом компьютере мира, нужно было просто перекомпилировать код языка C.

Экономический эффект: Это убило концепцию Vendor Lock-in (привязки к железу). Софт стал переносимым активом.


Акт 5. Философия Трубы (Pipes)

Когда UNIX начал развиваться, Дуглас Макилрой (начальник Томпсона и Ритчи, который прикрывал их перед высшим руководством) заметил проблему. Программисты по привычке снова начали писать огромные программы-комбайны.

Макилрой был одержим идеей заводского конвейера. Он сказал:

«Хватит писать монолиты. Пишите программы, которые делают одну вещь хорошо. Пишите программы, которые работают вместе».

Он придумал Pipe (символ | на клавиатуре).

Как это изменило мир

Представьте, что вам нужно найти слово "error" в огромном файле, отсортировать ошибки и убрать дубликаты.

  • Путь IBM: Написать сложную программу на 500 строк кода, которая открывает файл, выделяет память, сортирует массив и т.д.
  • Путь UNIX: Соединить три готовые утилиты «трубой»: cat log.txt | grep "error" | sort | uniq

Данные текут как вода по трубам. Выход одной программы становится входом другой. Это была первая реализация того, что мы сегодня называем Микросервисами и Функциональным программированием.


Итог для студента

«Бунт на чердаке» — это история о том, как:

  1. Отказ от перфекционизма (Multics) в пользу простоты (UNIX) создал работающий продукт.
  2. Дефицит ресурсов (старый PDP-7) заставил писать эффективный код.
  3. Лень (нежелание переписывать код под новое железо) привела к созданию языка C и переносимого софта.

Кен Томпсон не хотел революции. Он просто хотел поиграть в Space Travel. Но в процессе он случайно создал фундамент всего современного цифрового мира.