Adresses des registres mappées en mémoire. Vecteur d'interruption. Mémoire tampon, code détecteur d'erreurs et accès DMA pour les contrôleurs de disques ; entrelacement des secteurs.
Fragment de logiciel adapté au contrôleur. Transforme les requêtes de haut niveau (numéro de bloc piste, secteur). Traite les interruptions et les erreurs.
Dans le système, logiciel indépendant des périphériques. Allocation et libération de buffers. Périphériques blocs et caractères.
Les logiciels utilisateurs font de la mise en forme (printf), ou gèrent des files d'attente (spool).
Temps de recherche, temps de latence, et temps de transfert. FIFO, PCTR, et balayage (ou ascenseur). Antémémoire.
Interruptions à intervalles réglables.
Mise à jour du temps : 32 bits ne suffisent pas pour un temps précis à 1/50ème de seconde près.
Gestion des alarmes par une liste chaînée ordonnée et ``différentielle''.
Compteurs de garde (watchdog timers).
Liaisons séries : UART = Universal Asynchronous Reveiver/Transmitter. RS/232.
Terminaux mappés en mémoire ; bitmaps, pixels.
Claviers : modes cru et cuit. Conversion entre événements (enfoncement ou relâchement d'une touche) et codes ASCII.
Interposer un logiciel entre le client, d'une part, l'écran, le clavier et la souris d'autre part. Boucle de gestion des événements.