Operating system application programming interfaces and methods of using operating systems
First Claim
1. A method of operating an operating system comprising:
- defining a translation layer between an application and an operating system, wherein the operating system includes functions that are callable by the application;
receiving calls from the application in the translation layer;
translating the calls with the translation layer to provide translated calls; and
calling operating system functions with the translated calls.
1 Assignment
0 Petitions
Accused Products
Abstract
Operating system functions are defined as objects that are collections of data and methods. The objects represent operating system resources. The resource objects can be instantiated and used across process and machine boundaries. Each object has an associated handle that is stored in its private state. When an application requests a resource, it is given a second handle or pseudo handle that corresponds with the handle in the object'"'"'s private state. The second handle is valid across process and machine boundaries and all access to the object takes place through the second handle. This greatly facilitates remote computing. In preferred embodiments, the objects are COM objects and remote computing is facilitated through the use of Distributed COM (DCOM) techniques. Other embodiments of the invention provide legacy and versioning support by identifying each resource, rather than the overall operating system, with a unique identifier that can specified by an application. Different versions of the same resource have different identifiers. This ensures that applications that need a specific version of a resource can receive that version. This also ensures that an application can specifically request a particular version of a resource by using its unique identifier, and be assured of receiving that resource. Other embodiments of the invention provide legacy support by intercepting calls for operating system functions and transforming those calls into object calls that can be understood by the resource objects. This is accomplished in preferred embodiments by injecting a level of indirection between an application and an operating system.
49 Citations
57 Claims
-
1. A method of operating an operating system comprising:
-
defining a translation layer between an application and an operating system, wherein the operating system includes functions that are callable by the application;
receiving calls from the application in the translation layer;
translating the calls with the translation layer to provide translated calls; and
calling operating system functions with the translated calls. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method of organizing operating system resources comprising:
-
representing a plurality of operating system resources as programming objects, each programming object representing an operating system resource and having one or more interfaces that define methods that can be used by applications to access and manipulate the resource;
assigning each interface a unique identifier, wherein different versions of a resource are associated with different unique identifiers that can be used by applications to access particular versions of a resource; and
specifying a unique identifier any time an application wants to use a particular resource. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. A computer program embodied on a computer-readable medium that contains instructions which, when executed by a computer, perform the steps comprising:
-
creating a first handle that is associated with an operating system resource that is represented as a programming object having data and one or more methods;
creating a second handle that corresponds with the first handle;
storing the first handle in the programming object'"'"'s private state;
passing the second handle to an application instead of the first handle when an application makes calls to create the operating system resource; and
using the second handle to access the operating system resource. - View Dependent Claims (26, 27, 28, 29, 30)
-
-
31. One or more programmed computers having code that contains instructions which, when executed by a computer performs the following steps:
-
calling an operating system function with a call having a syntax, wherein the call is configured to create or use an operating system resource;
intercepting the call;
changing the syntax of the call to provide a second call with a changed syntax; and
calling a programming object with the second call, wherein the programming object has data and methods and represents the operating system resource. - View Dependent Claims (32, 33, 34, 35, 36)
-
-
37. A method of building an application comprising:
-
establishing a library containing one or more interfaces that are identified by a unique identifier, wherein the interfaces comprise one or more methods that can be used to manipulate programming objects that represent operating system resources; and
linking an application against the unique identifiers. - View Dependent Claims (38, 39, 40, 41, 42)
-
-
43. A computer readable medium having computer-readable instructions thereon, which when executed by a computer perform the following steps:
-
representing a plurality of operating system resources as objects having one or more interfaces through which one or more resources can be accessed;
assigning each interface a globally unique identifier (GUID) that can be used by an application to access a particular resource, wherein the GUIDs are assigned so that they distinguish between different versions of the same object and represent the syntax and semantics of an object; and
specifying the unique identifier across at least one process or machine boundary any time an application wants to use a particular object. - View Dependent Claims (44)
-
-
45. One or more computer-readable media comprising:
-
a library of operating system functions;
a plurality of programming objects representing respective operating system resources, each programming object comprising data and associated methods, wherein the data is accessible only through the methods;
wherein the methods of the programming objects are callable to access the resources represented by the objects; and
wherein the methods of the programming objects are responsive to call the functions of the function library. - View Dependent Claims (46, 47, 48)
-
-
49. A method of utilizing an existing function library of an operating system comprising:
-
defining a plurality of programming objects representing respective operating system resources, each programming object comprising data and associated methods, wherein the data is accessible only through the methods;
calling the methods of the programming objects to access the resources represented by the objects; and
calling the functions of the function library from the programming object methods. - View Dependent Claims (50, 51, 52, 53)
-
-
54. A method of utilizing an object-oriented operating system function library from a legacy application program that is configured to utilize non-object-oriented functions of an operating system function library, comprising:
-
defining a plurality of detour functions corresponding to the functions of the operating system function library;
calling a detour function from a legacy application;
calling a programming object from the detour function, wherein the programming object has data and methods; and
calling a function in the function library using one of the methods of the programming object. - View Dependent Claims (55)
-
-
56. A computer-readable medium comprising:
-
a plurality of programming objects that represent operating system resources, wherein the objects contain data and methods, and wherein the data is accessible through the methods;
wherein the programming objects are configured to receive calls that call the methods; and
wherein at least some of the methods are configured to call functions of an operating system to manipulate operating system resources. - View Dependent Claims (57)
-
Specification