ご利用いただけます。カーネルは要求されたファイルのディレクトリを検索する必要がありますが、カーネルはルートファイルのinode番号が一定であるためカーネルはどこから開始するのかを常に知っているため、問題はありません。extシステムファミリのinode 2です。カーネルは、ディレクトリ内のファイル名を見つけたら、ファイル名をinode番号に変換します。各ディレクトリは(ファイル名、inode)フィールドを持つエントリを保持する特別な種類のファイルなので、ディレクトリを検索することによってカーネルはファイルのinodeを見つけることができます。
カーネルがファイルのinodeを見つけたら、このiノードはの通常ファイルのブロックアドレスを保持しているため、そのファイルに格納されているデータの場所を特定するために使用されます。ファイルのブロックアドレスは、ファイルに格納されている実際のデータを保持します。 *通常のファイルとsymlinkファイルの違いは、symlinkファイルは別の場所を指すファイルであるため、カーネルは同じ一連のステップを2回実行する必要があります。つまり、シンボリックリンクファイルのinodeが見つかった場合カーネルはsymlinkファイルが指すファイルパスに対して同じ操作をやり直さなければなりません。ディレクトリ内で検索し、ディレクトリ内で一致するファイル名を見つけてinode番号を取得する必要があります。これは明らかにオーバーヘッドを追加します。
再帰(a.kサイクリック)シンボリックリンクは無効なシンボリックリンクです。
私があなたの質問に答えたのかどうかはわかりませんが、それは一般的に起こることです。物理的なファイルシステムである上下のVFSレイヤーもあります。いくつかのファイルシステムは、vfatのようなシンボリックリンクをサポートしていません。
"解決"とは、シンボリックリンクが含まれていない同じファイルへのパスを形成することですか?その場合、(1)シンボリックリンクが別のシンボリックリンクを指すことができる、 (2)シンボリックリンクがマルチコンポーネントパス(シンボリックリンクを構成できるコンポーネントのどれか)を指すことができます。 (3)シンボリックリンクは絶対的でも相対的でもあります。 (4)シンボリックリンクが存在しないパスを指すことがあります。 –
@JohnBollingerは再帰的に使用できますか? – Vad
「再帰的」とはどういう意味ですか? – melpomene