Patent ID: 7949766

Claim:
An apparatus for offloading network, block and file functions from an operating system comprising: one or more processors each having one or more processor cores; one or more computer-readable volatile or non-volatile media storing two or more operating systems and an input/output networking stack, wherein when executed the two or more operating systems are hosted in one or more of the processor cores on the apparatus, and wherein when executed the two or more operating systems use operating system drivers to share the input/output networking stack, wherein the input/output networking stack comprises one or more instructions which when executed, cause: receiving a request for data transfer from any one of the two or more operating systems at one of a plurality of internal interfaces, wherein the plurality of internal interfaces comprise a network interface, a block storage interface, and a file system interface; wherein the input/output networking stack includes the network interface, the block storage interface, and the file system interface; wherein the network interface couples the input/output networking stack to networking functional elements that provide networking functions to the two or more operating systems; wherein the block storage interface mediates calls from the two or more operating systems to external storage systems; wherein the file system interface mediates calls from the two or more operating systems to functional elements that provide file manipulation functions; and permitting data to be transferred between the plurality of internal interfaces and at least one external interface by preventing the two or more operating systems from performing the data transfer and performing the data transfer on behalf of the two or more operating systems.