C에서 파일 시스템을 직접 구현해야합니다. FAT 시스템과 유사한 시스템을 만들 계획입니다. 크기가 10MB 인 파일 하나가 주어지며,이 파일은 우리 자신의 "디스크"역할을합니다. FAT 테이블에는 클러스터 번호가 저장되고 루트 디렉토리에는 파일 이름, 크기, 마지막 수정 날짜 및 시간, FAT 시작 블록 등 작성한 각 파일에 대한 기타 관련 정보가 저장된다는 사실을 알고 있습니다. 그러나 클러스터 번호가 디스크의 데이터 영역에있는 물리적 주소로 어떻게 변환되는지 혼란 스럽습니다.FAT 파일 시스템에서 메모리 변환이 어떻게 작동합니까?
예를 들어, 루트 디렉토리의 항목에서 FAT 테이블의 블록 100에서 파일이 시작되고 FAT 테이블의 블록 100에서 정수 327이 있다고 가정하면 파일의 다음 클러스터 위치. 이 주소는 디스크의 데이터 영역에있는 물리적 주소로 어떻게 변환됩니까? 이 실제 주소는 어디에서 번역되고 저장됩니까?
아니요. 루트 디렉토리는 파일에 대한 정보를 루트 디렉토리에 저장합니다. FAT 테이블에는 파일에 대한 메타 데이터가 저장됩니다. 시작 클러스터, 크기, 파일 이름, 어쩌구 저쩌구. –
FAT가 어떻게 작동했는지에 대한 오래된 DOS 3 또는 4 시대 참고 자료를 찾고 싶다면 아키텍처를 에뮬레이트하고 싶을 것입니다. 나는 마크 (Marc)와 동의한다. –