fs 지방 형식이 고려됩니다. 데이터가 손실된 경우 어떻게 해야 합니까? 지방 파일 시스템의 구성

소개

2.1 FAT16 시스템

2.2 FAT32 시스템

2.3 FAT16과 FAT32의 비교

3.1 NTFS 시스템

3.2 NTFS와 FAT32의 비교

결론

서지

소개

현재 평균적으로 수만 개의 파일이 하나의 디스크에 기록됩니다. 파일의 주소를 정확하게 지정하기 위해 이러한 다양성을 모두 정렬하는 방법은 무엇입니까? 파일 시스템의 목적은 이 문제에 대한 효과적인 솔루션입니다.

사용자의 관점에서 파일 시스템은 파일이 위치하는 "공간"이다. 그리고 과학적인 용어로, 데이터에 대한 접근을 저장하고 조직화하는 방식을 말합니다. 정보 매체또는 그 섹션. 파일 시스템이 있으면 파일 이름과 위치를 확인할 수 있습니다. IBM PC 호환 컴퓨터에서는 정보가 주로 디스크에 저장되므로 컴퓨터에서 사용되는 파일 시스템에 따라 디스크(보다 정확하게는 논리 디스크)의 데이터 구성이 결정됩니다. FAT 파일 시스템을 살펴보겠습니다.

지방 NTFS 파일 시스템

1. 창조의 역사와 일반적 특성 FAT 파일 시스템

FAT(파일 할당 테이블) 파일 시스템은 1977년 빌 게이츠와 마크 맥도날드에 의해 개발되었으며 원래 86-DOS 운영 체제에서 사용되었습니다. CP/M 운영 체제에서 86-DOS로의 프로그램 이식성을 달성하기 위해 이전에 허용된 파일 이름 제한 사항이 유지되었습니다. 86-DOS는 이후 Microsoft에 인수되어 1981년 8월에 출시된 MS-DOS 1.0의 기반이 되었습니다. FAT는 1MB보다 작은 플로피 디스크에서 작동하도록 설계되었으며 처음에는 지원을 제공하지 않았습니다. 하드 드라이브. FAT는 현재 최대 2GB 크기의 파일과 파티션을 지원합니다.

FAT는 다음과 같은 파일 명명 규칙을 사용합니다.

이름은 문자나 숫자로 시작해야 하며 공백과 "/\:; |=,^*? 문자를 제외한 모든 ASCII 문자를 포함할 수 있습니다.

이름은 8자를 초과할 수 없으며 그 뒤에 마침표와 최대 3자의 선택적 확장자가 옵니다.

파일 이름의 문자 대소문자는 구별되지 않으며 유지되지 않습니다.

FAT 파티션의 구조는 표 1.1에 나와 있습니다. BIOS 매개변수 블록에는 물리적 특성에 대한 필수 BIOS 정보가 포함되어 있습니다. 하드 드라이브. FAT 파일 시스템은 각 섹터를 개별적으로 제어할 수 없으므로 인접한 섹터를 클러스터로 그룹화합니다. 이렇게 하면 파일 시스템이 추적해야 하는 총 저장 장치 수가 줄어듭니다. FAT의 클러스터 크기는 2의 거듭제곱이며 디스크 포맷 시 볼륨 크기에 따라 결정됩니다(표 1.2). 클러스터는 파일이 차지할 수 있는 최소 공간을 나타냅니다. 이로 인해 일부 디스크 공간이 낭비됩니다. 운영 체제에는 디스크의 데이터를 압축하도록 설계된 다양한 유틸리티(DoubleSpace, DriveSpace)가 포함되어 있습니다.

테이블 1.1 - FAT 파티션 구조

부트 섹터 BIOS 매개변수 블록(BPB) FATFAT(복사본) 루트 디렉터리 파일 영역

FAT는 같은 이름의 파일 할당 테이블에서 이름을 얻었습니다. 파일 할당 테이블은 논리 디스크의 클러스터에 대한 정보를 저장합니다. FAT의 각 클러스터에는 사용 가능한지, 파일 데이터로 사용되는지, 실패(손상)로 표시되는지를 나타내는 별도의 항목이 있습니다. 클러스터가 파일에 의해 점유된 경우 파일의 다음 부분을 포함하는 클러스터의 주소가 파일 할당 테이블의 해당 항목에 표시됩니다. 이 때문에 FAT를 연결 목록 파일 시스템이라고 합니다. DOS 1.00용으로 개발된 FAT의 원래 버전은 12비트 파일 할당 테이블을 사용했으며 최대 16MB의 파티션을 지원했습니다(DOS에서는 최대 2개의 FAT 파티션을 만들 수 있습니다). 32MB보다 큰 하드 드라이브를 지원하기 위해 FAT 비트 폭이 16비트로 늘어나고 클러스터 크기가 64섹터(32KB)로 늘어났습니다. 각 클러스터에 고유한 16비트 번호를 할당할 수 있으므로 FAT는 단일 볼륨에서 최대 216개, 즉 65,536개의 클러스터를 지원합니다.

표 1.2 - 클러스터 크기

파티션 크기클러스터 크기FAT 유형< 16 Мб4 КбFAT1216 Мб - 127 Мб2 КбFAT16128 Мб - 255 Мб4 КбFAT16256 Мб - 511 Мб8 КбFAT16512 Мб - 1023 Мб16 КбFAT161 Гб - 2 Гб32 КбFAT16

부트 레코드는 시스템 파일 검색 알고리즘을 디스크에 저장하기에는 너무 작기 때문에 시스템 파일을 찾으려면 부트 레코드의 특정 위치에 있어야 합니다. 데이터 영역 시작 부분에 있는 시스템 파일의 고정 위치는 루트 디렉터리 및 파일 할당 테이블의 크기에 엄격한 제한을 부과합니다. 결과적으로 FAT 드라이브의 루트 디렉터리에 있는 파일 및 하위 디렉터리의 총 개수는 512개로 제한됩니다.

FAT의 각 파일과 하위 디렉터리는 파일 이름, 해당 속성(보관, 숨김, 시스템 및 읽기 전용)을 포함하는 32바이트 디렉터리 요소와 연결됩니다. ), 생성 날짜 및 시간(또는 입력 날짜) 최신 변경사항) 및 기타 정보(표 1.3).

표 1.3 - 카탈로그 요소

FAT 파일 시스템은 항상 채워집니다. 자유로운 장소디스크에 처음부터 끝까지 순차적으로 저장됩니다. 새 파일을 생성하거나 기존 파일을 늘릴 때 파일 할당 테이블에서 가장 먼저 사용 가능한 클러스터를 찾습니다. 작업 중에 일부 파일이 삭제되고 다른 파일의 크기가 변경된 경우 결과로 나타나는 빈 클러스터가 디스크 전체에 분산됩니다. 파일 데이터를 포함하는 클러스터가 연속적으로 위치하지 않으면 파일이 조각화됩니다. 심하게 조각난 파일은 다음 파일 레코드를 검색할 때 읽기/쓰기 헤드가 디스크의 한 영역에서 다른 영역으로 이동해야 하기 때문에 효율성을 크게 감소시킵니다. FAT를 지원하는 운영 체제에는 일반적으로 다음이 포함됩니다. 특수 유틸리티파일 작업 성능을 향상시키도록 설계된 디스크 조각 모음입니다.

FAT의 또 다른 단점은 성능이 한 디렉터리에 저장된 파일 수에 크게 좌우된다는 것입니다. 파일 수가 많은 경우(약 1000개) 디렉터리의 파일 목록을 읽는 작업에 몇 분이 걸릴 수 있습니다. 이는 FAT에서 디렉토리가 선형적이고 순서가 없는 구조를 가지며 디렉토리에 있는 파일 이름이 생성된 순서대로 지정되기 때문입니다. 결과적으로 디렉토리에 항목이 많을수록 프로그램 작동 속도가 느려집니다. 파일을 검색할 때 디렉토리에 있는 모든 항목을 순차적으로 살펴봐야 하기 때문입니다. FAT는 원래 단일 사용자 DOS 운영 체제용으로 설계되었기 때문에 소유자 정보나 파일/디렉터리 액세스 권한과 같은 정보 저장을 제공하지 않습니다. 가장 일반적인 파일 시스템이며 대부분의 최신 시스템에서 어느 정도 지원됩니다. 운영체제. 다재다능함으로 인해 FAT는 다양한 작업을 수행하는 볼륨에 사용될 수 있습니다. 운영체제.

플로피 디스크를 포맷할 때 다른 파일 시스템을 사용하는 데 장애가 없지만 대부분의 운영 체제는 호환성을 위해 FAT를 사용합니다. 이는 단순한 FAT 구조가 다른 시스템보다 오버헤드 데이터를 저장하는 데 더 적은 공간을 필요로 한다는 사실로 부분적으로 설명될 수 있습니다. 다른 파일 시스템의 장점은 100MB보다 큰 미디어에서 사용할 때만 눈에 띄게 나타납니다.

FAT는 비정상적인 컴퓨터 종료로 인한 파일 손상을 방지하지 못하는 단순한 파일 시스템이라는 점에 유의해야 합니다. FAT를 지원하는 운영 체제에는 파일 시스템의 구조를 확인하고 불일치를 수정하는 특수 유틸리티가 포함되어 있습니다.

2. FAT16과 FAT32 파일 시스템의 특징과 비교

.1 FAT16 시스템

FAT 16 파일 시스템은 DOS, Windows 95/98/Me, Windows NT/2000/XP 운영 체제의 주요 파일 시스템이며 대부분의 다른 시스템에서도 지원됩니다. FAT 16은 소형 드라이브용으로 설계된 간단한 파일 시스템입니다. 단순한 구조카탈로그. 이름은 파일 구성 방법의 이름인 파일 할당 테이블에서 유래되었습니다. 이 테이블은 디스크의 시작 부분에 있습니다. 숫자 16은 파일 시스템이 16비트임을 의미합니다. 16비트는 클러스터 주소를 지정하는 데 사용됩니다. 운영 체제는 파일 할당 테이블을 사용하여 파일을 찾고 해당 파일이 하드 드라이브에서 차지하는 클러스터를 결정합니다. 또한 테이블에는 무료 클러스터와 결함 클러스터에 대한 정보가 기록됩니다. FAT16 파일 시스템을 더 쉽게 이해할 수 있도록 책의 목차를 상상하고 이 목차를 사용하여 작업하는 방법을 생각해 보십시오. 이것이 바로 운영 체제가 FAT 16에서 작동하는 방식입니다.

파일을 읽으려면 운영 체제는 폴더에 있는 항목의 파일 이름을 조회하고 파일의 첫 번째 클러스터 번호를 읽어야 합니다. 첫 번째 클러스터는 파일의 시작을 나타냅니다. 그런 다음 파일의 첫 번째 클러스터에 해당하는 FAT 요소를 읽어야 합니다. 요소에 체인의 마지막 레이블인 레이블이 포함되어 있으면 더 이상 찾을 필요가 없습니다. 전체 파일이 하나의 클러스터에 맞습니다. 클러스터가 마지막 클러스터가 아닌 경우 테이블 요소에는 다음 클러스터의 번호가 포함됩니다. 다음 클러스터의 내용은 첫 번째 클러스터 이후에 읽어야 합니다. 체인의 마지막 클러스터가 발견되면 파일이 전체 클러스터를 차지하지 않으면 클러스터의 추가 바이트를 잘라야 합니다. 추가 바이트는 폴더 항목에 저장된 파일 길이에 따라 잘립니다.

