PDB (Palm OS) - PDB (Palm OS)

PDB er et containerformat for postdatabaser i Palm OS , Garnet OS og Access Linux Platform . Strukturen ligner på PRC- ressursdatabaser. PalmDOC eBook- format er en spesiell versjon av PDB-formatet.

Struktur av PDB-fil

En PDB-fil inneholder en PDB-header, PDB-posthoder og poster .

PDB-topp
PDB Record Header
PDB-poster

PDB-topp

PDB-overskriften er plassert i begynnelsen av filen og inneholder metainformasjon om filen:

offset Navn Type Størrelse
0x00 Navn røye (endret ISO-8859-1 ) 32 byte
0x20 filattributter heltall 2 byte
0x22 versjon heltall 2 byte
0x24 skapelsestid 32bit heltall - PDB Datetime 4 byte
0x28 endringstid 32bit heltall - PDB Datetime 4 byte
0x2c sikkerhetskopieringstid 32bit heltall - PDB Datetime 4 byte
0x30 endringsnummer heltall 4 byte
0x34 app_info heltall 4 byte
0x38 sort_info heltall 4 byte
0x3c type heltall 4 byte
0x40 skaperen heltall 4 byte
0x44 unique_id_seed heltall 4 byte
0x48 next_record_list heltall 4 byte
0x4c NUM_RECORDS heltall 2 byte

PDB Record Header

For hver post er det en åtte byte posthode, som inneholder:

Navn type størrelse notater
offset heltall 4 byte Bytnummer i PDB-filen (teller fra null), der posten befinner seg
egenskaper byte 1 byte Attributtene til posten (slett / skitten / opptatt / hemmelig / kategori)
Unik ID heltall 3 byte Alltid 0

PDB-poster

Nå følger postene selv. Den vanlige rekkefølgen er AppInfoArea, SortInfoArea og poster, i rekkefølge.

PDB Datetime

Mange PDB-formatfiler brukte ganger som teller i sekunder fra 1904-01-01T00: 00: 00. Dette er grunntiden som brukes av den originale Macintosh (opp til Mac OS 9). Det kan bemerkes at det var tette koblinger mellom Palm OS og Mac OS under tidlig utvikling. Ved å bruke et usignert 32-bits heltall og epoken fra 1904, vil heltalloverløp overløpe en gang i 2040.

Andre kan antas å telle fra 1970-01-01T00: 00: 00 (Unix-epoken basistid), og bruker et signert 32-bits heltall som vil strømme over en gang i 2038.

For begge systemene vil overløp skje på rundt 30 år.

Palm OS Protein C / C ++ Compiler Language & Library Reference, Copyright 2004 Palm Source kaller datoene beregnet fra 1904 "gammel Palm-epoke", og datoene beregnet fra 1970 "UNIX-epoke". Protein C tilbyr også funksjoner (palm_seconds_to_time_t (), og time_t_to_palm_seconds ()) for konvertering mellom de to.

Noen kilder antyder til og med at noen veldig gamle filer kan bruke teller fra 1900 (noe som ville være i samsvar med Excel-epoken).

Denne konflikten mellom gammel Palm (Mac OS 9) -epoke og UNIX-epoke er uheldig, følgende heuristikk kan være nyttig når du undersøker en fil som er kopiert fra en Palm OS-enhet:

  • Hvis tiden har satt den øverste biten, er det et usignert 32-bits tall som teller fra 1. januar 1904
  • Hvis tiden har den øverste biten klar, er det et signert 32-bits nummer som teller fra 1. januar 1970.

Dette er basert på ideen om at ellers ville tiden være før 1972 eller før 1970 (avhengig av tolkning) og PDB-formatet var ikke rundt den gang.

Den palmdump verktøy og annen programvare bruker denne regelen-tommel når du leser filer.

Se også

referanser