IP Library Granted Patent US 8,250,262
Granted Patent B2
US 8,250,262 · App. 12/652,264 · Granted Aug 21, 2012

Systems and methods for input/output isolation

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,250,262
App. No.
12/652,264
Granted
Aug 21, 2012
Kind
B2
Abstract

Systems and methods for providing virtual stacks are described. A kernel driver is installed and loaded. Then, a virtual stack is created, the virtual stack having a virtual file system, a virtual physical disk, and one or more virtual mounted volume devices. The virtual file system is configured to mimic characteristics of a host file system. The virtual physical disk is configured for providing an interface of a memory storage device to which the virtual file system device binds. The one or more virtual mounted volume devices are configured for allowing the one or more virtual processes to access data in stored memory through the virtual stack.

Claims (31)

1. A method comprising:

creating, by a computer that includes a host input/output (I/O) processing stack within an operating system, a virtual I/O processing stack within the operating system that includes a virtual file system, a virtual physical disk device, and one or more virtual mounted volume devices, wherein the virtual I/O processing stack is configured to process I/O requests issued by one or more virtual processes and share an I/O manager with the host I/O processing stack, the I/O manager being configured to route each I/O request issued by the one or more virtual processes to the virtual I/O processing stack.

2. The method of claim 1 , wherein the virtual I/O processing stack further includes one or more filters, and wherein the method further comprises:

creating, by the computer, a virtual filter manager to manage the one or more filters; and

creating the host I/O processing stack within the operating system, the host I/O processing stack configured to process I/O requests issued by one or more host processes, wherein the host I/O processing stack includes a host filter manager, a host file system, a host physical disk device, and one or more logical mounted volume devices, and wherein the I/O manager is configured to route each I/O request issued by the one or more host processes to the host I/O processing stack.

3. The method of claim 2 , wherein the virtual I/O processing stack is isolated from the host I/O processing stack, such that the virtual filter manager is only able to interact with one or more elements of the virtual I/O processing stack and the host filter manager is only able to interact with one or more elements of the host I/O processing stack.

4. The method of claim 1 , wherein the virtual file system is configured to mimic characteristics of a host file system, wherein the virtual physical disk device is configured to provide an interface of a memory storage device to which the virtual file system device binds, and wherein the one or more virtual mounted volume devices are configured to allow the one or more virtual processes to access data in stored memory through the virtual I/O processing stack.

5. The method of claim 1 , wherein processing the I/O requests issued by the one or more virtual processes includes determining whether to redirect each I/O request issued by the one or more virtual processes to a file system different than the virtual file system.

6. The method of claim 1 , wherein routing each I/O request issued by the one or more virtual processes to the virtual I/O processing stack includes determining that each I/O request was issued by the virtual I/O processing stack.

7. The method of claim 3 , wherein the host filter manager is configured to manage one or more second filters, wherein the one or more elements of the virtual I/O processing stack includes the one or more filters, and wherein the one or more elements of the host I/O processing stack includes the one or more second filters.

8. The method of claim 7 , wherein the one or more filters includes a first antivirus product, and the one or more second filters includes a second antivirus product different from the first antivirus product.

9. A computer readable storage medium storing executable instructions configured to, when executed, cause a computing device to:

create a virtual input/output (I/O) processing stack within an operating system of the computing device, the virtual I/O processing stack including a virtual file system, a virtual physical disk device, and one or more virtual mounted volume devices, wherein the virtual I/O processing stack is configured to process I/O requests issued by one or more virtual processes and share an I/O manager with a host I/O processing stack within the operating system, the I/O manager being configured to route each I/O request issued by the one or more virtual processes to the virtual I/O processing stack.

10. The computer readable storage medium of claim 9 , wherein the virtual I/O processing stack further includes one or more filters, and wherein the computer readable storage medium further stores executable instructions configured to, when executed, cause the computing device to:

create a virtual filter manager to manage the one or more filters; and

create the host I/O processing stack within the operating system, the host I/O processing stack configured to process I/O requests issued by one or more host processes, wherein the host I/O processing stack includes a host filter manager, a host file system, a host physical disk device, and one or more logical mounted volume devices, and wherein the I/O manager is configured to route each I/O request issued by the one or more host processes to the host I/O processing stack.

11. The computer readable storage medium of claim 9 , wherein the virtual I/O processing stack is isolated from the host I/O processing stack such that the virtual filter manager is only able to interact with one or more elements of the virtual I/O processing stack and the host filter manager is only able to interact with one or more elements of the host I/O processing stack.

12. The computer readable storage medium of claim 9 , wherein the virtual file system is configured to mimic characteristics of a host file system, wherein the virtual physical disk device is configured to provide an interface of a memory storage device to which the virtual file system device binds, and wherein the one or more virtual mounted volume devices are configured to allow the one or more virtual processes to access data in stored memory through the virtual I/O processing stack.

13. The computer readable storage medium of claim 9 , wherein processing the I/O requests issued by the one or more virtual processes includes determining whether to redirect each I/O request issued by the one or more virtual processes to a file system different than the virtual file system.

14. The computer readable storage medium of claim 11 , wherein the host filter manager is configured to manage one or more second filters, wherein the one or more elements of the virtual I/O processing stack includes the one or more filters, and wherein the one or more elements of the host I/O processing stack includes the one or more second filters.

15. The computer readable storage medium of claim 14 , wherein the one or more filters includes a first antivirus product, and the one or more second filters includes a second antivirus product different from the first antivirus product.

16. A computer, comprising:

a processor; and

memory storing executable instructions configured to, when executed by the processor, cause the computer to:

create a host input/output (I/O) processing stack within an operating system of the computer, the host I/O processing stack including a host file system, a host physical disk device, and one or more logical mounted volume devices, wherein the host I/O processing stack is configured to process I/O requests issued by one or more host processes;

create a virtual I/O processing stack within the operating system, the virtual I/O processing stack including a virtual file system, a virtual physical disk device, and one or more virtual mounted volume devices, wherein the virtual I/O processing stack is configured to process I/O requests issued by one or more virtual processes; and

share an I/O manager with the host I/O processing stack and the virtual I/O processing stack, wherein the I/O manager is configured to route each I/O request issued by the one or more host processes to the host I/O processing stack and route each I/O request issued by the one or more virtual processes to the virtual I/O processing stack.

17. The computer of claim 16 , wherein the host I/O processing stack further includes a host filter manager and the virtual I/O processing stack further includes a virtual filter manager, and wherein the virtual I/O processing stack is isolated from the host I/O processing stack such that the host filter manager is only able to interact with one or more elements of the host I/O processing stack and the virtual filter manager is only able to interact with one or more elements of the virtual I/O processing stack.

18. The computer of claim 16 , wherein the virtual file system is configured to mimic characteristics of the host file system, wherein the virtual physical disk device is configured to provide an interface of a memory storage device to which the virtual file system device binds, and wherein the one or more virtual mounted volume devices are configured to allow the one or more virtual processes to access data in stored memory through the virtual I/O processing stack.

19. The computer of claim 16 , wherein processing the I/O requests issued by the one or more virtual processes includes determining whether to redirect each I/O request issued by the one or more virtual processes to a file system different than the virtual file system.

20. The computer of claim 17 , wherein the virtual filter manager is configured to manage one or more filters and the host filter manager is configured to manage one or more second filters, wherein the one or more filters includes a first antivirus product, and the one or more second filters includes a second antivirus product, and wherein the one or more elements of the virtual I/O processing stack includes the one or more filters, and wherein the one or more elements of the host I/O processing stack includes the one or more second filters.

Assignments (8)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →