Android 和内核社区 —— Greg Kroah-Hartman 关于 Android Code 被移除的说明

公司

2010-02-06 23:19

From  linux kernel monkey log | 李莘译,转载请注明 ifanr 译文链接。

2.6.33 版内核移除了 Andirod 的代码。很多人不断地问我发生了什么,对于 Android 下一步要怎么办。这里是我对整件事情的澄清:

首先,我很喜欢 Android 平台。直到上周,我还每天使用我的开发手机 G1。它工作良好,作为用户我很满意。另外,从技术角度我也很喜欢他。令人惊奇的是,Google 仅仅使用 Linux 内核构建了一个可移植的和健壮的手机平台,而并没有使用” 传统”Linux 的任何其他东西。更加难能可贵的是,你可以 在 Android 系统之上安装一个” 真正” 的 Linux 镜像,两者都能正常工作而无需任何修改。

Android 也解决了手机制造商多年来遇到的问题:它创造了一个免费的 Java 虚拟机和统一的应用软件层,使程序可以在所有集成它的手机平台上运行。因为他它的出现, 所有现存的”Linux 手机协会”(”Linux Phone Consortium”)组织都宣告终结,或者即将关闭。

出了什么问题?

发生了什么致使 Android 内核代码被删除? 简单的说,没有人关心代码,所以他被删除了。正如我之前的声明,开发分支的代码需要继续修改才能合并进内核主线内核树,否则将被删除。但是,这儿还有更严重的问题。Android 代码不仅仅是 drivers/staging/android 目录下的一些驱动程序。 Android 系统的正常运行,需要 Google 创建的一种新的内核锁和其安全模型锁依赖的核心系统中的钩子(hooks)。要写出能够在 Android 上执行的驱动程序,你需要恰当的使用新的内核锁,有时候还需要使用怪异的安全模型。

这意味着所有为 Android 硬件平台编写的驱动都不能融合进主线内核树,它们在主线内核中会编译失败。因为它们依赖的代码只存在于 Google 的内核分支中。因为上面这些,Google 阻碍了大量硬件驱动、平台代码和主线内核树的整合。并创建了一个很多制造商现在依赖的内核分支。(译者评论:邪恶的做法,利用开源的成果谋利,而并没有回馈开源社区)

创造内核源代码分支并没有问题,几乎每一个发行版都有自己的分支。但是更糟的是,Google 不把他们的代码整合进主线内核树,使编写驱动和平台代码的公司无法回馈开源社区。内核开发社区早在几年前就告诉这些公司使他们的代码合并进主线内核,以得到自动的安全修复和自动处理 API 变动,很多公司听从建议,内核的每次发布都包含大量这些公司贡献的代码。

但是现在他们被卡主了,Android 相关平台代码和驱动不能被整合进上游系统,这迫使这些公司维护和开发周期的大幅延长。

具体要怎么做?

我真的不知道。Google 没有表现出要使他们的代码向上游整合的任何迹象。一些公司想要修改 Android 相关接口使其向上游整合,但是这需要大得多的努力,这并不是必须的。

希望

我还抱有希望,希望 Google 能花时间修改他们的代码库,使其融合进上游代码,停止他们对大量嵌入式 Linux 硬件公司造成的巨大阻碍。

过去,我私下里提议帮助完成这个工作,现在我再次公开表态,但是我需要 Google 开发人员的帮助。没有他们,什么都改变不了。好消息是所有对内核/用户空 间 API 的修改对于 Android 堆栈上层所有的代码(例如应用程序)都没有任何影响,所以这些工作可以在不对全局造成影响的情况下完成。

我会在”2010Linux 消费电子论坛”(CE Linux Forum 2010 conference.)上再次讨论这个问题。希望他们在会议之前改进这个问题,否则论坛将遵循长久以来的传统,由演讲者对与会者们大声控诉他们正在做的坏事。

注,此文也同步登载在我的 blog:http://www.grati.org/?p=4

登录,参与讨论前请先登录

评论在审核通过后将对所有人可见

正在加载中

累计已发布 1 篇文章

最近文章:

本篇来自栏目

解锁订阅模式,获得更多专属优质内容