开源之迷

开源之迷

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

编辑推荐

一本非专业人士也能阅读的开源科普书,带你全景式了解开源世界中的居民日常、历史故事、迷人之处、开源的价值、中国机遇等。

内容简介

本书为作者阐述开源三部曲的第一部作品,旨在从大众的视野说起,介绍了什么是开源,开源不止是代码;开源的成就除了商业价值还极富社会意义;开源的参与者,程序员、学者、商人、用户等等都是开源人;开源运动是如何打破垄断不断进化、相互妥协最终取得胜利的;开源这个表面上看似乎吃力不讨好的事情如何能够取得成功的关键;开源早已撑起现代信息世界的基础并为中国提供第二次同步世界的机会。全书配有大量生动有趣的故事和数据分析,本书更像是一本拥有人文情怀的计算机类书籍,能够让非技术领域的读者也可以从高屋建瓴的角度感受和拥抱开源文化。

作者简介

作者适兕,“开源之道”发起人及主创、开源社委员会成员、ALC Beijing Podcast播客主播、X-lab开放实验室前首席开源导师、华东师范大学数据学院开源软件设计主讲师。

章节目录

版权信息

内容提要

总序

视频导向图书使用指南

在视频导向图书上找到入口

免费享用增值内容的权益

联系客服

前言 巧遇开源布道师

开源所涉及的知识分类

旅行前的准备

旅行指南

本书面向的读者群体

向导的位置和联系方式

第一章 开源世界的入口:如何通过软件认识开源?

01 无处不在的开放源代码软件

现代人的软件生活

日常的手机软件(App)

移动设备

浏览器

桌面操作系统

其他设备

一位当代上班族的日常

02 人为规定的软件属性:关于许可协议的常识

软件的固有特性

软件使用的法律条款:作为商品合法地存在

开源软件的许可声明

开源许可协议:令人眼花缭乱的声明

开放源代码软件的定义

第二章 何谓源代码?它是如何工作的?

01 体验一次非凡的开源技术之旅

虚构的简单场景

小结

02 掌握技能:从表象到源代码

“普通人”看源代码之捷径

03 正向理解:从源代码到运行结果

从一段“Hello,World!”程序说起

继续正向理解:超级复杂的程序/软件

安装Chromium的两种方法

系统需求

安装Google提供的工具depot_tools

获取代码

保持和上游代码同步

Apache httpd从源代码到Web服务器

第三章 开源世界的标志

01 开源象征符号:世人识别的标志

关于标志和品牌的故事

嗨,你们需要一个符号

开源有什么明显的标志吗?

02 标志性成就:那些震惊世人的卓越象征性标志

Apache软件基金会

Linux基金会

开放源代码促进会

第四章 开源:在所有人看得见的地方工作

01 欢迎来到透明的世界

02 公开、透明的开源流程

03 代码从头开源

04 想法公开

05 交流公开透明且归档

06 开发流水线公开可见

07 视频会议录制并公开

第五章 开源世界的日常

01 起居:开源世界居民的日常

从一位打工者的生活轨迹说起

开源世界公民的日常轨迹

在所有人看得见的地方工作

02 神秘的工作状态:编码及其他

工厂的外在展现

软件开发是一项脑力活动

传统开发团队:聚集一隅的集体生产

开源的核心:编码

不可见:基于互联网的分布式协作

03 无限的代码修改:版本控制系统

写作版本的修改

应用市场的软件更新

版本控制系统

计算机程序开发语言指令——源代码

版本控制系统概览

合并时的探讨

04 形成闭环:问题跟踪系统

问题跟踪

细致探讨真正发生的地方

不止于bug

05 沟通交流的重地:邮件列表

邮政:人类沟通的重大飞跃

电子邮件:互联网的灵魂

电子邮件的附件功能:可以携带代码

开源项目中的邮件列表/新闻组

以Linux Kernel邮件列表为例

06 同时在线的沟通:即时聊天

虚拟形象:打造自己的人设

即时沟通

IRC与Slack

不适合开源沟通的工具:微信

07 展示和宣传:网站及其他

你需要让别人找到你

媒介

博客:关键人物的观点

聚合类站点:话题热点

授予地位

订阅与推送

垂直论坛

传统媒体

利用热点事件

搜索引擎

酒香也怕巷子深

08 形成网络:社交媒体放大效应

我们是天生的社交动物

Web 2.0与社交

话题性

网络

实践

09 村落效应:重要而必需的线下见面会

我们必须向身边的人学习

村落效应

线下聚会:为开源而聚

线下聚会通常做什么?

10 本土优秀线下聚会案例分享

什么是 Apache本地共同体(ALC)?

如何寻找本地的线下聚会?

怎么组织线下聚会?

11 教育:书籍、纪录片与培训

开源之书

记录的艺术

培训:技能的传播

12 日常行为规范和准则

张贴在“大门”上的规范和准则

“通用”的法则

违反准则的后果

第六章 开源世界的城市与乡镇

01 聚集:开源世界的城市与重镇

来谈谈人类的聚集地

欢迎来到开源世界

开源世界边缘地带的重镇:维基百科(Wikipedia)

02 汇聚:代码托管平台

GitHub

SourceForge

GitLab

GNU Savannah

Fedora Pagure

其他

问题

03 虚拟的社会组织:开源共同体

开源的生产方式:同行生产(peer production)

围绕项目而结识和组织

跨越地理位置

超越文化与语言

符号与标识

共同体的定义

04 共同体的代言人:非营利基金会

开源项目被认可的正式组织

开源非营利基金会的诞生和发展时间轴

从几个维度来看开源非营利基金会的崛起

开源非营利基金会的功能

05 新教伦理:拥抱开源的商业公司

软件商业化的法律依据

何谓新教伦理

基于开源的商业公司

拥抱开源的互联网巨头

正在路上的传统商业公司

基于开源项目的初创公司

06 被其他世界承认或建交的部门:机构

从Linux的“总部”说起

Apache软件基金会的总部

大公司的开源项目办公室

高校/学术机构

本土的民间行业联合体

07 嘉年华:开源世界的大型会议与活动

需要大型聚会的内在缘由

豪华的大型商业会议

开源世界的大型会议

参与大型开源会议的意义

Google编程之夏

第七章 开源世界的人物

01 不起眼的推动者:大众驱动的开源

开源项目的主力

无限多样性的群体

互联网空间的新连接

技术的民主化

如何识别他们?

02 科学家:奠定开放的基石

开放,科学的要素

计算机算法泰斗:高德纳

蒂姆·伯纳斯-李与万维网

开放式协作之先河:RFC背后的科学家共同体

03 程序员:选择将代码开源的匠人

独具一格

源代码就不应该封闭

开源的北斗星:理查德·斯托尔曼

只是为了好玩:林纳斯·托瓦兹

仁慈的独裁者:吉多·范罗苏姆

Perl编程语言设计者:拉里·沃尔

全栈工程师典范:法布里斯·贝拉

BSD和Vi的作者:比尔·乔伊

开源大数据处理的缔造者:道格·卡廷

Jupyter和IPython缔造者:费尔南多·佩雷斯

十年如一日的坚守:Sage Weil

代码为王

04 律师:开源知识产权的捍卫者

GPLv3的缔造者:Eben Moglen

05 布道师:不遗余力地推广开源的信徒

向世俗妥协的黑客:埃里克·雷蒙德

技术趋势洞见者:蒂姆·奥莱利

Debian社会契约和开源促进会的缔造者:布鲁斯·佩伦斯

06 学者:开源现象背后机理的探索者

所有人都想复制成功

问题比答案多

如何科学地找到范式?

软件工程领域的探索者

经济学家:挖掘开源背后的商业因素

07 商人:可持续发展的创业者、风险投资家

开源的商业迷思

商业的创新者们

风险投资

洞悉开源消费者心理的创新者:鲍勃·扬

点石成金的风险投资者:彼得·芬顿

08 保持中立:赢得信任的社会工作者

开放源代码的归属问题

开源软件非营利基金会的崛起

把开源种子撒播到所有行业:杰姆·策姆林

09 付费用户:洞悉开源的形成心理表征者

所有的现代人都是开源的用户

天上不会掉“馅饼”

为开源付费的方式

解决问题的实用主义者

开源可持续发展的重要力量

10 搭便车者:目光短浅的“受害者”

惯性思维下人们对自由/开源软件的误解

将自由软件理解为免费软件

软件的隐性成本

学习曲线与脱离上游

任由“投喂”,失去活力

人性的弱点

潜在的付费用户

第八章 开源的胜利

01 开源运动的胜利:一场伟大的革命

和专有软件分庭抗礼

如何定义开源运动?

02 垄断者:进行二进制授权的商业软件巨头们

从软件作为授权的商品说起

不止微软

微软“帝国”的反垄断诉讼

形成垄断的主要方式

商业软件仍将继续存在

03 利益:开源动了谁的奶酪?

万圣节备忘录

互联网的崛起,技术栈的选择

开源技术栈的扩张

随之而来的是商业模式的变化

04 演化:无法阻挡的生命力

从Linux内核(Kernel)的发展历史说起

技术的累积

开放带来的演化

05 妥协:模式融合下的现代开源

Apache许可协议2.0(Apache v2.0)的崛起

基于开源项目的商业公司的崛起

彼此融合,共同前进

06 背叛:拒绝云计算巨头的“伪”开源

关于Open Core模式

消费者的思维定式

云计算时代下的软件授权冲突

托管式开源服务

关于软件授权模式的“光谱”

第九章 开源之迷:让人欲罢不能的优势

01 保持开放!

提供均等的参与机会

“才配其位”

极致的技术追求

专注于解决问题

为了把事情做好而做好

