1. A method of transmitting data from an application running on a segmented virtual machine (VM), comprising: opening an interface to a logical channel between the segmented VM and an external data destination, wherein the segmented VM functions as a single VM comprising a core VM configured to perform VM internal execution functionality and a shell VM configured to communicate with the core VM and perform interactions with the external data source over the interface; writing portions of data to a core VM buffer associated with the core VM of the segmented VM in response to write requests from the application; transferring a first selected amount of data from the core VM buffer to a shell VM buffer associated with the shell VM of the segmented VM, wherein the first selected amount of data is lazily written from core VM such that the data is sent to the shell VM write buffer not necessarily as soon as it is available, and transferring the first selected amount of data is performed periodically or when the core VM buffer is full; transferring a second selected amount of data from the shell VM buffer to an interface buffer; and transmitting data from the interface buffer to the external data destination.