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.
innhold
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.