Linux キャラクター デバイスには次のものが含まれます: 1. マウスはコンピュータの外部入力デバイスであり、コンピュータ ディスプレイ システムの垂直および水平座標を配置するためのインジケータです; 2. キーボードは、コンピュータを操作するために使用される命令です。コンピュータ装置およびデータ入力装置 3. シリアルポート端末、コンピュータのシリアルポートを使用して接続される端末装置 4. 制御端末 5. コンソールなど
#このチュートリアルの動作環境: linux5.9.8 システム、Dell G3 コンピューター。
管理を容易にするために、Linux システムではデバイスを次の 3 つの基本タイプに分類します。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 サイトの他の関連記事を参照してください。