Linus Torvalds has announced the release of Linux 3.3, a new version of the open source Linux kernel. This update is noteworthy because it includes some key components that have been merged from Android’s Linux kernel. This could potentially help bring Google’s mobile operating system into closer alignment with the upstream Linux ecosystem.
Due to various technical concerns, the Linux maintainers have been reluctant in the past to accept some of Google’s major changes to the kernel. The Android code that had been tentatively merged into the staging tree was removed in 2009 due to lack of maintenance. Google didn’t act on feedback from the upstream code reviewers and the code began to stagnate, so it was dropped.
Several components, including binder and ashmem, have been accepted back into the staging area in Linux 3.3. Binder is an interprocess communication system that, among other things, relays method invocations between Android applications. Ashmem is a shared memory allocator for low-memory systems. Although these features are being given a second chance, some particularly controversial Android kernel features, such as wakelocks, are still not going to be considered for inclusion upstream.
The staging area is a special subdirectory of the mainline kernel tree that is dedicated to code that is not yet ready for production use. It was created with the aim of increasing exposure for such code so that it will be more visible to contributors who can help make improvements. It’s not clear if the Android code that is being brought back to the staging area after being removed in 2009 will actually get the attention that it needs this time around so it can finally graduate from the staging area.
For additional details about the new features introduced in Linux 3.3, you can refer to the annotated changelog at the Kernel Newbies wiki.