메타 데이터 혼란 | 명명 된 포크 | 확장 된 속성 | 리소스 포크 — HFS +


10

웹에 흩어져있는이 네 가지 항목 사이의 관계에 대한 일반적인 혼란이 있다고 생각합니다. 나는 이것을 정리하고 싶었다.

  1. 있습니까 포크라는 같은 확장 된 속성 ? 그렇지 않은 경우 확장 된 속성은 무엇입니까?
  2. 는 IS 리소스 포크는 여전히 포크로 또는로 구현 확장 된 속성 ? 다른 방법으로 구현되면 어떻게됩니까?
  3. 메타 데이터 파일에 저장 (제작자, 수정 날짜 ...) 가 언급 다른 세 사이의 모든 관계 용어 또는 오버랩된다. 예를 들어 확장 속성 은 파일에 저장된 추가 메타 데이터 쌍 (키 + 값) 입니다.

이 세 가지 질문, 특히 세 가지 질문과 관련하여이 네 가지가 서로 어떻게 관련되어 있는지 명확히 할 수있는 답변은 크게 감사하겠습니다.


HFS Plus에 대한 학습 : fileXray 사용 설명서 및 참조 (PDF, 1.8MB, 173 페이지)는 매우 유용합니다. 나는 fileXray 사용자입니다 . 또한 : 기술 노트 TN1150 : HFS 플러스 볼륨 포맷은 애플 은퇴 유산, 그러나 많은 목적을 위해 여전히 유용하다.
Graham Perrin

답변:


5

이러한 개념들 간의 관계가 복잡하고 시간이 지남에 따라 변화했다는 사실 때문에 혼란이 발생합니다. 현재 시스템에서 명명 된 포크와 확장 된 속성의 차이는 대부분 학문적입니다.

확장 된 속성의 경우 실제 데이터는 속성 데이터 레코드에 저장됩니다.

포크의 경우, 데이터가 포함 된 디스크 할당 블록 목록이 저장됩니다. 리소스 포크는 여전히 포크입니다.

기본 파일 시스템 메타 데이터는 속성 및 명명 된 포크 참조와 상관없이 파일 시스템 레코드 자체의 전용 요소에 저장됩니다.


1
그러나 확장 속성은 실제로 자체 포크로 저장됩니까, 아니면 확장 속성에 대한 포크가 있습니까? 최신 버전의 OSX와 어떤 관련이 있습니까?
rubixibuc

1
속성을 말할 때 "확장 속성"을 의미한다고 이해하지 못합니다. 그렇다면 속성 레코드는 어디에 보관됩니까? 파일 시스템 구조 HFS +의 일부로 저장되거나 일종의 데이터베이스에 저장됩니까? 당신이 할 수있을 때뿐만 아니라 첫 번째 의견에 응답하십시오.
rubixibuc

2
죄송합니다. 나는 자주 여기에 없으며 다른 것을 찾기 위해 여기에 올 때까지 후속 질문을 보지 못했습니다. 확장 된 속성은 명명 된 포크입니다. "확장 된 속성"의 약자로 속성을 사용하고있었습니다. 속성 레코드 는 속성 트리라는 파일 시스템의 개인 부분에 보관됩니다. 이를 일종의 데이터베이스로 생각할 수 있습니다. 각 속성 의 데이터 는 크기에 따라 해당 트리에 있거나 없을 수 있습니다.
GregW

"… 파일 시스템 메타 데이터는 파일 시스템 레코드 의 전용 요소에 저장됩니다 …"– 대신 "… 파일 메타 데이터가 파일 의 레코드 전용 요소에 저장 됩니다 ..."
Graham Perrin

동안 어쩌면 아무런 가치 com.apple.FinderInfo확장 된 속성으로 나타날 수 파인더 정보 확장은 (일반적으로 date_added, extended_flags+ 3 개 예약 필드)입니다 하지 확장 된 속성.
Graham Perrin

2

나는 이것에 대한 전문가는 아니지만, 무슨 일이 일어나고 있는지 이해하려고 조금 읽었습니다.

"혼란은 다음과 같은 사실에서 비롯됩니다.

  • 이 개념들 간의 관계는 복잡하고
  • 시간이 지남에 따라 바뀌었고
  • 애플은 프로그램 레벨 API를 모두 구현했으며 ls 또는 cp와 같은 툴은 개념 간의 많은 차이점을 숨길 수있는 방법이다. "

