程序员都应该懂一点开源协议

让雷军倍感压力的00后CEO,携手300名最小年龄仅为10岁出头的员工们,竟豪言:一些三四十岁的老前辈已经看不懂互联网。可就在被采访的短视频刚刚传递开来的时候,剧情忽然三百六十度大反转。GitHub 开源项目 AndroidTvLauncher 的做者有理有据、义愤填膺地痛斥这位使人羡慕的00后CEO原封不动地抄袭他的做品。css

互联网之事貌似永远有着猜不透的剧情。外行看热闹,内行看门道。这里,我们不聊长江后浪推前浪的励志故事,也不聊孰是孰非的后续剧情发展,咱就聊点与咱们有关系的事情,开源协议。html

说到开源协议,必须先简单介绍一下自由软件这个词。根据百科的解释,自由软件是一种能够不受限制地自由使用、复制、研究、修改和分发的软件。注意,自由并不表明着免费。正是这种开放、开源的精神,计算机软件才得以如此飞快地发展。android

开源协议,或者叫开源许可证,就是为保护自由软件原做者的相关知识产权,在做者与用户之间设立的一种虚拟合同,或者称之为受权方式。其中的条款内容,就是用来限制软件使用者的使用方式等。他人若有违反协议,做者有权利发起诉讼,维护自身权益。git

开源届定义有几百种不一样的开源协议,宽松程度不一,用以知足开源项目的各类使用场景。好比,是否容许商用,是否容许修改,修改后是否须要继续开源,开源是否必须继续使用相同协议受权等。程序员

不过,做为普通用户,不管你是做为开源做者造轮子,仍是做为普通用户借轮子,咱们只须要知道比较流行的那几种,并可以加以区分便可。不然,上百种协议真要细分的话,绝非易事。github

早期一名乌克兰程序员画有一张分析图,简单明了地描述出六种流行开源协议的使用区分。阮一峰老师翻译以下:微信

更简单点的话,也能够参考来自 GcsSloop 博文的这张图,更加通俗易懂:oop

更多的开源协议,咱们还能够参考这张图(目前只发现英文版):网站

至于使用的话,不妨借助 GcsSloop 制做的开源协议网站:翻译

choosealicense.online

如图所示:

选择所须要的协议,一键复制便可。

说完这些,回过头来想一想,估计不少人都会有疑惑:开源协议与我何干?可是,做为一名程序员,开源协议还真与你我关系紧密。

若是你是 GitHub 重度依赖者,若是你稍做留意,不难发现,基本上出名的开源项目根目录中都有一个协议文件:LICENSE.txt,而在 README.me 说明文件底部伴随着 License 内容。这就是你须要留意的地方,使用任意开源项目以前,记得阅读一下该项目的开源协议。

市场上部分 App 也会在应用中增长第三方开源项目时的使用版权说明,好比支付宝安卓版。这也是一种查看优秀 App 都使用哪些开源项目的途径之一。

若是你也是一个做者,准备开源本身的项目时,那就更得注意,想一想本身须要选择哪个开源协议更加合适。好比,大名鼎鼎的 Linux 系统采用即是 GPL 协议;做为安卓程序员,咱们固然知道,咱们赖以生存的 Android 开源系统,其内核采用的就是 Linux 内核。那么 Android 系统到底属于哪一种开源协议呢,说来真的话长,感兴趣的话,推荐你阅读这两篇文章:

因此,之后不要再说开源协议与你我无关啦,还不信的话,你能够阅读我微信公众号此次的第二篇推文:别总说这事与你不要紧

关于我:亦枫,博客地址:yifeng.studio/,新浪微博:IT亦枫

微信扫描二维码,欢迎关注个人我的公众号:安卓笔记侠

不只分享个人原创技术文章,还有程序员的职场遐想

相关文章
相关标签/搜索