编程知识:GPL、BSD等开源协议简介
thatway 那路谈OS与SoC嵌入式软件 2022-12-27 08:25
本公众号基本就是研究**开源软件**
的,是我们学习的源泉
。
当我们想要开发一个软件的时候,如果自己**从零开始**
写,那需要很深的从业背景的,对功能完全了解,大多数情况不具备。这时候首先就回去找找开源的可以利用的项目,先学习然后抄一点
变成自己的,还可以博采众长的抄,特别是想做一个自己的OS,包含的东西太多了,五花八门的技术,这抄点那抄点,很正常,开源软件就是让你抄的
。
但是,开源软件并不意味着**为所欲为**
,还有很多法律
的风险,例如使用seL4的源码seL4微内核入门-代码下载运行及资料
,进行了修改,之后源码没有开源,做了一个产品,那么就违法
了,因为seL4源码使用了
GPL开源协议
,如果有改动源码同样要开源。特别是商业软件,卖给客户的时候一定不能有法律问题,必要附带开源声明
,系统中用了那些开源软件,那些源码是需要公开的,那些源码是未经过修改的,那些是修改完需要再次公开的。一般为了隔离修改需要再次公开的开源软件,项目都会新建一个
third_party
目录,把要公开的开源软件放进去。
1. GPL
(
GNU General Public License
):
GNU
通用公共许可协议。
使用了GPL协议的开源软件,也必须开源。
俗话说“**吃水不忘挖井人**
”,如果大家都只吃水不挖井
,大家把开源代码一抄进行了闭源,这样最开始开源那个人不就吃亏了,好不容易搞出来公开,别人用了不开源了,所以希望其他人更多的人也开源,服务更多的人。但是其对商业软件不友好,商业软件
使用了GPL的开源软件并不想对外公开,公开公司的核心机密
就没有了啊,特别是驱动跟硬件相关的软件包。
2. LGPL
和
GPL
要求任何使用
/
修改
/
衍生之
GPL
类库的的软件必须采用
GPL
协议不同。
LGPL
允许商业软件通过类库引用
(link)
方式使用
LGPL
类库而不需要开源商业软件的代码。这使得采用
LGPL
协议的开源代码可以被商业软件作为类库引用并发布和销售。
3. Mozilla
也是
MPL(The Mozilla Public License)
,允许使用者对于
MPL
作品进行二次开发和发布,但
MPL
的部分、以及修改的部分,需要遵循
MPL
协议,并对修改部分作出说明
,但允许衍生项目中有私有模块的存在。
4. MIT
除了必须包含许可声明外,再**无任何限制**
。
5. BSD
和
MIT
一样宽松,多了一条
“
不能用开源代码的作者/机构名字
和原来产品的名字做市场推广
”
。
6. Apache
如果修改了代码,需要在被**修改的文件中说明**
。在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明。如果再发布的产品中包含一个
Notice文件,则在
Notice文件中需要带有
Apache Licence。
后记:
“啥都懂一点
,啥都不精通
,
干啥都能干
,干啥啥不是
,
专业入门劝退
,堪称程序员杂家
”。
后续会继续更新,
纯干货
分析,无广告,不打赏,欢迎
分享给朋友
,欢迎
评论交流
!