引言

本文节选自《开源之声——开放源代码运动文集》一书中由著名开源领袖 Bruce Perens 所执笔的《开放源代码定义》一文,开源之道尝试以开放源代码原作者的视野,从而看看追溯开源的源头。这样对于人们理解起来或许有所帮助。尽管现在很多的技术都受益于这样一个思想,但大众是不会去想这些的。

下面的第一人称我指的是 Bruce Perens 本人。

开放源代码定义的历史

在谈论开源之前,一定要提的就是自由软件(Free Software),自由软件算是比较陈旧的一个名词了。最初当计算机刚刚进入大学时,是被当做研究的工具来使用的,软件是自由的在黑客们中间流传的,而且程序员们也仅为编程行为获得报酬,但不会为程序付费。稍后一段时间,当计算机进入商业世界之后,程序员们开始通过限制软件的权利来让自己获利,即对软件每个副本收取一定的费用。在1984年,Richard Stallman 将自由软件作为一种政治考量来进行推动,他还创立了自由软件基金会,并身体力行的开启了轰轰烈烈的 GNU 项目,Stallman 的前提是人们应该有更多的自由,而且应该感激自由。他设计了一套他认为所有用户应该拥有的权利,并将其编入GNU通用公共许可证(GPL)。Stallman 还根据保留权力巧妙的起名为 Copyleft,这样就可以保留复制的权利。而且 Stallman 自己亲自实践这样的理念,开发了一系列的自由软件,诸如 GNU C 编译器、GNU Emacs(一款编辑器,非常之诱人,以至于很多人称之为是一门宗教)。受 Stallman 的启发和感染,有很多人在 GPL 许可证之下为自由软件贡献力量。是的,开放源代码定义囊括了很多 Stallman 的观点,可以称之为其衍生作品,因为它没有对自由有那么强烈的表达。

开放源代码定义 最初来自于 Debian GNU/Linux 发行版 的政策文档。 关于Debian, 我们知道它一直都是很受欢迎的 Linux 发行版,其特色在于全部使用自由软件来构建。Debian 开发出来之后,Debian 除了遵循 copyleft 之外,也遵循着一些其他的自由许可证。所以当时的Debian在自由软件方面还存在中一些问题,因为它没有向 Debian 之外去明确其自由软件的理念。 我当时恰好是 Debian 项目的领导者,为了解决这个问题,我在 1997 年的7月份,于是起草了 Debian社会契约 和 Debian自由软件指南,后来许多 Debian 开发人员对这些文档进行了纠正和改进。在 Debian社会契约 中我们明确了 Debian 是有自由软件所构建,而 Debian自由软件指南 则旨在通过对软件的许可证和指南进行独臂,让开发者能够可以轻松地将软件区分为自由和非自由软件。

Debian 指南是备受自由软件社区所称赞的,尤其是那些 Linux 的开发者们,要知道他们可是正在进行自由软件革命的践行者,他们所开发的是世界上第一款能够实际使用的自由操作系统。就在网景公司决定要将他们的 web 浏览器变为自由软件时,他们找到了 Eric Raymond。Raymond 是自由软件的玛格丽特·米德:他写了几篇人类学文章,解释自由软件现象及其围绕其所产生的文化现象,Raymond 的贡献在于首次向世界展现了这些自由软件的开发者们,也向世人展示了他们鲜为人知的一面。网景的管理层主要对 Raymond 那篇著名的论文《大教堂与集市》印象深刻,这是一本讲述自由软件能够之所以能够为没有任何报酬的志愿们成功的开发出来的背后故事。网景之所以找 Raymond ,就是希望Raymond能够为他们进行基于保密协议的咨询,且能为他们的自由软件开发新的许可证。Raymond 坚持认为网景的许可证应该遵循 Debian 指南,那才是真正的自由软件。

Raymond 和我经常在一些仅限受邀的 hacker 们的聚会上见面,这些聚会都是些具有创意的、不拘一格的程序员,我们之间也有通过电子邮件讨论过很多话题,他曾经在1997年2月就“开源”联系过我,Raymond 担心 Stallman 对于自由的坚持,会让一些保守的商业人士望而却步,尽管相对来说,Stallman 更易获得热爱自由的程序员们的青睐。他觉得这在技术研究中蓬勃发展的同时,却扼杀了Linux在商业世界的发展。Raymond 和一些试图将Linux推向商业的生意人们谈论起来,并且达成共识形成了一个计划,那就是将 Linux 为代表的自由软件向正儿八经的商业上推广起来。其中就包括来自 VA Linux 的 Larry Augustin 和 Sam Ockman (它后来离开 VA 到 Penguin Computing去了),当然还有一些是我不认识的。

