Path variablizing layered system
First Claim
1. A layered computing system for accessing files in a base filesystem and a plurality of enabled layers, and to prioritize those accesses with respect to the enabled layers, the system further supporting variable indirection in object pathnames, said system comprising:
- a processor;
data and program storage accessible by said processor, said storage comprising one or more data storage devices;
an operating system stored to said storage;
computer readable instructions located to said program storage, wherein said instructions are configured to be executed by said processor to perform the functions of;
(i) maintaining a set of named path variables each containing a path,(ii) receiving from an application a request to perform a file, directory or registry operation, that request containing a path reference appropriate to a file system,(iii) producing a set of variablized paths by evaluating the set of maintained path variables against the path reference of the request,(iv) identifying a set of enabled layers,(v) determining a priority for searching the enabled layers and a base filesystem,(vi) performing a search for the file object corresponding to the file reference, the search performed in order of the determined priority, and for read requests the search is performed for layers by testing for the presence of one of the produced variablized paths for a file reference contained in the layer, the search being performed for base filesystems without referencing the variablized paths,(vii) if, in performing the search, a file object having priority is found corresponding to the file reference in a layer, returning a virtual file handle to that virtual file object,(viii) if, in performing the search, a file object having priority is found corresponding to the file reference in a base filesystem, returning a file handle to that base file object,(ix) if, in performing the search, a file object is not found corresponding to the file reference, and if the request was not a write request, returning a result indicating that no file object corresponding to the file reference can be accessed, and(x) if, in performing the search, a file object is not found corresponding to the file reference, and if the request was a write request, returning a virtual file handle or a base file handle to a new file object in the layer having priority.
3 Assignments
0 Petitions
Accused Products
Abstract
The inventions relate generally to layered computing systems that provide public access to the content of the layers. Also disclosed herein are prioritization schemes usable in a layered computing system, including prioritization by layer type, by assigned priority weights, by access type, by sub-layers and by read-write indicators. Processes may further be associated to layers from which they originate, and priority given to associated layers thereby. Association may also be provided for installer services, thereby depositing an applications updates into its layer. Layers may also contain file reference information including exclusion or inclusion entries indicating what files may be written thereto. Paths recorded in layers may also embed variables to true paths on a layered system. Detailed information on various example embodiments of the inventions are provided in the Detailed Description below, and the inventions are defined by the appended claims.
67 Citations
19 Claims
-
1. A layered computing system for accessing files in a base filesystem and a plurality of enabled layers, and to prioritize those accesses with respect to the enabled layers, the system further supporting variable indirection in object pathnames, said system comprising:
-
a processor; data and program storage accessible by said processor, said storage comprising one or more data storage devices; an operating system stored to said storage; computer readable instructions located to said program storage, wherein said instructions are configured to be executed by said processor to perform the functions of; (i) maintaining a set of named path variables each containing a path, (ii) receiving from an application a request to perform a file, directory or registry operation, that request containing a path reference appropriate to a file system, (iii) producing a set of variablized paths by evaluating the set of maintained path variables against the path reference of the request, (iv) identifying a set of enabled layers, (v) determining a priority for searching the enabled layers and a base filesystem, (vi) performing a search for the file object corresponding to the file reference, the search performed in order of the determined priority, and for read requests the search is performed for layers by testing for the presence of one of the produced variablized paths for a file reference contained in the layer, the search being performed for base filesystems without referencing the variablized paths, (vii) if, in performing the search, a file object having priority is found corresponding to the file reference in a layer, returning a virtual file handle to that virtual file object, (viii) if, in performing the search, a file object having priority is found corresponding to the file reference in a base filesystem, returning a file handle to that base file object, (ix) if, in performing the search, a file object is not found corresponding to the file reference, and if the request was not a write request, returning a result indicating that no file object corresponding to the file reference can be accessed, and (x) if, in performing the search, a file object is not found corresponding to the file reference, and if the request was a write request, returning a virtual file handle or a base file handle to a new file object in the layer having priority. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A set of non-transitory computer readable media containing computer instructions for accessing files in a base filesystem and a plurality of enabled layers, and to prioritize those accesses with respect to the enabled layers, and further to support variable indirection in object pathnames, 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) maintaining a set of named path variables each containing a path, (ii) receiving from an application a request to perform a file, directory or registry operation, that request containing a path reference appropriate to a file system, (iii) producing a set of variablized paths by evaluating the set of maintained path variables against the path reference of the request, (iv) identifying a set of enabled layers, (v) determining a priority for searching the enabled layers and a base filesystem, (vi) performing a search for the file object corresponding to the file reference, the search performed in order of the determined priority, and for read requests the search is performed for layers by testing for the presence of one of the produced variablized paths for a file reference contained in the layer, the search being performed for base filesystems without referencing the variablized paths, (vii) if, in performing the search, a file object having priority is found corresponding to the file reference in a layer, returning a virtual file handle to that virtual file object, (viii) if, in performing the search, a file object having priority is found corresponding to the file reference in a base filesystem, returning a file handle to that base file object, (ix) if, in performing the search, a file object is not found corresponding to the file reference, and if the request was not a write request, returning a result indicating that no file object corresponding to the file reference can be accessed, and (x) if, in performing the search, a file object is not found corresponding to the file reference, and if the request was a write request, returning a virtual file handle or a base file handle to a new file object in the layer having priority. - View Dependent Claims (8, 9, 10, 11, 12, 13)
-
-
14. A method of accessing files in a base filesystem and a plurality of enabled layers, and to prioritize those accesses with respect to the enabled layers, and further to support variable indirection in object pathnames, the method comprising:
-
maintaining a set of named path variables each containing a path; receiving from an application a request to perform a file, directory or registry operation, that request containing a path reference appropriate to a file system; producing a set of variablized paths by evaluating the set of maintained path variables against the path reference of the request; identifying a set of enabled layers; determining a priority for searching the enabled layers and a base filesystem; performing a search for the file object corresponding to the file reference, the search performed in order of the determined priority, and for read requests the search is performed for layers by testing for the presence of one of the produced variablized paths for a file reference contained in the layer, the search being performed for base filesystems without referencing the variablized paths; if, in performing the search, a file object having priority is found corresponding to the file reference in a layer, returning a virtual file handle to that virtual file object; if, in performing the search, a file object having priority is found corresponding to the file reference in a base filesystem, returning a file handle to that base file object; if, in performing the search, a file object is not found corresponding to the file reference, and if the request was not a write request, returning a result indicating that no file object corresponding to the file reference can be accessed; and if, in performing the search, a file object is not found corresponding to the file reference, and if the request was a write request, returning a virtual file handle or a base file handle to a new file object in the layer having priority. - View Dependent Claims (15, 16, 17, 18, 19)
-
Specification