自 Dennis Allison 在 1975 年发布它的 Tiny BASIC 以来,他倡导的开放、共享的思想得到了多数开发者的认同,这些年,软件开源取得了令人瞩目的成绩。同时,他那句 “让我们站在彼此的肩膀,而不是彼此的脚趾上。”也变成了开源软件运动的名言。

如今,基于开放、共享理念的开源软件运动正掀起一场硬件开源运动。开源硬件,指与自由和开放源码软件相同方式设计的计算机和电子硬件。开源硬件开始考虑对软件以外的领域开源。

这个词主要是用来反映自由释放详细信息的硬件设计,如电路图、材料清单和电路板布局数据,通常使用开源软件来驱动硬件。

共享逻辑设计连同可编程逻辑器件之重构,也是一种形式的开源硬件。

自 20 世纪 90 年代末,工程师们就已经想到了一些方法来将开源的概念应用于计算机和电子硬件。而主要的障碍当然是软件很容易复制并且可以被免费复制,而硬件则由实实在在的物体构成的 — 用 Chris Anderson 的话来说就是 “原子的而非比特的”。另外,硬件基本上都是受专利保护,而不是受版权保护的,而专利的获得和捍卫是很昂贵的。

与软件开源相比,硬件开源做起来要困难得多,那么,“开源硬件”将来会进入大众的视线吗?

开源软件流行的秘密

  在谈开源硬件之前,让我们先来看一下开源软件为什么会流行。普通的用户绝对不会在乎一款软件是否开放源代码,使用什么许可协议。他们唯一关注的是能不能花最少的钱用上最好的软件。那么,开源软件又是怎么做到便宜和好用的呢?

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。

目前,已经有很多成功的开放硬件项目。

1、Power.org

2004 年,IBM 创建了 Power.org 作为其 Power Everywhere 创意的一部分, 将 Power Architecture® 建成了一个开放硬件项目,具有免费许可的标准、设计和规范。IBM 在 2006 年宣布了向研究和学术机构免费开放 PowerPC® 405 core 的计划,到目前为止,有 40 多家大学参加了这个项目。

2、OpenSPARC T1

Sun Microsystems 也紧跟着在 2006 推出了 OpenSPARC T1,这是其成功的 SPARC 处理器的一次全开放实现。目前,有三个基于 Reduced Instruction Set Computer (RISC) 的 SPARC 架构的全开放实现,源代码用 Verilog HDL 编写,在 GNU Public License (GPL) 许可下发布。

3、BeagleBoard

BeagleBoard 是一个基于 Texas Instruments 的 Open Multimedia Application Platform 3 (OMAP3) system on chip (SoC) 的单板计算机,它包括一个基于 ARM 的微处理器和一个数字信号处理器。BeagleBoard 使用了与很多智能手机和上网本相同的处理引擎,使它足够强大,完全能够运行一个完整的 Linux 发行版和提供高分辨率视频。BeagleBoard 受一个规模很大的社区支持,而它的设计文档,包括生产用的印刷电路板 (PCB) 的架构草图,均可免费下载得到。而且它还孵化了几个相关的项目。

4、Arduino

Arduino 是一个面向终端用户设计的微处理器,具有易学易懂的编程模型、一个可供任何人使用的全开放设计,以及一个由文档、扩展板、派生产品和社区组成的大型生态系统。根据 O'Reilly Publishing 的 Make 杂志及每年的 Maker Faire — 喜欢向项目中添加灵活的电子特性(从闪光发光二极管到复杂的飞机导航系统)的硬件发烧友,它已经被 DIY 爱好者和玩家推崇的、发展得如火如荼的 “Maker” 运动广泛采用。

5、OpenCores.org

OpenCores.org 是一个始于 1999 年的开放硬件机构的先驱,它是开放处理器核的门户,提供了在各种开放许可下提供的诸多处理器核的设计文档,包括一个免费的 RISC 计算平台、几个微控制器、两个 SoC 以及一些算法、通信和其他的核,其中大多都是用 Verilog HDL 描述的。