파일을 쓰려면 운영 체제는 다음과 같은 일련의 작업을 수행해야 합니다. 무료 폴더 항목에 파일 설명이 생성된 다음 무료 FAT 항목을 찾아서 해당 항목에 대한 링크가 폴더 항목에 배치됩니다. 발견된 FAT 요소에 의해 설명되는 첫 번째 클러스터가 사용됩니다. 이 FAT 요소에는 다음 클러스터의 번호 또는 체인의 마지막 클러스터의 부호가 포함됩니다.

운영 체제는 점점 더 많은 수의 이웃 클러스터에서 체인을 수집하는 방식으로 작동합니다. 순차적으로 위치한 클러스터에 액세스하는 것이 디스크 전체에 무작위로 분산된 클러스터에 액세스하는 것보다 훨씬 빠르다는 것은 분명합니다. 이 경우 이미 점유되어 FAT에 결함이 있는 것으로 표시된 클러스터는 무시됩니다.

FAT16 파일 시스템에서는 클러스터 번호에 16비트가 할당됩니다. 따라서 최대 클러스터 수는 65525이고 최대 클러스터 크기는 128 섹터입니다. 이 경우 FAT16의 파티션 또는 디스크의 최대 크기는 4.2GB입니다. 디스크나 파티션을 논리적으로 포맷할 때 운영 체제는 결과 클러스터 수가 65525를 초과하지 않도록 최소 클러스터 크기를 사용하려고 합니다. 분명히 파티션 크기가 클수록 클러스터 크기도 커야 합니다. 많은 운영 체제는 128개 섹터의 클러스터 크기에서 제대로 작동하지 않습니다. 결과적으로 FAT16 파티션의 최대 크기는 2GB로 줄어듭니다. 일반적으로 클러스터 크기가 클수록 디스크 공간 낭비도 커집니다. 이는 파일이 차지하는 마지막 클러스터가 부분적으로만 채워져 있기 때문입니다. 예를 들어, 17KB 파일이 16KB 클러스터 크기의 파티션에 기록되면 이 파일은 두 개의 클러스터를 차지하게 됩니다. 이때 첫 번째 클러스터는 완전히 가득 차고 두 번째 클러스터에는 1KB의 데이터만 기록됩니다. 두 번째 클러스터의 나머지 15KB 공간은 비어 있으며 다른 파일에 쓸 수 없습니다. 많은 수의 작은 파일이 큰 디스크에 기록되면 디스크 공간 손실이 커집니다. 다음 표 2.1은 다음과 같은 경우 발생할 수 있는 디스크 공간 손실에 대한 정보를 제공합니다. 다른 크기부분.

테이블 2.1.1 - 디스크 공간 낭비

파티션 크기클러스터 크기디스크 공간 손실127 MB2 KB2%128-255 MB4 KB4%256-511 MB8 KB10%512-1023 MB16 KB25%1024-2047 MB32 KB40%2048-4096 MB64 KB50%

디스크 공간 낭비를 줄이는 방법에는 두 가지가 있습니다. 첫 번째는 디스크 공간을 클러스터 크기가 작은 작은 파티션으로 나누는 것입니다. 두 번째는 FAT32 파일 시스템을 사용하는 것입니다.<#"center">2.2 FAT32 시스템

FAT32 파일 시스템은 FAT 형식을 기반으로 하는 최신 파일 시스템이며 Windows 95 OSR2, Windows 98 및 Windows Millennium Edition에서 지원됩니다. FAT32는 32비트 클러스터 ID를 사용하지만 가장 중요한 4비트를 예약하므로 효과적인 클러스터 ID 크기는 28비트입니다. FAT32 클러스터의 최대 크기는 32KB이므로 FAT32는 이론적으로 8TB 볼륨을 처리할 수 있습니다. Windows 2000은 새로운 FAT32 볼륨의 크기를 32GB로 제한하지만 기존의 더 큰 FAT32 볼륨(다른 운영 체제에서 생성됨)을 지원합니다. FAT32는 더 많은 수의 클러스터를 지원하므로 FAT 16보다 디스크를 더 효율적으로 관리할 수 있습니다. FAT32는 최대 128MB 크기의 볼륨에 512바이트 클러스터를 사용할 수 있습니다.

FAT 32 파일 시스템은 Windows 98에서 기본 파일 시스템으로 사용됩니다. 이 운영 체제에는 특별 프로그램디스크를 FAT 16에서 FAT 32로 변환합니다. Windows NT 및 Windows 2000도 FAT 파일 시스템을 사용할 수 있으므로 DOS 디스크에서 컴퓨터를 부팅하여 전체 권한모든 파일에. 그러나 Windows NT 및 Windows 2000의 가장 고급 기능 중 일부는 자체 NTFS 파일 시스템(NT 파일 시스템)에서 제공됩니다. NTFS를 사용하면 최대 2TB(예: FAT 32)의 디스크 파티션을 생성할 수 있을 뿐만 아니라 네트워크 환경에서 작업할 때 필요한 파일 압축, 보안 및 감사 기능이 내장되어 있습니다. 그리고 Windows 2000에서는 FAT 32 파일 시스템에 대한 지원이 구현되었습니다. 윈도우 시스템 NT는 FAT 디스크에서 시작되지만 사용자가 원하는 경우 설치가 끝나면 디스크의 데이터를 NTFS 형식으로 변환할 수 있습니다.

나중에 변환 유틸리티를 사용하여 이 작업을 수행할 수 있습니다. exe는 운영 체제와 함께 제공됩니다. NTFS로 변환된 디스크 파티션은 다른 운영 체제에서 액세스할 수 없게 됩니다. DOS, Windows 3.1 또는 Windows 9x로 돌아가려면 NTFS 파티션을 삭제하고 대신 FAT 파티션을 만들어야 합니다. Windows 2000은 FAT 32 및 NTFS 파일 시스템을 사용하는 디스크에 설치할 수 있습니다.

FAT32 파일 시스템의 기능은 FAT16의 기능보다 훨씬 더 넓습니다. 가장 중요한 기능은 최대 2047GB의 디스크를 지원하고 더 작은 클러스터에서 작동하므로 사용되지 않는 디스크 공간의 양을 크게 줄이는 것입니다. 예를 들어, HDD FAT16에서 2GB는 32KB 크기의 클러스터를 사용하고 FAT32에서는 4KB 크기의 클러스터를 사용합니다. 가능할 때마다 기존 프로그램, 네트워크 및 장치 드라이버와의 호환성을 유지하기 위해 FAT32는 아키텍처, API, 내부 데이터 구조 및 디스크 형식을 최소한으로 변경하면서 구현됩니다. 그러나 FAT32 테이블 요소의 크기가 이제 4바이트이므로 많은 내부 및 디스크상의 데이터 구조와 API가 수정되거나 확장되어야 했습니다. FAT32 드라이브의 특정 API는 레거시 디스크 유틸리티가 FAT32 드라이브의 콘텐츠를 손상시키는 것을 방지하기 위해 차단됩니다. 대부분의 프로그램은 이러한 변경 사항의 영향을 받지 않습니다. 기존 도구와 드라이버는 FAT32 드라이브에서 작동합니다. 그러나 FAT32를 지원하려면 MS-DOS 블록 장치 드라이버(예: Aspidisk.sys) 및 디스크 유틸리티를 수정해야 합니다. Microsoft에서 제공하는 모든 디스크 유틸리티(실제 및 보호 모드용 Format, Fdisk, Defrag 및 ScanDisk)는 FAT32를 완벽하게 지원하도록 재설계되었습니다. 또한 Microsoft는 FAT32를 지원하도록 제품을 수정하는 주요 디스크 유틸리티 및 장치 드라이버 공급업체를 지원하고 있습니다. FAT32는 더 큰 디스크로 작업할 때 FAT16보다 더 효율적이며 디스크를 2GB 파티션으로 분할할 필요가 없습니다. Windows 98은 타사 운영 체제를 포함한 다른 운영 체제와 호환되는 파일 시스템이기 때문에 반드시 FAT16을 지원합니다. MS-DOS 리얼 모드 및 안전 모드 Windows 98에서는 FAT32 파일 시스템이 FAT16보다 훨씬 느립니다. 따라서 MS DOS 모드에서 프로그램을 실행할 때는 Autoexec를 포함시키는 것이 좋습니다. Bat 또는 PIF 파일 명령을 사용하여 Smartdrv를 다운로드합니다. exe를 실행하면 디스크 작업 속도가 빨라집니다. 일부 레거시 FAT16 프로그램에서는 사용 가능한 디스크 공간이나 총 디스크 공간이 2GB보다 큰 경우 잘못된 정보를 보고할 수 있습니다. Windows 98은 이러한 메트릭을 올바르게 결정할 수 있는 MS-DOS 및 Win32용 새 API를 제공합니다.

.3 FAT16과 FAT32의 비교

표 2.3.1 - FAT16 및 FAT32 파일 시스템 비교

FAT16FAT32대부분의 운영 체제(MS-DOS, Windows 98, Windows NT, OS/2, UNIX)에서 구현되어 사용됩니다. ~에 이 순간 Windows 95 OSR2 및 Windows 98에서만 지원됩니다. 256MB보다 작은 논리 드라이브에 매우 효과적입니다. 512MB보다 작은 디스크에서는 작동하지 않습니다. 예를 들어 DriveSpace 알고리즘을 사용하여 디스크 압축을 지원합니다. 디스크 압축을 지원하지 않습니다. 최대 65,525개의 클러스터를 처리하며, 크기는 논리 디스크의 크기에 따라 달라집니다. 최대 클러스터 크기는 32KB이므로 FAT16은 2GB 이하의 논리 드라이브에서 작동할 수 있습니다. 최대 32KB의 클러스터 크기로 최대 2,047GB의 논리 디스크를 사용할 수 있습니다.

FAT32에서 가능한 최대 파일 길이는 4GB에서 2바이트를 뺀 값입니다. Win32 응용 프로그램은 특별한 처리 없이 이 길이의 파일을 열 수 있습니다. 다른 응용 프로그램은 EXTEND-SIZE(1000h)로 설정된 개방 플래그와 함께 Int 21h 인터럽트, 함수 716C(FAT32)를 사용해야 합니다.

FAT32 파일 시스템에서는 파일 할당 테이블의 각 클러스터에 4바이트가 할당되는 반면, FAT16 - 2 및 FAT12 - 1.5에서는 4바이트가 할당됩니다.

32비트 FAT32 테이블 요소의 최상위 4비트는 예약되어 있으며 클러스터 번호 형성에 참여하지 않습니다. FAT32 테이블을 직접 읽는 프로그램은 이러한 비트를 마스크하고 새 값이 기록될 때 변경되지 않도록 보호해야 합니다.

따라서 FAT32는 이전 FAT 파일 시스템 구현에 비해 다음과 같은 장점이 있습니다.

최대 2TB의 디스크를 지원합니다.

디스크 공간을 보다 효율적으로 구성합니다. FAT32는 더 작은 클러스터(최대 8GB 디스크의 경우 4KB)를 사용하므로 FAT에 비해 대용량 디스크의 공간을 최대 10-15% 절약합니다.

다른 모든 디렉터리와 마찬가지로 FAT 32 루트 디렉터리는 이제 무제한이며 클러스터 체인으로 구성되며 디스크의 어느 곳에나 위치할 수 있습니다.

