百科问答小站 logo
百科问答小站 font logo



Android 内核基于 Linux 设备厂商必须公开内核源代码,如何逼迫小米公司开源? 第1页

  

user avatar   vincent-wang-17 网友的相关建议: 
      

前几天刚做过关于Android的介绍,这是当时所找的图片列出了整个安卓操作系如同各个部分所遵循的版权协议。

为了规避这一问题,谷歌除了在操作系统核心使用了Linux代码之外,在其他专门为安卓开发的相当一部分代码中,使用了传染性不那么强的开源协议:基于Apache的ASL或者基于BSD的BSD协议。这两种协议的共同点在于对商业应用十分友好,遵循这两种协议的开源代码,商业公司可以拿过去用,而开发出的产品不一定需要也开源,可以视情况打包为闭源商业软件。在安卓系统中,大部分硬件驱动程序,以及谷歌专门为移动设备开发的基本函数库Bionic,都慷慨地采用了BSD或ASL开源协议,其中包括Dalvik虚拟机等安卓运行库(runtime)。(整个安卓操作系统各部分所遵循的版权协议见图)

图片及引文来源:

详析:谷歌为何紧急封杀阿里云OS?

所以如果小米真如

@黄新宇

老师所说,只是在Linux kernel里开发驱动,然后再HAL封装一下,那么的确是需要开源的。


user avatar    网友的相关建议: 
      

关于这个问题,我研究过。其实有很多人对 GPL 理解存在偏差。首先说结论,小米的 MIUI 中肯定存在有需要开源的代码,这个毫无疑问。

但是这里插入说一下,GPL 协议是对『软件发布』这个行为进行限定的,所以,当你发布一个软件时,如果这个软件中受到了 GPL 协议限制,就可能需要开源,但如果你根本没有发布过软件,则无此限制。

为什么你不发布软件,GPL 就与你关系不大呢?因为所谓开源并不是象你所想象的那样,必须将源代码完全公开,而是:源代码必须与执行程序同步发布到相同的渠道。换句话说是这样,

  • 如果GPL软件发布给一个人,那么,这一个人获得该GPL软件的二进制执行程序的同时,必须能够有权获得对应源代码,其他没有获得程序的人无权索要源代码。(也就是说,只发布源代码不发布执行程序是可以的,只发布执行程序不发布源代码违反了GPL)
  • 如果该GPL软件发布给一个 100 人的封闭团体,那么,这 100 个人获得该GPL软件的二进制执行程序的同时,必须能够有权获得该GPL软件的源代码,而这 100 个人之外的其他人,无权索要源代码。
  • 如果该GPL软件发布给世界上所有人,那么,世界上所有人获得该GPL软件的二进制执行程序的同时,必须能够有权获得该GPL软件的源代码。
  • 如果除了你之外,任何人都无法得到这个 GPL 软件的二进制可执行程序,那么任何人也都无权得到这个 GPL 软件的源代码。(当然,如果作者主观愿意将源代码发布给他人,自然他人可以获得,不过他人无权索要)

如果一款手机从来没有发布过升级,从来都只是内置出厂程序,则你只能使用这个手机的界面,无法访问到该程序的二进制码本身,你无法得到手机软件的二进制可执行程序,所以你也同样无权得到这个软件的源代码。简而言之就是下面一句话:

小米的手机无论卖出多少台,他都不会违反 GPL ,但小米的 MIUI 只要有一个人下载,他就已经违反了 GPL。

至于说大多数 android 平板没有遵守 GPL 协议,我认为这个说法是错误的,因为平板本身不是软件,发布平板不等于发布软件,平板内部的软件的二进制执行文件本身,通常你无法直接访问,除非对平板进行破坏保修协议的逆向工程,否则用户无法直接获得并且复制分发该平板上软件的执行文件,这上面的软件严格意义上根本没有被发布。平板如果不独立发布其软件ROM,就无需受 GPL 约束。

好了,现在问题在于:小米有没有发布过软件?

回答当然是有的,MIUI 就是公开发布的,而小米的内置 ROM 也是在 MIUI 官网公开发布的,这都是非常明确的『发布』行为,只要存在了『发布』行为,就会受到 GPL 的约束。至于 MIUI 中哪些部分需要开源哪些部分不需要开源,这一点可以具体问题具体分析,但其中存在着需要开源的程序,这一点没有疑问。

那么,小米肯定需要开源一部分程序,这个没有疑问了,至于怎么逼迫小米公司开源,就要看你的目的是什么。既然你用了『逼迫』二字,从我的角度,我认为直接通知 FSF 可能是最省事的方式,所以,直接通知 FSF 吧,由他们决定采取什么方法。

另外提示一下:小米开源其源代码并不意味着你有权利得到它,因为,GPL 协议中的源代码只要求同对应的程序一同发布,也就是说,只有 MIUI 的受众有权力要求 MIUI 源代码,所以如果你手头没有 MIUI ,就没有权利找小米要求 MIUI 中的 GPL 源代码。


