自由软件与开源软件
图为电影《The Shawshank Redemption》的海报
昨晚与张老师还有几位Linux小组成员一起去西邮参加了一个开源者行的活动,演讲嘉宾有GitCafe和Thoughtworks的人员。其实这次去只是想感受感受开源的气氛,一直听说西邮的开源气氛不错,未能亲身感受,所以趁还在西安,赶紧体会体会。这次最大的收获当属对开源文化的重新认识,也重新理解了free software与open source software的异同。
首先,free software的最初版本由Richard Stallman起草,并通过Free Software Foundation发布,其初衷是确保最终用户能够自由使用、学习、分享和修改软件。要理解free software的概念,得先理解其中"free"里的含义,这里的"free"并不是"free of charge"中的含义,而是"free speech"中"free"表示的意思。
通常所说的free software包含以下四种自由:
1. freedom 0
如你期望的那样自由地运行那个程序
2. freedom 1
能够自由地查看源代码,研究软件是如何工作的,并可随意修改,为你所用。
3. freedom 2
可以重新发布原软件,以帮助周围其他人。
4. freedom 3
能够重新发布你修改过的程序,以使整个社区都能够从你的修改版本中受益。你可以选择免费,也可以选择收费。
而open source software的标准则由Eric S. Raymond和Bruce Perens发布,更偏向于开放源代码的意思,更多的限于技术层面。Richard Stallman还表示:当你听到"free software",更多的应该是想起自由(freedom),而不是价格(price),并多指的是精神层面的自由,而"open source"则绝不会让人联想到自由的概念。
我想这也是开源软件与自由软件二者之间的最大区别吧。