신뢰성이 더 높습니다. FAT32는 루트 디렉터리를 이동하고 FAT 백업과 함께 작동할 수 있습니다. 또한 FAT32 드라이브의 부트 레코드는 중요한 데이터 구조의 백업 복사본을 포함하도록 확장되었습니다. 이는 FAT32 드라이브가 FAT 백업에 덜 민감하다는 것을 의미합니다. 기존 FAT 볼륨보다 개별적인 불량 영역 발생;

프로그램이 50% 더 빠르게 로드됩니다.

표 2.3.2 - 클러스터 크기 비교

디스크 크기 FAT16의 클러스터 크기, KB FAT32의 클러스터 크기, KB256 MB-511 MB8 지원되지 않음512MB - 1023MB1641024MB - 2GB3242GB - 8GB지원되지 않음48GB-16GB지원되지 않음816GB-32GB지원되지 않음1 632GB 초과지원되지 않음32

3. 대체 파일 NTFS 시스템 FAT32와의 비교

3.1 NTFS 시스템

(New Technology File System)은 Windows NT를 위해 특별히 설계되었기 때문에 Windows NT에서 작업할 때 가장 선호되는 파일 시스템입니다. Windows NT에는 FAT 및 HPFS 볼륨을 NTFS 볼륨으로 변환하는 변환 유틸리티가 포함되어 있습니다. NTFS는 개별 파일 및 디렉터리에 대한 액세스 제어 기능을 크게 확장하고, 많은 특성을 도입했으며, 내결함성, 동적 파일 압축을 구현하고 POSIX 표준 요구 사항을 지원했습니다. NTFS는 최대 255자 길이의 파일 이름을 허용하며 동일한 알고리즘을 사용하여 VFAT와 같은 짧은 이름을 생성합니다. NTFS에는 OS 또는 하드웨어 오류가 발생할 경우 자체 복구 기능이 있으므로 디스크 볼륨을 계속 사용할 수 있고 디렉터리 구조가 중단되지 않습니다.

NTFS 볼륨의 각 파일은 특수 파일인 MFT(마스터 파일 테이블)의 항목으로 표시됩니다. NTFS는 특별한 정보를 위해 크기가 약 1MB인 처음 16개의 테이블 항목을 예약합니다. 첫 번째 테이블 항목은 기본 파일 테이블 자체를 설명합니다. 그 다음에는 MFT 미러 항목이 옵니다. 첫 번째 MFT 레코드가 손상된 경우 NTFS는 두 번째 레코드를 읽어 첫 번째 MFT 레코드와 동일한 첫 번째 레코드가 있는 미러 MFT 파일을 찾습니다. MFT 데이터 세그먼트와 미러 MFT 파일의 위치는 부트스트랩 섹터에 저장됩니다. 부트 섹터의 복사본은 디스크의 논리적 중앙에 위치합니다. 세 번째 MFT 항목에는 파일 복구에 사용되는 로그 파일이 포함되어 있습니다. 마스터 파일 테이블의 17번째 이후 항목은 볼륨의 실제 파일과 디렉터리에서 사용됩니다.

트랜잭션 로그(로그 파일)에는 파일 생성 및 디렉터리 구조를 변경하는 모든 명령을 포함하여 볼륨 구조에 영향을 미치는 모든 작업이 기록됩니다. 트랜잭션 로그는 시스템 오류 후 NTFS 볼륨을 복구하는 데 사용됩니다. 루트 디렉터리 항목에는 루트 디렉터리에 저장된 파일 및 디렉터리 목록이 포함되어 있습니다.

볼륨 할당 체계는 비트맵 파일에 저장됩니다. 이 파일의 데이터 속성에는 비트맵이 포함되어 있으며 각 비트는 볼륨의 한 클러스터를 나타내며 클러스터가 사용 가능한지 또는 일부 파일에 의해 점유되어 있는지 여부를 나타냅니다. 또한 볼륨의 불량 영역을 기록하기 위한 불량 클러스터 파일과 볼륨 파일을 지원합니다. , 볼륨 이름, NTFS 버전 및 볼륨이 손상되었을 때 설정되는 비트가 포함되어 있습니다. 마지막으로, 볼륨에서 지원되는 속성 유형과 인덱싱 가능 여부, 시스템 복원 등을 통해 복원 가능한지 여부를 지정하는 속성 정의 테이블이 포함된 파일이 있습니다. 클러스터에 공간을 할당하고 이에 대해 64비트 번호 매기기를 사용합니다. 따라서 각각 최대 크기가 64KB인 264개의 클러스터를 가질 수 있습니다. FAT와 마찬가지로 클러스터 크기는 다양할 수 있지만 반드시 디스크 크기에 비례하여 증가하지는 않습니다. 파티션을 포맷할 때 기본 클러스터 크기는 표 3.1에 나와 있습니다.

파티션 크기클러스터 크기< 512 Мб512 байт513 Мб - 1024 Мб (1 Гб) 1 Кб1 Гб - 2 Гб2 Кб2 Гб - 4 Гб4 Кб4 Гб - 8 Гб8 Кб8 Гб - 16 Гб16 Кб16 Гб - 32 Гб32 Кб>32GB64KB 최대 16엑사바이트(264바이트) 크기의 파일을 저장할 수 있으며 실시간 파일 압축 기능이 내장되어 있습니다. 압축은 파일이나 디렉터리의 속성 중 하나이며 다른 속성과 마찬가지로 언제든지 제거하거나 설치할 수 있습니다(클러스터 크기가 4KB 이하인 파티션에서는 압축이 가능함). 파일을 압축할 때 FAT에서 사용하는 압축 방식과 달리 파일별 압축을 사용하므로 디스크의 작은 부분이 손상되어도 다른 파일의 정보가 손실되지 않습니다.

조각화를 줄이기 위해 NTFS는 항상 인접한 블록에 파일을 저장하려고 합니다. 이 시스템은 고성능 HPFS 파일 시스템과 유사한 B-트리 디렉토리 구조를 사용합니다. 연결리스트 FAT에서 사용됩니다. 파일 이름이 사전순으로 정렬되어 저장되므로 디렉터리에서 파일을 더 빠르게 검색할 수 있습니다. 는 트랜잭션 처리 모델을 사용하여 복구 가능한 파일 시스템으로 설계되었습니다. NTFS 볼륨의 파일을 수정하는 각 I/O 작업은 시스템에 의한 트랜잭션으로 간주되며 분할할 수 없는 블록으로 실행될 수 있습니다. 사용자가 파일을 수정하면 로그 파일 서비스는 트랜잭션을 반복하거나 롤백하는 데 필요한 모든 정보를 기록합니다. 트랜잭션이 성공적으로 완료되면 파일이 수정됩니다. 그렇지 않은 경우 NTFS는 트랜잭션을 롤백합니다.

데이터에 대한 무단 액세스에 대한 보호 기능이 있음에도 불구하고 NTFS는 저장된 정보에 필요한 기밀성을 제공하지 않습니다. 파일에 액세스하려면 플로피 디스크에서 컴퓨터를 DOS로 부팅하고 이 시스템용 타사 NTFS 드라이버를 사용하면 됩니다.

으로 시작하는 윈도우 버전 NT 5.0(Windows 2000의 새 이름) Microsoft는 새로운 NTFS 5.0 파일 시스템을 지원합니다. NTFS의 새 버전에는 추가 기능이 도입되었습니다. 파일 속성; 액세스 권한과 함께 액세스 거부 개념이 도입되었습니다. 예를 들어 사용자가 파일에 대한 그룹 권한을 상속받은 경우 해당 내용을 변경하는 것을 금지할 수 있습니다. 새로운 시스템또한 다음을 허용합니다.

사용자에게 제공되는 디스크 공간의 양에 대한 제한(할당량)을 도입합니다.

로컬 및 원격 컴퓨터의 모든 디렉터리를 로컬 디스크의 하위 디렉터리에 매핑합니다.

새 버전의 Windows NT의 흥미로운 기능은 파일 및 디렉터리의 동적 암호화로, 이는 정보 저장의 신뢰성을 향상시킵니다. Windows NT 5.0에는 공유 키 암호화 알고리즘을 사용하는 EFS(암호화 파일 시스템)가 포함되어 있습니다. 파일에 암호화 속성이 설정된 경우 사용자 프로그램이 쓰기 또는 읽기를 위해 파일에 액세스하면 해당 파일은 프로그램에 투명하게 인코딩 및 디코딩됩니다.

.2 NTFS와 FAT32의 비교

장점:

작은 파일에 대한 빠른 액세스 속도;

오늘날 디스크 공간의 크기는 사실상 무제한입니다.

파일 조각화는 파일 시스템 자체에 영향을 주지 않습니다.

데이터 저장의 높은 신뢰성과 파일 구조;

대용량 파일 작업 시 고성능;

결점:

더 높은 볼륨 요구 사항 랜덤 액세스 메모리 FAT 32와 비교;

단편화로 인해 중간 크기 디렉터리로 작업하는 것은 어렵습니다.

느린 속도 FAT 3232와 비교한 작업

장점:

고속;

낮은 RAM 요구 사항;

중간 및 작은 파일을 효율적으로 작업합니다.

읽기/쓰기 헤드 움직임이 적어 디스크 마모가 적습니다.

결점:

시스템 오류에 대한 보호 수준이 낮습니다.

아니다 효과적인 작업대용량 파일의 경우;

파티션 및 파일의 최대 볼륨에 대한 제한;

조각화로 인한 성능 저하

많은 수의 파일이 포함된 디렉터리로 작업할 때 성능이 저하됩니다.

따라서 두 파일 시스템 모두 최소 크기가 512b인 클러스터에 데이터를 저장합니다. 일반적으로 일반적인 클러스터 크기는 4Kb입니다. 유사점이 아마도 끝나는 곳입니다. 조각화에 관한 것: 속도 NTFS 작업디스크가 80~90%로 채워지면 급격히 감소합니다. 이는 서비스 파일과 작업 파일이 조각화되어 있기 때문입니다. 사용량이 많은 디스크로 작업을 많이 할수록 조각화는 더욱 강해지고 성능은 저하됩니다. FAT 32에서는 디스크 작업 영역의 조각화가 초기 단계에서 발생합니다. 여기서 중요한 점은 데이터 쓰기/삭제 빈도에 따라 다릅니다. NTFS와 마찬가지로 조각화는 성능을 크게 저하시킵니다. 이제 RAM에 대해 알아보겠습니다. FAT 32 스프레드시트 자체의 볼륨은 RAM에서 약 수 메가바이트를 차지할 수 있습니다. 그러나 캐싱이 구출됩니다. 캐시에 기록되는 내용:

가장 많이 사용되는 디렉토리;

현재 사용 중인 모든 파일에 대한 데이터

여유 디스크 공간에 대한 데이터

NTFS는 어떻습니까? 큰 디렉터리는 캐시하기 어렵고 크기가 수십 메가바이트에 달할 수 있습니다. MFT와 여유 디스크 공간에 대한 정보도 제공됩니다. NTFS는 여전히 RAM 리소스를 상당히 경제적으로 사용한다는 점에 유의해야 합니다. 우리는 성공적인 데이터 저장 시스템을 보유하고 있으며 MFT에서 각 레코드는 약 1Kb입니다. 그러나 여전히 RAM 요구 사항은 FAT 32보다 높습니다. 즉, 메모리가 64Mb 이하인 경우 FAT 32가 속도 측면에서 더 효과적입니다. 그 이상인 경우에는 속도 차이는 작으며 전혀 차이가 없는 경우도 많습니다. 이제 하드 드라이브 자체에 대해 알아보십시오. NTFS를 사용하려면 버스 마스터링이 필요합니다. 이게 뭔가요? 이것은 드라이버와 컨트롤러의 특수 작동 모드입니다. BM을 사용하는 경우 프로세서의 참여 없이 교환이 발생합니다. VM이 없으면 시스템 성능에 영향을 미칩니다. 또한, 보다 복잡한 파일 시스템을 사용함에 따라 읽기/쓰기 헤드의 이동 횟수가 증가하고 이는 속도에도 영향을 미칩니다. 디스크 캐시의 존재는 NTFS와 FAT 32 모두에 똑같이 긍정적인 영향을 미칩니다.

