Ос как виртуальная машина: Страница не найдена | REG.RU

Содержание

1. Ос как виртуальная машина

Чтобы успешно
решать свои задачи, современный
пользователь может обойтись без
досконального знания аппаратного
устройства компьютера. Ему не обязательно
быть в курсе того, как функционируют
различные электронные блоки и
электромеханические узлы компьютера.
Пользователь может не знать даже системы
команд процессора. Программист также
имеет дело с высокоуровневыми функциями,
которые ему предоставляет операционная
система.

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

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

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

Ресурсы вычислительной
системы распределяются между процессами.
Процесс
(задача) – это единица вычислительной
работы, создаваемая ОС в результате
запуска программы на выполнение.
Программа – статический объект – файл
с кодами и данными на носителе. Процесс
– динамический объект, возникающий
после запуска программы на выполнение.

Управление ресурсами
включает решение общих, не зависящих
от типа ресурса задач:

— планирование
ресурса — то есть определение, какому
процессу, когда и в каком количестве
(если ресурс может выделяться частями)
следует выделить данный ресурс;

— удовлетворение
запросов на ресурсы;

— отслеживание
состояния и учет использования ресурса
— то есть поддержание оперативной
информации о том, занят или свободен
ресурс и какая доля ресурса уже
распределена;

— разрешение
конфликтов между процессами.

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

Сложность задачи
организации эффективного использования
ресурсов определяется случайным
характером возникновения запросов на
потребление ресурсов. В мультипрограммной
системе создаются очереди заявок от
процессов к разделяемым ресурсам. ОС
организует обслуживание этих очередей
по различным алгоритмам.

Управление ресурсами
составляет важную часть функций любой
операционной системы, в особенности
мультипрограммной. В отличие от функций
расширенной машины большинство функций
управления ресурсами выполняются
операционной системой автоматически
и программисту недоступны.

Типы виртуальных машин | Smart Office

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

Зачем нужна виртуальная машина

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

Это может быть необходимо в самых разных ситуациях:

  1. Облачные сервисы. Используя сервер с мощным аппаратным обеспечением и программы виртуализации можно распределить доступ к ресурсам сервера и даже продавать их пользователям. Такой сервис может предоставить пользователю из любой точки страны или даже мира доступ к ВМ, которая будет иметь необходимую мощность и работать на подходящей для решения тех или иных задач операционной системе.
  2. ВМ для программирования. Некоторые языки программирования предполагают подготовку кода с последующей компиляцией в специальный файл, исполнить который можно только с использованием подходящей виртуальной машины.
  3. Безопасность. Запуск любого приложения через ВМ можно сравнить с запуском этого же ПО, но на совсем иной платформе, другом ПК. Даже при наличии каких-то проблем с безопасностью пользователь не будет подвергаться никакой угрозе. Если хакер получит доступ к компьютеру через имеющуюся уязвимость, он буквально будет заперт внутри этой виртуальной оболочки, потому не будет иметь даже теоретической возможности навредить данным и программам за ее пределами, то есть на реальном ПК, за которым сидит пользователь.
  4. Дистрибуция программного обеспечения. Чтобы запустить некоторое серверное ПО, требуется прописывать дополнительные настройки в разных конфигурационных файлах, а также делать новых пользователей, выдавать им определенный уровень доступа и т.д. Все это требует существенных временных затрат, которых можно избежать с помощью ВМ. В ВМ можно в любое время запустить программное обеспечение в подходящей среде и не тратить зря ресурсы.

Из истории

Сам термин «виртуальная машина» был впервые озвучен более 50-ти лет назад — в конце шестидесятых. В те времена он использовался в сфере работы с крупными ЭВМ, предназначенными для сложных вычислений. В тех условиях ВМ использовались для разделения аппаратных мощностей компьютера и выделения части этой мощности каждому пользователю для выполнения различных операций.

