Da diese Klassifizierung aber nicht perfekt ist, existieren einige Geräte die nicht klar einzuordnen sind. So liefern z.B. Uhren keinen Zeichenstrom, unterstützen aber auch keine adressierbaren Blöcke. Trotz dieser Schwäche hat sich eine grobe Einteilung in Block- und Zeichengeräte in vielen Betriebssystemen durchgesetzt.
Weiterführende Unterteilungen der Klassen sind meist systemspezifisch und in die Betrachtungen einzubeziehen (siehe Abschnitt 2.5.1). So kann ein Gerätetreiber für einen DSP (Soundkarte) -- obwohl auch ein Zeichengerät -- eine weitaus umfangreichere Kernumgebung erfordern als einer für die serielle Schnittstelle.
An dieser Stelle spielen auch Subsysteme eine große Rolle. Treiber für SCSI-Geräte z.B. benötigen viele Funktionalitäten aus dem SCSI-Subsystem, das Warteschlangen verwaltet und Synchronisation durchführt. Ein IDE-Treiber hingegen sollte eine schlankere Umgebung voraussetzen, schon allein aus dem Fakt heraus, daß die angesteuerten Endgeräte nicht so vielfältig wie bei SCSI sein können.
Die Adresse von Geräten (zumindest in UNIX Systemen) setzt sich aus mehreren Teilen zusammen. So muß beim Zugriff der Gerätetyp -- char oder block -- der Treiber in Form einer major Nummer und die Gerätenummer -- minor number -- angegeben werden.