<html><head>
      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
   <title>1.3&nbsp;A Note for Virgo Nano Users</title><link rel="stylesheet" href="css/stylesheet.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.74.0"><link rel="home" href="index.html" title="Virgo User Guide"><link rel="up" href="ch01.html" title="1.&nbsp;Introduction"><link rel="prev" href="ch01s02.html" title="1.2&nbsp;A Note for Virgo Jetty Server Users"><link rel="next" href="ch02.html" title="2.&nbsp;Concepts"><!--Begin Google Analytics code--><script type="text/javascript">
			var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
			document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
		</script><script type="text/javascript">
			var pageTracker = _gat._getTracker("UA-2728886-3");
			pageTracker._setDomainName("none");
			pageTracker._setAllowLinker(true);
			pageTracker._trackPageview();
		</script><!--End Google Analytics code--></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">1.3&nbsp;A Note for Virgo Nano Users</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch01s02.html">Prev</a>&nbsp;</td><th width="60%" align="center">1.&nbsp;Introduction</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="ch02.html">Next</a></td></tr></table><hr></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e112"></a>1.3&nbsp;A Note for Virgo Nano Users</h2></div></div></div><p>
			Virgo Nano is a bit different than VK and VTS.
			It is the smallest Virgo offering and takes performance to its limits, almost instantly booting up.
			Virgo Nano users will find a number of sections in this guide useful but sections that refer to
			<span class="emphasis"><em>plans, PARs and configuration deployment, regions, application scoping and libraries support</em></span>
			are NOT relevant for Virgo Nano or VN and should be ignored.
			This Virgo distribution relies on p2 for its provisioning, therefore is bound to p2 concepts such as <span class="emphasis"><em>p2 features and update sites</em></span>.
			Note also that Virgo Nano includes Gemini.Web as its default web container implementation and uses its default configuration.
		</p></div><!--Begin LoopFuse code--><script src="http://loopfuse.net/webrecorder/js/listen.js" type="text/javascript"></script><script type="text/javascript">
			_lf_cid = "LF_48be82fa";
			_lf_remora();
		</script><!--End LoopFuse code--><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch01s02.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="ch01.html">Up</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="ch02.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">1.2&nbsp;A Note for Virgo Jetty Server Users&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">&nbsp;2.&nbsp;Concepts</td></tr></table></div></body></html>