Vx32 виртуальная среда расширение представляет собой виртуальную машину на уровне приложений реализована в виде обычной библиотеки пользовательского режима и предназначен для запуска родной x86 - код. Приложения могут связываться с Vx32 и использовать его для создания безопасных, независимых от ОС сред выполнения, в которых можно запускать ненадежные плагины или другие расширения, написанные на любом языке, который компилируется в код x86.
Разработчики) | Брайан Форд, Расс Кокс |
---|---|
Стабильный выпуск | 0,12 |
Операционная система | FreeBSD , Linux , Mac OS X |
Тип | Виртуальная машина уровня приложения |
Веб-сайт | http://pdos.csail.mit.edu/~baford/vm/ |
С точки зрения хост-процессора подключаемые модули, работающие под монитором виртуальной машины Vx32, запускаются в контексте самого процесса приложения, но библиотека Vx32 использует динамическую перекомпиляцию, чтобы предотвратить доступ к памяти «гостевого» кода подключаемого модуля или переход к инструкциям. за пределами обозначенной песочницы. Библиотека Vx32 перенаправляет любые системные вызовы, выполняемые подключаемым модулем, к самому приложению, а не к операционной системе хоста, тем самым предоставляя приложению исключительный контроль над API и средой безопасности, в которой выполняется код подключаемого модуля.
Таким образом, Vx32 предоставляет возможность расширения приложения, сравнимую по функциям с виртуальной машиной Java (JVM) или Common Language Runtime (CLR), но с меньшими накладными расходами и с возможностью запускать код, написанный на любом языке, безопасном или небезопасном. Основным недостатком Vx32 является то, что его труднее заставить работать на хост-процессорах, отличных от x86.
Критика
Есть некоторые недостатки, которые были предложены критиками Vx32:
- Vx32 тесно связан с набором инструкций IA-32 , что затрудняет использование на архитектурах, отличных от x86.
- Режим IA-32e (AMD64) не может использоваться гостями (хост все еще может работать в 64-битном режиме) из-за использования сегментации, которая присуща дизайну Vx32.
Внешние ссылки
- Виртуальная среда расширения Vx32
- Vx32: облегченная песочница на уровне пользователя на x86 - статья, представленная на USENIX 2008
- 9vx - перенос Plan 9 из Bell Labs на vx32.
- vx32 для Win32