FAT16에 대한 정보를 찾으려는 모든 사이트는 2GB 이상을 할당 할 수 없다고 선언적으로 나타냅니다. 승인. 큰. 당신을 믿어요 그러나 (단지 테스트하는 것 이외의) 결론에 도달하는 방법은 무엇입니까?
FAT16 시스템이 보유 할 수있는 양을 결정하는 데 사용할 수있는 공식이 있습니까?
FAT16에 대한 정보를 찾으려는 모든 사이트는 2GB 이상을 할당 할 수 없다고 선언적으로 나타냅니다. 승인. 큰. 당신을 믿어요 그러나 (단지 테스트하는 것 이외의) 결론에 도달하는 방법은 무엇입니까?
FAT16 시스템이 보유 할 수있는 양을 결정하는 데 사용할 수있는 공식이 있습니까?
답변:
FAT16은 16 비트를 사용하여 클러스터를 식별합니다. 따라서 식별자가 부족하기 전에 최대 65536 개의 클러스터가 있으며 일부 식별자는 파일이 아닌 용도로 예약되어 있습니다. 각 파일은 하나 이상의 클러스터를 차지합니다. 클러스터가 클수록 파일 당 최소 할당량이 증가하여 작은 파일의 오버 헤드가 증가합니다.
그런 다음 클러스터 크기는 식별 가능한 최대 볼륨을 알려줍니다. 32KiB 클러스터의 경우 32 * 1024 * 65536 B = 2GiB입니다.
당신은 수있는 온 - 디스크 섹터 크기를 증가시켜, 무기한 클러스터의 크기를 증가,하지만 당신은 파일의 최대 수에 제한 남아있다. 또한 기본 섹터 크기 (512B)를 가정 한 소프트웨어 관련 문제가 발생할 수 있습니다
~ 2GiB의 물리적 볼륨을 쉽게 사용할 수있는 시점에서 프로세서와 OS는 32 비트이므로 FAT32로 이동하는 것이 합리적인 선택이었으며 소규모 클러스터에서 훨씬 더 많은 파일을 허용했습니다.
실제로 한계가 다른 몇 년 동안 "FAT16"의 여러 변형이 있었지만 "compaq DOS 3.31"에서 Windows 95까지 지속 된 버전을 고려해 보겠습니다.
FAT 볼륨은 클러스터로 나뉩니다. 각 클러스터는 두 개의 섹터로 구성됩니다. FAT16에서 클러스터 당 섹터 수는 8 비트 부호있는 숫자로 저장됩니다. 따라서 클러스터 당 가능한 최대 섹터는 64입니다.
클러스터 번호는 16 비트 부호없는 값으로 저장되었습니다. 총 클러스터를 65536으로 제한합니다. 클러스터 당 최대 섹터 수를 곱하면 4194304 섹터의 한계가 있습니다.
하드 드라이브의 (논리적) 섹터 크기는 512 바이트입니다. 위에서 언급 한 섹터 수의 제한에 곱하면 2GiB 제한이 적용됩니다. 원칙적으로 섹터 크기가 더 큰 매체는 더 큰 FAT16 볼륨을 지원할 수 있지만 실제로는 이것이 발생했다고 생각하지 않습니다.
Windows NT는 "클러스터 당 섹터"필드의 해석이 부호없는 8 비트로 변경되었습니다. 이것은 512 바이트 섹터를 갖는 4GiB FAT16 파티션을 허용했습니다 (이론적으로 섹터가 큰 드라이브에서는 이론적으로 더 큼). AIUI Windows 98은 이러한 파티션을 읽고 쓰는 기능을 추가했지만 파티션을 만들 수 없었으며 디스크 유틸리티는 복구 할 수 없었습니다.
더 큰 클러스터와 더 큰 볼륨을 지원하기 위해 파일 시스템 형식을 상대적으로 약간 조정하는 것이 가능했을 것입니다. 그러나 MS는 FAT32를 생성하는 Windows 95 OSR2를 사용하여 32 비트 클러스터 인덱스로 이동하는보다 급진적 인 옵션을 사용하기로 결정했습니다.
더 급진적 인 옵션을 선택한 이유는 공간 효율성이었습니다. 32kiB 클러스터는 이미 상당히 낭비 였고 더 큰 클러스터는 이동했을 때 일반적인 파일 크기를 감안했을 때.