《Microduino实战》——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)标准化
开源软件一旦用户增多,会顺其自然地遵循或形成一种开放的标准。
这些只是从实用的角度来看开源所带来的优势,但开源指的不仅仅是一种开源的方法,背后更是体现了一种自由的精神,是分享和协作人类文明的一种机制。
在互联网上,开源是这样一种精神:予人玫瑰,手有余香。而往往这些“余香”才能带来更多的玫瑰。所以说,深入开源的世界,更应该抱着开放的心态,将自己的贡献汇入这无尽的江河湖海中。

时间: 2024-10-08 05:02:59

《Microduino实战》——1.2 为什么要开源的相关文章

《Microduino实战》——1.4 开源硬件

1.4 开源硬件 开源硬件是对开源软件领域的一种扩展,指的是通过与自由及开放源代码软件相同的方式设计的计算机和电子硬件.与开源软件不同的是,开源硬件最终会涉及物理实体的生产与制造,所以是自由的,但并不免费.这里的自由是指发布硬件设计的详细信息,如电路图.材料列表和电路板布局数据,而且通常会使用开源软件来驱动硬件. 开源的IP核是一种类型的开源硬件.IP核是指在数字电路领域中描述硬件设计功能的可重用模块.比如,OpenSPARC是SUN公司一款开源的处理器设计,使用者可以用来在FPGA等可编程芯片

《Microduino实战》——1.3 开源软件

1.3 开源软件 在维基百科上,开源软件的定义是:一种源代码可以任意获取的计算机软件,这种软件的版权持有人在软件协议的规定之下保留一部分权利,并允许用户学习.修改.增进提高这款软件的质量.开源协议通常符合开放源代码的定义的要求,一些开源软件被发布到公共领域,开源软件常被公开和合作地开发.我们常见的开源软件有Linux.Ubuntu.Eclipse.Open Office.Emule等,后面要使用到的Arduino IDE也是一款开源软件.但考虑到本书的目的,对开源软件不再多做介绍.

《Microduino实战》——导读

前 言 自2005年Arduino横空出世以来,开源硬件就像Linux一样,很快风靡全球.Arduino最初只是为学生设计的一款既便宜又易用的微控制器板,但如今在"创客运动"的大背景下取得了巨大的成功. Arduino使用的是Atmel VAR 8位微控制器,是一个软硬件开源的平台.不仅开放软件的源代码,而且硬件电路设计图同样可以从网络上下载.任何用户都可以利用这些开放的资源,再根据自己的需要进行修改和定制,发布适合自己的软件工具和硬件设计.此外,它不像传统的微控制器程序,只有有一定电

《Microduino实战》——1.5 如何选择开源硬件

1.5 如何选择开源硬件 开源硬件中有很多选择的.在选择时,可以通过以下的考虑点进行综合评估,选择适合自己的一款开源硬件,这也可以说是开始某项工程必须要完成的工作. 易学性Arduino和Microduino不需要太多的硬件知识和编程的专业知识就能够轻松上手,不会有太多的困难.而树莓派.pcDuino都需要安装操作系统,如果没有一定Linux等嵌入式基础知识的话,开发起来会有很多困难. 功能.性能.尺寸的要求Arduino和Microduino有良好的接口扩展性,如果要接入外围的控制器.传感器,

《Microduino实战》——2.1 Microduino系列产品

2.1 Microduino系列产品 Microduino 是尺寸最小的开源电子积木,采用了Microduino独有的 U 型 27 Pin 接口规范(Upin-27),长25.4mm,宽27.94mm,如一枚1元硬币的大小.多个Microduino模块通过Upin-27堆叠在一起,可搭建一个无线物联网的小系统,如 图2-1所示.整个硬件体积很小,非常容易安装,而且不需要使用额外跳线,使得电路搭建过程很方便,不会因连线错误而出现短路的现象. 图2-1 无线物联网模块 目前,Microduino推

《Microduino实战》——2.2 兼容Arduino系列产品

2.2 兼容Arduino系列产品 兼容Arduino的系列产品可以分为Microduino AVR核心系列模块.扩展模块以及扩展板,其接口标准都采用Upin-27规范标准,如图2-2所示.扩展模块包括以太网接口.USB接口的有线通信模块,支持RF.蓝牙.NFC.Zigbee.WiFi和GPRS/GSM无线通信模块,支持三轴陀螺仪.加速度传感器.GPS的传感器模块,支持OLED.TFT的显示模块,以及电机驱动模块等. 2.2.1 Microduino AVR核心系列模块 Microduino A

《Microduino实战》——2.7 总结

2.7 总结 本章首先介绍了Microduino的系列产品,重点围绕着兼容Arduino的核心模块以及对应的扩展模块介绍,最后列出了几个开源项目,让读者从整体上了解Microduino的系列产品以及适用的范围.

《Microduino实战》——3.1 准备开发环境

3.1 准备开发环境 获得Arduino IDE有以下两种途径: 从Arduino官网[1]上下载安装后的Arduino IDE尚且不能识别Microduino的核心模块,要手动修改.首先从Microduino下载相关的硬件和软件支持包,然后存放到Arduino相应的目录下. 从Microduino获得定制的Arduino IDE[2]定制的Arduino IDE能够支持Microduino核心模块的编译和下载. 这里所说的定制的Arduino IDE,指的是将支持Microduino的硬件和软

《Microduino实战》——2.4 Microduino WRT系列

2.4 Microduino WRT系列 MicroWRT核心 MicroWRT[3]是Makermodule为OpenWRT设计的一款全新开发板.其核心芯片采用联发科的MT7620A SoC芯片,内嵌的是MIPS24KEc处理器,支持DDR2内存,配备64/128M Flash,支持SD.PCI-E.I2S,能够实现NAS.网络摄像头.机器人.OpenCV. MicroWRT是专门为OpenWRT设计的.OpenWRT是一个高度模块化.自动化的嵌入式Linux系统,拥有强大的网络组建和扩展性,