AIUI, HFS + 카탈로그 파일에는 카탈로그 파일 레코드가 포함되어 있습니다. 카탈로그 파일 레코드에는 작성 날짜, 액세스 날짜 등과 같은 파일에 대한 일반적인 정보가 들어 있습니다. 카탈로그 파일 레코드에는 데이터 포크 및 리소스 포크의 위치와 크기에 대한 정보를 제공하는 두 가지 구조도 포함됩니다.

AIUI, HFS +에는 HFS에 해당 구조가없는 HFS Plus의 새로운 B- 트리 인 속성 파일 [위키 백과 HFS +에서 복사]도 있습니다. 속성 파일은 3 가지 다른 유형의 4KB 레코드를 저장할 수 있습니다. 인라인 데이터 속성 레코드, 포크 데이터 속성 레코드 및 확장 속성 레코드 인라인 데이터 속성 레코드는 레코드 자체에 들어갈 수있는 작은 속성을 저장합니다 포크 데이터 속성 레코드에는 더 큰 속성을 보유 할 수있는 최대 8 개의 범위에 대한 참조가 포함됩니다. 8 개의 익스텐트 레코드가 이미 사용 된 경우 포크 데이터 속성 레코드를 확장하는 데 사용됩니다. "

AIUI, 속성 파일 (인라인, 포크 데이터 또는 확장 속성)에 저장되거나 참조되는 데이터는 확장 속성이라고합니다.

그것들은 데이터 구조이므로 어떻게 사용됩니까?

운영 체제의 초기 버전 인 AIUI ( John Siracusa 가이 영역에서 일부 큰 변화가 있음을 나타내는 것으로 보이는 10.4 Tiger 이전 버전 )는 카탈로그 파일에서 데이터 포크와 리소스 포크를 가리 켰습니다.

AIUI, 10.4 Tiger에 도달하면 속성 파일이 모든 종류의 데이터를 저장하는 데 널리 사용됩니다.

10.4 이후에 모든 자원 포크가 속성 파일에서 지적 될 수 있습니다 (그러나 모르겠습니다). 즉, 첫 번째 질문에 대한 답변으로, 이름 지정된 포크는 자원 포크가 아니며 자원 포크가 카탈로그 파일에서 참조되지 않는 한 확장 된 속성이라고 말합니다.

구현 방식을 아는 문제는 이전 버전과의 호환성을 유지하고 특히 다른 버전에서 한 버전의 Mac OS로 작성된 파일 시스템에 대한 액세스를 지원하기 위해 서로 다른 것들과 혼합이 투명하게 지원되어야한다는 것입니다.

데이터가 실제로 유지되는 일반적인 터미널 명령 줄 도구로는 알 수 없습니다.

따라서 액세스 rsrc하려면 카탈로그 파일의 Resource Fork에 액세스하고 있다고 제안 할 수 있습니다.

$ ls -l Icon^M/rsrc
-rwxr-xr-x  1 root  admin  486 23 Jul  2004 Icon?/rsrc

그러나 구문은 Icon^M디렉토리 아래의 파일처럼 보이지만 실제로는 그렇지 않습니다.

$ ls -lR Icon^M
-rwxr-xr-x@ 1 root  admin  0 23 Jul  2004 Icon?

Apple은 Resource Forks에 대한 특별한 사례를 구현했습니다.

대신에 우리는

$ ls -l@
-rwxr-xr-x@ 1 root  admin   0 23 Jul  2004 Icon?
    com.apple.FinderInfo    32 
    com.apple.ResourceFork  486 

이는 속성 파일에 액세스하고 있음을 나타냅니다. 그러나 다시 구현 ls하면 Resource Forks에 특별한 경우가있을 수 있습니다.

John Siracusa는 여기서 ACL 목록이 '확장 속성'으로 저장되지만 특별히 마스크되어 있으므로에 표시되지 않음을 지적 xattr합니다. xattr의 구현에는 특별한 경우 처리가 있습니다.

(이 특별한 경우 처리는 도구 코드 또는 도구가 액세스하는 기본 API 코드 일 수 있습니다.)

GregW, 만약 당신이 이것을 본다면, 내가 올바른 길을 따라 왔는지 아니면 절망적으로 혼란스러워하는지에 대해 더 전문적인 의견을 얻는 것이 좋을 것입니다.


여기에도 토론이 있지만 'jonsview'가 도움이되지 않는다고 생각합니다.
Tim
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.