“Android also solves the problem that the phone manufacturers had been having for many years: a free version of Java and a unified application layer that programmers can write to that will work on all phone platforms that integrate it.
这样做或许有利于推广Android,吸引厂商和软件开发商的加入,但是Google也放弃了构建一个真正开源的手机系统的机会,从而也就不能获得由全世界程序员提供智慧、分享代码、推动创新的好处。关于许可证问题的深入讨论,请阅读Ryan Paul的文章《Why Google chose the Apache Software License over GPLv2 for Android》。
“...any drivers written for Android hardware platforms, can not get merged into the main kernel tree because they have dependencies on code that only lives in Google's kernel tree, causing it to fail to build in the kernel.org tree.
Because of this, Google has now prevented a large chunk of hardware drivers and platform code from ever getting merged into the main kernel tree. Effectively creating a kernel branch that a number of different vendors are now relying on.
“I really don't know. Google shows no sign of working to get their code upstream anymore.
我真的不知道未来。Google看上去没有任何改变代码的迹象。
I do hold out hope that Google does come around and works to fix their codebase to get it merged upstream to stop the huge blockage that they have now caused in a large number of embedded Linux hardware companies.
我确实希望Google做出改变,把它的代码合并进我们的代码,弥补已经出现的代码分裂。
I've privately offered in the past to help this work get done, and am doing again here publicly. But I need the help of the Google developers to make it happen, without them, nothing can change.
简单的来讲,Android 的硬件驱动依赖在 Google 代码树里的东西,于是尽管大多数厂商都将它们的驱动反馈给社区了,但是对 Google 代码树的依赖导致它们无法并入主线(merge into mainline)。而 Google 代码树一直没并入主线是由于 Android 平台安全架构模型需要额外的钩子以及完全不同的帧缓存驱动。
这次在 2.6.33 主线中把 Android 部分清理掉是由于厂商贡献的这部分代码在离开 Google 的代码树之后对其他嵌入式 Linux 没有用处,干脆从主线中除掉好了……
这跟前段时间 Linus 指责 Red Hat 把 Nouveau 并入主线的积极性不高一样,最后 Red Hat 也是把 Nouveau 并入 2.6.33 的主线了么……
没有并入主线对于社区和厂商都不利,社区得不到驱动程序的扩展,厂商也得不到内核新特性的改善。但是并不是所有模块在一开始的时候都是并入主线的,总是要发展到某个相对成熟的阶段或者解决了潜在的授权问题后才并入的。总之并入主线对双方都有利,这个问题反应这次 Google 的并入主线积极性不高(不代表不开源),社区打它屁屁了……