デバイスファイルとデバイスドライバの違い

デバイスファイルとデバイスドライバの違い

私はデバイスドライバプログラミングの初心者です。

Linuxでは、デバイスドライバとデバイスファイルの違いを理解していません。

誰でも違いを説明できますか?

ベストアンサー1

デバイスドライバ特定の種類の機器を操作または制御するソフトウェアです。現代ではフルカーネルオペレーティングシステム これは通常カーネルの一部です。 Linuxを含む多くのモノリシックカーネルには、実行時に実行可能なモジュールをロードできるモジュール式設計があります。デバイスドライバは通常この機能を利用しますが、デバイスドライバがカーネルイメージにコンパイルされるのを防ぐ方法はありません。

デバイスファイルこれはデバイスドライバへのインタフェースであり、通常のファイルであるかのようにファイルシステムに表示されます。 Unixファミリーのオペレーティングシステムでは、通常は/dev次のディレクトリにあります。デバイスノード。デバイスファイルは以下を表すことができます。キャラクターデバイス、ストリーミングデータを一度に1文字ずつ書き出すか、ブロックデバイスデータブロックへのランダムアクセスを許可します。

デバイスノードは次のように構成されます。mknodシステムコール。デバイスノードによって公開されたカーネルリソースは、プライマリ番号とセカンダリ番号。一般に、主装置番号は装置ドライバを識別し、補助装置番号はドライバによって制御される特定の装置を識別する。

デバイスファイルに含まれる内容は、デバイスドライバがデバイスファイルを介して公開する内容によって異なります。たとえば、マウスを表す文字デバイスファイルは、/dev/input/miceマウスの動きを文字ストリームとして公開しますが、ハードディスクを表すブロックデバイスファイルたとえば/dev/sda、デバイスメモリのアドレス指定可能な領域を公開します。一部のデバイスファイルは入力を許可するため、ユーザースペースアプリケーションはデバイスファイルに書き込んでデバイスと通信できます。

おすすめ記事