Claims
- 1. A method that uses a shared library mechanism to facilitate sharing objects, comprising:
receiving identifiers for a set of objects to be included in a shared library; generating the shared library containing the set of objects; configuring a symbol table within the shared library to include an identifier for each object in the set of objects; installing the shared library in a file system; configuring the file system so that the shared library can be accessed through a set of symbolic names; wherein each object in the shared library is associated with a different symbolic name, so that each object can be referenced through its own symbolic name.
- 2. The method of claim 1, wherein generating the shared library involves:
placing ready-only portions of objects in a read-only region of the shared library; and placing writeable portions of objects in a writeable region of the shared library.
- 3. The method of claim 2, further comprising enforcing a copy-on-write policy by ensuring that a write operation to a data item in the writeable region of the shared library is restricted to a local copy of the data item in a local address space of a process that issued the write operation.
- 4. The method of claim 1, wherein an object in the set of objects defines a class containing methods to be shared between instances of a language run-time system.
- 5. The method of claim 1, wherein an object in the set of objects contains dynamically compiled code to be shared between instances of a language run-time system.
- 6. The method of claim 1, further comprising accessing a target object in the shared library by:
accessing the shared library through a symbolic name associated with the target object; and looking up the target object in the symbol table of the shared library to determine a location of the target object within the shared library.
- 7. The method of claim 1, wherein a symbolic name for an object can be inferred from the identifier for the object.
- 8. The method of claim 1, wherein configuring the file system so that the shared library can be accessed through the set of symbolic names involves loading the shared library via different symbolic names in the set of symbolic names so that a first load actually loads the shared library, and subsequent loads return a handle to the previously loaded library.
- 9. A computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method that uses a shared library mechanism to facilitate sharing objects, the method comprising:
receiving identifiers for a set of objects to be included in the shared library; generating a shared library containing the set of objects; configuring a symbol table within the shared library to include an identifier for each object in the set of objects; installing the shared library in a file system; configuring the file system so that the shared library can be accessed through a set of symbolic names; wherein each object in the shared library is associated with a different symbolic name, so that each object can be referenced through its own symbolic name.
- 10. The computer-readable storage medium of claim 9, wherein generating the shared library involves:
placing ready-only portions of objects in a read-only region of the shared library; and placing writeable portions of objects in a writeable region of the shared library.
- 11. The computer-readable storage medium of claim 10, wherein the method further comprises enforcing a copy-on-write policy by ensuring that a write operation to a data item in the writeable region of the shared library is restricted to a local copy of the data item in a local address space of a process that issued the write operation.
- 12. The computer-readable storage medium of claim 9, wherein an object in the set of objects defines a class containing methods to be shared between instances of a language run-time system.
- 13. The computer-readable storage medium of claim 9, wherein an object in the set of objects contains dynamically compiled code to be shared between instances of a language run-time system.
- 14. The computer-readable storage medium of claim 9, wherein the method further comprises accessing a target object in the shared library by:
accessing the shared library through a symbolic name associated with the target object; and looking up the target object in the symbol table of the shared library to determine a location of the target object within the shared library.
- 15. The computer-readable storage medium of claim 9, wherein a symbolic name for an object can be inferred from the identifier for the object.
- 16. The computer-readable storage medium of claim 9, wherein configuring the file system so that the shared library can be accessed through the set of symbolic names involves loading the shared library via different symbolic names in the set of symbolic names so that a first load actually loads the shared library, and subsequent loads return a handle to the previously loaded library.
- 17. An apparatus that uses a shared library mechanism to facilitate sharing objects, comprising:
a library generation mechanism that is configured to generate a shared library, wherein the shared library contains a set of objects; wherein the library generation mechanism is configured to populate a symbol table within the shared library to include an identifier for each object in the set of objects; and a library installation mechanism that is configured to install the shared library in a file system; wherein the library installation mechanism is configured to update the file system so that the shared library can be accessed through a set of symbolic names; wherein each object in the shared library is associated with a different symbolic name, so that each object can be referenced through its own symbolic name.
- 18. The apparatus of claim 17, wherein the library generation mechanism is configured to:
place ready-only portions of objects in a read-only region of the shared library; and to place writeable portions of objects in a writeable region of the shared library.
- 19. The apparatus of claim 18, further comprising a copy-on-write mechanism, which ensures that a write operation to a data item in the writeable region of the shared library is restricted to a local copy of the data item in a local address space of a process that issued the write operation.
- 20. The apparatus of claim 17, wherein an object in the set of objects defines a class containing methods to be shared between instances of a language run-time system.
- 21. The apparatus of claim 17, wherein an object in the set of objects contains dynamically compiled code to be shared between instances of a language run-time system.
- 22. The apparatus of claim 17, further comprising a library access mechanism that is configured to:
accessing a target object in the shared library through a symbolic name associated with the target object; and to look up the target object in the symbol table of the shared library to determine a location of the target object within the shared library.
- 23. The apparatus of claim 17, wherein a symbolic name for an object can be inferred from the identifier for the object.
- 24. The apparatus of claim 17, wherein the library installation mechanism is configured to load the shared library via different symbolic names in the set of symbolic names so that a first load actually loads the shared library, and subsequent loads return a handle to the previously loaded library.
- 25. A computer system that uses a shared library to facilitate sharing objects, comprising:
a file system; the shared library with the file system that contains a set of objects; and a symbol table within the shared library that includes an identifier for each object in the set of objects; wherein the file system is configured so that the shared library can be accessed through a set of symbolic names; wherein each object in the shared library is associated with a different symbolic name, so that each object can be referenced through its own symbolic name.
- 26. The computer system of claim 25, wherein shared library includes
a read only section containing ready-only portions of objects; and a writeable section containing writeable portions of objects.
- 27. The computer system of claim 26, wherein the shared library includes a copy-on-write mechanism, which ensures that a write operation to a data item in the writeable section of the shared library is restricted to a local copy of the data item in a local address space of a process that issued the write operation.
- 28. The computer system of claim 25, wherein an object in the set of objects defines a class containing methods to be shared between instances of a language run-time system.
- 29. The computer system of claim 25, wherein an object in the set of objects contains dynamically compiled code to be shared between instances of a language run-time system.
- 30. The computer system of claim 25, wherein a symbolic name for an object can be inferred from the identifier for the object.
RELATED APPLICATION
[0001] This application hereby claims priority under 35 U.S.C. §119 to U.S. Provisional Patent Application No. 60/332,924, filed on Nov. 14, 2001, entitled “Sharing Meta-Data Across Instances of a Language Run-Time System,” by inventors Grzegorz J. Czajkowski and Laurent P. Daynes.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60332924 |
Nov 2001 |
US |