|
Authored by: Anonymous on Saturday, April 21 2012 @ 07:34 PM EDT |
"As was reported here on Groklaw over a year ago, Google made two
fundamental changes (compared to all JVMs) when they put the Dalvik VM into
Android."
Chose to make such changes, yes. Were technically required to - no, as
demonstrated by the alternative directions perused by many other
linux-on-smartphone projects - which were generally lauded for their technical
quality, but lacked the kind of consistent and heavyweight corporate backing
which has enabled android's success.
"The first change had to do with power consumption. It is explained here.
This change also required deep changes in the Linux kernel."
This does not preclude the use of a modified Sun-style jvm, especially today
when it could be licensed as a GPL derivative thereof.
"The second change had to do with security. The JVM has a very primitive
security model reminiscent of the DOS single user security model."
Wrong - it has a sandbox, which is more than can be said for either dos or
Dalvik (which choses not to rely on a vm-level sandbox at all)
"It would be prohibitively inefficient to run a different instance of the
JVM for every app. What Google did is they made it so each app runs as a
different Linux user on the same VM."
Wrong. What Google did is to have each app run as a different user
_ON_ITS_OWN_PRIVATE_ VM. They then created a clever hack called zygote which
lets these distinct VMs inherit shared access to the read-only memory pages
needed for most of the code of the vm and common libraries, greatly reducing the
cost of having a half dozen unique VMs running at once.
"This was a brilliant solution!"
Creative, yes. But not technically incompatible with implementation atop a
modified jvm, because the vm's don't necessarily have to know much of anything
about each other - they just need to be accessorized with libraries which wrap
the IPC mechanisms provided by the kernel.
But instead of building atop the Sun JVM, they chose to start over (and with a
register machine rather than a stack machine) but they chose to, they did not
have to.[ Reply to This | Parent | # ]
|
|
|
|
|