Cloud computing implies application running on a shared networked machine. The machine is shared so that it can be utilized more cost effectively. For the machine to be shared the application must be sandboxed, which means it should not be able to adversely affect other applications. Virtualization, in which an application sees a virtual environment instead of a real one, enables sandboxing. Virtualization can be done at many levels.