1. A non-volatile memory device comprising: a plurality of memory cells, wherein a read only segment of a plurality of memory cells stores (a) code for a micro-operating system for running a virtual engine; (b) code for the virtual engine that provides a virtual environment, wherein the virtual engine, rather than a host operating system, controls the virtual environment; (c) code for a virtual operating system that is executed in the virtual environment; and (d) code for a software application, wherein the code for the software application can be executed on different host system platforms in the virtual operating system while the virtual operating system executes in the virtual environment and wherein execution of the virtual engine code is split such that a first portion of the virtual engine code is executed by the host and a second portion is executed by the non-volatile memory device.