思蘆隨筆

人隻不過是一根蘆葦,是自然界最脆弱的東西;但他能夠思想。
個人資料
思蘆 (熱門博主)
  • 博客訪問:
歸檔
正文

殺器還是噱頭?詳解華為的鴻蒙係統

(2019-05-23 16:47:48) 下一個

華為消費者業務總裁餘承東在朋友圈說最快今年秋天,最晚明年春天,華為自己的操作係統(OS)將可能麵市。華為的OS打通了手機、電腦、平板、電視、汽車、智能穿戴,統一成一個操作係統。且華為OS還兼容全部的安卓應用和所有的Web應用,相關安卓應用在華為OS上重新編譯後,運行性能提升將超過60%。

據傳這個操作係統叫鴻蒙。鴻蒙本意是中國神話中的在天地開辟之前,一團混沌的元氣世界。很奇怪,為什麽華為的OS叫鴻蒙。等待開辟?還是一團混沌?

餘承東別號餘大嘴,朋友圈的話算不上正式發布,雙重不靠譜。

這位老總一定是把操作係統混同於華為宣傳的方舟編譯器了。以前華為宣布方舟編譯器的終極目標,是推出一個跨平台、跨係統、跨設備多種語言的軟件開發平台。操作係統包括的東東比一個編譯平台多得多。工作量也大得多。能夠跨係統寫應用軟件不等於一統江湖的跨設備的操作係統。

根據現有信息,鴻蒙是一個基於安卓的,集成了華為對安卓係統的既往優化的操作係統,包括EMUI5.0 優化,方舟編譯平台, GC 優化,EROFS文件係統等等。但主框架仍然脫不了安卓或者Linux的操作係統。由於安卓和Linux都是開放的,這樣做沒有問題。它讓人想起了2014年被收購的紅旗Linux。

當今手機操作係統領域,基本上是蘋果和安卓的二分天下。蘋果是先行者,穀歌是趕超者。先行者有先發優勢。即使不開放,也能占領很大市場。安卓不同於蘋果係統是它的開放性,它采用了跨平台操作的JAVA語言,支持不同硬件設備,環境對應用開發商開放。蘋果手機使用自己的硬件,嚴格管控應用開發商。蘋果的封閉環境,使它更易於高效,更容易優化,這就是為什麽蘋果手機使用規格較低的硬件還能讓用戶感受流暢的體驗。穀歌為了培養生態係統,采用了開源的安卓,對效率和性能不得不有所犧牲。穀歌的開放,使很多新製造商(包括華為)可以快速進入智能手機領域。也使安卓的應用大量增加。據2017年年底統計,安卓的應用比蘋果多了42%。全球範圍內,安卓用戶占86%,蘋果用戶占14%。

手機操作係統的後發者,還有諾基亞的塞班,Palm的Palm OS和微軟的window Phone,都是由於沒有殺手鐧以及生態圈沒做好,慘遭淘汰。

具體來說,安卓係統在兩個性能上落後於蘋果OS。一個是為了跨硬件操作,JAVA使用了虛擬機。功能是將各種硬件抽象成Java的運行環境,JAVA隻管虛擬機。而虛擬機負責連接具體硬件。因此Java實現了跨平台——不管是X86,ARM,還是其他CPU的機器都沒有問題。虛擬機裏有一個解釋器,將JAVA語言逐句翻譯成硬件懂得的機器碼。而蘋果由於沒有跨平台的問題,事先把整個程序編譯成機器碼,執行起來就快了。另一個瓶頸是安卓需要回收不再使用的內存,這個工作叫garbage collection (GC)。GC時,虛擬機要停止運行,判斷哪些內存不再使用並釋放。這個停頓會造成手機的卡頓。

