“开源不只是为了让我们能够看到代码,它更是为了让我们能够使用代码 ——而后者,才是开源真正的魔力,或者说,力量所在。”

这是开源运动的圣经《大教堂与集市》中的“开源世界理念”,也是开源人之间经久不衰的话题。

今天小异带来一本新书,它是国产开源神作《开源之迷》,它讲述了发生在“开源世界”中的历史故事,描绘了开源的迷人之处,阐释了开源为中国带来的启示。

如今,开源统治着世界。我们日常所用产品、服务或平台几乎都是由开源软件提供支持或由开源软件构建的。开源征服了世界,开源软件无处不在,但我们对神秘又迷人的开源世界依旧存在许多疑惑,开源世界仍然谜影重重。

那如何揭晓开源的谜底呢?

小异认为应该从开源的历史开始...

自由之初

事实上,开源(Open Source)并不是自然生长的,这个过程是一部波澜壮阔的黑客史。你能看到那群发自内心喜欢计算机的人对技术最简单、最纯粹的热爱,而开源的魅力也体现在其中。

在早期,代码其实仅作为单纯的知识分享。学术圈的科学家们认为代码和论文都是学术成果,这种代表知识性的成果理应分享给其他渴求之人。

到了1976年,比尔·盖茨发表了《写给电脑爱好者的公开信》,抱怨未经授权使用Altair BASIC的情况太过普遍,愤怒地指责那些免费复制软件地家伙为“盗贼”,宣告了软件通过商业授权获取利益的开始。

“Most directly, the thing you do is theft.”

——比尔·盖茨

直到如今,开源与商业之争仍未停息,小异不想在此讨论孰优孰劣。毕竟,比尔·盖茨的观点也没有错,可以说如果没有商业软件版权保护,可能都不会有如今软件行业的兴盛。

于是,制造商越来越多地对其技术进行版权保护,隐瞒源代码,并要求获得软件的许可使用。专有软件占据了技术领域的市场份额,这让将“自由”推崇为文化的部分黑客们感到不喜。

打印机卡纸问题与黑客文化

后来发生在一名职业黑客身上的一件事情更是成为了自由软件运动的导火线——

1980年, 职业黑客理查德·斯托尔曼(Richard Stallman)受聘于麻省理工学院人工智能实验室(AI Laboratory),有一天实验室接受了一台全新激光打印机的捐赠。

在使用过程中,这台打印机经常出现卡纸问题,于是,斯托尔曼想通过修改代码,让系统在卡纸时通知用户。

然而,当斯托尔曼询问打印机驱动程序的源代码时,他被告知这是专有信息,开发人员都签署了一份保密协议,无法分享。这让斯托尔曼感到特别愤怒,他认为这是对黑客文化的背叛。

斯托尔曼坚持人们需要能够自由修改他们使用的软件。于是,这位被我们称为自由软件运动之父的天才决定创建一个完整的操作系统,它不会剥夺用户理解其工作原理的自由,并允许他们根据需要进行更改。

这是自由软件运动的诞生,他在1983年宣布了GNU操作系统的计划,1984年1月,他开始全职从事该项目,首先创建了一个编译器系统(GCC)和各种操作系统实用程序。

1985年初,他发表了《GNU宣言》,呼吁程序员加入进来,并成立了自由软件基金会,以接受捐款来支持这项工作。这份文件是自由软件运动的创始章程。

但直到1989年,由自由软件基金会和斯托尔曼编写和发布的软件都没有一个许可证。在一家名为Unipress的公司迫使斯托尔曼停止分发他们从James Gosling那里获得的Emacs实现的副本之后,他认为确保用户自由的许可证很重要。

于是,他在同年发布了GNU通用公共许可证的第一个版本,随着1990年代互联网的出现,自由软件运动的分散式协作开发模式得到了蓬勃发展。

开源软件的代表作之一

Linux的兴起

1996年,Linux的兴起是开源历史上的一个关键时刻,它让自由软件变得更加主流。