user avatar   bluedrum 网友的相关建议: 
      

谢邀,作来一个资深的Linux开发者和Android产品开发者,我首先回答一下题主问题。

首先小米不开放内核违返GPL协议的。理由有耐心看我后面写的。

如何逼迫其开源,如果小米一辈子只在内地销售,还真拿他没办法,但看这个趋势,小米肯定要卖出国内。

1.如果向欧美国家出口,比较狠一招是通知自由软件基金会,如果他们觉得严重,可以向法庭提出诉讼后,然后海关可以先行扣货。我当年做VOIP产品,就是听说产品被扣。这一招太过狠了,时间上也长。

但是威摄力很大,中兴的手机内核(如我手头的U880)原来也不开源,有投诉后还是开源了,因为他们是大量在国外出货的。

2.第二个简单方法,我临时想出来的,你天天在推特上天天问 小米新请来的总裁Hugo,如何看待开发者申请开源的请求,同时

@雷军

,小米和自由软件基金和Google

然后投稿给各个微博,自媒体和知乎,同步直播。不知道雷老师能顶多久。

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

然后你有耐心可以看一下我反驳以下几种支持不开源流行论据,它们都在回答中出现了。

1. Android 整套体系中,Framework可以选择不开源,它就是放在/system分区那一堆东西,完全由Google开发,它使用Apache协议,开发者可以选择不开源这没错,但是Android运行在Linux Kernel 的版权不属于Google,(这个具体属于GNU还是linus torvalds本人,可以请更懂行请教一下),它是明确要求开源.当然Google ,也这么做了。小米这样做是违反了GPL协议的。

Android 看成一台汽车的话,kernel就是发动机,现在开发者要求公布是发动机设计,反对开源的人(我记忆里小米社区有一个长贴,以这里

@李东

)就说车身设计可以不开源。

2.早期的Linux的动态模块(ko)可以不开源,但这是个在新的GPLv2已经无法这样做了。

你们自己写一个Linux内核模块试试,只要使用内核原有函数,必须把模块协议设为GPL协议,否则编译报错。而编译好的ko的的协议信息,只要执行一下modinfo命令就能看得清清楚楚,@

何雄军

讲那种情况我见过,比如把nand flash的驱动做成nand.ko,这种情况跟小米一样,不开源也是违反协议的。

3.还有一种论点说硬件驱动写在HAL里的就能不开源了,比如有人那位说的中间层。这一条迷惑性很大。因为硬件产商使用HAL驱动有几种策略。

第一种策略,真觉的自己写的驱动金贵,实在不想给其它人一丝一点,可以在HAL通过Google在内核在加入pmem驱动直接对硬件IO进行操作。这样按Google 说法不开源。但是这样Linux版权方不干了,在内核加入这个pmem驱动这个木马等于绕开GPL协议了。争执的结果Google 内核源码被踢出了kernel.org服务器,Google 在自家服务器提供下载,大家各玩各的,所以这种做法是灰色地带。

我编译市面各种各样的Android设备有十多款,手机,平板,盒子的内核。发现所有硬件产家无一采用上面说的策略。无它,只有脑子被驴踢了产家才会用这种策略。

在内核里开发驱动远比开发那HAL驱动方便,有大量成熟工具可以使用。而且HAL开发只有logcat以及不断重启,(你一天重启几十次Android是作死的等待的啊)

芯片都有沿革,在Linux下积累了大量成熟的驱动代码,改改就能稳定工作。

所以现在产商都在在Linux内核开发驱动,简单的在HAL封装一下。这种情况,内核里那部分仍然要开源。




  

相关话题

  在 12 月即将发布的新机中,你最期待哪一款? 
  除了华为、vivo、OPPO、小米之外,中国还会诞生第五家重量级的手机公司吗? 
  2019 年对魅族来说意味着什么,还有哪些机会吗? 
  每天逛知乎、b站的人和每天逛今日头条、抖音的人有什么区别? 
  同样是6+64G的配置,小米8有现货是2099,红米note7预售1399,买哪个划算? 
  行至2020年,你认为小米生态链最急需解决的问题是什么? 
  学生党,三四千块钱的预算,想要买个配置高点的手机,能用三年配置也不会太过时,有推荐的么? 
  为什么手机社区戾气重而笔记本社区就很和谐? 
  为什么国内手机厂商几乎都不用原生安卓? 
  如何看待一加设计师表达小米设计「品位问题」? 

前一个讨论
历史上,有哪些城市因为环境问题,而废弃?
下一个讨论
自由职业者(SOHO 族)怎样保证自己的工作效率?





© 2024-11-21 - tinynew.org. All Rights Reserved.
© 2024-11-21 - tinynew.org. 保留所有权利