免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2148 | 回复: 0
打印 上一主题 下一主题

[其他] linux下也可以开发非gpl软件 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-10-12 16:15 |只看该作者 |倒序浏览
很多人都认为在linux下开发软件,许可证就一定要采用gpl,因为linux是gpl的。
其实关键在于你的软件中有没有包含或链接进采用gpl授权的源代码或二进制文件。实际上gnu linux下很多函数库都不是gpl授权的,比如glibc是用lgpl授权协议的。只要你没采用gpl的源码或二进制文件,就不用遵守gpl授权协议。你可以为你的软件采用非gpl的许可证。
有人会问了,linux内核不是gpl的吗,不管是函数库还是软件不是都会直接或间接的调用内核吗?为什么基于linux内核的函数库可以不是gpl的呢?
没错,linux内核是gpl的。但是如果你只是使用内核提供的系统调用来使用内核功能,或者你的程序是运行在用户空间而不是内核空间,就可以不算是linux内核的衍生产品,就不用遵守gpl授权协议。
比如我在linux下编写了一个bash脚本,里面包含了ls、cd、cat等一些命令。但我的脚本里没有包含任何的bash或ls、cd......等命令的源代码,我只是在使用它们,而不是引用了它们的源码或库文件,所以我的脚本不用遵循gpl授权协议。
一些函数库用系统调用方式使用内核,可以不使用gpl许可证,比如glibc采用lgpl许可证。lgpl许可证规定如果只是用动态链接的方式把二进制文件包含进你的软件包里,可以不用遵守lgpl授权协议。我编写一个linux下的软件,只动态链接了lgpl授权的库文件,则我的软件可以不遵循lgpl或是gpl授权协议。只要我愿意,闭源公开发布都可以。
google就自己编写了很多低层的函数库,避开了引用gpl、lgpl函数库,使android的上层应用程序可以不受gpl影响。并且把实际的驱动弄到用户空间来运行,使硬件厂商不必开源自己的驱动。这些举措使android对于商业应用非常友好。
但是尽管如此,在linux下开发一个非gpl的软件也不是那么容易的。虽然glibc、gtk等常用的函数库是采用的lgpl许可证,但还有大量的函数库是以gpl授权协议发布的。比如我要开发一款软件需要用到mysql数据库,虽然其它库文件都是非gpl的,但由于mysql的驱动是gpl的,所以我的软件也只能是gpl的。要想完全绕开gpl开发一款软件,会不得不放弃一些功能,因为很可能那些功能要使用到gpl的函数库。你要仔细确定你的软件使用的大量函数库中全部没有gpl授权协议的,只要有一个,你的软件就不得不采用gpl许可证。

以上是我现在对gpl的理解,欢迎大家指正。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP