電腦效能應用與安全研究室 Performance, Applications and Security Lab


我們的研究範圍很廣,從嵌入式系統、手機應用、一直到雲端計算、商務應用、資訊安全都有做。
我們的合作研究夥伴很多,包括聯發科、IBM、中研院、資策會,還有和台大、清大、交大的教授合組研發團隊
,包括高階應用處理器架構研究、虛擬化技術、異質計算、系統軟體等重要技術的研究與創新,我們很關切台灣人才與產業的未來。

2015年11月17日 星期二

開源(open source)的大趨勢

今天我們「系統研究專題」課堂上談了開源(open source)的大趨勢。除了開源程式碼已經成為主流之外,資料、硬體也逐漸搭上開源的列車,原因是甚麼呢?

難道開放和分享,是人類的天性嗎? 不要鬧了,果真如此,那我們為什麼有很多東西不願跟他人分享? 為什麼有私人財產、私人企業? 為什麼文章要有著作權,發明要有專利、智財權?

如果有機會請有錢的人、企業家,做點「拔一毛以利天下」的事,看看他們做不做? 我不是批判他們,而是說「開源」這件事,並不是人類的天性,而是基於利益考量下的產物。

坦白說,我喜歡開源的精神和支持開源的做法,但我一直覺得Richard Stallman的Free Software的理念陳義過高、無法落實。就我的觀察,開源多多少少有其利益考量,並不見得是義舉。

首先,貢獻開源程式碼、資料、硬體設計者,以下簡稱「開源者」,往往可以因此展現能力、獲得好名聲、交到好朋友,不必要到處請託,也有機會讓大人物看到長才,一步登天。開源者的知識和能力,對於想使用開放資源的族群和公司,是寶貴的資產。

其次,開放的資源,往往只是起點,好的開源計畫會吸引好人才一起進來開發,讓好的更好。好計畫加上好團隊,再加上有眼光的企業家,大概就成功了一大半。這是為什麼有些開源計畫能夠快速創業、成功吸引投資的原因。

再者,基於開源的產品,比較容易獲得客戶和使用者的支持和信任,所以推廣容易。雖說資源本身是免費,但使用者的支持和信任,以及衍生而出的回饋與品牌形象是無價的,而這些無價的東西往往可以用某些方式創造出價值。

最後,擁有大量使用者的開源技術,由於使用者的回饋和幫助修正,使得開源技術的穩定度和成熟度隨著時間而增加。反過來說,「閉源」(closed source)技術的維護與更新,需要持續投注人力,需要在自家訓練新人,技術可能因為人才流失而無法維護,不穩定的因素較高。

會在課堂上講這些,是因為學生懵懵懂懂,而業界對於開源的觀念也有其侷限性。我被業者嗆過很多次,說技術如果開源,東西都被看光光,怎麼賺錢?

近年來,靠著「閉源」技術賺錢的公司,逐漸踢到了鐵板。有些公司靠著老字號金字招牌,還可以哄騙那些不懂技術的客戶。然而,諸如「買IBM的伺服器就不怕被老闆罵」的思維已逐漸淡化,連IBM都把低階伺服器部門賣給聯想,微軟開始與開源的Linux合作,要不是踢到鐵板,怎會如此?

因為敵不過開源技術的大趨勢,廠商踢到鐵板,只是早晚的問題而已。當然,專利和智財權,是開放資源的敵人,但只要能用開放資源賺錢,負擔合理的專利、智財費用,也還過得去。

相較之下,如果一昧保護,自我設限,可能會搞到產品沒有人理會,技術一文不值。有一些開源技術,來自於失去競爭力的產品,但這類技術本身也日落西山,為時已晚,沒甚麼看頭。

我在課堂上帶著學生看了一些近期的開源計畫的案例,來佐證以上所述。這些案例,包括:

1. Google的Open Source Projects網頁上列出的17個計劃簡介。(https://developers.google.com/open-source/projects)

Google號稱公開了20,000,000行程式碼,900個開源碼計畫,而網頁所列的這17個代表性計畫,都是我所謂「廣義的開源系統軟體」,包括作業系統、程式庫、引擎、程式框架、程式語言編譯器、開發工具,都是提供給應用開發者使用的軟體。由此可見開源系統軟體的重要性。

2. 2014年度最佳十大新鮮開源碼計畫("The top 10 rookie open source projects", http://www.infoworld.com/article/2875439/open-source-software/the-top-10-rookie-open-source-projects.html)

不是只有大公司才能做出好的開源計畫,這裡由媒體選出的十大新人獎,當然不見得一定是最佳的,不過很有參考價值。同學們可以看看程式高手怎麼樣從有系統地解決自己身邊的問題開始,藉由分享和交流成果,獲得贊助,逐漸壯大成為世界級的計畫,有的也成為商業模式。

3. RISC-V所提出的開放式的處理機架構標準 (http://riscv.org/)

Intel和ARM這兩家公司,藉由他們所定義的處理機架構(instruction set architecture),來占據處理機的市場。但這些二十多年前就訂出來的架構,究竟還能風光到幾時?

如果今天有個拋棄一切舊架構包袱、砍掉重練的開放式處理機架構標準,而且有個高品質的社群提供開源的硬體碼和系統軟體,在效能上能夠與ARM和x86並駕齊驅,可以讓我們整個系統的軟硬體都是開源的,不只能夠節省成本,而且在系統設計上將會有無比的彈性以及軟硬體相互優化的空間。

好了,短短三節課,我們沒辦法講太多細節,只能讓各位瞭解整個大趨勢,但我們已經帶各位入門參觀了。這個大觀園裡,有數不清的好東西,還有很多好人,不要因為門票是免費的,就以為沒有看頭,就不進來玩。

我們下周會挑個重點領域來多講些技術,在那之前,各位不妨抽空自己探索一番。如果能好好花時間去看懂以上提到的計畫案例,那應該會有不少收穫。

沒有留言:

張貼留言