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]
Ofset | název | Typ | Velikost |
---|---|---|---|
0x00 | název | char (Upraveno ISO-8859-1 ) | 32 bajtů |
0x20 | atributy souboru | celé číslo | 2 bajty |
0x22 | verze | celé číslo | 2 bajty |
0x24 | čas vytvoření | 32bitové celé číslo - PDB Datetime | 4 byty |
0x28 | doba modifikace | 32bitové celé číslo - PDB Datetime | 4 byty |
0x2c | záložní čas | 32bitové celé číslo - PDB Datetime | 4 byty |
0x30 | číslo modifikace | celé číslo | 4 byty |
0x34 | app_info | celé číslo | 4 byty |
0x38 | sort_info | celé číslo | 4 byty |
0x3c | typ | celé číslo | 4 byty |
0x40 | tvůrce | celé číslo | 4 byty |
0x44 | unique_id_seed | celé číslo | 4 byty |
0x48 | next_record_list | celé číslo | 4 byty |
0x4c | num_records | celé číslo | 2 bajty |
Záhlaví záznamu PDB
Pro každý záznam existuje osmibajtová záhlaví záznamu, která obsahuje:[3]
název | typ | velikost | poznámky |
---|---|---|---|
offset | celé číslo | 4 byty | Číslo bajtu v souboru PDB (počítáno od nuly), kde je umístěn záznam |
atributy | byte | 1 bajt | Atributy záznamu (smazat / špinavý / zaneprázdněný / tajný / kategorie) |
Unikátní ID | celé číslo | 3 bajty | Vž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
- ^ N. Rhodes, J. McKeehan. Programování Palm OS, druhé vydání, O'Reilly, 2001, ISBN 1-56592-856-3
- ^ MobileRead Wiki: Specifikace formátu PalmDOC
- ^ A b C Paul J. Lucas (1998) Formát souboru PDB (Pilot Database). Vyvoláno 20090308
- ^ A b Microfirst Software. Formát databáze pilotních záznamů Archivováno 2009-03-15 na Wayback Machine Vyvoláno 20090308