Input devices give our operating system the ability to accept mouse and keyboard inputs from the graphical user interface (GUI). We originally used the UART (universal asynchronous receiver/transmitter) for console I/O, but we're high class now--we have a GUI! So, we will use the virtio protocol to communicate with a mouse and keyboard.