Первоначальный автор (ы) | Камуэль Гилядов, Константин Пересыпкин и Дмитрий Борток |
---|---|
Разработчик (и) | LiteStack, который был приобретен Rackspace |
Предварительный выпуск | 0.9.4 / 26 ноября, 2013; 6 лет назад (26.11.2013) |
Репозиторий | |
Написано на | C, сборке |
Операционная система | Linux |
Платформа | x86-64 |
Тип | Виртуализация приложений |
Лицензия | Лицензия Apache 2.0 |
Веб-сайт | zerovm.org |
ZeroVM - это технология с открытым исходным кодом облегченная виртуализация и песочница. Он виртуализирует один процесс с помощью платформы Google Native Client. Поскольку виртуализирован только один процесс (вместо полной операционной системы), накладные расходы на запуск составляют порядка 5 мс.
ZeroVM создает изолированную программную среду вокруг одного процесса с использованием технологии, основанной на Google Native Client (NaCl). Песочница гарантирует, что выполняемое приложение не может получить доступ к данным в операционной системе хоста, поэтому выполнение ненадежного кода безопасно. Программы, выполняемые в ZeroVM, сначала должны быть скомпилированы на платформе NaCl. ZeroVM может выполнять только код NaCl, скомпилированный для платформы x86-64, но не формат Portable Native Client (PNaCl).
Код, выполняемый в ZeroVM, не может вызывать обычные системные вызовы и изначально не может взаимодействовать с хост-средой. Все коммуникации с внешним миром происходят по каналам, о которых необходимо объявить перед запуском программы. Вне песочницы канал может быть подключен к локальному файлу, каналу или другому экземпляру ZeroVM. Внутри песочницы программа видит канал как файловый дескриптор . Изолированная программа может читать / записывать данные из / в канал, но не знает, где канал подключен на хосте.
Программы, скомпилированные для ZeroVM, могут дополнительно использовать библиотеку времени выполнения ZeroVM под названием ZRT. Эта библиотека предназначена для обеспечения программы средой POSIX. Это делается путем замены частей стандартной библиотеки C. В частности, ZRT заменяет функции ввода / вывода файла C, такие как fopen
и opendir
, версиями, которые работают с файловой системой в памяти. Корневая файловая система предоставляется в виде архива. Это позволяет программе «видеть» обычную среду Unix.
ZRT также заменяет функции даты и времени C, такие как time
, чтобы дать программам фиксированную и детерминированную среду. С фиксированными входами каждое выполнение гарантированно дает одинаковый результат. Даже не функциональные программы становятся детерминированными в этой ограниченной среде. Это упрощает отладку программ, поскольку их поведение исправлено.
ZeroVM интегрирован с Swift, компонентом распределенного хранилища объектов в OpenStack. Когда промежуточное ПО ZeroCloud установлено в Swift, клиент может сделать запрос к Swift, содержащий программу ZeroVM. Затем программа выполняется непосредственно на узлах хранения. Это означает, что программа имеет прямой доступ к данным.
ZeroVM был разработан LiteStack, израильским стартапом. Первый коммит в репозиторий zerovm
Git был добавлен в ноябре 2011 года. LiteStack был куплен Rackspace в октябре 2013 года. ZeroVM участвовала в Techstars Программа инкубатора Cloud 2013 и получила начальное финансирование в размере 500 000 долларов США. Первый саммит ZeroVM Design Summit прошел в январе 2014 года в Техасском университете в Сан-Антонио.