穀歌和其他安卓手機製造商,也在持續優化安卓,一方麵是硬件提升。由於硬件越來越便宜,手機上的CPU增至8核,速度也增加了很多。內存也由幾百M增加到8G。軟件上,穀歌采用了JIT(Just In Time)編譯。當係統發現程序內有一段代碼頻繁執行的時候,下次調用就不用重複解釋,直接執行上次解釋出的機器指令。虛擬機進化到ART(Android Run Time)後,采用了AOT編譯器(Ahead Of Time),就是運行之前,將部分代碼靜態編譯解釋為機器碼,極大地提升了效率。但對於那些Java動態特性的部分,還有其他部分,仍然做不到直接編譯,還是要解釋執行。GC方麵穀歌也做了優化,將GC的頻率和時間都減少了。綜合效果是,如果你用的是一個比較新的手機,硬件配置屬於中高端,安卓版本比較新,基本上感覺不到卡頓,運行比較流暢。

當不能得到穀歌GMS授權後,華為如果能很快推出新手機操作係統,而且這個操作係統有革命性的創新,且性能大大領先於現有的安卓,就會成為一個大殺器,挽回流失的用戶。但是作為後發者的華為進入手機操作係統領域,除了為培育生態圈,必須開源之外,還要有一些殺手鐧。方舟編譯器似乎就是是鴻蒙寄予深厚希望的一個殺手鐧。華為宣稱,方舟編譯器可讓係統操作流暢度提升24%,係統響應速度提升44%,第三方應用編譯後流暢度可提升60%!是革命性的優化,全程執行機器碼,高效運行應用,徹底解決安卓應用“邊解釋邊執行”造成的低效率。

根據目前公開的資料。方舟編譯器不再使用Java的虛擬機,而是開發者在應用打包的時候就將所有程序,包括靜態和動態的部分直接編譯成機器指令。 這種編譯會帶來跨平台問題,java使用虛擬機解決的正是這個問題。方舟對跨平台問題的解決方法,是同時編譯出所有硬件平台對應的二進製文件,之後在具體手機安裝的時候選擇針對當前硬件平台的二進製裝入手機。因此會出現安裝包容量大的問題(因為安裝包包含所有硬件平台的二進製文件)。導致應用安裝包和安裝後的機器碼占用空間增大。據估計,方舟編譯器重新編譯的安裝包要比安卓大兩三倍,手機安裝後的機器碼要大0.5-1倍。帶來的問題是占用存貯和內存顯著增加。用戶下載安裝包會消耗越來越多的時間和流量。這是一個用空間換取運行速度的策略。

方舟編譯器會有嚴重的生態問題。首先華為必須將編譯器代碼開放,並讓應用開發商免費下載,並將其已發布的應用重新編譯,並再次對安卓的所有版本和所有硬件平台進行測試。改正Bug後,重新發布,在所有應用商店上架。這個工作必須讓各個應用開發商自己做,華為不能代勞,因為每個應用都要有開發者的簽名。這基本上是一個不可能完成的任務。你可以在愛國情懷下忽悠國內的部分開發者,但不可能讓全球的應用開發者來跟隨。大多數的app開發商是中小規模的,甚至是個人,怎麽可能有時間有精力開發編譯測試如此多的版本?

當新的非華為(高通,聯發科等)硬件平台發布後,方舟編譯器必須及時跟進,並將新版本推送給所有的開發商。隨著越來越多新硬件的發布,方舟編譯出的安裝包勢必會越來越大。用戶下載安裝包會消耗越來越多時間和流量。同時開發商編譯時間會越來越長,需要測試的硬件會越來越多。

這麽大的麻煩換取的是最多44%的係統響應速度。而且這個提升很可能是在實驗室特定條件下測得的。體現在用戶感知上,很可能要大打折扣。根據用戶感知測試,一般人對在0.2秒以下的速度提升沒有感知。在這個區間,人的感知已經達到飽和。換句話說,把響應速度從0.2秒提升到0.1秒,大部分人感覺不到區別。據我的經驗,目前中高端安卓手機的性能瓶頸不是CPU的處理速度。所以對這個方舟的優化,用戶很可能無感。

