История виртуализации 1950 — 2000 гг: как 256 Кб виртуальной памяти стали целым сервером
Виртуализация — полезная технология. Сейчас её используют во многих компаниях, но ведь и без неё как-то обходились. А зачем вообще придумали виртуализацию и как она развивалась?
Суперкомпьютер Atlas, или как я перестал бояться и полюбил виртуальную память
1950-е — эпоха “красной угрозы” в США. Холодная война шла полным ходом, американцы видели коммуниста в каждом прохожем. Они боялись, что Советский Союз вот-вот начнёт ядерные бомбардировки и строили бомбоубежища в подвалах своих домов.
Ещё с 1940-х компьютеры в первую очередь работали для военных нужд, а уже потом для научных. В 1956 году Правительство США подписало договор с IBM и Sperry Rand: компании должны были создать суперкомпьютер для разработки ядерного оружия и дешифровки перехваченных сообщений.
У стран-участниц НАТО настроения были такие же. Великобритания заключила договор с университетом Манчестера о разработке аналогичного американскому компьютера.
В том же году в университете начали работу над прототипом суперкомпьютера MUSE (microsecond engine). Почему такое название? Одна инструкция в миллисекунду или один миллион в секунду, а это очень много для того времени.
В 1958 году университет скооперировался с компанией Ferranti, после чего MUSE получил имя Atlas и был запущен 7 декабря 1962 года. Тогда он был почти самым мощной машиной в мире.
Atlas имел особенность: в 1959 году для него реализовали виртуальную память. Появился первый кирпичик для разработки уровня абстракции.
Эпоха аббревиатур: IBM S/360, CP-40/67 и CMS, MIT MAC и GE
В то время компьютеры обрабатывали одну задачу за один подход, максимум — одну за одной без вмешательства оператора. Компания IBM решила создать мейнфрейм с обратной совместимостью S/360, но с таким же подходом. На его разработку потратили $5 млрд. Сейчас это было бы $30 млрд, а это ВВП Эстонии за год.
Машина вышла на рынок в 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.
Это ж эпоха 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”, скоро начало. Куча практики и суперкомпетентный преподаватель — гарантированы.
Для получения дополнительной информации по учебым материалам, рекомендуем посетить наш официальный сайт – ITEDUCENTER