Сегодня задачи и цели использования ВМ изменились, однако принцип остался прежним.

Принцип работы

Если говорить о принципе работы ВМ, необходимо рассматривать ее с двух разных сторон: со стороны пользователя и изнутри. Если смотреть на ВМ глазами обычного пользователя, то ничего сложного в ней нет. Как это работает? Человек просто запускает на компьютере программу в отдельном окне, где и происходит вся работа.

Однако с практической точки зрения все намного сложнее, так как ВМ имеет свои собственные, хоть и эмулированные аппаратные ресурсы — жесткий диск, оперативную память и т.д. По сути эти виртуальные аппаратные мощности являются вполне реальными, так как они выделяются настоящим компьютером, который просто делится своей мощностью.

ОС компьютера не распознает виртуальности аппаратного обеспечения — она видит ресурсы, новое оборудование, которое и отображается в свойствах системы. Более того, точно так же эти ресурсы видят все установленные на компьютер приложения, которые могут взаимодействовать с ними, как с вполне реальными ресурсами. При этом ВМ сохраняет свою полную изолированность от настоящего ПК, несмотря на наличие доступа к оборудованию.

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

Что касается инструмента для создания ВМ, то это простое приложение, которое можно установить под любую популярную ОС. Операционная система, внутри которой создается виртуальное пространство, называется хозяйской.

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

При использовании ВМ пользователь волен установить на нее выбранную ОС, которая будет называться гостевой. Одна из важнейших характеристик ВМ — список поддерживаемых гостевых ОС. Самые мощные современные ВМ обеспечивают поддержку около десяти популярных версий ОС, включая не только Windows, но также Linux и MacOS.

При работе с ВМ у пользователя может возникнуть стойкое ощущение, что он работает с самым обыкновенным ПК, у которого есть собственное аппаратное обеспечение, включая процессор, память и т.д.

Однако в реальности ВМ не имеет доступа к ресурсам настоящего ПК. Работа с компьютером возлагается на модуль и драйвер ВМ.

Если рассмотреть архитектуру ВМ, то она будет выглядеть следующим образом:

  • хостовая ОС и монитор ВМ разделяют права на управление аппаратными ресурсами ПК, ресурсы между программами распределяются ОС;
  • монитор контролирует распределение ресурсов между запущенными ВМ, из-за чего у пользователя может возникнуть ощущение, что он работает с реальными аппаратными ресурсами;
  • гостевые ОС управляют собственными приложениями, используя выделенные на них мощности ПК.

Типы и отличия VM

Существует три типа виртуальных машин, которые отличаются по «глубине» виртуализации.

Полная

Виртуализация может считаться полной в случае, если ВМ полностью копирует реальный ПК со всеми элементами и оборудованием. Обычно такие ВМ используются службами безопасности, которым необходимо в изолированных условиях использовать виртуальную ОС, к примеру, при работе с опасными приложениями и вредоносными программами. Естественно, в условиях виртуальной машины ни один вирус не может навредить реальному компьютеру и хозяйской ОС.

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

Однако полная виртуализация не является унифицированным решением для всех, к примеру, не подходит для облака.

Виртуализация с доступом к аппаратным ресурсам

Этот вид виртуальных машин дает ОС возможность обращаться к аппаратным ресурсам компьютера напрямую, без эмулирования.

Такая методика виртуализации используется многочисленными облачными решениями, к примеру, Xen, Virtualbox и другими. Продукты применяются для построения надежных облачных сервисов, позволяющих запускать виртуальные машины для клиентов. Их основное преимущество — максимальная скорость. Запросы гостевых ОС выполняются напрямую на аппаратных мощностях без затрат ресурсов на эмуляцию.

Уровень ОС

Самый распространенный облачный метод виртуализации, который часто используется для запуска программного обеспечения в облаке и для дистрибуции серверных программ. Методика не предполагает жесткой виртуализации. Ядро хостовой ОС выделяет несколько независимых пространств на уровне самой хостовой ОС и пускает в эти области другие приложения на выполнение. Каждая программа при этом получает собственную изолированную среду.

Эта методика применяется в контейнеризации приложений. Она хорошо известна в узком кругу благодаря таким решениям, как OpenVZ, jails и Docker, которые стали важной причиной широкого распространения виртуальных машин.

Уровень ОС в виртуализации дает возможность контролировать поведение гостевых контейнеров, определять политику доступа гостей к ресурсам и данным хостовой ОС.

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

Как выбрать виртуальную машину?

Рассмотрев вопрос, какие есть виртуальные машины, закономерно возникает следующий: какую из них выбрать? Однако нельзя выделить какой-то один тип виртуализации и сказать, что такая виртуальная машина лучше других.

Все методики виртуализации используются для различных целей:

  1. Полная. Применяется безопасниками и тестировщиками.
  2. Частичная с доступом к железу. Подходит для администраторов и управленцев, которые планируют строить собственные облачные решения.
  3. Контейнеризация. Наиболее распространенный тип ВМ, который подходит всем пользователям, участвующим в разработке крупных систем.

Виртуализация уровня ОС так популярна, что сегодня умение работать в данной среде стало важным навыком программиста, который обязательно учитывается при найме на работу в крупные компании, где предстоит взаимодействовать с серверным ПО.

Контейнеры

и виртуальные машины (ВМ): в чем разница?

Все, что вам нужно знать, чтобы разобраться в спорах о контейнерах и виртуальных машинах и о том, почему популярность контейнеров растет.

Если вы только недавно начали знакомиться с инструментами виртуализации, вам может быть интересно, в чем разница между технологиями контейнеров и виртуальных машин (ВМ). Контейнеры стали доминирующей силой в облачной разработке, поэтому важно понимать, чем они являются, а чем нет. Хотя контейнеры и виртуальные машины имеют разные и уникальные характеристики, они похожи тем, что повышают эффективность ИТ, обеспечивают переносимость приложений и улучшают DevOps и жизненный цикл разработки программного обеспечения.

Как работает виртуализация

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

Используемое программное обеспечение называется гипервизор – небольшой уровень, позволяющий нескольким операционным системам работать параллельно друг с другом, используя одни и те же физические вычислительные ресурсы. Когда гипервизор используется на физическом компьютере или сервере (также известном как сервер без операционной системы) в центре обработки данных, он позволяет физическому компьютеру отделить свою операционную систему и приложения от своего оборудования. Затем он может разделиться на несколько независимых «виртуальных машин».

В следующем видеоролике более подробно рассматривается технология виртуализации:

Что такое виртуальные машины?

Виртуальные машины (ВМ) — это технология для создания виртуализированных вычислительных сред. Они существуют уже довольно давно и считаются основой облачных вычислений первого поколения.

Проще говоря, виртуальная машина – это эмуляция физического компьютера. Виртуальные машины позволяют командам запускать несколько компьютеров с несколькими операционными системами на одном компьютере. Виртуальные машины взаимодействуют с физическими компьютерами с помощью облегченных программных уровней, называемых гипервизорами. Гипервизоры могут отделять виртуальные машины друг от друга и распределять между ними процессоры, память и хранилище.

ВМ также называются виртуальными серверами, экземплярами виртуальных серверов и виртуальными частными серверами.

Что такое контейнеры?

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

Вместо того, чтобы запускать всю виртуальную машину, контейнеризация объединяет все необходимое для запуска одного приложения или микросервиса (вместе с библиотеками среды выполнения, которые им необходимы). Контейнер включает в себя весь код, его зависимости и даже саму операционную систему. Это позволяет запускать приложения практически где угодно — на настольном компьютере, в традиционной ИТ-инфраструктуре или в облаке.