另一個華為宣傳的對安卓的優化是內存垃圾回收(GC),從全局統一回收改變為隨用隨回收,回收時無需暫停應用,宣稱消除了因內存回收的卡頓。但問題是,安卓5.0版本,采用ART虛擬機,GC的次數和停頓時間已經大大改善,GC引起的卡頓幾乎感知不到了。

最重要的是,華為這些對安卓的改善可以說都是工程方麵的,沒有技術的創新。消除JNI的開銷,把Java和C在一起編譯,來自於甲骨文的GraalVM和開源的LLVM;無需虛擬機類似於蘋果swift語言的執行和穀歌的AOT;引用計數的垃圾回收也是業界已有的建議。所有的思路都是穀歌曾經想到的,但為了可移植性做的犧牲。

穀歌也在對安卓優化,開發下一代操作係統。項目叫Fuchsia。 Fuchsia基於微內核架構,用於嵌入式係統,主要使用C語言和C++編寫。Fuchsia的設計目標之一是可運行在眾多的設備上,包括移動電話和個人計算機。

比較穀歌和華為的操作係統,目標雖然相同。但穀歌的係統包含更多的技術創新,而華為的係統著重於工程集成。這反映了兩個公司的區別。穀歌代表的是技術創新。而華為擅長的是工程能力,在技術上繼承和抄襲多,創新少。華為主要是依靠中國人工便宜,加上996,搞人海戰術。集成業界的一些好思路,螞蟻啃骨頭,做到工程實現。但要說是革命性的創新,遠遠談不上。純屬噱頭而已。

最後總結一下,華為所謂的手機操作係統備胎,會導致存貯和內存占用顯著增加,帶來的響應速度的提升很可能不會被中高端手機用戶感知。並且給應用商帶來極大的不便,生態係統很難擴展。這個操作係統新東西少,隻是集成了華為對安卓的一些優化。最後結果就是自己玩,難逃塞班和Palm OS的命運,噱頭而已。華為公司工程能力強,但不是一個技術創新的公司。

[ 打印 ]
閱讀 ()評論 (13)
評論
枕寒流 回複 悄悄話 受教了
思蘆 回複 悄悄話 回複 '飛天鷹' 的評論 :如果你確定能等到華為發布的那一天,等著分享你的感受。
飛天鷹 回複 悄悄話 你說的也許是對的,也許這個操作係統出來後又慢又差,還全是bug.但萬事開頭難,越是這樣我們越會支持它,我願意做小白鼠,華為這個係統出來了我肯定買,讓華為有機會改進提高,最後做到最好。
老農民說兩句 回複 悄悄話 沒有在一個生態圈裏千錘百煉,根本無法成長起來。如今華為認為自己可以閉門造車,隻能自求多福了
侃-侃 回複 悄悄話 專業/專家級的論述,技術細節清晰明了,邏輯關係統一完整。
時傳祥 回複 悄悄話 寫得很好,謝謝。
思蘆 回複 悄悄話 回複 'dqdeer' 的評論 : 老老實實,實事求是就行,吹成革命的創新,就過了。
Etornado 回複 悄悄話 頂多就是殲-5,米格戰鬥機的山寨。而且還沒有原廠的技術支持。然後說這個是自己的知識產權。
dqdeer 回複 悄悄話 平凡中做到極致 就是成功。

微軟基本沒有什麽大創新,一路抄襲模仿過來,就是這樣強大起來的。
LG19 回複 悄悄話 流暢?用過一個mate2pro天天重啟。淨是嘴炮
思蘆 回複 悄悄話 回複 '漢八刀' 的評論 : 專業詞匯太多,隻好這樣。看總結吧。
漢八刀 回複 悄悄話 博主寫得很好,我完全是外行,除了專業上的不懂,大致明白華爲備胎的情況了。感謝!
Jennifer2000 回複 悄悄話 華為吹牛B
登錄後才可評論.