常见开源协议

计算机科学的难度,最低级是写写代码,再高级是研究算法,再高级,就是一切和钱有关的问题。
这里充斥着辩驳,也充斥着人性。

一个流传很广的图。
在这里插入图片描述

GPL协议和linux

https://blog.csdn.net/hwaeb/article/details/12888881
GPL 代表着 Linux 的开源精神,毫不为过。然而,现实世界中,GPL 开源乌托邦和商业社会的丛林法则之间存在剧烈的冲突,其中犬牙交错,艰难成长,从中引发的思考,与大家共享。
如果你用了我的 GPL软件,那么必须你的软件也要开源,如果你不开源,那么就不能使用我的软件,你是否把你的软件商用和我没关系,如果你不能遵循GPL协议来开源,那么你付再多的钱也不能用GPL的软件, 事实上很多GPL软件是很多人共同完成的,每个人在前人的基础上做出自己的贡献,如果收费的话你把钱交给谁?提出 GPL协议的GNU希望做到的是通过开源来使软件行业得到一个好的发展,试想如果你要做一个大型的软件,不在前人的源码基础上开发,那必然会是旷日持久 的,也会有很多重复劳动,显然不利于软件技术的发展。所以理解了GNU的精神,也就能理解GPL在说些什么,其实就是开源。在现实生活中,我们受益于 GPL的地方,其实很多,几乎所有的操作系统,除了windows,其他的几乎都是基于linux开源代码改写的。GPL协议看起来似乎很友善。

+ 复制自由:允许将软件复制到任何人的电脑中,并且不限制复制的数量。
+ 传播自由:允许以各种形式进行传播。
+ 收费传播:允许在各种媒介上出售该软件,但必需提前让买家知道这个软件是可以免费获得的,并解释收费的理由(一般来讲都是能够为用户提供某种服务,以技术服务的形式来收费)。
+ 修改自由:允许开发人员增加或删除软件的功能,但必须依然基于GPL许可协议授权。一句话,修改后必须以GPL授权开源发布。

几个核心争议问题。

1、使用 Linux 内核的头文件定义,进行系统调用的程序是否会被定性为衍生产品?
2、链接使用了其他 GPL 的类库的程序是否会被定性为衍生产品?
3、Linux 内核动态载入的模块 LKM(Loadable Kernel Modules)是否会被定性为衍生产品,以 LKM 形式开发的 Linux 驱动程序是不是衍生产品?

第一个问题,答案是不是。所以你可以自由的的在linux上开发代码而不需要将自己的代码开源。
第二个问题,答案是是。glibc是linux上的主流的c运行时库,几乎每个linux程序都会简介的依赖c运行时库。由于glibc是gpl授权的,因此如果采用glibc作为crt(C run-time library),这些程序必须开源。因此安卓采用bionic作为c运行时库替代glibc来规避gpl。
第三个问题,则是争论的中心,一些硬件厂商常年以二进制形式发布驱动的源代码(ATI/AMD/NVIDA等)这个一直被linux的开发人员口诛笔伐并扬言违法。

JAVA

正所谓一波未平,一波又起。

2018年,9月26日。Oracle发布了java 11,同时也发布后续更新策略。
Oracle jdk(目前JDK8和JDK11)授权使用BCL协议(这个协议说白旅了就是oracle完全私有化)。JDK8具体分个人版本和商业版本两种。商业版本在19年1月停止免费的更新,这之前的更新还是能够免费用,交钱可以继续获得后续的更新。个人版本在20年12月停止免费的更新,这之前的更新还是能够免费用,交钱可以继续获得后续的更新。个人版本禁止商用。JDK11没有免费版本和商业版本一说。除非交钱,完全不能商业使用。

对于普通企业,如果不交钱,则必须

  • 绝不能使用Oracle JDK11。
  • 也不能使用Oracle JDK8的部分高级特性。
  • 也不能再非“通用计算”领域使用Oracle JDK8。通用计算指的是非专用嵌入式应用,比如说机顶盒,智能家庭网关,网络交换机。
  • 继续使用Oracle JDK8则不要奢望Oracle为其提供更新和支持。

猜你喜欢

转载自blog.csdn.net/define_us/article/details/84775031