當(dāng)前開源軟件的流行我們有目共睹。從嵌入式平臺的 Android 到桌面平臺的 Ubuntu、Firefox 和 Chromium 再到服務(wù)器平臺的 LAMP,或正迅猛地吞食市場,或已打下大半江山。然而,在不為普通用戶注意的角落,有一群極客在默默開發(fā)著所謂的“開源硬件”。那些“開源硬件”將來會進(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。
什么是開源硬件
開源硬件,指與自由和開放源碼軟件相同方式設(shè)計的計算機(jī)和電子硬件。開源硬件開始考慮對軟件以外的領(lǐng)域開源,是開源文化的一部分。
這個詞主要是用來反映自由釋放詳細(xì)信息的硬件設(shè)計,如電路圖、材料清單和電路板布局?jǐn)?shù)據(jù),通常使用開源軟件來驅(qū)動硬件。
共享邏輯設(shè)計連同可編程邏輯器件之重構(gòu),也是一種形式的開源硬件。
簡而言之,開源軟件開放源代碼,開源硬件開放電路設(shè)計。
開源硬件流行的基礎(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)擴(kuò)展性。但是接下來的問題是可編程邏輯器件的容量往往會極大的限制硬件的擴(kuò)展性。
5、更新
可編程邏輯器件的使用讓零成本更新硬件成為現(xiàn)實。于是更新的問題并不會過多阻礙開源硬件的發(fā)展。 可編程邏輯器件使硬件性能和功能失去競爭力
前面提到,可編程邏輯器件讓開源硬件的傳播成為可能。但立于可編程邏輯器件之上的硬件還可以依靠性能和功能去打動用戶嗎?
可編程邏輯器件的原理是由存儲器內(nèi)的數(shù)據(jù)決定邏輯門之間線路的通斷。所以可編程邏輯器件的結(jié)構(gòu)決定了它不能承載太復(fù)雜的設(shè)計,而且功耗高,速度慢。所以,可編程邏輯器件的使用不僅限制開發(fā)者的思維空間,而且拖慢速度。對于移動設(shè)備而言,可編程邏輯器件還會降低續(xù)航能力。