728x90

오늘은 간단히 파일 시스템의 구조를 정리해 보도록 하겠습니다.

-FAT16-

-FAT32-

위 그림은 FAT16과 FAT32의 구조를 그림으로 명시한 것입니다. 큰 차이는 없으며 다만 루트 디렉토리가 FAT16에는 따로 존재하는 반면, FAT32는 데이터 섹션에 포함되어 있습니다. FAT32는 루트 디렉토리 역시 일반 디렉토리 중의 하나로 간주하기 때문입니다.

그럼 각 영역에 대해서 알아보도록 하겠습니다.

Boot Record ( 부트 레코드 )

볼륨의 첫 번째 섹터를 의미하며 Windows를 부팅시키기 위한 기계어 코드와 FAT 파일 시스템의 여러 설정 값들이 담겨 있습니다. BIOS Parameter Block(BPB) 라고도 하지요. 크기가 1섹터 밖에 안되는 반면 컴퓨터가 부팅 시 필요한 파일 시스템의 중요한 정보를 담고 있습니다.

크기 : 1섹터

접근 단위 : 섹터

Reserved Section ( 예약된 영역 )

미래를 위해 남겨둔 영역이며 사용되지 않습니다. FAT32의 경우 예약된 영역 안에 몇 개의 섹터를 사용하여 부트 레코드 정보를 저장하고 있으므로 주의할 것.

크기 : 1 ~ 32 섹터

접근 단위 : 섹터

FAT#1 FAT#2

클러스트들을 관리하는 테이블이 모여 있는 공간입니다. FAT 영역을 통해서 어떤 클러스터가 비어 있는지 어떤 파일에 어떤 클러스터가 연결되어 있는지를 알 수 있습니다. 이 부분이 손상되면 큰 일이 나므로 FAT#2 와 같이 백업본을 저장해 놓고 있습니다. 즉, FAT#1과 FAT#2의 내용은 동일하죠.

크기 : 파티션의 1 ~ 0.5%

접근 단위 : 섹터

RootDirectory ( 루트 디렉토리 영역 )

FAT16의 경우 루트 디렉토리가 무조건 FAT#2의 뒤쪽에 고정되어 있습니다. 위치를 알면 바로 찾아갈 수 있기 때문에 개발의 편의성의 장점도 있지만 루트 디렉토리의 파일 개수의 제한 등의 단점도 존재합니다. 단점을 보강하기 위해 FAT32에서는 루트 디렉토리가 데이터 영역에 포함되었으며 그 위치는 부트 레코드에 기록되어 있습니다. 단점은 부트 레코드가 망가지면 루트 디렉토리를 찾아내기가 힘들다는 것이죠.

Data Section ( 데이터 영역 )

파일과 디렉토리가 저장되어 있는 부분입니다. 이 영역은 유일하게 클러스터(Cluster)라고 불리는 논리적 단위로 읽고 쓰기가 됩니다.

크기 : 파티션의 99% 이상

접근 단위 : 클러스터

Unused Section ( 사용하지 않는 영역 )

FAT 볼륨을 구조화하는 과정에서 조금 남는 부분입니다. 실제로는 매우 적은 양이므로 아깝다고 생각하실 필요 없습니다.

- 참고 : 임베디드 개발자를 위한 파일 시스템 원리와 실습 ( 한빛 미디어 ) -

728x90

'OS' 카테고리의 다른 글

error: no such partition  (0) 2013.07.07
유닉스 파일시스템의 구조  (0) 2013.06.10
UNIX FILE SYSTEM - INODE  (0) 2013.06.09
피터슨 알고리즘  (0) 2013.04.07
windows 동기화  (0) 2013.04.07

+ Recent posts