SSD Nodes Learn 🎉 VPS от $5.50/мес
Руководства Matt ConnorАвтор: Matt Connor · Обновлено 2026-08-13

История развития VPS: от мейнфреймов до облачных серверов

Узнайте, как технологии разделения времени 1960-х годов превратились в современные VPS. Мы проследим эволюцию от CTSS и Multics до гипервизоров Xen и KVM в контексте IT.

Происхождение вашего VPS

История вычислительной техники от мейнфреймов до облачных решений — это история удешевления одной идеи. Эта идея называется разделением времени: позволить многим пользователям одновременно работать на одной дорогой машине, предоставляя каждому из них изолированное окружение. Концепция появилась около 1960 года, так как компьютер стоил дороже, чем труд людей, которые его использовали. Каждый компонент VPS, который вы арендуете сегодня, был создан для решения этой задачи: изоляция между пользователями, планировщик для распределения процессорного времени, гипервизор и биллинг, учитывающий часы работы. Проблема никуда не исчезла. Оборудование стало дешевым, поэтому сегмент, на который раньше требовался исследовательский грант, теперь стоит несколько долларов в месяц.

1959–1961 годы: почему было изобретено разделение времени

В 1950-х годах компьютер работал в пакетном режиме. Вы набивали программу на перфокартах, отдавали колоду оператору и возвращались позже за распечаткой. Один опечатанный символ стоил вам целого дня. Машина оставалась загруженной, в чем и заключался основной смысл, поскольку компьютер уровня IBM 7090 стоил миллионы долларов, а время ожидающих его людей не фигурировало ни в одном счете.

В январе 1959 года Джон Маккарти изложил противоположную точку зрения в служебной записке в MIT. Машина должна ждать человека. Кристофер Стрейчи описал форму разделения времени на конференции ЮНЕСКО в том же году, хотя он имел в виду отладку программы одним программистом во время выполнения других задач, а не одновременную работу множества людей за терминалами. Выступая на праздновании столетия MIT в 1961 году, Маккарти пошел дальше: вычислительные мощности можно продавать как коммунальную услугу, оплачиваемую по счетчику, подобно электричеству.

Возражение того времени заключалось в том, что разделение времени расточительно по отношению к машине. Переключение между пользователями требует процессорных циклов, а циклы были самым дорогим ресурсом. Это возражение было верным, но оно перестало иметь значение, поскольку цена цикла падала на протяжении шестидесяти лет, в то время как цена часа человеческого внимания — нет.

Что пришлось изобрести в CTSS

Группа Фернандо Корбато в Вычислительном центре MIT создала Compatible Time-Sharing System (CTSS), чтобы разрешить этот спор. Впервые система была продемонстрирована в ноябре 1961 года на IBM 709, обслуживая четырех пользователей и выгружая работу каждого из них на отдельный накопитель на магнитной ленте. «Совместимость» означала, что машина по-прежнему могла запускать старую пакетную систему, поскольку никто не покупает компьютер, который умеет делать только что-то одно.

Четыре пользователя — это немного. Список проблем, которые пришлось решить для достижения такого результата, весьма внушителен, и это тот же самый список, который ваше ядро обрабатывает прямо сейчас. CTSS требовался планировщик, чтобы одна длительная задача не блокировала все остальные терминалы. Требовалась защита памяти, чтобы аварийное завершение программы приводило к сбою только у одного пользователя, а не всей системы. Требовалось хранилище, данные в котором сохранялись бы после выхода из системы, поэтому в CTSS появилась одна из первых файловых систем, которую узнал бы современный пользователь. И требовались пароли, чтобы один пользователь не мог прочитать файлы другого.

Переименуйте эти компоненты, и вы получите Linux-систему. Планировщик — это EEVDF, который заменил CFS в Linux 6.6. Защита памяти — это MMU (блок управления памятью), предоставляющий каждому процессу собственное виртуальное адресное пространство. Хранилище, данные в котором сохраняются после выхода из системы, — это ваш домашний каталог. Файл паролей по-прежнему называется /etc/passwd.

Multics и компьютер как коммунальная услуга

Следующая система MIT задумывалась как та самая коммунальная услуга, которую описывал Маккарти. Проект Project MAC начался в 1963 году, контракт на поставку GE-645 был подписан в августе 1964 года, а первые документы по Multics были опубликованы в 1965 году. Само название содержит суть: Multiplexed Information and Computing Service (мультиплексированная информационно-вычислительная служба). Служба — в том смысле, что вы покупаете её по часам.

