PDB (Palm OS) - PDB (Palm OS)

PDB je formát kontejneru pro záznam databáze v Palm OS, Granátový OS a Získejte přístup k platformě Linux. Jeho struktura je podobná PRC databáze zdrojů.[1] PalmDOC eBook format je speciální verze formátu PDB.[2]

Struktura souboru PDB

Soubor PDB obsahuje záhlaví PDB, záhlaví záznamů PDB a evidence.[3][4]

Záhlaví PDB
Záhlaví záznamu PDB
Záznamy PDB

Záhlaví PDB

Záhlaví PDB je umístěno na začátku souboru a obsahuje metainformace o souboru:[3]

OfsetnázevTypVelikost
0x00názevchar (Upraveno ISO-8859-1 )32 bajtů
0x20atributy souborucelé číslo2 bajty
0x22verzecelé číslo2 bajty
0x24čas vytvoření32bitové celé číslo - PDB Datetime4 byty
0x28doba modifikace32bitové celé číslo - PDB Datetime4 byty
0x2czáložní čas32bitové celé číslo - PDB Datetime4 byty
0x30číslo modifikacecelé číslo4 byty
0x34app_infocelé číslo4 byty
0x38sort_infocelé číslo4 byty
0x3ctypcelé číslo4 byty
0x40tvůrcecelé číslo4 byty
0x44unique_id_seedcelé číslo4 byty
0x48next_record_listcelé číslo4 byty
0x4cnum_recordscelé číslo2 bajty

Záhlaví záznamu PDB

Pro každý záznam existuje osmibajtová záhlaví záznamu, která obsahuje:[3]

názevtypvelikostpoznámky
offsetcelé číslo4 bytyČíslo bajtu v souboru PDB (počítáno od nuly), kde je umístěn záznam
atributybyte1 bajtAtributy záznamu (smazat / špinavý / zaneprázdněný / tajný / kategorie)
Unikátní IDcelé číslo3 bajtyVždy 0

Záznamy PDB

Nyní následují samotné záznamy. Obvyklé pořadí je AppInfoArea, SortInfoArea a záznamy, postupně.[4]

Datové časy PDB

Mnoho souborů ve formátu PDB používalo časy počítané v sekundách od 1904-01-01T00: 00: 00. Toto je základní čas používaný původním počítačem Macintosh (až do Mac OS 9). Je možné poznamenat, že během počátečního vývoje existovaly úzké vazby mezi Palm OS a Mac OS. Při použití nepodepsaného 32bitového celého čísla a epochy roku 1904 dojde k přetečení celého čísla někdy v roce 2040.

Je možné pozorovat, že ostatní počítají od 1970-01-01T00: 00: 00 (základní epochový čas Unixu) a používají podepsané 32bitové celé číslo, které přeteče někdy v roce 2038.

U obou systémů dojde k přetečení přibližně za 30 let.

Referenční příručka jazyka a knihovny kompilátoru Palm OS Protein C / C ++, Copyright 2004 Palm Source nazývá data počítaná od roku 1904 „starou Palmovou epochou“ a data počítaná od roku 1970 „UNIX epochou“. Protein C také poskytuje funkce (palm_seconds_to_time_t () a time_t_to_palm_seconds ()) pro převod mezi těmito dvěma.

Některé zdroje dokonce navrhnout, že některé velmi staré soubory mohou používat časy počítané od roku 1900 (což by odpovídalo epochě aplikace Excel).

Tento konflikt mezi starou epochou Palm (Mac OS 9) a epochou UNIX je nešťastný, následující heuristika může být užitečná při zkoumání souboru zkopírovaného ze zařízení Palm OS:

  • Pokud má čas nastaven horní bit, je to nepodepsané 32bitové číslo počítané od 1. ledna 1904
  • Pokud má čas horní bit jasný, je to podepsané 32bitové číslo počítané od 1. ledna 1970.

To je založeno na myšlence, že jinak by byl čas před rokem 1972 nebo před rokem 1970 (v závislosti na interpretaci) a formát PDB tehdy nebyl.

The palmdump obslužný program a další software používá toto pravidlo při čtení souborů.

Viz také

Reference

  1. ^ N. Rhodes, J. McKeehan. Programování Palm OS, druhé vydání, O'Reilly, 2001, ISBN  1-56592-856-3
  2. ^ MobileRead Wiki: Specifikace formátu PalmDOC
  3. ^ A b C Paul J. Lucas (1998) Formát souboru PDB (Pilot Database). Vyvoláno 20090308
  4. ^ A b Microfirst Software. Formát databáze pilotních záznamů Archivováno 2009-03-15 na Wayback Machine Vyvoláno 20090308