Qualquer E / S é tratada por uma chamada do sistema chamada por um processo. Eventualmente, tal chamada de sistema irá chegar a alguma função de driver de dispositivo de baixo nível apropriada para executar a operação real de E / S.
E / S pode ser complicado - para realmente obter dados dentro e fora do dispositivo, várias etapas podem precisar ser seguidas, em ordem e possivelmente com os requisitos de tempo. Se essas etapas não forem concluídas atomicamente, na próxima vez em que forem executadas, o dispositivo poderá não responder, comportar-se incorretamente ou até mesmo travar o sistema. Essas etapas podem ser diferentes e exclusivas para cada dispositivo, por isso, há tantos drivers de dispositivo.
Um driver de dispositivo bem escrito deve saber como lidar com o dispositivo que está tentando atender, por isso normalmente não deve ter problemas, a menos que haja um bug de driver, você esteja usando o driver errado para o dispositivo ou falhando.