开源软件的起源与开放源代码协议有人说没有开源软件就没有我们今天的生活,是开源软件改变了我们的生活,从众所周知的Linux到随处可见的Android系统,我们的生活中充满了开源软件的身影。但是你知道开源软件的历史么?你知道它是如何发展至今的么? 开源软件就是在GNU通用公共许可证(GPL)下发布的软件,以保障软件用户自由使用及接触源代码的权利。这同时也保障了用户自行修改、复制以及再分发的权利。简而言之:所有公布软件源代码的程序,都可以称为开放源代码软件。 在了解开源软件之前,我们先来看看开源软件的定义。开放源代码的协议最早是由Debian创始人之一Bruce Perens提出的。 开放源代码的协议也是目前绝大部分开源软件所遵循的协议[摘自维基百科]: 自由再散布(Free Distribution):允许获得源代码的人可自由再将此源代码散布。 源代码(Source Code):程序的可执行文件在散布时,必需以随附完整源代码或是可让人方便的事后取得源代码。 派生著作(Derived Works):让人可依此源代码修改后,在依照同一许可协议的情形下再散布。 原创作者程序源代码的完整性(Integrity of The Author’s Source Code):意即修改后的版本,需以不同的版本号码以与原始的代码做分别,保障原始的代码完整性。 不得对任何人或团体有差别待遇(No Discrimination Against Persons or Groups):开放源代码软件不得因性别、团体、国家、族群等设置限制,但若是因为法律规定的情形则为例外(如:美国政府限制高加密软件的出口)。 对程序在任何领域内的利用不得有差别待遇(No Discrimination Against Fields of Endeavor):意即不得限制商业使用。 散布许可协议(Distribution of License):若软件再散布,必需以同一条款散布之。 许可协议不得专属于特定产品(License Must Not Be Specific to a Product):若多个程序组合成一套软件,则当某一开放源代码的程序单独散布时,也必需要符合开放源代码的条件。 许可协议不得限制其他软件(License Must Not Restrict Other Software):当某一开放源代码软件与其他非开放源代码软件一起散布时(例如放在同一光盘),不得限制其他软件的授权条件也要遵照开放源代码的授权。 许可协议必须技术中立(License Must Be Technology-Neutral):意即许可协议不得限制为电子格式才有效,若是纸本的许可协议也应视为有效。 从1980年开始,第一个开放源代码的项目出现到今天,开源软件已经走过了34年的春秋,在这34年中都出现了哪些值得人们记住的事情呢? |