开源硬件流行的基础:可编程逻辑器件(PLD)

  不像硬件,软件的的开发,传播和部署几乎可以做到零成本。 但是如果使用“一次性”的电路,开源硬件别说投入大规模使用,连开发都成问题——开发者必须忍受极其缓慢的模拟器。但是,可编程逻辑器件的存在给开源硬件带来了希望。

  简单的说来,可编程逻辑器件就是一个存储器加上一个逻辑门阵列。存储器上的数据可以控制逻辑门之间线路的通断。有的可编程逻辑器件甚至可以反复刷写,多次改变内部的电路排列。

  如此,开源硬件也变得如软件一般可以“零成本开发,零成本部署”了。

  开源软件的优点可以移植到硬件上吗

  毕竟软件和硬件是不同的。开源软件的优势在硬件上仍然存在吗?

1、价格

  一眼看来,似乎开源硬件会有价格上的优势,因为产品价格不包含可观的研发成本。但是硬件早已不是可以“动手制作”了。然而,订做小批量的产品是非常昂贵的。让爱好自由的极客统一起来订上大批量的开源硬件又是几乎不可能的事。因此唯一可行的把开源硬件设计“落实”的方法就是把电路置于可编程逻辑器件当中。

2、品质

  开源软件往往是由一个庞大的开发者社区“催熟”的。但是开源硬件的开发者还不够多。但这不是个问题,毕竟开发者是可以培养的。最终,优秀的开源硬件设计是完全有可能出现的。

3、跨平台

  很遗憾,硬件是无法“跨平台”的。举个大家熟悉的例子:即使是同为 x86 架构,Intel, AMD 和 VIA 的处理器还是差异巨大的。因为整个平台的不同,所谓的移植实施起来难度也大到几乎不可能实现。有人可能会提到全美达的 Efficeon ,但是这样的架构在可编程逻辑器件当中即使能实现也不会有满意的性能,而且还有各平台针脚定义不同的问题。

4、定制性

  开源硬件可以通过制订内部总线标准去实现扩展性。但是接下来的问题是可编程逻辑器件的容量往往会极大的限制硬件的扩展性。

5、更新

  可编程逻辑器件的使用让零成本更新硬件成为现实。于是更新的问题并不会过多阻碍开源硬件的发展。

  可编程逻辑器件使硬件性能和功能失去竞争力

  前面提到,可编程逻辑器件让开源硬件的传播成为可能。但立于可编程逻辑器件之上的硬件还可以依靠性能和功能去打动用户吗?

  可编程逻辑器件的原理是由存储器内的数据决定逻辑门之间线路的通断。所以可编程逻辑器件的结构决定了它不能承载太复杂的设计,而且功耗高,速度慢。所以,可编程逻辑器件的使用不仅限制开发者的思维空间,而且拖慢速度。对于移动设备而言,可编程逻辑器件还会降低续航能力。

  硬件开源流行?极客们的伟大理想

但我们知道,按照现有的科技和组织方式,开源硬件只会在极客当中传播。如果想要“开源硬件” 在大众中得以普及,除非开源硬件设计足够成熟,产品能够满足大众的个性化需求,而且DIY足够简单,这样开源硬件才有可能大众化。

让开源硬件达到跟开源软件一样的程度,现阶段还只是极客们的一个伟大梦想。但我深深得为这种极客精神所折服。

