如何定义开源
开源(Open Source)该概念最早应用于开源项目,开源代码促进会(Open Source Initiative)用以描述那些源代码可以公开使用的软件。此种软件的应用程序、修改和销售不受许可证的限制。
每个开源项目都有自己的论坛,由团队或个人管理。论坛按时发布开源代码,感兴趣的程序员可以下载这些代码并修改它们,然后提交自己的衍生成果。管理者从众多的衍生开发软件中选择合适的代码进一步改进程序,并再次发布新版本。因此打造了一个“合作开发,共同分享”的良好研发环。
如何定义闭源
闭源软件是与开源项目相对应的非开源项目。它使用有限的软件,通常无法查看源代码,用户只能浏览二进制文件。由于软件开发人员将源代码视为独特的私有信息和资产,闭源软件也被称为独家软件。
开源的出现
在信息技术的早期阶段,一台成型的计算机会事先安装好操作系统和基本的应用程序软件,同时会提供可编辑的源代码,因此不需要支付额外的费用。然而,随着软件作为一种独立的商品,独立的软件供应商不再提供源代码来使用这个商机,并避免竞争对手获得其商业秘密。这种行为形成了估计的结果,即计算机用户开始依靠独立的软件供应商来支持和升级。
由于计算机用户在应用软件上的投资越来越大,他们也受到了影响“锁定“在硬件方面。由于放弃或重新配置现有的应用软件,在新供应商独特的操作系统上运行的成本较高。因此,上世纪80年代中期出现了一项运动,适用于分发人们可读的源代码和修改,分享和分发设备可读的代码和通常的编程代码的合法权利。
这种类型“自由软件”最初的支持者认为共享源代码的权力是一种基本的自由,并创建了许可证——GNU通用公共许可证,规定制造商、研发者将其创新成果返还给项目社区。自由软件运动”发展到了后面,一个派系只关注自由共享代码的具体优点,他们称之为 “开源软件”,导致该群体的行为被称为 “开源运动”。