在“开放源代码”提出之前,我还曾构思过关于“开放硬件”的想法,这和开源软件的想法很类似,不过是针对硬件设备罢了,要知道硬件的接口和软件的程序有很多相似之处,相比而言,开放硬件并没有开源软件(开放源代码)这么的成功,但它依旧有它存在的意义,大家有兴趣可以到其网站上获得更多信息。

由 FaceBook 发起的开放计算项目:http://www.opencompute.org/随着云计算时代的来临,发展的非常良好。 ———— 开源之道 译注

Raymond 认为 Debian 指南是定义开源最为合适的材料,但是需要一个更为通用的名称,而且要将 Debian 相关的都移除,于是我花了一点时间,将指南变更为开放源代码定义。我曾经为 Debian 组建了一个名为 Software in the Public Interest 的公司,所以我提出为”开放源代码”(Open Source)主持商标,以便我们可以将其用于定义。Raymond 同意这样的做法。于是我就“Open Source”注册为一个认证标志,这个标志是用来为众多的产品做标志的商标。一个月之后,我成功的注册了商标。不过,我们一致认为,将开放源代码的标志放在一家叫做 Software in the Public Interest 的公司下是很不妥当的。于是,我将商标的所有权转移到了 Raymond 的名下。稍后,Raymond 和我组建了开放源代码促进会(Open Source Initiative),这是一个专门用于管理开放源代码活动及其认证标志的组织。在撰写本文时,开放源代码促进会由从知名免费软件贡献者中选出的六位董事会来进行管理,未来会寻求将董事会扩大到十人左右。

当我们发起“开放源代码”运动时,还是引起了不小的震动,甚至是那些已经购买了 Linux 的团队也是如此,因为他们已经接受了自由软件的概念。有很大一部分的反对声音是在说“开放源代码”有一些政治上的知识产权产业的意味,也有说“开放”这个词已经被滥用了。也有很多是宁愿选择自由软件。但是我个人以为,即使是被滥用的“开源”一次,也胜过具有双重含义的自由,意即自由和价格,而价格对于计算机和软件行业的商业世界来讲是个非常重要的词汇。Richard Stallman 认为“开源”过度缺乏对于自由的强调,然而,事实上是“开放源代码”是日渐被大家所接受和认可,尽管 Stallman 在自由软件有着很高的威望,以及自由软件基金会的重要历史地位,也无法抵挡历史对于他们的忽略和遗忘,连 Stallman 本人都抱怨人们太健忘。此种情势下,一些好事者就喜欢将 Stallman 和 Raymond 放在对立的哲学立场,而并不去理会,这其实是使用不同的方法来推广相同的理念罢了。其中,可能也有我的问题,比如我在 Linux 世博会和开源世博会上让他们俩针锋相对,导致情况更加的恶化。但是,他们俩都没有将其中的辩论公开,我曾劝说 Raymond 低调,其实,他自己深知这一点。保持低调。(直到现在)

当开放源代码定义写就以后,其实当时就已经有很多的程序是满足这些定义的,但是随之而来的问题也来了,也有很多的程序是不符合开放源代码定义的,但是它们对一些用户却是非常有吸引力的。

关于作者

Bruce Perens, 著名的程序员,曾经是 Debian 项目的领导者,其创造了开放源代码定义,与埃里克·雷蒙一同创立了开放源代码促进会。BusyBox的最早创作者。他也是一名业余无线电爱好者,呼号K6BP。 开源之道下期会专门介绍这位开源史上关键的人物。

