Фернандо Х. Корбато: человек, разделивший время
Современные облачные технологии позволяют любому пользователю получать безграничный доступ к огромным вычислительным мощностям из любой точки мира. Однако ключевой принцип этой концепции был разработан еще в конце 1950-х, за десятилетия до появления таких понятий, как «кибербезопасность» и «облако». Его пионером была не крупная технологическая компания вроде IBM, а один амбициозный молодой ученый с испанскими корнями. Сейчас его принято именовать «отцом компьютерного пароля». Но на этом заслуги Корбато не заканчиваются.
Очередь на вычисления
Еще в 1950-х годах прошлого века молодой ученый Фернандо «Корби» Корбато защитил докторскую степень по физике в Массачусетском Технологическом Институте. На правах доктора наук он был допущен к вычислениям на одном из самых мощных и перспективных компьютеров того времени — Whirlwind. Через какое-то время, разобравшись с принципом работы компьютера, Корбато пришел в восторг: это устройство могло делать гораздо более интересные вещи, чем «банальное» решение физических задач одна за другой. Но времени на детальное изучение возможностей компьютера у физика не было. Дело в том, что компьютер делили между собой сразу несколько факультетов MIT. Никто не желал уступать законное время сомнительным проектам молодого доктора. В лучшем случае Корбато оставалось довольствоваться тридцатью минутами работы с компьютером в день — притом в самые ранние утренние часы. Приходилось, скрепя сердце, вставать спозаранку и экспериментировать считаные минуты, пока не придут коллеги с «серьезными» лицами и расчетами.
Компьютер WhirlwindВероятно, эта история наложила серьезный отпечаток на всю будущую карьеру Фернандо Корбато. В самом начале 1960-х годов он разработал первую операционную систему с разделением времени. Она позволяла сразу нескольким людям использовать компьютер одновременно. Иными словами, проблема очередей за машинным временем исчезла. Пользователи могли работать с машиной в любое удобное время. Принципы, заложенные Корбато, до сих пор находят свое отражение в ОС современных электронных устройств.
Позднее Корбато вспоминал:
«Это была настоящая борьба! Во мне видели не более чем худощавого профессора с галстуком-бабочкой. Ничего больше. В то время компьютеры не раздавали направо-налево всяким Томам, Дикам и, простите, Фернандо. А архитекторы и слышать не хотели ни о каких прорывных идеях «с улицы». У каждого было собственное представление о том, что такое компьютер. И уж точно компьютер — не та вещь, которую можно разделить с друзьями!».
Ранние годы и начало карьеры
Фернандо Хосе Корбато родился 1 июля 1926 года в Окленде, штат Калифорния. Его отец, Эрменегильдо Корбато, был мигрантом из Испании и в молодости работал учителем в римско-католической школе в Китае. Позже он переехал в США, чтобы поступить в аспирантуру калифорнийского университета в Беркли. Там он познакомился со своей будущей женой Шарлоттой Дженсен. С рождением сына Эрменегильдо Корбато устроился преподавателем испанской литературы в Калифорнийском университете в Лос-Анджелесе.
Юный Фернандо не пошел по стопам своих родителей: гуманитарные предметы интересовали его постольку-поскольку, настоящую страсть он питал к математике и физике. Способности Фернандо проявились еще в средней школе. А с началом второй мировой войны в возрасте 17 лет он поступил на службу в военно-морском флоте и получил профильное образование техника-электронщика. Вероятно, именно это заложило фундамент для будущей работы Фернандо. По его собственному признанию, служба в армии научила его решать тривиальные проблемы нетривиальным способом. Этот навык имел решающее значение для Фернандо, когда он занялся проектированием компьютерных операционных систем.
Уже после войны, в 1950 году, он поступил в аспирантуру MIT. Блестящие успехи в области изучения вычислительной техники вкупе с массой неординарных идей и решений обратили на него внимание старших коллег и профессоров. Фернандо назначили помощником в управлении компьютерным центром на территории кампуса. По мере того, как все больше студентов и преподавателей открывали для себя компьютерные вычисления, он воочию видел трудности эффективной эксплуатации ресурсов компьютера.
В те годы работа с компьютером строилась следующим образом: вначале программы переносились на перфокарты. Готовые стопки перфокарт передавались операторам, и те в течение нескольких дней пачками прогоняли программы через компьютер. Нетрудно представить, сколько хлопот могла доставить одна-единственная ошибка в программе на перфокарте. Из-за мельчайшей недоработки или неточности (при условии, что ее удастся обнаружить сразу по окончании вычислений) приходилось заново набивать программу и отдавать ее на исполнение.
«Оборудование было очень капризным и сложным» — вспоминал Фернандо. «В среднем, компьютеры ломались каждые 20 минут».
Работа Корбато с проектом Whirlwind подтолкнула его к прорывной идее: почему бы не дать сразу нескольким пользователям возможность одновременно использовать компьютер? Мощности вполне хватит на всех, но из-за технических особенностей первых компьютеров реализовать независимую работу нескольких программистов было попросту невозможно.
Первая ОС с разделением времени
В начале 1960-х Корбато, уже получивший докторскую степень, при поддержке коллег изучал способы организации совместного использования компьютерных ресурсов.
В 1961 году Корби вместе со своими коллегами (Бобом Дейли и Марджори Мервин-Даггет) в стенах MIT продемонстрировал первую версию операционной системы с разделением времени — CTSS. Система была реализована на базе IBM 709. Пользователям предлагалось подключаться к машине с помощью модифицированных терминалов Flexowriter. Для сохранения программ, выполнение которых было приостановлено, использовались четыре ленточных накопителя.
В 1962–1963 гг. разработка CTSS продолжилась. На смену ламповому IBM 709 пришла новая машина — IBM 7090. Компьютер был специально модифицирован IBM для работы в режиме разделения времени. Подключение к нему все так же реализовывалось через терминалы, установленные в офисах MIT и даже у некоторых сотрудников института дома.
Презентация CTSSКстати, с руководством по использованию CTSS от MIT Press до сих пор можно ознакомиться здесь.
CTSS стала той искрой, которая убедила MIT открыть Project MAC, предтечу Лаборатории компьютерных наук (LCS), которая позже станет Лабораторией компьютерных наук и искусственного интеллекта (CSAIL). На первом крупном мероприятии Project MAC — Summer Study — компьютерные специалисты из различных научно-исследовательских институтов, правительственных организаций и промышленности смогли лично познакомиться с CTSS. Этот практический опыт не только убедил участников в эффективности таймшеринга, но и позволил сформировать вокруг CTSS сообщество первых пользователей.
Стало ясно, что CTSS вышла за рамки экспериментального проекта. Осенью 1963 года лаборатория Project MAC благодаря финансированию ARPA приобрела собственный IBM 7094, и CTSS сделала ресурсы научной машины доступной участникам всех исследовательских проектов MIT.
Помимо повышения эффективности вычислений, CTSS сыграла важную роль в становлении концепции конфиденциальности данных. Поскольку разные пользователи хотели ограничить доступ «соседей по машине» к своим файлам, Корбато пришла идея создания индивидуальных учетных записей с личными паролями.
В 1963–1964 гг. доктор Корбато и его команда начали работу над гораздо более амбициозным проектом. Новая операционная система получила название Multiplexed Information and Computing Service, или Multics. Для такого серьезного проекта требовалась соответствующая аппаратная поддержка, и Корбато принялся обивать пороги крупных технологических компаний. К своему удивлению он обнаружил, что IBM, бесспорный лидер на рынке компьютеростроения, совсем не заинтересована в тайм-шеринге. Пришлось обратиться к General Electric Co. В отличие от IBM, GE всячески угождала разработчикам программного обеспечения. Таким образом она пыталась получить конкурентное преимущество перед IBM, которая, по заявлению Корбато «всеми силами заставляла клиентов покупать еще один новый компьютер вместо того, чтобы как-то модернизировать старый».
ОС Multics
Проект Multics — это первая операционная система, в которой была реализована плоская модель хранения данных. В ней существовало четкое разделение концепции файлов (сегментов) и памяти вычислительных процессов. При этом каждый сегмент, из которых состояла память, обладал собственным адресным пространством.
Логотип MulticsС некоторыми оговорками можно признать, что в Multics была реализована первая полностью централизованная файловая система с поддержкой древовидной иерархической структуры.
Кроме того, именно в Multics была впервые реализована концепция dynamic linking (динамическое связывание) между исполняемой программой и библиотеками кода, хранящимися в памяти компьютера.
Всем заинтересованным рекомендуем посмотреть короткоевидео, в котором объясняется работа виртуальной памяти в Multics:
Проект просуществовал вплоть до середины 1970-х годов. Коммерческого успеха ОС не снискала: сравнительно небольшой рынок, железная политика IBM в отношении собственных мейнфреймов и масса других факторов не позволили Multics обрести популярность.
Однако годы спустя доктор Корбато не раз говорил, что сама концепция Multics положительно повлияла на развитие компьютеров в целом. Именно Multics вдохновила исследователей из Bell Labs на создание UNIX и стала тренировочным полигоном для многих известных программистов — Денниса Ричи, Кена Томпсона, Дэна Бриклина и Боба Френкстона.
«Это была превосходная школа, через которую прошло невероятное количество профессиональных программистов из всех уголков земного шара» — говорил Фернандо Корбато в интервью 2006 года Музею компьютерной истории.
Корбато о Multics:
В 1990 году Фернандо Хосе Корбато получил премию Тьюринга Ассоциации вычислительной техники за свою работу над компьютерными системами с разделением времени. Скончался 12 июля 2019 года на 94-ом году жизни.
«Не будет преувеличением сказать, что работа Корби по разделению времени коренным образом повлияла на то, какими мы знаем компьютеры сегодня», — говорит директор CSAIL Даниэла Рус. «Цифровая революция уходит своими корнями в проекты, которые он возглавлял в МТИ почти 60 лет назад».
«Корби был ключевой фигурой в исследованиях, сделавших компьютеры доступными сразу для многих людей и целей», — вспоминал его давний коллега Том Ван Влек. «Он увидел, что эти концепции не только делают вычисления эффективнее, но и коренным образом меняют то, как люди используют информацию».
Видение Корбато — сделать высокопроизводительные машины доступными для всех желающих — еще в 60-х предвосхитило появление облаков. Кто знает, как развивались бы технологии сегодня, не будь его трудов и энтузиазма более полувека назад?