Linuxの標準ファイルシステム----EXT 2
EXT 2はいくつかの重要な部分に分かれています.
inode、block、superblock
EXT 2はファイルを2つの部分に分けて格納し、ファイルの権限などの属性をinodeに格納し、実際のデータをblockに格納します.superblockはもちろんファイルシステム全体のinodeとblockの情報を記録します.
(1)inode:
1つのinodeのサイズは128バイトに固定され、1つのファイルは1つのinodeを占有するが、1つのinodeが1つのblockだけを保存する指向を表すわけではない.1つのファイルは通常Nつのblockによって保存されるからである.
inodeには、ファイルへのアクセス権、所属するユーザー/ユーザーグループ、サイズ、atime、ctime、mtime、指向が基本的に記録されます.の
128バイトの固定サイズから見ると、ファイルシステムが作成できるファイルの数はinodeの数に関係しているに違いない.
(2)block:
≪ディレクトリ|Directory|emdw≫:ディレクトリの下にあるファイル名と、そのファイル名が使用するinode番号を記録します.
≪データ|Data|emdw≫:ファイル・データの記録
1つのブロックサイズは1 K、2 K、4 Kの3種類に分けられ、4 Kの場合は100 Kのファイルを作成するには25個のブロックが必要です
上記のinodeとblockの紹介では、ファイルシステムが保存できる最大ファイル量について議論することができます.
もし1つのinodeが1つのblockを指すならば、100 Kのファイルで計算すると、25個のinodeが必要になります.これは本当にもったいないですね.inodeがいくら小さくても128バイトあるので、EXT 2はこのような資源の浪費問題を解決するために、
inodeの指向を設計し、inodeを12個の直接指向、1つの間接指向、1つの二重間接指向、1つの三間接指向に分け、残りはファイル権限と属性を記録するために使用される.
1 Kのblockで計算:
12個の直接指向、直接blockを指向すれば、最大12個のblockを指向することができ、最大ファイルサイズは:12*1 K=12 Kである.
1つの間接的な指向、blockを指し、さらにblockによって他のblockを指し、1つのblock番号を記録するポインタは4バイトを占め、このように1 Kのblockは最大256個のblockを指し、最大ファイルサイズは256*1 K=256 Kである.
2つの間接的な指向、1つのblockを指し、このblockによって256個のblockを指し、各blockは256個のblockを指し、このように、最大ファイルサイズは256*256*1 Kである.
1つの3つの間接指向、2つの間接指向推理では、3階の256個のblockをそれぞれ256個のblockに指向させ、最大ファイルサイズは256*256*256*256*1 Kである.
明らかに、1 Kのblockのファイルシステムの最大格納可能なファイルサイズは:16 GBである.
(2 K、4 Kの場合はEXT 2自体の制約により現実に合わない結果になる)
(3)superblock
ファイルシステム全体の関連情報を記録し、ファイルシステムと共存する
inodeとblockの合計、未使用と使用のinodeとblock量、ファイルシステムのマウントに関する情報が記録されています...
(4)ファイルシステムの表示
このコマンドを使用すると、/dev/hdc 2などのマウントされたデバイスファイルを見つけることができます.
(5)ディレクトリツリーからファイルを読み込む
読み取り/etc/passwdを例に
システムはまず、マウントポイントの情報によって、現在のデバイスファイルのルートディレクトリのinodeを見つけ、inodeにルートディレクトリのrとx権限が記録されていることを検出すると、ルートディレクトリに入り、blockの内容を取得することができる.
ルートディレクトリに入ると、blockに従って、/etcディレクトリのinodeを見つけます.
inodeを読み取り、ユーザがrとxの権限を持っていることを読み取ると、blockを取得して読み取り、そのディレクトリに入る.
blockによってpasswdのinodeが見つかり、inodeが読み込まれ、r権限がある場合、passwdのblock内容が読み込まれます.
inode、block、superblock
EXT 2はファイルを2つの部分に分けて格納し、ファイルの権限などの属性をinodeに格納し、実際のデータをblockに格納します.superblockはもちろんファイルシステム全体のinodeとblockの情報を記録します.
(1)inode:
1つのinodeのサイズは128バイトに固定され、1つのファイルは1つのinodeを占有するが、1つのinodeが1つのblockだけを保存する指向を表すわけではない.1つのファイルは通常Nつのblockによって保存されるからである.
inodeには、ファイルへのアクセス権、所属するユーザー/ユーザーグループ、サイズ、atime、ctime、mtime、指向が基本的に記録されます.の
128バイトの固定サイズから見ると、ファイルシステムが作成できるファイルの数はinodeの数に関係しているに違いない.
(2)block:
≪ディレクトリ|Directory|emdw≫:ディレクトリの下にあるファイル名と、そのファイル名が使用するinode番号を記録します.
≪データ|Data|emdw≫:ファイル・データの記録
1つのブロックサイズは1 K、2 K、4 Kの3種類に分けられ、4 Kの場合は100 Kのファイルを作成するには25個のブロックが必要です
上記のinodeとblockの紹介では、ファイルシステムが保存できる最大ファイル量について議論することができます.
もし1つのinodeが1つのblockを指すならば、100 Kのファイルで計算すると、25個のinodeが必要になります.これは本当にもったいないですね.inodeがいくら小さくても128バイトあるので、EXT 2はこのような資源の浪費問題を解決するために、
inodeの指向を設計し、inodeを12個の直接指向、1つの間接指向、1つの二重間接指向、1つの三間接指向に分け、残りはファイル権限と属性を記録するために使用される.
1 Kのblockで計算:
12個の直接指向、直接blockを指向すれば、最大12個のblockを指向することができ、最大ファイルサイズは:12*1 K=12 Kである.
1つの間接的な指向、blockを指し、さらにblockによって他のblockを指し、1つのblock番号を記録するポインタは4バイトを占め、このように1 Kのblockは最大256個のblockを指し、最大ファイルサイズは256*1 K=256 Kである.
2つの間接的な指向、1つのblockを指し、このblockによって256個のblockを指し、各blockは256個のblockを指し、このように、最大ファイルサイズは256*256*1 Kである.
1つの3つの間接指向、2つの間接指向推理では、3階の256個のblockをそれぞれ256個のblockに指向させ、最大ファイルサイズは256*256*256*256*1 Kである.
明らかに、1 Kのblockのファイルシステムの最大格納可能なファイルサイズは:16 GBである.
(2 K、4 Kの場合はEXT 2自体の制約により現実に合わない結果になる)
(3)superblock
ファイルシステム全体の関連情報を記録し、ファイルシステムと共存する
inodeとblockの合計、未使用と使用のinodeとblock量、ファイルシステムのマウントに関する情報が記録されています...
(4)ファイルシステムの表示
$ df
このコマンドを使用すると、/dev/hdc 2などのマウントされたデバイスファイルを見つけることができます.
$ dumpe2fs /dev/hdc2
このコマンドは、このデバイスファイルで使用されているファイルシステムとsuperblockに類似した情報を表示することができます(superblockよりも記録が多いかもしれませんが、本当に多いので、見終わっていません..)(5)ディレクトリツリーからファイルを読み込む
読み取り/etc/passwdを例に
システムはまず、マウントポイントの情報によって、現在のデバイスファイルのルートディレクトリのinodeを見つけ、inodeにルートディレクトリのrとx権限が記録されていることを検出すると、ルートディレクトリに入り、blockの内容を取得することができる.
ルートディレクトリに入ると、blockに従って、/etcディレクトリのinodeを見つけます.
inodeを読み取り、ユーザがrとxの権限を持っていることを読み取ると、blockを取得して読み取り、そのディレクトリに入る.
blockによってpasswdのinodeが見つかり、inodeが読み込まれ、r権限がある場合、passwdのblock内容が読み込まれます.