4、ファイルI / O
1.最上位のアプリケーション層は、さまざまな機能インターフェイス(開く、読み取り、書き込みなど)を介して最下位の通常のファイルにアクセスできます。また、ドライバーにアクセスしてから、最下位のハードウェアにアクセスすることもできます。
一方では、アプリケーションは基盤となるハードウェアがどのように動作するかを気にする必要はありませんが、アプリケーションのビジネスを担当するだけで済みます。他方では、最下位の開発者がドライバーを作成し、ドライバーの機能を提供します。トップレベルのアプリケーション開発者へのインターフェース。各部分は独自の役割を果たし、得意なことを実行します。
2.ファイルはどこから来ますか?
(1)ハードウェアデバイスから
。ディスク、フラッシュ、SDカード、Uディスクなどのハードウェアデバイス内のファイルは、ハードウェアデバイスに保存されている実際のファイルです。アクセスする場合は、最初にデバイスをマウントする必要があります。
例:SDカード内のファイルにアクセスします
(a)デバイスをマウントします。これは、sda(合計パーティション)、sda1(パーティション1)、sda2(パーティション2)の3つのパーティションがあることを示し、
自動的にマウントされるかどうかを確認します。
cat / proc / mounts
/ dev / sda2がmedia / usb0ディレクトリの下にマウントされ、/ dev / sda1がmedia / usb1ディレクトリの下にマウントされていることを示しており、自動的にマウントされていることを示しています。
自動的にマウントされない場合は、mountコマンドを使用して手動でマウントできます。
マウント/ dev / sda1 / mnt
このように、sda1パーティション内のファイルは、通常のファイルと同じように、/ mntディレクトリを読み取ることで読み取ることができます。
(2)
Linuxカーネルが提供する仮想ファイルシステムからこの仮想ファイルシステムを介してLinuxカーネルの情報を表示します。
このシステムのファイルには、マウントによってアクセスすることもできます。詳細については、[ナレッジポイント:ルートファイルシステム]の関連する注意事項を参照してください。
(3)特殊ファイル:たとえば
、/ devディレクトリ内のファイルはデバイスノードと呼ばれます。デバイスノードにアクセスする場合、実際の操作はハードウェアです(ドライバーを介してハードウェアにアクセスします)。
各デバイスノードには、対応する主要デバイスがあります。番号とマイナーデバイス番号、およびドライブタイプ。
ドライバーは、キャラクターデバイスドライバーとブロックデバイスドライバーに分けられ、ファイルの種類によって区別されます。Cはキャラクターデバイスドライバーであるcharを表し、bはブロックデバイスドライバーであるblockを
表します。メジャーデバイス番号は対応するドライバー。
マイナーデバイス番号は、対応するメジャーデバイス番号を示します。
アプリケーションプログラムによって駆動されるハードウェアはどれですか。アプリケーションがこれらのデバイスノードにアクセスしてからドライバーにアクセスするのは、オープン、読み取り、書き込みなどの標準インターフェイスを介して行われます。次に、ハードウェアにアクセスします。
3.ファイルへのアクセス方法:
(1)一般的なI / Oモデル:開く、読み取る、書き込む、閉じる、lssek
(2)一般的でないモデル:ioctl、mmap
(3)これらの関数の使用法を理解する:man、help
など:
男2オープン
4.システムコールはどのようにしてカーネルに入りますか:わずかに