In Android wird jede Anwendung als separater Benutzer ausgeführt. Im Linux-Kernel gehört jeder Prozess einem einzelnen Benutzer. Daher ist es nicht möglich, mehrere Dalvik-Anwendungen auf einem einzigen Linux-Prozess auszuführen.
Der Aufwand für das Ausführen mehrerer Dalvik VM-Instanzen ist gering, da der Linux- fork()
Systemaufruf beim Schreiben kopiert wird. Das Schreiben auf eine gemeinsam genutzte COW-Seite führt zu einem "Seitenfehler" und diese Seite wird kopiert. Obwohl der größte Teil des Speicherbereichs der VM im RAM gemeinsam genutzt wird, gibt es keinen "gemeinsamen Status" zwischen VMs.
Forking-Prozesse bieten nur Statusisolation, keine Berechtigungsisolation.
dalvik vm sollte nicht als Sicherheitsgrenze betrachtet werden
Dies liegt daran, dass die VM keine Sicherheitsgrenze erzwingen kann. Die VM wird im Benutzermodus ausgeführt (der gleiche Modus wie das Programm, das sie ausführt). Dies bedeutet, dass ein Fehler in der VM es der Anwendung möglicherweise ermöglicht, den VM-Status auf eine Weise zu ändern, die nicht beabsichtigt ist. Der Kernel wird jedoch im privilegierten Modus ausgeführt und kann Sicherheitsgrenzen erzwingen.