PDB(팜 OS)
PDB (Palm OS)PDB는 Palm OS, Garnet OS 및 Access Linux Platform의 레코드 데이터베이스용 컨테이너 형식입니다.구조는 PRC [1]리소스 데이터베이스와 유사합니다.팜DOC eBook 형식은 PDB [2]형식의 특수 버전입니다.
PDB 파일 구조
PDB 파일에는 PDB 헤더, PDB 레코드 헤더 및 [3][4]레코드가 포함됩니다.
PDB 헤더 |
PDB 레코드 헤더 |
PDB 레코드 |
PDB 헤더
PDB 헤더는 파일의 시작 부분에 위치하며 파일의 [3]메타 정보를 포함합니다.
오프셋 | 이름. | 유형 | 크기 |
---|---|---|---|
0x00 | 이름. | char (변경된 ISO-8859-1) | 32 바이트 |
0x20 | 파일 속성 | 정수 | 2 바이트 |
0x22 | 버전 | 정수 | 2 바이트 |
0x24 | 생성 시간 | 32비트 정수 - PDB Datetime | 4 바이트 |
0x28 | 수정 시간 | 32비트 정수 - PDB Datetime | 4 바이트 |
0x2c | 백업 시간 | 32비트 정수 - PDB Datetime | 4 바이트 |
0x30 | 수정 번호 | 정수 | 4 바이트 |
0x34 | app_info | 정수 | 4 바이트 |
0x38 | sort_info | 정수 | 4 바이트 |
0x3c | 유형 | 정수 | 4 바이트 |
0x40 | 창조자 | 정수 | 4 바이트 |
0x44 | unique_id_seed | 정수 | 4 바이트 |
0x48 | next_record_list | 정수 | 4 바이트 |
0x4c | num_module | 정수 | 2 바이트 |
PDB 레코드 헤더
각 레코드에 대해 다음 [3]내용을 포함하는 8바이트 레코드 헤더가 있습니다.
이름. | 유형 | 크기 | 메모들 |
---|---|---|---|
오프셋 | 정수 | 4 바이트 | 레코드가 있는 PDB 파일의 바이트 번호(0부터 카운트) |
특성 | 바이트 | 1 바이트 | 레코드의 속성(삭제/더러움/비지/비밀/카테고리) |
유니크 아이디 | 정수 | 3바이트 | 항상 0 |
PDB 레코드
이제 기록 자체가 따라다닌다.통상적인 순서는 [4]AppInfoArea, SortInfoArea 및 레코드입니다.
PDB 날짜
많은 PDB 형식 파일은 1904-01-01T00:00:00:00초 단위로 시간을 계산하여 사용합니다.이 시간은 원래 Macintosh(Mac OS 9까지)에서 사용된 기본 시간입니다.초기 개발 과정에서 Palm OS와 Mac OS 간의 긴밀한 연계가 있었음을 알 수 있습니다.부호 없는 32비트 정수와 1904에폭을 사용하면 2040년 중에 정수 오버플로가 발생합니다.
1970-01-01T00:00:00(유닉스 에폭 베이스 타임)부터 카운트되고 있는 것을 확인할 수 있는 경우도 있습니다.서명된 32비트 정수는 2038년 중에 오버플로우됩니다.
Palm OS Protein C/C++ 컴파일러 언어 및 라이브러리 레퍼런스, Copyright 2004 Palm Source에서는 1904년부터 계산한 날짜를 "Old Palm Epoch" 및 1970년부터 계산한 날짜를 "UNIX Epoch"라고 부릅니다.또한 단백질 C는 두 가지 함수를 변환하기 위한 함수(palm_seconds_to_time_t() 및 time_t_to_palm_seconds())도 제공합니다.
일부 소스에서는 매우 오래된 파일 중 일부는 1900년 이후의 시간을 사용할 수 있다고 제안하기도 합니다(Excel 시대와 일치합니다).
오래된 Palm(Mac OS 9) epoch와 UNIX epoch의 경합은 유감입니다.다음의 휴리스틱은 Palm OS 디바이스에서 복사된 파일을 조사할 때 도움이 될 수 있습니다.
- 시각에 상위 비트가 설정되어 있는 경우 1904년 1월 1일부터 부호 없는 32비트 숫자 카운트입니다.
- 시각의 톱 비트가 클리어 되어 있는 경우는, 1970년 1월 1일부터의 부호 있는 32비트 숫자 카운트입니다.
이는 그렇지 않으면 1972년 이전이나 1970년 이전(해석에 따라 다름)이라는 생각에 기초하고 있으며 PDB 형식은 그 당시가 아니었다.
palmdump 유틸리티 및 기타 소프트웨어는 파일을 읽을 때 이 기본 규칙을 사용합니다.