有三个意思相近的词,自由软件(free software), open source software(开源软件),自由开源软件(free and open source software, 简称FOSS)。本笔记解释其中区别。
自由软件运动的起源,并不是为了反对软件厂家的收费行为。20世纪70-80年代,计算机厂家开始分离软硬件,并且限制用户查看硬件或软件的源代码,以此保护知识产权和竞争优势。以Richard Stallman代表的程序员不满此限制,因此开始了自由软件运动。
free software里面的free并不是免费的意思(free-of-cost),而是不受限制(in the sense of free speech)。其自由包括四层含义:
- 运行软件的自由,无论目的是商业,研究或者教育
- 学习和修改软件以适应自身需要的自由(包含了源代码公开的要求)
- 发布分享软件的自由
- 改进软件并向公众发布改进版软件的自由(包含了要求源代码公开)
其中并没有限制售卖软件。也就是说,任何人可以销售自由软件,或者提供软件服务而获利。
因此,自由软件的反义词并不是“商业软件”(commercial software),而是私有软件(proprietary software,或者closed source software)。比如我自己写了一个排序软件,代码不公开,只发布一个供任何人免费使用的exe软件,这仍然不是free software。
开源软件open source software的含义有些模糊。有时这个词用来指代自由软件。Richard Stallman批评这个词,说open source只表示代码公开,没有说明是否可以修改或者再次发布。
自由开源软件(FOSS),看来是一个最合适的说法。原因有二,一是自由软件容易产生歧义,让人以为是免费软件;二是开源软件的含义模糊,不准确。
【未完待续】
参考资料
【1】The 2012 free and open source GIS software map – A guide to facilitate research, development, and adoption
https://www.sciencedirect.com/science/article/pii/S0198971512000890www.sciencedirect.com【2】Richard Stallman的一篇文章:Why "open source" misses the point of free software
ViewpointWhy "open source" misses the point of free softwaredl.acm.org