Now that Android is out, people will start looking into that great (and big) code produced by Google engineers.
One thing they have always claimed is that the Dalvik VM is safe, with each instance running in a separate process, while still efficient with resource sharing among instances.
I didn't know how that could be possibile since processes in Linux (on MMU-ful processors) have got dinstinct address spaces.
But now I've gone back to a presentation I hadn't listened to carefully enough at the time.
http://sites.google.com/site/io/dalvik-vm-internals
Basically, a Dalvik VM process is created at the beginning. Each new instance of the VM is a 'fork' of the original one (that is called, ironically, Zygote).
What I did not know is that the 'fork' action in Unix is highly efficient and makes a copy of the memory pages just when they get modified, which you wouldn't expect for most code.
http://en.wikipedia.org/wiki/Fork(operatingsystem)
22 October 2008
09 October 2008
Something to be said...
Embedded Systems Design - Embedded.com: "Software developers are a breed apart from the standard consumer. Writing a software program requires logic, a good and detailed memory, and a certain comfort with exactitude and creativity. Consequently, the people who write software programs tend to be smart, literal minded, logical people with good memories and organized thoughts--sometimes to an extreme.
Developers are typically very intelligent, good with numbers and abstract concepts, and have an eye for detail. They tend to live in and care about the programming life, and these highly analytical people are often passionate about chosen technologies with an almost religious fervor for or against a vendor or a vendor's technology. Developers can be extremely literal minded, sometimes to a fault. Because code logic is the process of following precise instructions, solving problems often requires exhaustive technical detail as well as a broad overview of the context in which a product is used."
Developers are typically very intelligent, good with numbers and abstract concepts, and have an eye for detail. They tend to live in and care about the programming life, and these highly analytical people are often passionate about chosen technologies with an almost religious fervor for or against a vendor or a vendor's technology. Developers can be extremely literal minded, sometimes to a fault. Because code logic is the process of following precise instructions, solving problems often requires exhaustive technical detail as well as a broad overview of the context in which a product is used."
Subscribe to:
Posts (Atom)