Контейнеры используют форму виртуализации операционной системы (ОС). Проще говоря, они используют функции основной операционной системы для изоляции процессов и контроля доступа процессов к процессорам, памяти и рабочему пространству.

Контейнеры существуют уже несколько десятилетий, но все согласны с тем, что современная эра контейнеров началась в 2013 году с появлением Docker, платформы с открытым исходным кодом для создания, развертывания и управления контейнерными приложениями. Узнайте больше о Docker, контейнерах Docker, Dockerfiles (файле сборки образа контейнера) и о том, как экосистема развивалась с технологией контейнеров за последнее десятилетие.

Контейнеры и виртуальные машины: в чем разница?

В традиционной виртуализации гипервизор виртуализирует физическое оборудование. В результате каждая виртуальная машина содержит гостевую ОС, виртуальную копию оборудования, необходимого ОС для работы, а также приложение и связанные с ним библиотеки и зависимости. ВМ с разными операционными системами можно запускать на одном физическом сервере. Например, виртуальная машина VMware может работать рядом с виртуальной машиной Linux, которая работает рядом с виртуальной машиной Microsoft и т. д.

Вместо виртуализации базового оборудования контейнеры виртуализируют операционную систему (обычно Linux или Windows), поэтому каждый отдельный контейнер содержит только приложение, его библиотеки и зависимости. Контейнеры маленькие, быстрые и портативные, потому что, в отличие от виртуальной машины, контейнеры не должны включать гостевую ОС в каждом экземпляре, а вместо этого могут просто использовать функции и ресурсы хост-ОС.

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

В следующем видео Найджел Браун подробно рассматривает, чем контейнеры отличаются от ВМ:

Почему именно контейнеры?

Хотя причин для использования виртуальных машин по-прежнему много, контейнеры обеспечивают уровень гибкости и переносимости, идеально подходящий для многооблачного мира. Когда разработчики создают новые приложения, они могут не знать всех мест, где их нужно будет развернуть. Сегодня организация может запускать приложение в своем частном облаке, но завтра ей может потребоваться развернуть его в общедоступном облаке от другого поставщика. Контейнеризация приложений обеспечивает командам необходимую гибкость для работы с многочисленными программными средами современных ИТ.

Контейнеры также идеально подходят для конвейеров автоматизации и DevOps, включая реализацию непрерывной интеграции и непрерывного развертывания (CI/CD).

Управление контейнерами для многооблачной среды

Несмотря на многочисленные преимущества контейнеров и множество вариантов использования, в которых они являются лучшим вариантом, у них есть свои проблемы. Крупные корпоративные приложения могут включать в себя огромное количество контейнеров, а управление контейнерами создает серьезные проблемы для команд. Как получить представление о том, что и где выполняется? Как вы решаете такие важные вопросы, как безопасность и соответствие требованиям? Как вы последовательно управляете своими приложениями?

Большинство предприятий обращаются к решениям с открытым исходным кодом, таким как Kubernetes, и Kubernetes уже запускает контейнеры в большинстве ситуаций для многих организаций.

Чтобы узнать о решении корпоративного уровня для Kubernetes, прочитайте о IBM Cloud Kubernetes Service.

Виртуальная машина — Javatpoint

следующий →
← предыдущая

Виртуальная машина

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

