From a programmer's point of view, the user is a peripheral that types when you issue a read request.