결론

FAT의 장점은 낮은 데이터 저장 오버헤드와 수많은 운영 체제 및 하드웨어 플랫폼과의 완벽한 호환성입니다. 이 파일 시스템은 여전히 ​​플로피 디스크를 포맷하는 데 사용되는데, 여기서는 다른 파일 시스템에서 지원하는 대용량 파티션이 제 역할을 하지 않으며, 낮은 오버헤드로 인해 작은 디스켓 볼륨을 경제적으로 사용할 수 있습니다(NTFS는 데이터 저장을 위해 더 많은 공간이 필요하므로, 플로피 디스크에는 전혀 허용되지 않습니다.)

FAT32의 범위는 실제로 훨씬 더 좁습니다. FAT32를 사용하여 파티션에 액세스하려는 경우 이 파일 시스템을 사용해야 합니다. Windows 사용 9x 및 Windows 2000/XP 사용. 그러나 오늘날 Windows 9x의 관련성은 사실상 사라졌기 때문에 이 파일 시스템의 사용은 특별한 관심을 끌지 않습니다.

서지

1. http://yura. 푸슬라피아이. lt/archiv/per/fat.html

FAT 파일 시스템

FAT16

FAT16 파일 시스템은 MS-DOS 이전 시대로 거슬러 올라가며 모든 운영 체제에서 지원됩니다. 마이크로소프트 시스템호환성을 보장합니다. 파일 할당 테이블이라는 이름은 파일 시스템의 물리적 구성을 완벽하게 반영하며, 주요 특징은 지원되는 볼륨(하드 드라이브 또는 하드 드라이브의 파티션)의 최대 크기가 4095MB를 초과하지 않는다는 사실을 포함합니다. MS-DOS 시절에는 4GB 하드 디스크헛된 꿈처럼 보였기 때문에(20-40MB 디스크는 사치였습니다) 그러한 예비는 상당히 정당했습니다.

FAT16을 사용하도록 포맷된 볼륨은 클러스터로 나누어집니다. 기본 클러스터 크기는 볼륨 크기에 따라 다르며 범위는 512바이트에서 64KB까지입니다. 테이블에 그림 2는 볼륨 크기에 따라 클러스터 크기가 어떻게 달라지는지 보여줍니다. 클러스터 크기는 기본값과 다를 수 있지만 표에 지정된 값 중 하나를 가져야 합니다. 2.

511MB보다 큰 볼륨에서는 FAT16 파일 시스템을 사용하지 않는 것이 좋습니다. 상대적으로 작은 파일의 경우 디스크 공간이 매우 비효율적으로 사용되기 때문입니다(1바이트 파일은 64KB를 차지함). 클러스터 크기에 관계없이 FAT16 파일 시스템은 4GB보다 큰 볼륨에는 지원되지 않습니다.

FAT32

으로 시작하는 마이크로소프트 윈도우 95 OEM 서비스 릴리스 2(OSR2)는 Windows에서 32비트 FAT에 대한 지원을 도입했습니다. Windows NT 기반 시스템의 경우 이 파일 시스템은 Microsoft Windows 2000에서 처음 지원되었습니다. FAT16은 최대 4GB의 볼륨을 지원할 수 있지만 FAT32는 최대 2TB의 볼륨을 지원할 수 있습니다. FAT32의 클러스터 크기는 1(512바이트)에서 64섹터(32KB)까지 다양합니다. FAT32 클러스터 값은 클러스터 값을 저장하기 위해 4바이트(FAT16과 같은 16비트가 아닌 32비트)가 필요합니다. 이는 특히 FAT16용으로 설계된 일부 파일 유틸리티가 FAT32에서 작동할 수 없음을 의미합니다.

FAT32와 FAT16의 주요 차이점은 디스크의 논리 파티션 크기가 변경되었다는 것입니다. FAT32는 최대 127GB의 볼륨을 지원합니다. 또한 2GB 디스크가 포함된 FAT16을 사용할 때 32KB 크기의 클러스터가 필요한 경우 FAT32에서는 4KB 크기의 클러스터가 512MB~8GB 용량의 디스크에 적합합니다(표 4).

따라서 이는 디스크 공간을 보다 효율적으로 사용한다는 것을 의미합니다. 클러스터가 작을수록 파일을 저장하는 데 필요한 공간이 줄어들고 결과적으로 디스크가 조각화될 가능성이 줄어듭니다.

FAT32를 사용하는 경우 최대 파일 크기는 4GB에서 2바이트를 뺀 크기에 도달할 수 있습니다. FAT16을 사용하여 루트 디렉터리의 최대 항목 수가 512개로 제한되어 있는 경우 FAT32를 사용하면 이 수를 65,535개까지 늘릴 수 있습니다.

FAT32는 최소 볼륨 크기에 제한을 둡니다. 즉, 클러스터가 65,527개 이상이어야 합니다. 이 경우 클러스터 크기는 FAT가 16MB~64KB/4백만 또는 4백만 개의 클러스터를 초과할 수 없습니다.

긴 파일 이름을 사용하면 FAT16과 FAT32에서 액세스하는 데 필요한 데이터가 겹치지 않습니다. 긴 이름으로 파일을 생성하면 Windows는 해당 이름을 8.3 형식으로 생성하고 긴 이름을 저장할 디렉터리에 하나 이상의 항목을 생성합니다(항목당 긴 파일 이름 13자). 이후에 발생할 때마다 파일 이름의 해당 부분이 유니코드 형식으로 저장됩니다. 이러한 발생에는 "볼륨 식별자", "읽기 전용", "시스템" 및 "숨김" 속성이 있습니다. 이 집합은 MS-DOS에서 무시됩니다. 이 운영 체제에서는 8.3 형식의 "별칭"을 통해 파일에 액세스합니다.

파일 시스템 NTFS

안에 마이크로소프트 구성 Windows 2000에는 특히 디렉터리 서비스 작업을 제공하는 새 버전의 NTFS 파일 시스템에 대한 지원이 포함되어 있습니다. 액티브 디렉토리, 재분석 지점, 정보 보안 도구, 액세스 제어 및 기타 여러 기능이 있습니다.

FAT와 마찬가지로 주요 정보 유닛 NTFS에서는 클러스터입니다. 테이블에 그림 5는 다양한 용량의 볼륨에 대한 기본 클러스터 크기를 보여줍니다.

NTFS 파일 시스템을 생성하면 포맷터는 MTF(마스터 파일 테이블) 파일과 메타데이터를 저장할 기타 영역을 생성합니다. 메타데이터는 NTFS에서 파일 구조를 구현하는 데 사용됩니다. MFT의 처음 16개 항목은 NTFS 자체에 의해 예약되어 있습니다. 메타데이터 파일 $Mft 및 $MftMirr의 위치는 디스크의 부트 섹터에 기록됩니다. MFT의 첫 번째 항목이 손상된 경우 NTFS는 두 번째 항목을 읽어 첫 번째 항목의 복사본을 찾습니다. 부트 섹터의 전체 복사본은 볼륨 끝에 있습니다. 테이블에 그림 6에는 MFT에 저장된 주요 메타데이터가 나열되어 있습니다.

나머지 MFT 항목에는 볼륨에 있는 각 파일 및 디렉터리에 대한 항목이 포함됩니다.

일반적으로 하나의 파일은 하나의 MFT 항목을 사용하지만 파일에 큰 속성 집합이 있거나 너무 조각화되면 해당 파일에 대한 정보를 저장하기 위해 추가 항목이 필요할 수 있습니다. 이 경우 기본 레코드라고 하는 파일의 첫 번째 레코드는 다른 레코드의 위치를 ​​저장합니다. 작은 파일 및 디렉터리(최대 1500바이트)에 대한 데이터는 첫 번째 레코드에 완전히 포함됩니다.

NTFS의 파일 특성

NTFS 볼륨에서 점유된 각 섹터는 하나 또는 다른 파일에 속합니다. 파일 시스템 메타데이터도 파일의 일부입니다. NTFS는 각 파일(또는 디렉터리)을 파일 특성 집합으로 처리합니다. 파일 이름, 보안 정보, 심지어 그 안에 포함된 데이터와 같은 요소도 파일 속성입니다. 각 속성은 특정 유형 코드와 선택적으로 속성 이름으로 식별됩니다.

파일 속성이 파일 레코드 내에 맞는 경우 이를 상주 속성이라고 합니다. 이러한 속성은 항상 파일 이름과 생성 날짜입니다. 파일 정보가 너무 커서 단일 MFT 레코드에 맞지 않는 경우 일부 파일 속성은 비거주 상태가 됩니다. 상주 속성은 하나 이상의 클러스터에 저장되며 현재 볼륨에 대한 대체 데이터 스트림을 나타냅니다(자세한 내용은 아래 참조). NTFS는 상주 및 비거주 특성의 위치를 ​​설명하기 위해 특성 목록 특성을 만듭니다.

테이블에 그림 7은 NTFS에 정의된 주요 파일 속성을 보여줍니다. 이 목록은 향후 확장될 수 있습니다.

CDFS 파일 시스템

Windows 2000은 CD-ROM의 정보 레이아웃을 설명하는 ISO'9660 표준을 따르는 CDFS 파일 시스템을 지원합니다. 지원됨 긴 이름 ISO'9660 레벨 2에 따른 파일.

함께 사용할 CD-ROM을 만들 때 윈도우 제어 2000 다음 사항을 염두에 두어야 합니다.

  • 모든 디렉터리 및 파일 이름은 32자 미만이어야 합니다.
  • 모든 디렉터리 및 파일 이름은 대문자로만 구성되어야 합니다.
  • 디렉터리 깊이는 루트에서 8레벨을 초과할 수 없습니다.
  • 파일 이름 확장자의 사용은 선택 사항입니다.

파일 시스템 비교

Microsoft Windows 2000에서는 FAT16, FAT32, NTFS 또는 이들의 조합 파일 시스템을 사용할 수 있습니다. 운영 체제 선택은 다음 기준에 따라 다릅니다.

  • 컴퓨터가 어떻게 사용되는지;
  • 하드웨어 플랫폼;
  • 하드 드라이브의 크기 및 개수
  • 정보 보안

FAT 파일 시스템

이미 알고 있듯이 파일 시스템 이름에 있는 숫자(FAT16 및 FAT32)는 파일에서 사용하는 클러스터 번호에 대한 정보를 저장하는 데 필요한 비트 수를 나타냅니다. 따라서 FAT16은 16비트 주소 지정을 사용하므로 최대 2개의 16개 주소를 사용할 수 있습니다. Windows 2000에서는 FAT32 파일 위치 테이블의 처음 4비트가 자체 목적으로 사용되므로 FAT32에서는 주소 수가 2 28 에 이릅니다.

테이블에 그림 8은 FAT16 및 FAT32 파일 시스템의 클러스터 크기를 보여줍니다.

