科研杂谈 | 开源给我们带来了怎样的奇迹?

Posted 阿木实验室

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了科研杂谈 | 开源给我们带来了怎样的奇迹?相关的知识,希望对你有一定的参考价值。

就在前不久,国内宣判了首例开源代码侵权案例,被告因为没有遵循原告使用的GPL3.0开源协议,被要求赔偿50万元人民币。最近,还有另外一件事,有一个波兰的小姐姐,想移植一个系统到优米(UMIDIGI)的手机上,但是缺少一个显示屏幕驱动,而这个驱动是Linux内核分支,根据GPLv2协议必须开源。但是优米回复邮件呛声说:“如果要就来深圳拿吧!”还好著名Youtuber Naomi帮忙去优米公司要了代码,优米随后也在官网和github公布了代码。

可能对不熟悉开源协议的人来说,有点疑惑。明明是开源代码不是拿来用就行了吗?怎么还会侵权?而这GPL协议又是什么东西呢?开源对社会来说又有什么意义呢? 本篇文章,我们就来聊聊开源这件事。

相信对从事互联网行业的人来说,开源这个词肯定不陌生。在计算机发展的早期阶段,也就是5、60年代,这些形形色色的开源协议还并不存在。因为当时售卖一台硬件,上面的软件是捆绑包含在售价里的,而提供软件的源代码更是业内默认的行为。基本上没有一家厂家认为软件也是一种商品,他们只觉得软件就是你购买计算机的附属品。而且此时能用上计算机的人,大多都是相关领域的专家。所以软件源码对他们来说就是一种知识,大家一起维护分享是一件很合理的事。随着计算机发展,软件行业逐渐兴起,那软件商业化也不可避免。大量的软件公司在这个时期成立。

可是,此时的用户习惯依旧不把软件当商品,当时的计算机爱好者如果要交流计算机,都会去一个叫“”家用计算机俱乐部”的社区交流信息。在俱乐部里,他们一起剖析软件修改代码,按照自己的想法增添软件的功能,然后用软盘一拷贝,就能带回自己家用了。

这种情况一直持续到了1975年,这一年有一家刚成立的公司微软,觉得这事不对劲,当时他们的第一款产品Basic编程软件深受大家的喜爱,市面上的电脑只要能安装这款软件的基本上都安装了。虽然这款软件销量还不错,但是卖得多拷贝的人也就更多,明明还能赚很多钱,却因为软件的私下传播整没了。

于是时年20岁的比尔盖茨写了一封公开信,信中中心思想明确,公开怼那些分享拷贝软件的人是剽窃者,并告诉大家:没有任何一个爱好者,能再没有任何收入的情况下,长时间的开发并维护一款软件。这封信一发出,软件界一片沸腾。各大中小软件公司纷纷赞同。闭源软件由此才算真正的上道。

从开源到闭源几乎就是一瞬间完成的事,而这一瞬间的改变也让那些推崇开源的人感到反感。其中理查德·马修·斯托曼尤为之最。当时他正在麻省理工做人工智能的实验工作,软件商业化后原本开发了Unix的公司AT&T开始对Unix系统收取高额的授权费用。在当时的年代,这个费用大约在2至20万美元左右,同时因为很多的代码不再开源,在机器出现问题时斯托曼也没办法通过查看代码或者修改驱动的办法解决。

以上种种原因导致,斯托曼极其痛恨软件的封闭性。于是,斯托曼直接辞职下海去从事自由软件事业。下海后他像比尔盖茨一样,以重现软件界合作互助的团结精神为主题发表了一篇GNU宣言,在发表宣言之后,斯托曼又创立了自由软件基金会,用来为他的自由软件计划提供他的人员和资金支持。

也就在这个时期,他起草了文章开头提到的协议——通用公共许可证(Gneeral Public License)协议。这个协议的主要思想就是:你可以使用这个协议的源代码进行修改、传播、获利,但是你必须保持原有的版权信息,并公开你修改后的所有代码。也就是说只要你的软件使用了GPL协议的代码,你的软件也要跟着开源。

那些厌恶闭源软件的程序员大佬们如获至宝,纷纷选择加入斯托曼的队伍。像著名的Linux就是使用的GPL协议。在这个基础上发展出了GPLv2、GPLv3、AGPL、LGPL等等协议。

不过问题在于,这些协议只是看上去不错,表面上它既保持了开源,又能让你使用修改后的代码获利。但实际上,这两者本身就是相对的。

有一个著名的词叫做GPL传染性或者GPL病毒,只要你的项目包含了GPL代码,整个项目就变成了GPL。这就导致基于GPL协议的软件很难实现商业化。当然也有例外,基于Linux的安卓就避免了GPL的传染性。用了更为宽松的Apache2.0协议,允许手机上基于安卓开发后闭源。谷歌用了很复杂的方式,把Linux包在内核层,规避了GPL传染性,不然其他基于安卓的UI根本发展不起来。

