Skip to Main Content
With applications increasingly moving to the cloud, it is becoming common for an application to be separated by the network from the I/O devices with which the user is interacting. Currently this requires modifying the application to receive user input from the network rather than the device. We present a new I/O architecture in which the device driver is split into two parts, with the network between them. This architecture makes the network invisible to both device and application, allowing both of them to work unmodified. Our architecture also supports transformation modules, each of which comes in a pair that operates on each side of the network. Via these module pairs, the resulting system is capable of supporting the modification of the I/O stream in a variety of ways to compensate for the network, while remaining transparent to the application.