技术的演化:棘轮效应与可持续发展

02 分布式协作

互联网的分布式

代码开发的协作要素

开源文化或理念的先天优势

03 保持中立

理解竞争

竞争中的企业需要合作

开源是最佳的中立选择

04 经济效益:软件是成本,而不是资产

从商业的角度思考

开源的商业逻辑

降低成本

加速上市

第十章 开源的成就:经济价值和社会意义

01 给无价开源进行价格评估

荣耀:存放在北极圈的开放源代码

如何和现实的货币接轨?

“昂贵的”开源

更多看不见的价值

02 公司:那些超过一亿美元的开源商业组织

上下游全部开源

上游开源,商业产品有所保留

上游开源,商业提供软件即服务(SaaS)

开源经济的春天已经到来

03 新造王者:开源开发者的崛起

开源让开发者不再需要获得任何人的许可

互联网教育和协作平台

云计算彻底解放出开发者的算力

开发者自发形成的标准

技术架构的决定权转移

04 核心组织:繁荣的共同体

开发者职业群体

开源(开发者)共同体

按解决问题的方式进一步细分

开源的使用者:用户作为共同体的一部分

第十一章 开源的不完美之处:让人望而却步的开源特性

“病毒”说

“免费”说

“混乱”说

“乌合之众”说

01 冲突:开源的难以预测与现代的“麦当劳化”的精准

生活中的可预测性

数据化决策

社会的麦当劳化

开源的无法预估性

02 纠结:商业模式与道德伦理

搭便车者不会从现实中消失

开源软件工程和文化的双重属性

网络世界的规制与现实的道德张力

03 艺术:走向成功的路上运气大于理性

复制一个Linux项目有没有可能?

失败率超级高的开源项目

文化的作用有多大?

自发性与外部激励

第十二章 开源:数字化世界的基石

01 基础设施软件:业务的基石

路与桥:数字基础设施背后看不见的劳动力

数据中心的运作

每一台服务器都需要运行操作系统

海量数据的存储与处理

编程语言与框架几乎全开源

容器与云原生时代的开源

02 公共物品:开源是全人类共享的财富

从GNU项目的私有性说起

开源定义的明确说明

宽松许可协议的声明

开源的非政府性质

基于互联网的产出

开源项目是否应该由政府来运营和维护?

03 数据资产:现代社会的“石油”

人类行为的思考:从记录开始

互联网每天会产生多少数据?

数据资本——精准进化

数字化会进一步加快数据的产生

数据和开源

开源的新势力:开放数据

04 机遇:数字化世界的新基建

数字化时代的基础设施

新基建

05 未来:开源作为新基建的一种有效模式

开源作为新的协作方式

“新基建”中开源占据主流的情况

“新基建”利用全球智慧的契机

第十三章 中国同步世界:开源为中国提供的机会

01 不可或缺:开源世界的中国元素

难以从代码中识别的民族性

I18N与L10N,汉语从未缺席

开源城市里的掠影

最大的开源使用地区

02 与世界的差距:过去的我们是如何错过开源的机会的

从1993年的那些软盘说起

迅速地接受开源技术成果

以开源项目为原型的畸形商业化之路

共同体的失败构建与论坛的消失

FANG与BAT的对比带给开源的启示

03 希望与悲观:当下的强劲表现和隐藏的危险

互联网的变化与格局

正在形成的割裂世界

那些积极拥抱上游的行为

可怕的孤岛是否会形成?

后记

致谢

开源之迷是2022年由人民邮电出版社出版,作者适兕。

得书感谢您对《开源之迷》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

你可能喜欢
现代软件工程:如何高效构建软件 电子书
深入探讨软件工程的原则和方法。
全程软件测试(第3版) 电子书
适读人群 :适合从事软件测试工作、软件开发管理工作、软件测试教学和培训工作,或者有志于软件项目经理的人员阅读   30位测试专家、产品经理、研发负责人、大学教授联袂推荐   知名学者十年苦心孤诣,经典软件测试着作全新改版   抽丝剥茧,解开软件测试谜团,呈现全景式软件测试体验
PaddlePaddleFluid深度学习入门与实战 电子书
本书全面讲解PaddlePaddle Fluid框架在深度学习领域的应用。
从PowerBI到PowerPlatform:低代码应用开发实战 电子书
本书是专讲Power Platform低代码开发步骤和应用的实战入门书。
软件测试实用教程 电子书
软件测试是一门涉及广泛知识的学科,软件测试行业在国内方兴未艾,测试工程师们亟须掌握各种测试技术和工具,测试团队的管理也亟须完善和提高。本书在编写过程中考虑到测试人员的需求,尤其是测试新手对各种知识的需求,提供了丰富的测试知识:首先介绍了国内外先进的测试技术和测试理念,如微软的测试方法、RUP中的测试过程、敏捷测试的理念等;其次详细讲述了几个主要测试工具的使用,如LoadRunner、AppScan