ホームページ  >  記事  >  運用・保守  >  Linuxデバイスファイルにはどのような種類がありますか?

Linuxデバイスファイルにはどのような種類がありますか?

青灯夜游
青灯夜游オリジナル
2022-05-11 18:11:475245ブラウズ

Linux デバイス ファイルには 2 つのタイプがあります: 1. キャラクタ デバイスは、バイト ストリームのようにアクセスできるデバイス ファイルです。キャラクタ デバイスに読み取りまたは書き込みリクエストが発行されると、対応する IO 操作が即座に発生します。 . 一般的な文字 デバイスには、文字端末、シリアル ポート、キーボード、およびマウスが含まれます。 2. ブロック デバイスは、TO 操作を実行するときにブロック単位でアクセスする必要があるデバイス ファイルです。 ブロック デバイスは、ファイル システムをインストールできます。 一般的なブロック デバイスには、ハードディスク、フロッピー ディスクが含まれますドライブ、Blu-ray、リーダー、フラッシュ メモリ。

Linuxデバイスファイルにはどのような種類がありますか?

#このチュートリアルの動作環境: linux5.9.8 システム、Dell G3 コンピューター。

デバイス ファイルの概要

Unix 系オペレーティング システムでは、デバイス ファイルまたは特殊ファイルはデバイス ドライバーのインターフェイスであり、ファイル内に表示されます。システムは通常のファイルであるかのように起動されます。 MS-DOS、OS/2、および Microsoft Windows にも特殊なファイルがあります。これらの特別なファイルにより、アプリケーションは、標準入出力システム コールを通じてデバイス ドライバーを使用してデバイスと対話できるようになります。標準システム コールを使用すると、多くのプログラミング タスクが簡素化され、デバイスの機能や機能に関係なく、一貫したユーザー空間 I/O メカニズムが有効になります。

デバイス ファイルは通常、標準デバイス (プリンターやシリアル ポートなど) への単純なインターフェイスを提供しますが、これらのデバイス上の特定の一意のリソース (ディスク パーティションなど) にアクセスするために使用することもできます。さらに、デバイス ファイルは、データ シンクや乱数ジェネレーターなど、実際のデバイスに関連付けられていないシステム リソースにアクセスするのに役立ちます。

Linux システムでは、次の 7 種類のファイルがあります。

  • 通常のファイル (-)

  • ディレクトリ(d)

  • ソフトリンク(文字リンクL)

  • ソケットファイル(S)

  • キャラクター デバイス (S)

  • ブロック デバイス (B)

  • ##パイプ ファイル (名前付きパイプ P)

したがって、デバイス ファイルには、キャラクタ デバイスとブロック デバイスの 2 種類があります。

(1) キャラクタデバイス

キャラクタデバイスは、バイトストリームのようにアクセスできるデバイスで、キャラクタを読み書きする場合に使用します。デバイスが要求されると、対応する IO 操作が直ちに実行されます。 Linux システムの多くのデバイスは、キャラクター端末、シリアル ポート、キーボード、マウスなどのキャラクター デバイスです。組み込み Linux 開発で最も一般的なのは、キャラクター デバイスとドライバーです。

(2) ブロックデバイス

ブロックデバイスは、Linux システムで TO 操作を行う際にブロック単位でアクセスする必要があり、ファイルシステムをインストールすることができるデバイスです。ブロック デバイス ドライバーはシステム メモリの一部をバッファとして使用するため、ブロック デバイスへの読み取りおよび書き込みアクセスを発行しても、必ずしも直ちにハードウェア I/O 操作が行われるわけではありません。 Linux システムの一般的なブロック デバイスには、ハードディスク、フロッピー ドライブなどが含まれます。

ブロック デバイスとキャラクター デバイスの区別

  • ブロック デバイスは、ランダム (必ずしもシーケンシャルではない) を渡すハードウェア デバイスです。固定サイズのデータ​​ブロック(チャンク)にアクセスして区別します。固定サイズのチャンクはブロックと呼ばれます。最も一般的なブロック デバイスはハードディスクですが、フロッピー ドライブ、Blu-ray リーダー、フラッシュ メモリなど、他にも多くのブロック デバイスが存在します。これらはファイル システムがマウントされているデバイスであり、ファイル システムはブロック デバイスの共通語のようなものであることに注意してください。

  • キャラクタ デバイスは、バイトごとに連続したデータ ストリームを通じてアクセスされます。典型的なキャラクター デバイスは、端末 (物理端末と仮想端末の両方でさまざまな種類の端末があります) とキーボードです。

ブロック デバイスとキャラクター デバイスを区別する最も簡単な方法は、データへのアクセス方法に注目することです。ブロック デバイスはデータを取得するためにランダムにアクセスできますが、キャラクタ デバイスはバイト オーダーでアクセスする必要があります。

ここで少しのデータを読み取り、そこから少しのデータを読み取り、最終的にそれを連続したデータにつなげることができる場合、これはブロック デバイスです。ハードディスク上のデータが不連続であるのと同じように、データを取得するには、ランダム アクセス メソッドを通じてアクセスする必要がある場合があります。たとえば、ディスク上の少し大きなファイルでは、最初の 10,000 個のデータが連続したデータ ブロックまたは連続したセクターに存在し、次の 10,000 個のデータがそこから遠く離れているか、異なるシリンダー上にある可能性があります。

データ内の各バイトがアクセス時と同じバイト順序である場合、つまり、バイト順序がアクセス時からデータの最終処理まで完全に一貫している場合、これはキャラクターデバイス。つまり、キャラクター デバイスはストリーム デバイスと考えることができます。キーボードでデータを入力するのと同じように、2 つのキーを連続して押した場合、これら 2 つのキーに対応するバイト データを受信したときに、最初に前に入力し、次に後ろに入力する必要があります。同様に、端末デバイスも同様に動作します。プログラムが端末にデータを出力するとき、プログラムは最初に文字 a を出力し、次に数字の 3 を出力します。その後、端末に表示されるときは、a が前に、3 が後ろにある必要があります。後ろ。

関連する推奨事項: 「

Linux ビデオ チュートリアル

以上がLinuxデバイスファイルにはどのような種類がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。