Le T5 a en réalité 256 Mo de mémoire flash (non-volatile); ces 256 Mo sont répartis en:
-55 Mo de "storage heap", qui conservent l'ensemble des bases "internes" (celles qui sont en RAM sur un palm traditionnel)
-160 Mo qui fonctionnent comme une carte mémoire VFS classique
-41 Mo qui servent à stocker une image compressée de la "ROM" et d'autres fichiers système
En plus de cette mémoire flash, il y a 32 Mo de RAM classique (volatile) qui servent uniquement de mémoire de travail. Cette RAM se divise comme suit:
-10 Mo qui servent de cache pour les bases ou parties de bases du "storage heap" (les fameux 55 Mo)
-6 Mo pour le "dynamic heap" (mémoire de travail utilisée par les programmes)
-16 Mo pour stocker l'image décompressée de la ROM
Etant donné que le processeur ne peut accéder directement qu'à la RAM véritable, chaque fois que l'OS a besoin d'accéder à une base (qui se trouve donc dans les 55 Mo de flash), il doit "monter" cette base (ou la partie accédée) dans les 10 Mo de RAM.
Lorsqu'il n'en n'a plus besoin, il peut libérer la place utilisée, mais s'il s'agit d'un enregistrement de base qui a été modifié, l'OS doit recopier ce morceau de base depuis la RAM vers la flash pour libérer le morceau de RAM...
En fait l'OS passe donc son temps à échanger des morceaux de bases entre la RAM véritable et la flash. En contrepartie, la RAM n'étant qu'un espace de travail, l'ensemble des bases du storage heap se trouve donc à tout moment en flash, à l'abri d'une panne de batterie.
Les problèmes qui peuvent se poser sont de deux ordres:
-si le développeur d'un soft accède à un enregistrement d'une base avec la mauvaise API et qu'il le modifie, même si cela fonctionnait avec un palm traditionnel, sur le T5 il y a un risque que l'enregistrement ne soit pas correctement recopié en flash.
-si un programme essaye d'accéder à une base de plus de 10 Mo, il risque de recevoir un "not enough memory", même si apparemment il reste largement assez de RAM.
(Cet éclairage est largement insipiré d'un article très bien écrit publié par Red-Mercury