Was ist ein Charaktergerät?

7

Ich habe versucht, eine Partition auf meinem USB-Laufwerk zu erstellen, als ich auf einige Dateien / Entitäten stieß, /dev/die mir unbekannt erschienen (z. B. hidraw2). Als ich / dev im Dateimanager geöffnet und ihre Eigenschaften untersucht habe, heißt es, dass sie es sind character devices. Bei der Suche nach ihnen bin ich auf Beiträge gestoßen, die erklären, was "Blockgeräte" sind, aber bisher keinen solchen Beitrag für Charaktergeräte.

Ich würde gerne wissen, was ein Charaktergerät ist und was es tut. Ich frage mich auch, warum sie Geräte genannt werden.

NurShomik
quelle
1
Außerdem bietet der Hidraw- Treiber eine unformatierte Schnittstelle zu USB- und Bluetooth-Human-Interface-Geräten (HIDs).
AbraCadaver

Antworten:

10

Dies ist eine einfache Erklärung:

  • Ein Zeichengerät ('c') ist ein Gerät, mit dem der Treiber durch Senden und Empfangen einzelner Zeichen (Bytes, Oktette) kommuniziert.
  • Ein Blockgerät ('b') ist ein Gerät, mit dem der Treiber durch Senden ganzer Datenblöcke kommuniziert.
  • Beispiele für Zeichengeräte: serielle Schnittstellen, parallele Schnittstellen, Soundkarten.
  • Beispiele für Blockgeräte: Festplatten, USB-Kameras, Disk-On-Key.
  • Für den Benutzer spielt der Typ des Geräts (Block oder Zeichen) keine Rolle - Sie kümmern sich nur darum, dass es sich um eine Festplattenpartition oder eine Soundkarte handelt.
  • Treiberprogrammierer kümmern sich jedoch darum.

Hier ist mehr:

16.1.4.2 Block- und Zeichengeräte Ein Blockgerät ist für den Betrieb in Bezug auf die von Digital UNIX unterstützten Block-E / A ausgelegt. Der Zugriff erfolgt über den Puffercache. Einem Blockgerät ist ein Blockgerätetreiber zugeordnet, der E / A ausführt, indem Puffer in Blockgröße des Dateisystems aus einem vom Kernel bereitgestellten Puffercache verwendet werden. Blockgerätetreiber eignen sich besonders gut für Festplatten, die am häufigsten verwendeten Blockgeräte.

Ein Zeichengerät ist jedes Gerät, von dem Zeichenströme gelesen oder darauf geschrieben werden können. Einem Zeichengerät ist ein Zeichengerätetreiber zugeordnet, der für ein Gerät wie einen Zeilendrucker verwendet werden kann, der jeweils ein Zeichen verarbeitet. Zeichentreiber sind jedoch nicht darauf beschränkt, E / A für jeweils ein einzelnes Zeichen auszuführen (trotz des Namens "Zeichentreiber"). Beispielsweise führen Bandtreiber häufig E / A in 10-KB-Blöcken durch. Ein Zeichengerätetreiber kann auch verwendet werden, wenn Daten direkt in oder von einem Benutzerprozess kopiert werden müssen. Aufgrund ihrer Flexibilität beim Umgang mit E / A sind viele Treiber Charaktertreiber. Zeilendrucker, interaktive Terminals und Grafikdisplays sind Beispiele für Geräte, für die Zeichengerätetreiber erforderlich sind.

Quellen:

http://haifux.org/lectures/86-sil/kernel-modules-drivers/node10.html

https://arstechnica.com/civis/viewtopic.php?t=787631

George Udosen
quelle
Danke für die Antwort. Dies erklärt sowohl Block- als auch Zeichengeräte deutlich.
NurShomik
Herzlich willkommen @NurShomik!
George Udosen