Песочница против виртуализации - PullRequest
6 голосов
/ 12 сентября 2010

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

Большое спасибо, Саймон

Ответы [ 4 ]

7 голосов
/ 12 сентября 2010

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

Виртуализация памяти означает, что каждая программа может получить доступ к каждому адресу в 32- или 64-битном пространстве, даже если не так много физическогоRAM.

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

Эти два понятия, безусловно, связаны вобщая реализация виртуальной памяти.Однако это удобный артефакт реализации, поскольку аппаратная таблица страниц доступна только ядру.

Рассмотрим, как реализовать их отдельно, на компьютере с архитектурой x86: Вы можете изолировать память программ, используя таблицы страниц.без обмена на диск (песочница без виртуализации).В качестве альтернативы вы можете реализовать полную виртуальную память, но также предоставить доступ уровня приложений к таблице аппаратных страниц, чтобы они могли видеть все, что им нужно (виртуализация без песочницы).

3 голосов
/ 12 сентября 2010

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

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

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

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

Теперь третье понятие - это виртуализация.Который снова отделен от виртуальной памяти и песочнице.В то время как виртуальная память представляет собой механизм, который с точки зрения ОС обрабатывает песочницы друг от друга, виртуализация - это механизм, который изолирует операционные системы друг от друга.Пример программного обеспечения, которое делает это: Vmware , Parallels Desktop , Xen и виртуальная машина ядра .

1 голос
/ 12 сентября 2010

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

0 голосов
/ 12 сентября 2010

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

...