PDB (sistema operativo Palm)

Formato de contenedor

PDB es un formato contenedor para bases de datos de registros en Palm OS , Garnet OS y Access Linux Platform . Su estructura es similar a las bases de datos de recursos PRC . [1] El formato de libro electrónico PalmDOC es una versión especial del formato PDB. [2]

Estructura del archivo PDB

Un archivo PDB contiene un encabezado PDB, encabezados de registro PDB y registros . [3] [4]

Encabezado PDB
Encabezado de registro PDB
Registros PDB

Encabezado PDB

El encabezado PDB se encuentra al principio del archivo y contiene metainformación sobre el archivo: [3]

CompensarNombreTipoTamaño
0x00nombrechar ( ISO-8859-1 modificado )32 bytes
0x20atributos de archivoentero2 bytes
0x22versiónentero2 bytes
0x24tiempo de creaciónEntero de 32 bits - PDB Datetime4 bytes
0x28hora de modificaciónEntero de 32 bits - PDB Datetime4 bytes
0x2ctiempo de respaldoEntero de 32 bits - PDB Datetime4 bytes
0x30número de modificaciónentero4 bytes
0x34información de la aplicaciónentero4 bytes
0x38información de clasificaciónentero4 bytes
0x3ctipoentero4 bytes
0x40creadorentero4 bytes
0x44semilla de identificación únicaentero4 bytes
0x48siguiente lista de registrosentero4 bytes
0x4cnum_registrosentero2 bytes

Encabezado de registro PDB

Para cada registro, hay un encabezado de registro de ocho bytes, que contiene: [3]

nombretipotamañonotas
compensarentero4 bytesNúmero de byte en el archivo PDB (contando desde cero), donde se encuentra el registro
atributosbyte1 byteAtributos del registro (eliminar/sucio/ocupado/secreto/categoría)
Identificación únicaentero3 bytesSiempre 0

Registros PDB

Ahora siguen los registros en sí. El orden habitual es AppInfoArea, SortInfoArea y registros, secuencialmente. [4]

Fechas y horas del PDB

Muchos archivos de formato PDB usaban tiempos contados en segundos desde 1904-01-01T00:00:00. Este es el tiempo base usado por el Macintosh original (hasta Mac OS 9). Cabe señalar que hubo vínculos estrechos entre Palm OS y Mac OS durante el desarrollo inicial. Si se usa un entero sin signo de 32 bits y la época de 1904, se producirá un desbordamiento de entero en algún momento de 2040.

Se puede observar que otros cuentan desde 1970-01-01T00:00:00 (la base de tiempo de la época de Unix) y utilizan un entero con signo de 32 bits que se desbordará en algún momento de 2038.

Referencia de biblioteca y lenguaje de compilación de Protein C/C++ para Palm OS, Copyright 2004 Palm Source denomina "época antigua de Palm" a las fechas calculadas a partir de 1904 y "época UNIX" a las calculadas a partir de 1970. Protein C también proporciona funciones (palm_seconds_to_time_t() y time_t_to_palm_seconds() ) para realizar conversiones entre ambas.

Algunas fuentes incluso sugieren que algunos archivos muy antiguos pueden utilizar tiempos que cuentan desde 1900 (lo que sería consistente con la época de Excel).

Este conflicto entre la antigua época Palm (Mac OS 9) y la época UNIX es desafortunado, la siguiente heurística puede ser útil al examinar un archivo copiado desde un dispositivo Palm OS:

  • Si la hora tiene el bit superior establecido, es un número de 32 bits sin signo que cuenta desde el 1 de enero de 1904.
  • Si la hora tiene el bit superior libre, es un número con signo de 32 bits que cuenta desde el 1 de enero de 1970.

Esto se basa en la idea de que, de lo contrario, el tiempo sería anterior a 1972 o anterior a 1970 (dependiendo de la interpretación) y el formato PDB no existía en ese entonces.

La utilidad palmdump y otro software utilizan esta regla general al leer archivos.

Véase también

Referencias

  1. ^ N. Rhodes, J. McKeehan. Programación en Palm OS, segunda edición, O'Reilly, 2001, ISBN  1-56592-856-3
  2. ^ Wiki de MobileRead: Especificación del formato PalmDOC
  3. ^ abc Paul J. Lucas (1998) Formato de archivo PDB (Pilot Database). Archivado el 23 de febrero de 2022 en Wayback Machine. Consultado el 8 de marzo de 2009.
  4. ^ de Microfirst Software. Formato de base de datos de registros piloto Archivado el 15 de marzo de 2009 en Wayback Machine. Consultado el 8 de marzo de 2009.
Obtenido de "https://es.wikipedia.org/w/index.php?title=PDB_(Palm_OS)&oldid=1189118008"