但这事,争议很大,有很多人现在依旧认为安卓违反了GPL协议。其他的商业公司都在尽可能的避免沾到GPL协议的代码。所以,斯托曼的这个自由软件运动,只有对开源抱有极大兴趣的人才会以实际行动去支持。那有什么办法在保证开源的同时又能商业化呢?

这个问题到1998年才算有了结果。在此之前开源(Open-Source)这个词并不存在。基本上称呼当时的软件都会用自由(Free)一词,这就给当时的人造成误解,Free代表免费。所以这一年。来自Linux用户组的一群大佬开了个会,从网景浏览器上取得灵感,觉得摒弃Free这个词,而使用Open-Source这个词来代指开源软件,并且重新定义,开源就是开源,与后续使用分开。也就是说就算你代码开源,也可以拿开源的代码做封闭的发行版,为了更好的制定开源规则,OSI(Open Source Initiative)组织也成立了,它的主要任务就是评估开源许可证。

从此,开源界分裂成了自由软件基金会(FSF)和开源组织(OSI)两大阵营。这两大阵营代表了两大开源理念,自由软件基金会代表了代码的绝对自由,而刚刚提到的Apache2.0就是开源组织的典型代表,这些开源协议相当宽松,除了要求用户必须披露原始作者之外,可以闭源。典型的除了Apache2.0还有BSD,MIT协议谷歌的AOSP和Chrome、华为的Open Harmony,都是基于Apache2.0。这些宽松的开源协议发展出了强大的商业价值,曾经微软因为商业的理由选择闭源,但现在有越来越多的公司同样因为商业选择开源。

2019年中国信息通讯研究院发布了《开源产业白皮书》调查了多个行业,国内已经应用了开源技术的企业占比达86.7%,有计划应用开源的企业占比10.6%。那些大的科技公司更是积极拥抱开源,百度有700多个开源项目,阿里有1200个,而谷歌则是高达2000多个。

时至今日,对于那些厂商来说代码开不开源,已经不单单是软件卖不卖钱的问题了。那些厂商更多的是将开源作为自己抢占商业市场和赢取口碑的一种武器,利用自己资金充足、研发速度快、流量渠道多的优势抢先一步将实现某种功能的源码发布出去。这种方式会吸引很多没有办法做研发的小公司,在大厂公开的源码基础上研制产品,当使用的人多了起来,依托这套开源的代码也就成功建立起了自己在某个产品某个方向上的商业标准,实现自己在某一方面上的垄断。从而在这一方向上拥有绝对的主导权。最能体现这一套做法的就是谷歌旗下的安卓。

但是现在选择代码开源的公司多多少少都有自己的小心思,想回到计算机发展初期那种开源盛况,已经不可能了。另外,随着计算机逐渐平民化和简易化,以及大量不同功能的程序诞生,自己修改程序已经成为一项非必要技能,所以,既然现在开源已经被各种利用,甚至又这么多坏处,要不全部闭源。要真这样程序员第一个不答应,编程最重要的一点,不是命名规范、不是添加注释、不是可读性,而是不要重复造轮子,我能Ctrl+C为什么还要再打一遍?

实话实说,开源这回事确实保住了很多程序员的饭碗。而如今互联网上各种丰富的开源框架和开源库,还可以让程序员在短时间内,完成很多他们原本需要花更多时间才能完成的功能逻辑。比如很有名的Opnecv,这套基于BSD许可的机器视觉学习库,让不少编程爱好者整出花活。之前很多的换脸视频,用来训练这些换脸AI的软件基本上都有使用到这个库里的代码。正是由于开源,所以你没有必要学会什么是机器学习,什么是计算机视觉,只要你会调用接口,会一些C++和Python等基础代码,就能鼓捣出一个属于自己的换脸软件了。

现在的开源协议,已经从软件界影响到了知识界,启发了CC共享许可,进而引发了学术界的OA期刊运动,促进了知识的分享。全人类正是靠着这些才不断前进,创造出一个又一个奇迹。

  • End -

技术发展的日新月异,阿木实验室将紧跟技术的脚步,不断把机器人行业最新的技术和硬件推荐给大家。看到经过我们培训的学员在技术上突飞猛进,是我们培训最大的价值。如果你在机器人行业,就请关注我们的公众号,我们将持续发布机器人行业最有价值的信息和技术。 阿木实验室致力于前沿IT科技的教育和智能装备,让机器人研发更高效!

以上是关于科研杂谈 | 开源给我们带来了怎样的奇迹?的主要内容,如果未能解决你的问题,请参考以下文章

学习方法 | 玩开源如何具有“趟坑” 的意识?

老游杂谈 ㉘|应警惕人工智能带来的潜在风险

在“云”上做科研,是种什么体验?

在“云”上做科研,是种什么体验?

在“云”上做科研,是种什么体验?

[思路][创意]杂谈,关于文章打赏