HFS 플러스

위키백과, 우리 모두의 백과사전.

HFS+
개발사애플
정식 명칭HFS 플러스
Hierarchical File System Plus
도입1998-01-19 - 맥 OS 8.1
파티션 식별자Apple_HFS (애플 파티션 맵)
0xAF (MBR)
Apple_HFSX (애플 파티션 맵) - HFSX
48465300-0000-11AA-
AA11-00306543ECAC
(GPT)
구조
디렉터리 내용B 트리
파일 할당비트맵
불량 블록B 트리
제약사항
최대 볼륨 크기엑사바이트[1]
최대 파일 크기8 엑사바이트[2]
최대 파일 수4,294,967,295 (232-1)
최대 파일 이름 길이255자 (255 UTF-16 인코딩 단위)
파일 이름 내 허용 문자유니코드, NUL을 포함한 임의의 문자. OS API는 과거의 규칙을 이유로 일부 문자를 제한할 수도 있음.
기능
날짜 사용 권한접근, 특성 수정, 백업, 콘텐츠 수정, 작성
날짜 범위1904년 1월 1일 ~ 2040년 2월 6일
날짜 정밀도1 s
포크
특성color (3비트, 기타 모든 플래그는 1비트), locked, custom icon, bundle, invisible, alias, system, stationery, inited, no INIT resources, shared, desktop
파일 시스템 권한유닉스 권한, NFSv4 ACL (OS X v10.4 이상)
투명한 압축예 (OS X 10.6 이상)[3]
투명한 암호화예 (OS X 10.7 이상). 홈 디렉터리 당 암호화는 HFS+로 포맷된 .dmg 볼륨을 사용하여 AES를 통해 이용 가능 (10.7 이전, 10.3 이후의 OS X 버전 기준)
기타
지원 운영 체제맥 OS 8.1, 맥 OS 9, OS X, & 다윈, 리눅스, 마이크로소프트 윈도우 (부트 캠프[4] IFS 드라이버를 통해)

HFS 플러스(HFS Plus, HFS+)는 애플이 개발한 파일 시스템이다. OS X의 주 파일 시스템으로 사용된다. 매킨토시 컴퓨터(또는 맥 OS를 구동하는 다른 시스템)의 주 파일 시스템으로 사용되었던 계층적 파일 시스템(HFS)을 대체하기 위해 개발되었다. 디지털 음악 플레이어인 아이팟에서 사용되는 포맷 중 하나이기도 하다. 이전 버전에 해당하는 HFS가 맥 OS 스탠다드 또는 HFS 스탠다드로 불렸기 때문에 HFS 플러스는 맥 OS 익스텐디드(Mac OS Extended) 또는 "HFS 익스텐디드"(HFS Extended)로 불리기도 한다. 애플은 이 파일 시스템을 개발할 때 이를 코드네임 세쿼이아(Sequoia)로 불렀다.[5]

HFS 플러스는 HFS의 개량 버전으로서, 훨씬 더 큰 크기의 파일을 지원(블록 주소가 16 비트에서 32 비트 길이로 확장됨)하며, 파일 및 폴더 이름에 유니코드를 사용(기존의 맥 OS 로만 또는 다른 문자셋을 대체)하고, 유니코드 정규화 방식 D와 거의 동일한 방식의 정규화(‘å’와 같은 조합문자가 파일명에서 두 개의 코드로 저장되며 유니코드 기본 다국어 평면 밖의 문자들 또한 두 개의 코드로 저장됨)를 적용한다.[6] HFS 플러스에서는 파일 이름은 최대 255 UTF-16 코드 길이가 될 수 있으며, NTFS와 유사한 n-포크(n-forked) 파일이 허용되었다. 2005년까지만 해도 데이터 포크와 리소스 포크 외에 포크를 사용하는 시스템은 거의 없었다. HFS가 16비트 할당 맵핑 테이블을 사용했던데 반해 HFS 플러스는 32비트 할당 맵핑 테이블을 사용한다. HFS의 경우 할당 맵핑 테이블 크기의 제약으로 인해 디스크당 최대 65,536개의 할당 블록만 관리할 수 있다는 점이 심각한 제약사항이었다. 이는 과거 디스크 용량이 작던 시절에는 문제가 되지 않았으나, 디스크 용량이 점점 커짐에 따라 파일이 사용할 수 있는 가장 작은 영역(단일 할당 블록)의 크기도 매우 커져서 전체 디스크 용량을 낭비하게 된다는 문제를 발생시켰다. 예를 들어, 1GB 용량의 디스크에 HFS를 적용하면 할당 블록의 사이즈가 16KB가 되어 1바이트짜리 파일도 항상 16KB의 디스크 용량을 차지하게 되는 것이다. 다른 대부분의 파일 시스템들과 달리 HFS 플러스는 디렉토리에 대한 하드 링크를 지원한다.

대부분의 볼륨 메타데이터를 저장하는 데에 HFS 플러스는 HFS와 마찬가지로 B 트리를 사용한다.

역사[편집]

HFS 플러스는 1998년 1월 19일 맥 OS 8.1의 릴리즈와 함께 도입되었다.[2]

2002년 11월 11일 맥 OS X v10.2.2 업데이트의 릴리즈와 함께 애플은 HFS 플러스에 데이터 신뢰성을 향상시키는 저널링 옵션을 추가하였다. 맥 OS X 서버에서는 이 기능에 쉽게 접근할 수 있었으나, 데스크탑 클라이언트에서는 커맨드 라인을 통해서만 접근이 가능했다.[7] 맥 OS X 10.3에 와서는, 맥의 모든 HFS 플러스 볼륨에 저널링이 기본으로 적용되었다. 시스템 내에서 저널링이 적용된 HFS 플러스 볼륨은 HFSJ로 표시된다.

각주[편집]

  1. “OS X: Mac OS Extended format (HFS Plus) volume and file limits”. Support.apple.com. 2008년 7월 29일. 2010년 7월 5일에 확인함. 
  2. “Technical Note TN1150: HFS Plus Volume Format”. 《Apple Developer Connection》. 2004년 3월 5일. 2007년 3월 28일에 확인함. 
  3. “10.6: Compress files with HFS+ compression - Mac OS X Hints”. 2012년 4월 1일에 원본 문서에서 보존된 문서. 2012년 12월 26일에 확인함. 
  4. Boot Camp 3.0, Mac OS X 10.6: Frequently asked questions
  5. “New Mac OS Extended Format (HFS+) Available”. 《Apple Developer News》. 1997. 2007년 3월 28일에 확인함. 
  6. “Technical Q&A QA1235: Converting to Precomposed Unicode”. 《Apple Developer Connection》. 2003년 2월 7일. 2007년 3월 28일에 확인함. 
  7. John Gruber (2002년 11월 11일). “Crow”. 《DaringFireball.net》. 2007년 3월 28일에 확인함. 

외부 링크[편집]

  • (영어) Apple Technote 1189 - The Monster Disk Driver Technote
  • (영어) hfsdebug - A debugger for HFS Plus volumes by Amit Singh
  • (영어) HFSExplorer - A free Java-based utility to read HFS Plus on Windows