Monday, November 08, 2010

Android's management of processes

Before starting my research I had assumed that the core of the Linux kernel was the same as the standard kernel (scheduler, PCB, etc).  I found an article that proved me wrong.  The scheduler google uses is not the scheduler that is in the current version of the Linux kernel.  In 2.6.26+ the kernel is using what they call a "completely fair scheduler".  This caused some pain for google, so they were forced to forward port the old 2.6 scheduler.  The interesting question to me is, was this for all google linux machines (including android)?

On another front I've began my research into user processes on the android platform.  There are many things that are interesting to me.  Android provides a way for applications to respond to events happening on the system and even launch components from another program.  I'm interested in how this is happening at a process/thread level.  How do these components communicate?

--Colt

Saturday, October 30, 2010

Android OS- How is it different from Linux?

Over the course of the next month I will be investigating a few things about the Android OS.  I'm interested specifically in these things:
  1. What kinds of guarantee is the operating system making in order to deliver phone calls?
  2. Does the Android OS have modified scheduling code, or is it simply leveraging the standard Linux scheduler?
  3. Is there anything else unique about the way that Android deals with processes?
Once I've investigated this, I'll be digging into the source and maybe even make my own changes to the OS.  It should be easy to test the Android build using this emulator.

--Colt