Unterschied zwischen nativen Porttreibern und Gerätetreibern?

713
smeeb

Ich kam mir vor, dass ich den Unterschied zwischen nativen Port-Treibern (dh den nativen seriellen / parallelen / USB / etc-Treibern in jedem Betriebssystem) und externen hardwarespezifischen Gerätetreibern nicht wirklich verstehe.

Wenn zum Beispiel auf meinem Betriebssystem bereits ein USB-Treiber vorhanden ist (für die Kommunikation mit USB-Geräten über die USB-Schnittstelle / den USB-Port), warum wird dann für meine glänzende neue Webcam (oder einen neuen Drucker) ein eigener Gerätetreiber bereitgestellt?

Ist es so, dass sich die "Anschluss- / Schnittstellentreiber" mit dem Einrichten der elektrischen Verbindungen mit externen / Peripheriegeräten befassen, und dass Gerätetreiber diese Treiber verwenden, um den Geräten bestimmte E / A-Befehle zu geben? Also vielleicht so etwas wie:

Unterschied zwischen nativen Porttreibern und Gerätetreibern?

Bin ich hier oder weit weg von der Basis? Werden also im obigen Szenario tatsächlich zwei Treiber verwendet (einer für das Gerät und einer für den USB-Anschluss)?

  • Wenn ja, wie ist dann die Arbeitsteilung zwischen den beiden Fahrern?
  • Warum haben dann die meisten Betriebssysteme native Porttreiber (seriell, USB usw.) und warum haben Tastaturen, Mäuse, Webcams, Drucker usw. eigene Gerätetreiber?
0

1 Antwort auf die Frage

1
Ale..chenski

Sie sind nicht weit weg von der Basis, aber auch nicht ganz richtig. Jedes USB-Gerät kündigt sich als Mitglied einer bestimmten vordefinierten Geräteklasse an - HID, COM, Mass Storage, Webcam usw. Als solches weisen diese Geräte dem Betriebssystem darauf hin, dass sie bestimmte, genau definierte Funktionen erfüllen. Das Betriebssystem lädt einen generischen Treiber für diese Klasse, und Sie sollten grundlegende Funktionen von diesem Gerät erwarten.

Viele Gerätehersteller möchten sich jedoch von anderen unterscheiden und verfügen über einige erweiterte Funktionen, wie Autofokus, Sondertasten oder zusätzliche Formate usw. In diesem Fall würde der Hersteller seinen eigenen Treiber bereitstellen, der VID / PID-spezifisch ist. Wenn dieser Treiber installiert ist, wird er vom Betriebssystem jedes Mal geladen, so dass Sie mit Ihrem neuen Gerät neue glänzende Funktionen erhalten. Die Art und Weise, wie der benutzerdefinierte Treiber implementiert wird, kann unterschiedlich sein. Es kann sich dabei um einen vollständig benutzerdefinierten Treiber handeln oder um eine Modifikation des Standardtreibers, die in der Microsoft-Welt als "Filtertreiber" bezeichnet wird, ähnlich wie in Ihrem Bild. Wie die produktspezifischen Treiber in Android / Linux implementiert werden, fragen Sie besser in entsprechenden Foren nach.