1. A method of providing a segmented virtual machine (VM) comprising: providing a core VM residing on a core VM device; and providing a shell VM residing on a shell VM device that is separate from the core VM device, the shell VM being associated with the core VM; wherein: the core VM is configured to perform VM internal execution functions and is configured to indirectly interact with an external environment via the shell VM; the shell VM is configured to communicate with the core VM and is configured to perform shell VM functions that are different from the VM internal execution functions performed by the core VM, the shell VM functions including direct interactions with the external environment; and the shell VM and the core VM reside on separate devices while cooperating to function as a single virtual machine.