Patent ID: 8176142

Claim:
A machine-implemented method for sharing programmatic modules among isolated virtual machines, the method comprising: loading, by a master process of a first virtual machine, first data from a programmatic module; storing, by the master process and based on the first data being mutable, the first data into a first private memory region allocated to the first virtual machine, wherein the first data is stored starting at a virtual address in the first private memory region; copying, by the master process, the first data from the first private memory region into a first area of a shareable memory region based on the first data being mutable, wherein the shareable memory region is readable by a plurality of isolated virtual machines, and wherein the shareable memory region comprises the first area and a second area, the first area for mutable data and the second area for immutable data, the first area distinct from the second area; copying, from the first area of the shareable memory region and based on the first data being mutable, the first data into a second private memory region of a second virtual machine, wherein the first data is stored in the second private memory region starting at the virtual address; loading, by the master process, second data from a programmatic module; storing, by the master process and based on the second data being immutable, the second data into the second area of the shareable memory region; and establishing, based on the second data being immutable, a mapping between the second virtual machine and the second area of the shareable memory region that comprises the second data, wherein the second data comprises a reference to the first data using the virtual address; wherein the mapping enables the second virtual machine to read the second data without creating a copy of the second data in any private memory region of the second virtual machine; and wherein the first private memory region and the second private memory region both begin at a same virtual address.