关于自由软件与开源协议
在 GitHub 上浏览一些开源软件时,我们经常会看到 README.md 文件下会有一个关于 License 的声明,或者有一个单独的 LICENSE 文件来说明该软件或者类库是基于什么协议开源的,你能拿他做什么不能做什么。或许是因为习惯了在 Google 或者 Stackoverflow 上找到一份代码就开始使用的缘故,很多人不会留意这些软件是基于什么开源协议开源的。比如广泛使用的 jQuery,大家都在用,也没有任何人说直接复制了或者更改了 jQuery 源码产生衍生软件会有什么问题。但是在开发商业软件的过程中如果需要用到开源软件,它使用的何种开源协议对你的软件有直接或者致命的影响。
1 自由软件
在开始谈开源协议之前我们应该需要了解一些自由软件以及著作权相关的知识。
自由软件运动
自由软件运动(free software movement 或 free/open source software movement,简称 FSM 或 FOSSM)是一个推广用户有使用、复制、研究、修改和分发软件等权利的社会运动。接近和相关的运动包括开放源代码运动及自由软件的开放源代码运动。这运动跟 1970 年代的黑客文化有渊源,而理查德·斯托曼是该运动的主要发起人以及精神领袖。 自由软件运动人士认为自由软件的精神应当贯彻到所有软件,他们认为禁止计算机用户行使这种自由是不道德的行为。理察·马修·斯托曼认为贩卖不附带源代码的二进制软件是不道德的,因为这样阻止了软件用户学习以及帮助其他人的权利。