История виртуализации 1950 — 2000 гг: как 256 Кб виртуальной памяти стали целым сервером

Виртуализация — полезная технология. Сейчас её используют во многих компаниях, но ведь и без неё как-то обходились. А зачем вообще придумали виртуализацию и как она развивалась?

Суперкомпьютер Atlas, или как я перестал бояться и полюбил виртуальную память

1950-е — эпоха “красной угрозы” в США. Холодная война шла полным ходом, американцы видели коммуниста в каждом прохожем. Они боялись, что Советский Союз вот-вот начнёт ядерные бомбардировки и строили бомбоубежища в подвалах своих домов.

Ещё с 1940-х компьютеры в первую очередь работали для военных нужд, а уже потом для научных. В 1956 году Правительство США подписало договор с IBM и Sperry Rand: компании должны были создать суперкомпьютер для разработки ядерного оружия и дешифровки перехваченных сообщений.

У стран-участниц НАТО настроения были такие же. Великобритания заключила договор с университетом Манчестера о разработке аналогичного американскому  компьютера.

В том же году в университете начали работу над прототипом суперкомпьютера MUSE (microsecond engine). Почему такое название? Одна инструкция в миллисекунду или один миллион в секунду, а это очень много для того времени.

В 1958 году университет скооперировался с компанией Ferranti, после чего MUSE получил имя Atlas и был запущен 7 декабря 1962 года. Тогда он был почти самым мощной машиной в мире.

Разработчик ядерного оружия Atlas

Atlas имел особенность: в 1959 году для него реализовали виртуальную память. Появился первый кирпичик для разработки уровня абстракции.

Эпоха аббревиатур: IBM S/360, CP-40/67 и CMS, MIT MAC и GE

В то время компьютеры обрабатывали одну задачу за один подход, максимум — одну за одной без вмешательства оператора. Компания IBM решила создать мейнфрейм с обратной совместимостью S/360, но с таким же подходом. На его разработку потратили $5 млрд. Сейчас это было бы $30 млрд, а это ВВП Эстонии за год.

ВВП Эстонии aka IBM S/360

Машина вышла на рынок в 1964 году, но ещё в 1963 в IBM поняли, что что-то пошло не так: в июле Массачусетский технологический институт (MIT) анонсировал проект MAC (Mathematics and Computation). Потом фокус сместили на многопользовательность и переименовали проект в Multiple Access Computer.

MIT искал мейнфрейм-базу для своего проекта и предложил нескольким компаниям контракт. IBM не видела спрос на многопользовательские компьютеры, а в MIT не видели потенциала в S/360 для базы проекта MAC. За разработку взялась General Electrics (GE), а результатами их работы заинтересовались в Bell Labs.

IBM немного обиделась и срочно начала работу над CP-40 — программы для S/360 model 40. Эта штука создавала виртуальные машины: 14 штук с 256 Кб памяти (не хухры-мухры) одновременно. Под CP-40 сделали систему CMS для работы в виртуальных машинах, и весь гипервизор назвали CP/CMS.

Позже CP-40 доработали для новой модификации мейнфрейма и назвали CP-67. Вот тогда-то и получился первый коммерческий гипервизор. Главная фишка новой CP/CMS — интерактивность: пользователи могли взаимодействовать с программами в среде, а не делать просто “ввод/вывод”.

Чашка кофе с экрана Siemens

В рамках работы над проектом MAC появилась ОС Multics, а вдохновленный работой над ней Кен Томпсон и его коллега из Bell Labs Деннис Ритчи создали предтечу всего и вся — UNIX на языке C. Что система умела в плане виртуализации?

Unix мог виртуализировать рабочие пространства пользователей: на одном и том же железе каждый юзер имел свой профиль, в который мог добавлять софт и управлять им. Но главная фича — это C, который развязал руки для виртуализации приложений.

Для переноса Unix на совсем другое железо нужно было чуть переписать код и рекомпилировать систему. ВСЁ.

А что, если убрать процесс компиляции? А это уже виртуализация приложения. А что вы видели первым, когда запускали игру на своём Sony Ericsson или Siemens? Логотип Java.

Помните Doodle Jump? Лого Java было перед каждым запуском игры

Это ж эпоха Internet: Sun Mircosystems создала Java для того, чтобы каждый юзер через специальное окружение Java Run-Time Environment (JRE) мог запустить любую программу на любой машине. Уникальный подход для того времени, но с рядом ограничений.

Аппаратная виртуализация: когда Apple и Microsoft немного дружили

В 1980-х операционных систем было много, как выпускников юрфаков. У всех ОС были преимущества и недостатки, а совместить сильные стороны в одной системе не получалось.

Решение нашла компания Insignia Solutions: в 1988 году они выпустили SoftPC. Этот эмулятор запускал приложения для MS DOS на Unix, что до этого не получалось. Наверняка, мы вообще помним о SoftPC потому, что компьютер с DOS стоил $1500, а за эти деньги можно было купить 3 рабочих станции Unix с эмулятором.

В следующем году Insignia выпустила версию SoftPC для Mac от Apple и добавила плюшку: яблочники получили приложения и для DOS, и для Windows. С 1994 года компания выпускала свой софт с предустановленными системами, например, SoftWindows.

И тут понеслась. Apple в 1997 году выпускает Visual PC и этим решает несовместимость софта Mac и Windows. В 1998-м была основана VMware, в 1999-м она выпускает Workstation и Virtual Platform. Сначала оба продукта поддерживали лишь Windows, но потом и другие системы.

В 2001 году VMware выстреливает двумя продуктами. GSX Server — гипервизор второго типа: для его работы нужен хост с ОС, а ESX Server — второго типа, то есть, автономный. Первый тип считается эффективнее: шире возможности  оптимизации и не нужно париться с ОС. Именно ESX стал очень популярен, и компания дополняла его новым софтом.

Позже Microsoft выпустила Virtual PC 2004 и Virtual Server 2005, а в 2007 году Citrix выпустила свой XenServer. А как не рассказать про KVM и VirtualBox? Про эти штуки и не только мы расскажем в следующих материалах.

А пока приглашаем на наш курс “Технологии виртуализации на Linux”, скоро начало. Куча практики и суперкомпетентный преподаватель — гарантированы.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *