Here's a story illustrating why I would recommend sticking with the same
version of the kernel that a particular version of Android was developed
against (at least initially).

Froyo was developed against 2.6.32.  We are currently developing against
2.6.35 post-Froyo.

I and many others have just gone through literally *weeks* of effort trying
to fix some problems in the development code, causing everything from
individual apps ANRing with no clear reason, through the entire system just
stopping for 30s or more, to the entire kernel crashing.

It turns out that a lot of this (though not all) is due to some issues in
the 2.6.35 kernel with what happens when running threads switch between
cgroups.  (This is something that Android does a lot, which probably nobody
else using Linux does.)

So in theory, yes you can say that user space is independent from the
kernel, and you won't have a problem switching to a different kernel.  In
practice, however, there are all kinds of subtle interactions that can come
up due to bugs in user space or the kernel or not even bugs but just
differences in behavior that when put together cause serious problems.

When you start out, you really want to change as little as possible.  The
faster you can get to a stable running system, the easier a time you will
have in the future when things fall apart (as they inevitably will).  If you
can know that at point A things were fine, that greatly narrows down what
you need to dig into to figure out what has gone wrong at point B.

On Wed, Sep 22, 2010 at 6:59 PM, markgross <mark.gr...@intel.com> wrote:

> Glibc has a dependency on the 2.6 kenrel tree too, but that doesn't
> mean there is a dependency between on 2.6 kernel and another for
> propper user mode support.
>
> Yes I have seen those files.  They define the sys call ABI that bionic
> uses.  There is nothing magic or tightly coupled to the specific
> kernel version other than you need a newer kernel than 2.4 to satisfy
> the assupmtions therein.
>
> All thats important is the kernel expose the kernel ABI assumed by the
> user mode.  So far that is only:
> 2.6 erra sys_calls for the android libc (bionic)
> binder
> wake lock
> ashmem
> early (consol) suspend
> logger
>
> (i think thats all, asside from stuff thats already in the upstream
> kernel tree like frame buffer, audio, network, input, and a few other
> things you need to be sure to have enabled in your kernel config.)
>
>
> --mark
>
> On Sep 22, 10:38 am, Vikram <vikrampand...@gmail.com> wrote:
> > hi Mark
> >
> > Why do you say there is no relationship between userspace and the
> > kernel version?
> >
> > Did you check:
> > Kernel:
> > include/linux/....
> >
> > and
> >
> > Android 2.2:
> > bionic/libc/kernel/common/linux/.....
> >
> > There are same header files shared between kernel and the filesystem.
> > thus introducing a dependency between filesystem and the kernel
> > version.
> >
> > Some script is run on kernel headers to generate the filesystem
> > headers and i think Android team must be doing it once every pastry
> > release.
> >
> > See example header:
> http://android.git.kernel.org/?p=platform/bionic.git;a=blob;f=libc/ke...
> >    1 /
> >
> ***************************************************************************­*
> >    2
> >
> ***************************************************************************­*
> >    3  ***
> >    4  ***   This header was automatically generated from a Linux
> > kernel header
> >    5  ***   of the same name, to make information necessary for
> > userspace to
> >    6  ***   call into the kernel available to libc.  It contains only
> > constants,
> >    7  ***   structures, and macros generated from the original header,
> > and thus,
> >    8  ***   contains no copyrightable information.
> >    9  ***
> >   10
> >
> ***************************************************************************­*
> >   11
> >
> ***************************************************************************­*/
> >
> > On Aug 6, 8:03 am, markgross <mark.gr...@intel.com> wrote:> I am booting
> Froyo (and Eclair) on a 2.6.31 and 2.6.34 kernels today,
> > > I would bet money you could boot them on a 2.6.29 kernel as well.
> >
> > > You just need the critical kenrel patches for it to work.  i.e.
> > > binder, asmem, wakelocks, logger, and one or two more, you can easily
> > > rebase out of the refrence kernel trees google puts up.
> >
> > > --mgross
> >
> > > On Aug 4, 3:17 pm, hedwin <hedwin.kon...@gmail.com> wrote:
> >
> > > > Hi,
> >
> > > > Which kernel version do I need to use for Froyo?
> > > > I tried the same version as used for Eclair (2.6.32) but that does
> > > > work for Froyo.
> >
> > > > Hedwin
>
> --
> unsubscribe: 
> android-kernel+unsubscr...@googlegroups.com<android-kernel%2bunsubscr...@googlegroups.com>
> website: http://groups.google.com/group/android-kernel
>



-- 
Dianne Hackborn
Android framework engineer
hack...@android.com

Note: please don't send private questions to me, as I don't have time to
provide private support, and so won't reply to such e-mails.  All such
questions should be posted on public forums, where I and others can see and
answer them.

-- 
unsubscribe: android-kernel+unsubscr...@googlegroups.com
website: http://groups.google.com/group/android-kernel

Reply via email to