История виртуальной машины

  • Системные виртуальные машины, в частности, реализованы в CTSS (совместимая система разделения времени). Разделение времени позволяло более чем одному пользователю одновременно использовать компьютер. Все показанные программы имеют полный доступ к машине, но одна программа может работать только одновременно. В частности, исследовательская система IBM превратила его в виртуальные машины. 44X/M44 используют частичную виртуализацию, а SIMMON и CP-40 используют полную виртуализацию. Вот несколько примеров гипервизоров.
  • Первой архитектурой виртуальной машины была CMS/CP-67 . Важным отличием было использование множества виртуальных машин на одном хосте для разделения времени, как в CP-40 и 44X/M44.
  • Эмуляторы переходят на систему 360/IBM в 1963 году с аппаратной эмуляцией предыдущих систем для совместимости.
  • Первоначально виртуальные машины процессов разрабатывались как абстрактные среды для любого промежуточного языка, применяемого компиляторами в качестве промежуточного представления программы. Машина О-кода была примером начала 1966. Машина O-кода представляла собой виртуальную машину, которая запускает объектный код (O-код), расширенный внешним интерфейсом компилятора BCPL. Эта абстракция позволяла легко переносить компиляторы на любую новую архитектуру.
  • Язык Эйлера применил тот же дизайн с промежуточным языком, называемым переносимым (P). Он был продвинут Паскалем в 1970 году, особенно в системе Pascal-P и компиляторе Pascal-S. Они были известны как p-код , а машина с p-кодом была получена в результате.
  • Это повлияло, и виртуальные машины в этом смысле часто назывались машинами p-кода. Кроме того, p-код Pascal напрямую запускался интерпретатором, который используется для реализации VM.
  • Другой пример — СНОБОЛ (1967). Он был указан в SIL ( язык реализации SNOBOL ), который является языком ассемблера для VM. Он был предназначен для физических машин путем переноса на собственный ассемблер макроассемблером.
  • Process VM был известным подходом к внедрению программного обеспечения для микрокомпьютеров, содержащего приключенческие игры и игры Tiny BASIC. Это может быть сделано некоторыми реализациями, такими как Pyramid 2000, для любого универсального механизма, такого как z-machine Infocom.
  • Значительные улучшения, проиллюстрированные в реализации Smalltalk-80 (особенно реализации Schiffmann/Deutsch). Они могут продвигать компиляцию JIT (Just In Time) в качестве подхода к реализации, который применяет процесс VM. Примечательно, что более поздние виртуальные машины Smalltalk были Strongtalk, Squeak Virtual Machine и VisualWorks.
  • Дополнительный язык породил множество инноваций в области виртуальных машин, которые стали пионерами сборки мусора поколений и адаптивной оптимизации. Коммерчески эти методы были успешно одобрены в виртуальной машине HostSpot Java в 1999.
  • Другие новшества включают виртуальную машину на основе регистров, соответствующую различному базовому оборудованию, вместо виртуальной машины на основе стека, которая ближе для любого языка программирования. Впервые он был разработан Dis VM в 1995 году для языка Limbo. OpenJ9 является заменой виртуальной машины HotSpot Java внутри OpenJDK. Кроме того, это проект с открытым исходным кодом, требующий хорошего запуска и меньшего потребления ресурсов по сравнению с HotSpot.

Типы виртуальных машин

Доступны различные типы виртуальных машин с различными функциями:

  • Системные виртуальные машины: Эти типы виртуальных машин также называются полными виртуальными машинами . Это облегчает замену реальной машины. Эти виртуальные машины предлагают функциональные возможности, необходимые для выполнения всей операционной системы (ОС). Гипервизор применяет собственное выполнение для управления и совместного использования оборудования. Это позволяет использовать более одной среды, которые отделены друг от друга, но существуют на одной и той же физической машине. Новый гипервизор применяет в первую очередь аппаратное обеспечение для виртуализации и виртуализацию с аппаратной поддержкой от различных центральных процессоров.
  • Виртуальные машины процесса: Эти виртуальные машины созданы для выполнения нескольких программ компьютера в независимой от платформы среде.

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

Что такое системные виртуальные машины?

Первоначально виртуальная машина была описана Голдбергом и Попеком как « изолированная и эффективная копия реальной компьютерной машины ». Последнее использование объединяет виртуальные машины, которые не имеют прямого отношения к реальному оборудованию. Как правило, реальное или физическое оборудование (выполняющее виртуальную машину) называется « хост », а виртуальная машина, скопированная на машину, обычно называется « гость ».

Работа системных виртуальных машин

