華為鴻蒙釋出後在網上引起激烈討論,特別是許多吃瓜群眾,什麼都不懂就敢大言不慚的批這批那,畢竟是這麼專業的事情,原始碼都放出來了,又有方舟編譯器加持,肯定不是簡單的換膚(UI)這麼簡單,相反,人家UI(膚)多年前便開始佈局,為了讓人感覺不出核心的變化,減少平臺遷徙難度,反而UI沒什麼變化,於是嘴是兩張皮,逮到UI沒變、可以執行APP…就開始吼還是安卓、還是Linux…。
當然,這也不能完全怪吃瓜群眾,畢竟好多大V科技號都在胡謅,誤導群眾,另一方面國人也經歷了太多造假事情,比如晶片logo一換就號稱國產晶片、LCD背光換成主動發光就敢宣稱新一代OLED、換個UI就號稱自家作業系統…屢見不鮮,再加上華為有粉就必然有黑,有人就有江湖,所以綜合下來吃瓜群眾亂猜亂懷疑也就正常了。
我也是個半吊子,也不是什麼粉、也沒看過原始碼,但多少略懂點底層程式設計,今天也就來說說這個事兒。
一、驅動、核心、應用
電腦底層是一堆硬體,數位電路就是用一系列的高低電平變化來驅動顯示、列印…以及採集鍵盤、觸屏輸入…,當然也包括計算,這些高低電平為了管理於是抽象成二進位制數,於是成了數字與數學問題,然後就可以分析並透過程式來控制。
底層處理資料量超大超複雜,於是就要像數學方便計算的函式一樣將這些控制與處理也做成程式函式,於是就是驅動函式,這些驅動函式的名字就是驅動介面。
但驅動函式仍然很多,就像數學公式這麼多,要系統的學習和應用肯定得有自己的組織、記憶方式,於是就有了核心,核心就是起承上起下的作業,也是一個作業系統的核心,在應用程式和底層驅動間架起橋樑,核心提供統一的程式訪問底層驅動的介面(如Windows的API)和管理機制(如Windows的訊息機制)。
再往上走就是應用程式和UI介面,我們使用者是看不到API介面的,只能看到滑鼠鍵盤顯示器…,你看到的東西都已經是應用程式處理過的了。
當然這個劃分只是大概,並不完全。
二、Windows、Linux、Unix核心及其衍生
拋開dos這個古老系統,unix系統可謂是現代操系統之父,剛開始Unix沒意識到自己的重要性,將核心原始碼開放的,但是後來意識到重要性後便開始收費了,於是Unix便只能是大公司才會用,大學老師為了教學於是仿早期unix寫了minx,然後一個學生又仿minix寫了Linux,然後Linux開源,允許大家修改,所以Linux便發展壯大了,所以Linux與Unix程式碼上沒什麼關係,但又是借鑑和相容的。
Windows早期(包括win98)是基於DOS的,其實很low的,後來找高人也是參考了Unix寫NT核心才是真正的現代作業系統,win2000前後的Windows完全是鳥槍換炮。
蘋果的ios是基於Unix的變種,而且也是閉源的,所以Windows、Linux都是仿Unix而蘋果才算是根紅苗正,但奈何不開源所以脫離了大眾,沒有群眾基礎。
googe的安卓是基於Linux的,而且也是開源的,蘋果內部怎麼處理的不知道,但谷歌是在Linux基礎上加了一個虛擬機器而構成的安卓。
也就是說真正的核心也就是WindowsNT、Linux、Unix三家,脫離之後想重新建立生態系統是很難的。
三、華為的鴻蒙與三家核心的關係
Google的安卓虛擬機器是基於Linux,Linux是開源的,那安卓也得開源,但是基於安卓虛擬機器之上的服務包GMS則可以閉源的,這點還好,國內手機對GMS依賴不高,比如國外用Google地圖就必須依賴GMS,但國內用高德、百度就可以不依賴GMS,像華為早就推出了HMS服務包。
至於UI這個面板就更是如此了,小米有小米的UI、華為有華為的UI。
現在華為推出的鴻蒙系統沿用的肯定華為的UI和HMS,鴻蒙系統肯定向更深層的核心進軍了,問題的關鍵是鴻蒙到向底層進軍到什麼程度。
前面講了,為何三家核心獨大,主要是生態,所以相容現有生態是務實的選擇,谷歌開始(現在)也是以Linux為基礎的,現在谷歌做大了,其虛擬機器上的應用已經沒什麼Linux痕跡了,鑑於手機中安卓的地位,華為開始肯定也要相容安卓,相容事半功倍,不相容事倍功半。
先看怎麼相容安卓APP?我猜一種辦法是重新寫一個支援新系統的安卓虛擬機器、一種辦法是自己搞個編譯器(方舟)讓原來的程式碼重新編譯一下就可以執行在新系統上。
前者讓使用者感覺不出來核心到底是什麼,Linux(現安卓便是)、鴻蒙、其他都有可能。
後者則需要開發者重新用編譯器編譯生成新的應用程式,只不過開發者不用重新碼程式碼可能開發者也樂意。
從種種跡象來看,華為是兩手都在搞,所以也可以認為華為志在必得,特別是編譯器這一手,一般公司真的玩不起。
但前期華為多半會是用新的虛擬機器這個方案,這個才是使用者接不接受的主要因素,編譯器主要是針對開發者接不接受的主要因素,兩個都接受了,鴻蒙就可以大刀闊斧的幹了。
從官方資料看,華為現在的鴻蒙系統是多核心,核心包括了Linux和鴻蒙,即然可以直接無縫安裝安卓APP那多半還是有一個虛擬機器的,只是不知道虛擬機器到底是執行在Linux上還是鴻蒙核心上還是有什麼特殊處理,這個本人能力有限就理解不了了,須要看程式碼才行,但猜測很可能早期還是在Linux基礎上開發的虛擬機器可能比較大,這樣穩妥。
這個期間可能確實不算真正意義上的鴻蒙系統,但已經有了鴻蒙技術、框架、雛形了,已經比換膚和HMS更向核心進了一步了,這可能也是爭論較多的原因。
然後過段時間,當大眾和眾多手機廠家習慣了新作業系統後,不知不覺中便可以踢出Linux而讓虛擬機器執行到鴻蒙上,這個是很有可能的事情,只要大眾和手機廠家們支援應該不會太遠,這個時候鴻蒙系統將毫無爭議。
最後就是當方舟編譯器被眾多開發者接受,這個時代甚至可以去掉中間的虛擬機器了,鴻蒙將形成可與Unix/ios、Linux/安卓抗衡的新系統,如果野心足夠大甚至可以抗衡Windows。
所以,請大眾多給鴻蒙一點時間和口德,也請眾多手機廠家互相扶持一把,也請開發者們多試試方舟編譯器,別整天罵罵咧咧說沒有國產作業系統,而正當國產系統開始萌芽而有千搬的挑剔,挑剔如果是為了促進鴻蒙的進步到也無可厚非,但挑剔如果是建立在無知謾罵、別有用心就過分了。