Android and the Linux Kernel Community
An anonymous reader links to Greg Kroah-Hartman's explanation of a rift (hopefully mendable) in the development culture of Google's Linux-based Android OS and the Linux kernel itself. "As the Android kernel code is now gone from the Linux kernel, as of the 2.6.33 kernel release, I'm starting to get a lot of questions about what happened, and what to do next with regards to Android. So here's my opinion on the whole matter ..."
it never made it out of staging into mainline... it wouldn't build as there were items Google never released that it was dependent upon.
Donald 'Duck' Dunn: We had a band powerful enough to turn goat piss into gasoline.
If you head over to LWN, we've already gone back and forth on this a bit. http://lwn.net/Articles/372419/. The short form is that if they don't like how we use the kernel, we're unlikely to be accepted upstream. It's all still released as source code to the world, but the mainline is not interested in most of what we've with to the kernel.
Co-Editor, Open Sources
Open Source Program Manager, Google, Inc.
It is called Embrace, Extend and Extinguish. I thought it only applies to MS. Well I think, Do no Evil is gone through the window :)
Well, we know what Steve Jobs said about Google's "Don't Be Evil" mantra--"It's bullshit." Or, "a load of crap," depending on your source.
This ain't rocket surgery.
If linux was under the BSD license it would be in the same shape FreeBSD is in, nearly no one using it in the server room.
So sure we have to wait for btrfs instead of using ZFS, but only because SUN decided to make sure they chose an incompatible license.
And what for the interface? Android is at least 9000 years ahead of anything else for a limited attention easy to use touchscreen interface. Plus I get a pile of apps ready to go including navigation.
Do not look at laser with remaining good eye.
it wouldn't build as there were items Google never released that it was dependent upon.
Are you sure that statement is true? It seems inconsistent with other information posted here, and in the LWN discussion.
"OMG fork!" and other political issues aside, I think it's interesting to look at the technical side of the problem. What is the exact nature of Google's changes to the kernel, why did they feel they need them, and are they actually a good idea or not? Can someone with kernel hacking experience enlighten us?
I'm particularly curious after reading the comments on LWN, and specifically this:
Kernel developers (including other embedded developers who have achieved good power savings modes) don't believe that the Android way of doing things is good.
and this:
The code could be mainlined if Google were willing to consider that their wakelock approach was suboptimal and adapt to a more reasonable one. ...
The wakelock patches were first posted to the linux-pm list on the 13th of January 2009, which is just over a year ago. http://lwn.net/Articles/318611/ gives a good overview of how they were received - there's basically no buy in, even from other developers in the embedded Linux field. ...
the major sticking point (ie, wakelocks) were posted for public review a year ago and most of the substantive issues people had with them weren't addressed at all in the four months of intermittent discussion that followed. If the entire world suggests that you do something in some other way and you refuse to, that doesn't constitute a genuine effort to work with them. Nokia have managed to obtain the same level of power management without such invasive changes, so any assertion that wakelocks are required for Android to achieve its goals seem pretty baseless.
So apparently the issue at the heart of this is a questionable design decision by Google.
Hardly. Nobody's forcing you to run their binaries on your phone. You can still compile the kernel and other applications from code, forked or not.
It's not just public image. There's also the fact that Google is a company full of geeks, many of whom are open source fans in their own right.
I was primarily responsible for Google releasing Protocol Buffers. I did it not for the sake of improving my employer's public image, but because I thought it was a useful tool that should be shared, and those around me agreed. Because of the bottom-up nature of decision making at Google -- and given that I was willing to do the work -- I had no trouble pushing this through.
So yeah, it's pretty upsetting to me to see people say things like "Google does only care about OSS when it suits them and drops out instantly when it doesn't.". This kind of statement completely misunderstands how Google even works. This just isn't the kind of company where orders comes down from executives on high with the only motive being profit -- anyone who thinks otherwise obviously doesn't work here.
Honestly, I think the main reason we haven't released more stuff is because it's kind of a lot of work (as I have learned). Dumping code over a wall does not please the open source community -- you have to maintain it; document it; test it on a zillion platforms; answer e-mail from people who think they are not just entitled to your code, but are doing *you* a favor by using it; review patches from college kids who don't really know what they're doing; etc.
(Oblig. disclaimer: These are my own personal opinions; I am not authorized to speak for my employer.)
Google has silently forked the kernel. There is an 'Android' kernel, and the mainline kernel
Is this the first time this has happened?
Will it matter?
Apparently, this is reasonably well understood.
I, for one, welcome our Android kernel overlords. My phone doesn't need server optimizations.
deleting the extra space after periods so i can stay relevant, yeah.
Care to explain why I don't see symbian or rim browsers on that list at all? It's because those are WEB BROWSER STATISTICS...Oh, yeah, that's why you posted as AC.
The mobile phone market in regards to *web page statistics* is a horribly inaccurate way to measure penetration of said devices. Sure, I can pull up any damn statistic I want and say that it means what I want it to mean, but it doesn't mean that it holds water.
I'd guess there is some very close competition in terms of sales of *NEW* devices, between iPhone and Android. The benefit android has is that you can chose ANY carrier you wish. iPhone your just stuck with AT&T (in the USA) and my own anecdotal evidence amongst friends shows that they're ditching iPhone in droves. But that's just anecdotal evidence. Linux is indeed a contender.
Eh, trolling much? If you look outside US, Nokia is dominating. iPhone is nowhere as successful as it is in US. In top of that, Nokia holds patents (that they really deserve) over many technologies used with GSM, 3G and so on.
And Nokia offers a real Linux phone, not just Android or locked-down iPhone shit.
Well I live in Australia and the iPhone is very popular. Most people who want a smart phone will have an iPhone. Many older people who just want to make calls will have a $50 nokia. I use an openmoko, which is also a real Linux phone.
http://michaelsmith.id.au
I don't think the Android team would describe it that way. TFA doesn't really cover their side of the story. As is usually the case when two sides don't agree, the details are complicated. I'm not on Android so I'm not going to attempt to get into it, but they aren't particularly happy with the situation either.
As I said, the only groups being hurt by this are Google and those dumb enough to rely on Android for their future, anyone else with a brain will take a look at the competition and more open platforms.
Newsflash: Consumers don't care about whether Google's playing nice with the Linux community or not.
How is this +5 informative? It's completely false.
The reason it didn't make it to mainline is because the Google code was reviewed and found to have problems that stopped it being accepted into mainline. Because there are user space items in Android that would be affected, only Google could make the changes without breaking Android.
Think about it, if you were unable to build the Android kernel because Google were withholding stuff, it would be in direct violation of GPL v2. Do you see Greg KH complaining that Android violates the Linux licence? No.
All I want is a secure system where it's easy to do anything I want. Is that too much to ask ~~ Randall Munroe
I'm not sure what you mean by "rapidly changing driver/userlevel API". The kernel userspace backwards compatibility may not be broken, so it's quite stable compared to in-kernel interfaces.
If you mean that the interfaces *need* to change, then perhaps those parts of the drivers should not be in the kernel (as is the case for 3d drivers)
I'm not at all qualified to talk about virtualisation, but regarding 3d drivers, my understanding is that a significant portion of the stack actually lives in MESA, not the kernel.
The kernel side's responsibility (assuming a "modern" one instead of the traditional "X does everything" kind of driver) is to handle details the kernel cares about such as initialisation, mode-setting, power and memory management, while providing a mostly static interface to the userspace component of the driver, which contains most of the messy 3d stuff.
I think malleable in-kernel APIs allow your driver *not* to be perfect when you merge it. Perfection is required only for any user-space interfaces.
Furthermore, if your driver suffers from bad design in some kernel subsystem, it is possible go and fix things. Or conversely, if some driver depends on an interface that you wrote, but you need to change it, that is also feasible.
Now, one might argue that it's possible to preserve the old kernel APIs, but while that is possible, it greatly increases the maintenance burden. You will need to test code that only outdated drivers use. That's a waste of resources.
Wrong. Let's not act like a product category that had been around for 10 years prior to iPhone was suddenly created by Apple. Apple did not create the smart phone. They did not even define the product:
Palm, Blackberry and Microsoft (to a lesser extent) defined the product. Apple came out with the best model in the 2008 model year. That is the extent of the achievement, and to give Apple more credit is simply an insult to the people that created iconic products like the Blackberry, Treo and to a lesser degree WinMo smartphones that defined the platform that Apple added incremental improvements to.
It is telling that even my lowly G-1 has more features than the same generation iPhone (keyboard, removable battery, 3G, removable memory, metal detector, etc...).
Finally, Android has *already won the war* with Apple. It's pretty much exactly like Mac vs. PC in the early 90s. Developers who pass on Android for iPhone will be seen as shortsighted by the end of this year as marketshare expands.
-- $G