Хост может эмулировать различные гостевые системы, каждая из которых может эмулировать разные аппаратные платформы и операционные системы.

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

CMS/CP от IBM, первые системы, допускающие полную виртуализацию, оборудованные для совместного использования, предоставляя всем пользователям индивидуальную ОС (операционную систему). Системная виртуальная машина назначила пользователя для написания привилегированных инструкций внутри кода. Этот тип метода имеет некоторые преимущества, такие как включение устройств вывода/ввода, не разрешенных ни одной стандартной системой.

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

Это особенно полезно для различных страниц, доступных только для чтения, таких как страницы, содержащие сегменты кода. Это случай, когда несколько виртуальных машин выполняют одинаковые или одинаковые 9Компоненты промежуточного программного обеспечения 0066, веб-серверы, программные библиотеки, программное обеспечение и т. д. Гостевая ОС не требует совместимости с каким-либо аппаратным обеспечением хоста, что позволяет запускать разные ОС на аналогичном компьютере (например, на предыдущей версии операционной системы). , Linux или Windows) для поддержки будущего программного обеспечения.

Использование системных виртуальных машин

Виртуальная машина может использоваться для поддержки изолированной гостевой ОС. Он популярен среди встраиваемых систем. Обычное использование может заключаться в одновременном запуске операционной системы реального времени с предпочтительной сложной операционной системой, такой как Windows или Linux.

Другое использование может быть для непроверенного и нового программного обеспечения, которое все еще находится в стадии разработки, поэтому оно выполняется в песочнице. У виртуальных машин есть и другие аспекты разработки ОС. Он может содержать более быстрые перезагрузки и развитый доступ для отладки.
Для консолидации сервера часто используется более одной виртуальной машины с гостевой ОС.

Что такое процесс виртуальных машин?

Виртуальная машина процесса иногда называется MRE (управление средой выполнения) или виртуальной машиной приложения. Он работает как общее приложение в основной операционной системе и поддерживает отдельный процесс. Они создаются, если этот процесс начинается, и уничтожаются, если он завершается.

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

Виртуальная машина процесса дает высокоуровневую абстракцию языка программирования высокого уровня. Процесс виртуальной машины может быть реализован с использованием интерпретатора. Его производительность, пропорциональная языку программирования (компилированному), может быть достигнута с помощью компиляции точно в срок.

Виртуальная машина процесса прославилась языком программирования Java . Это может быть реализовано с помощью виртуальной машины Java. Другой пример включает в себя . NET Framework и Виртуальная машина Parrot , которая выполняется на виртуальной машине, известной как Common Language Runtime . Каждый из них может служить уровнем абстракции для компьютерного языка.

Виртуальная машина процесса имеет особый случай для тех систем, которые основаны на коммуникационных механизмах (гетерогенных потенциально) компьютерных кластеров. Эти типы виртуальных машин не включают в себя какой-либо отдельный процесс, хотя один процесс/физическую машину внутри кластера.

Эти кластеры созданы для смягчения задачи программирования сливающихся приложений, позволяя программистам сосредоточиться на алгоритмах, а не на механизмах связи, предоставляемых ОС и межсоединении.

Они не скрывают, что связь имеет место, и пытаются представить кластер как отдельную машину.

Эта система не предоставляет определенного языка программирования, в отличие от других типов виртуальных машин процессов, хотя они встроены в любой существующий язык. Такая любая система обычно облегчает привязку ко многим языкам (таким как FORTRAN и C).

Примерами являются MPI (интерфейс передачи сообщений) и PVM (параллельная виртуальная машина). Строго говоря, они не являются виртуальными машинами, потому что различные приложения, выполняющиеся сверху, по-прежнему имеют доступ ко всем службам ОС. Таким образом, они не ограничиваются моделью системы.

Полная виртуализация

