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