ホームページ  >  記事  >  運用・保守  >  Linux キャラクターデバイスとは何ですか?

Linux キャラクターデバイスとは何ですか?

青灯夜游
青灯夜游オリジナル
2022-05-12 15:56:005041ブラウズ

Linux キャラクター デバイスには次のものが含まれます: 1. マウスはコンピュータの外部入力デバイスであり、コンピュータ ディスプレイ システムの垂直および水平座標を配置するためのインジケータです; 2. キーボードは、コンピュータを操作するために使用される命令です。コンピュータ装置およびデータ入力装置 3. シリアルポート端末、コンピュータのシリアルポートを使用して接続される端末装置 4. 制御端末 5. コンソールなど

Linux キャラクターデバイスとは何ですか?

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

管理を容易にするために、Linux システムではデバイスを次の 3 つの基本タイプに分類します。
  • キャラクター デバイス
  • ブロック デバイス
  • ネットワーク デバイス

これらはすべて、ファイル ノード (crw--) の形式でファイル システムの /dev ディレクトリに表示されます。 w---- 1 root tty 4, 0 July 11 09:11 tty0 ここで、c はキャラクターデバイスタイプを表します。

linux キャラクター デバイス

キャラクター デバイスとは、マウス、キーボード、マウス、キーボードなど、バッファリングせずに直接読み書きできるデバイスを指します。シリアル ポート デバイス、モデムなど。ブロック デバイスとの違いは、文字操作の基本単位がバイトであることです。

キャラクターデバイスの分類

キャラクターデバイスには、主にコンソールやキーボードなどの制御端末機器やシリアル端末機器が含まれます。キャラクタ端末装置は、機能やハードウェアの違いにより次のように分類されます。
  • シリアルポート端末 (/dev/ttSn): コンピュータのシリアルポート、シリアルポートを使用して接続される端末装置。デバイスのデータ送信方式は同一文字の 8 ビット単行送信で、コマンドラインに echo 'hello world' > /dev/ttyS0 と入力して、入力を対応するデバイスに書き込みます。
  • 疑似端末 (/dev/ttyp、/dev/ptyp): 最下層には実際のハードウェア デバイスがないことに対応し、端末を提供するために使用されます。ホストへのネットワーク ログインなど、他のプログラム用のスタイル インターフェイス ネットワーク サーバーとシェル プログラム間の端末インターフェイス。
  • 制御端末 (/dev/tty): メイン デバイス番号は 5 です。プロセス制御端末はプロセスに関連付けられています。たとえば、ログイン シェル プロセスは端末 /dev を使用します。 /てぃ。
  • コンソール (/dev/ttyn,/dev/consol): コンピューターの入出力用のモニターです。コンソールにログインすると tty1 が使用され、ubuntu グラフィカル インターフェイスでは tty1 が使用されます。 tty7 。
  • その他のタイプ: 現在の Linux には、ISIDIN デバイスの /dev/ttyIn デバイスなど、さまざまなデバイス用の他のタイプのデバイス特殊ファイルが多数あります。

#以下はキャラクターデバイスの構造の概略図です。

Linux キャラクターデバイスとは何ですか?

キャラクターの性質と特徴device

  • Character device はデバイス ファイル システムの一種で、基盤となるハードウェアによって上位層に提供される論理デバイス ファイルに相当します。ポート (データ レジスタ) をファイルに接続すると、デバイス ドライバーがファイルに直接アクセスするため、読み取りおよび書き込み操作はポート上で直接実行されます。また、キャラクター デバイス ドライバーは、ファイルとして、open()、close()、write()、read() などのファイルの基本操作も実装する必要があります。もちろん、ターミナル リダイレクト操作もサポートされています。

  • キャラクタデバイスファイルファイルはシングルバイト単位で読み書きされるため、ハードウェアバッファを設定する必要はありません。デバイスは、オペレーティング システムによってバイト ストリームとしてアクセスされます。バイト ストリームは、ハードウェア ポートとファイル システムの間に送信パイプを設定するようなもので、バイトはパイプを通じて 1 つずつ送信され、リーダーとライターの両方に提供されます。このストリーミング機能はドライバーにバッファー キューとして実装されます。例: コンソール構造

struct tty_struct {
struct termios termios;
int pgrp;
int stopped;
void (*write)(struct tty_struct * tty);
struct tty_queue read_q;               //读队列
struct tty_queue write_q;              //写队列
struct tty_queue secondary;            //tty辅助队列(存放规格化后的字符)
};
  • キャラクターデバイス内の読み取り/書き込みバッファーキューは、キャラクターデバイス番号によって識別されます。キャラクタ デバイス番号は、メジャー デバイス番号とマイナー デバイス番号で構成されます。たとえば、/dev/ttyS0 のデバイス番号は (4, 64) です。メジャー デバイス番号は、デバイスに対応するドライバを識別し、カーネルはデバイスとドライバーを 1 対 1 で照合するメジャー デバイス番号。一般に、マイナー デバイス番号は、ドライバーがデバイスの詳細を区別するために内部で使用するコードに使用されます。他の部分では使用されません。カーネルの。

関連する推奨事項: 「Linux ビデオ チュートリアル

以上がLinux キャラクターデバイスとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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