自 Dennis Allison 在 1975 年發(fā)布它的 Tiny BASIC 以來,他倡導(dǎo)的開放、共享的思想得到了多數(shù)開發(fā)者的認(rèn)同,這些年,軟件開源取得了令人矚目的成績。同時,他那句 “讓我們站在彼此的肩膀,而不是彼此的腳趾上。”也變成了開源軟件運動的名言。
如今,基于開放、共享理念的開源軟件運動正掀起一場硬件開源運動。開源硬件,指與自由和開放源碼軟件相同方式設(shè)計的計算機和電子硬件。開源硬件開始考慮對軟件以外的領(lǐng)域開源。
這個詞主要是用來反映自由釋放詳細(xì)信息的硬件設(shè)計,如電路圖、材料清單和電路板布局?jǐn)?shù)據(jù),通常使用開源軟件來驅(qū)動硬件。
共享邏輯設(shè)計連同可編程邏輯器件之重構(gòu),也是一種形式的開源硬件。
自 20 世紀(jì) 90 年代末,工程師們就已經(jīng)想到了一些方法來將開源的概念應(yīng)用于計算機和電子硬件。而主要的障礙當(dāng)然是軟件很容易復(fù)制并且可以被免費復(fù)制,而硬件則由實實在在的物體構(gòu)成的 — 用 Chris Anderson 的話來說就是 “原子的而非比特的”。另外,硬件基本上都是受專利保護(hù),而不是受版權(quán)保護(hù)的,而專利的獲得和捍衛(wèi)是很昂貴的。
與軟件開源相比,硬件開源做起來要困難得多,那么,“開源硬件”將來會進(jìn)入大眾的視線嗎?
開源軟件流行的秘密
在談開源硬件之前,讓我們先來看一下開源軟件為什么會流行。普通的用戶絕對不會在乎一款軟件是否開放源代碼,使用什么許可協(xié)議。他們唯一關(guān)注的是能不能花最少的錢用上最好的軟件。那么,開源軟件又是怎么做到便宜和好用的呢?
1、免費
開源軟件最吸引人的地方毫無疑問是它的免費。相比于 Windows 幾百上千的價格,可以自由傳播,自由使用的 Ubuntu 早已向前邁了一大步。對于嵌入式系統(tǒng)而言,開源的系統(tǒng)可以降低設(shè)備制造成本,實惠消費者也是不爭的事實。
2、高質(zhì)
優(yōu)秀的開源項目往往能吸引大量的技術(shù)天才來協(xié)助開發(fā)。于是最終發(fā)行的軟件在質(zhì)量上也不會低于收費軟件。就質(zhì)量上 PK,開源的 Virtualbox 也沒有比收費的 VMWare 遜色多少。
3、跨平臺
作為一個Mac用戶,我常常為找不到那些優(yōu)秀的 Windows 平臺軟件的 Mac 版而苦惱。但是對于開源軟件則沒有這個問題。一個優(yōu)秀的開源軟件即使沒有“小眾操作系統(tǒng)”的版本,也會有愛好者自己編譯。最終,優(yōu)秀的開源軟件常常是完美支持多平臺的。例如大名鼎鼎的 AutoCAD 不原生支持 Mac,但是同樣是 CAD 軟件,開源的 Archimedes 卻同時支持 Windows 和 Mac。所以如果我常常要在兩種系統(tǒng)間來回切換,我顯然會選擇 Archimedes 來減少麻煩。
4、定制性強
一個優(yōu)秀的開源軟件周圍常常會有數(shù)不勝數(shù)的插件。于是軟件也就會可以通過安裝插件來迎合每個人的需求——如果不理解,去看看 Firefox 那恐怖的插件庫吧。
5、問題修復(fù)及時
是軟件就會出問題,這是已經(jīng)被無數(shù)次證實的真理。而開源軟件總是可以依靠群眾的智慧,在第一時間修復(fù)問題。根據(jù)Ed bott的博客文章,Ubuntu 和 Fedora 的更新發(fā)布頻率都遠(yuǎn)高于 Windows。
目前,已經(jīng)有很多成功的開放硬件項目。
1、Power.org
2004 年,IBM 創(chuàng)建了 Power.org 作為其 Power Everywhere 創(chuàng)意的一部分, 將 Power Architecture? 建成了一個開放硬件項目,具有免費許可的標(biāo)準(zhǔn)、設(shè)計和規(guī)范。IBM 在 2006 年宣布了向研究和學(xué)術(shù)機構(gòu)免費開放 PowerPC? 405 core 的計劃,到目前為止,有 40 多家大學(xué)參加了這個項目。
2、OpenSPARC T1
Sun Microsystems 也緊跟著在 2006 推出了 OpenSPARC T1,這是其成功的 SPARC 處理器的一次全開放實現(xiàn)。目前,有三個基于 Reduced Instruction Set Computer (RISC) 的 SPARC 架構(gòu)的全開放實現(xiàn),源代碼用 Verilog HDL 編寫,在 GNU Public License (GPL) 許可下發(fā)布。
3、BeagleBoard
BeagleBoard 是一個基于Texas Instruments 的 Open Multimedia Application Platform 3 (OMAP3) system on chip (SoC) 的單板計算機,它包括一個基于ARM 的微處理器和一個數(shù)字信號處理器。BeagleBoard 使用了與很多智能手機和上網(wǎng)本相同的處理引擎,使它足夠強大,完全能夠運行一個完整的 Linux 發(fā)行版和提供高分辨率視頻。BeagleBoard 受一個規(guī)模很大的社區(qū)支持,而它的設(shè)計文檔,包括生產(chǎn)用的印刷電路板 (PCB) 的架構(gòu)草圖,均可免費下載得到。而且它還孵化了幾個相關(guān)的項目。
4、Arduino
Arduino 是一個面向終端用戶設(shè)計的微處理器,具有易學(xué)易懂的編程模型、一個可供任何人使用的全開放設(shè)計,以及一個由文檔、擴展板、派生產(chǎn)品和社區(qū)組成的大型生態(tài)系統(tǒng)。根據(jù) O'Reilly Publishing 的 Make 雜志及每年的 Maker Faire — 喜歡向項目中添加靈活的電子特性(從閃光發(fā)光二極管到復(fù)雜的飛機導(dǎo)航系統(tǒng))的硬件發(fā)燒友,它已經(jīng)被 DIY 愛好者和玩家推崇的、發(fā)展得如火如荼的 “Maker” 運動廣泛采用。
[!--empirenews.page--]
5、OpenCores.org
OpenCores.org 是一個始于1999 年的開放硬件機構(gòu)的先驅(qū),它是開放處理器核的門戶,提供了在各種開放許可下提供的諸多處理器核的設(shè)計文檔,包括一個免費的 RISC 計算平臺、幾個微控制器、兩個 SoC 以及一些算法、通信和其他的核,其中大多都是用 Verilog HDL 描述的。
開源硬件流行的基礎(chǔ):可編程邏輯器件(PLD)
不像硬件,軟件的的開發(fā),傳播和部署幾乎可以做到零成本。但是如果使用“一次性”的電路,開源硬件別說投入大規(guī)模使用,連開發(fā)都成問題——開發(fā)者必須忍受極其緩慢的模擬器。但是,可編程邏輯器件的存在給開源硬件帶來了希望。
簡單的說來,可編程邏輯器件就是一個存儲器加上一個邏輯門陣列。存儲器上的數(shù)據(jù)可以控制邏輯門之間線路的通斷。有的可編程邏輯器件甚至可以反復(fù)刷寫,多次改變內(nèi)部的電路排列。
如此,開源硬件也變得如軟件一般可以“零成本開發(fā),零成本部署”了。
開源軟件的優(yōu)點可以移植到硬件上嗎
畢竟軟件和硬件是不同的。開源軟件的優(yōu)勢在硬件上仍然存在嗎?
1、價格
一眼看來,似乎開源硬件會有價格上的優(yōu)勢,因為產(chǎn)品價格不包含可觀的研發(fā)成本。但是硬件早已不是可以“動手制作”了。然而,訂做小批量的產(chǎn)品是非常昂貴的。讓愛好自由的極客統(tǒng)一起來訂上大批量的開源硬件又是幾乎不可能的事。因此唯一可行的把開源硬件設(shè)計“落實”的方法就是把電路置于可編程邏輯器件當(dāng)中。
2、品質(zhì)
開源軟件往往是由一個龐大的開發(fā)者社區(qū)“催熟”的。但是開源硬件的開發(fā)者還不夠多。但這不是個問題,畢竟開發(fā)者是可以培養(yǎng)的。最終,優(yōu)秀的開源硬件設(shè)計是完全有可能出現(xiàn)的。
3、跨平臺
很遺憾,硬件是無法“跨平臺”的。舉個大家熟悉的例子:即使是同為 x86 架構(gòu),Intel, AMD 和 VIA 的處理器還是差異巨大的。因為整個平臺的不同,所謂的移植實施起來難度也大到幾乎不可能實現(xiàn)。有人可能會提到全美達(dá)的 Efficeon ,但是這樣的架構(gòu)在可編程邏輯器件當(dāng)中即使能實現(xiàn)也不會有滿意的性能,而且還有各平臺針腳定義不同的問題。
4、定制性
開源硬件可以通過制訂內(nèi)部總線標(biāo)準(zhǔn)去實現(xiàn)擴展性。但是接下來的問題是可編程邏輯器件的容量往往會極大的限制硬件的擴展性。
5、更新
可編程邏輯器件的使用讓零成本更新硬件成為現(xiàn)實。于是更新的問題并不會過多阻礙開源硬件的發(fā)展。
可編程邏輯器件使硬件性能和功能失去競爭力
前面提到,可編程邏輯器件讓開源硬件的傳播成為可能。但立于可編程邏輯器件之上的硬件還可以依靠性能和功能去打動用戶嗎?
可編程邏輯器件的原理是由存儲器內(nèi)的數(shù)據(jù)決定邏輯門之間線路的通斷。所以可編程邏輯器件的結(jié)構(gòu)決定了它不能承載太復(fù)雜的設(shè)計,而且功耗高,速度慢。所以,可編程邏輯器件的使用不僅限制開發(fā)者的思維空間,而且拖慢速度。對于移動設(shè)備而言,可編程邏輯器件還會降低續(xù)航能力。
硬件開源流行?極客們的偉大理想
但我們知道,按照現(xiàn)有的科技和組織方式,開源硬件只會在極客當(dāng)中傳播。如果想要“開源硬件” 在大眾中得以普及,除非開源硬件設(shè)計足夠成熟,產(chǎn)品能夠滿足大眾的個性化需求,而且DIY足夠簡單,這樣開源硬件才有可能大眾化。
讓開源硬件達(dá)到跟開源軟件一樣的程度,現(xiàn)階段還只是極客們的一個偉大夢想。但我深深得為這種極客精神所折服。