PDB — это формат контейнера для баз данных записей в Palm OS , Garnet OS и Access Linux Platform . Его структура похожа на базы данных ресурсов PRC . [1] Формат PalmDOC eBook — это специальная версия формата PDB. [2]
Файл PDB содержит заголовок PDB, заголовки записей PDB и записи . [3] [4]
Заголовок PDB находится в начале файла и содержит метаинформацию о файле: [3]
Для каждой записи имеется восьмибайтовый заголовок записи, содержащий: [3]
Теперь следуют сами записи. Обычный порядок — AppInfoArea, SortInfoArea и записи, последовательно. [4]
Во многих файлах формата PDB время отсчитывалось в секундах от 1904-01-01T00:00:00. Это базовое время, используемое оригинальным Macintosh (до Mac OS 9). Можно отметить, что на ранних этапах разработки между Palm OS и Mac OS существовали тесные связи. При использовании беззнакового 32-битного целого числа и эпохи 1904 года переполнение целого числа произойдет где-то в 2040 году.
Другие могут вести отсчет с 1970-01-01T00:00:00 (базовое время эпохи Unix) и использовать знаковое 32-битное целое число, которое переполнится где-то в 2038 году.
Справочник по языку и библиотекам компилятора Palm OS Protein C/C++, Copyright 2004 Palm Source называет даты, вычисленные с 1904 года, «старой эпохой Palm», а даты, вычисленные с 1970 года, «эпохой UNIX». Protein C также предоставляет функции (palm_seconds_to_time_t() и time_t_to_palm_seconds() ) для преобразования между ними.
Некоторые источники даже предполагают, что некоторые очень старые файлы могут использовать отсчет времени с 1900 года (что соответствовало бы эпохе Excel).
Этот конфликт между старой эпохой Palm (Mac OS 9) и эпохой UNIX является досадным; следующая эвристика может оказаться полезной при проверке файла, скопированного с устройства Palm OS:
Это основано на идее, что в противном случае это было бы время до 1972 или до 1970 года (в зависимости от интерпретации), а формата PDB тогда еще не было.
Утилита palmdump и другое программное обеспечение используют это практическое правило при чтении файлов.