Ardalan Sani, Rethinking System Support for I/O Devices

Slides

New I/O devices are rapidly emerging in computer systems. These devices include sensors and actuators in mobile systems and accelerators in data centers. However, computer systems still treat these devices as second-class citizens, supporting them with ad hoc and poorly-developed system software. This challenges system reliability and security and hinders novel system services such as remote access and virtualization.

This talk discusses our initial steps towards solving these challenges. Given that the fundamental service provided by many computer systems is I/O, we envision that these systems should be treated as I/O servers that are accessible by software running anywhere. Towards this end, the talk introduces a novel interface for remote access to I/O devices based on Unix device files and shows that this interface enables both I/O sharing between mobile systems and I/O virtualization (essentially I/O sharing between a virtual machine and a physical machine). It also presents library drivers, a solution for enhancing the security of I/O servers by reducing the size and attack surface of the device driver Trusted Computing Base (TCB). The talk finally highlights new research directions as I/O devices are taking a central role in modern systems of various form factors.