2010-09-12 3 views
6

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

Большое спасибо, Simon

ответ

1

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

7

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

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

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

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

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

+0

Как мы можем сравнить эти два понятия с плагинами веб-браузера и конкретными веб-браузерами? Я считаю, что плагины браузера следуют различным эвристикам, чем VM и песочница для их памяти и доступа. – RBT

0

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

3

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

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

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

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

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

Смежные вопросы