I livelli di astrazione come questo servono per uniformare i diversi hardware nei confronti del software che li vuole utilizzare:
chi crea l'hardware, crea anche il driver per accedere all'hardware e che implementa le specifiche del livello di astrazione
Chi vuole usare l'hardware, non ci accede direttamente, ma attraverso il livello di astrazione.
In questo modo, se cambi l'hardware, non devi riscrivere il programma
Pensa alle diverse schede grafiche, o ai dischi rigidi (ssd, chiavette usb, il cellulare collegato con il cavetto al pc), o ai mouse, tastiere, scanner, ecc...