Android开源语言总结之谈

移动开发 Android
毕竟都符合Android开源语言的要求,但是代价也是巨大的——它放弃了创造未来的机会,希望大家能够学习思考。
 

Android开源语言采用了软件堆层(software stack,又名软件叠层)的架构,主要分为三部分:底层以Linux核心为基础,由C语言开发,只提供基本功能,下文进行说明指导。

这段话的意思是说,Google玩了一个花招,在kernel和应用程序之间,自己做了一个中间层,这样就既不违反GPL许可,又能不让外界看到厂商的硬件驱动和应用程序的源码。里面的关键在于,Kernel和Android的许可证不一样,前者是GPL许可证,后者是Apache Software License(简称ASL)许可证。

GPL许可证规定,对源码的任何修改都必须开源,所以Android开源语言了,因为它修改了Kernel。而ASL许可证规定,可以随意使用源码,不必开源。所以建筑在Android之上的硬件驱动和应用程序,都可以保持封闭。为了得到更多厂商的支持,Google有意选择了这样做。

并且特意修改Kernel,使得原本应该包括在kernel中的某些功能,都被转移到了userspace之中,因此得以避开开源。这样做或许有利于推广Android,吸引厂商和软件开发商的加入,但是Google也放弃了构建一个真正开源的手机系统的机会。

从而也就不能获得由全世界程序员提供智慧、分享代码、推动创新的好处。关于许可证问题的深入讨论,请阅读Ryan Paul的文章《Why Google chose the Apache Software License over GPLv2 for Android》。

Google的这种做法,直接后果就是给Linux Kernel带来了麻烦。Greg Kroah-Hartman清楚地说出了自己的不满。由于这个原因,Google也从不把大量的硬件驱动程序和平台源码向kernel提交。实际上,它创造出了一个kernel的分支,大量的开发者都依赖那个分支。”

这就是Android干的事情:它修改了Kernel,但是又不提供修改的细节,自己搞了一个封闭的系统。说得难听一点,它利用了开源社区,要求开源社区为它做贡献,却又不愿提供回报。所以,Linux Kernel就把Android开源语言踢出去了,真是再正常不过了。人们有权利质疑,Android这样的哲学是否正确?是否符合Google“不作恶”的口号?

如果Android开源语言继续这样封闭下去,那么开源社区为什么要为它免费制作软件呢?因为我又不是在为开源社区服务。而是在为Google服务。既然这样的话,那还不如去支持iPhone呢,至少能在软件商店里多卖一点钱,而且乔布斯看上去也更酷一点。  

[[8940]]

 

我私底下已经说过,我愿意帮助完成这项工作,在这里我再次公开这样说。但是如果没有Google程序员的加入,什么也不会发生。”Android必须变成一个真正的开源系统。如果像现在这样封闭下去,就会被开源社区抛弃,就一定不会成功,即使有Google的支持。

我接受他的批评,我确实有点感情用事。主要是因为对Google有太大的期望,所以不能接受它现在的这种做法。这一次,也许不能说Google做错了什么,毕竟都符合GPL许可证的要求。但是代价也是巨大的——它放弃了创造未来的机会。

我坚信,未来主流的手机操作系统一定是开源的,就像我坚信未来Linux一定胜过Windows一样。现在,既然Google放弃了这个选择,那么只能等待其他人来做出开源的手机系统了。这也意味着,我们还要在黑暗中等待更久。

【编辑推荐】

  1. 新一代的Android手机介绍 
  2. 深度剖析Android SDK版本介绍 
  3. 谷歌Android手机能否站稳中国 
  4. PythonAndroid深度剖析Android应用程序的四种构 造块 
  5. 探秘与众不同的Android系统? 
责任编辑:chenqingxiang 来源: 腾讯科技
相关推荐

2010-02-22 09:43:42

学习Python语言

2010-01-21 18:00:59

C++语言

2023-05-17 10:05:56

2010-02-07 15:12:24

学习Android

2010-01-27 16:52:31

C++语言学习

2010-02-05 15:47:00

Android JDK

2010-02-06 13:36:57

学习Android程序

2009-08-17 09:08:14

开源语言排行榜PHP

2021-02-23 10:09:22

谷歌开源语言模型

2016-10-18 15:24:13

Google谷歌开源

2010-02-05 17:10:01

Android Ado

2010-03-02 16:50:31

Android操作系统

2021-04-13 14:39:08

谷歌Logica语言

2012-04-19 13:45:18

Java谷歌

2021-12-21 16:30:04

MLSQL 开源Byzer

2010-01-25 11:21:01

C++语法

2010-02-02 13:37:12

如何学习Python

2010-01-18 10:53:26

2010-02-03 15:52:02

Python学习研究

2023-06-19 16:05:22

大型语言模型人工智能
点赞
收藏

51CTO技术栈公众号