Linux and Android are two closely linked open-source projects, but they’ve been notable for how distant they are from each other — until this week.
That’s when Linus Torvalds, leader of the Linux kernel project, released a version of the operating system core that bridges 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-customised 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 that Torvalds oversees at the Kernel.org website.
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, 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.
Another example of how Google’s Android team is linking up with its open-source brethren is in 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.
Back into the fold with Linux 3.3
Torvalds announced the release of Linux 3.3 over the weekend on the Linux kernel mailing list. He made no specific note of the Android merge, but it’s been underway for months. Tim Bird, a Sony programmer who works on the Linux Foundation’s consumer-electronics project, announced the “Android mainlining project” in December.
“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.
His words came shortly after Torvalds himself tried to ease tensions between the two camps in November. He said in an interview with Muktware‘s Swapnil Bhartiya:
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.
Greg Kroah-Hartman, a long-time kernel developer and new Linux Foundation fellow, said to expect Android kernel components in Linux 3.3 on Google+ at the same time. And in a February interview with Muktware, he said, “The 3.3 kernel release will let you boot an Android user space with no modifications, but not very good power management. The 3.4 kernel release will hopefully have the power-management hooks that Android needs in it, along with a few other minor missing infrastructure pieces that didn’t make it into the 3.3 kernel release.”
Boot to Android
“Boot an Android user space” means that a developer could run Android on a standard Kernel.org kernel rather than having to fetch one of Google’s customised versions.
That could be handy for many programmers — the large number using Linux in electronic 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.
At a February meeting of the Android mainlining project, programmers dug into the details of the merge.
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.
Linux Weekly News documented the initial loathing of WakeLock, which Google developed in isolation. That displeasure doubtless meant more work for Google mending fences than if it had worked closely with mainline kernel developers at the outset.
But Google had its own priorities, and collaboration takes time. And apparently those fences weren’t unfixable.
Via CNET
Views: 0