Разработка Multics заняла гораздо больше времени, чем планировалось. Прототипы машин GE-645 поступили в MIT и Bell Labs в январе 1967 года. Bell Labs вышла из проекта в апреле 1969 года. Multics открылась для клиентов Центра обработки информации MIT 1 октября 1969 года и после этого находилась в промышленной эксплуатации в течение тридцати одного года. Последняя работающая система Multics, находившаяся в Министерстве национальной обороны Канады в Галифаксе, Новая Шотландия, была выключена 30 октября 2000 года.

Multics часто называют неудачей, потому что она появилась с опозданием и работала медленно. Однако терминология говорит об обратном. Она подарила нам иерархическую файловую систему с директориями внутри директорий, списки контроля доступа (ACL) для каждого файла, сегментированную виртуальную память, позволявшую программе обращаться к файлу как к оперативной памяти, и кольца защиты, ранжирующие код по уровню доверия. Кольца до сих пор присутствуют в кремнии перед вами. Ring 0 для ядра и ring 3 для пользовательского кода — это терминология Multics, а аппаратная виртуализация позже добавила режим под ring 0 для гипервизора, который неофициально называют ring -1.

Unix: разделение времени на доступном оборудовании

Уход из проекта Multics оставил Кена Томпсона в Bell Labs без системы, которую он хотел использовать. В 1969 году он начал разработку гораздо более компактной системы на списанном PDP-7. Первое руководство Unix Programmer's Manual датировано ноябрем 1971 года; к этому моменту работа была перенесена на PDP-11. В 1973 году Томпсон и Деннис Ритчи переписали ядро на языке C, чтобы систему можно было переносить на новое оборудование без необходимости переписывать её вручную.

Именно поэтому вы работаете в системе, являющейся потомком Unix, а не Multics. Multics требовала оборудования, созданного специально для неё. Unix работала на всём, что было дешевым и доступным, и это оказалось решающим фактором.

Статья "The UNIX Time-Sharing System", написанная Ритчи и Томпсоном, была опубликована в Communications of the ACM в июле 1974 года. В ней описан ваш VPS: процессы, единая иерархическая файловая система, файлы как простые потоки байтов, fork, пользователи и группы с битами прав доступа, а также командная оболочка (shell), которая является обычной программой, а не частью ядра. Пятьдесят два года спустя этот интерфейс был расширен, но ни разу не был заменён.

Действительно ли на мейнфреймах работали виртуальные машины в 1972 году?

Да, и это та часть истории, которую многие упускают из виду. Пока в MIT создавали Multics, Кембриджский научный центр IBM решал ту же задачу с другого конца. Вместо того чтобы заставлять одну операционную систему обслуживать множество пользователей, Роберт Криси и Лес Комо создали управляющую программу, которая предоставляла каждому пользователю полноценный симулированный компьютер. CP-40 была запущена в эксплуатацию в январе 1967 года. Каждый пользователь получал виртуальную System/360 и запускал внутри неё небольшую однопользовательскую операционную систему CMS.

В 1968 году CP-40 превратилась в CP-67 для архитектуры System/360-67, а 2 августа 1972 года IBM анонсировала VM/370. Это был коммерческий гипервизор, который продавался клиентам пятьдесят четыре года назад. Управляющая программа мультиплексировала реальное оборудование, а гостевые операционные системы работали без модификаций внутри виртуальных машин, «полагая», что они владеют всем оборудованием целиком.

Теоретическое обоснование появилось два года спустя, в том же выпуске Communications of the ACM за июль 1974 года, где была опубликована статья о Unix. В работе Джеральда Попека и Роберта Голдберга «Формальные требования к виртуализируемым архитектурам третьего поколения» были изложены условия, которым должен соответствовать процессор для возможности виртуализации. Основное правило кратко: каждая инструкция, способная считывать или изменять состояние машины, должна вызывать прерывание (trap), если гостевая система выполняет её вне режима ядра. В этот момент гипервизор перехватывает управление и отвечает, предоставляя гостевой системе её собственную версию состояния. Этот метод называется «перехват и эмуляция» (trap and emulate). Аппаратное обеспечение IBM следовало этому правилу.

Почему мини-ЭВМ разрушили модель

