디렉토리 인덱스 노드

디렉토리 인덱스 노드

ext4파일 시스템(또는 거의 모든 Linux 파일 시스템)의 inode에 대해 배울 때 디렉터리에도 inode 항목이 있다는 것을 발견했습니다. 그러나 나는 한 가지 미묘한 측면에 대해 약간 혼란스러워합니다.

  • 디렉토리의 inode 구조가 파일의 inode 항목과 유사합니까?협회

또는

  • 파일 inode(예: .txt등)와 다른가요?협회

두 기사 모두에서 디렉토리는 단순히 파일 이름을 inode 값에 매핑하는 파일이라고 언급되었습니다. 그러나 첫 번째 링크에서는 디렉토리 내용(맵)을 메모리 블록의 별도 데이터풀 세그먼트로 지정하고 inode 테이블은 데이터풀의 inode 값을 저장하는 반면, 다른 링크에서는 작성자가 언급한(이미지에서) 디렉토리의 inode 구조에 매핑됩니다.

따라서 디렉터리의 매핑된 내용과 inode 테이블의 inode 항목이 별도의 메모리 블록에 저장되어 특정 메모리 블록을 가리키는지 아니면 함께 저장되는지(파일 이름과 inode 값 간의 매핑) ) inode로 저장되는지 의문이 생깁니다. 서브파일과 디렉토리 데이터를 포함하는 추가 메모리 블록 없이 inode 테이블 자체에 항목이 있습니까?

도와주세요.

답변1

첫 번째 참조(단일 차트)는 (대체로) 쓰레기입니다. inode가 "content_of_file_2"를 직접 가리킨다고 말하는 것은 터무니없는 단순화입니다. 나는 이 맥락에서 "데이터 풀"이라는 용어가 사용된 것을 본 적이 없습니다.

이것이 하는 일은 디렉터리/파일 계층 구조가 트리라는 것을 보여주며, 각 단계에서 inode 목록을 살펴봄으로써 그렇게 합니다.

두 번째 참조가 더 좋아 보이지만 완전히 읽지는 않았습니다. 이것은 아직 완전한 설명은 아니지만 "완전한" 것은 10개의 약간 다른 파일 시스템을 처리해야 합니다.

참조 1에서는 디렉터리와 파일이 유사하게 처리된다고 말하고 참조 2에서는 서로 다르다고 말하는 이유를 이해할 수 없습니다. 두 항목 유형 모두에 공통적인 사항은 동일하게 취급됩니다. 차이점은 파일에는 사용자 데이터를 보관하는 여러 블록이 있는 반면, 디렉터리에는 파일 시스템 데이터(특히 이름 및 inode 테이블)를 보관하는 여러 블록이 있다는 것입니다.

관련 정보