Виртуальная машина влияет на аппаратное обеспечение, позволяя гостевой операционной системе выполняться отдельно при полной виртуализации. Он был разработан в 1966 с использованием IBM CP-67 и CP-40, которые являются предшественниками семейства виртуальных машин.

Некоторые из примеров, выходящих за рамки мейнфреймов, включают технологию Egenera vBlade, Win4Lin Pro, Win4BSD, Mac-on-Linux, Adeos, QEMU, VMware ESXi, VMware Server (также известный как GSX Server), VMware Workstation, Hyper-V, Virtual Сервер, Virtual PC, Oracle VM, Virtual Iron, VirtualBox, Parallels Desktop для Mac и Parallels Workstation.

Аппаратная виртуализация

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

Этот тип виртуализации был впервые определен в 1972 году на IBM System/370 . Он был введен для применения с VM/370. Первоначальная ОС виртуальной машины, предоставленная IBM, была официальным продуктом.

AMD и Intel предоставили дополнительное оборудование для поддержки виртуализации в 2006 и 2005 годах. В 2005 году Sun Microsystems (Oracle Corporation) включила аналогичные элементы в процессоры UltraSPARC серии T. Примеры платформы виртуализации, адаптированные к некоторому оборудованию, включают Parallels Workstation, VirtualBox, Oracle VM Server для SPARC, Parallels Desktop для Mac, Xen, Windows Virtual PC, Hyper-V, VMware Fusion, VMware Workstations и KVM.

В 2006 году была обнаружена поддержка 64- и 32-разрядного оборудования x86 первого поколения для повышения производительности программной виртуализации.

Виртуализация на уровне операционной системы

Физический сервер можно виртуализировать на уровне ОС при виртуализации на уровне операционной системы. Это позволяет более чем одному безопасному и изолированному виртуализированному серверу работать на отдельном физическом сервере.

Среда гостевой операционной системы использует тот же работающий экземпляр операционной системы, что и любая хост-система. Следовательно, аналогичное ядро ​​операционной системы используется для реализации гостевых сред. Кроме того, различные приложения, работающие в предоставленной гостевой среде, рассматривают ее как автономную систему.

Первоначальной реализацией были тюрьмы FreeBSD. Другой пример включает виртуальные учетные записи iCore, контейнеры Parallels Virtuozzo, разделы рабочей нагрузки AIX, LXC, Linux-Vserver, OpenVZ, контейнеры Solaris и Dockers.

Полная виртуализация возможна только при точном сочетании программных и аппаратных элементов. Например, полная виртуализация невозможна при использовании большинства систем IBM серии System/360 и ранних систем IBM System/360.

В 1972 году IBM включила аппаратную виртуальную память в серию System/370, которая не похожа на кольца Intel VT-x. Это облегчает гипервизору более высокий уровень привилегий для правильной обработки виртуальных машин.

Проблемы полной виртуализации

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

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

Хотя другие инструкции (которые могут проникнуть в виртуальную машину) не могут выполняться напрямую. Скорее их следует симулировать и заманивать в ловушку. Эти типы инструкций либо влияют на данные состояния, которые являются внешними по отношению к виртуальной машине, либо обращаются к ним.
Полная виртуализация очень успешна по некоторым из следующих причин:

  • Отделение пользователей друг от друга (или от управляющей программы)
  • Распределить одну компьютерную систему между несколькими пользователями
  • Имитация нового оборудования для повышения производительности, безопасности и надежности.

Преимущества VM

  • Виртуальная машина обеспечивает совместимость программного обеспечения с тем программным обеспечением, которое на ней выполняется. Следовательно, каждое программное обеспечение, указанное для виртуализированного хоста, также будет выполняться на виртуальной машине.
  • Обеспечивает изоляцию различных типов процессоров и операционных систем. Следовательно, процессорная ОС, работающая на одной виртуальной машине, не может изменить хост каких-либо других хост-систем и виртуальных машин.
    Imacros | Все права защищены © 2021