伍健



不久前華為正式發布鴻蒙系統2.0,并且同時公布了在上百款華為設備上升級鴻蒙的具體時間線,“鴻蒙”這一脫胎于神話的詞語再次成為人們關注的焦點?為何網上有人發言攻擊鴻蒙是“套殼版”的安卓?而安卓作為一個開源項目誕生的系統,又為何會對國產硬件廠商產生威脅?要弄清楚這個問題,其實說難也不難。
20世紀70年代初,偉大的UNIX系統問世了。在它之前,小型計算機和微型計算機上的系統在批處理作業時,響應速度已經遠遠無法滿足彼時用戶的需求了。于是有人提出了分時系統的概念。顧名思義,分時系統是將CPU的運行時間劃分為若干個小片段,多個用戶可以利用分時段這種形式,輪流使用CPU的算力,實現系統從單一用戶/單一任務的交互形式,進化為多用戶/多任務的交互形式。由于分時系統的時間片段切割得非常短小,因此用戶實際上是感受不到自己在排隊等待的。而UNIX系統也從匯編語言版本,過渡到了C語言版本UNIX VersionV后,具備了廣泛應用的可能性。
發現了UNIX十分好用的IBM、惠普在內的各家商業公司,開始著手開發屬于自家版本的UNIX系統。但各家公司開發的UNIX用于商業目的都是閉源的,也就是并不會輕易公布源代碼。為了方便UNIX編程教學,荷蘭阿姆斯特丹大學的教授Andrew Tanenbaum自己編寫了一套UNIX系統,命名為Minix,也就是迷你版本UNIX的意思。基于微內核架構的Minix并不包含任何AT&T源代碼,隨后Andrew決定,將它全部開源給大學教學工作,并在2000年改為了BSD授權使用的形式,但同樣保持了開源使用。當然開源的好處就是會有更多年輕人加入對這套系統的開發,隨后還在上大二的Linus 基于Minix寫出了Linux系統也就是安卓系統的內核。而我們熟悉的蘋果iOS系統同樣基于Minix的FreeBSD版本。因此你也發現了,開源的安卓也好,閉源的蘋果也罷,他們其實都來自同一個祖先——UNIX。所以如果非要糾結所謂的“套殼”,UNIX老祖吐個唾沫星子,就能懟至你閉嘴。
法國作家利爾亞當曾在他的科幻小說《未來夏娃(Lève future)》中,為故事中外形像人的機器人起名Android。安卓Android系統最早并不是谷歌公司研發出來的。先后在蘋果和微軟工作過的安迪·魯賓離職后和朋友一起研發出了一款名為Sidekick的掌中設備,并成立了兩家開發智能手機操作系統的公司Danger和Android。隨后Danger以5億美元的價格被微軟收購,而Android則賣給了谷歌,并且安迪本人成了谷歌的高級副總裁,繼續負責Android項目的開發。兩年后,也就是2007年,谷歌正式發布了安卓Android操作系統,并且宣布成立“開放手持設備聯盟(Open Handset Alliance)”,邀請手機制造商、軟件開發商、電信運營商和芯片制造商共同開發安卓系統。也就是從那時起,谷歌以Apache許可授權的方式發布了Android的源代碼(Apache許可是Apache軟件基金會發布的一個自由軟件許可證,目前安卓開源項目使用的是最新的Apache 許可授權2.0版本)。而這個“安卓開發源代碼項目(Android Open-Source Project)”也就是AOSP。而包括華為在內的眾多廠商,本身也是這個開源項目的重度參與者。
我們日常手機中預裝的安卓系統,其實這個操作系統已經進化了很多代,就像所有的老牌操作系統一樣,它的組成很復雜。簡單來說,它包含了開源代碼部分、安卓自主知識產權代碼部分以及谷歌移動服務(GMS)。其中谷歌移動服務GMS包含了Chrome瀏覽器、YouTube、谷歌Play商店,這也是谷歌為數不多的從安卓系統中獲利的部分。因為任何廠商尤其是在國外,想要讓一款手機擁有底層技術和API,即讓手機不只是能上網打電話,就需要通過GMS商用授權實現移動支付、語音命令和云存儲等功能。這也是華為最擔心的——假如谷歌不再同意GMS授權,華為手機就會面臨在需要用到GMS服務的國家或地區,無法擁有完整的谷歌生態的尷尬境地。簡而言之,這是個別人卡住你脖子,不讓你擺攤兒賣貨的“生存問題”。
但由于安卓的演化過于復雜,一則谷歌保留了安卓系統部分產權代碼和谷歌移動服務,二則安卓系統也是來自更古老的開源系統——整個代碼庫的版權歸屬問題更像是一筆爛賬。比如擁有Java軟件知識產權的甲骨文公司,就曾一直主張安卓侵犯了Java的知識產權代碼,過去十年間反復指控稱安卓抄襲了Java超過一萬行的API源代碼,一直到今年4月甲骨文在終審判決中敗訴,整個官司維持了十年之久。其實甲骨文的做法,就是想把原本應該開源的API代碼,通過申訴版權的形式獨占。這和安卓以開源代碼為基礎,逐漸建立自己生態體系的半開源護城河玩法,在某種意義上也是類似。只不過這么多年過去,谷歌已經摸索出了一套在免費開源和商業授權之間平衡的機制,讓同盟者隨之獲益良多,因此大家對于這種模式也就沒多說什么。
但是沒辦法再一起好好玩耍又該怎么辦呢?其實在鴻蒙之前,這種事有過類似的先例。2012年9月13日,阿里云與宏碁原定于上海舉辦的發布會突然宣布取消。隨后阿里云方面稱,合作伙伴宏碁收到了來自谷歌安卓方面的壓力。此前安卓系統創始人安迪·魯賓就多次和阿里巴巴隔空喊話,安迪強調阿里云OS很明顯是從Android修改得來,但阿里巴巴否認這一說法,稱阿里云OS使用了安卓框架和工具。而令谷歌惱火的地方,可能是阿里云OS擁有了自成體系的生態系統,繞開了谷歌GMS。彼時高調的阿里巴巴也沒能從這場風波中占得上風。
但是這次鴻蒙的出現,和剛剛列舉的事件在出發點上又完全不相同。說得更直白點,華為手機已經被禁用了GMS服務,因此一個新的、可代替的系統方案,就變成了勢在必行的開發任務。鴻蒙這次的思路,顯然高明得多。簡單來說,鴻蒙的開發思路是更有意思的“萬物互聯”,而不僅僅把自己局限為操作系統的層面。鴻蒙的出現也不是一蹴而就的。在華為EMUI時代,華為的開發團隊就已經開始嘗試如何從一個UI轉變為一個平臺。在EMUI 5.0以上版本,華為完成了對安卓系統垃圾回收機制、AOT、數據庫優化的關鍵進展,并且推出了可以減少運存依賴的UltraMemory,對安卓底層技術模塊進行了各項深度開發,對外就構成了EMUI"18個月不卡頓”的豪言壯語。而到了EMUI 8.0時代,華為再次強調GPU Turbo,對安卓系統全站圖形模塊嘗試修改,并在接下來推出了GPU Turbo2.0、CPU Turbo、LinkTurbo等多個關鍵系統性能優化技術。2019年,華為首次提出了“1+8+N”智慧全場景戰略,也就是萬物互聯的前身。而隨著鴻蒙2.0的到來,華為HMS成了谷歌GMS的代替服務方案,成功解決在沒有GMS服務支持情況下,消費者的手機軟件服務支持問題。從HDC 2019公布的鴻蒙時間線規劃也可以看出,鴻蒙OS 3.0在通用微框架基礎上,正在向著軟硬協同高性能IPC邁進,也就是為“萬物互聯”提供更強的性能支撐。設想一下,你可以在熄火下車后,將車載通話或者地圖導航的步行部分轉移到手機,或者將外出智能手環或者手機正在運行的應用轉移到電視上,這些已經并不遙遠。面對外界種種猜測,華為鴻蒙負責人王成錄稱:
“HarmonyOS的定位一直很清晰,它瞄準的從來不是安卓或iOS,這是面向萬物互聯時代的操作系統。”
那么,鴻蒙系統除了剛剛提到的萬物互聯核心玩法,又該如何去準確定義?首先要強調,Harmony OS是新一代的智能終端操作系統,智能化和協同性構成了鴻蒙的底色,因此從本質上它與安卓這種強調“宏內核”的系統有著本質的不同。“宏內核”也就是打包式內核,無論你用不用得到的功能,類似Windows、安卓都是用打包的形式一股腦丟給你,雖然這個包就像漢語大詞典一樣大而全,厚重的分量,勢必會讓“背書包”的硬件占用到很多不必要的資源。而鴻蒙的思路恰恰相反—把龐大的復雜的操作系統,從根本上解構成為一個又一個的模塊化功能,也就是我們說的“微內核”,那么它還是“一個”操作系統么?很多人困惑的地方也正是在此處。華為手機上的鴻蒙系統和剛剛發布的用于IoT設備上的Harmony OS看起來還是有很大差異,但這正是鴻蒙的高明之處,因為它們都構成了“萬物互聯”新生態下終端可以聯系起來的關鍵。