Dans Android, chaque application fonctionne comme un utilisateur distinct. Dans le noyau Linux, chaque processus est détenu par un seul utilisateur, il n'est donc pas possible d'exécuter plusieurs applications Dalvik sur un seul processus Linux.
La surcharge liée à l'exécution de plusieurs instances Dalvik VM est légère car Linux fork()
est copy-on-write, une écriture sur une page COW partagée provoquera un "défaut de page" et cette page sera copiée ; ainsi, même si la plupart de la région mémoire de la VM dans la RAM est partagée, il n'y a pas d'"état partagé" entre les VM.
La bifurcation des processus ne fournit qu'une isolation d'état, mais pas une isolation de privilège.
la vm dalvik ne doit pas être considérée comme une frontière de sécurité
Cela est dû au fait que la VM ne peut pas faire respecter une frontière de sécurité. La VM fonctionne en mode utilisateur (le même mode que le programme qu'elle exécute), ce qui signifie qu'un bogue dans la VM pourrait permettre à l'application de modifier l'état de la VM d'une manière non prévue ; le noyau, cependant, fonctionne en mode privilégié et peut faire respecter les limites de sécurité.