World Library  
Flag as Inappropriate
Email this Article

ZeroVM

Article Id: WHEBN0042483250
Reproduction Date:

Title: ZeroVM  
Author: World Heritage Encyclopedia
Language: English
Subject: Virtualization, Google Native Client, LynxSecure, Workload Partitions, Lmctfy
Collection:
Publisher: World Heritage Encyclopedia
Publication
Date:
 

ZeroVM

ZeroVM
Original author(s) Camuel Gilyadov, Constantine Peresypkin & Dmitri Bortok
Developer(s) LiteStack which was acquired by Rackspace
Preview release 0.9.4 / November 26, 2013 (2013-11-26)
Development status Active
Written in C, assembly
Operating system Linux
Platform x86-64
Type Application virtualization
License Apache License 2.0
Website .orgzerovm

ZeroVM is an open source light-weight virtualization and sandboxing technology. It virtualizes a single process using the Google Native Client platform. Since only a single process is virtualized (instead of a full operating system), the startup overhead is in the order of 5 ms.[1]

Sandboxing

ZeroVM creates a sandbox around a single process,[2] using technology based on Google Native Client (NaCl). The sandbox ensures that the application executed cannot access data in the host operating system, so it is safe to execute untrusted code. The programs executed in ZeroVM must first be cross-compiled to the NaCl platform. ZeroVM can only execute NaCl code compiled for the x86-64 platform, not the portable Native Client (PNaCl) format.

Code executed in ZeroVM cannot call normal system calls and initially cannot interact with the host environment. All communication with the outside world takes place over channels, which must be declared before the program starts. Outside the sandbox, a channel can be connected to a local file, to a pipe, or to another ZeroVM instance.[3] Inside the sandbox, the program sees the channel as a file descriptor. The sandboxed program can read/write data from/to the channel, but does not know where the channel is connected in the host.

Programs compiled for ZeroVM can optionally use the ZeroVM Runtime library called ZRT. This library aims to provide the program with a POSIX environment.[4] It does this by replacing parts of the C standard library. In particular, ZRT replaces C file input/output functions such as fopen and opendir with versions that operate on an in-memory filesystem. The root filesystem is provided as a tarball. This allows a program to "see" a normal Unix environment.

The ZRT also replaces C date and time functions such as time to give programs a fixed and deterministic environment. With fixed inputs, every execution is guaranteed to give the same result. Even non-functional programs become deterministic in this restricted environment.[5] This makes programs easier to debug since their behavior is fixed.

Integration with Swift

ZeroVM has been integrated with Swift, the distributed object storage component of OpenStack.[6] When the ZeroCloud middleware is installed into Swift, a client can make a request to Swift containing a ZeroVM program. The program is then executed directly on the storage nodes. This means that the program has direct access to the data.

History

ZeroVM was developed by LiteStack, an Israeli startup. The first commit in the zerovm Git repository was added in November 2011.[7] LiteStack was bought by Rackspace in October 2013.[1][8][9] ZeroVM participated in Techstars Cloud 2013 incubator program and got $500,000 in seed funding.[10][11] The first ZeroVM Design Summit was held in January 2014 at the University of Texas at San Antonio.[12]

See also

External links

  • Official website
  • GitHub page
  • Stable Ubuntu packages
  • Latest Ubuntu packages

References

  1. ^ a b
  2. ^
  3. ^
  4. ^
  5. ^
  6. ^
  7. ^
  8. ^
  9. ^
  10. ^
  11. ^
  12. ^
This article was sourced from Creative Commons Attribution-ShareAlike License; additional terms may apply. World Heritage Encyclopedia content is assembled from numerous content providers, Open Access Publishing, and in compliance with The Fair Access to Science and Technology Research Act (FASTR), Wikimedia Foundation, Inc., Public Library of Science, The Encyclopedia of Life, Open Book Publishers (OBP), PubMed, U.S. National Library of Medicine, National Center for Biotechnology Information, U.S. National Library of Medicine, National Institutes of Health (NIH), U.S. Department of Health & Human Services, and USA.gov, which sources content from all federal, state, local, tribal, and territorial government publication portals (.gov, .mil, .edu). Funding for USA.gov and content contributors is made possible from the U.S. Congress, E-Government Act of 2002.
 
Crowd sourced content that is contributed to World Heritage Encyclopedia is peer reviewed and edited by our editorial staff to ensure quality scholarly research articles.
 
By using this site, you agree to the Terms of Use and Privacy Policy. World Heritage Encyclopedia™ is a registered trademark of the World Public Library Association, a non-profit organization.
 


Copyright © World Library Foundation. All rights reserved. eBooks from Project Gutenberg are sponsored by the World Library Foundation,
a 501c(4) Member's Support Non-Profit Organization, and is NOT affiliated with any governmental agency or department.