連接Google與蘋果的最後一條線:LLVM 低階虛擬機器

連接Google與蘋果的最後一條線:LLVM 低階虛擬機器

Photo: Lars Allebrink/Flickr

施密特(Eric Schmidt)離開蘋果董事會已經四年了,而該公司和Google的關係也越來越僵,賈伯斯(Steve Jobs)甚至還曾經火上添油,在公司會議上貶低Google,導致兩大手機系統關係降到冰點,2012年時,蘋果決定移除iPhone上的內建Maps 和 YouTube服務。

戰火延燒至今,兩方的交集消失殆盡,但神奇的是,還有一條線依舊連著,那就是「LLVM」。

改變趨勢的LLVM

LLVM是什麼?光看全名「低階虛擬機器」(low level virtual machine),或許仍讓人摸不著頭緒,然而,這項發明卻已成了業界不可或缺的技術。

簡單來說,這是個寫程式的平台,創始者為伊利諾大學香檳校區研究人員。但LLVM稀奇之處,其實在於執行便利、效率奇佳,無怪乎Google以之設計Android 和搜尋引擎、Gmail、Docs等線上服務,而蘋果則以此設計Mac OS X與iOS了。

今年六月,LLVM獲ACM軟體系統獎殊榮,但平台的潛力可不僅止於此。能預見的是,有了LLVM,設計網路應用程式的模式將會轉向,往後,程式便能在機器或處理器間自由移轉。開發團隊成員艾維(Vikram Adve)教授表示:「只要業界建立起規範,程式不管怎麼移轉,都無往不利。」

適用各種機器語言的強大平台

2000年時,萊特(Chris Lather)先有了開發點子,在與艾維教授討論過後,進而作出LLVM雛形。首批模型即應用了Java的即時編譯(just-in-time)概念,開發人員不須編譯出程式,只要將程式置入各式硬體,依附於硬體上的LLVM平台便能代為編譯,並順手執行編譯後的程式。

顯然,LLVM最厲害的地方是能適用機器語言,有正是全名裡頭「低階」一詞的由來。不到五年光景,該平台立刻成為開發利器,功能更是越來越強大,轉型成開發人員工具包,讓每個人都能開發符合個人需求的程式,且不限何種程式語言。

此外,LLVM也參與了開放原始碼計畫,換言之,用戶能將線上資料庫中的程式複製起來,稍作修改後,接著化為己用,完全不須取得授權。

風靡兩大科技巨擘

由於LLVM名聞遐邇,蘋果便於2005年力邀萊特坐鎮公司開發部門,替日後的OS X及iOS系列導航。不只蘋果,許多公司紛紛跟進這波LLVM潮流,Google當然無法自外其中。

Google可謂LLVM重度使用者,從對外軟體服務,一直到對內程式除錯,無不仰賴這項工具,雖然途中曾遭逢程式或許太過統一的困境,但透過LLVM建構同步更新功能後,問題遂迎刃而解。

除此之外,Google甚至打算開發名為Portable Native Client的外掛軟體,一體適用所有瀏覽器。在艾維教授看來,既有的JavaScript語言或許已經夠用了,但若能將其延伸至行動裝置平台,應該大有可為。

無論如何,蘋果和Google都成了LLVM的忠實客戶,但艾維教授又有別的看法:「照以往記錄看來,這兩家公司要開發出新的平台,也不是沒有可能。」

 

推薦閱讀:

Google服務品質稱霸全球的秘密武器──快取伺服器

蘋果光芒不再,執行長庫克卻老神在在?今年九月他的底牌即將揭曉!

為何微軟現在投入智慧型手錶開發不是個好主意?