The newest Linux kernel, version 3.3, includes code from Google's Android project. That should help both Android and other Linux-based projects.
Linux and
Android are two closely linked open-source projects, but they've been as notable for how distant they are from each other--until yesterday.
That's when Linus Torvalds, leader of the Linux kernel project, released a version of the operating system core that bridges between the two worlds. Version 3.3 of the Linux kernel is the beginning of the end of isolation between these two projects.
Down under the covers, every Android phone is a Linux phone. Although programmers writing Android apps generally use a Java-like interface, a Google-customized version of Linux handles underlying details such as keyboard input, multitasking among different chores, and keeping needed data readily at hand in memory.
But Google's Android work has been a "fork"--a separate code base that's branched off from the main repository Torvalds oversees at the
Kernel.org Web site.
The result of merging Google's Android Linux with Torvalds "mainline" version, if all goes well, should be easier programming and therefore faster progress for all parties involved. Google can benefit from new features added to mainline Linux sooner and with fewer hassles keeping its code in sync with the mainline kernel. And others using Linux in mobile devices can benefit from improvements that previously had to be retrieved from Google's separate fork.
Google lifts code liberally from many open-source projects, often contributing its own additions back as well as launching its own open-source works. But sometimes the company prefers to work more in isolation from a project's primary developers, which can lead to tensions given the generally collaborative, code-sharing ethos.
Back into the fold with Linux 3.3Another example where Google's Android team is linking up with its open-source brethren is with the WebKit browser engine. Google had worked on its stock Android browser as a separate fork of WebKit, but with the arrival of Chrome for Android, the mobile version of its browser is being integrated with the ordinary WebKit project.
"I would like to announce the beginning of a
project to make a concerted effort to mainline patches and features from Android into the mainline Linux kernel," Bird said.
Every time there is a fork, and I think actually forks are good things, it means somebody sees a need and a technical reason to do something different from the standard kernel. But most forks are failures. They find that the things they needed were not actually worth doing and as a result most forks die. Some forks are successful--Google with Android has really been very successful.
Now, we are talking about how to say, 'Hey you were right, we were wrong, you were successful doing something right.' We are talking about how to merge the good parts.
Boot to Android
"Boot an Android userspace" means that a developer could run Android on a standard Kernel.org kernel rather than having to fetch one Google's customized version.
That could be handy for many programmers--the large number using Linux in electronics devices with memory and processor power limits, for example. And Mozilla, with its B2G (Boot to Gecko) project for a Linux-based browser operating system, also stands to benefit from the integration. It's currently using the Android open-source project (AOSP) software.
One area where there has been tension is with a Google technology called
WakeLock, which lets a programmer tell the kernel that a particular computing process should prevent the computer from going into a low-power sleep state.
But Google had its own priorities, and collaboration takes time. And apparently those fences weren't unmendable.