python是自由开放源代码软件_开放源代码定义之历史篇相关推荐

  1. python 3d大数据可视化软件_最受欢迎的大数据可视化软件

    最受欢迎的大数据可视化软件 发布时间:2020-05-26 想像阅读书本一样阅读数据流?这只有在电影中才有可能发生. 在现实世界中,企业必须使用数据可视化工具来读取原始数据的趋势和模式. 大数据可视化 ...

  2. python制作网页用什么软件_网页制作软件有哪些?好用的网页制作软件是怎样的?...

    网页制作软件有哪些?好用的网页制作软件是怎样的?对于网站编辑来说,网页编辑器是一个常用的软件,目前网页编辑器也有很多类型,对于新手来说,你不知道网页编辑器有哪些?其实,选择合适的web编辑器软件会提高 ...

  3. 银行开放api接口_开放标准API如何彻底改变银行业

    银行开放api接口 英国政府已委托英国银行进行可行性研究,以使客户能够通过开放标准API与第三方共享交易数据. 早在12月的秋季声明中首次提到,总理现在就在3月的最新预算中概述了强制性开放银行API标 ...

  4. 开放封闭原则_开放/封闭原则

    开放封闭原则 I have to admit the first time I peeked at the academic definition of the Open/Closed Princip ...

  5. 用python做一个数据查询软件_使用Python实现NBA球员数据查询小程序功能

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 以下文章来源于早起Python ,作者投稿君 一.前言 有时将代码转成带有界面的程序,会极大地方便 ...

  6. python 3d大数据可视化软件_十大顶级大数据可视化工具推荐

    要使数据分析真正有价值和有洞察力,就需要高质量的可视化工具.市场上有很多产品,特点和价格各不相同,本文列出了一些广泛认可的工具.其实企业如何选择一个合适的可视化工具,并不是一件容易的事情,需要仔细的考 ...

  7. python如何制作一个工程软件_使用python制作一个解压缩软件

    python实现解压缩的重要模块就是--zipfile,其次是os 安装zipfile模块 首先得安装zipfile模块,打开cmd输入一下命令即可安装 pip install zipfile os是 ...

  8. python如何制作一个工程软件_如何利用python制作一个解压缩软件-Go语言中文社区...

    如何利用python制作一个解压缩软件 python实现解压缩的重要模块就是--zipfile,其次是os 安装zipfile模块 首先得安装zipfile模块,打开cmd输入一下命令即可安装 pip ...

  9. 用python写一个程序控制其它软件_程序员:利用Python实现可控制肉鸡的反向Shell...

    一.初识 1.1 用 Python 实现一个可以管理多个肉鸡的反向 Shell,为什么叫反向 Shell 呢?反向就是肉鸡作为 Client 主动连接到我们的 Server 端,以实现对多个远程主机的 ...

最新文章

  1. AI新基建哪家强?百度“秀肌肉”,意在C位
  2. [SinGuLaRiTy] 二分图匈牙利算法
  3. 【例题 7-2 UVA - 11059】Maximum Product
  4. Android_获取屏幕大小的两种方法
  5. Windows10中安装VMware Workstation Pro 15.x与使用Ubuntu 20.04 LTS
  6. 生存分析之Cox模型简述与参数求解
  7. 智能网联公交的三大发展趋势
  8. 单片机---HLK-W801移植Nes模拟器(三)
  9. 12306一直显示服务器忙,网购春运火车票首日 12306网站又现服务器忙
  10. ElasticSearch索引生命周期管理(ILM)
  11. mysql设置外部ip访问
  12. Android框架之ButterKnife(黄油刀)
  13. DSP F28069 build 出现warning : creating output section “xxxx“ without a SECTIONS
  14. 研究课题:工资管理系统
  15. Linkflow+小鹅通,打造全链路线上个性化课堂
  16. R语言 向量排序与运算
  17. SQLserver2008 R2安装图解教程
  18. 推荐算法遇到后悔药:评蚂蚁的ESCM2模型
  19. GOTS认证辅导,审核的机构按照GOTS标准对世界各地的有机棉制品进行检查和认证
  20. excel剔除空格_excel删除空格

热门文章

  1. Java小白常见异常|ArithmeticException算数异常的解决过程
  2. python记录程序运行时间的三种方法
  3. 企业级购物车实现思路
  4. 2017qs世界计算机排名,2017qs世界大学学科排名完整版
  5. 有限元与深度学习结合求解泊松方程-Petrov
  6. 范数(简单的理解)、范数的用途、什么是范数
  7. psp测试电池软件,PSP 电池使用时间测试
  8. 创意发明:基于stm32的微型掌上示波器 设计说明书电路及源代码
  9. 学习 《电路》(尼尔森著,第十版)第一章笔记(电流)
  10. C++ 浅复制、深复制详解