On Feb 27, 8:57 pm, Sajith MP <sajith.padm...
> I saw the video on Android architecture. Cool video with fundamentals
> explained well. In that, while talking about services, our presenter
> mentioned that applications can communicate with services by sending
> messages. By sending messages, you are actually indirectly writing to
> the VM allocated to other process. There is possibility that a
> malfunctioning application can corrupt a driver or another application
> by writing into it's process space. So can we rule out the possibility
> of system getting corrupted?
All security and protection in the system is enforced through the
Linux kernel, not through Java. So you can only do as much to another
application as the kernel will let you... which should be enough
At any rate, you definitely don't get to write directly to the process
space of another application. :)]
> 1. Suppose I am an OEM and I have a new hardware component. How will
> I add my driver to the kernel space?
It's just a normal Linux kernel, so the same way you normally do on
> 2. Can I add an intermediate library for the new hardware module and
> will it be able to communicate with all modules in kernel?
If you are an OEM, sure.
> 3. Can a user download an intermediate library from the internet and
> install it? If yes, how will we ensure that that library do not
> corrupt kernel modules or other intermediate libraries? If no, how
> will we ensure flexibility towards new advancements in technology?
No, we are not supporting any installation of third party kernel
drivers at this point (or any native code at all right now).
> 4. What is the maximum number of processes / threads that can co-
> exist at the same time?
It depends on how much memory there is. Our target is to run in 64MB
> 5. Out of the 4GB VM, how much virtual memory is available for user
Uh. There is only going to be megabytes of memory on a device, not
gigabytes. The address space is far from the limiting factor on these
kinds of devices, at this point. Also, there is no swap space
(swapping to flash would be a bad idea), so the only way virtual
memory is used is to share physical pages across processes and page
read-only data (such as shared library code or other such mmapped
files) off disk.
> Thats 5 out of my 100 doubts.