Компания DEC представила PDP-8 22 марта 1965 года по цене около 18,000 долларов в ценах 1965 года. Это была первая мини-ЭВМ стоимостью менее 20,000 долларов, и впоследствии было продано более 50,000 таких устройств. Затем микропроцессоры вновь снизили цену. Как только отдел смог позволить себе собственную машину, а позже — и отдельный человек, совместное использование одного центрального компьютера стало выглядеть как решенная проблема, не требующая дальнейших усилий. В 1980-х и 1990-х годах вычисления переместились на рабочие столы и в стойки с небольшими x86 серверами.

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

Почему виртуализация x86 была такой сложной задачей?

Архитектура x86 нарушала правило Попека и Голдберга. На 9-м симпозиуме USENIX по безопасности в августе 2000 года Джон Скотт Робин и Синтия Ирвин проанализировали набор инструкций Pentium и обнаружили 17 инструкций, которые считывают или изменяют привилегированное состояние, не вызывая исключений при выполнении в пользовательском режиме. popf — стандартный пример такой инструкции. Если запустить её в пользовательском режиме, процессор просто игнорирует биты, которые программе запрещено изменять, вместо того чтобы генерировать прерывание. В результате гипервизор, построенный на методе «перехват и эмуляция» (trap and emulate), не узнает о попытке гостевой системы выполнить недопустимое действие.

До того как аппаратное обеспечение было исправлено, появилось два решения. Компания VMware, основанная в 1998 году на базе исследований Disco в Стэнфорде, анализировала код гостевого ядра и переписывала проблемные инструкции перед их выполнением. Этот метод получил название бинарной трансляции. Проект Xen из Кембриджской компьютерной лаборатории пошел другим путем и изменил саму гостевую систему. В статье «Xen and the Art of Virtualization», представленной на SOSP в октябре 2003 года, была описана паравиртуализация: модифицированное гостевое ядро намеренно вызывает гипервизор вместо выполнения инструкций, которые гипервизор не может перехватить.

Позже аппаратное обеспечение было доработано — так же, как это сделала IBM в 1960-х годах. 14 ноября 2005 года Intel выпустила технологию VT-x для двух моделей Pentium 4, а в мае 2006 года AMD представила AMD-V. Обе технологии добавляют процессорный режим, находящийся «ниже» уровня гостевого ядра. Благодаря этому гостевая система выполняет свое ядро на полной скорости, в то время как гипервизор сохраняет контроль над событиями, которые он запрашивает. Это позволило сделать гипервизор достаточно компактным для работы внутри обычной операционной системы. Именно это реализовал Ави Кивити в проекте KVM в компании Qumranet: он превратил само ядро Linux в гипервизор. KVM был включен в состав Linux 2.6.20, выпущенного в феврале 2007 года, и сегодня на нем работает значительная часть VPS-хостингов.

Происхождение названия VPS

В начале 2000-х годов сошлись два направления развития. Первое — это полноценная виртуальная машина на архитектуре x86, гостевая система которой загружает собственное ядро. Второе — виртуализация на уровне операционной системы: единое общее ядро Linux, разделенное на изолированные окружения, каждое из которых имеет своего пользователя root и собственную таблицу процессов. Linux-VServer и Virtuozzo от компании SWsoft появились в 2001 году, а в 2005 году SWsoft выпустила часть кода Virtuozzo как проект с открытым исходным кодом OpenVZ. Термин «virtual private server» пришел именно из этой ветки развития, возникнув по аналогии с virtual private network.

Компания Amazon превратила аренду мощностей в API-вызов. Сервис S3 был запущен 14 марта 2006 года, а 25 августа 2006 года EC2 открылся в режиме ограниченного публичного бета-тестирования с одним типом инстанса, работающим на гипервизоре Xen. Покупка вычислительных ресурсов перестала быть договором с сервисным бюро и стала запросом, который выполняется за минуту.

Оба направления существуют до сих пор, и этот выбор определяет возможности арендуемого сервера. VPS на базе KVM загружает собственное ядро, поэтому вы можете загружать модули ядра и даже запускать гипервизор внутри вашего VPS. Тариф на основе контейнеров использует общее ядро хоста и не поддерживает такие операции. За одной строкой на странице с ценами стоят шестьдесят лет истории, поэтому стоит разобраться, чем отличаются VPS, VM и VPC, прежде чем делать выбор.

Что изменилось при переходе от мейнфреймов к VPS, а что осталось прежним

Изменились четыре вещи. Машина больше не находится в вашем здании. Терминал теперь — это программа, а не предмет мебели. Арендуемая вами единица — это полноценный компьютер с собственным ядром, а не учетная запись в чужой операционной системе. Цена упала настолько, что покупка стала обычной оплатой картой, а не процессом закупок.

