`
fonter
  • 浏览: 868141 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

转-Andriod被排出Linux内核的原因

阅读更多

下载Android安安软件请到:http://code.google.com/p/andbox

 

在Linux2.6.33发布并且删除了Andriod内核代码之后,很多人问我到底发生了什么,以及接下来我们会如何对待Andriod,下面我以我的理解谈一谈这整件事。


--------------------------------------------------------------------------------

首先我得说我很喜欢Andriod平台,我一直都在使用G1,直到上周每一天都在用。它对我还有像我一样的使用者都很好用,我对此感到很高兴。

从技术角度来说我也感到很高兴,Google选用Linux内核并在此基础上创建一个跟传统linux系统完全不同的手机操作平台是一件很让人吃惊的一件事,同时你还可以在Andriod设备上直接运行“真正的”Linux系统,并且它同Andriod系统都能在无需做出什么改变的情况下良好运行。

Andriod同时解决了手机制造商多年以来就不得不面对的一个问题,即一个免费版本的Java和一个统一的程序运行平台,在这个平台上程序员可以写出在其他任何支持Java的系统都能运行的程序,因为这所有现存的“Linux手机联盟”都将面临这瓦解的境地,大概再过不久它们就会悄无声息的关上大门,假如它们还有门可以关。

 

发生了什么?
那么到底是什么导致Andriod内核代码被排出Linux内核之外?简单的说,就是因为没人关心代码,所以它才会被排出Linux内核。就像我早先声明的那样,在架构树上的所有代码都应该和主分支内核相容,否则它就会被排除,但是这里有一个更大的问题是,Andriod不仅仅只是在/drivers/staging/andriod目录里多出一些“怪异的”驱动程序,假如你想要运行Andriod,你就必须先了解Google在安全模块中新写出来的锁类型,当然还有钩子类型。为了使你写出来的驱动程序能在Andriod中使用,你得把它恰当的同这个锁相容和,你有时甚至还要考虑这整个“怪异的”安全模块,天呀,这可是同Linux系统完全不同的驱动架构。

因为这些驱动只能使用在Google的内核树上,这就意味着为所有为Andriod硬件平台编写出来的驱动都不可能进入主内核树,正因为这,Google现在开始阻止这些硬件和驱动代码进入Linux主驱动树,并且积极地建立一个很多计算机销售商都依赖的内核分支。

现在Linux发行版内核源代码树的分支都被维护地很好,但假如任事态发展的话,事情也许会变得很糟糕,因为Google没有使其代码进入主内核,这些编写驱动和平台代码的公司都被排除在外而不能为内核社区做出贡献。内核社区几年以来一直都在试图说服这些公司把它们的代码加入内核,这样它们就可以使用安全更新,并自动处理应用程序接口的问题,这些公司听从了他们的建议,你可以看到越来越多的大公司出现在在每个内核版本里,可现在这个进程因为Google停滞下来了,因为Andriod的周边公司不能回报上游Linux内核,这就导致了这些公司需要在维护花费更多的资源同时增加了开发周期。

 

为使Andriod融入内核需要做些什么?

在早前Andriod加入架构树的时候,很多内核开发者检查了Andriod代码,并且指出了为了能被接受应该清理和改变的地方,这些改变很多影响到了Andriod内核和用户空间边界,同时如果Andriod内核发生变动,Andriod用户空间逻辑也需要做出相应改变,所以就不要指望Google员工去做这件事了。

 

那么,该怎么办?

我真的不知道该怎么办,Google再也没有表现出希望把它的代码加入上游的打算,一些公司试图把它们的代码加入上游,可是那样需要去做更大的工程工作,是一种本来根本就不必要的痛苦。

 

冀望
我真地希望Google能够修改Andriod代码库,使其重回Linux的怀抱,并停止它所造成的同很多嵌入式Linux硬件公司的隔阂,我曾私下里帮助完成这个工作,而现在预备公开地再做一次,但是为了达到这点我需要来自Google开发者的帮助,没有他们,一切都不会改善。

好消息是似乎所有对内核/用户空间应用程序接口的改变都不会影响在堆栈以上的Andriod代码(比如应用程序),所以这项工作的实施不会影响到整个系统。

我会在2010年Linux高峰论坛年会上发表一个演讲,希望在那之前事情有所改观,要知道这个年会可是有对其参与者所做的坏事进行叫喊的传统的。

分享到:
评论

相关推荐

    华为ME909S-821模块Linux内核驱动集成指导,andriod 库,及AT中文手册

    1. **Linux内核驱动集成**: - **模块介绍**:华为ME909S-821模块基于标准的USB接口,通过USB CDC(Communications Device Class)协议与主机通信。因此,驱动通常会包含一个USB设备识别部分和一个针对该模块的特定...

    Android和Linux内核版本对应关系

    - **Linux Kernel内核版本**: 未知 - **备注**: 作为面向开发者的软件开发包(SDK)进行发布。 ##### 2. WindUp Robots (发条机器人) - **Android系统版本**: 1.0 - **发布时间**: 2008年9月23日 - **Linux Kernel...

    aarch64-linux-android-4.9(windows-64位)

    标题 "aarch64-linux-android-4.9(windows-64位)" 指的是一个特定版本的Android NDK工具链,适用于64位Windows操作系统,用于编译针对AArch64架构(也称为ARM64)的Linux Android应用程序。NDK(Native ...

    android-ndk-r18b-linux-x86_64.zip

    android-ndk-r18b-linux-x86_64.zip https://dl.google.com/android/repository/android-ndk-r18b-linux-x86_64.zip

    Realtek-8188/8192无线网卡Linux驱动

    1. **获取内核源码**:确保你有Linux内核的源代码,可以通过`apt-get source linux-image-$(uname -r)`(对于基于Debian的系统)或者`yum install kernel-devel`(对于基于RPM的系统)来获取。 2. **解压驱动**:...

    andriod Linux下的安装

    1. **权限修改**:将JDK的安装包(例如:jdk-6u20-linux-i586.bin)拷贝到/usr/local/lib目录下,然后通过`sudo chmod +x jdk-6u20-linux-i586.bin`命令赋予执行权限。 2. **安装JDK**:运行`sudo ./jdk-6u20-linux-...

    Xe5开发web服务端和手机客户端-Andriod

    Xe5开发web服务端和手机客户端-Andriod

    Astro---andriod上最好的文件管理器

    andriod手机上大多数系统自带的文件管理器都特别的卡,但是Astro这个文件管理软件帮我们解决了这个问题

    2048 安卓小游戏 Andriod-Andriod开发与设计结课作业+源代码+文档说明+界面截图

    2048 安卓小游戏 Andriod-Andriod开发与设计结课作业+源代码+文档说明+界面截图 - 运行中有什么问题可以私聊博主,本人高级安卓工程师,主页置顶有常见爆红解决的方法,以及更多代码项目 ## 项目备注 1、该资源内...

    Html5-Andriod实例应用

    这个“Html5-Andriod实例应用”压缩包很可能包含了一系列教程、代码示例或者已完成的应用项目,旨在帮助开发者理解如何将HTML5的技术优势融入到Android平台中。 HTML5作为下一代网页标准,提供了许多增强的特性,如...

    Android代码-Andriod.zip

    这些资源在运行时会被编译并引用到代码中。 5. **Gradle构建脚本**:`build.gradle`文件定义了项目的构建规则,如依赖库、版本控制、编译选项等。`settings.gradle`则包含了项目的所有模块。 6. **Gradle属性**:`...

    扫描全能王-Andriod系统.

    【扫描全能王】是一款专为Andriod系统设计的高效能文档管理应用,它整合了多种功能,使得用户能够在移动设备上轻松实现纸质文件的数字化转换。这款软件的核心亮点在于其强大的扫描和转换能力,能够将传统的文本、...

    java-andriod.rar_andriod_android_android开发流程_site:www.pudn.com

    在Android开发领域,Java语言是主要的编程工具,因此"java-andriod.rar"这个压缩包文件很可能是关于使用Java进行Android应用开发的教学资源。它包含了一个名为"andriod.txt"的文本文件,可能详细阐述了Android开发的...

    ADB tool - Andriod刷机

    4. **设备控制**:通过`adb shell`,开发者可以在设备上执行任意的Linux shell命令,比如修改系统设置、启动服务、读写文件等。 5. **远程调试**:开启设备的ADB调试模式后,通过Wi-Fi可以实现无线调试,使得开发者...

    andOTP0.6.1-Andrioda版安装程序

    在标题中提到的"andOTP0.6.1-Andrioda版安装程序"指的是andOTP的0.6.1版本的安卓安装包,这通常是一个APK文件,用户可以通过安装这个APK来在Android手机或平板上使用andOTP服务。 在描述中提到了"andOTP free OTP ...

    TWebBrowserEx XE6-XE7 FMX Win-OSx-iOS-Andriod

    在Windows平台上,TWebBrowserEx组件利用IE内核,可以支持大部分HTML5特性,同时兼容旧版网页,确保了广泛的网页兼容性。而在OS X、iOS和Android平台上,由于使用的是CEF,因此它可以支持更现代的Web标准,与Chrome...

    android开发环境搭建——Linux(下)

    1. **语言相通**:Android是基于Linux内核构建的,因此在Linux环境下进行Android开发就像是同一种语言的人进行交流,无需第三方工具或复杂的转换过程,从而提高了开发效率。 2. **内置驱动支持**:Linux系统本身就...

    Tinyos-andriod.rar_tinyos_tinyos 湿度_安卓_安卓 采集

    在本例中,安卓应用程序可能被设计成接收来自TinyOS传感器网络的温湿度数据,并实现实时显示。开发者可能利用了蓝牙或Wi-Fi连接来建立TinyOS设备与安卓设备之间的通信桥梁。 在“tinyos.txt”文件中,可能会详细...

    Android Linux内核的input子系统

    《Android Linux内核的input子系统详解》 在Android操作系统中,输入设备的管理与处理是至关重要的,而这一切的核心就是Linux内核的input子系统。这个子系统旨在支持Linux中的各种输入设备,如键盘、触摸屏、鼠标等...

    语言-java-andriod翻译APP源代码.rar

    Java 和 Android 翻译APP源代码分析 这个资源包包含了一个基于Java和Android平台的翻译应用程序的源代码。此应用可能使用了先进的自然语言处理技术,如机器学习和人工智能,来实现多语言之间的文本翻译功能。...

Global site tag (gtag.js) - Google Analytics