1997年,著名黑客埃里克·斯蒂芬·雷蒙(Eric S. Raymond)表了开创性的文章《大教堂与市集》。这本被认为“开源圣经”的书籍比较了GCC和Linux内核的开发方法和社会结构。他概括为两种不同的自由软件开发模式:

一种是大教堂模式,原始代码是公开的,但每个版本的开发过程由一个专属的团队管控;

一种是市集模式,原始代码同样是公开的,不过是放在互联网上供人检视及开发。

最终“市集模式”证明了开源比闭源更加高效,全球99%的组织在IT系统中使用了大量的开源代码,开源的价值也被越来越多的企业重视。

埃里克有一句经典名言,影响了参与开源运动的无数程序员:“足够多的眼睛,就可让所有问题浮现”。于此同理的是著名的林纳斯定律 (Linus' Law):“软件开发测试人员数量对软件开发质量意义重大”。

“开源”终成开源

开源概念虽然早已存在,甚至可以说是软件源代码的共享和协作改进的开发,基本上与软件开发本身一样长,但是对这种概念的准确称呼是在后来才被确定的。

在1985年,用于描述软件自由的"自由"一词因其模糊性质被理查德·斯托尔曼本人认定为有问题。

于是,在1998年Netscape发布 Mozilla 的源代码之后,理查德·斯托尔曼和其他自由软件界的领军人物聚集在一起讨论一个替代术语,选中了由克里斯蒂娜·彼得森创造的“开源(Open Source)”一词,用于描述自由软件。

凭借其内在价值和源源不断的生命力,"开源"逐渐超越了"源代码软件",开始被社区中的许多项目所采用。

虽然开放源代码成功崛起,成为了软件领域中重要的组成部分,但小异认为有必要对一直都在前进发展的开源进行正名。

因为,如今的开源可不止是“开放源代码”的意思,它代表着一种先进的协作方式。

正如理查德·斯托尔曼所说:“开源是一种开发方法论;自由软件是一种社会运动”。

开源从传统意义上的将代码仓库公开访问,以及以某种开源许可证来分发,进阶到由开放治理和合作基金会的管理,使得来自世界各地的开发人员能够协同起来,一起解决计算机领域中的挑战。开源这种文化,以及成为了无数人正在践行的开发方法论。

开源的迷人之处

开源一步一步从麻省理工学院的打印机卡纸解决方案发展到当今科技行业的主要开发模式,在当今的IT行业中发挥了重要作用。

倘若这一切都没有发生呢?

小异不敢设想,因为没有开源、没有Linux、没有Android 、没有Firefox.....那么,历史一定会改写了,这好像世界没有发明出计算机一样。

你可能会说,开源一点都不具象,太神秘了,迷影重重。

开源世界确实不是我们现实的地球上存在的某个物理空间,它的内部穿插了网络空间、地理空间、文化空间、人的心理空间等,是一个全新的空间组合。

那么开源是神秘而不可见吗?也不尽然。

因为它并非虚构的,而是真实存在的,它真实地为人类服务发挥着作用。

▮来自全球的开发者,仅仅通过互联网协作就可以完成操作系统、编译器等复杂而庞大的巨型软件项目;

▮很多相互竞争的商业公司,竟然在开源项目中进行合作;

▮在美国,开放源代码属于言论自由范畴,受美国宪法第一修正案保护;

▮Apache软件基金会20多年了没有一间实体办公室,却创造了价值200多亿美元的项目;

▮曾经视开源为最大敌人的微软,现在却公开对开源“示爱”;

开源是如此的迷人,以至于被现代的信息技术从业人员所拥护,甚至进入了大众的视野。你可以这样认为:

●开源是具体的计算机技术细节,包括算法、数据、语法等;

●开源是具体的开源项目,如Linux、Kubernetes、 Hadoop等;

●开源是软件的开发方式,是软件工程的一种;开源是公共物品,任何人都可以轻易地获得、使用、修改,以及再分发;

●开源是经济学,是生产力,是可以有经济效益的;

●开源是乌托邦式的利他主义精神,更多的是讲伦理与道德;开源是与知识产权

●相关的内容,许可仍然受法律约束;

●开源是获取机会、搭便车的天然通道;开源是公共服务组织;开源是商业模式;

●开源是一种社会现象;

●开源是企业实施生态战略的手段......

以一名后来者的眼光来回顾开源的历史,我们除了能从具体故事中找到开源的关键转折点之外,还能从项目之外的文章中找到开源之迷,如:

●GNU宣言

●《大教堂与集市》

●Linus 和 Tanenbaum 之争

●Debian 社会契约

……

而除了无数的文章之外,还有很多开源相关的书籍能够带我们解密开源。这是一种更加系统的阐述开源的起源、发展以及背后的社会、经济、法律等知识的集合。

在这些书籍中,小异认为由“开源之道”发起人及主创、开源社委员会成员适兕最新编写的《开源之迷》是优选。

为什么这么说呢?

一方面,这是一本由资深开源布道师精心编写,受到产学研大佬集体推荐的开源指南。

本书的作者是“开源之道”发起人及主创、开源社委员会成员适兕,他曾组织过大量开源相关活动,并受到许多名企邀约讲述开源相关课程。

对于这本的内容编写,适兕没有采用常见的从开源的历史角度下手,而是基于一个简单的原则:只尝试带领读者认识当下的开源。

他认为,如果仅仅从开源项目或历史发展角度来写,会漏掉很多重要的内容。

所以,这本书没有以某个独立的线索去阐述,而是综合所有线索进行横向、纵向、斜切面的编织,带你全景式了解开源世界中的居民日常、历史故事、迷人之处、开源的价值、中国机遇等。

在这本书中,你可以跟随这名开源信徒在活跃而神秘的开源世界中进行一次奇妙的旅行。

另一方面,这是一本内容及其丰富的开源宝书。这本书先是从生活中的常见软件讲起,介绍了什么是开源、标志性开源项目的标志、开源人的日常活动、组织机构等;

紧接着介绍开源世界中包括科学家、程序员、律师、商人、用户等在内的不同角色,以及开源运动如何在这些人的推动下取得胜利;

最后探讨了开源的迷人特性,介绍了这件表面上看起来吃力不讨好的事情所取得的成就,并对开源在本土的发展进行了思考。

全书包含大量生动有趣的故事和数据分析,让非技术领域的读者也能用高屋建瓴的视角感受和拥抱开源文化。

总而言之,这是一本非专业人士也能阅读的开源科普书,阅读门槛特别低。不论你是在开源领域工作的技术人员、社区工作者、研究人员,还是只是想了解开源的读者,这本书都适合你!

声明:本文转自“异步图书”公众号。

《新程序员003》正式上市,50余位技术专家共同创作,云原生和数字化的开发者们的一本技术精选图书。内容既有发展趋势及方法论结构,华为、阿字节跳动、网易、快手、微软、亚马逊、英特尔、西门子、施耐德等30多家知名公司云原生和数字化一手实战经验!

每日一书丨这本书献给所有铸就开源世界的人们相关推荐

  1. 这本书献给所有铸就开源世界的人们

    | 转载自:异步图书 | 编辑:刘雪洁 | 设计:王福政 | 责编:王玥敏 # 引言 # 建盛(适兕),是一位真正意义上的布道师. 一般意义上的布道师,是一种职业.而对于建盛来说,则是一种志业.甚至可 ...

  2. 每日一书丨Rootkit和Bootkit:现代恶意软件逆向分析和下一代威胁

    网络犯罪集团和恶意行为者将继续编写更加持久和隐蔽的攻击程序,攻防之战远没有结束! 微软Windows操作系统的防御能力演进,使得Rootkit和Bootkit设计的几个主要分支陷入了死胡同. 以BIO ...

  3. 每日一书丨嵌入式C语言自我修养:从芯片、编译器到操作系统

    最近,阅读了王工(王利涛)赠送的一本由他编著的书籍<嵌入式C语言自我修养>,感觉写的挺不错.今天分享一下这本书籍<嵌入式C语言自我修养>:从芯片.编译器到操作系统. 从芯片.编 ...

  4. 每日一书丨地表最强:iOS安全黑宝书中文版来袭

    iOS和macOS的系统原理与逆向基础,以及由此展开的漏洞分析挖掘与恶意代码分析检测,一直是安全技术里一个独特有魅力的领域,也是一个值得投入的领域. 不得不提,Jonathan Levin的中文版新书 ...

  5. 每日一书丨由浅入深解析软件自动化的痛点问题

    去年的时候,当我和身边一些朋友透露写书的想法时,有3位朋友以为我要写游记,另外至少有3位更不靠谱的朋友认为我要写段子. 虽然我写过游记,也经常发段子,还时不时分享辅导中小学生英语和语文的苦中作乐的点滴 ...

  6. 每日一书丨耗时2年,爬虫开发实战第2版来啦

    说到学习爬虫,相信很多人读过<Python3网络爬虫开发实战>这本书.这本书豆瓣评分 9.0,是数万爬虫学习者的必读经典. 一本好书往往可以另读者获益匪浅,良好的口碑更是对这本书品质的认定 ...

  7. 每日一书丨这是一本演示如何在实际应用中利用设计模式的书

    Julia是一个为开发出高性能应用程序而设计的高级编程语言,旨在提高开发人员的生产力.其动态特性可以让你快速做一个小规模的测试,然后移植到大的应用程序中. 它的内省工具可以通过分析高级代码如何翻译成低 ...

  8. 每日一书丨数据治理的这些事儿,90%的人搞不清

    导读:在我们生活中,因"一字之差"而引起的误会.误解.笑话.甚至风波却时有发生.有的"一字之差"是粗心.疏忽导致,有的"一字之差"是对名词不 ...

  9. 每日一书丨手把手教你构建一个通用的智能风控平台

    随着互联网的发展,各种与互联网业务相关的风险不断滋生,例如娱乐.游戏.社交.电商.金融等行业的营销风险.支付风险.运营风险.欺诈风险.信用风险等,不仅种类多而且迭代快,这就需要有更高效.更智能的风险控 ...

  10. 每日一书丨《百万在线》罗培羽:服务端入门不该陷进网络编程

    刚毕业到游戏公司工作时,项目组用了纯C++技术方案,主管丢给一本400+页的<TCP/IP详解>,说啃完它就算入门了.可是对于毕业生而言,看这种书就像在看字典,看了很久也写不出有实际意义的 ...

最新文章

  1. python制作解压工具_使用python制作一个解压缩软件
  2. 莱维飞行matlab作图,基于莱维飞行和随机游动策略的灰狼算法
  3. AttributeError: module 'tensorflow' has no attribute 'sub'
  4. NYOJ 63 小猴子下落
  5. std::map用法总结
  6. MAC OS安装Composer + Laravel
  7. Python机器学习:多项式回归与模型泛化006验证数据集与交叉验证
  8. ios sandbox
  9. mysql中只运行一部分数据_MySQL(一)——MySQL基础和部分面试题
  10. layui table 字体大小_根据状态修改layui表格显示的文字及字体颜色
  11. 计算机组成与设计RISC-V版笔记
  12. win10QQ语音无法使用麦克风
  13. Kingston U盘 量产
  14. 零售商店销售管理系统——第四周
  15. R语言1-面板数据分析全过程 附代码用途
  16. jdk官网下载与安装
  17. 给学弟学妹肝的一篇Java学习路线,保证学弟学妹们大三大四的时候顺利找到实习 Offer
  18. OpenGL中各种坐标系的理解
  19. Linux入门,RTFM阅读那该死的手册
  20. 十年沉浮,Web2 到 Web3 的转变之路

热门文章

  1. SpringBoot快速整合Quartz动态管理定时任务
  2. IdentityServer4揭秘---Consent(同意页面)
  3. 适配IE浏览器的那些坑
  4. 海通股票交易接口查询当日成交c++源码分享
  5. 用计算机弹出平凡之路节奏,计算机音乐谱平凡之路
  6. php七牛云,php七牛云
  7. HTML标签关系——双标签和单标签,标签的嵌套与并列
  8. HDU5442 Favorite Donut(KMP+最大表示法)
  9. Unknown label type: ‘continuous
  10. 离线环境下火狐浏览器Firefox完全信息迁移