클러스터 크기의 상당한 차이 외에도 FAT32에서는 루트 디렉터리 확장도 허용합니다(FAT16에서는 항목 수가 512개로 제한되며 긴 파일 이름을 사용하는 경우 더 낮아질 수 있음).

FAT16의 장점

FAT16의 장점은 다음과 같습니다.

  • 운영 체제에서 지원하는 파일 시스템 MS-DOS 시스템, Windows 95, Windows 98, Windows NT, Windows 2000 및 일부 UNIX 운영 체제;
  • 이 파일 시스템의 오류를 수정하고 데이터를 복원할 수 있는 프로그램이 많이 있습니다.
  • 하드 드라이브에서 부팅하는 데 문제가 발생하면 시스템을 플로피 디스크에서 부팅할 수 있습니다.
  • 이 파일 시스템은 256MB보다 작은 볼륨에 매우 효율적입니다.
FAT16의 단점

FAT16의 주요 단점은 다음과 같습니다.

  • 루트 디렉터리에는 512개 이상의 요소가 포함될 수 없습니다. 긴 파일 이름을 사용하면 이러한 요소의 수가 크게 줄어듭니다.
  • FAT16은 최대 65,536개의 클러스터를 지원하며, 일부 클러스터는 운영 체제에 의해 예약되어 있으므로 사용 가능한 클러스터 수는 65,524개입니다. 각 클러스터는 특정 논리 단위에 대해 고정된 크기를 갖습니다. 최대 클러스터 크기(32KB)에서 최대 클러스터 수에 도달하면 지원되는 최대 볼륨 크기는 4GB(Windows 2000에서)로 제한됩니다. MS-DOS, Windows 95 및 Windows 98과의 호환성을 유지하려면 FAT16에서 볼륨 크기가 2GB를 초과해서는 안 됩니다.
  • FAT16은 내장된 파일 보호 및 압축을 지원하지 않습니다.
  • 대용량 디스크에서는 최대 클러스터 크기가 사용되기 때문에 많은 공간이 손실됩니다. 파일 공간은 파일 크기가 아닌 클러스터 크기에 따라 할당됩니다.
FAT32의 장점

FAT32의 장점은 다음과 같습니다.

  • 특히 대용량 디스크의 경우 디스크 공간 할당이 더 효율적입니다.
  • FAT32의 루트 디렉터리는 일반적인 클러스터 체인이며 디스크의 어느 위치에나 위치할 수 있습니다. 덕분에 FAT32는 루트 디렉터리의 요소 수에 제한을 두지 않습니다.
  • 더 작은 클러스터(4KB, 최대 8GB 디스크)를 사용하기 때문에 점유된 디스크 공간은 일반적으로 FAT16보다 10-15% 적습니다.
  • FAT32는 더욱 안정적인 파일 시스템입니다. 특히, 루트 디렉터리를 이동하고 사용하는 기능을 지원합니다. 백업 복사본지방. 또한 부트 레코드에는 파일 시스템에 중요한 여러 데이터가 포함되어 있습니다.
FAT32의 단점

FAT32의 주요 단점:

  • Windows 2000에서 FAT32를 사용할 때 볼륨 크기는 32GB로 제한됩니다.
  • FAT32 볼륨은 다른 운영 체제에서는 사용할 수 없습니다. Windows 95 OSR2 및 Windows 98에서만 사용할 수 있습니다.
  • 부트 섹터 백업은 지원되지 않습니다.
  • FAT32는 내장된 파일 보호 및 압축을 지원하지 않습니다.

파일 시스템 NTFS

Windows 2000을 실행할 때 Microsoft에서는 여러 운영 체제를 사용하는 구성(Windows 2000 및 Windows NT 제외)을 제외하고 모든 하드 드라이브 파티션을 NTFS로 포맷할 것을 권장합니다. FAT 대신 NTFS를 사용하면 NTFS에서 사용할 수 있는 기능을 사용할 수 있습니다. 여기에는 특히 다음이 포함됩니다.

  • 회복 가능성. 이 기능은 파일 시스템에 내장되어 있습니다. NTFS는 프로토콜과 일부 정보 복구 알고리즘을 사용하므로 데이터 안전을 보장합니다. 시스템 오류가 발생할 경우 NTFS는 해당 프로토콜을 사용하고 추가 정보을 위한 자동 복구파일 시스템 무결성;
  • 정보 압축. NTFS 볼륨의 경우 Windows 2000은 개별 파일 압축을 지원합니다. 이러한 압축 파일은 파일을 읽을 때 자동으로 발생하는 사전 압축 해제 없이 Windows 응용 프로그램에서 사용할 수 있습니다. 닫고 저장하면 파일이 다시 압축됩니다.
  • 또한 NTFS의 다음과 같은 장점도 강조할 수 있습니다.

일부 운영 체제 기능에는 NTFS가 필요합니다.

액세스 속도가 훨씬 빠릅니다. NTFS는 파일을 찾는 데 필요한 디스크 액세스 횟수를 최소화합니다.

파일과 디렉터리를 보호합니다. NTFS 볼륨에서만 파일 및 폴더에 대한 액세스 특성을 설정할 수 있습니다.

NTFS를 사용할 때 Windows 2000은 최대 2TB의 볼륨을 지원합니다.

파일 시스템은 부트 섹터의 백업 복사본을 유지 관리합니다. 이 복사본은 볼륨 끝에 있습니다.

NTFS는 파일 콘텐츠에 대한 무단 액세스로부터 보호하는 EFS(암호화된 파일 시스템)를 지원합니다.

할당량을 사용하면 사용자가 소비하는 디스크 공간의 양을 제한할 수 있습니다.

NTFS의 단점

NTFS 파일 시스템의 단점에 대해 말하면 다음 사항에 유의해야 합니다.

  • MS-DOS, Windows 95 및 Windows 98에서는 NTFS 볼륨을 사용할 수 없습니다. 또한 Windows 2000에서 NTFS에 구현된 여러 기능을 Windows 4.0 및 이전 버전에서는 사용할 수 없습니다.
  • 작은 파일이 많이 포함된 작은 볼륨의 경우 FAT에 비해 성능이 저하될 수 있습니다.

파일 시스템 및 속도

이미 알아낸 바와 같이 소량의 경우 FAT16 또는 FAT32는 더 많은 기능을 제공합니다. 빠른 액세스 NTFS와 비교하여 다음과 같은 이유로 파일을 사용합니다.

  • FAT는 구조가 더 간단합니다.
  • 디렉토리 크기가 더 작습니다.
  • FAT는 무단 액세스로부터 파일을 보호하는 것을 지원하지 않습니다. 시스템은 파일 권한을 확인할 필요가 없습니다.

NTFS는 디스크 액세스 횟수와 파일을 찾는 데 필요한 시간을 최소화합니다. 또한 디렉터리 크기가 단일 MFT 항목에 들어갈 만큼 작은 경우 전체 항목을 한 번에 읽습니다.

FAT의 한 항목에는 디렉터리의 첫 번째 클러스터에 대한 클러스터 번호가 포함되어 있습니다. FAT 파일을 보려면 전체 파일 구조를 검색해야 합니다.

짧은 파일 이름과 긴 파일 이름이 포함된 디렉터리에서 수행되는 작업 속도를 비교할 때 FAT의 작업 속도는 작업 자체와 디렉터리 크기에 따라 다르다는 점을 명심하세요. FAT가 존재하지 않는 파일을 검색하는 경우 전체 디렉터리를 검색합니다. 이는 NTFS에서 사용하는 B-트리 기반 구조를 검색하는 것보다 시간이 오래 걸립니다. 파일을 찾는 데 필요한 평균 시간은 FAT에서는 N/2의 함수로 표시되고, NTFS에서는 log N으로 표시됩니다. 여기서 N은 파일 수입니다.

다음 요소는 Windows 2000이 파일을 읽고 쓰는 속도에 영향을 미칩니다.

  • 파일 조각화. 파일이 매우 조각화되어 있는 경우 NTFS는 일반적으로 모든 조각을 찾는 데 FAT보다 더 적은 디스크 액세스가 필요합니다.
  • 클러스터 크기. 두 파일 시스템 모두 기본 클러스터 크기는 볼륨 크기에 따라 다르며 항상 2의 거듭제곱으로 표시됩니다. FAT16의 주소는 16비트, FAT32의 경우 32비트, NTFS의 경우 64비트입니다.
  • FAT의 기본 클러스터 크기는 파일 위치 테이블이 최대 65,535개의 항목을 가질 수 있다는 사실을 기반으로 합니다. 클러스터 크기는 볼륨 크기를 65,535로 나눈 함수입니다. 따라서 FAT 볼륨의 기본 클러스터 크기는 항상 다음과 같습니다. 동일한 크기의 NTFS 볼륨에 대한 클러스터 크기보다 큽니다. FAT 볼륨의 클러스터 크기가 크다는 것은 FAT 볼륨이 덜 조각화될 수 있다는 것을 의미합니다.
  • 작은 파일의 위치. 사용 NTFS 파일 MFT 레코드에 작은 크기가 포함되어 있습니다. 단일 MFT 레코드에 맞는 파일 크기는 해당 파일의 속성 수에 따라 다릅니다.

NTFS 볼륨의 최대 크기

이론적으로 NTFS는 최대 2 32개의 클러스터로 구성된 볼륨을 지원합니다. 그러나 그럼에도 불구하고 이 크기의 하드 드라이브가 없다는 것 외에도 최대 볼륨 크기에 대한 다른 제한 사항이 있습니다.

그러한 제약 중 하나가 파티션 테이블입니다. 업계 표준은 파티션 테이블의 크기를 2개에서 32개 섹터로 제한합니다. 또 다른 제한 사항은 일반적으로 512바이트인 섹터 크기입니다. 섹터 크기는 향후 변경될 수 있으므로 현재 크기는 단일 볼륨의 크기를 2TB(2 32 x 512바이트 = 2 41)로 제한합니다. 따라서 NTFS 물리적 및 논리적 볼륨의 실제 제한은 2TB입니다.

테이블에 그림 11은 NTFS의 주요 제한 사항을 보여줍니다.

파일 및 디렉터리에 대한 액세스 제어

NTFS 볼륨을 사용하는 경우 파일 및 디렉터리에 대한 액세스 권한을 설정할 수 있습니다. 이러한 권한은 해당 권한에 액세스할 수 있는 사용자 및 그룹과 허용되는 액세스 수준을 나타냅니다. 이러한 액세스 권한은 파일이 있는 컴퓨터에서 작업하는 사용자와 원격 액세스가 가능한 디렉터리에 파일이 있는 경우 네트워크를 통해 파일에 액세스하는 사용자 모두에게 적용됩니다.

NTFS에서는 파일 및 디렉터리 권한과 함께 원격 액세스 권한을 설정할 수도 있습니다. 또한 파일 속성(읽기 전용, 숨김, 시스템)도 파일에 대한 액세스를 제한합니다.

FAT16 및 FAT32에서는 파일 속성을 설정할 수도 있지만 파일 액세스 권한을 제공하지 않습니다.

Windows 2000에서 사용된 NTFS 버전에는 새로운 유형의 액세스 권한, 즉 상속된 권한이 도입되었습니다. 보안 탭에는 다음 옵션이 포함되어 있습니다. 부모로부터 상속 가능한 권한이 이 파일 객체에 전파되도록 허용, 기본적으로 활성화되어 있습니다. 이 옵션은 파일 및 하위 디렉터리에 대한 액세스 권한을 변경하는 데 필요한 시간을 크게 줄여줍니다. 예를 들어 수백 개의 하위 디렉터리와 파일이 포함된 트리에 대한 액세스 권한을 변경하려면 이 옵션을 활성화하면 됩니다. Windows NT 4에서는 각 개별 파일과 하위 디렉터리의 속성을 변경해야 합니다.

