Vancouver, British Columbia—During his question and answer session at the Linux Foundation's LinuxCon, Linus Torvalds, founder of Linux, revealed that while mainstream Linux and its popular smartphone and tablet son Google's Android still aren't as close as they should be, they're slowly—ever so slowly—coming back together.
Over the last several years, some people have been seeing Android as not being Linux at all. Google didn't help matters at all when in the fall of 2010, "Google engineer Patrick Brady stated unambiguously that Android is not Linux” That was never true. Android has always been Linux.
What's also true though is that Google took Android in its own direction, a direction that wasn't compatible with the mainstream Linux kernel. As Greg Kroah-Hartman, head of the Linux Driver Project and a Novell engineer, wrote in Android and the Linux kernel community, "The Android kernel code is more than just the few weird drivers that were in the drivers/staging/androidsubdirectory in the kernel. In order to get a working Android system, you need the new lock type they have created, as well as hooks in the core system for their security model. In order to write a driver for hardware to work on Android, you need to properly integrate into this new lock, as well as sometimes the bizarre security model. Oh, and then there's the totally-different framebuffer driver infrastructure as well." As you might imagine, that hasn't gone over well in Android circles.
This disagreement sprang from several sources. One was that Google's Android developers had taken their own way to address power issues with WakeLocks. The other cause, as Google open source engineering manager Chris DiBona essentially said, was that Android's programmers were so busy working on Android device specifics that they had done a poor job of co-coordinating with the Linux kernel developers.
The upshot was that developer circles have had a lot of heated words over what's the right way of handling Android specific code in Linux. Linus Torvalds dropped the Android drivers from the main Linux kernel in late 2009. This doesn't mean that Android isn't, but it has become something of a Linux fork. That doesn't, however, as some recent reports had it that Android and Linux are somehow in a fight with each other. Or, even, as one claim had it in March 2011, that Android was somehow in danger of being sued by Linux because of Gnu General Public License, version 2 (GPLv2) violations. As Linus himself said at the time, claims that the Android violated the GPL were “totally bogus. We’ve always made it very clear that the kernel system call interfaces do not in any way result in a derived work as per the GPL, and the kernel details are exported through the kernel headers to all the normal glibc interfaces too.”
Still, it seemed as if Android and Linux were moving more on parallel paths than together, and that is indeed the case. At LinuxCon, Torvalds explained, that “there's still a lot of merger to be done. ... but that eventually Android and Linux would come back to a common kernel, but it will probably not be for four to five years.”
Kroah-Hartman added that one problem is that "Google's Android team is very small and over-subscribed to so they're resource restrained It would be cheaper in the long run for them to work with us." Torvalds added that "I'm not at all afraid of forks... even when forks happen there are all these points of pain where two groups have had different issues, it just takes a while for people to join back, but the joining will happen. We're just going different directions for a while, but in the long run the sides will come together so I'm not worried."
Kroah-Hartman,pointed out that for years Google's in-house Linux that it uses for servers, was a fork of the Linux 2.4 for many years. Torvalds explained that Google did this because they had made so many performance tweaks to improve it for Google's search engine. He also added that many other companies tweak Linux for their particular uses. Fortunately, thanks to the GPLv2, all the significant changes come back to the mainstream kernel.
So, for the next few years, Android, while still a Linux, is indeed a Linux fork. In the long run, though, Torvalds is sure that Android will return to the mainstream Linux kernel. For better or worse though that may not be until 2016. Fortunately, for all end-users and almost all Android developers none of this will make any real world difference.