Method and apparatus for translating virtual path file access operations to physical file path access
First Claim
1. A method of processing a file access request comprising:
- receiving a file access request containing a virtual file path from an application;
determining whether a forward translation exits for the virtual file path;
translating the virtual file path to a physical file path if a forward translation exists for the virtual file path;
defining the physical file path to be the virtual file path if a forward translation does not exist for the virtual file path; and
processing the file access request using the physical file path to form a processed file access request.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and apparatus virtualizes file access operations and other I/O operations in operating systems by performing string substitutions upon a file paths or other resource identifiers to convert the virtual destination of an I/O operation to a physical destination. A virtual file system translation driver is interposed between a file system driver and applications and system utilities. The virtual file system translation driver receives file access requests from the applications and system utilities, and translates the file path to virtualize the file system. In a first embodiment, the file system is partially virtualized and a user can see both the virtual file paths and the physical file paths. In second and third embodiments, the file system is completely virtualized from the point of view of the applications and system utilities. In the second embodiment, a user may start with a physical file system, and virtualize the file system by installing the virtual file system translation driver. When the driver is initially installed, all virtual file paths will be considered to translate to identically named physical file paths by default. In the third embodiment, virtual translations are automatically generated for all file paths when files and directories are created, and virtual file paths may bear limited, or no resemblance to physical file paths.
-
Citations
14 Claims
-
1. A method of processing a file access request comprising:
-
receiving a file access request containing a virtual file path from an application;
determining whether a forward translation exits for the virtual file path;
translating the virtual file path to a physical file path if a forward translation exists for the virtual file path;
defining the physical file path to be the virtual file path if a forward translation does not exist for the virtual file path; and
processing the file access request using the physical file path to form a processed file access request. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
receiving the processed file access request;
determining whether a backward translation exists for the physical file path associated with the processed file access request;
translating the physical file path back to a virtual file path and completing the file access request to the application using the virtual file path if a backward translation exists; and
completing the file access request to the application using the physical file path if a backward translation does not exist.
-
-
3. The method of claim 2 wherein translating the virtual file path to a physical file path if a forward translation exists for the virtual file path includes saving the virtual and physical file paths in a pending request table, and translating the physical file path back to a virtual file path and completing the file access request to the application using the virtual file path if a backward translation exists includes retrieving the virtual file path from the pending request table based on the physical file path associated with the processed file access request.
-
4. The method of claim 1 wherein translations include wildcards to allow a portion of the virtual file path to be replaced to form the physical file path.
-
5. The method of claim 1 wherein translating the virtual file path to a physical file path if a forward translation exists for the virtual file path comprises traversing a translation hierarchy.
-
6. The method of claim 5 wherein the translation hierarchy gives priority to more specific translations over less specific translations.
-
7. The method of claim 5 wherein the translation hierarchy gives priority to mandatory translations over preferred translations.
-
8. The method of claim 1 and further comprising:
-
determining whether the file access request is a creation request;
generating a new physical file path name and creating a translation to translate the virtual file path to the new physical file path if the file access request is a creation request, the virtual file path already exists as a physical file path in an existing translation, and a forward translation does not exist for the virtual file path; and
returning a file path not found message to the application if the file access request is not a creation request, and the virtual file path already exists as a physical file path in an existing translation, and a forward translation does not exist for the virtual file path.
-
-
9. A computer system comprising:
-
memory;
an application, at least a portion of which is stored in memory;
a processor coupled to the memory, for executing instructions that comprise the application;
file storage media for storing files coupled to the memory and the processor; and
a virtual file system driver, at least a portion of which is stored in memory, for coupling the application to the file storage media to allow the application to access files stored on the file storage media using file paths, wherein the virtual file system driver;
receives file access requests containing virtual file paths from the application;
translates virtual file paths to physical file paths;
processes file access request to the file storage media using the physical file paths;
translates the physical file paths back to virtual file paths; and
completes file access requests to the application using the virtual file paths. - View Dependent Claims (10, 11, 12, 13, 14)
a network interface that couples the computer system to a translation server via network media, wherein the translation server stores remotely defined translations and transmits the remotely defined translations to the translation database of the computer system.
-
-
13. The computer system of claim 12 wherein the virtual file system driver includes a translation server cache that caches translations provided by the translation server.
-
14. The computer system of claim 11 wherein the translation database is stored on the file storage media, and the virtual file system driver includes a memory-based translation cache, wherein the memory-based translation cache is first accessed to determine whether the memory-based translation cache contains a virtual file path to physical file path translation, and if a translation is found in the memory-based translation cache, it is used to complete the request, and if a translation is not found in the memory-based translation cache, the translation database stored on the file storage media is traversed to find the translation.
Specification