그림에서. 그림 5는 속성 대화 상자 패널과 보안 탭(고급 섹션)을 보여줍니다. 파일에 대한 확장 액세스 권한이 나열되어 있습니다.

FAT 볼륨의 경우 볼륨 수준에서만 액세스를 제어할 수 있으며 이러한 제어는 원격 액세스를 통해서만 가능하다는 점을 기억하십시오.

파일 및 디렉터리 압축

Windows 2000은 NTFS 볼륨에 있는 파일 및 디렉터리의 압축을 지원합니다. 압축 파일모든 Windows 응용 프로그램에서 읽고 쓸 수 있습니다. 이렇게 하려면 미리 포장을 풀 필요가 없습니다. 사용되는 압축 알고리즘은 DoubleSpace(MS-DOS 6.0) 및 DriveSpace(MS-DOS 6.22)에서 사용되는 것과 유사하지만 한 가지 중요한 차이점이 있습니다. 즉, MS-DOS에서는 전체 기본 파티션 또는 논리 장치가 압축되는 반면, NTFS에서는 개별 파일과 디렉터리를 패키지화할 수 있습니다.

NTFS 압축 알고리즘은 최대 4KB 크기의 클러스터를 지원하도록 설계되었습니다. 클러스터 크기가 4KB보다 크면 NTFS 압축 기능을 사용할 수 없게 됩니다.

자가 복구 NTFS

NTFS 파일 시스템에는 자가 치유 기능이 있으며 수행된 작업 로그 및 기타 여러 메커니즘을 사용하여 무결성을 유지할 수 있습니다.

NTFS는 NTFS 볼륨의 시스템 파일을 수정하는 각 작업을 트랜잭션으로 간주하고 해당 트랜잭션에 대한 정보를 로그에 저장합니다. 시작된 트랜잭션은 완전히 완료(커밋)되거나 롤백(롤백)될 수 있습니다. 후자의 경우 NTFS 볼륨은 트랜잭션 시작 전 상태로 돌아갑니다. 트랜잭션을 관리하기 위해 NTFS는 디스크에 쓰기 전에 트랜잭션에 포함된 모든 작업을 로그 파일에 기록합니다. 거래가 완료되면 모든 작업이 완료됩니다. 따라서 NTFS 제어 하에서는 보류 중인 작업이 있을 수 없습니다. 디스크 오류가 발생하면 보류 중인 작업이 중단됩니다.

또한 NTFS는 결함이 있는 클러스터를 즉시 식별하고 파일 작업을 위해 새 클러스터를 할당할 수 있는 작업을 수행합니다. 이 메커니즘을 클러스터 재매핑이라고 합니다.

이번 리뷰에서는 Microsoft Windows 2000에서 지원되는 다양한 파일 시스템을 살펴보고 각각의 디자인에 대해 논의했으며 장점과 단점을 언급했습니다. 가장 유망한 것은 NTFS 파일 시스템입니다. 대형 세트다른 파일 시스템에서는 사용할 수 없는 기능입니다. Microsoft Windows 2000에서 지원되는 새 버전의 NTFS는 훨씬 더 뛰어난 기능을 제공하므로 Win 2000 운영 체제를 설치할 때 사용하는 것이 좋습니다.

컴퓨터프레스 7"2000

나는 FatF를 사용할 때마다 모든 것이 내부에서 어떻게 작동하는지 이해하는 것이 좋을 것이라고 생각합니다. 나는 이 질문을 오랫동안 미루다가 마침내 얼음이 깨졌습니다. 따라서 글로벌 목표는 메모리 카드를 연기하는 것입니다. 세부적으로 작동하면 현재 목표는 파일 시스템을 다루는 것입니다.

나는 나만의 드라이버를 작성하거나 복잡한 내용을 자세히 이해하려는 목표가 없었고 단지 관심이 있었다고 즉시 말할 것입니다. 작업은 이해하기 매우 간단하므로 여기에는 "코드"가 없습니다.

따라서 가장 먼저 이해해야 할 것은 메모리 카드와 직접 통신할 때 512바이트를 읽거나 쓸 수 있으며 다른 작업은 제공되지 않는다는 것입니다. 파일을 계속 복사하고 삭제하고 파일 크기가 항상 다르기 때문에 카드에 녹화된 내용과 함께 빈 공간이 나타납니다. 사용자가 데이터 배치에 대해 걱정할 필요가 없도록 이러한 문제를 처리하는 계층이 있는데, 이것이 바로 파일 시스템입니다.

위에서 언급했듯이 512바이트의 배수로만 쓰고 읽을 수 있습니다. 1개 섹터. 개념도 있습니다. 클러스터는 단순히 여러 섹터입니다. 예를 들어 클러스터 크기가 16kB이면 16000/512 = 31.25 또는 오히려 32 섹터가 있고 실제 클러스터 크기는 16384바이트임을 의미합니다. 모든 파일은 클러스터 크기의 배수인 크기를 차지합니다. 파일 크기가 1kB이고 클러스터가 16kB라도 파일이 전체 16kB를 차지합니다.

작은 클러스터를 만드는 것이 논리적이지만 여기서는 최대 파일 수와 크기에 대한 제한이 적용됩니다. FAT16은 16비트 데이터에서 작동하므로 2^16개 이상의 클러스터를 넣을 수 없습니다. 따라서 크기가 작을수록 작은 파일을 위한 공간이 더 효율적으로 사용되지만 디스크에 저장할 수 있는 정보는 더 적습니다. 반대로, 크기가 클수록 더 많은 정보를 담을 수 있지만 작은 파일을 위한 공간이 덜 효율적으로 사용됩니다. 최대 크기클러스터는 64kB이므로 FAT16의 최대값은 64kb*2^16 = 4Gb입니다.

초기 데이터: 1GB 마이크로 SD 메모리 카드가 있습니다. MYDISK라는 라벨이 붙고 완전히 포맷되었으며 클러스터 크기는 16kB입니다.

Hex 편집기가 필요하지만 어떤 편집기도 작동하지 않으므로 디스크에 있는 파일뿐만 아니라 전체 디스크를 볼 수 있는 편집기가 필요합니다. 내가 찾은 것에서: WinHex가 가장 적합하지만 유료입니다. HxD는 간단하고 무료이지만 변경 사항을 디스크에 저장할 수는 없습니다. DMDE는 사용자 친화적이지 않고 무료이며 변경 사항을 저장할 수 있습니다. 일반적으로 저는 HxD에 정착했습니다.

먼저, FAT16의 구조를 고려해 볼 가치가 있습니다. 그림은 파일 시스템의 다양한 부분이 어떤 순서로 위치하는지 보여줍니다.

모든 서비스 정보는 부트 섹터에 저장됩니다. FAT 영역은 파일 데이터가 디스크에 위치하는 방법에 대한 정보를 저장합니다. 루트 디렉터리에는 디스크 루트에 있는 파일에 대한 정보가 포함되어 있습니다. 데이터 영역에는 파일에 포함된 정보가 포함됩니다. 모든 영역은 연속적으로 서로 엄격하게 이어집니다. 부트 섹터 다음에는 FAT 영역이 즉시 시작됩니다. 아래에서 자세한 내용을 살펴보겠습니다.

과제: 파일 이름과 내용이 배열되는 원리를 이해합니다. 이제 사용 가능한 파일이 무엇인지 이해하기 위해 루트 디렉터리를 검색하는 것부터 시작하겠습니다. 부팅 영역의 데이터가 이에 도움이 될 것입니다.

가장 흥미로운 데이터가 표에 나와 있습니다.

가장 먼저 필요한 것은 부트 영역의 크기를 아는 것입니다. 주소 0x0E를 보면 부트 영역에 4개의 섹터가 할당되어 있음을 알 수 있습니다. FAT 영역은 주소 4*512 = 0x800에서 시작됩니다.

FAT 테이블의 수는 부트 영역의 주소 0x10으로 결정됩니다. 이 예에는 두 개가 있는데 왜 두 개입니까? 각 테이블은 백업 테이블로 복제되어 오류가 발생할 경우 데이터를 복원할 수 있기 때문입니다. 테이블 크기는 주소 0x16에 지정됩니다. 따라서 파일 크기는 512*2*0xEE = 0x3B800이고 루트 디렉터리는 0x800 + 0x3B800 = 0x3C000 주소에서 시작됩니다.

루트 디렉터리 내에서는 모든 요소가 32바이트로 나누어집니다. 첫 번째 요소는 볼륨 레이블이고 후속 요소는 파일과 폴더입니다. 파일 이름이 0xE5로 시작하면 해당 파일이 삭제되었음을 의미합니다. 이름이 0x00으로 시작하면 이전 파일이 마지막 파일이라는 의미입니다.

나는 다소 흥미로운 루트 디렉토리 구조를 생각해 냈습니다. 카드가 완전히 포맷된 후 MyFile.txt 및 BigFile.txt라는 이름으로 이름이 변경된 2개의 텍스트 파일이 생성되었습니다.

보시다시피, 내 두 파일 외에도 좌파 파일이 많이 생성되었으며 그 출처는 추측만 가능합니다.

여기서 강조할 수 있는 가장 중요한 것은 파일의 데이터가 시작되는 첫 번째 클러스터의 주소입니다. 주소는 항상 오프셋 0x1A에 위치합니다. 예를 들어, MyFile.txt 파일의 이름은 주소 0x3C100에 있고 여기에 0x1A를 추가하면 첫 번째 클러스터의 번호가 표시됩니다. = 0x0002 즉, 두 번째 클러스터. BigFile.txt 파일의 경우 데이터는 세 번째 클러스터에서 시작됩니다.

또한 루트 디렉터리에서 파일을 마지막으로 편집한 날짜와 시간도 확인할 수 있습니다. 이 질문은 별로 흥미롭지 않으므로 무시하겠습니다. 루트 디렉토리가 알려줄 수 있는 마지막 유용한 점은 데이터가 시작되는 위치를 찾을 수 있는 크기입니다.

크기는 주소 0x11(2바이트) = 0x0200*32 = 0x4000 또는 16384바이트의 부트 섹터에 표시됩니다.

루트 주소에 크기를 추가해 보겠습니다. 3C000 + 4000 = 40000은 첫 번째 데이터 클러스터의 주소이지만 MyFile.txt를 찾으려면 두 번째 데이터 클러스터가 필요합니다. 클러스터의 섹터 수는 32개, 클러스터 크기 = 32*512 = 16384 또는 0x4000이므로 첫 번째 클러스터의 주소에 해당 크기를 추가해 보겠습니다. 이론적으로 두 번째 클러스터는 0x44000에서 시작해야 합니다.

주소 0x44000으로 가서 데이터가 BigFile.txt에 속하는지 확인합니다(그냥 쓰레기입니다).

작은 미묘함이 있는 것으로 밝혀졌으며 클러스터의 번호 매기기는 두 번째부터 시작되며 이것이 수행된 이유는 명확하지 않지만 사실입니다. 실제로 우리는 세 번째 클러스터로 이동했습니다. 한 클러스터로 돌아가서 0x40000을 주소 지정하고 예상되는 데이터를 살펴보겠습니다.

