Android code removed from Linux kernel
Greg Kroah-Hartman, the Novell developer who maintains the staging, USB and driver core for Linux, has announced that the driver code for Google's Android operating system has been removed from the 2.6.33 Linux code base. Kroah-Hartman says that "I love the Android phone platform" but that the code for supporting Android has not been cared for, and as is his policy, uncared-for code is removed from the source code control system. The change was committed to the Linux source tree on December 11th, last year.
Kroah-Hartman says he has previously offered to assist privately, and now is offering publicly, but needs the help of Google developers. He plans to talk about the "whole Android mess" at the CE Linux Forum 2010 Conference and hopes that he won't be "continuing the long-held tradition of having keynotes in which the presenter yells at the attendees for all of the bad things they are doing". Google employess have previously expressed a desire to return to being in sync with the mainline Linux tree. Having contributed code removed is not a new thing; last September, Microsoft found their Hyper-V drivers under the same threat until employees stepped up to maintain the code, although a recent status report from Kroah-Hartman now notes "The developers again seem to have disappeared, this is getting old. Slated for removal in 2.6.35".
In his blog post on the Android issues, Kroah-Hartman explains that Android "is more than just the few weird drivers" that were in the drivers directory; a new lock type has to be integrated with the kernel and drivers have to be modified to support the "sometimes bizarre security model". He also notes there is a "totally-different frame buffer driver infrastructure". The effect of these variations leads to a situation where drivers written for Android platforms cannot be merged into the main Linux kernel tree because they depend on code that only lives in Google's code tree.
"Now branches in the Linux kernel source tree are fine" says Kroah-Hartman, "but this is much worse" noting that companies who create drivers and platform code for Android devices are "locked out from ever contributing it back to the kernel community". These companies are now stuck, as Android-specific code cannot be contributed upstream which will give the companies a "much larger maintenance and development cycle".
For the Android code to be returned to the kernel, it would require changes in the Android code to clean up the code and change Android's userspace logic to better conform with the Linux model. He notes though that the "good news" is that those changes would have "no affect at all on any Android code higher up the stack (like applications)". But, these changes would have to be made by a Google employee as third parties cannot change Google's Android code. Kroah-Hartman is unsure how the issue will progress as "Google shows no signs of working to get their code upstream any more".
- When is it worth saying it's Linux , a feature from The H