Patent ID: 8280908

Claim:
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.