Merging file system directories
First Claim
1. A system for controlling file sharing and file access, comprising:
- a computing processor; and
computing memory communicatively coupled with said computing processor, the computing memory comprising instructions executable by said computing processor, the instructions adapted for providing an operating system that;
associates a plurality of processes with a first silo defined in the operating system and provides a first silo-specific view of a first plurality of file system directories for processes running in the first silo, andassociates a plurality of processes with a second silo defined in the operating system and provides a second silo-specific view of a second plurality of file system directories for processes running in the second silo,wherein the operating system comprises a filter driver, the filter driver in response to detecting a request by a process for a name for a file existing in one of the first plurality of file system directories defined for the first silo-specific view and existing in one of the second plurality of file system directories defined for the second silo-specific view;
determines whether the process is running in either of the first silo defined in the operating system or the second silo defined in the operating system;
upon determining the process is running in neither the first silo nor the second silo, the filter driver retrieves a name for the file from the operating system and returns the name to the process, the name reflecting neither the first silo-specific view nor the second silo-specific view;
upon determining the process is running in the first silo, the filter driver retrieves a name for the file from the operating system, changes the name to reflect the first silo-specific view, and returns the changed file name to the process; and
upon determining the process is running in the second silo, the filter driver retrieves a name for the file from the operating system, changes the name to reflect the second silo-specific view, and returns the changed file name to the process;
wherein in response to determining that the file access request is an open file request, the filter driver;
determines whether the file request is an absolute open request comprising an absolute path name or a relative file request comprising a path name relative to an existing open file or directory;
determines whether the process making the file request is in a silo by examining a silo identifier in the request;
upon determining the process making the file request is in a silo,re-writes the request to access a file in the silo;
retrieves the merged directory metadata for the silo;
searches a private portion of the silo for the requested file; and
upon determining the requested file is not in a private portion of the silo, searches a public portion of the silo; and
returns a handle to the requested file.
2 Assignments
0 Petitions
Accused Products
Abstract
Two or more separate physical file system directories are presented as one merged (virtual) file system directory to a process running in a silo. The operating system controls the level of access to the files in the merge directory. The operating system provides the merged view of the file system directories by monitoring file system requests made by processes in silos on a computer or computer system and in response to detecting certain types of file system access requests, provides the view of the seemingly merged directories by performing special processing. The types of requests which trigger the special processing include: enumeration, open, create, rename or close.
-
Citations
19 Claims
-
1. A system for controlling file sharing and file access, comprising:
-
a computing processor; and computing memory communicatively coupled with said computing processor, the computing memory comprising instructions executable by said computing processor, the instructions adapted for providing an operating system that; associates a plurality of processes with a first silo defined in the operating system and provides a first silo-specific view of a first plurality of file system directories for processes running in the first silo, and associates a plurality of processes with a second silo defined in the operating system and provides a second silo-specific view of a second plurality of file system directories for processes running in the second silo, wherein the operating system comprises a filter driver, the filter driver in response to detecting a request by a process for a name for a file existing in one of the first plurality of file system directories defined for the first silo-specific view and existing in one of the second plurality of file system directories defined for the second silo-specific view; determines whether the process is running in either of the first silo defined in the operating system or the second silo defined in the operating system; upon determining the process is running in neither the first silo nor the second silo, the filter driver retrieves a name for the file from the operating system and returns the name to the process, the name reflecting neither the first silo-specific view nor the second silo-specific view; upon determining the process is running in the first silo, the filter driver retrieves a name for the file from the operating system, changes the name to reflect the first silo-specific view, and returns the changed file name to the process; and upon determining the process is running in the second silo, the filter driver retrieves a name for the file from the operating system, changes the name to reflect the second silo-specific view, and returns the changed file name to the process; wherein in response to determining that the file access request is an open file request, the filter driver; determines whether the file request is an absolute open request comprising an absolute path name or a relative file request comprising a path name relative to an existing open file or directory; determines whether the process making the file request is in a silo by examining a silo identifier in the request; upon determining the process making the file request is in a silo, re-writes the request to access a file in the silo; retrieves the merged directory metadata for the silo; searches a private portion of the silo for the requested file; and upon determining the requested file is not in a private portion of the silo, searches a public portion of the silo; and returns a handle to the requested file. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method implemented in a computing system for controlling file sharing and file access, the method comprising:
-
defining a first silo in an operating system, the first silo defining a first silo-specific view of a first plurality of file system directories for processes running in the first silo; associating a plurality of processes with the first silo defined in an operating system;
defining a second silo in an operating system, the second silo defining a second silo-specific view of a second plurality of file system directories for processes running in the second silo, at least a portion of the second plurality of file system directories defined for the second silo-specific view being the same as the first plurality of file system directories defined for the first silo-specific view;associating a plurality of processes with the second silo defined in the operating system; and using a filter driver in the operating system to monitor processes executing in an operating system for receipt of a file access request, wherein the filter driver in response to detecting a request by a process for a name for a file existing in one of the first plurality of file system directories defined for the first silo-specific view and existing in one of the second plurality of file system directories defined for the second silo-specific view; determines whether the process is running in either of the first silo defined in the operating system or the second silo defined in the operating system; upon determining the process is running in neither the first silo nor the second silo, the filter driver retrieves a name for the file from the operating system and returns the name to the process, the name reflecting neither the first silo-specific view nor the second silo-specific view; upon determining the process is running in the first silo, the filter driver retrieves a name for the file from the operating system, changes the name to reflect the first silo-specific view, and returns the changed file name to the process; and upon determining the process is running in the second silo, the filter driver retrieves a name for the file from the operating system, changes the name to reflect the second silo-specific view, and returns the changed file name to the process; wherein in response to determining that the file access request is an open file request, the filter driver; determines whether the file request is an absolute open request comprising an absolute path name or a relative file request comprising a path name relative to an existing open file or directory; determines whether the process making the file request is in a silo by examining a silo identifier in the request; upon determining the process making the file request is in a silo, re-writes the request to access a file in the silo; re-writes the merged directory medadata for the silo; searches a private portion of the silo for the requested file; and upon determining the requested file is not in a private portion of the silo, searches a public portion of the silo; and returns a handle to the requested file. - View Dependent Claims (8, 9, 10, 11, 12, 13)
-
-
14. A computer-readable storage device, other than a signal, having program code stored thereon that, when executed by a computing environment, causes the computing environment to:
-
associate a plurality of processes with a first silo, the first silo defining a first specific view of a first plurality of file system directories for processes running in the first silo; associate a plurality of processes with a second silo, the second silo defining a second silo-specific view of a second plurality of file system directories for processes running in the second silo, at least a portion of the second plurality of file system directories defined for the second silo-specific view being the same as the first plurality of file system directories defined for the first silo-specific view; use a filter driver of an operating system to monitor processes running in the second_silo, wherein the filter driver detects a file access request made by a process running in the second silo, the operating system determining the process is in the second silo using a silo identifier with which the process is tagged; a filter driver in the operating system monitoring processes executing in an operating system for receipt of a file access request; wherein the filter driver in response to detecting a request by a process for a name for a file existing in one of the first plurality of file system directories defined for the first silo-specific view and existing in one of the second plurality of file system directories defined for the second silo-specific view; determines whether the process is running in either of the first silo defined in the operating system or the second silo defined in the operating system; upon determining the process is running in neither the first silo nor the second silo, the filter driver retrieves a name for the file from the operating system and returns the name to the process, the name reflecting neither the first silo-specific view nor the second silo-specific view; upon determining the process is running in the first silo, the filter driver retrieves a name for the file from the operating system, changes the name to reflect the first silo-specific view, the name of the file reflecting a directory specific to the first silo; and upon determining the process is running in the second silo, the filter driver retrieves a name for the file from the operating system, changes the name to reflect the second silo-specific view, the name of the file reflecting a directory specific to the second silo; wherein in response to determining that the file access request is an open file request, the filter driver; determines whether the file request is an absolute open request comprising an absolute path name or a relative file request comprising a path name relative to an existing open file or directory; determines whether the process making the file request is in a silo by examining a silo identifier in the request; upon determining the process making the file request is in a silo, re-writes the request to access a file in the silo; re-writes the merged directory metadata for the silo; searches a private portion of the silo for the requested file; and upon determining the requested file is not in a private portion of the silo, searches a public portion of the silo; and returnes a handle to the requested file. - View Dependent Claims (15, 16, 17, 18, 19)
-
Specification