Linux では、プロトコル スタックは、ネットワーク内のすべての層のプロトコルの合計であるコンピュータ ネットワーク プロトコル スイートの特定のソフトウェア実装です。プロトコル スイート内のプロトコルは、通常、1 つのみのために設計されています。プロトコル スタックはネットワーク内のファイル転送プロセスを反映するため、設計が容易になります。
#このチュートリアルの動作環境: linux7.3 システム、Dell G3 コンピューター。
プロトコル スタック (英語: Protocol stack) は、プロトコル スタックとも呼ばれ、コンピューター ネットワーク プロトコル スイートの特定のソフトウェア実装です。プロトコル スイート内のプロトコルは通常、1 つの目的のみのために設計されるため、設計が容易になります。各プロトコル モジュールは通常、その上下にある他の 2 つのプロトコル モジュールと通信するため、通常はプロトコル スタック内の層として考えることができます。最下位レベルのプロトコルは常にハードウェアとの物理的な相互作用を記述します。上級レベルごとにさらに多くの機能が追加されます。ユーザー アプリケーションはトップレベル プロトコルのみを処理します。
#説明: ネットワーク内のすべてのプロトコル層の合計は、ネットワーク内のファイル転送プロセスを反映します
Linux ストレージ プロトコル スタックの概要:
データ フロー:
アプリケーションは、システム コールを通じて書き込みリクエストを発行します。最終的な目標は、データをディスクに書き込むことです。ファイル システムは位置決めを担当します。これにより、リクエストの場所が書き込まれ、それがブロック デバイスに必要なブロックに変換され、リクエストがデバイスに送信されます。
“mmap() (ファイルハンドル fd で指定された) ファイルのオフセット位置から始まる長さのブロックをメモリ領域にマッピングします。これにより、ファイルの特定のセクションがプロセスのアドレス空間にマッピングされます。プログラムは、ファイルにアクセスするためにメモリにアクセスできます。"
"典型的な例は、/dev/mem を使用して、MMU がアクセスできるいくつかの物理アドレスをアプリケーション層の仮想アドレスにマップし、特定の物理アドレスを直接アクセスできるようにすることです。アプリケーション層でアクセスされます。簡単なドライバー開発。」
仮想ファイル システム
「仮想ファイル システムは、さまざまな特定のファイル システム上に抽象化層を確立することで、異なるファイル システム間の差異を保護します。仮想ファイル システムの階層化アーキテクチャを通じて、ファイルを操作するときに、関連するファイルが配置されている特定のファイル システムの詳細を気にする必要はありません。"
"異なるストレージ デバイスや異なるファイル システム間でこの種の操作を可能にするのは、仮想ファイル システムです。"
VFS が提供する共通 API は次のとおりです:
mount(), umount() … open(),close() … mkdir() …
mkfs.ext4 /dev/sda mkfs.btrfs /dev/sdbカーネルでサポートされているファイル システム タイプは、カーネル ディレクトリ ツリーの fs ディレクトリの内容から確認できます。
一般的なハード ドライブ タイプには、PATA、SATA、AHCI などがあります。Linux システムでは、さまざまなハード ドライブに提供されるドライバー モジュールは、通常、カーネル ディレクトリ ツリー drivers / に保存されます。 ata、および汎用ハード ディスク ドライブの場合は、カーネルに直接コンパイルされ、モジュールとして表示されない可能性があります。これは、/boot/config-xxx.xxx ファイルを表示することで確認できます。
推奨学習: Linux ビデオ チュートリアル
以上がLinuxプロトコルスタックとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。