开源硬件:极客们的伟大理想相关推荐

  1. 360 回应安全云盘出现交易异常;苹果官网陆续限购 iPhone;GitHub 屏蔽微软工程师的开源项目 | 极客头条...

    整理 | 屠敏 头图 | CSDN 下载自东方 IC 快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦 ...

  2. 腾讯 Github 全球贡献前十;三星可折叠手机售价 1.6 万;OpenTitan 正式开源|极客头条...

    整理 | 郭芮 快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「CSDN 极客头条」,是从 CSDN 网站延伸至官方微信公众号的特别栏目,专注于一天业界事报道.风里雨里,我们将每天为朋友 ...

  3. 微博回应用户被“劫持”;途牛否认破产清算;微软宣布开源 MsQuic | 极客头条...

    整理 | 屠敏 头图 | CSDN 下载自东方 IC 快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦 ...

  4. 微信iOS版内测暗黑模式;涉嫌恶意举报,社交平台Soul运营合伙人被批捕;AWS推出基于Linux开源操作系统 | 极客头条...

    整理 | 屠敏 头图 | CSDN 下载自东方 IC 快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦 ...

  5. 周鸿祎谈华为鸿蒙系统;百度回应“用搜索引擎填高考志愿”;腾讯首次全面公开开源路线图 | 极客头条...

    快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「CSDN 极客头条」,是从 CSDN 网站延伸至官方微信公众号的特别栏目,专注于一天业界事报道.风里雨里,我们将每天为朋友们,播报最新鲜有 ...

  6. 腾讯回复微信好友上限约为 1 万个;曝苹果正开发 iPad Air 6:搭载 M2 自研芯片;百度开源 BifroMQ|极客头条

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews ...

  7. 火遍全球的开源硬件 Arduino 的成长故事

    如今在物联网领域,开源硬件 Arduino 可以说火遍全球,成为广大电子爱好者.硬件极客的首选硬件. 那么,你知道 Arduino 的起源及发展史吗? 缘起 2005年寒冷的冬天,马西莫·班兹「Mas ...

  8. 阿里百川与极客邦科技达成战略合作 Weex宣布开源

    4月21日,由InfoQ主办的QCon全球软件大会在 北京举行.超过150名国内外技术专家将为大家带来一场技术盛宴.在大会的开幕式上,极客邦科技与InfoQ中国创始人霍泰稳,和阿里巴巴资深总监,淘宝 ...

  9. ​苹果官网出现价格Bug:千元产品变百元;阿里云量子模拟平台“太章2.0”正式开源;Vant 3.0发布|极客头条...

    整理 | 郑丽媛 头图 | CSDN 下载自东方 IC 快来收听极客头条音频版吧,智能播报由出门问问「魔音工坊」提供技术支持. 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「 ...

最新文章

  1. linux挂载硬盘_一篇文章带你了解 linux 如何进行挂载
  2. 英特尔“包抄”英伟达:oneAPI对标CUDA、为《王者荣耀》云游戏提供GPU
  3. 2018-2019-1 20165226 《信息安全系统设计基础》第8周学习总结
  4. Android: Execution failed for task ':app:processDebugResources' 异常解决
  5. HTML 各种鼠标手势
  6. JavaSE基础复习总结
  7. 阅读笔记-你的灯还亮着吗?
  8. 素数与线性筛选法初级版
  9. YTU 2903: A--A Repeating Characters
  10. 案例演示按角色的form认证实现过程
  11. jsp 内置对象 登录 cookie + session
  12. Git HTTP方式克隆远程仓库到本地
  13. 从“连接”到“交互”—阿里巴巴智能对话交互实践及思考
  14. angular指令中的scope的详解
  15. 终于掌握vim的寄存器和系统剪贴板的使用了- 要安装vim-X11包
  16. unraid win10_搞定unraid直通核显给WIN10后黑屏、声卡无输出问题
  17. 北大药学院院长被指涉嫌学术造假,同组院士做出回应
  18. 清华梦的粉碎-写给清华大学的退学申请
  19. 服务器sel信息是什么意思,英特尔?服务器主板 — 如何解压和读取的服务器事件日志(SEL)...
  20. CSS 滚动条,浮动问题,图片bug

热门文章

  1. oc中特殊字符的判断方法
  2. 一篇文章能够看懂基础代码之CSS
  3. eyoucms range 范围判断标签
  4. 分布式版本控制系统 Git 教程
  5. 使用roslyn代替MSBuild完成解决方案编译
  6. 嘿嘿 刚刚进来 记录下
  7. jquery中输入验证中一个不错的效果
  8. about ajax,About 4nf.org - Arvind Gupta | Ajaxify | The Ajax Plugin
  9. python简史_命令行简史
  10. html中的两种标记,如何在html选项标记中实现两种不同的对齐?