이제 질문이 생깁니다. FAT 테이블이 필요한 이유는 무엇입니까? 요점은 데이터가 조각화될 수 있다는 것입니다. 파일의 시작은 하나의 클러스터에 있을 수 있고 끝은 완전히 다른 클러스터에 있을 수 있습니다. 또한 이들은 완전히 다른 클러스터일 수 있습니다. 그 중 여러 개가 서로 다른 데이터 영역에 흩어져 있을 수 있습니다. FAT 테이블은 클러스터 간 이동 방법을 알려주는 일종의 맵입니다.

예를 들어 보겠습니다. BigFile.txt 파일에는 임의의 쓰레기 묶음이 채워져 하나의 클러스터가 아닌 여러 클러스터를 차지합니다. FAT 테이블이 시작되는 곳으로 가서 그 내용을 살펴보겠습니다.

처음 8바이트 0xF8FFFFFF는 fat 테이블의 시작 부분에 대한 식별자입니다. 다음은 MyFile.txt를 참조하는 2바이트인데 여기에 0xFFFF가 적혀 있다는 것은 해당 파일이 하나의 클러스터만을 점유한다는 의미이다. 그러나 다음 파일 BigFile.txt는 세 번째 클러스터에서 시작하고 이를 루트 디렉터리에서 기억하고 네 번째 클러스터에서 계속된 다음 5,6,7...로 이동하고 12에서 끝납니다. 10개의 클러스터를 차지합니다.

이것이 실제로 사실인지 확인해 봅시다. 파일의 무게는 163kB입니다. 163000/(32*512) = 9.9 클러스터를 차지하며 이는 예상한 것과 매우 유사합니다. FAT 테이블의 한 요소가 2바이트를 차지한다는 점을 다시 한 번 반복해 보겠습니다. 16비트이므로 FAT16이라는 이름이 붙었습니다. 따라서 최대 주소는 0xFFFF, 즉 FAT16 0xFFFF* 클러스터 크기의 최대 볼륨입니다.

FAT32로 넘어가겠습니다. 로딩 부분이 약간 변경되었습니다.

몇 가지 근본적인 변화가 있습니다. 파일 시스템 이름이 주소 0x52로 이동되었으며 이제 루트 크기는 무시됩니다. 데이터 영역은 FAT 테이블 바로 뒤에 있고 루트 디렉터리는 데이터 영역 내부에 있습니다. 또한 루트 디렉터리에는 고정된 크기가 없습니다.

데이터 영역 주소는 다음과 같이 계산됩니다.
부트 섹터 크기 + FAT 테이블, 내 경우에는 다음과 같이 나타났습니다.
746496 + (3821056 * 2) = 0x800000

루트 디렉터리 주소는 다음과 같이 계산됩니다.
(루트 디렉터리의 첫 번째 클러스터 번호 - 2) * 클러스터 크기 + 데이터 영역의 시작 주소,
저것들. 이 예에서는 데이터 영역의 시작 부분과 일치합니다.

이전과 마찬가지로 루트의 데이터는 32바이트를 차지합니다. 이전과 마찬가지로 "삭제된" 매직 파일은 임시 메모장 파일이라고 가정합니다.

그러나 MYFILE.txt의 첫 번째 클러스터 시작은 이제 2바이트로 결정됩니다. 가장 높은 바이트는 오프셋 0x14이고 가장 낮은 바이트는 1A 이전입니다. 따라서 파일의 첫 번째 데이터 클러스터 번호는 다음과 같습니다.
8000A0 + 0x14 = 0x8000B4 - 상위 바이트
8000A0 + 0x1A = 0x8000BA - 하위 바이트
내 경우에는 카드에 파일이 하나만 있으므로 이것이 세 번째 클러스터입니다.

FAT 테이블은 이전 사례와 마찬가지로 검색되지만 이제 요소는 4바이트를 차지하므로 이름이 FAT32입니다. 요소 배열의 이데올로기는 이전 경우와 정확히 동일합니다.

테이블에 유용한 것들
F8 FF FF F0 - 첫 번째 클러스터
FF FF FF 0F - 마지막 클러스터
FF FF FF F7 - 손상된 클러스터

데이터는 어디에 있나요?
데이터 영역의 시작 + 클러스터 크기 * (루트 클러스터 번호 - 1)
= 0x800000 + (2*4096) = 0x801000

일반적으로 초자연적 인 것은없는 것 같다는 것이 분명해졌기를 바랍니다. 읽고 반복하시는 분들은 쿠키도 드실 수 있어요 :)

지방(영어) 파일 배당 테이블- "파일 할당 테이블")은 단순성으로 인해 여전히 플래시 드라이브에 널리 사용되는 고전적인 파일 시스템 아키텍처입니다. 플로피 디스크 및 기타 저장 매체에 사용됩니다. 이전에는 하드 드라이브에 사용되었습니다.

파일 시스템은 1977년 Bill Gates와 Mark MacDonald에 의해 개발되었으며 원래 86-DOS 운영 체제에서 사용되었습니다. 86-DOS는 이후 Microsoft에 인수되어 1981년 8월에 출시된 MS-DOS 1.0의 기반이 되었습니다. FAT는 1MB보다 작은 플로피 디스크에서 작동하도록 설계되었으며 처음에는 하드 디스크를 지원하지 않았습니다.

현재 FAT에는 네 가지 버전이 있습니다. 지방8, FAT12, FAT16그리고 FAT32. 디스크 구조에서 레코드의 비트 심도가 다릅니다. 클러스터 번호를 저장하기 위해 할당된 비트 수. FAT12는 주로 플로피 디스크에 사용되고, FAT16은 소형 디스크에, FAT32는 하드 디스크에 사용됩니다. FAT를 기반으로 새로운 파일 시스템이 개발되었습니다. exFAT(확장 FAT), 주로 플래시 드라이브에 사용됩니다.

FAT 파일 시스템은 처음부터 끝까지 순차적으로 여유 디스크 공간을 채웁니다. 새 파일을 생성하거나 기존 파일을 늘릴 때 파일 할당 테이블에서 첫 번째 여유 클러스터를 찾습니다. 일부 파일이 삭제되고 다른 파일의 크기가 변경된 경우 결과적으로 빈 클러스터가 디스크 전체에 분산됩니다. 파일 데이터를 포함하는 클러스터가 행에 위치하지 않으면 파일은 조각난. 심하게 조각난 파일은 다음 파일 레코드를 검색할 때 읽기/쓰기 헤드가 디스크의 한 영역에서 다른 영역으로 이동해야 하기 때문에 효율성을 크게 감소시킵니다. 파일을 저장하기 위해 할당된 클러스터는 서로 옆에 위치하는 것이 좋습니다. 이렇게 하면 파일을 검색하는 데 걸리는 시간이 줄어듭니다. 그러나 이 작업은 특수 프로그램을 통해서만 수행할 수 있습니다. 조각 모음파일.

FAT의 또 다른 단점은 성능이 한 디렉터리에 있는 파일 수에 따라 달라진다는 것입니다. 파일 수가 많은 경우(약 1000개) 디렉터리의 파일 목록을 읽는 작업에 몇 분이 걸릴 수 있습니다. FAT는 파일 소유권이나 파일 권한과 같은 정보를 저장하지 않습니다.

FAT는 비정상적인 컴퓨터 종료로 인한 파일 손상을 방지하지 않는 간단한 파일 시스템으로, 가장 일반적인 파일 시스템 중 하나이며 대부분의 운영 체제에서 지원됩니다.

지방 파일 시스템의 구성

모든 최신 디스크 운영 체제는 디스크에 데이터를 저장하고 이에 대한 액세스를 제공하도록 설계된 파일 시스템 생성을 제공합니다. 데이터를 디스크에 기록하려면 해당 표면이 구조화되어야 합니다. 나누다 부문으로그리고 트랙.

트랙

C 클러스터

그림 1 - 디스크 구조

경로- 디스크 표면을 덮는 동심원입니다. 디스크 가장자리에 가장 가까운 트랙에는 숫자 0이 할당되고 다음 트랙에는 1 등이 할당됩니다. 플로피 디스크가 양면인 경우 양면에 번호가 지정됩니다. 첫 번째 변의 번호는 0, 두 번째 변의 번호는 1입니다.

각 트랙은 다음과 같은 섹션으로 구분됩니다. 부문. 섹터에도 번호가 할당됩니다. 트랙의 첫 번째 섹터에는 숫자 1, 두 번째 섹터에는 2 등이 할당됩니다.

하드 드라이브는 하나 이상의 원형 플래터로 구성됩니다. 플레이트의 양면은 정보를 저장하는 데 사용됩니다. 각 표면은 트랙, 트랙, 차례로 섹터로 나뉩니다. 동일한 반경의 경로는 다음과 같습니다. 실린더. 따라서 모든 0 트랙은 실린더 번호 0을 구성하고 트랙 번호 1은 실린더 번호 1을 구성합니다.

따라서 하드 드라이브의 표면은 3차원 매트릭스로 간주될 수 있으며, 그 크기는 숫자입니다. 표면, 원통그리고 분야.원통은 서로 다른 표면에 속하고 회전축에서 동일한 거리에 위치한 모든 트랙의 집합으로 이해됩니다.

FAT에서 파일 이름은 8.3 형식이며 ASCII 문자로만 구성됩니다. VFAT에는 긴(최대 255자) 파일 이름에 대한 지원이 추가되었습니다. 긴 파일 이름, LFN) UTF-16LE 인코딩에서 LFN이 8.3 이름과 동시에 저장되며 소급하여 SFN이라고 합니다. 짧은 파일 이름). LFN은 검색 시 대소문자를 구분하지 않지만, 대문자로 저장되는 SFN과 달리 LFN은 파일이 생성될 때 지정된 대소문자를 유지합니다.

FAT 시스템 구조

FAT 파일 시스템에서는 인접한 디스크 섹터가 클러스터라는 단위로 결합됩니다. 클러스터의 섹터 수는 2의 거듭제곱과 같습니다(아래 참조). 파일 데이터를 저장하기 위해 정수 개의 클러스터(최소 1개)가 할당됩니다. 예를 들어 파일 크기가 40바이트이고 클러스터 크기가 4KB인 경우 할당된 공간의 1%만 실제로 차지합니다. 파일 정보로. 이러한 상황을 방지하려면 클러스터 크기를 줄이고, 반대로 주소 정보의 양을 줄이고 파일 작업 속도를 높이는 것이 좋습니다. 실제로는 어느 정도 타협이 선택됩니다. 디스크 용량은 전체 클러스터 수로 표현되지 않을 수 있으므로 일반적으로 볼륨 끝에 소위 있습니다. 잉여 섹터 - 정보 저장을 위해 OS에서 할당할 수 없는 클러스터 크기보다 작은 "나머지"입니다.

FAT32 볼륨 공간은 논리적으로 세 개의 연속 영역으로 나뉩니다.

  • 예약된 지역입니다. 파티션 부트 레코드(파티션 부트 레코드 - PBR, 마스터 부트 레코드(디스크의 기본 부트 레코드)와 구별하기 위해 PBR은 종종 부트 섹터라고도 잘못 불림)에 속하는 서비스 구조를 포함하며 초기화할 때 사용됩니다. 용량;
  • 데이터 영역의 클러스터에 해당하는 인덱스 포인터("셀")의 배열을 포함하는 FAT 테이블의 영역입니다. 일반적으로 안정성을 위해 디스크에는 FAT 테이블의 복사본이 두 개 있습니다.
  • 파일의 실제 내용이 기록되는 데이터 영역, 즉 텍스트 텍스트 파일, 사진 파일용 인코딩 이미지, 오디오 파일용 디지털 사운드 등 - 소위 말하는 것들도 있습니다. 메타데이터 - 파일 및 폴더 이름, 해당 속성, 생성 및 수정 시간, 크기 및 디스크에서의 배치에 관한 정보입니다.

