開源硬件能否像開源軟件一樣流行
當前開源軟件的流行我們有目共睹。從嵌入式平臺的 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、更新 可編程邏輯器件的使用讓零成本更新硬件成為現實。于是更新的問題并不會過多阻礙開源硬件的發展。 可編程邏輯器件使硬件性能和功能失去競爭力
前面提到,可編程邏輯器件讓開源硬件的傳播成為可能。但立于可編程邏輯器件之上的硬件還可以依靠性能和功能去打動用戶嗎?
可編程邏輯器件的原理是由存儲器內的數據決定邏輯門之間線路的通斷。所以可編程邏輯器件的結構決定了它不能承載太復雜的設計,而且功耗高,速度慢。所以,可編程邏輯器件的使用不僅限制開發者的思維空間,而且拖慢速度。對于移動設備而言,可編程邏輯器件還會降低續航能力。
開源硬件流行?不太可能
看到這里,你應該已經明白按照現有的科技和組織方式,開源硬件只會在極客當中傳播。一個可能的例外是當一個開源硬件設計足夠成熟的時候,可能有人會投資大規模制造。這樣開源硬件則可能會大眾化。