Глава I. Предыстория: гибель Multics
Начало: как всё задумывалось
В 1964 году три организации — MIT, Bell Labs и General Electric — объединили усилия для создания амбициозной операционной системы, которая должна была стать квантовым скачком в развитии вычислительной техники. Проект получил название Multics (Multiplexed Information and Computing Service). Замысел был грандиозным: создать систему, которая одновременно обслуживала бы сотни пользователей, обеспечивала бы постоянную доступность (как телефонная сеть), была безопасной, модульной и легко расширяемой.
Multics должен был стать первым настоящим "вычислительным утилитом" — аналогично тому, как электричество или вода подаются в дома по первому требованию. Пользователи могли бы подключаться к системе с удалённых терминалов, запускать программы, хранить файлы — и всё это на огромной машине GE-645.
Что пошло не так
Multics оказался жертвой собственных амбиций. Проблема номер один — непомерная сложность. Система должна была делать всё и сразу: виртуальная память с сегментацией и подкачкой страниц, динамическая компоновка, разграничение доступа на нескольких уровнях (кольца защиты), многоуровневая файловая система. Каждая из этих идей сама по себе была передовой, но их совместная реализация оказалась кошмаром.
Проект постоянно отставал от графика. Первая версия системы, обещанная в 1967 году, была готова только в 1969-м — и даже тогда работала нестабильно. Размер кода рос экспоненциально. Документация не поспевала за изменениями. Команды разработчиков из разных организаций плохо координировались друг с другом.
Деннис Ритчи позже вспоминал, что Multics — это "скорее проект по исследованию операционных систем, чем попытка построить работающую систему". Слишком много академической теории и слишком мало инженерного прагматизма.
Уход Bell Labs
К 1969 году руководство Bell Labs потеряло терпение. Multics потребовал огромных инвестиций — как финансовых, так и человеческих ресурсов — а ощутимого результата не было. Bell Labs была частью AT&T, и хотя её бюджет был значительным, вечно финансировать провальный проект никто не собирался.
В апреле 1969 года Bell Labs официально вышла из проекта Multics. Это решение оказалось поворотным моментом в истории вычислительной техники. Группа исследователей, включая Кена Томпсона и Денниса Ритчи, оказалась без дела. У них остались привычка думать в терминах операционных систем, глубокое понимание того, что такое хорошая архитектура, и жгучее желание сделать то, что Multics обещал, но не смог выполнить.
Уроки, извлечённые из пепла
Из провала Multics родилась философия Unix. Разработчики вынесли чёткие уроки:
- Сложность — враг. Multics пытался быть всем для всех, и это его погубило. Unix будет делать одну вещь, но хорошо.
- Меньше — значит больше. Если можно обойтись без функции — обойдись. Добавить всегда успеешь.
- Модульность — это святое. Маленькие инструменты, взаимодействующие через простые интерфейсы, гораздо надёжнее монолитных конструкций.
- Переносимость — необходимость. Multics был привязан к GE-645. Unix напишут так, чтобы его можно было перенести на любую машину.
Ирония судьбы в том, что Multics, который считался провальным, оказал колоссальное влияние на Unix. Иерархическая файловая система, концепция процессов, интерпретатор команд (shell), идея монтирования томов — всё это пришло из Multics, но в Unix было реализовано проще и элегантнее.
Заключение
Multics не умер окончательно — его последняя инсталляция была выключена только 31 октября 2000 года, проработав более тридцати лет. Но главное наследие Multics не в нём самом, а в Unix — системе, которая родилась из его пепла и пошла своим путём, доказав, что иногда лучший способ сделать что-то правильно — сделать это с чистого листа.
Комментарии
Комментарии пока не подключены.