두 개의 하드 링크 파일이 inode를 공유함

두 개의 하드 링크 파일이 inode를 공유함

저는 대학 과정에 대한 과제를 수행하고 있는데 질문 중 하나에서 동일한 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년대처럼 작동하지 않습니다.

관련 정보