Механизм не изменился вовсе.

  • Ваша ssh-сессия — это терминал с разделением времени. Вы получаете логин и shell, а планировщик решает, когда ваш процесс будет выполняться в следующий раз.
  • Изоляция по-прежнему обеспечивается на аппаратном уровне. MMU и уровни привилегий процессора выполняют ту же работу, которая требовалась для CP-40 в 1967 году.
  • Вам по-прежнему выставляют счет за долю ресурсов машины пропорционально времени работы, точно так же, как сервисные бюро брали плату за часы подключения.
  • Вы по-прежнему ощущаете присутствие других арендаторов. Когда хост переподписан, ваш гость ожидает физический CPU, и Linux сообщает об этом ожидании как о времени кражи CPU из-за шумного соседа.

Этот последний пункт — честное резюме всей истории. Совместное использование машины — это сделка. В 1961 году она была принята, потому что компьютер стоил дороже, чем люди, а в 2026 году она принята, потому что сервер, работающий на десять процентов своей мощности, — это выброшенные деньги. Если вы предпочитаете оказаться на стороне оператора в этой сделке, запуск Proxmox на собственном оборудовании передает вам гипервизор вместе со всеми проблемами оператора.

Помните о соотношении. CTSS обслуживала четырех пользователей на машине, которая стоила миллионы долларов 1961 года и занимала целую комнату. Ваш VPS за несколько долларов в месяц в 2026 году — это гораздо более мощный компьютер, чем тот, который нормировала команда Корбато, и он находится в вашем полном распоряжении. Причина, по которой вы вообще можете его арендовать, заключается в шестидесятипятилетней идее, которая наконец встретилась с дешевым оборудованием. Если вы решаете, что на нем разместить, начните с того, что на самом деле дает вам VPS, а затем изучите, что люди обычно на нем запускают.

FAQ

Какая система была первой системой с разделением времени?

CTSS (Compatible Time-Sharing System), созданная группой Фернандо Корбато в Вычислительном центре MIT. Впервые она была продемонстрирована в ноябре 1961 года на IBM 709 и обслуживала четырех пользователей, каждый из которых выгружался на отдельный накопитель на магнитной ленте. Первой службой разделения времени для целого сообщества стала Dartmouth Time-Sharing System: 1 мая 1964 года Джон Кемени и студент-программист одновременно запустили программы на BASIC с двух терминалов, и оба получили корректные ответы.

Действительно ли виртуальные машины были изобретены в 1960-х годах?

Да. Кембриджский научный центр IBM запустил CP-40 в эксплуатацию в январе 1967 года, предоставляя каждому пользователю полноценную виртуальную System/360 с работающей внутри операционной системой CMS. В 1968 году последовала CP-67 на базе System/360-67, а 2 августа 1972 года IBM анонсировала VM/370. Это были настоящие гипервизоры, запускавшие немодифицированные гостевые операционные системы и продававшиеся коммерчески за десятилетия до того, как аппаратное обеспечение x86 смогло делать то же самое.

Почему архитектуру x86 было сложно виртуализировать, в отличие от мейнфреймов?

Правило Попека и Голдберга 1974 года гласит: каждая инструкция, которая может прочитать или изменить состояние машины, должна вызывать прерывание (trap), если гостевая система выполняет её вне режима ядра. Архитектура x86 нарушала это правило. Робин и Ирвин насчитали семнадцать инструкций Pentium, которые в пользовательском режиме завершаются без вывода ошибок вместо вызова прерывания, поэтому классический гипервизор с механизмом trap-and-emulate их не видит; popf — типичный пример такой инструкции. VMware обходила эту проблему с помощью бинарной трансляции, а Xen — с помощью паравиртуализации, пока в ноябре 2005 года Intel VT-x и в мае 2006 года AMD-V не добавили аппаратный режим для гипервизора.

Аренда VPS — это то же самое, что учетная запись в системе с разделением времени?

Модель оплаты и проблема изоляции идентичны. Разница заключается в единице предоставления ресурсов. Пользователь системы с разделением времени получал учетную запись в операционной системе, общей для всех, поэтому администратором был сотрудник вычислительного центра. KVM VPS предоставляет виртуальную машину с собственным ядром и собственной учетной записью root, поэтому администратором являетесь вы. VPS на базе контейнеров занимает промежуточное положение, так как использует общее ядро хоста, при этом предоставляя права root внутри вашей собственной среды.

#history#computing#virtualization#mainframe#vps