Question: We described how the operating system kernel mediates access to I/O devices for safety. Some newer I/O devices are virtualizable - they permit safe access from user-level programs, such as a guest operating system running in a virtual machine. Explain how you might design the hardware and software to get this to work.