《Microduino实战》——1.2 为什么要开源

简介:

本节书摘来自华章出版社《Microduino实战》一 书中的第1章,第1.2节,作者:姚琪 杨立斌,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.2 为什么要开源

开源意味着用户可以获得软件的源代码,用户可以自由地使用、学习、改进甚至重新发布自己的软件。
在《大教堂与集市》一书中一再提到了Linus定律,即只要有足够的测试员及共同开发者,所有问题都会在很短的时间内被发现,而且能够很容易地被解决。任何人都可能在使用的过程中发现bug,并向维护团队提交一个可能存在的bug;而更多的人参与到内核的开发中,可能使得bug的修复变得更加快速。这种“众眼众手”机制,让更多的bug暴露在人们面前,并及时地反馈并修复。如今,Linux内核在全球有成千上万的贡献者,但因为有一套严格的代码控制管理的流程,使得Linux内核的代码质量很高。在Steve McConnell的写的《代码大全》中提到,Linux内核每10 000行代码中只有1~5个bug,而在一般软件行业中,平均每1000行代码中就约有30个bug。显然,Linux内核的开发受益于这种开发模式。
开源有可能带来的好处[1]如下:
(1)获得更高质量、更安全的软件代码
在开源社区中,很多开源项目都是由一些技术高手维护的,同时一些用户也会承担一部分维护工作,更多人参与进来会使得存在的bug可以被及早地发现和修补。
(2)可定制化
因为源码是开放的,用户可以免费定制开源软件,使用其中一部分开源软件代码,并根据实际情况修改或添加自己需要的功能。这样,既能享受他人的劳动成果,又能为开源软件做出自己的贡献,同时也降低了开发的成本和风险。
(3)降低开发成本
在开源项目中,用户可以免费使用高质量的软件代码,在享受其他人劳动成果的同时,也可以做出自己的贡献。
(4)标准化
开源软件一旦用户增多,会顺其自然地遵循或形成一种开放的标准。
这些只是从实用的角度来看开源所带来的优势,但开源指的不仅仅是一种开源的方法,背后更是体现了一种自由的精神,是分享和协作人类文明的一种机制。
在互联网上,开源是这样一种精神:予人玫瑰,手有余香。而往往这些“余香”才能带来更多的玫瑰。所以说,深入开源的世界,更应该抱着开放的心态,将自己的贡献汇入这无尽的江河湖海中。

相关文章
|
数据安全/隐私保护
如何将其他注册商处的域名申请转出并转入阿里云(图文教程)
随着越来越多的用户使用阿里云产品搭建自己的网站或者部署APP等项目,将其他注册商处注册的域名转入阿里云就成了很多用户的需求,毕竟将域名和云服务器等产品都放在阿里云既方便自己管理,同时又更加放心,避免出现其他小服务商“跑路”导致自己无法管理、续费域名的情况出现。下面就以图文教程的方式给大家介绍下如何将其他注册商处的域名申请转出并转入阿里云。
如何将其他注册商处的域名申请转出并转入阿里云(图文教程)
|
SQL 分布式计算 数据处理
图文详解:DataHub产品概述
阿里云流数据处理平台DataHub是流式数据(Streaming Data)的处理平台,提供对流式数据的发布 (Publish),订阅 (Subscribe)和分发功能,让您可以轻松构建基于流式数据的分析和应用。
3172 0
|
存储 弹性计算 应用服务中间件
阿里云服务器续费方法流程及续费时长折扣对照表
阿里云服务器续费很简单,在云服务器控制台即可续费。云服务器续费时长不同享受的优惠折扣也不同
1644 0
阿里云服务器续费方法流程及续费时长折扣对照表
|
缓存 网络协议 网络架构
【计算机网络】网络数据传输流程详解
上一节内容已经介绍了IP地址用来定位网络中唯一的一台主机,它是一个32位的二进制数,通常用“点分十进制”来表示即a.b.c.d表示(a,b,c,d为0~255之间的数),那么它是怎样定位一台主机呢?
【计算机网络】网络数据传输流程详解
|
机器学习/深度学习 人工智能 自然语言处理
阿里云GPU云服务器最新价格及购买和选择教程
阿里云GPU云服务器是一种适用于深度学习、科学计算、图形可视化、视频处理多种应用场景的具有超强的GPU算力的云服务器产品,目前阿里云官方对GPU云服务器提供了免费试用、首购3折起等众多优惠政策,小编来说说阿里云GPU云服务器最新价格及购买和选择教程。
2069 0
阿里云GPU云服务器最新价格及购买和选择教程
|
存储 Prometheus 监控
面试官:Zabbix 和 Prometheus 要怎么选?
新公司要上监控,面试提到了 Prometheus 是公司需要的监控解决方案,我当然是选择跟风了。 之前主要做的是 Zabbix,既然公司需要 Prometheus,那没办法,只能好好对比一番,了解下,毕竟技多不压身。 但稍稍深入一点,我就体会到了 Prometheus 的优点,总结一下这两种监控方式。
面试官:Zabbix 和 Prometheus 要怎么选?
|
消息中间件 存储 算法
考研操作系统【1.3 操作系统运行环境】
考研操作系统【1.3 操作系统运行环境】
697 0
考研操作系统【1.3 操作系统运行环境】
|
SQL 安全 数据库
HMS v1.0 appointment.php editid参数 SQL注入漏洞(CVE-2022-25491)
HMS v1.0 appointment.php editid参数 SQL注入漏洞(CVE-2022-25491)
1278 0
HMS v1.0 appointment.php editid参数 SQL注入漏洞(CVE-2022-25491)
|
网络协议 Linux 文件存储
安装并启用Active Directory域服务与DNS服务
为了使用Windows AD/ACL,首先需要在VPC内创建一个Active Directory域服务控制器。本文分步骤说明了如何在Windows Server系统中从头开始安装与配置AD域服务和相应的DNS服务
8097 1
安装并启用Active Directory域服务与DNS服务
|
自然语言处理 数据挖掘 API
Py之nltk:nltk包的简介、安装、使用方法、代码实现之详细攻略
Py之nltk:nltk包的简介、安装、使用方法、代码实现之详细攻略
Py之nltk:nltk包的简介、安装、使用方法、代码实现之详细攻略