FAT 파일 시스템은 클러스터 연결 목록(연결된 파일 할당)을 통해 파일을 나타냅니다.
주소 지정 가능한 클러스터만큼 많은 항목이 있는 하나 이상의 테이블(파일 할당 테이블)을 위한 디스크 영역이 있습니다. 각 항목은 다음과 같습니다.
- 파일 목록의 다음 클러스터에 대한 포인터
- 연결된 목록의 마지막 클러스터를 나타내는 마커
- 미사용 태그
- 나쁜 점수
심볼릭 링크의 경우 FAT는 ext 파일 시스템처럼 파일 경로를 가리키거나 저장할 수 없는 것 같습니다. 내가 생각할 수 있는 가장 가까운 것은 연결 목록의 헤드를 가리키는 것인데, 이는 일종의 유지 관리가 필요합니다.
하드 링크와 마찬가지로 FAT 파일 시스템에는 파일 간에 "공유"할 수 있는 파일 노드가 없습니다. 파일에 대한 링크 수를 추적할 방법도 없습니다.
답변1
파일 시스템의 경우 "그렇게 설계되지 않았기 때문에"라고 대답할 것 같습니다. 즉, 이를 기본 파일 시스템으로 사용하는 운영 체제 중 어느 것도 심볼릭 링크에 대한 아이디어를 원하거나 필요로 하지 않거나 심지어 제시하지도 않기 때문에 구현되지 않습니다.
파일 시스템 구현/드라이버의 경우 이론적으로 심볼릭 링크 지원을 추가할 수 있지만 파일 시스템에는 파일을 일반 파일이 아닌 링크로 표시하는 방법이 필요합니다(링크 텍스트는 일반 파일 데이터처럼 저장될 수 있음). 이 기능은 구현된 적이 없으므로 이를 수행할 수 있는 기존 방법이 없습니다. 사람들은 다음 중 하나의 영역을 선택해야 합니다.디렉토리 항목파일을 링크된 것으로 표시하지만 이 구현은 다른 구현과 호환되지 않습니다. 최소한 다른 시스템에서는 링크 지원을 추가하지 않을 것이므로 지원되지 않을 것입니다.
또한 FAT는 상당히 오래된 파일 시스템이며 대부분 상호 운용성이 유용하다고 간주되는 경우에만 사용됩니다. 이를 염두에 두고 기존 표준을 변경하는 것은 나쁜 생각이며, 진지하게 사용하려면 모든 운영 체제가 링크 등을 지원하는 더 나은 파일 시스템을 갖추고 있습니다.
하드 링크는 파일 이름을 다른 메타데이터와 다른 위치에 배치하는 데 크게 의존하기 때문에 더욱 어렵습니다. Unix 유형 파일 시스템에서 inode는 대부분의 메타데이터를 보유하고 디렉토리에는 inode에 대한 포인터만 포함됩니다. FAT에서는 디렉토리 항목에 이름이 포함됩니다.그리고기타 모든 메타데이터. 따라서 여러 하드 링크가 있는 파일의 메타데이터를 저장할 수 있는 장소가 없습니다.