Es gibt zwei Arten von Linux-Gerätedateien: 1. Zeichengeräte sind Gerätedateien, auf die wie ein Byte-Stream zugegriffen werden kann. Wenn eine Lese- oder Schreibanforderung an ein Zeichengerät ausgegeben wird, erfolgt die entsprechende E/A-Operation sofort verfügen über Zeichenterminals, serielle Schnittstelle, Tastatur, Maus; 2. Blockgerät ist eine Gerätedatei, auf die bei der Ausführung von TO-Vorgängen zugegriffen werden muss. Zu den gängigen Blockgeräten gehören Festplatten, Diskettenlaufwerke und Blu-ray. Ray-Reader und Flash-Speicher.
Die Betriebsumgebung dieses Tutorials: Linux5.9.8-System, Dell G3-Computer.
Übersicht über Gerätedateien
In Unix-ähnlichen Betriebssystemen ist eine Gerätedatei oder spezielle Datei die Schnittstelle zu einem Gerätetreiber und erscheint im Dateisystem, als wäre es eine normale Datei. Es gibt auch spezielle Dateien in MS-DOS, OS/2 und Microsoft Windows. Diese speziellen Dateien ermöglichen einer Anwendung die Interaktion mit einem Gerät mithilfe seines Gerätetreibers über Standard-Eingabe-/Ausgabe-Systemaufrufe. Die Verwendung von Standardsystemaufrufen vereinfacht viele Programmieraufgaben und ermöglicht konsistente E/A-Mechanismen im Benutzerbereich, unabhängig von den Merkmalen und Fähigkeiten des Geräts.
Gerätedateien stellen normalerweise einfache Schnittstellen zu Standardgeräten (z. B. Druckern und seriellen Anschlüssen) bereit, können aber auch für den Zugriff auf bestimmte einzigartige Ressourcen auf diesen Geräten (z. B. Festplattenpartitionen) verwendet werden. Darüber hinaus sind Gerätedateien nützlich für den Zugriff auf Systemressourcen, die keinem tatsächlichen Gerät zugeordnet sind, wie z. B. Datensenken und Zufallszahlengeneratoren.
Unter dem Linux-System gibt es sieben Dateitypen:
Gewöhnliche Datei (-)
Verzeichnis (d)
Softlink (Zeichenlink L)
Socket-Datei( S)
Character Device(S)
Block Device(B)
Pipe File (Named Pipe P)
Daher gibt es zwei Arten von Device-Dateien: Character Device und Gerät blockieren.
(1) Zeichengerät
Zeichengerät ist ein Gerät, auf das wie ein Byte-Stream zugegriffen werden kann. Wenn eine Lese- oder Schreibanforderung an ein Zeichengerät ausgegeben wird, wird der entsprechende E/A-Vorgang sofort ausgeführt. Viele Geräte im Linux-System sind Zeichengeräte, z. B. Zeichenterminals, serielle Schnittstellen, Tastaturen, Mäuse usw. In der Embedded-Linux-Entwicklung sind Zeichengeräte und Treiber am häufigsten.
(2) Blockgerät
Blockgerät ist ein Gerät, auf das in Blöcken zugegriffen werden muss, wenn TO-Vorgänge im Linux-System ausgeführt werden. Blockgeräte können Dateisysteme installieren. Der Blockgerätetreiber verwendet einen Teil des Systemspeichers als Puffer, sodass Lese- und Schreibzugriffe auf das Blockgerät nicht unbedingt sofort zu Hardware-E/A-Vorgängen führen. Zu den gängigen Blockgeräten in Linux-Systemen gehören Festplatten, Diskettenlaufwerke usw.
Unterscheiden Sie zwischen Blockgeräten und Zeichengeräten
Blockgeräte sind Hardwaregeräte, die sich durch zufälligen (nicht unbedingt sequenziellen) Zugriff auf Datenblöcke fester Größe auszeichnen. Ein Chunk mit fester Größe wird als Block bezeichnet. Das gebräuchlichste Blockgerät ist die Festplatte, es gibt jedoch auch viele andere Blockgeräte wie Diskettenlaufwerke, Blu-ray-Lesegeräte und Flash-Speicher. Beachten Sie, dass es sich dabei um Geräte handelt, auf denen Dateisysteme gemountet sind, und dass Dateisysteme wie eine Verkehrssprache für Blockgeräte sind.
Der Zugriff auf Zeichengeräte erfolgt über einen kontinuierlichen Datenstrom, Byte für Byte. Typische Zeichengeräte sind Terminals (es gibt viele Arten von Terminals, sowohl physische als auch virtuelle) und Tastaturen.
Der einfachste Weg, Blockgeräte und Zeichengeräte zu unterscheiden, besteht darin, sich die Art und Weise anzusehen, wie auf Daten zugegriffen wird. Auf Blockgeräte kann nach dem Zufallsprinzip zugegriffen werden, um Daten zu erhalten, und auf Zeichengeräte muss in Bytereihenfolge zugegriffen werden.
Wenn Sie hier ein paar Daten lesen können, dort ein paar Daten lesen und sie schließlich zu einem ganzen Stück kontinuierlicher Daten zusammenfügen können, dann ist dies ein Blockgerät, das möglicherweise diskontinuierlich ist um ein Datenelement durch wahlfreien Zugriff zu erhalten. Beispielsweise können sich in einer etwas größeren Datei auf einer Festplatte die ersten 10.000 Daten in zusammenhängenden Datenblöcken oder in zusammenhängenden Sektoren befinden, und die nächsten 10.000 Daten können weit davon entfernt oder sogar auf verschiedenen Zylindern liegen.
Wenn jedes Byte in einem Datenelement dieselbe Bytereihenfolge wie beim Zugriff aufweist, dh die Bytereihenfolge vom Zeitpunkt des Zugriffs bis zur endgültigen Verarbeitung der Daten vollständig konsistent ist, handelt es sich um ein Zeichengerät. Mit anderen Worten: Zeichengeräte können als Stream-Geräte betrachtet werden. Genau wie bei der Eingabe von Daten auf einer Tastatur müssen beim kontinuierlichen Drücken zweier Tasten die diesen beiden Tasten entsprechenden Bytedaten beim Empfang zuerst vorne und dann hinten eingegeben werden. Ebenso funktioniert das Endgerät. Wenn das Programm Daten an das Terminal ausgibt, gibt das Programm zuerst den Buchstaben a und dann die Zahl 3 aus. Bei der Anzeige auf dem Terminal muss dann a vorne und 3 innen stehen die Rückseite.
Verwandte Empfehlungen: „Linux-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonWelche Arten von Linux-Gerätedateien gibt es?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!