现今,开源软件遍地开花,那么你真正了解开源软件的协议吗?
开源协议多达上百种,但是常用的不多。如果你违反了相关协议,比如仅仅使用了几行代码,也可能会使你的公司损失惨重!
为什么要有开源协议呢?
其一,保护原作者的知识成果,防止被恶意利用。开源协议中一般都包含有免责声明,可以防止原作者承担相应风险和后果。比如你开源了一个破解Windows秘钥的软件,而使用者却用来进行商业资料窃取,那么你是不需要为此承担责任的。
其二,保护使用者的权利。使用者可以知晓经授权和未经授权的操作。防止你使用未添加协议(可能未授权)的代码,而使原作者起诉你。
GPL:使用者必须遵循相同协议开源使用。商业软件公司一般禁用GPL代码。其含义:你可以使用我的代码并加以修改,但是你必须把修改后的代码公开。不允许将代码用于闭源的商业软件和项目进行发布和出售,否则需要追究法律责任。因此,GPL协议具有“传染性”。比如:Bash等。
MIT:又称麻省理工学院许可证,是一种宽松的协议。使用者想怎么用就怎么用,可以使用作者名字进行商业广告,但是必须包含许可协议声明。比如:jQuery等。
Apache:和MIT协议类似,使用者必须附加版权说明信息,并对所有的修改部分进行声明。禁止使用作者名字和商标进行商业广告。比如:Apache家族,Android和Swift等。
再次强调,这三种协议都可以修改和商业使用,但是原作者不承担代码使用后的任何风险和后果。