Automatic client/server translation and execution of non-native applications
First Claim
1. In a computer system that includes a processor, an M-bit operating system, and a memory device coupled to the processor and accessible by said operating system, the operating system including an operating system sublayer, a method of running plural windowed N-bit application programs, each such windowed N-bit application program running in a separate virtual machine, N being less than M, the method comprising:
- providing in the operating system sublayer of the M-bit operating system a shared M-bit application program services library; and
providing N-bit to M-bit application program services stubs located in each of the virtual machines running an N-bit application, each N-bit to M-bit application program services stub communicating application program service requests and returns between said N-bit application and the shared M-bit application program services library;
wherein a plurality of N-bit applications, each running in a separate virtual machine containing separate N-bit to M-bit application program services stubs, can be provided application program services through the shared M-bit application program services library in the sublayer of the operating system.
4 Assignments
0 Petitions
Accused Products
Abstract
A system for client/server translation and execution of non-native applications. Service requests within non-native (e.g. 16-bit) applications are translated to call 32-bit equivalents within a native (e.g 32-bit) operating system. Both non-native and native server process share a library providing native program services. As a result of this translation, non-native applications are integrated into the native operating system, and can communicate and pass data to other non-native applications, and other native applications executing within the native client/server operating system.
-
Citations
26 Claims
-
1. In a computer system that includes a processor, an M-bit operating system, and a memory device coupled to the processor and accessible by said operating system, the operating system including an operating system sublayer, a method of running plural windowed N-bit application programs, each such windowed N-bit application program running in a separate virtual machine, N being less than M, the method comprising:
-
providing in the operating system sublayer of the M-bit operating system a shared M-bit application program services library; and
providing N-bit to M-bit application program services stubs located in each of the virtual machines running an N-bit application, each N-bit to M-bit application program services stub communicating application program service requests and returns between said N-bit application and the shared M-bit application program services library;
wherein a plurality of N-bit applications, each running in a separate virtual machine containing separate N-bit to M-bit application program services stubs, can be provided application program services through the shared M-bit application program services library in the sublayer of the operating system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
loading, onto a stack, data relating to a service requested by the N-bit application program;
invoking an operating system service to identify an M-bit counterpart of said requested service by reference to the data loaded onto the stack; and
performing the identified M-bit counterpart service.
-
-
6. The method of claim 1 which further includes providing in each virtual machine running an N-bit application, a limited library of N-bit operating system services that can be invoked independently of the shared M-bit application program services library.
-
7. The method of claim 6 wherein each of the services in said limited library of N-bit operating system services has a counterpart service in the shared M-bit application program services library, and wherein requests by an N-bit application program for any of these services in said limited library is trapped by the handler corresponding thereto and is not communicated to the shared M-bit application program services library.
-
8. The method of claim 6 which includes compiling M-bit code for each of the services in said limited library of services, providing an assembly language output, and transforming the assembly language output to obtain N-bit code corresponding thereto.
-
9. The method of claim 1 wherein said sharing of the M-bit application program services library avoids the need to emulate an operating system in each virtual machine.
-
10. In a computer system that includes at least one processor and an M-bit operating system, a method of concurrently running plural N-bit programs, N being less than M, comprising:
-
providing plural virtual machines;
providing plural first subsets of N-bit fully emulated operating system functions that do not access M-bit operating system functions in a library, one subset contained in each of the virtual machines;
providing a single second subset of N-bit to M-bit operating system function invoking stubs that access shared M-bit operating system functions in a library;
providing shared access to the single second subset of operating system functions from each of said plural virtual machines;
running a first N-bit program in a first virtual machine associated therewith; and
running a second N-bit program in a second virtual machine associated therewith;
wherein each N-bit program running in a separate associated virtual machine obtains some operating system services from the first subset of N-bit functions contained in the associated virtual machine, and obtains other operating system services from the single second subset of N-bit to M-bit operating system function invoking stubs that access the shared M-bit functions in the library. - View Dependent Claims (11, 12, 13, 14, 15)
-
-
16. In a computer system that includes at least one processor and an M-bit operating system, a method of concurrently running plural N-bit programs, N being less than M, comprising:
-
providing plural virtual machines;
in each of said virtual machines, running an associated N-bit program; and
translating at least certain service requests from said N-bit programs for fulfillment by a counterpart M-bit service in an M-bit library to which said N-bit programs have shared access;
wherein translating includes loading onto a runtime stack, an N-bit service request from an N-bit program located in a virtual machine;
identifying a counterpart M-bit service therefor, and performing the counterpart services.- View Dependent Claims (17, 18, 19, 20, 21)
-
-
22. A method of concurrently running plural N-bit programs in a computer, the computer running an M-bit operating system, where M is greater than N, the method including:
-
running first and second N-bit programs in first and second virtual machines, respectively;
providing in each virtual machine, a set of N-bit to M-bit service requesting interfaces;
receiving from the first N-bit program, multiple service requests at the N-bit to M-bit service requesting interfaces;
translating at least certain service requests received at the N-bit to M-bit service requesting interfaces from said first N-bit program for fulfillment by M-bit OLE functions; and
performing an OLE function between the first and second N-bit programs. - View Dependent Claims (23)
-
-
24. In a computer system that includes at least one processor and an M-bit operating system, the M-bit operating system providing a set of M-bit functions to perform program service requests, a method of concurrently running plural N-bit programs, N being less than M, comprising:
-
providing plural virtual machines, each running an associated N-bit program;
in each of said virtual machines, providing a first set of N-bit functions;
intercepting a first service request from an N-bit program, said first service request having no counterpart in the M-bit operating system, and servicing the first service request from an N-bit function included in said first set;
intercepting a second service request from an N-bit program, said second service request having a counterpart in the M-bit operating system, and servicing the second service request from the counterpart in the M-bit operating system through an N-bit application program services stub; and
intercepting a third service request from an N-bit program, said third service request having a counterpart in the M-bit operating system, and servicing the third service request from an N-bit function included in said first set notwithstanding the existence of the counterpart in the M-bit operating system. - View Dependent Claims (25)
-
-
26. A computer storage medium having stored thereon computer executable instructions for performing a method on a computer system that includes a processor, an M-bit operating system, the operating system including an operating system sublayer, a method of running plural windowed N-bit application programs, each such windowed N-bit application program running in a separate virtual machine, N being less than M, the method comprising:
-
providing in the operating system sublayer of the M-bit operating system a shared M-bit application program services library; and
providing N-bit to M-bit application program services stubs located in each of the virtual machines running an N-bit application, each N-bit to M-bit application program services stub communicating application program service requests and returns between said N-bit application and the shared M-bit application program services library;
wherein a plurality of N-bit applications, each running in a separate virtual machine containing separate N-bit to M-bit application program services stubs, can be provided application program services through the shared M-bit application program services library in the sublayer of the operating system.
-
Specification