본문 바로가기

HFS+

File System - HFS+ (5) 이번 글에서는 Attributes File 영역과 Startup File 영역에 대해서 알아 볼 것이다. [Attributes File] 해당 영역은 카탈로그 파일의 속성 정보를 담고 있는 영역으로 b-tree 구조에서 노드의 크기 등을 정의하고 있는 영역이다. 해당 영역은 세 가지의 레코드 타입을 가지는데 이 레코드 타입들에 따라 길이가 달라지는 가변길이특징을 지니고 있다. 또 특이한 점은 해당 영역이 없어도 된다는 점이다. 아래는 해당 영역의 레코드 타입들이다. [그림 1 - 레코드 타입 목록] - 노드 속성 : b-tree 노드들에 해당하는 속성 레코드 타입이다. [그림 2 - 노드 속성 구조] - extents 기반의 속성 : fork 구조체로 정의되며 extents overflow file 영역.. 더보기
File System - HFS+ (4) 이번 글에서는 HFS+ 에서 제일 핵심적인 Catalog File 영역에 대해서 알아 볼 것이다. [Catalog File] 해당 영역은 파일의 주요 메타데이터들을 저장하고 있는 영역으로 b-tree 구조이다. 각 노드는 최소 4KB의 크기를 가지고 있으며 Mac OS X에서 파일이나 디렉토리에는 Catalog ID가 할당 되는데 각 ID 숫자 별 의미는 다음과 같다. [그림 1 - CatalogID 목록] 앞서 말했듯이 카탈로그 파일 영역은 b-tree 구조라고 하였다. 그렇기에 모든 노드와 인덱스들은 키를 가지고 있으며 또 노드들의 레코드들은 네 가지 종류로 나뉘어져 있다. [그림 2 - CatalogKey 오프셋 구조] 다음은 카탈로그 노드들의 레코드 종류이다. [그림 3 - 레코드 종류] 각 레코.. 더보기
File System - HFS+ (3) 계속해서 HFS+의 각 영역에 대해서 알아보자. [Allocation File] 해당 영역은 현재 블록이 할당 되어 있는지 판단하게 도와주는 비트맵 영역이다. 해당 영역에서 비트가 설정되어 있다면 비트에 해당하는 블록은 할당 되어 있는 것을 뜻하며, 비트가 설정되어 있지 않다면 할당 가능한 상태의 블록을 뜻한다. [Extents Overflow] 해당 영역은 하나의 B-tree가 데이터를 모두 저장하지 못하면 남은 데이터들을 저장하는 영역이다. 해당 영역의 오프셋 구조는 다음과 같다. [그림 1 - Extents Overflow 영역 오프셋 구조] - fork 타입 : fork의 타입을 정의하는 필드로 00으로 설정되어 있으면 data fork 타입이며, FF로 설정되어 있으면 resource fork .. 더보기
File System - HFS+ (2) 이번 글에서는 HFS+ 레이아웃에서 첫 번째에 위치하는 예약 영역과 그 다음에 위치하는 Volume Header에 대해서 알아 볼 것이다. [예약 영역] 해당 영역은 기존에 Boot Block이 위치하고 있던 자리로 OS가 발달하면서 부트 블록이 필요 없게 되어 사용하지 않게 되었다. 크기는 1024byte이며 만약 Mac OS Finder가 시스템 폴더를 변경하게 되면 변경 내용을 해당 영역에 기록하고 저장한다. [Volume Header] Volume Header는 HFS+ 의 시그니처, 볼륨 타임스탬프 등의 파일시스템 전반적인 정보들을 저장하고 있다. 크기는 512byte이며 세 번째 섹터에 저장된다. 해당 영역에 오프셋 구조는 다음과 같다. [그림 1 - Volume Header 오프셋 구조] -.. 더보기
File System - HFS+ (1) 이번 글 부터는 Mac OS X에서 사용하는 파일시스템 HFS+에 대해서 이야기 해 볼 것이다. 일단 이번 글에서는 HFS+가 무엇인지, 기본적인 레이아웃은 어떻게 구성되어있는지 알아 볼 것이다. [HFS+ ?] HFS+는 애플이 개발한 파일시스템으로 Mac OS X에서 기본으로 사용하는 파일시스템이다. HFS+ 이전에는 HFS라는 계층적 파일시스템이 있었는데 이 파일시스템을 조금 더 개선한 파일시스템이 HFS+ 이다. HFS+ 는 저널링을 지원하는 HFSJ 볼륨과 파일의 이름에서 대소문자를 구분하도록 만들어진 HFX 볼륨등으로 나누어진다. * 참고 : HFS+ 는 아이팟 플레이어에도 사용 된다. HFS와 HFS+의 제일 큰 차이점은 Allocation Mapping Table의 크기가 HFS+ 에서 커.. 더보기