FAT12 및 FAT16도 루트 디렉터리 영역을 구체적으로 할당합니다. 고정된 위치(FAT 테이블의 마지막 요소 바로 뒤)와 섹터의 고정된 크기를 갖습니다.

클러스터가 파일에 속하는 경우 해당 셀에는 동일한 파일의 다음 클러스터 번호가 포함됩니다. 셀이 파일의 마지막 클러스터에 해당하는 경우 특수 값(FAT16의 경우 FFFF 16)이 포함됩니다. 이러한 방식으로 파일 클러스터 체인이 구축됩니다. 표에서 사용되지 않은 클러스터는 0에 해당합니다. "불량" 클러스터(예를 들어 장치의 해당 영역을 읽을 수 없기 때문에 처리에서 제외됨)도 특수 코드에 해당합니다.

파일이 삭제되면 이름의 첫 번째 문자가 대체됩니다. 특수 코드 E5 16 및 할당 테이블의 파일 클러스터 체인이 0으로 재설정됩니다. 파일 이름 옆의 디렉터리에 있는 파일 크기에 대한 정보는 그대로 유지되므로 파일 클러스터가 디스크에 순차적으로 위치하고 새로운 정보로 덮어쓰이지 않았다면 삭제된 파일을 복원하는 것이 가능합니다.

부팅 항목

첫 번째 FAT 볼륨 구조를 BPB라고 합니다. BIOS 매개변수 블록 ) 섹터 0의 예약된 영역에 위치합니다. 이 구조에는 파일 시스템의 유형과 저장 매체(플로피 디스크 또는 하드 디스크 파티션)의 물리적 특성을 식별하는 정보가 포함됩니다.

BIOS 매개변수 블록

BPB는 기본적으로 MS-DOS 1.x를 제공하는 FAT에는 없었습니다. 당시에는 두 가지 FAT만 있었기 때문입니다. 다양한 방식볼륨 - 360kB의 단면 및 양면 5인치 플로피 디스크이며 볼륨 형식은 FAT 영역의 첫 번째 바이트에 의해 결정됩니다. BPB는 이후 볼륨 형식을 결정하는 필수 부트 섹터 구조로 1983년 초 MS-DOS 2.x에 도입되었습니다. FAT의 첫 번째 바이트로 결정하는 기존 방식은 지원을 잃었습니다. 또한 MS-DOS 2.0에서는 파일과 폴더의 계층 구조가 도입되었습니다(이전에는 모든 파일이 루트 디렉터리에 저장되었습니다).

MS-DOS 2.x의 BPB 구조에는 16비트 "총 섹터 수" 필드가 포함되어 있습니다. 즉, 이 버전의 FAT는 기본적으로 2 16 = 65,536 섹터, 즉 32MB보다 큰 볼륨에 적용할 수 없습니다. 표준 섹터 크기는 512바이트입니다. MS-DOS 4.0(1988)에서는 위의 BPB 필드가 32비트로 확장되었습니다. 즉, 이론적 볼륨 크기가 232 = 4,294,967,296 섹터, 즉 512바이트 섹터의 경우 2TB로 늘어났습니다.

BPB의 다음 수정본은 FAT32(1996년 8월)를 도입한 Windows 95 OSR2에서 나타났습니다. 볼륨 크기에 대한 2GB 제한이 제거되었으며, FAT32 볼륨은 이론적으로 최대 8TB 크기까지 가능합니다. 그러나 각 개별 파일의 크기는 4GB를 초과할 수 없습니다. BIOS 매개변수 블록 FAT32는 이전 버전의 FAT와의 호환성을 위해 BPB_TotSec32 필드까지 BPB FAT16을 반복하고 차이점을 따릅니다.

FAT32 "부트 섹터"는 실제로 3개의 512바이트 섹터(섹터 0, 1, 2)입니다. 각 섹터에는 주소 0x1FE에 0xAA55 서명이 포함되어 있습니다. 즉, 섹터 크기가 512바이트인 경우 마지막 2바이트에 있습니다. 섹터 크기가 512바이트를 초과하는 경우 서명은 주소 0x1FE와 0 섹터의 마지막 2바이트에 모두 포함됩니다. 즉, 서명이 복제됩니다.

FS정보

FAT32 파티션의 부트 레코드에는 다음과 같은 구조가 포함되어 있습니다. FS정보, 볼륨에 사용 가능한 클러스터 수를 저장하는 데 사용됩니다. FSInfo는 일반적으로 섹터 1을 차지하며(BPB_FSInfo 필드 참조) 다음과 같은 구조를 갖습니다(섹터 시작에 상대적인 주소).

  • FSI_LeadSig. 4바이트 서명 0x41615252는 해당 섹터가 FSInfo 구조에 사용됨을 나타냅니다.
  • FSI_예약1. 섹터의 4번째 바이트부터 483번째 바이트까지의 간격이 0으로 재설정됩니다.
  • FSI_StrucSig. 또 다른 서명은 주소 0x1E4에 있으며 값 0x61417272를 포함합니다.
  • FSI_Free_Count. 주소 0x1E8의 4바이트 필드에는 시스템에 알려진 볼륨의 사용 가능한 클러스터 수의 마지막 값이 포함됩니다. 0xFFFFFFFF 값은 사용 가능한 클러스터 수를 알 수 없으며 계산해야 함을 의미합니다.
  • FSI_Nxt_Free. 주소 0x1EC의 4바이트 필드에는 인덱스 포인터 테이블에서 사용 가능한 클러스터 검색을 시작해야 하는 클러스터 번호가 포함되어 있습니다. 일반적으로 이 필드에는 파일을 저장하기 위해 할당된 마지막 FAT 클러스터의 번호가 포함됩니다. 0xFFFFFFFF 값은 FAT 테이블의 맨 처음, 즉 두 번째 클러스터부터 무료 클러스터 검색을 수행해야 함을 의미합니다.
  • FSI_Reserved2. 주소 0x1F0에 예약된 12바이트 필드입니다.
  • FSI_TrailSig. 서명 0xAA550000 - FSInfo 섹터의 마지막 4바이트.

FSInfo 도입의 요점은 시스템 작동을 최적화하는 것입니다. FAT32에서는 인덱스 포인터 테이블이 중요할 수 있고 바이트 단위로 스캔하는 데 상당한 시간이 걸릴 수 있기 때문입니다. 그러나 FSI_Free_Count 및 FSI_Nxt_Free 필드의 값이 정확하지 않을 수 있으므로 적절한지 확인해야 합니다. 또한 일반적으로 섹터 7에 있는 FSInfo 백업에서도 업데이트되지 않습니다.

FAT 볼륨 유형 결정

볼륨의 FAT 유형 결정(즉, FAT12, FAT16 및 FAT32 중에서 선택)은 볼륨의 클러스터 수를 기반으로 OS에 의해 이루어지며, 이는 차례로 BPB 필드에서 결정됩니다. 우선, 루트 디렉터리의 섹터 수가 계산됩니다.

RootDirSectors = (BPB_RootEntCnt * 32) / BPB_BytsPerSec

DataSec = TotSec - (BPB_ResvdSecCnt + (BPB_NumFATs * FATSz) + RootDirSectors)

마지막으로 데이터 영역 클러스터의 수가 결정됩니다.

클러스터 수 = DataSec / BPB_SecPerClus

클러스터 수에 따라 파일 시스템과의 명확한 대응이 있습니다.

  • 클러스터 수< 4085 - FAT12
  • 클러스터 수 = 4085 ¼ 65524 - FAT16
  • 클러스터 수 > 65524 - FAT32

공식 사양에 따르면 이는 FAT 유형을 결정하는 유일한 유효한 방법입니다. 지정된 규정 준수 규칙을 위반하는 볼륨을 인위적으로 생성하면 Windows에서 해당 볼륨을 잘못 처리하게 됩니다. 그러나 종종 잘못 작성된 드라이버의 파일 시스템 유형을 올바르게 결정하려면 중요(4085 및 65525)에 가까운 CountofClusters 값을 피하는 것이 좋습니다.

시간이 지나면서 FAT가 널리 사용되기 시작했습니다. 다양한 장치 DOS, Windows, OS/2, Linux 간의 호환성을 위해. Microsoft는 라이센스를 강요할 의도가 없음을 보여주었습니다. 지정하다] .

2009년 2월, 마이크로소프트는 리눅스 기반의 자동차 내비게이션 시스템 제조업체인 톰톰(TomTom)을 특허 침해 혐의로 고소했습니다.

노트

  1. http://cd.textfiles.com/megademo2/INFO/OS2_HPFS.TXT
  2. www.microsoft.com/mscorp/ip/tech/fathist.asp(archive.org)
  3. Microsoft 확장 가능 펌웨어 이니셔티브 FAT32 파일 시스템 사양 1.03. 마이크로소프트(2000년 12월 6일). - 문서 형식 마이크로 소프트 워드, 268KB. 보관됨
  4. VFAT는 어떻습니까? . TechNet 아카이브. 마이크로소프트(1999년 10월 15일). 2011년 8월 22일에 원본 문서에서 보존된 문서. 2010년 4월 5일에 확인함.
  5. VFAT 파일 시스템 확장자는 다음과 같은 이름의 파일 시스템 드라이버와 혼동되어서는 안 됩니다. Windows용 Workgroups 3.11은 보호 모드에서 MS-DOS 기능(INT 21h)에 대한 호출을 처리하도록 설계되었습니다(참조: KB126746: Windows for Workgroups 버전 기록. 버전 3.11 → 비네트워크 기능. 마이크로소프트(2003년 11월 14일). 2011년 8월 22일에 원본 문서에서 보존된 문서. 2010년 4월 5일에 확인함.)
  6. 연방 특허 법원은 Microsoft의 FAT 특허가 무효라고 선언합니다(영문). 헤이즈 온라인. Heise Zeitschriften Verlag(2007년 3월 2일). 보관됨
  7. 브라이언 카힌. Microsoft는 FAT 특허로 세계를 뒤흔들고 있습니다. 허핑턴 포스트(2009년 3월 10일). 2011년 8월 22일에 원본 문서에서 보존된 문서. 2009년 3월 10일에 확인함.
  8. 라이언 폴. FAT 특허에 대한 Microsoft의 소송으로 OSS Pandora's Box(영어)가 열릴 수 있습니다. 아르스 테크니카. Condé Nast 출판물(2009년 2월 25일). 보관됨
  9. 글린 무디.(영어) . ComputerworldUK. IDG(2009년 3월 5일). 2011년 8월 22일에 원본 문서에서 보존된 문서. 2009년 3월 9일에 확인함.
  10. 스티븐 J. 본-니콜스. Linux 회사는 Microsoft 특허 보호 협약(영어)에 서명합니다. 컴퓨터월드 블로그. IDG(2009년 3월 5일). 2011년 8월 22일에 원본 문서에서 보존된 문서. 2009년 3월 9일에 확인함.
  11. 에리카 오그. TomTom은 특허 분쟁으로 Microsoft를 상대로 소송을 제기했습니다. 씨넷(2009년 3월 19일). 2011년 8월 22일에 원본 문서에서 보존된 문서. 2009년 3월 20일에 확인함.

연결

  • ECMA-107(영어) FAT 표준



맨 위