2つのハードリンクファイルがinodeを共有する

2つのハードリンクファイルがinodeを共有する

私は大学のコースに挑戦していますが、質問の1つで同じinodeを指すように、あるファイルから別のファイルへのハードリンクを生成するコマンドを要求しました。参照用に.pdfファイルをリンクしましたが、説明されているプロセスについては説明しません。標準のハードリンクを生成することと異なる点はありますか?

答え1

ハードリンクはファイル「間」にはありませんが、インデックスノード、各ディレクトリの> 1項目はすべてこのinodeを指します。ls -iinodeが表示されたら、ln(ハードリンク)とln -s(ソフトリンクまたはシンボリックリンク)を試してください。

$ touch afile
$ ln -s afile symbolic
$ ln afile bfile
$ ls -1 -i afile symbolic bfile
7602191 afile
7602191 bfile
7602204 symbolic
$ readlink symbolic
afile
$

答え2

何もinode当然とは思えません。

人々が一般的inodeに考えているのは、UFSで再実装されたUNIXv6 / UNIXv7ファイルシステムの実装の詳細です。実装の詳細に頼ることはできません。

存在する場合はまったくなく、特定のファイルを識別するために使用できる場合inode structureのみです。inode number

ファイルを「ハードリンク」するときにシステムが実行することは、リンクされたすべてのファイルに対してstat()システムコールを実行したときに同じinode番号を取得できるようにディレクトリエントリをソートすることです。

まだ inode 構造を使用するファイルシステムでは、ディレクトリエントリが同じ inode 構造を指すようにしてこれを行います。

記録中のコピー(したがって私の1991年のWOFS論文のソース)を使用する最新のファイルシステム(ZFSはこれらのファイルシステム)にはinode構造はありません。

私のWOFSは、gnodesファイルに書き込み操作が行われるたびに新しい番号に置き換えられるgnode番号を使用します(この場合、別の場所に新しいgnode書き込みがあるため)。しかし、時間が経っても安定したままになる追加のinode番号があります。 WOFSでは、「ハードリンク」はinode関連のシンボルリンクとして実装され、WOFSの「symlink」は名前関連のシンボルリンクです。同じファイルを指す5つの名前のハードリンクファイルに5つのgnode構造があることに注意してください。

ZFS は inode と gnode の概念を組み合わせて使用​​します。しかし、現代のファイルシステムであるZFSは1970年代のようには機能しません。

関連情報