当前开源软件的流行我们有目共睹。从嵌入式平台的 Android 到桌面平台的 ">Ubuntu、Firefox 和 Chromium 再到服务器平台的 LAMP,或正迅猛地吞食市场,或已打下大半江山。然而,在不为普通用户注意的角落,有一群极客在默默开发着所谓的“开源硬件”。那些“开源硬件”将来会进入大众的视线吗?
在谈开源硬件之前,让我们先来看一下开源软件为什么会流行。普通的用户绝对不会在乎一款软件是否开放源代码,使用什么许可协议。他们唯一关注的是能不能花最少的钱用上最好的软件。那么,开源软件又是怎么做到便宜和好用的呢?
1、免费 开源软件最吸引人的地方毫无疑问是它的免费。相比于 Windows 几百上千的价格,可以自由传播,自由使用的 Ubuntu 早已向前迈了一大步。对于嵌入式系统而言,开源的系统可以降低设备制造成本,实惠消费者也是不争的事实。
2、高质 优秀的开源项目往往能吸引大量的技术天才来协助开发。于是最终发行的软件在质量上也不会低于收费软件。就质量上 PK,开源的 Virtualbox 也没有比收费的 VMWare 逊色多少。
3、跨平台
作为一个Mac用户,我常常为找不到那些优秀的 Windows 平台软件的 Mac 版而苦恼。但是对于开源软件则没有这个问题。一个优秀的开源软件即使没有“小众操作系统”的版本,也会有爱好者自己编译。最终,优秀的开源软件常常是完美支持多平台的。例如大名鼎鼎的 AutoCAD 不原生支持 Mac,但是同样是 CAD 软件,开源的 Archimedes 却同时支持 Windows 和 Mac。所以如果我常常要在两种系统间来回切换,我显然会选择 Archimedes 来减少麻烦。
4、定制性强 一个优秀的开源软件周围常常会有数不胜数的插件。于是软件也就会可以通过安装插件来迎合每个人的需求——如果不理解,去看看 Firefox 那恐怖的插件库吧。 5、问题修复及时 是软件就会出问题,这是已经被无数次证实的真理。而开源软件总是可以依靠群众的智慧,在第一时间修复问题。根据Ed bott的博客文章,Ubuntu 和 Fedora 的更新发布频率都远高于 Windows。 什么是开源硬件
开源硬件,指与自由和开放源码软件相同方式设计的计算机和电子硬件。开源硬件开始考虑对软件以外的领域开源,是开源文化的一部分。
这个词主要是用来反映自由释放详细信息的硬件设计,如电路图、材料清单和电路板布局数据,通常使用开源软件来驱动硬件。
共享逻辑设计连同可编程逻辑器件之重构,也是一种形式的开源硬件。
一些开源硬件项目:
* ECB AT91 – 基于 Atmel AT91RM9200 ARM9 信息处理器 (180 MHz)的单板计算机
* ECB ATmega32/644 – 基于 Atmel ATmega32/644 (20 MHz) 单板计算机,网络服务器性能和少于 100mA 的电源消耗
* Simputer – 针对发展中国家的掌上电脑
* Open Graphics Project 目的是设计一个开放的架构和标准的显卡。
* OpenSPARC 是一个 Sun Microsystems 贡献了 UltraSPARC T1 和 UltraSPARC T2 multicore 处理器设计之开放源码之处理器项目 。
* OpenRISC 是一个开发者工作产生非常高性能的开源 RISC 中央处理器 。
* LEON 是一个 ESA 创建的开源 SPARC-like 的开源 32 位中央处理器。是欧洲太空业标准中央处理器。
* OpenCores 是一个基金会,试图形成一个设计师社区,以支持开源核心(逻辑设计)之处理器、外围设备和其他设备。 OpenCores 维持一个叫做 Wishbone 的开放源码之芯片上互连总线规范要求 。(via 维基百科)
简而言之,开源软件开放源代码,开源硬件开放电路设计。
开源硬件流行的基础:可编程逻辑器件(PLD)
不像硬件,软件的的开发,传播和部署几乎可以做到零成本。 但是如果使用“一次性”的电路,开源硬件别说投入大规模使用,连开发都成问题——开发者必须忍受极其缓慢的模拟器。但是,可编程逻辑器件的存在给开源硬件带来了希望。
简单的说来,可编程逻辑器件就是一个存储器加上一个逻辑门阵列。存储器上的数据可以控制逻辑门之间线路的通断。有的可编程逻辑器件甚至可以反复刷写,多次改变内部的电路排列。
如此,开源硬件也变得如软件一般可以“零成本开发,零成本部署”了。
开源软件的优点可以移植到硬件上吗
毕竟软件和硬件是不同的。开源软件的优势在硬件上仍然存在吗?
1、价格 一眼看来,似乎开源硬件会有价格上的优势,因为产品价格不包含可观的研发成本。但是硬件早已不是可以“动手制作”了。然而,订做小批量的产品是非常昂贵的。让爱好自由的极客统一起来订上大批量的开源硬件又是几乎不可能的事。因此唯一可行的把开源硬件设计“落实”的方法就是把电路置于可编程逻辑器件当中。
2、品质 开源软件往往是由一个庞大的开发者社区“催熟”的。但是开源硬件的开发者还不够多。但这不是个问题,毕竟开发者是可以培养的。最终,优秀的开源硬件设计是完全有可能出现的。
3、跨平台
很遗憾,硬件是无法“跨平台”的。举个大家熟悉的例子:即使是同为 x86 架构,Intel, AMD 和 VIA 的处理器还是差异巨大的。因为整个平台的不同,所谓的移植实施起来难度也大到几乎不可能实现。有人可能会提到全美达的 Efficeon ,但是这样的架构在可编程逻辑器件当中即使能实现也不会有满意的性能,而且还有各平台针脚定义不同的问题。
4、定制性 开源硬件可以通过制订内部总线标准去实现扩展性。但是接下来的问题是可编程逻辑器件的容量往往会极大的限制硬件的扩展性。
5、更新 可编程逻辑器件的使用让零成本更新硬件成为现实。于是更新的问题并不会过多阻碍开源硬件的发展。 可编程逻辑器件使硬件性能和功能失去竞争力
前面提到,可编程逻辑器件让开源硬件的传播成为可能。但立于可编程逻辑器件之上的硬件还可以依靠性能和功能去打动用户吗?
可编程逻辑器件的原理是由存储器内的数据决定逻辑门之间线路的通断。所以可编程逻辑器件的结构决定了它不能承载太复杂的设计,而且功耗高,速度慢。所以,可编程逻辑器件的使用不仅限制开发者的思维空间,而且拖慢速度。对于移动设备而言,可编程逻辑器件还会降低续航能力。
开源硬件流行?不太可能
看到这里,你应该已经明白按照现有的科技和组织方式,开源硬件只会在极客当中传播。一个可能的例外是当一个开源硬件设计足够成熟的时候,可能有人会投资大规模制造。这样开源硬件则可能会大众化。