IP Library Granted Patent US 7,162,711
Granted Patent B2
US 7,162,711 · App. 10/318,500 · Granted Jan 9, 2007

Method of automatically virtualizing core native libraries of a virtual machine

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,162,711
App. No.
10/318,500
Granted
Jan 9, 2007
Kind
B2
Abstract

A method of automatically virtualizing core native libraries of a virtual machine is disclosed. In an embodiment, the virtual machine is a java virtual machine (JVM). In this technique, the interface between the virtual machine and the core native libraries is controlled, since multiple instances of a core native library are loaded into the same process based on the number of co-located applications. Moreover, the interactions between the core native libraries and the underlying operating system (OS) are controlled so that a single point of contact is presented to the OS. Also, the dependencies the core native libraries may have on the virtual machine are handled.

Claims (27)

1. A method of virtualizing a plurality of core native libraries of a virtual machine, said method comprising:

generating a proxy library for controlling an interface between said virtual machine and said plurality of core native libraries and loading multiple instances of a subset of said plurality of core native libraries for each application co-located in a process, and for forwarding function downcalls to a subgroup of said multiple instances; and

generating a forwarding library for each of said multiple instances to forward appropriate operating system calls and appropriate function upcalls from said multiple instances to said virtual machine.

2. The method as recited in claim 1 wherein said virtual machine is a java virtual machine.

3. The method as recited in claim 1 wherein said forwarding function downcalls is based on an application identifier.

4. The method as recited in claim 1 wherein said process is in a Solaris Operating Environment platform.

5. The method as recited in claim 4 wherein generating a proxy library further includes loading said multiple instances using a dlmopen( ) function.

6. The method as recited in claim 1 wherein said proxy library is loaded in the context of the virtual machine.

7. The method as recited in claim 1 wherein said forwarding library associated with each of said multiple instances differs from the forwarding library associated with the remaining instances of said multiple instances.

8. A computer-readable medium comprising computer-executable instructions stored therein for virtualizing a plurality of core native libraries of a virtual machine, said medium comprising:

code to generate a proxy library to control an interface between said virtual machine and said plurality of core native libraries, a first sub-routine to load multiple instances of a subset of said plurality of core native libraries for each application co-located in a process, and a second sub-routine to forward function downcalls to a subgroup of said multiple instances; and

code to create a forwarding library for each of said multiple instances to forward appropriate operating system calls and appropriate function upcalls from said multiple instances to said virtual machine.

9. The computer-readable medium as recited in claim 8 wherein said virtual machine is a java virtual machine.

10. The computer-readable medium as recited in claim 8 wherein said second sub-routine performs downcalls based on an application identifier.

11. The computer-readable medium as recited in claim 8 wherein said process is in a Solaris Operating Environment platform.

12. The computer-readable medium as recited in claim 11 wherein said first sub-routine further includes a routine to load said multiple instances using a dlmopen( ) function.

13. The computer-readable medium as recited in claim 8 wherein said proxy library is loaded in the context of the virtual machine.

14. The computer-readable medium as recited in claim 8 wherein said code to create further includes a routine to associate with each of said multiple instances differs from the forwarding library associated with the remaining instances of said multiple instances.

15. A computer system comprising:

a processor;

a memory device storing computer readable instructions including code to generate a proxy library to control an interface between a virtual machine and a plurality of core native libraries, a first sub-routine to load multiple instances of a subset of said plurality of core native libraries for each anplication co-located in a process, and a second sub-routine to forward function downealls to a subgroup of said multiple instances; and code to create a forwarding library for each of said multiple instances to forward appropriate operating system calls and appropriate function upcalls from said multiple instances to said virtual machine.

16. The computer system as recited in claim 15 wherein said virtual machine is a java virtual machine.

17. The computer system as recited in claim 15 wherein said second sub-routine downcalls based on an application identifier.

18. The computer system as recited in claim 15 wherein said process is in a Solaris Operating Environment platform.

19. The computer system as recited in claim 18 wherein said first sub-routine further includes a routine to load said multiple instances using a dlmopen( ) function.

20. The computer system as recited in claim 15 wherein said proxy library is loaded in the context of the virtual machine.

21. The computer system as recited in claim 15 wherein said code to create further includes a routine to associate with each of said multiple instances differs from the forwarding library associated with the remaining instances of said multiple instances.

Assignments (1)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037302/0683 →