2014-01-13 2 views
2

UNIX 시스템에서는 파일 이름을 inode에 직접 저장하지 않지만 매핑 시스템을 사용하는 이유는 알 수 없습니다. inode가 정의되어 있으므로 긴 파일 이름을 저장할 수 없으므로 변경할 수 없습니다. 어쩌면 inode에서 한 번 더 할 필요가없는 파일 이름을 변경했을 수도 있습니다.파일 이름을 inode에 직접 저장할 수없는 이유는 무엇입니까?

내가 틀렸거나 다른 설명이있는 경우 알려주십시오. 사전에 감사

+1

동일한 파일 [둘 이상의 이름이있는 경우] (https://en.wikipedia.org/wiki/Hard_link)은 어떻게됩니까? –

+0

inode에 연결된 파일이 두 개 이상 있다면 의미합니까? 그렇다면 문제가 될 수 있습니다. – Ben

+0

디렉토리에 무엇을 저장 하시겠습니까? 아이 노드 번호 만? 그것은 단일 파일에 대해 여러 이름을 허용하지 않습니다. inode는 이름을 제외한 파일에 대한 모든 정보를 포함하고 있으며, 디렉토리는 inode의 이름을 정의합니다. –

답변

3

이유는 바로 아이 노드에서 파일 이름을 포함하지 않는, 여기 내 마음에 와서 이유입니다 :

  1. 파일이 여러 이름을 가질 수있다, 일명 하드 링크
  2. 하는 긴 지원 파일 이름, 적어도 255 바이트 (대부분의 POSIX 시스템에서), inode는 매우 클 것이고 보통 파일 이름이 너무 길지 않기 때문에 많은 공간이 낭비됩니다.
  3. 장래에 우리가 더 긴 파일 이름을 지원하기 원한다면, 우리는 inode의 구조를 바꿔야 할 필요가 있으며 이것은 역 호환성 문제를 일으킬 수 있습니다.
관련 문제