AMENDED CLAIMS
[received by the International Bureau on 9 January 2004 (09.01.04); original claims 1-20 replaced by amended claims 1-20 (8 pages)]
1. A set of computer readable media containing computer instructions for operating a layered computing environment, the set of computer readable media comprising at least one medium upon which is stored the computer instructions executable by a computing system to achieve the functions of:
(i) receiving from applications read requests for read operations to a file system, each read request containing a file reference appropriate to a file system organization,
(ii) for file references of the received read requests, attempting to identify an owner layer from a set of enabled layers;
(iii) if, for a particular read request, an owner layer is identified for a file reference, identifying a virtual read reference corresponding to the read reference of the particular read request utilizing information contained in the identified owner layer,
(iv) following the identifying a virtual read reference, causing a read operation to execute using that virtual read reference,
(v) if, for a particular read request, an owner layer is not identified for a file reference, causing the read operation to execute using the file reference of the particular read request.
2. A set of computer readable media according to claim 1 , wherein the computer instructions are further executable to achieve the function of decrypting encrypted information referenced by the virtual read reference.
46
3 A set of computer readable media according to claim 1 , wherein the computer instructions are further executable to achieve the functions of
(vi) receiving from applications write requests for write operations to a file system, the write requests each containing a file reference,
(VII) for file references of particular received write requests, attempting to identify an owner layer from a set of currently enabled layers,
(VIM) if, for a particular write request, an owner layer is identified for the file reference of that write request, identifying a virtual write reference utilizing information contained in the identified owner layer, the virtual write reference corresponding to the file reference of the particular write request,
(ix) following the identifying a virtual write reference, causing a write operation to execute using that virtual write reference,
(x) if, for a particular write reference, an owner layer is not identified for the file reference of that write request, causing a write operation to execute using the file reference of the particular write request
4 A set of computer readable media according to claim 3, wherein the computer instructions are further executable to achieve the function of copying an existing file to the capture layer prior to causing the write operation to execute if the write operation is a modify operation
5 A set of computer readable media according to claim 3, wherein the computer instructions are further executable to achieve the function of encrypting the information to be written prior to the execution of the write operation
47
6 A set of computer readable media according to claim 3, wherein the computer instructions are further executable to achieve the functions of
(xi) receiving from applications requests to create, delete, and set the value of a registry setting,
(xii) following receipt of a request to create, delete or set the value of a registry setting, a determining whether or not the registry operation of the request is to be captured to an enabled layer,
(xiu) acting on a request to create a registry setting, and on a determination that a registry setting is not to be captured to an enabled layer, causing the registry setting operation to execute in the base system registry location,
(xiv) acting on a request to create a registry setting, and on a determination that a registry setting is to be captured to an enabled layer, identifying a registry creation destination layer,
(xv) following said identifying a registry creation destination layer, causing the registry setting to be created virtually in the registry creation destination layer,
(xvi) acting on a request to delete a registry setting, and on a determination that a registry setting is not to be captured to an enabled layer, causing the registry setting deletion operation to execute in the base system registry location,
(XVII) acting on a request to delete a registry setting, and on a determination that a registry setting is to be captured to an enabled layer, identifying a registry deletion destination layer,
(XVIII) following said identifying a registry deletion destination layer, causing the registry setting to be deleted virtually in the registry deletion destination layer,
(xix) acting on a request to set a registry setting, and on a determination that a registry setting is not to be captured to an enabled layer, causing the registry setting operation to execute in the base system registry location,
(xx) acting on a request to set a registry setting, and on a determination that a registry setting is to be captured to an enabled layer, identifying a registry setting destination layer, and
(xxi) following said identifying a registry setting destination layer, causing the registry setting to be created virtually in the registry setting destination layer
7 A set of computer readable media according to claim 6, wherein the computer instructions are further executable to achieve the function of
(XXII) receiving management commands through an applications programmer interface
48
8. A set of computer readable media according to claim 7, wherein the computer instructions are further executable to achieve the functions of:
(xxiii) receiving a management command through an applications programmer interface to import a specified layer archive; and
(xxiv) import the specified layer archive.
9. A set of computer readable media according to claim 7, wherein the computer instructions are further executable to achieve the functions of:
(xxiii) receiving a management command through an applications programmer interface to enable a layer group; and
(xxiv) enable each layer of the specified layer group.
10. A set of computer readable media according to claim 7, wherein the computer instructions are further executable to achieve the functions of:
(xxiii) receiving a management command through an applications programmer interface to disable a layer group; and
(xxiv) disable each layer of the specified layer group.
11. A set of computer readable media according to claim 7, wherein the computer instructions include a layer manager application.
12. A set of computer readable media according to claim 6, wherein the computer instructions are further executable to achieve the functions of:
(xii) examining the installed layers for a configuration element, that element specifying for each layer whether or not the layer is to be enabled on system initialization; and
(xiii) enabling those layers having configuration elements specifying layer enablement on system initialization.
13. A computing system supporting a layered computing environment, comprising: a processor; a storage device group accessible by said processor, said storage device group containing at least one storage device operable to contain operating system files, applications and layers; one or more layers stored to said storage device group; instructions stored to said storage device group, said instructions being further executable by said processor to achieve the functions of:
(i) receiving from applications read requests for read operations to a file system, the read requests each containing a file reference,
(ii) for file references of particular received read requests, attempting to identify an owner layer from a set of currently enabled layers,
(iii) if, for a particular read request, an owner layer is identified for the file reference of that read request, identifying a virtual read reference utilizing information contained in the identified owner layer, the virtual read reference referencing a corresponding file structure to the file reference of the particular read request,
(iv) following an identification of a virtual read reference, causing a read operation to execute using that virtual read reference,
(v) if, for a particular read request, an owner layer is not identified for the file reference of that read request, causing a read operation to execute using the file reference of the particular read request,
(vi) receiving from applications write requests for write operations to a file system, the write requests each containing a file reference,
(vii) for file references of particular received write requests, attempting to identify an owner layer from a set of currently enabled layers,
(viii) if, for a particular write request, an owner layer is identified for the file reference of that write request, identifying a virtual write reference utilizing information contained in the identified owner layer, the virtual write reference corresponding to the file reference of the particular write request,
(ix) following the identifying a virtual write reference, causing a write operation to execute using that virtual write reference,
(x) if, for a particular write reference, an owner layer is not identified for the file reference of that write request, causing a write operation to execute using the file reference of the particular write request.
14. A computing system according to claim 13, wherein the computer instructions are further executable to achieve the functions of:
(xi) receiving from applications requests to create, delete, and set the value of a registry setting;
(xii) following receipt of a request to create, delete or set the value of a registry setting, a determining whether or not the registry operation of the request is to be captured to an enabled layer;
(xiii) acting on a request to create a registry setting, and on a determination that a registry setting is not to be captured to an enabled layer, causing the registry setting operation to execute in the base system registry location;
(xiv) acting on a request to create a registry setting, and on a determination that a registry setting is to be captured to an enabled layer, identifying a registry creation destination layer;
(xv) following said identifying a registry creation destination layer, causing the registry setting to be created virtually in the registry creation destination layer;
(xvi) acting on a request to delete a registry setting, and on a determination that a registry setting is not to be captured to an enabled layer, causing the registry setting deletion operation to execute in the base system registry location;
(xvii) acting on a request to delete a registry setting, and on a determination that a registry setting is to be captured to an enabled layer, identifying a registry deletion destination layer;
(xviii) following said identifying a registry deletion destination layer, causing the registry setting to be deleted virtually in the registry deletion destination layer;
(xix) acting on a request to set a registry setting, and on a determination that a registry setting is not to be captured to an enabled layer, causing the registry setting operation to execute in the base system registry location;
(xx) acting on a request to set a registry setting, and on a determination that a registry setting is to be captured to an enabled layer, identifying a registry setting destination layer; and
(xxi) following said identifying a registry setting destination layer, causing the registry setting to be created virtually in the registry setting destination layer.
15. A computing system according to claim 13, wherein the computer instructions are further executable to achieve the function of maintaining a delete list.
16. A computing system according to claim 13, wherein the computer instructions are further executable to achieve the function of executing a lazy thread.
51
17. A computing system according to claim 13, wherein the computer instructions are further executable to achieve the function of decrypting encrypted information referenced by a virtual read reference.
18. A computing system according to claim 13, wherein: the computer instructions are further executable to achieve the function of (xi) receiving management commands through an applications programmer interface; and the computer instructions include a layer manager application.
19. A set of computer readable media according to claim 18, wherein the computer instructions are further executable to achieve the functions of:
(xii) receiving a management command through an applications programmer interface to enable or disable a layer group; and
(xiii) enable or disable each layer of the specified layer group.
52
20. A method of handling requests to read and write files in a layered computing system, the method comprising the steps of:
(i) receiving from applications read requests for read operations to a file system, the read requests each containing a file reference,
(ii) for file references of particular received read requests, attempting to identify an owner layer from a set of currently enabled layers,
(iii) if, for a particular read request, an owner layer is identified for the file reference of that read request, identifying a virtual read reference utilizing information contained in the identified owner layer, the virtual read reference referencing a corresponding file structure to the file reference of the particular read request,
(iv) following an identification of a virtual read reference, causing a read operation to execute using that virtual read reference,
(v) if, for a particular read request, an owner layer is not identified for the file reference of that read request, causing a read operation to execute using the file reference of the particular read request,
(vi) receiving from applications write requests for write operations to a file system, the write requests each containing a file reference,
(vii) for file references of particular received write requests, attempting to identify an owner layer from a set of currently enabled layers,
(viii) if, for a particular write request, an owner layer is identified for the file reference of that write request, identifying a virtual write reference utilizing information contained in the identified owner layer, the virtual write reference corresponding to the file reference of the particular write request,
(ix) following the identifying a virtual write reference, causing a write operation to execute using that virtual write reference,
(x) if, for a particular write reference, an owner layer is not identified for the file reference of that write request, causing a write operation to execute using the file reference of the particular write request.
53